YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

Python

TwitterのOAuthを使って90日以上発言してない人をremoveするスクリプト書いた

はじめに 最近「フォロワー1000人目指そう」とか #followmejp とかつながりたがる流れが多いけど、TwitterのTLがあふれちゃうとやる気なくしちゃうことが前にわかったので縮小の方向に進めてます、こんにちは。 また最近はOAuth推奨っぽいのでOAuthでfollowi…

Twitterのログを自動でBloggerに投稿するスクリプト書いた

動機 Twitterのログを残すスクリプトを書いた - YAMAGUCHI::weblog Twitterのログを残すスクリプトは書いたけど、どうせならどこかにログの形にしておきたいなと思ったので作ってみた。 作ったもの log2blgr.py - 0x7d8 - 某所同期の勉強会用レポジトリ - Go…

Twitterのログを残すスクリプトを書いた

動機 最近FriendFeedとかを使ってTwitterにあらゆるログを流しているのはいいけど、記録してないのでログを残したくなった。しかし巷にでているウェブサービスはどうもしっくりこないのでとりあえず最低限ローカルに残すようなスクリプトを作ろうと思って書…

ATNDからGoogle Calendarに自動で登録するスクリプトを書いた

いきさつ Python温泉 #6で@yoshioriが「自動化できるところは自動化しないとー」と言っていて「たしかに!」と思ったので思いついた自動化をしてみようと考えた。でもって、ATNDでイベント登録して忘れてることがちょいちょいあるので忘れないようにGoogle C…

第6回Python温泉

関連リンク 第 6 回 Python 温泉 無事終了 - Twisted Mind 20091023-25 第6回Python温泉 - a set on Flickr Python温泉 - kuma8の日記 2009/10/24 第6回 Python温泉 に参加中. buildbot と buildout のはなし - 清水川Web Python温泉に来ています - kuenishi…

Code Camp #4 in Harumi

前回に引き続き参加。またも午後休。ついに使用言語が全員ばらばらなためCode Campと名前を改め開催。*1 Kawasaki Code Camp #4 - Twisted Mind Code Camp #4 - kuma8の日記 Kawasaki Code Camp #4 in Harumi - kuenishi's blog Shibu's Diary: Tornadoウェ…

初心者がbitbucketを使ってみた

Tornado Documentation — Tornado 2.3 documentation Tornadoドキュメント翻訳 — Tornado v0.2 documentation 今回公開されたばかりのTornadoのドキュメントを翻訳する際にbitbucketを使ってSphinxのデータを管理した。ほぼ初めてMurcurial触るし、初めてSph…

第3回Python旅館

午後休を取って参加。 第三回 Python 旅館 2009-08-07 14:00 - 08 11:00 - Twisted Mind 14:30 開始直後 Python旅館といいつつ、ErlangとJavaとPythonがだいたい同じくらいの比率。参加人数はまだ5人。買い出し。ペプシNEXが売ってない。 第3回 Python旅館 …

名言BotをGoogle App Engineに移行した

動機 名言集.com (wisesaw) on Twitter これまで名言Botを自鯖で運用してきたのですが、こいつが電気代をだいぶ食うのでなんとかならないかなあと思っていました。 Scheduled Tasks With Cron for Python - Google App Engine — Google Developers そんな折…

IDE初心者がPython用にEclipseの設定してみる

動機 Emacsやviばかり使うのもいいけど、これからJavaの開発やったりするのにIDE使えないと厳しいなと思ったのでなれるためにIDEでPython開発(というかDjango開発)の環境を作ってみようと思ったため。 方法 Eclipseのインストール まずはEclipseをインスト…

Django Hackathon Disc.8 に参加してきた

感想 Django Hack-a-thon Disc.8 | Djangoと日本の仲間たち いままでPythonで遊んでて、知ってはいたけど使ってなかったDjangoを使い始めるよいきっかけとなりました。特にハンズオンではどの入門書でも触れるような箇所は余り触れずにむしろ入門書後に躓く…

PythonでCのラッパを書く

動機 ふと思い立った。簡単なサンプルを書いたつもりだったけど、思わぬところでちょっとはまったからメモ。 方法 サンプルコード 基本的にはこちらの写経。 PythonからCプログラムを呼び出す | 象歩 Cのラッパを書いたのは2度目だけど、前回はバインディン…

型チェックをする

動機 Pythonに限らず動的型付けな言語は変数を扱うときに型に気をつける必要があります。いままでは割とざーっと作ってしまっていたので型の扱いはKnownでやっていたのですが、ソースを公開したりしているので多少気をつけていこうかなと思いました。 方法 t…

Python用にauto-complete.elを設定する

動機 開発にはずーっとEmacsを使っているけれど、最近M-/の補完を不便に感じるようになったので、補完窓が出るような拡張を入れてみたくなった。 方法 下記サイトの方法をそのまま実行しただけです。 EnigmaCurry まずMercurialをインストールして、rope, ro…

mixiダイアリーのバックアップ用スクリプトを書いてみた

動機 ある日突然外国の方から「君が作ったmixi APIを使ってみたら、うまく動かないんだけど。」っていわれました。どうも奥さんが日本人でmixiダイアリーのバックアップを取りたいらしい。が、そもそも俺がPythonで書いたmixi APIはmixiツールバーのものが基…

lxmlをインストール

lxmlをインストールしようと思ったらこけた。 [Python][lxml]依存ライブラリ?が足りなくてインストールではまる - 30からのBlog ここを参考にして $ sudo port install libxml2 $ sudo port install libxslt $ sudo easy_install lxmlこれでOKです。さて今…

名言Botを実装した

動機 最近落ち込んだりすることが多いんで、たまに拝見している名言集サイトの名言をTwitterに投げてくれるBotを作り、定期的に名言を読んで元気づけられようと思った。 作った物 名言Bothttp://twitter.com/wisesaw/:image=http://b.hatena.ne.jp/entry/ima…

2chまとめサイトのまとめを実装してみた

動機 mod_pythonを使って、とりあえず何か簡単なものだけでも実装したかった。ちょうどそのとき2chのまとめのまとめサイトを見ていたので、それを実装することに。 作った物 毒男アンテナ ('A`) 使った物 Apache2.2 mod_python mod_pythonのpublisherハンド…

tg-adminがみつからない

症状 TurboGearsをeasy install経由で入れたはずなのに、tg-adminがPATHにないとか言われる。 原因 エラーメッセージ通り。 $ sudo find / -name tg-admin /opt/local/Library/Frameworks/Python.framework/Versions/2.5/bin/tg-adminPATHに入れてませんよ。…

HTMLParser.HTMLParseErrorがでた

状況 はてなブックマークにタグ検索用のAPIがないからつくってみたんだけど、前に動いてたのに急にHTMLParseError吐くようになった。 問題のエラーはこんな感じ。 EOF in middle of construct, at line 57, column 1 原因 ここにあるのと原因は一緒でした。 …

mod_pythonのpublisherハンドラが便利だった

動機 GET変数とかを処理させたいなあと思っただけで使ってみたけど、予想以上に便利だった。 使い方 Apacheの設定 httpd.confには下記の様な設定をしておく <Directory "/path/to/dir"> AddHandler mod_python .py PythonHandler mod_python.publisher PythonDebug On </Directory>PythonHandlerにm…

mod_python + GenshiでHTMLを表示してみる

動機 mod_pythonを入れたあとはGenshiとの連携が必要だなと思った。 方法 Genshiの簡単な使い方はここに書いたとおり。 テンプレートエンジンGenshiを使う - YAMAGUCHI::weblog 上記のエントリで書いたテンプレートから生成されるHTMLをmod_pythonで表示させ…

Tigerでmod_pythonを動かす

動機 テンプレートエンジン動かしたら次はやっぱりWebサーバから叩かないといけないでしょう。 試行錯誤 とりあえずMacPortsでmod_python25を入れる $ sudo port install mod_python25 (略) ---> Activating mod_python25 3.3.1_1 Error: Target org.macpo…

PythonでHTTPS接続をする

開発機はMacなんですが、Pythonからurllib2でhttps接続しようと思ったら urllib2.URLError: <urlopen error unknown url type: https>というエラーがでて接続ができない。あれー、おかしいなと思って調べていたら見つけた。 py25-socket-ssl - 北海道苫小牧市出身のPGが書くブログ $ sudo port upgra</urlopen>…

テンプレートエンジンGenshiを使う

動機 そろそろPythonでもテンプレートエンジンとか使って動的ページを表示したいなあと思った。でもいわゆるテンプレート用の文法を覚えるのが面倒なので、なるべくHTMLでテンプレートを書けるものでかつ実績*1があるものということでGenshiを選択。 参考 Ge…

HTMLParserでHTMLを解析する

動機 そういえばXMLだけじゃなくてHTMLの解析もやってみたくなったから。 方法 HTMLもXML系のパーサ使えばいいんだろうけど、HTMLParserってのがあるので使ってみました。使い方としてはざっくり下のコードみたいな感じ。 from HTMLParser import HTMLParser…

pysqlite3.xでSQLiteを動かす

動機 なんとなく動かしてみようと思った。 方法 なんかライブラリリファレンスのサンプルだと微妙に文が足りない。 404 Not Found たぶんこっちの方がいいと思う。 Python IRC bot using Twisted で、こんな感じでテスト。 import sqlite3 """ test.dbにはte…

はてなブックマークのAPIのラッパ書いた

動機 折角WSSEのクライアント書いたからmixi APIだけじゃもったいないと思って。。。 参考 まあ当然オフィシャルを見ながらです。 はてなブックマークAtomAPIとは - はてなキーワード できた物 WSSE.py (HatenaBookmarkClientクラス) 使い方 from WSSE imp…

Text Nodeからデータが取り出せない

症状 typeを見るとDOM Text Nodeになってるインスタンスをdataプロパティを使ってデータを取り出そうとすると「NoneTypeだよ」的なエラーが出る。 状況 mixi API用のコードの中に出てくる。更新情報を取得する関数の中でのコードで起きるエラー。レスポンス…

mixi APIでマルチバイト文字列を扱う

動機 自分で書いたmixi API(あくまで非公式)のPythonラッパがマルチバイト文字列系が全然だめだったので修正した。 WSSE.py メモ MixiClientクラスの各メソッドはunicode型で投げてあげてください。中でUTF-8に変換してやりとりしてます。