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

はてなグループにキーワードを登録する準備

30分プログラム、その630。はてなグループに大量にキーワードを登録したくなったので、その準備をしてみた。はてなグループにはCSV形式でキーワードをインポートできる。 CSVファイルは word,body "リンク集","- [http://g.hatena.ne.jp/:title] - [http://g…

配列のシャッフル

30分プログラム、その629。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_014やnanigac.comにインスパイアされて配列のシャッフルにチャレンジしてみた。配列のシャッフルはリストの要素のシャッフル - みずぴー日記でもやったけど、上記のサイト…

Engadget JapaneseのHaruka Uedaさんがすごいらしいので調べてみた

id:Yuichirouが「最近のEngadget 日本版 : 最新ガジェットと家電、テクノロジーのニュースとレビューの記事は複数のひとが書いてるんですよ。で、そのなかでもHaruka Uedaさんが主宰者のIttousaiさんに迫る勢いで記事を書いてるんですよ。実際にどれぐらいの…

グレイコードの出力

30分プログラム、その627。anarchy golf - Gray code via はてなグループをやってみる。 最初は、2進数をずらずらと並べればいいと思ってたけれども、グレイコード - Wikipediaを読むとどうもそうではないらしい。 細かいことはよくわからなかったけれども、…

3桁ごとにカンマで区切る

30分プログラム、その626。3桁ごとにカンマで区切ってみよう。 長い整数って読みづらいじゃないですか。そこで、整数を与えると3桁ごとにカンマを挿入して文字列化してくれる関数を書いてみよう。C#だとstring.Format("{0:#,#}",123456789)でできちゃうらし…

文字列に含まれる単語の最初の文字を大文字にする

30分プログラム、その625。エロと風俗情報満載 どう抜く?をやってみよう。 要するに、"hello world"を与えたときに"Hello World"を返すプログラムを作ればいいんだよね。 ライブラリを探せばずばりそのものの関数がありそうな気がしたので、なるべくライブ…

Schemeでuniq -- 隣り同士で重複してる要素を消す

30分プログラム、その625。隣り同士で重複してる要素を消すほうのuniqを作ってみる。リスト中の全重複を消す関数もuniqとか呼ぶけど今回作ったのは、隣り同士の重複を消すだけのやつ。全重複を消すほうのやつは昔やったからね。 http://d.hatena.ne.jp/mzp/2…

RubyのForwardableモジュールをPythonでも

30分プログラム、その624。RubyのForwardableモジュールをPythonに移植してみた。委譲 とか好きだからー。Forwardableは、単に委譲するだけのメッソドを手書きするのはバカらしいから、簡単に書けるようにするモジュール。くわしくは、るびまを見るといいと…

いまだに継承を使うタイミングが分からない

いまだに継承を使うタイミングが分からない。もうちょっと正確にいうと実装継承を使うべきタイミングが分からない。インタフェースを継承するのは理解できるよ。型をそろえたり、同一視したいんでしょ。 よくあるコードだとこんな感じ。ちゃんと動くかどうか…

簡単なWebサーバ

ローカルに置いてあるときと、Webサーバで動いてるときで挙動が違うプログラムってありますよね。 例えば、 ローカルにあるSwfはネットワーク通信できないけど、Webサーバ上にあるSwfはできる*1 ローカルにあるHTMLは相対パスしか使えないけど、Webサーバ上…

GAE/JでOCamlを動かそうとして挫折した

GAE/JとThe website has movedを組み合わせたら、OCamlでWebアプリが作れるんじゃね?と思ったのでチャレンジしてみたけど、うまくいかなかった。 ocaml-java(Cadnium)はThreadを使っているけど、GAE/JはThreadを作れないらしい。(参考:http://code.google.c…

文字を中央に表示する

30分プログラム、その623。Cの宿題/文字列操作 - C/C++の宿題を片付けます@wiki - アットウィキをやってみた。 一定の文字からなる列sを読み込み、以下の条件を満たす同じ個数の文字からなる列tを出力するプログラムを作りなさい。 ただし、以下での単語と…

マクローリン展開によるsin関数

30分プログラム、その622。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_188にインスパイアされて、sin関数を書いてみます。 『マクローリン展開をそのまま実装すればいいんだろ、簡単簡単』と思ってら、わりと時間がかかってしまった。Intじゃ…

RubyでHaskell風のリスト操作

30分プログラム、その622。RubyにHaskell風のリスト操作を移植しました。 Rubyでコードを書いてるときに、take_whileとかが欲しくなることが何度かあったので、実装してみました。 メソッド内部で副作用を使っているのが何個かありますが、外から見たらちゃ…

ClojureのcondをSchemeでも使いたい

30分プログラム、その621。ClojureのcondをSchemeでも使いたい。ClojureのCondは余計な括弧を省略できるらしいです。 (define (f n) (cond (even? n) "this is even" (odd? n) "this is odd")) 括弧が本当に余計なのかどうかはよく分からないけれど、とりあ…

プログラム等価性クイズの答え

第2回プログラム等価性クイズ - sumiiのブログの答え。

wc、再び

30分プログラム、その620。昔にやったwcを再実装してみる。 which コマンドの実装の書き直し - forest bookを読んで、昔やったのをもう一度やってみるのもおもしろいかも、と思ったのでやってみる。 前にやったのはwc.py - みずぴー日記と実に2年以上前。 全…

Perlの関数適用の優先度とか結合方向が謎すぎる

こんなコードを書いても動いちゃうPerlってステキ。 join '',map { $_ ? '■' : '□' } split //,sprintf "%b",$s; 関数を繋ぐときに、括弧はおろか、なんの記号もいらないだなんて・・・。

バイナリクロック

30分プログラム、その619。http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_179にインスパイアされて、バイナリクロックをやってみよう。どういうのを作るかは、結果を見てもらったほうが早いと思う。 21:51:17 $ perl binary-clock.pl ■□■□■ ■■□□■…

start-stop-daemonで楽々デーモン化

start-stop-daemonを使うと、適当なプログラムを簡単にデーモン化できるらしい。バックグラウンドで動作させたり、PIDファイルを自動で作ったりしてくれるらしい。 でも、CentOSでは使えないのでどうしようかなぁ、と思っていたら、Cに移植したやつがあって…

gitのルートディレクトリに移動するスクリプト

zsh

一発で、.gitのあるディレクトリまで移動するスクリプト。 fpathの通ったディレクリに好きな名前で置いてください。 追記(2009-07-12) Re:gitのルートディレクトリに移動するスクリプト - みずぴー日記 - 永遠に未完成を参考に書き直しました。エラーチェッ…

HappyNumberの判定

30分プログラム、その618。C++の宿題/HappyNumber - C/C++の宿題を片付けます@wiki - アットウィキにインスパイアされてHappyNumberの判定をやってみる。 正整数a以上b以下のHappyNumberを求めるプログラムを作成せよ。 ただし、関数を使うこと。 HappyNumbe…

金額と枚数を指定した両替

30分プログラム、その617。金額と枚数を指定した両替(本当に分からないので教えてください4 - C・C++・C# 締切済み| 【OKWAVE】)をやってみよう。 金額と枚数を入力する. 硬貨,紙幣の合計が入力金額,合計枚数が入力枚数になる場合を1つ見つけるプログ…

体温を記録してくれるTwitterBot「熱はかったー」をリリースしました

これは何? @netsu_hakatterに対して体温をつぶやくと記録してくれるBotです。記録した体温はhttp://howdyworld.org/services/netsu/index.cgiで閲覧できます。 体調管理にご活用ください。 使い方 Twitterで「@netsu_hakatter 36.05度でした」のように体温を…

リングバッファ作ってみた

30分プログラム、その616。Pythonでリングバッファ作ってみた。Cの宿題/未分類 - C/C++の宿題を片付けます@wiki - アットウィキにインスパイアされて、リングバッファを実装してみました。 使い方 q = RingBuffer(4) q.add(10) q.add(11) q.add(12) q.add(13…

FC2 VPS契約して、やったこと

さくらのレンタルサーバでgitが殺されるようになったので、FC2 VPSに乗り換えました。 契約の流れ VPS 10G(Plesk付き、一ヶ月)を申し込む 銀行振込を選択 どこに振込先が表示されてるか分からない! しょうがないのでクレジットカードで支払う この段階でSSH…

正規表現ライブラリ書きました

暑いなー、と思って部屋でごろごろしてたら、いつのまにか正規表現ライブラリを書いてました。なにがおこったか、(ryまだ、直したいところがいくつかありますが、とりあえず動くようにはなったので公開しときます。 使い方 シグネチャはこんな感じ。 val reg…

n個以上条件を満す要素があったらtrueを返す関数

30分プログラム、その615。n個以上条件を満す要素があったらtrueを返す関数。@nobio0205がおもしろそうなことをつぶやいてた。 「n個の条件のうちm個を満たしたらtrue、それ以外ならfalse(満たしている条件の種類は 問わない)」っていうプログラムのスマート…

文字列の先頭と末尾にあるスペースの削除

30分プログラム、その614。文字列の先頭と末尾にあるスペースの削除 via http://gauc.no-ip.org/awk-users-jp/blis.cgi/DoukakuAWK_174。元のやつでは、正規表現による文字列置換をしてるけど、ここではdropWhileを使ってみた。別に正規表現が嫌いという分け…

経路からツリーへの変換

30分プログラム、その614。昨日やっていたやつ(id:mzp:20090630:tree)の逆変換。一晩寝たら、すんなり解けた。 (foo) (foo bar) (foo bar baz) (foo xyzzy) (foo baz) みたいな木の根から末端までの経路リストがあったとする。これから、木を再構築したい。 …