2008-01-01から1年間の記事一覧

Scala plugin for eclipseを試してみた

30分プログラム、その500。Eclipseを毛嫌いばかりしていてもしょうがないので、久しぶりにEclipseを使ってみた。 詳しい使い方をスクリーンショットをまじえつつ書こうと思ったけど、わりと普通だったのでやめた。 インストールの仕方と使い方はHome | Scala…

13日の金曜日を数える

30分プログラム、その449。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_047より。元ネタはエロと風俗情報満載 どう抜く?らしい。 使い方 ;; 2008年には1回だけ gosh> (count-13-friday 2008) 1 ;; 2009年は3回ある gosh> (count-13-friday 200…

ScalaでCompositeパターン

30分プログラム、その448。Scalaのcase classを使って、Compositeパターンを作ってみる。ディレクトリみたいなツリー状になっているデータ構造を表現するのに、とっても便利なCompositeパターンをScalaで書いてみよう。 まずは普通に定義しよう。 まずは、増…

サイズ表示を読みやすくする

30分プログラム、その447。サイズ表示を読みやすくする。 clmemo@aka: Linux でプロセスごとのメモリー使用量を調べるによると、psにlオプションを与えてやると各プロセスのメモリ使用量を表示してくれるらしい。 # RSSの列 UID PID PPID CPU PRI NI VSZ RSS…

VMwareでYahoo!コミックを読もうとしたら、拒否された

VMware Fusionを使ってYahoo!ブックストア サービス終了のお知らせを読もうとしたら、拒否された。ひどひ・・・。

EmacsからEclipseに戻れない理由

Eclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそやEclipse から秀丸に戻れない理由とかじゃなくて - 深谷の深入りしない日々を読んだ感想。 Eclipseのリファクタリング機能や宣言へのジャンプ機能がすごい便利なのは全面的に同意なん…

2行を1行にまとめる

30分プログラム、その446。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_020より。 123458.69 KK5899966 23698565.36 MM5897155998というものを以下のようにします。 123458.69,KK5899966 23698565.36,MM5897155998要するに 2 行を 1 行にして表…

OCamlDebugが熱い

30分プログラム、その445。ふと思いついてOCamlDebugを試してみたら、予想以上に熱かった。ステップ実行や変数表示、ブレイクポイントなど普通の機能があるのはもちろんのこと、1ステップ戻るなんてことができる。逆方向に実行って、熱すぎるだろ・・・。 デ…

Erlangプロセス Schemeアクタ

30分プログラム、その444。id:Gemmaさんに昔のbit誌にのっていた「Scheme 過去・現在・未来」のコピーを貰ったので、そこに載っていたSchemeのアクタをErlangで再現してみた。やっていることはErlang プロセス <=> Scheme アクタ - Gemmaの日記と同じ…

ターミナルを2つ表示するようにした

Mac

みなさんscreen+zshで幸せなシェル生活を送っていますか? ところで、せっかくモダンなウインドウ・マネージャを使っているのに、ターミナルがひとつだけってもったいなくありません? というわけで、2つ表示するようにした というわけで2つ表示して、片方は情…

ABCのSlotがさっぱりなので、コードを読もう

ABCのSlotがさっぱりなので、Tamarinのコードを読もう。 目的 (define foo (new Foo))というコードのfooにslotを割り当てたら、 TypeError: Error #1034: Type Coercion failed: cannot convert Foo@11177c9 to class Foo. at global$init()と怒られた。でも…

片方のファイルにしか含まれない行の抽出

30分プログラム、その443。AとBというファイルを与えたときに、Aにだけ含まれる行を抽出するプログラム。 TODO一覧と、完了したタスク一覧を渡して、未完了のタスク一覧を出力したかった。要するに集合的な意味での差なんだから、ファイルのdiffといったらこ…

ScalaのTraitを使ってみる

30分プログラム、その442。なんとなくtraitを使ってみたかったので、RubyのEnumerableっぽいやつを作ってみた。foreachを実装した上でEnumerable traitをくっつけると、mapとfilter、concatMapのデフォルト実装が使えるようになる。 class MySet[T <% Ordere…

99の一覧

30分プログラム、その441。99の一覧を出力してみる。 どう書く.orgで、これと同じ出力をするプログラムを0-9の数字をソースコードに入力せずに作れ、という問題が出たといううわさを聞いた気がする。どうやるんだろう?チャーチ数的なことかな? それを30分で…

Schemeのdefineってレキシカルスコープじゃないよね

Schemeの場合 Schemeのdefineはset!と似た感じになるので、変数を2回defineすると最初の値が変わる。 (define x 1) (define (f) x) (define x 2) (print (f)) ;; => 2 OCamlの場合 で、みんな大好きOCamlの場合は、二回letしても最初の値は変わらない。 let …

rangeとxrangeってどれくらい違うの? -timeitを試す-

30分プログラム、その440。timeitというステキな時間計測モジュールを見つけたので、rangeとxrangeの速度を比べてみた。 実際に走らせるコードを文字列で与えるのがなんとも。まあ、キャッシュとかが効かないようにするためなんだろうけども。 使い方 $ pyth…

fishっぽいpwd: /usr/loacl/binが/u/l/binになるやつ

30分プログラム、その439。fishにあるprompt_pwd関数をPerlで再現してみる。 このprompt_pwdはわりと素敵で、/usr/local/binを/u/l/binみたいに最後のディレクトリ名以外を一文字に省略してくれる。これをscreenのステータスラインに表示するようにすると、…

リズム感を測定するプログラム

30分プログラム、その439。またもmixiの課題丸投げコミュより。C/C++の課題丸投げ| 構造体についてより。 オリジナル問題-2: リズム感を測定するプログラム 経過時間の測定キーボード入力の時間間隔を測定する. 前回のリターン入力から今回のリターン入力ま…

w3mのステキなところ

w3m

軽い! 意外と普通に使える vi風キーバインドとかじゃなくて、本物のviでテキスト編集ができる キーボードだけで操作できる 設定ファイルが単なるテキストファイルなので、gitに突っ込めば簡単に設定の共有ができる ブックマークが単なるテキストファイルなの…

算数にチャレンジ!(途中)

30分プログラム、その438。算数にチャレンジ!!より。うまくいかなかったけど、一応。 3ケタの整数を、繰り上がり計算がないような2つの整数A、Bの和にすることを考えます。例えば、532という数ならば、「A=111、B=421」や、「A=21、…

算数にチャレンジ

30分プログラム、その437。算数にチャレンジしてみた - こげこげ堂はてな支舗より。 1〜512の数の書かれたカードが1枚ずつ、左から小さい順に、「1,2,3,4,・・・,511,512」と並んでいます。いま、次のような作業を行うことにします。ア…

多相バリアントと木構造

多相バリアントでも、木構造のデータ型を定義してしまうと拡張が大変だよね、というお話。 ツリー構造じゃない場合 適当にデータ型を定義するよ! type value = [ `Var of string | `String of string ] 多相バリアントだから簡単に拡張できるね、やった! t…

フィボナッチ数が黄金比に収束するかの確認

30分プログラム、その436。またもmixiの課題コミュからぱくってきた。フィボナッチ数列の第1項と2項を自身で決め、黄金比に収束するまで結果を出力するプログラム。より。 四則演算くらいしか書けないうちには荷が重過ぎる課題です・・・orz よろしくお願…

ローマ数字を整数に変換

30分プログラム、その435。ローマ数字を整数に変換してみる。 またもmixiの課題コミュからぱくって、ローマ数字計算機の前段階のローマ数字の変換部分を作ってみた。 簡単だと思いきや、割と難しい。こんなんを常用していた昔のひとはすごいと思う。 使い方 …

シェルスクリプトでクリップボードにコピー

シェルスクリプトでクリップボードに文字列をコピーする方法。 Linuxの場合 $ echo -n hoge | xsel -b Macの場合 $ echo -n hoge | pbcopy

終了コードを反転させるプログラム

30分プログラム、その434。終了コードを反転させるプログラムを書いてみた。今、書いてるプログラムの単体テストの結果が長すぎるので、grepで必要な情報だけ取り出している。 ./test/runner | grep FAIL でも、これだと失敗したときの終了コードが0で、成功…

ランダムに行を抜き出すプログラム

30分プログラム、その433。テキストファイルからランダムに行を抜き出すプログラム。 1000行ぐらいあるCSVから特定のデータを抜き出さないといけないらしい。しかも、かなり表記にゆれがある。とりあえず、適当にデータを抜き出して傾向を調査しようと思う。…

fish(friendly interactive shell)メモ

「fish」(Friendly Interactive SHell)を使ってみる - レオメモ - s21gを読んで、とってもクールなシェル、fishを知ったので試してみる。とりあえずドキュメントを読んで、zshユーザのボクが素敵だと思った機能をメモしてみる。 参考 http://www.fishshell.o…

ProducerConsumer再び

30分プログラム、その432。前にやったProducerConsumerをもう一度やってみる。 前はJavaの実装を素直にErlangに移植しただけだった。でも、Channelがウェイトセットを持っているのがダサい。 じゃあ、なんでウェイトセットが必要かというと、ProducerやConsu…

E4Xまじやばい

初めてのActionScript 3.0 ―Flashユーザーのためのステップアップガイドを読んでいたら、E4Xがやばすぎた。 いままではXMLをオブジェクトとして扱える機能だと思っていたけど、全然違った。 XML要素を作る var xml = <product> <model stock="yes"> <name>foo</name> <price>100</price> </model> <model stock="no"> <name>bar</name> <price>200</price> </model> </product>; へー、XMLをその…