Nerd
テストの書き方 Unit テストと Integration テストで、書く場所が異なる We create a tests directory at the top level of our project directory, next to src. Cargo knows to look for integration test files in this directory. We can then make as m…
モジュール Rustにおけるモジュールは、C++における名前空間のようなもの。アクセス指定子を付けることによって公開・非公開をコントロールできる。 Start from the crate root: When compiling a crate, the compiler first looks in the crate root file (…
PackageとCrate 最初にRust入門した時には、cargo newして、コードを実装して、テストを書いて、何となく動いたわーい、って誰しもやると思う。でもある程度構造化されたプログラムを組もうとするとユーザ定義型・メソッド・関数 < モジュール階層 < クレ…
Rust雑感 - 空想犬猫記を書いてから、おおよそ5年が経とうとしている。Rustはその後も進化を続けて、ついにはLinuxのデバイスドライバの開発言語の地位を得たり、Androidの新規開発のデフォルトの言語にもなり、具体的な成果も報告され、ついに外堀が埋まっ…
年初から、また少しだけ Rust(The Rust Programming Language)というプログラミング言語を覚え直していた。リンク先のサイトには以下のような特徴が挙げられている。 zero-cost abstractions move semantics guaranteed memory safety threads without dat…
今日ハマったC++の落とし穴。次のコードの出力結果を予想してください。 #include <iostream> #include <exception> using namespace std; static void assertZero(int i) { if (i == 0) return // // I'm sure it is not a zero!! // throw exception("Not a zero"); } int main(</exception></iostream>…
いままでバイナリ配布されているNTEmacsを使っていたけど「gnupack + Cygwin/Emacs24 が快適 - ああああ」というのを読んで同感だったので、ちょっと自前でビルドしてみた。下にあるとおり、3つのコマンドで簡単にインストールできるので、私にはgnupackのあ…
Win32 APIの話題というだけで、かなり今更感があるのだけれども、臆せずにメモっておく。やりたいことは、 Windowベースのアプリケーションがあるんだけど、たまにコマンドラインアプリとしても利用したい(バッチ処理など) しかもコマンドラインアプリとし…
最近、AtlassianからSourceTreeというWindows上で動く有望な無料のGitクライアントが発表された。ようやくWindows環境でもGitをまともに使い始められそうな機運が高まってきたので、それにあわせてサーバの設定などを簡単にまとめてみる。一般的な情報は「Gi…
新年早々、メインマシンのHDが吹っ飛んでしまい、予備のディスクに再インストールする羽目になってしまった。毎回、インストールのたびに同じことをしているので、ここにもメモとして残しておく。同様のことをするユーティリティも存在するが、レジストリを…
EPSONのXP-400という家庭用複合機を購入。本当はレーザープリンタが欲しかったが、家庭用のコンパクトなサイズでワイヤレス+スキャナ+コピー機を兼ねたものは、一般家庭向けには作られていない模様。個人的にはスキャナと返品用のリターンラベルが印刷でき…
id:xoinu:20120830 の続き。はてなダイアリーはもう関係ないんだけど、とにかくMSゴシックやMS Pゴシックからオサラバしたかった。昨日のだと、スタイルが全く指定されていないサイトで、まだメイリオが使用されない場合があった。主な変更点は以下の3点: …
追記:この記事には続きがあります(id:xoinu:20120831)MacからWindows7、そしてChromeに移行してから、しばらくはてなダイアリーを更新するのが億劫になってしまった。非常にくだらないのだが、編集画面のフォントが汚くて何も書く気がしなかったのが一番…
「なんでも継続」というテキストを読んで,継続について考えてみた。メモ代わりに文章化してみる。 ぶっ飛んだ理解 プログラミングにでてくる継続の概念が難しく感じるのは,私が馴染んでいるようなC/C++のような言語から見ると,継続は言語のランタイムによ…
徒然なるままにetolispをいじってみた。そのむかし,etolispにGC(ガーベージコレクタ)を組み込むにあたってCodeProjectでたまたま見つけたサンプルコードを参考にしたのだが,思えばこれが悪い出発点だったのかもしれない(評価は4.5ポイントと高いが…)。…
週末,twitterでわんわん騒いでた件。つい最近もiPhoneに水をこぼして,乾かしたりとかしてたわけですが,今回はPowerBookにコーラをこぼされてしまいました。特に水の浸入しやすいポート周りを中心に横からアタックされ,即死状態でした。直ぐに電池を抜き…
今までetolispの実装に関しては「他の実際を一切参考にしない」というスタンスだった。それによって,何か新しいものが生まれると思いきや,できたものは,素朴で効率の悪い構文木を直に評価するLispだった。まあ,そんなものだろう。目下のところ,Emacs が…
今まで読まなくて正解だった。これを読んでたら,まず,C++で書こうなんて思わなかっただろうし,影響を受けまくっていただろうなぁ。半日,見た限りでは,Emacs Lispはかなり素朴であることが分かった。Lispを記述能力の高いDSLとして利用するぶんには,そ…
以前,etolisp は「Lisp界のSQLiteを目指す」と書いたことがある。SQLiteは僕が最もクールだと感じたソフトウェアの1つである。その理由にはいくつかある。一つは,全てにおいてシンプルであること。ライセンス形態はパブリックドメインで,何も考えず商用ソ…
…イヤ,そんなことは,始めから,わかっていたことだ。末尾呼び出しの最適化のない etolisp には無理だろうってことくらい。sbcl にだって,無いんだから。いいじゃないか。そんなところで勝負したって,詮無いことだ。 (defun fib (n) (if (< n 2) n (+ (fi…
午前中,before-method,after-method,around-method が動くようになった。before,after は想像の範囲内。around は少々面倒だった。たかがメソッドの呼び出しを,よくもここまで高機能にして仕様化してくれたものだ…。ちっ…。一応,本に書いてある通り me…
defmethod の実装が限定的に終わる。今のところ,メソッドの検索は class ID をキーに,ハッシュを利用した n 分木構造を辿る仕組みにしている。効率的ではないかも知れないが,一番,直感的に思える実装。Generic Function は,関数の配列と,関数を検索す…
今日は defclass の実装。継承もスタティックメンバもサポートできた。この辺,赤い本は少ししか言及がないので,理解が正しいかどうか不安だ。取りあえず本に載っているコードは全て動くようになった。Precedence も,図を書いて説明すると複雑そうだが,実…
【ニコニコ動画】創世のアクエリオンを聞きながら作業。「あっいーしーてーるー」がリフレインしてあまり捗らない。ニコニコ動画に「作業用BGM」タグがあるのを発見。ニコニコだと時間制限がないので,平気で「神曲メドレー90分」とかがアップされている。MP…
Tiger + PowerPC G4 な私は,置いてけぼり。今や Microsoft の開発ツールも無料で手に入るわけだし,以前ほど,趣味で Mac を使うメリットがなくなったな。PowerBook G4を売ってDellのDesktopを買おう。
僕の個人的なマシンは,ここ10年来ずうっとMacであった。ここにきてMacがじりじりとシェアを上げてきていると聞くし,とくに学生や,いわゆるハッカーとよばれる人々のMacへの乗換えもよく聞く。VistaがコケてLeopardが成功したのもあって,その傾向は少しず…
http://developer.apple.com/leopard/overview/objectivec2.html MacOSX 上でプログラムを組んでいる人は多いと思うが,その中で Objective-C を使っている人ってどれくらいいるのだろう?この日記では度々触れているが,C と SmallTalk から派生した(らし…
iPhoneを購入し,家のLANも複数台のマシンを接続する環境になったので,Wireless LAN Station(WRT54G5)を購入。よく調べないで買った自分も悪いのだが「設定方法:インストールCDをWindowsマシンに入れ,指示に従う」としか書いてなくて,Macしか持ってな…
前回の package の修正後,また更に名前空間がらみでバグを発見。今までの実装はかなりいい加減で,back quote の「,」や「,@」を含むシンボルを「,arg」や「,@body」などのように,ひとつのシンボルとしてパースし,back quote の評価時に「,」や「,@」以降…
朝起きると神のお告げがあり,etolispはまたも邪悪な「俺仕様」に陥らずに済んだ。イヤ,結局,仕様に当たったわけではないんだけど,私の好ましい方を支持する指摘があったので,そっちを信じることにした(『神のお告げ』たる所以・笑)。name ID とか sym…