読者です 読者をやめる 読者になる 読者になる

type t (* void *)

関数型言語や英語学習の事とか。

OCaml: RWOを読み進めるためのOCaml設定

20150426加筆 RWOの説明を書いた
20150422加筆 より細かく書いた

20150909加筆 以下の内容はDebian 7向けに書かれており古いです! Debian 8ではより簡単にopamをインストール出来るようになっています! 下の記事では重複する部分は書きませんでしたが、インストール方法については下の記事が最新です。

no-maddojp.hatenablog.com

なんかちょっとだけOCaml環境構築が面倒みたいな話があったので、構築手順を書く。
大体確かめられた手順なのでよいはず。

Emacsのインストールまで解説しますが、RWOを読み始めるにあたりエディタの設定は必ずしも必要ではありません。
楽しんで下さい。

続きを読む

ARM: Rasberry pi 3でinstruction per cycleを測ってみたが……?

更新:
全部の実験で命令の総数を揃えました。
分かりにくくてすみません……

計算機が全くわからない。
俺たちは勘で計算している。 どなたかこの解釈について教えてほしいです。。。。。

続きを読む

C: マクロ定義の中にプラグマを書きたい

残の業。

続きを読む

OCaml: hello world!が実行されるまで

前一度調べたので記事をまとめておく。
OCamlプログラムの初期化は複雑だなぁ思った次第です。

続きを読む

一般の話: sshdに不正アクセスを試みたユーザ名を雑に調べた

ウェブコワイ。
sshdをDynamic DNSを使って自宅鯖に立てているのだけど、/var/log/auth.logをみるたび肝を冷やすので 不正アクセスを試みているユーザ名を雑に調べた。

ユーザ名を見ているとOSSのソフトウエアをインストールするとデフォで作られるユーザ名を狙った物が多くて、 次になんかありがちっぽい名前を狙っている感がある。

続きを読む

プログラミング: Makefileの雑い話2

ハマった


X = a b c
X += d e f

all:
  echo $(X)

これはmakeを叩いてみるとa b c e e fと出力される。 まぁ+=はこれで良さそう。

ちょっと直感に反している例として、make X=123みたいに 外側から与えられる場合。これは123とだけ出力される。

コレを123 d e fと出力させたかったらoverrideを加えればいい。

X = a b c
override X += d e f

all:
  echo $(X}

これで無事123 d e fと出力される。 しかしまぁこれ、なかなか悩ましくて外側から与えられる場合には、例えばコンパイルフラグが完全な状況になっていて欲しい場合もあり悩ましい。 例えば最終的にCFLAGS=-DA -DBとなってて欲しいところを-DAだけ外から与えてoverride +=-DBとする設計の場合、この+=を無視できなくなってしまう。しかし外側から与えられると共通のフラグは勝手に+=されて欲しい気持ちにもなって悩ましい。。。

結局は人間の運用をどうするべきかということなのですが、まぁ結論がない。。。。。

一般の話: 技術書典2に本を出しました

電子書籍販売し始めました!!!

コンパイラを作って遊ぼう - nomaddo - BOOTH


技術書典2に本を出してきました。う-15 「コンパイラを作ってあそぼう」です。 @alt_apさんの素晴らしいイラストを見て!

f:id:no_maddojp:20170409232749p:plain

経緯

締め切り駆動開発しようと思って、締め切りギリギリに申し込んだ。1月初めだったかな。
感想としては締め切り駆動は進捗はでるけど寿命を減らす感がある(徹夜3回くらいした

戦略

  • コンパイラの本を出す
  • 出すなら売れ残りたくないので色々戦略を考える
    • とにかくコンパイラ本だということを前面に出す
      見た時のわかりやすさ優先
    • 知り合いの@alt_apさんにイラストをお願いする
    • 60ページくらいで簡単に読み切れる分量、500円程度の値段設定
      実際はページが減って52ページになった……
  • latexが書き慣れてるしええやろ

大変だったこと

  • 残の業が障害になった
    残業がなければちゃんとコンパイラが完成していただろう……
  • 自分のわかっていないところがやっぱり分かって無くて大変だった
    レジスタ割付けはなんかこう、教科書通り全然出来ないし教科書では簡単な例ばっかりで駄目
    コンパイラはこういうのが多くて困る。実践のノウハウがやはり重要

準備がいる

印刷所から直入だったから荷物手ぶら状態だったけど、色々小物が必要だった

  • コインケース
    色々慌ただしくやり取りしているとただ机にコインを積んでいるだけだと落とす
  • A3イラストを立てるための台みたいなもの
    やはり机においているだけだと全然外から見えない
  • 値段を表示するためのもの
  • 机にしくマットみたいなもの
    見栄えの問題だなー
  • 大量のコインと札を持ち帰るための袋
    10万円分の1000円札……
  • ダンボール持ち運ぶやつ
    大量に在庫残った場合を考えてキャリーバッグをもっていったけど、もっと適切な道具があるっぽい

経費

  • 印刷費200部 45000
  • イラスト発注 25000
  • 参加費 7000
  • 交通費 4500

時給で換算すると余裕で100円を切るやつ。
赤字にならなくてよかった。

おまけ

今回使ったlatexのテンプレートを貼っておきます。
今回私の本文はこれだけで作っています。あと図にパワポから生成したpdf。
遷移図みたいなの書くのにパワポが最高。graphvizとか書いてられない。

GitHub - nomaddo/b5-book-template

f:id:no_maddojp:20170410012201j:plain