2008-11-01から1ヶ月間の記事一覧

バッテリーの残量表示

30分プログラム、その426。HP2133に入れているUbunutuのウインドウマネージャをRatpoisonにしたら、バッテリー表示が消えてしまった。 でも、バッテリー表示のためにGNOMEにはもどれない体になってしまったので、簡単なバッテリー残量表示プログラムを書いて…

HP2133にUbuntu/Ratpoisonを入れるためのメモ

HP2133にUbuntu/Ratpoisonを入れるためのメモ。みんなもRatpoison使うといいと思うよ。 わりと情報がまとまっているところ LaptopTestingTeam/HP2133 - Ubuntu Wiki - Ubuntuをいれるための方法 ratpoison i18n: The Simplest Window Manager Ratpoisonがロ…

IDがOSの名前の人にブックマークされた!

はてなブックマーク - AlchemyはLLVMをAS3に変換してるらしい - みずぴー日記

ならしコストによるQueue

30分プログラム、その425。HaskellでQueueを作ってみた。関数型言語でキューといえばamortizedなキューだと思ったので、そちらで。ところで、ボクが最初に読んだ本(コンピュータプログラミングの概念・技法・モデル (IT Architects' Archiveクラシックモダン…

Gauche-FUSEを試してみた

id:GemmaさんがGauche-FUSEというライブラリを作ったようなので試してみた。 問題のoutputz.scmを動かしてみるとinvalid argumentと言われた。でも、sudoを外して、一般ユーザで動かしてみたら、普通に動作した。ちなみに環境は、Ubunutu 8.10 + FUSE 2.7.3 …

AlchemyはLLVMをAS3に変換してるらしい

id:amachangの記事や、公式のFAQを読んでみたけど、AlchemyはLLVMをSWF/SWCに直接変換せずに、いったんAS3に変換してるらしい。 How does Alchemy work? Alchemy works by converting LLVM bytecode to ActionScript 3.0 (AS3) source through an Adobe-auth…

Fuzzing用ファイルジェネレータ

30分プログラム、その424。ファジング:ブルートフォースによる脆弱性発見手法を読んでいるときに、テスト用のテストデータのルールをもっと宣言的に書ければいいのに、と思ったので試してみる。 例えば、 def point = "(" ~ digit ~ "," ~ digit ~ ")"と書く…

文字のヒストグラム

30分プログラム、その423。文字のヒストグラムを作ってみよう。 うちの弟が学校の課題で、文字列をいれると使っているアルファベットの数を表示するプログラムをCで作っていた。 $ ./a.out 文字列を入力してください: hoge 使っているアルファベットは: e ..…

"seq a z"でaからzを生成するコマンド

30分プログラム、その422。"seq a z"でaからzを生成するコマンド。 前にseqに感動したので、わりとよく使っている。いちばん使うのがダミーファイルの生成なんだけど、ダミーファイルが数字だけというのはちょっと読みづらい。 というわけで、seqの文字版。…

Emacsを終了なんてしねーよという人のためのoutputz.el設定

auto-save-buffersとoutputz.elを併用していると、大量のリクエストが投げられるのでいやーな気分になります。で、バッファをkillしたときやEmacsを終了したときに投げるようにする設定があります。http://d.hatena.ne.jp/yaotti/20081121/1227252525でも、E…

リファクタリングが大好きな人のためのoutputz.el設定 -削除した文字数も記録したい!-

outputzは書いた文字数を記録してくれるWebサービスだけど、リファクタリングとかだと削った文字数を記録してくれるとうれしいよね、みたいな話を今日してた。というわけで、とりあえずoutputz.elの設定を書き換えて削除した文字数も記録するようにしてみた…

特定の行が含まれていると異常終了するプログラム

30分プログラム、その421。特定の行が含まれていると異常t5終了するプログラム。 ボクはOUnitを正しく使いこなせていないらしく、エラーが発生しても終了コードは0のままだったりする。 $ omake check; echo $? ... FAIL: base module test:0:range OUnit: e…

ErlangでHTTPクライアント

30分プログラム、その420。ErlangでHTTPクライアントをば。 なんかのクローラ作りたいなー -> やっぱりクローラといえば並列して動かしたいよな -> 並列といえばErlang! というわけで手始めにHTTPでアクセスする方法を調べてみた。便利なライブラリが標準添…

CygwinでWin32API

30分プログラム、その420。たまにはC言語と遊んでみよう。 C言語といえばWin32APIということで、CygwinでWin32APIを読んでみた。 わりとあっさりできて、驚いている。Cygwinすげーな。とこで、今回はWindowsでプログラミングする必要があったんだけど、Windo…

FirefoxでShift+矢印でリンク移動 by GreaseMonkey

ボクのお友達が、OperaのShift+矢印でのリンク移動をGreaseMonkeyで実現してました。 『これは、公開するべきだ』と言ったらブログがないと言われたので、とりあえずgistに置いておきますね。 CrossFire for GM · GitHub 追記(2008-11-27) バージョンアップ…

objcopyでCのシンボル置換

http://q.hatena.ne.jp/1227069551ボクも昔、同じようなことがやりたかったことがあります。 で、そのときはよくよく考えるとソースコードのシンボルを置換しなくても、最終的な成果物のシンボルが置換されていればいいことに気がついてので、objcopyの--red…

ゆとりなボクだって、組込みプログラミングで遊びたい

せっかく名大にいるわけだし、TOPPERSとかの組込みプログラムで遊びたい。でも、ゆとりなボクには、ハンダづけとはか厳しすぎる。しかも、がんばって作っても、LEDが光るだけっていうのもちょっと・・・。カラーな液晶とかのリッチな出力がついていて、USBで…

readを作ってみよう

30分プログラム、その419。そういえばshowは結構書いたことあるけど、readは書いたことがなかったことに気がついたので書いてみた。 正直、良くわからなん。どうも中置演算子の優先順位を考慮してreadを書かないといけないっぽいんだけど・・・。まあ、deriv…

ActionScript3のthisが関数単位のスコープだよ

AS3

AS3でプログラムを書いている人、ほぼ全員が混乱しているthisのスコープの話。 あれば実は、クラスごとにthisが決まるわけじゃなくて、呼び出されるたびに決っているんだ。 thisは関数の隠し引数 AS3で全ての関数は隠し引数として、thisを受け取っている。 f…

『OCamlくんと友だちになろう!』

http://www.wankuma.com/seminar/20081206nagoya05/Default.aspx http://www.ustream.tv/channel/wankuma12/6のわんくま同盟 名古屋勉強会で『OCamlくんと友だちになろう!』というセッションがあるらしい。会場のほうはもう満員らしいので、ustreamのほうで…

乱数を生成するfor..yield

30分プログラム、その418。mapやらfilterを定義すれば、俺々データ構造でもforが使えるらしいので、試してみる。 というわけで、for(n ちなみにscala.Randomはdeprecatedで、scala.util.Randomを使うべきらしいけど、ボクのScala処理系は古いらしくてscala.u…

あなたが今まで打ったなかで一番長いコマンドは?

30分プログラム、その417。今までで打った中で一番長いコマンドが何か気になったので、調べてみた。 使い方 # そのままだと見ずらいので、重複を削除 $ gosh 417-long_hist.scm ~/.history | sed 's/^.*;//' | uniq : 1221357578:0;/System/Library/Framewor…

seqコマンドをPythonで。

30分プログラム、その416。seqコマンドをPythonで。 id:Gemmanさんがステキなコマンドを使っていたので、Pythonで再現してみる。 使い方 # 指定しないと1が始点 $ ./seq.py 5 1 2 3 4 5 # 2からスタート $ ./seq.py 2 5 2 3 4 5 # 2づつインクリメント $ ./s…

自前でglobのマッチング

30分プログラム、その415。自前でglobのマッチングをやってみた。 いきなり正規表現にチャレンジするのは大変そうだったので、まずは簡単そうなグロブから。それも使えるメタ文字は*だけの非常に単純なやつで。 本当は、グロブのマッチにはバックトラックが…

せっかくなのでRubyでも

>> (0..1000).to_a.to_s.scan(/0/).size => 193

0〜1000に含まれる0をカウントする

練習 - krystal: プログラミング超初心者(文系) - Rubyist via 0〜1000に含まれる0をカウントする - http://rubikitch.com/に移転しました30分プログラム、その414。0から1000までの0の個数を数えてみる。 せっかくのErlangなのでmapreduceで。mapreduceのコ…

Haskellでマーシャリング(showとread)

30分プログラム、その413。Haskellでマーシャリングにチャレンジしようとして、showとreadで十分なことに気がついた。 でも、せっかくなので途中の状態を保存して、中断可能な関数を書いてみた。たぶん、id:Gemmaさんあたりに継続使おうぜ、とか言われるんだ…

Monad in Scala

Programming in Scala, Third Editionを読んでいたら、 Scalaのforはコンパイル時にmapとかfliterとかの関数呼び出しに展開されるよ。最終的に型があっていれば、mapとかの型に制限はないんだけど、以下のような型が一般的だよ。 // CはコレクションのC clas…

Scalaって末尾再帰の最適化してるの?

30分プログラム、その412。id:athosがScalaが末尾再帰の最適化してるか気にしてたのでコードを書いて確かめてみた。 ちなみに、id:athosはjavapで逆コンパイルしてみてgotoになっていることを確認したらしい。 使い方 // 末尾再帰じゃないやつはスタックオー…

任意引数のmap

30分プログラム、その411。昨日のやつにインスパイアされて、任意引数を受けとれるmapを作ってみた。 gosh> (map* + '(1 2 3) '(2 3 4)) (3 5 7) 実際のところGaucheのmapは、任意個の引数を取れるから必要はないんだけど。 使い方 gosh> (map* (+ <> 1) (li…