python
savefig() で画像に保存しちゃうと、矩形拡大とかができないし、 show() しちゃうと閉じたら消える。インタラクティブなまま保存できたらよいのにと思って調べてみた。https://stackoverflow.com/questions/4348733/saving-interactive-matplotlib-figures h…
エントリPython2.7でGMailから日本語メールを送信するではテキストメールを送れるスクリプトを書きましたが、HTMLメールだとか添付ファイルはつけられないので、すぐに不満がでてくると思います。というか出てきました。手元では都度少しづつ改造して使って…
止まっちゃうプログラムの応急処理として、pickleでキャッシュを永続化するメモ化関数を書いたのでついでにgistにあげました。いつかまた使う気がする。 メモ化する関数がコールバック関数を受け取るタイプの関数だったので、キャッシュのキーを作る段階で関…
windowsでxargs -P 10 -n 2みたいなことをしたかったのですが、 powershellとかではそういうことができなさそう cygwinは入れたくない ということで自分で実装することにしました。 最低限必要な-P(--max-procs) -n(--max-args) {}(プレースホルダ)は実装さ…
アプリケーションを別のサーバーに載せ替えたい等の理由で、インストールされているpythonパッケージを、別のマシンへ展開したいことがあります。 こういう時pipなら、pip freezeでパッケージ名とバージョンの一覧を出力して、他マシンでその一覧を元にinsta…
http://d.hatena.ne.jp/yatt/20121017/1350480131requestsについて書いた記事ですが、既にAPIが変わってしまっていたので、 同じ動作をするコードを書きました。 対象はrequests 2.6.0です。 はてなダイアリーにログイン 変わりません。 #! /usr/bin/python2…
後勝ち? 不定? 重複した値はリストになる? 検証 # 1. 重複しないケース print {i:i for i in range(10)} # => {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9} # 2. 重複するケース。昇順 print {i+(10-i):i for i in range(10)} # => {10…
Ping-tの学習履歴をGoogle Calendarに同期する仕組みを作ったの続き。リポジトリに、Chrome用のUserScriptとWSGIサーバを追加しました。https://github.com/yatt/gcal-sync-with-ping-t/tree/master/browser_pluginこれを使うと、Ping-tの学習履歴が、取組時…
Ping-tというeラーニングサイトの取り組み履歴をGoogle Calendarに同期する仕組みを作ったという話です。 Ping-tとGoogle Calendar 仕事しながら資格勉強をするとなると、手が空いている時間、特に通勤時間や昼休みを有効に活用する必要があります。 私は分…
twitterlibのおかげで簡単に対応できました。参考: appengine pythonで数時間でtwitterのbotを作る https://github.com/yatt/nekofier
まとめ 引数またはstdinから渡された内容を呟く、tweetコマンドをつくったよ bashのDEBUGシグナルをトラップすると、コマンド実行前に何かしらの処理をできるよ 1と2を組み合わせて、実行するコマンドを逐一Twitterにつぶやくシェル環境を実現したよ 1. 引数…
Twitterのタイムラインにradikorecというツールが流れてきたので使ってみました。radikorec 1.1 - PyPI radikorecでらじるもらじこも独り占め! - テストステ論radikorecはradiko/らじる★らじるを録音するためのコマンドラインツールのようです。cronで定期…
appengine sdkを探してもそういうモジュールを見つけられなかったので、mechanizeとBeautifulSoupを使ってAPIの状態を確認するスクリプトを書きました。 これでAPIクオータ監視ができるようになりました。以下、ソースコード。
データベースに記録された緯度経度をマッピングした図。 iPhoneでGPS座標値を記録するためにはどうすればいいのか、という話。 最近、自転車を買ったので遊ぶために調査しました。 以下、iPhone4S, iOS6環境での話です。
ある数が平方数かどうか(整数を2乗した整数かどうか)判定して、平方数ならその平方根を得たい。 しかも、大きな数(例えば、3^256)でも正しく判定できることが条件。 という観点で試行錯誤したのでメモ。考えた後で思ったけどPARI/GPとかになら組み込みで超高…
(追記 2015/04/19) コードは既に互換性が無くなっているので、以下を参考に読み替えて下さい。 pythonのrequestsライブラリの更新に追従 大幅に改善強化されたurllib2ことrequestsモジュールを使ってみたら便利すぎて驚いたので報告。 urllib2で面倒だった処…
pythonのgdataライブラリでGoogle Calendar APIを叩くと、ステータスコード302が返ってくる場合があるので調べたらこんな内容が。http://code.google.com/p/gdata-python-client/issues/detail?id=268要は、連続的にカレンダーの登録などを呼び出した場合に…
http://d.hatena.ne.jp/yatt/20120525/1337959944 で描いたモジュールで、heapqモジュールで作られたヒープの変化を出力した. 珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造作者: ジョンベントリー,Jon Bentley,小林健一郎出版社/メーカー: …
特殊メソッドのオーバーライドで実現します。 class edict(dict): def __getattr__(self, name): return self.get(name, None) def __setattr__(self, key, val): self[key] = val d = edict() d.hello = 'foo' d.world = 'bar' print d # {'world': 'bar', …
逆FizzBuzz問題 (Inverse FizzBuzz)初めは検討もつかず。 連続数列のどこが始まりか分からないし、どこが終わりかも分からないし、どこからどう調べればいいかまったく分からないといった感じ。しかし、ご飯を食べたり散歩しながらぼんやり考えている内にひ…
pythonで、set型同士の直積集合を簡単に得るにはどうすればいいだろうと悩んでいたところ、アドバイスを頂きました。 window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)…
pythonを使いましょう。標準モジュールjson.toolを-mオプション付で起動すると、jsonのプリティープリントをしてくれます。このとき、標準出力をすべて捨てて標準エラー出力だけ出すようにすれば、簡単にjsonのvalidationができるのです。 # unix like $ pyt…
一日につぶやいた数を毎日23:55に自動でつぶやくbot, nekofierをappengine上で作りました。 以下、その時のメモです。簡単な仕組みなのでbotを作成する際の参考になれば。 nekofierってなに? 一日につぶやいた数を毎日23:55に自動でつぶやきます。この時、…
skip listというデータ構造をpythonで実装しました。listとありますが、実際には探索木のような構造で、 要素の挿入時に木をバランスさせる必要が無い lock-free なアルゴリズムだそうです。バランス操作が不要だと、並列プログラムと相性がよさそうというの…
木構造のデバッグって大変ですよね。深さをスペースで表現してコンソールに出力してもいまいちピンとこない。できれば画像で出力できると良いのだけれど、画像処理ライブラリで硬派に処理するのは面倒だなぁ・・・前々からそんなことを考えていました。 最近…
こんなコードを書いたけど、n以下の素数のリストを得ずに、例えば素数テストを使ってもっと早く計算できたりするのかなぁ。 # coding: utf-8 import primetable def factory(n = 10**7): ps = primetable.primelist(n) # n以下の素数をリストで返す memo = {…
どうしよう。 ODBC経由で接続 専用のプログラムを作る sqlite3を修正 とりあえず、CSVを読んでトランザクションを実行する書き捨てプログラムを書いて解決した。時間があったらsqlite3用のドライバとか入れて、サードパーティーのツールを使ってODBC経由で流…
pythonのsqlite3モジュールでトランザクションする方法をメモしておきます。なんか、ネットで調べてもなかなか日本語のサンプルが出てこなかったので。sqlite3.connect()のisolation_levelオプション引数に分離レベルに対応する値を渡すだけです。こんな形に…
試すだけなのでvirtualenvで仮想環境を作ってそこにインストールした。 不要になったら丸ごと消して終わりにできるので便利だ。 $ mkdir tmp $ cd tmp $ virtualenv formsgpack $ cd formsgpack $ git clone git://github.com/msgpack/msgpack-rpc-python $ …
https://github.com/yatt/python-gumroad-client/こんな感じに使います。 # sample from gumroad import Gumroad, GumroadItem # setup background interface api = Gumroad('email', 'password') api.login() GumroadItem._api = api # create new item ite…