ギークもどきの日記帳

雑多な知識が垂れ流される場所。ほとんど無害。

2020年の9月にようやくスターウォーズを観た

スターウォーズは言わずとしれた名作スペースオペラである。「遠い昔 はるかかなたの銀河系」というフレーズを至るところで聞いた。適当な棒を構えてライトセーバーごっこに興じたこともある。C-3POとR2-D2がすべてのエピソードに登場していることも知ってい…

死にゆく星空に百合は咲く 『アステリズムに花束を』を読みました

『アステリズムに花束を 百合SFアンソロジー』は、「百合」と「SF」の2つのテーマを掲げて編まれた短編集だ。 もともとは伊藤計劃の『ハーモニー』10周年を記念して企画されたSFマガジンの百合特集がかつてないほどの反響を呼んだことがきっかけらしい。積ん…

いつかKELDICに会いに行く - 錬金術師の密室を読んだ

読みました。錬金術師の密室。 先月だか今月だかに出たハヤカワ文庫の新刊で、タイトルの通り錬金術師の密室殺人事件を描くミステリー小説です。 簡単にあらすじを紹介しましょう。優秀だが誠実なばかりに世渡りの下手な青年軍人エミリアは、その優秀さを買…

バーナード嬢曰く。1巻を読んだ

一応、ネタバレ注意 柳の下のド嬢 「柳の下のどじょう」。 「2匹目のどじょう」をカッコよく言い換えるとこうなるらしい。らしい、というのはド嬢とどじょうをかけたダジャレを言いたいがためだけに「どじょう 慣用句」でググって最初に目についた言葉をよく…

俺は『フラグタイム』の小林由香利

映画『フラグタイム』、観てきました。去年の12月に1度観て、原作を読み、そして追加上映を観てきました。2回目です。 frag-time.com 小林由香利の話をさせてくれ。 なお、原作の作者コメントの話を持ち出すが映画『フラグタイム』の小林由香利について話す…

『2010年代SF傑作選』を買ったので私の2010年代を想う

-- はじめに。この小説はフィクションです。実在の人物、組織、時系列、概念その他諸々との整合性を取ることは不可能です。あと『2010年代SF傑作選』の話はしません。2010年代個人的にしんどかったって話を書きました。 去る2020年2月6日、2010年代に発表さ…

「無知は罪なり、知は空虚なり、英知持つもの英雄なり」の元ネタ

なんかこの話題でTwitterが盛り上がっていた。 togetter.com 答え: 「無知は罪なり、知は空虚なり、英知持つもの英雄なり」の出所、なぜかネットのどこを見ても言及がないので置いておきますね2001年の個人のテキストサイトが初出で、ソクラテスの「無知は罪…

星にゃーん2019

今年の星にゃーんまとめです。だいたいベッドの上でゴロゴロしていました。 これを書くために今年の星にゃーんのツイートを全部読みました。 1月 仮面ライダー平成ジェネレーションズFOREVERを観る。 「仮面ライダーはフィクションの存在だった」から始まる…

RebindableSyntaxとGHC.Genericsを使って'genericなif'を作る

CoqのGallinaでは2つのコンストラクタC1, C2のある型Tの式vについて、 if v then t1 else t2 が match v with | C1 ... => t1 | C2 ... => t2 end にdesugarされる。 なんだかよくわからないけどかっこいい!!!Haskellでもこれやりたい!!! やりました。…

セキュリティ・キャンプ全国大会2019でCコンパイラ書きました

はじめに 2019年8月13日から5日間開催されたセキュリティ・キャンプ全国大会2019のCコンパイラ自作ゼミに参加しました。 この記事は、応募から修了までのレポートです。 ほとんど下書き状態ですが、ここから文章が改善される気がしないのでこのまま公開しま…

セミの音も暑さも僕のものなのに夏の花火は見えないままで— 星にゃーん (@takoeight0821) 2019年7月27日 暑さがまだ残る夏の夜、あなたは重い鞄を引きずりながら家に向かって歩いていた。 「今日は散々な一日だった」とあなたは思う。 明日が終われば夏休み…

いつのまにか二十歳になっていた。 日曜の朝に起きるのは難しくなったが、代わりにテレビの録画は簡単になった。 昼過ぎに目を覚まし、アイスコーヒーを飲みながら予約録画した仮面ライダーを観る。 画面の向こうで戦ってるのは10年前の劇場版限定ライダーだ…

Homebrewで他のformulaから依存されていないformulaを列挙する

brew listでインストール済みのすべてのformulaを列挙する。 xargs -P ...でそれぞれのformulaについて、そのformulaに依存しているインストール済みのformulaの数を数える。 grep " 0"で依存されていないformulaのみを取得する。 $ brew list | xargs -P 10…

Coq 8.7.1でSoftware Foundationsを読もうとしてハマったメモ

Software FoundationsのProgramming Language FoundationsのEquiv.vをProof Generalで読み込んだら以下のようなエラーが出た。 Error: The file /Users/yuya/dev/src/local/softwarefoundations/plf/Maps.vo contains library Top.Maps and not library Maps…

プログラミング言語をつくっている

去年の夏頃からプログラミング言語を作っています。 こんな感じのソースコードから let extern print_int : Int -> Unit = "print_int" extern newline : Unit -> Unit = "newline" fun fib(n : Int) : Int = if n <= 1 then 1 else fib(n - 1) + fib(n - 2)…

Hakyllでブログ作った

こうののブログ - Home stackにはHakyll用のテンプレートもあるので、ブログ制作そのものは簡単にできる。 Github Pagesの仕様にあわせるため若干のハックが必要だった。 具体的には、記事作成そのものはblogブランチで行い、_site/以下をmasterブランチにコ…

CのVariable-length array

C99では, 実行時に配列の長さを指定できる機能が追加された. #include <stdio.h> int foo(int n) { int array[n]; int array[0] = 1; int array[1] = 1; for (int i = 2; i < n; i++) { array[i] = array[i-1] + array[i-2]; } return array[n-1]; } sizeofは実行時に</stdio.h>…

stack ghciでllvm-hs読み込めないときにすること

$ stack ghci Configuring GHCi with the following ... lookupSymbol failed in relocateSection (relocate external) /usr/local/Cellar/llvm-4.0/4.0.0/lib/llvm-4.0/lib/libLLVMLTO.a: unknown symbol `__ZN4llvm3lto11thinBackendERNS0_6ConfigEjNSt3__…

GHCでFizzBuzz

GHCでFizzBuzzを書いた。 gen_nats(Max, Ns) :- true | gen_integers(1, Max, Ns). gen_integers(N, Max, Is) :- N =< Max | Is = [N | Is1], N1 := N + 1, gen_integers(N1, Max, Is1). gen_integers(N, Max, Is) :- N > Max | Is = []. map([], Fs) :- tru…

GHC(Guarded Horn Clauses)のインストール

GHC

GHCとは https://ja.wikipedia.org/wiki/Guarded_Horn_Clauses/ インストール方法 今回は、SWI-Prolog上に実装されたGHCの処理系をインストールする。 SWI-Prologは SWI-Prolog からインストールできる。 次に、 Software from UEDA Lab. から GHC system ru…

"int main(void) { return 0; }"のLLVM IRを読んだメモ

とりあえずの学習メモとして残す。 理解が怪しいところは?や(?)などをつけている。 理解が進んだ後に整理したものを書きたい。 int main (void) { return 0; } このプログラムはCにおける(多分)最小のプログラムで、単にステータスコード0を返すだけのプログ…

「最新コンパイラ構成技法」でハマったところのツイまとめ 5/3

SML/NJで最新コンパイラ構成技法のソース読み込んだら(CMで)、"unbound structure: TextIO in path TextIO.instrem"とか言われて詰んだ— こうの (@takoeight0821) 2017年5月3日 sources.cmに$/basis.cmを追加したらうまくいった(あと、smlnj-lib.cmも$/smlnj…

RoswellでCommon Lisp環境をセットアップする

(2018-11-30 追記) この記事の内容は古くなっている可能性があります。 Roswellとは (ざっくりと) Common Lispの処理系やQuicklisp、SLIMEなどのインストール、処理系ごとのオプションの違いの吸収などを行うすごい便利なツール。 Common Lisperなら使って損…

Common Lispのライブラリ事情

ANSI Common Lispでは、ライブラリのフォーマットについてあまりちゃんとした仕様が存在しません。 当然、ライブラリを扱えないのは不便極まりないことですから、その点をカバーするためのシステムが存在します。 REQUIRE, PROVIDE 現在非推奨の、ANSI Commo…

Clozure CLをちょっと早くする

Clozure CLのLispの部分をコンパイルしてうんたらかんたらして起動とかを早くする。 ? (ccl:compile-ccl) フィボナッチ数の20番目を計算してテスト #!/bin/sh #|-*- mode:lisp -*-|# #| <Put a one-line description here> exec ros -Q -- $0 "$@" |# (progn ;;init forms (ros:ensure-asdf) ;</put>…

Roswell scriptでshebangツライときの覚え書き

ANSI Common Lispではshebangの存在は考慮されない。 しかし、Roswell scriptのデバッグをSlimeでしていると、shebangでリードエラーが起きてツラくなる。 その回避方法。 Roswellは起動時に、$HOME/.roswell/init.lispを実行する。 また、ros:ignore-sheban…

C++14でstd::vectorのmap関数書いた(白目)

大体一年ぐらい前に C言語でmapとreduce - ギークもどきの日記帳 という記事を書きました。 これをC++14で、パフォーマンスを気にしないブルジョワ仕様で作ってみてmapで力尽きたという報告です。 map関数本体 複数コンテナへの対応は難しいので、今回はstd:…

Emacsでアンチエイリアスがかかりすぎる on macOS

defaults write -app Emacs AppleFontSmoothing -int 0を実行して、アンチエイリアスのかけ具合を最低にするとうまいこといった。

RoswellでCommon Lisp環境をセットアップする 2016秋

(2017-3-11更新)RoswellでCommon Lisp環境をセットアップする - ギークもどきの日記帳 Roswellとは (ざっくりと) Common Lispの処理系やQuicklispのインストール、処理系ごとのオプションの違いの吸収などを行うすごい便利なツール。 Common Lisperなら使…

Elixirで二重数を実装して自動微分するまで

最近プログラミングElixirを読んでいる。 実際にプロジェクトを作る流れを示した練習課題があったり、ライブラリ事情だったり、実用性の高いガイドブックのような形式で、リファレンスじみた退屈さがなくて読みやすい。 Elixir言語だけでなく、周りのエコシ…