https://utky.github.io/ に移行したので今後こちらに記事は追加されない予定。 移行してみて よかったこと ブログ以外のものも含めた全体を一貫して管理できる いろいろ自分で道具を磨いて遊べるので楽しい わるかったこと hatenablog からの流入ユーザがぼ…
背景 Linux networkingには下記のような様々な構成要素があります。 ネットワークデバイス 経路テーブル フィルタ etc. これらを操作する必要がある場合、一般的には iproute2 などのコマンドラインツールから操作を行うことが多いかと思います。 しかしOpen…
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック まあ、なんかみんな読んでそうだし、すぐ読めそうだしと思って読んでみた。 内容の引用はせずに感心したポイントだけ書く。 全体として コードは理解しやすくなければならない と…
『入門 監視』 という本を読んだ。 普段は低レベルな部分の監視が多くて見失いがちだった、高レベルなポイントの監視について思いを馳せる機会を与えてもらったので読んでよかった。 以下、個人的に心の動いたポイントを記す。 本の内容については大して触れ…
なにか気になるプログラミング言語を見つけたとする。 僕が社会人になりたての頃は形から入っていたのか、とりあえずそのプログラミング言語の本を買ってた。その本を片手にいきなり腰を据えてコードを書き始めるって感じたった。 真正面から取り組むのは意…
大して複雑なコードでもないのに、スクリプト書くのに3時間もかかった話。 問題 仕事で必要になりそうなスクリプトを書いてた。 公開できないけど。 以降に説明するような処理をするClojureのスクリプトを書いていたが、 あらかた満足に動くようになるまで3…
ただのtips。みんな気付いているけどショボすぎて言わないことだ。 ductをREPLから起動・停止くらいはできる人に向けている。 それも解らないよーという人は、なんというか、なんでこの記事を読もうと思ったのか。 そういう人はこちらを読むと良いと思う。 C…
今日ちょっと仕事でデータの加工して集計する作業があったので、 加工スクリプトにClojure使おうとした。 結果、全然書けなくて愕然とした訳だけど、その理由を考えてみる。 ちなみにClojureは全く悪くない。僕が勉強不足だっただけ。 1. CIDER REPLとバッフ…
まえおき 例によって僕の記事など読まなくても下記のリンクで解説されているので、 Haskell楽しいなと思う人はこちらをどうぞ。 An Introduction to Recursion Schemes 生きるのに疲れた人は半分白目のゆるい気持ちで以降を読んでね。 Haskellで抽象構文木 (…
2018-01-04 追記: ここで全部語り尽くされている気がしたので、Labelling AST Nodes with locations なにもこんなブログ読むことはないのかもしれない。 megaparsecを使って構文解析器を書いている。 構文解析やっているとASTにソースファイルの位置情報とか…
プログラミングClojureは僕が読んだ二冊目のClojureの本で、 Clojureがどんな機能を備えているのか、どんなパラダイムなのかを 教えてくれるとても良い本。 読み終わった今でも時々、「あそこどう書いてたっけな」と気になってはすぐに読み返してしまう。 し…
はじめに Happyで生成したパーサのコンパイル遅すぎてもう限界だったのでparser combinatorに戻ってきた。 そしてまた現れたのだ、やつが。。。。 問題 やろうとしてることは以前と変わらない。 SML Definitionを読んで型の注釈を表す式 ty を解析しようとし…
Haskell (その3) Advent Calendar 2017 11日目の記事。(予約投稿知らなかったのでフライングになった) GHCがコンパイルの途中で中間表現として用いるCoreの生成っぷりを観察する。 観察して、あーはいはいなるほどね(わかってない)、と言うだけになりそう。 …
まだ構文解析器で苦労している。 今回も詰まっているのは構文のconflict。 問題 これが関数適用 app : exp exp これが二項演算子適用 infixapp : exp vid exp この時に入力を x y z とすると2つの解釈ができてしまうことになる。 ((x y) z) とするネストし…
改めて最近実感すること。 Haskell, Elm, Clojureほんと好き。 Scala勉強しなきゃなーと思いながらClojureを触ってしまうことが多かったのだけれど、 その理由が少しずつわかってきた。 いい言語たち いままで少しだけ触れてきたJava, Python, Scala, Goはい…
何か学習したい、と思う動機があるとする。 現在の僕の場合は「仕事の関係でLinuxカーネルについておさえておきたい」とか。 学習したいので何らかの書籍を参照することになる。 問題 読んでいる内容が頭に定着していない感覚 購入した詳解Linuxカーネルでは…
Minimum viable product - Wikipedia 小さく作りながら進めるのがうまい人は作業ステップの分割ではなくてゴールの分割に優れているなあ、と思う。 最低限のユーザが試すことができる機能のみを搭載したプロダクトをMVP(Minimum Viable Product)というらしい…
僕もまとめておこう。 Java 書いたコードの量はダントツに多い。 リフレクションお化けにハマったり、JavaEEにハマったりした。 いまはJavaに興味なくてJVMに興味が移ってしまった。 JavaScript jQueryが流行ってた頃に一度検索バーの補完用モジュール書いた…
やろうとしていること Haskellのparsecを使ってSMLの構文を解析し構文木を生成する。 やっていること SMLの構文解析はいろいろステップがある。 リテラル (special constants) 識別子 (identifier) 型注釈 !!イマココ!! パターンマッチ 式 宣言 モジュール構…
自分の欲しいDSLを作るにあたって、構文として参考になりそうなものを探した結果MLが良いのではとなった。 特にStandard MLが良さそうだ。 OCamlより個人的には素直な文法に感じた。Schemeと違ってTypingもいずれできそうな構文だった。Haskellのようなオフ…
Clojure Rationale このページにこんな文があった。 Pure functional languages tend to strongly static types * Not for everyone, or every task 「静的型付けは全てのタスクに適しているわけではない。」 そのタスクとは何を想定しているのか、ここでは…
S式という記法(?)はほんとになんでも書けると知った。 翌日追記: S式というかReaderがすごいっぽい。 例えば (def japanese '(式のなかに 日本語を書くと そのままシンボルになる)) とか (defn 二倍 [x] (* x 2)) とか書ける。 それにmutil line stringも (d…
僕はHaskellが好き。 なんだけど、同じくらいHaskellもくもく会の常連の人達が好き。 ちょっとした型についての質問から、いつの間にかホワイトボード上で証明とか書き出して「あー、ほんとだー、そういうことかー」って言ってる感じが好き。 解らないことが…
Haskellの代数データ型は僕にとってJavaのインタフェースに近い。 データ型がインタフェースでそのデータを受け取る関数がインタフェースのメソッドに相当する。 データをパターンマッチで分解して値コンストラクタ別の関数定義をするのは、 インタフェース…
自分が悩んでることを拙い語彙でぽつぽつ綴るので、誰にも伝わらないと思う。 DBアクセスする機能を実装したいとする。 java.jdbc を使ってDBアクセスレイヤを実装することになるのが普通かなと思う。 Clojureは関数型プログラミング言語なので、組み立てに…