昔作ったはずなんだけど、コードをなくしたらしい。なので作り直した。はてな上にメモしておけば、今度こそなくさない?(いや、ちゃんとバックアップ取れよオレ) BeautifulSoup とは? HTML, XML パーサ。メモリにツリー状のデータを構築するタイプ。標準ライブラリ xml.sax のようなイベント駆動型ではない。BeautifulSoup に近い標準ライブラリは xml.etree や xml.dom 。 サイトの URL は http://www.crummy.com/software/BeautifulSoup/ 。 テキスト抽出 BeautifulSoup のドキュメントにもあった例を関数にしたもの。 def collect_string(tag): return u''.join(tag.findAll(text=True)) もうすこし凝ったことがしたくなったら fin
だいぶ乗り遅れた感はあるけどHadoopを試してみた。 環境はvm上のubuntu-9.10 サンプルは使用せずにmapperとreducerはPythonで書いてみました。 まず準備。 javaの確認。なんかの時に入れたのでインスコは省く mochi@ubuntu-vm:~$ java -version java version "1.6.0_0" OpenJDK Runtime Environment (IcedTea6 1.6.1) (6b16-1.6.1-3ubuntu1) OpenJDK Client VM (build 14.0-b16, mixed mode, sharing) 次、ユーザ作成。グループもhadoopにしてログイン。 mochi@ubuntu-vm:~$ sudo adduser hadoop ・ ・ ・ mochi@ubuntu-vm:~$ su - had
さくらのレンタルサーバーにログイン。 ディレクトリの準備 ~/local/src ~/local/lib/python2.6/site-packages ~/local/lib/python2.6を~/local/lib/pythonへシンボリックリンクをはる。 環境変数 PYTHONPATH $HOME/local/lib/python: $HOME/local/lib/python/site-packages PATH ~/local/bin/:$PATH LD_LIBRARY_PATH ~/local/lib SWIGのインストール $cd ~/local/src $wget http://jaist.dl.sourceforge.net/sourceforge/swig/swig-1.3.40.tar.gz $tar -zxvf swig-1.3.40.tar.gz $cd swi
Boost の一部ながらも「実用的」すぎるため、とかくテンプレートメタプログラミングを愛好する諸兄から黙殺されてきた不幸のライブラリ、Boost.Python。Boost.勉強会でこいつの魅力を伝えようと思ったのだけど、時間の都合で無理だったので、簡単に紹介してみたい。 Boost.Python の基礎 Boost.Python は C++ のクラスや関数をラップする Python モジュールを恐ろしく簡単に書けるようにする、強力なライブラリである。 特に、Pyrex や Cython と比べて何がうれしいのかというと、 Python側にいちいちラッパ関数を書かなくてよい (テンプレートにより自動的に定義される) コンバータを登録することで、Python⇆C++の型の透過的な変換が容易にできる C++ のクラスを分かりやすい形で Python のクラスとして見せることが可能 といった点が挙
Revision 2.12 Amit Patel Antoine Picard Eugene Jhong Jeremy Hylton Matt Smart Mike Shields Each style point has a summary for which additional information is available by toggling the accompanying arrow button that looks this way: ▶. You may toggle all summaries with the big arrow button: Overview Important Note Displaying Hidden Details in this Guide ▶ This style guide contains many details
最近やる気が無かったのですが Python旅館に来たら嘘のようにやる気が復活しました。 本当は原稿を書く予定だったんですが、隣に座った tokibito が IE6 の怖いコレ について教えてくれました。 おお!こないだ公開した My Trivia にもこのセキュリティホールあるし。早速直さないと。この OpenSocial アプリ ではユーザ入力の Trivia をサーバ側から json で返して、OpenSocial Canvas 側で表示しているのですが、とりあえず表示の時に document.createTextNode() してるから大丈夫だろうと思っていました。 しかしこういう時は < や > を下記のように処理してあげないといけないという事ですね。(この文脈では obj にユーザ入力文字が入ってます) obj = obj.replace('<', r'\u003C') obj
対象: VirtualBox-3.1, Python-2.6 日常的にデスクトップ用途としてUbuntu 9.10を使っています。たまに他のOSを使う用事があって、そういうときにはVirtualBoxから使っています。 デスクトップOSとして使っているだけなのでVMの起動も終了もGUIからやってしまうのですが、プログラムからVirtualBoxの機能にアクセスできるAPIが用意されているので、何ができるのか調べてみました。 APIにはPythonとC++用が用意されているのですが、Python用を使うことにします。 python-apiのありか UbuntuではVirtualBoxをインストールすると以下の場所に勝手に入ります。 % dpkg -L virtualbox-3.1 | grep vboxapi /usr/share/pyshared/vboxapi-1.0.egg-info
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 半裸Botを作ったとき,PythonでTwitterAPIをほげほげするのにPython-twitterを使ったんだけど。ちょっと長いTweetをPostしようとすると,「140文字以上あるよ!」という例外が発生してしまう。実際Tweetは60文字くらいしかないんだけど,おかしい。 なんでだろうと思ってソースを見てみたら原因が判明。ユニコードの8ビット文字列を,バイト列として見ている。これだと日本語のマルチバイト文字列が3倍の文字数と判別されてしまう。ASCII圏のことしか考えないのは欧米製のライブラリにはよくあることで,ひょっとしたらとは思ってたけど。 ソースコードをちょっと書き換え
id:hirose31氏の「ganglia (gmond) を拡張するモジュールをPythonで書いてみた」というエントリを見て以来なんとなく気になっていて、アルファインフラエンジニアからも薦められていたGangliaだが、いくつかの疑問点があって本格的に触ってみるにはいたらなかった。疑問点とは以下の三つ。 Gangliaのインストールは面倒?アルファインフラエンジニアのこのエントリを見て、なんやかんやPatchをあててインストールしているのは面倒だなーと思っていたが、CentOSならばEPELにも3.0系だけれどもGangliaのRPMがあることが分かって、とりあえず試してみるといったことはすぐにできる。ただし、Pythonサポートを使うには3.1系が必要なので、EPELなり、fedora-developmentからSRPMを拾ってきてビルドしなおさなくてはいけないかも。この点も以前書い
追記 Sphinx-Users-JPの下記記事をがより詳細に。 SphinxでPDFファイル作成 ドキュメント生成ツールのSphinxがよさげ。なのだけど日本語PDFに苦戦したので投稿しとく。 環境 Fedora12 Python2.6.2(Fedora12に初期状態で入っている) Sphinx ドキュメント Sphinxについては渋川さんが翻訳されたドキュメントがある。 Sphinx - 渋川さん翻訳 Sphinx - Original http://pypi.python.org/pypi/Sphinx wget http://pypi.python.org/packages/source/S/Sphinx/Sphinx-0.6.3.tar.gz tar zxf Sphinx-0.6.3.tar.gz cd Sphinx-0.6.3 python setup.py installSph
Pythonの勉強も始めた。まずは「みんなのPython」をさらっと読んで、手始めにRubyで作ってたmixiボイスの一部をPythonに移植してみた。 GitHub - m92o/mixi-python: mixi library for python 移植したメソッドは login と add_echo 使い方はこんな感じ import mixi mixi = mixi.Mixi("USER", "PASSWORD") mixi.login() mixi.add_echo(”メッセージ”)まだ始めたばかりで慣れてないからかも知れないけど、Rubyの方が直感的な気がするなぁ。まぁRubyもまじめに触り始めてから1ヶ月ぐらいしか経ってないけどね。 みんなのPython 改訂版 作者: 柴田淳出版社/メーカー: ソフトバンククリエイティブ発売日: 2009/04/11メディア: 単行本購入:
PyYAMLとJSONの速度を,比較的でかいデータ (32.9 MB @ YAML, 33.9 MB @ JSON)で比べてみた. JSONはYAMLのサブセットなので,まぁ予想はしていたんだけど,驚くほど違ったのでメモ. YAMLのほうは,PyYAMLをlibyamlとともにビルドしたもの (つまりCで書いてある). JSONはPython-2.6にビルトインのもの.しっかり読んでないので怪しいけどPythonネイティブのように見える. In[11]: %time d = yaml.load(open('test.yaml'), Loader=yaml.cyaml.CLoader) CPU times: user 193.71 s, sys: 20.37 s, total: 214.08 s Wall time: 1087.30 s In [12]: %time d = json.loa
なんだかやけに長い説明ばかり検索に引っかかったので書きました。 Linuxのローカル環境でDockerコンテナ内のXアプリ(GUIアプリ)を利用するには $ xhost localhost + を実行した後に $ docker run --rm --net host -e "DISPLAY" container_image_name x_app_binary_path とすれば良いです。 もっと読む SSHなどよく知られたサービスポートで何も対策せずにいると数えきらないくらいの攻撃リクエストが来ます。不必要なログを増やしてリソースを無駄にし、もし不用意なユーザーやシステムがあると攻撃に成功する場合もあります。 SshguardはC作られており、flex/bisonのパーサールールを足せば拡張できますがカスタム版をメンテナンスするのも面倒です。必要なルールを足してプルリクエストを送ってもマー
クラウドしたいということで、Google App Engine で遊びはじめた。 まず、たくさんのデータを登録するために、PythonでTask Queue APIを使ってみた。 例の動作内容 OPMLを取得する OPMLのXMLをperseしてmemcacheに入れる。 200件ごとに分割してTask Queueに登録する。 Task Queueに登録すると勝手に、CPUに割り当てて並列実行してくれる。無料版の場合、最大5個まで同時実行してくれる。並列に実行しているのを見ると楽しい。 DataStoreへの登録は1-10件/1秒らしく、200件で24秒かかる。分割を250件にすると30秒を超えてTaskが途中でkillされる。 DataStoreに5000件登録するだけで、無料版のCPU時間の2%を使ってしまう。ということは、無料版だと25万件登録するとCPU時間のQuota/1dayに
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く