2009-02-01から1ヶ月間の記事一覧

「ログイン・ログアウトの解析」のパーサ部分

30分プログラム、その535。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_022をやってみよう。 が、残念ながら30分では終わりそうにないので、今日はパーサ部分だけにチャレンジ。リスト操作とパターンマッチを駆使すればできそうな気がするけど…

一番長いファイル名は?

30分プログラム、その536。一番長いファイル名が何か調べてみる。 ファイルの一覧の取得はlsやfindに任せればいいので、文字列の長さによるソートをコマンドとして実装した。ネットワークがない環境で書いたので、infoやmanを駆使しようと思ったけど、さっぱ…

tinyurl.comを使ったURLの省略

30分プログラム、その535。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_039のようにtinyurl.comを使ってURLを省略してみよう。 要するに、http://tinyurl.com/api-create.phpにURLを渡してやればいいらしい。 $ curl http://tinyurl.com/api-cr…

大文字と小文字の全ての組み合わせを表示

30分プログラム、その534。Loading... via http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_100。 最初は文字列を文字のリストに展開したあと全組合せを再帰で計算しようとしたところ、ネストリストが面倒くさそうだったので止めて、文字列のリスト…

ErlangでGUI(3) 〜レイアウト〜

30分プログラム、その533。ErlangでGUIをやってみよう、レイアウト編。 packerというwidgetを使うとレイアウトを制御できるらしいので、やってみた。X方向とY方向の重みを設定してpackerをつくったあと、そこにボタンなどを配置していく。なんとなくJavaのGr…

過去一時間で一番よく使ったコマンドは?

30分プログラム、その532。昨日のやつのリベンジ。 過去一時間で使ったコマンドの数を数えてみる。zshの場合、 $ history -i 1 | runghc freqCmd.hs fc 18 history 8 cd 3 git 1 google 1 irssi 1 man 1のようにしてやればいい。-iでYYYY/MM/DDl形式で時刻を…

OCamlの人気がCOBOLに劣るだと・・・

LinuxQuestio.orgメンバーが選ぶ2008年のプログラミング言語 via caml-listより。 まさか、OCamlが0票とは。

過去一時間で一番使ったコマンドは?(失敗)

30分プログラム、その531。過去一時間で一番使ったコマンドを数えてみよとして失敗した。 よく考えたら、過去一時間ってことは現在時刻から一時間を引かないといけなんだよね。先頭と同じ時刻のやつだけとってもダメなんだよね。 22:20 ls 22:40 git 23:00 e…

Windowsを使おうとがんばってたら、いつのまにかDebainをインストールしてた

要旨をWordで書けと指令が下る 一通り悪態をついたあと、Windowsを起動して書き上げる せっかくだしWindowsを使ってみるか 周りの人に訊いて、http://homepage1.nifty.com/salt/VD.htmとhttp://www.valley.ne.jp/~com/tac/index.htmを入れる Cygwinと日本語…

日本語ファイル名のファイルを探し出せ

30分プログラム、その530。日本語ファイル名のファイルを探し出すプログラム。 日本語ファイル名を持つファイルって、コマンドラインから操作するとき、とってもうざいですよね。ホントやめて欲しいものです。 とはいえ、ボクもうっかり日本語ファイル名のフ…

Fluent Interface(流れるようなインタフェース)をPythonでやってみよう

30分プログラム、その529。ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーションを読んでいたら「言語内にDSLを作りたいときは、Fluent Interface(流れるようなインタフェース)を使うといいよ!」と書いてあった。 そう…

イテレーションマネージャになりたい

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーションでイテレーションマネージャという役割を知った。 曰く、 開発チーム内のコミュニケーションを調節する 開発者の代わりに顧客と対話をして、要求を引きだす 顧客の…

パスにある全実行可能ファイルの数(Path::Classの練習)

30分プログラム、その528。モダンなPerl入門 - モダンなPerl入門を眺めていたら、ファイル操作はPath::Classを使うのがモダンらしい。 というわけで、試しにPath::Classを使って、パスにある全実行可能ファイルの数を数えてみた。ちょっと前に「死蔵している…

ErlangでGUI(2)

30分プログラム、その527。ErlangのGUIライブラリを使ってみよう、その2。(前回のやつ: id:mzp20090209:gs) ボタンを押すと押した回数を表示するプログラムを書いてみた。イベントに反応して、画面を更新する、というのをやりたかったので。 『ボタンがクリ…

ランダムソート(笑)をHaskellで

30分プログラム、その527。ランダムソート(笑)をHaskellでやってみた。 なんかおもろそうだな、と気楽に始めたら意外と難しかった。 Haskellで乱数といえば、Stateモナドだよな Stateがいるから、Data.Listのsortが使えない -> sortの再実装 比較関数がState…

0から51の中から重複のない5つをランダムに選ぶにはどうしますか

30分プログラム、その526。0から51の中から重複のない5つをランダムに選ぶにはどうしますか - うんたらかんたらRuby - Rubyistをやってみる。 自分で配列をランダムに入れ替える関数を書いていたら、Gauche Users’ Reference: Topにshuffle関数を見つけた。…

Python3.0のアノテーションを使ってみる

30分プログラム、その525。What’s New In Python 3.0 — Python v3.0.1 documentationを眺めていたら、関数アノテーションがおもしろそうだったので、試してみる。 # 引数にアノテーションをつける def compile(source: "something compilable", filename: "w…

読書メータの確認ダイアログがうざい

最近、読書メータに登録しました。が、本を登録するたびに確認ダイアログがでてくるのが、面倒くさい。 というわけで、これを無効にするユーザユクリプトを書いてみた。 ダウンロード http://gist.github.com/61709.txt?.user.js 注意点 Opera9.6では動きます…

1234567890秒までの残り時間を表示する。

30分プログラム、その524。UNIX time が「1234567890」になる | スラドによれば、今年のバレンタインデーにUnix秒が1234567890秒になるそうです。 というわけで、1234567890秒までの残り時間を表示するプログラムを書いてみよう。# Hatena::Countingでもやろ…

Macの必須ソフト

Mac

最近、Macユーザになったid:hiru926のために、研究室のホワイトボードにMacの必須ソフトがリストアップされつつあります。 で、そこにボクが書いたやつ。追記(2009-06-19): いろいろ変ったので更新しました。 買ったやつ VMware Fusion Keynote - 意外とNumb…

ErlangでGUI(1)

30分プログラム、その523。ErlangでGUIにチャレンジ。 プログラミングErlangにはio_widgetというモジュールが登場するけど、これは標準ライブラリではなくて筆者が本のためにつくったモジュールらしい。 調べてみたところ、gs(= Graphic System)モジュールが…

Arrowを使って、lengthを書こう

30分プログラム、その522。Arrowを使って、lengthを書いてみた。 最初、Arrowでリストってどうやって処理すればいいんだ、と頭をかかえたけど、Arrow の do 記法 - zyxwvの日記を見たら、 listcase [] = Left () listcase (x:xs) = Right (x,xs) という関数…

リファクタリングした

http://bitbucket.org/mzp/scalet/ 思いつくまま書いていたら、だいぶコードがへんな臭いを発するようになってきた。なので、Scala特有のimplicit converionやExtractorを使ってばりばり書き直してみた。その間に、「Extracotrの挙動が変だー」とTwitterで叫…

Arrow.hsを読もう〜その2〜

Arrow.hsを読もう〜その1〜 - みずぴー日記の続き。Arrow.hsを読もう、30分で読める範囲だけ。 ArrowApply instance ArrowApply (->) where app (f,x) = f x 単なる適用。(->)以外だと嬉しいんだろう、たぶん。 leftApp -- | Any instance of 'ArrowApply' c…

Scalaコンパイラを落とす3行のコード

既知のバグ(NullPointerException when using case class with function-valued field · Issue #1087 · scala/bug · GitHub)だったようです。 Scalaコンパイラを落とすコード。 class A case class B extends A case class C(f : Unit => Unit) extends B $ …

Arrow.hsを読もう〜その1〜

Arrow.hsを読もう、30分で読める範囲だけ。 ホントは30分でArrowを使って30分で何か作ろう、ってのがやりたいんだけど、まだプログラムが書けるほど理解していない。 しょうがないからコードリーディングをしよう。 どこにあるの? http://darcs.haskell.org/…

BlueprintCSSでクールなフォームを作ろう

30分プログラム、その521。久しぶりにJavascriptで何かを作りたくなったので、BlueprintCSSでフォームを作ってみた。http://howdyworld.org/twp/ 予定でTwitterのユーザ名をいれると、一番最初にポストしたつぶやきが表示されるようになるはず。BlueprintCSS…

キーボードだけでダイアログ操作

Mac

id:banjunさんに「キーボードだけで、ダイアログ操作がしたかったら、フルキーボードアクセスを有効にしないとだめですよ」と言われたので設定した。参考: ダイアログボックスのボタンがキーボードで選択できなくて不便! | Mac | できるネットちなみに、id:…

Scalaで開発するためにDebianをインストールしようぜ

最近、Scalaで遊んでるけれども、MacのScalaは起動が遅すぎる。 VMware FusionにいれたUbuntuで開発してもいいけど、端末しか使わないのにGNOMEを立ち上げるのはメモリがもったいない。それほど、メモリが潤沢にあるマシンでもないし。 というわけで、Debian…

ファンクション倶楽部のスライドを読んだ

昨日、@takkanmさんに教えてもらったファンクション倶楽部での発表を読みました。 何が分からないから分からないレベルから、何が分からないかが分かる程度にはレベルアップした気がする。 読んだやつ 発表動画 発表スライド あとArrow.hsも適宜参照した。 A…