‘programming’ カテゴリーのアーカイブ

Cでのコマンドラインパラメータの受け方メモ

2010年5月3日 月曜日

Cのプログラムでコマンドラインからパラメータを受けたい訳ですが、自力でやろうとしてもargv経由で文字列配列が渡されるだけなので非常に面倒です(LL病な自分としてはハッシュで欲しい)。例えば以下のgrepコマンドの用に複数のパラメータを順不同で受けたいとかになると、かなり大変ですね。

$ grep -nH -I -R search_text *

そこで、なんか無いのかと思って調べてみるとgetoptを使えば良い事がわかりました。

(続きを読む…)

Cookpadの開発コンテスト24に「ごはんソムリエ」で参加した

2010年4月25日 日曜日

今日のweb界隈はCookpadの開発コンテスト24の話題で盛り上がっていた訳ですが、僕もギリギリ応募しました。タイトルは「ごはんソムリエ」です。ごはんソムリエはCookpadのレシピから和・洋・中から食べたいものを選択するだけで、主菜・副菜・汁物をバランスよく提示するサービスです。まとめて材料も表示するので買い物時も便利です。

ごはんソムリエ 画面キャプチャ

(続きを読む…)

LiveTopHatenarをChrome Extensionに移植してみた

2010年4月10日 土曜日

Chrome Extensions TechTalkのUstreamを見ていて、僕も作りたくなったので、去年作ったFirefoxプラグインのLiveTopHatenarを移植してみました。

Chrome LiveTopHatenar Capture Image

(続きを読む…)

Wordpressで、はてなダイアリーで言うところの「注目のエントリー」的なリストを表示する

2010年4月3日 土曜日

ブックマークされた数が多い順にエントリーを表示するのに重宝しているSBM_Popular_Entryですが、単純にブックマーク数が多い順だと中々リストの内容が変わらず、どうしても古い記事が上の方に来ます。そこではてなダイアリーで言うところの、注目のエントリー機能が欲しいなぁと思ったので、SBM_Popular_Entryに書き足してみました。このブログでは右側の「最近の注目のエントリー」が、書き足した機能で表示しているリストです。まぁ自分で「注目の」とか言うのは結構恥ずかしいのですけども。

(続きを読む…)

PythonでXMLの検証を行いたい件

2010年4月2日 金曜日

自前で出力したsitemap.xmlがgoogleにはじかれたので、XMLスキーマの検証処理をPythonでもやりたいなぁと思って調べてみたら、簡単に出来ました。さすがPythonということでメモ書きです。

(続きを読む…)

Pythonモジュールをダウンロード数でソートするPyPI Ranking作った

2010年4月2日 金曜日

CPANのpython版であるPyPIを見ても中々どのモジュールを使えば良いのか解らないなぁと思ったので、ダウンロード数でソートするサイトを作ってみました。名前はPyPI Rankingです。ややアレな響きがありますが、致し方ありますまい!本当はDjango-nonrelかKayframeworkを使いたかったのですが、app-engine-patchの練習用に取得したアプリケーションIDを使い回す関係で、仕方なしにapp-engine-patchを使っています。

アクセスはこちらから。

(続きを読む…)

GAE上ではジェネレータを保存出来なかった話

2010年3月30日 火曜日

先日ジェネレータを一旦保存しておいて、途中から再実行するというエントリを書きました。これで何がしたかったかと言うと、この方法を使うとリクエストあたりの30秒制限があるGAEでも、割と綺麗に擬似的な無限ループが表現出来るだろうと言う事で実験していました。もっと言えばGAEでクローラを作りたかった訳ですが、残念ながら出来ませんでしたという話です。

(続きを読む…)

Pythonのジェネレータを保存したいという話

2010年3月22日 月曜日

Pythonでも所謂ジェネレータを使えます。無限数列を求めたりする例がよく紹介されていますね。

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
def get_fib():
  (a, b) = (0, 1)
  yield a
  yield b
  while True:
    (a, b) = (b, a + b)
    yield b
 
def main():
  fib = get_fib()
  for i in range(10):
    print fib.next()
 
if __name__ == '__main__':
  main()

ジェネレータはnext()を呼ぶ度に新しい値を返す訳ですが、例えば5回next()を呼んでからジェネレータ自身を保存して置いて、後から6回目以降を呼び出したいというのが本エントリでの話です。

(続きを読む…)

MySQLが出力するCSVファイルをPythonで読みたい件

2010年3月8日 月曜日

ケースとしてはレアな気がしますが、MySQLのSELECT 〜 INTO OUTFILEで出力したCSVに対して、処理をしたい時があります。僕の場合はpythonでやるわけですが、MySQLが出力するCSVの形式がpythonデフォルトの物と違うようでハマったのでメモしておきます。

(続きを読む…)

Pythonで日本語を含んだリストと辞書をpretty printしたい件

2010年3月5日 金曜日

Pythonでコード書いてると、1回は残念だなぁと思うポイントとして表題の件があると思います。具体的には以下です。

# リストも辞書も出力がお世辞にも良いとは言えない。。
>>> print ['あ', 'い', 'う']
['\xe3\x81\x82', '\xe3\x81\x84', '\xe3\x81\x86']
>>> print {'title':'ねじまき鳥', 'author':'村上春樹'}
{'author': '\xe6\x9d\x91\xe4\xb8\x8a\xe6\x98\xa5\xe6\xa8\xb9', 'title': '\xe3\x81\xad\xe3\x81\x98\xe3\x81\xbe\xe3\x81\x8d\xe9\xb3\xa5'}

日本語がバイト表現な上、全要素が1行で表示されています。これではちょっとprintデバッグするにも萎えますよね。複雑な辞書を出力した場合なんかは、出力された文字列の整形にかなりのパワーを裂かれること請け合いです。

(続きを読む…)