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

アドエス予約

W-ZERO3 esの液晶が割れたので、ウィルコムストアに持っていったら、修理には結構お金がかかると言われた。 だったら、修理するよりもアドエスを学割付きで買ったほうが安いので、アドエスを予約してきた。iPhoneのほうが欲しいんだけどなぁ。

URLエスケープ

30分プログラム、その194。SchemeでURLエスケープを実装してみる。URLエスケープは以下のルールで行なわれる。 ピリオド("." アスキーコードは0x2E)、 マイナス("-" アスキーコードは0x2D)と アンダーバー("_" アスキーコードは0x5F)はそのまま アスキー文字…

CSS書き換え

せっかく作ったので、YaCSSを使って、CSSを書き直した。 あまり見た目は変えていないけれど、CSSはだいぶ変っていたりする。で、その時YaCSSのバグにいくつか気がついたので、あとで修正したやつを公開します。意外とCSSのパースは奥が深い。

Javascriptで挫折

JSONをULで表現して楽々把握という車輪の再発明をしようとして、途中で挫折した。挫折したポイントを列挙すると、 jQueryのmapが使いずらい。配列を返すと、勝手に結合される 配列とオブジェクトを区別したいのに、区別する方法が思いつかない やりたかった…

単語の頻度のカウント(シェルスクリプト版)

30分プログラム、その193。id:mzp:20071127と同じく単語の頻度のカウント。 シェルスクリプトで再現する。お酒飲んで、よっぱらっているので簡単なやつで許してください。たぶん詳解 シェルスクリプトに同じやつが載っていた気がする。 使い方 $ ./freq word…

Tumblr

quoted.org Tumblrでニヤリとするようなセリフやらアメリカンジョークやらを集めています。 週に1度、追加するかどうかなのでRSSに登録して、気長に待ってくれると嬉しいです。

アイコン格好いい

gawkの最初に画像入れているのが格好いい。 CreativeCommonsな画像を探してマネするかもしれない。

単語の頻度のカウント

30分プログラム、その192。前回の単語分割プログラム(id:mzp:20071126)を使って、単語頻度をカウントする。 コンピュータプログラミングの概念・技法・モデル(asin:4798113468)と同じことをやっているだけ。 確か、trとsortとuniqを併用して同じことができた…

単語ごとに区切るプログラム

30分プログラム、その191。 文字列を渡されると、それを単語ごとに区切るプログラム。 コンピュータプログラミングの概念・技法・モデル(asin:4798113468)に載っていたアルゴリズムのぱくり。でも記憶を頼りに書いているので、多少違っているかもしれない。 …

日付の引き算

30分プログラム、その190。日付をいれると何日前か表示する。 findの-mtimeとかは何日前かを元に計算するので、そのためのプログラム。昔、似たプログラムを書いた気がする。 使い方 $ dday 2007/11/25 1 $ dday 2007/11/1 25 # 2007/10/31に編集したファイ…

更新日時ごとのグループ分け(その2)

2日ぶりの30分プログラム、その189。id:mzp:20071121の改良版。 shiroさんにgauche.collectionを教えてもらったので、それを使ってみる。 使い方 $ gosh mtime.scm * 2007/07/19: 124 2007/07/20: 1 2007/07/23: 1 2007/07/26: 1 2007/07/27: 1 2007/07/29: …

タイピング速度

speedtestやってみた プログラマは英語に強いのか?英語のタイピング速度チェッカーゲーム - ホームページを作る人のネタ帳ミーティング直前の現実逃避。

更新日時ごとのグループ分け

30分プログラム、その188。ファイルを更新日時ごとにグループ分けするプログラム。もうちょっと練れる気がするけど、時間が来たのでここまで。もしかしたら、またそのうち続きをやるかもしれない。 使い方 $ gosh mtime.scm *.scm | sort +0 2007/06/19: 1 2…

camelCaseとcamel_caseの相互変換

30分プログラム、その187。キャメルケース(likeThis)とアンダースコア(_)区切り(like_this)の相互変換。 正規表現を使えば簡単だけれども、あえてそれを使わずに。 使い方 ;; アンダースコア区切りからキャメルケースへの変換 gosh> (under->camel "hello_wo…

URLの抽出

30分プログラム、その186。HTMLからのURL抽出。 上で書いたワンライナーをごにょごにょしたやつ。特にいいネタを思いつかなかったので。変ったのは、 ワンライナーじゃなくなった マジックナンバーがなくなった ソートと重複削除を追加 使い方 $ curl -s htt…

URLの抽出(ワンライナー)

ファイルからURLというかドメイン名だけを抽出するワンライナー。 ruby -ruri -e 'puts $<.read.scan(URI.regexp("http")).map{|x| x[3]}' $ $ echo 'http://howdyworld.org' | ruby -ruri -e '...' $ ruby -ruri -e '...' index.html

autoinsertっぽい何か

30分プログラム、その185。Emacsのautoinsertっぽいことをやるコマンドラインプログラム。今までautoinsertでプログラムの先頭に#!やらライセンス情報やらを挿入していた。かなり便利。ただ、最近Vimなども使うようにしているのでEmacsでしか使えないのはい…

たらいまわし関数

30分プログラム、その184。Rubyでたらいまわし。輪講の準備でメモ化(memoization)を調べてたら、たらい回し関数のことを思い出したので書いてみる。 曰く、遅延評価だと早くなる関数らしく、Haskellってすげーという文脈でよく登場する。普通に計算するやつ…

`which ls`

zsh

zshで=lsとやると`which ls`と同じになることを発見した。 つまり、 $ echo =ls /bin/ls $ echo `which ls` /bin/ls ということ。これが結構便利。 # gccはどこへのシンポリックリンクなのかな? $ ls -l =gcc lrwxr-xr-x 1 root wheel 7 11 15 09:59 /usr/bi…

camlp4で四則演算。

30分プログラム、その183。camlp4で計算機をつくってみる。いきなりcamlp4をバリバリつかうのは大変そうなので、まずはパーサ部分だけをつかって計算機を作ってみた。 これは、パーサとして使うのもありかもしれない。ただ、どうも字句解析器をつくるのがえ…

mapreduce

30分プログラム、その182。OCamlでmapreduce。 OCamlのチャネル(Event.channel)を覚えたので、さっそく使ってmapreduceを実装してみよう。正直、これであってるのかあまり自信がない。自分はmapreduceを次のように理解している。 mapreduce f g init xsとい…

ozでHello,world

30分プログラム、その181。コンピュータプログラミングの概念・技法・モデル (IT Architects' Archiveクラシックモダン・コンピューティング)を買ったので、mozartを使えるようにする。IDEでの実行方法は書いてあったけど、やっぱり単体で実行してみたいよね…

30分プログラム自動生成

30分プログラム、その180。30分プログラムのためのファイルを自動生成するようにした。毎回、数をカウントしていくのは面倒。今までは、日付から計算していたけれど、これだと一日休むと計算式を修正しなくちゃいけない。 そこで、「180-croquis_file.pl」の…

FTPで日本語が使いたい

30分プログラム?、その179。FTPで日本語を使えるようにする。RubyでFtpプロクシを作るつもりだったんだけど、途中でdelegateを使えばいいことに気がついた。 # こちらがUTF-8、サーバがSJISの場合 # FTPCONF="ccx:any"にしないと日本語ファイルがダウンロー…

ガウディ本を買った

ガウディ本ことコンピュータプログラミングの概念・技法・モデル (IT Architects' Archiveクラシックモダン・コンピューティング)を買った。ガウディは好きなので、表紙にひかれたののも否定できない。曰く「括弧の嫌いな人のためのSICP」らしい。

30分プログラムリスト

30分プログラム、その178。id:20070529:flistに機能追加。 はてブのブックマーク数を表示するようにした。 使い方 $ perl croquis_list.pl ~/c/docs/hatena/*.txt *list*[30分プログラム]30分プログラムリスト **Perl - [http://d.hatena.ne.jp/mzp/20070416…

Smart*CSSっぽい何か

http://howdyworld.org/yacss/index.htmlで最新版を配布しています。30分+プログラム、177。Smart*CSSっぽいやつ。Smart*CSSは以下のように記述したCSSを動的に変換するPHPスクリプト。 div.entry{ div.title{ ... } div.section{ ... } } これとほとんど同…

Camlp4メモ

http://www.jmuk.org/~mukai/camlp4tut.htmlを読んだメモ。 プリプロセッサ camlp4は、構文木を変形することでOCamlの構文を拡張する。Lispのマクロと目的は同じ camlp4は字句解析器、構文解析器、抽象構文木が独立している。だから、構文拡張以外にも利用で…

Camlp4を勉強しよう

http://www.jmuk.org/~mukai/camlp4tut.htmlを読んでみる。 噂によるとcamlp4を覚えるとOCamlでローカルopenや内包表記、モナドが使えるようになるらしい。Lispのマクロのようなものだと想像してるんだけど、どうなんだろう。

グロブの展開

30分プログラム、その176。[n-m]という形のグロブを展開する。例えば、zshだと $ rm tmp[0-2]とやるとtmp0、tmp1、tmp2がまとめて削除できる。このような文字列の展開をSchemeでやってみる。 使い方 gosh> (expand-glob "a[0-3].txt") ("a0.txt" "a1.txt" "a…