最近Python クックブックを良く眺めているのですが、Cookbookをまじめに活用しているのは実は初めてです。以前はプログラムは動けば良いと思っていたのですが、pythonを使い始めてから、他の言語を使う時も「どう書くのが正解なのか」を結構意識するようになりました。そうするとCookbookが非常に役に立つわけで、オンラインで使えるCookbook・逆引きサンプル集的なサイトを集めてみました。 python周辺
最近コーディングにはC++をメインに使っているのだけれど,軽いを処理はやっぱりスクリプト言語の方が楽.以前はラッパーを作るのにSWIGを使ったことがあるけれど,インタフェースファイルを用意するのにだいぶ苦労したので手軽にラッパーを書ける感覚がなかった.Boost本 (Boost C++ Librariesプログラミング第2版) を眺めていたら「boost::python」というページがあって,かなり手軽にPythonラッパーが書けそうな気がしたので試してみたのでメモ こんな感じのコードを用意する. #include <string> #include <boost/python.hpp> std::string add_hello (std::string s) { return "Hello, " + s; } int square (int n) { return n * n; } B
少し前に、PythonのC/C++へのインターフェイス作成手段としてはctypesとboost.pythonが良さそうだという話を書いた。その後ctypesの使用例をメモった。 すでにCで開発されたライブラリがある場合にはctypesを使った方が楽だと思う。しかしC++や、あるいは自分でさらから書く場合にはC++を使いたいところ。場合によっては基本的にはC++で開発し、その後より楽に使用するためにPythonからも使えるようにしたい事もある。 そういう訳で、個人的にはPythonのC/C++インターフェイス開発にはboost.pythonが一番だと思う。Python自体に標準的に付随するものではない点だけが気になるところだが、とても簡単にC++のプログラムへのインターフェイスが作成できる。 というわけで、boost.pythonの使用例をメモ。 まず、C++で適当にクラスでも作る。ここでは
Python CGI で 掲示板みたいなものを作る~Ajax編~では、Ajaxという仕組みを利用してページ遷移を起こさない掲示板システムを作成しました。 しかし、SQLiteとのインターフェイスは、相変わらず"system"関数によるコマンドを呼び出しで、標準入力を通じてSQLコマンドを送り込み、標準出力から結果を受け取る方式になっていました。 Python CGI で作るアクセスカウンタ~sqlite3モジュール編~でsqlite3モジュールが使えるようになったので、掲示板もsqlite3モジュールを使用するように変更してみました。 データベースの構成 今までの掲示板は、一つのデータベースを使いまわしてきましたが、今回は別のデータベースを作成しました。 その理由は、文字エンコーディングの扱いが異なってきたからです。 カラム名タイプ内容 このテーブルに "visitor" という名前をつけ
sqlite3 モジュールは SQLite 関係データベースに対する DB-API 2.0 準拠のインタフェースを提供します。SQLite はアプリケーション内に組み込むように設計された、インプロセスデータベースであり、MySQL, PostgreSQL や Oracle のような独立したサーバプログラムではありません。SQLite は高速且つ柔軟で徹底的にテストされており、プロトタイピングのみならず、アプリケーションによっては本番環境にも使用できます。 データベースを作成する¶ SQLite データベースはファイルシステム上の1つのファイルに格納されます。ライブラリはそのファイルへのアクセスを管理し、複数のプログラムがそのファイルへ書き込むときにデータが破損しないようにロックします。そのファイルへの初回アクセス時にデータベースが作成されますが、アプリケーションはデータベース内のテーブル定
ここを参照して実験してみた。 2006-12-02 例えば以下のようなトランザクションしない場合と、 ケース1 from sqlobject import * import sys, os db_filename = os.path.abspath('data.db') if os.path.exists(db_filename): os.unlink(db_filename) connection_string = 'sqlite:' + db_filename connection = connectionForURI(connection_string) sqlhub.processConnection = connection class Person(SQLObject): firstName = StringCol() middleInitial = StringCol(len
個人事業主としても活動するソフトウェアエンジニアの山田直行の個人ホームページです。 事業紹介・自己紹介はこちら -> About Posts Jul 21, 2025 Claude Code GitHub Actionsでアプリ開発を試した Jun 13, 2025 Ruby 3.4でCircularArgumentReferenceエラーがなくなった May 5, 2025 ナイルワークスを退職しFaciloに入社。転職活動の振り返り Apr 10, 2025 FigmaのMCP ServerでReact Componentを作ってもらうのを雑に試した Apr 10, 2025 従業員が全員タイミーであることの意味って? Apr 9, 2025 SQLの三値論理の挙動をRuby + sqlite + activerecord + bundle/inlineで確認する Apr 8, 202
概要 最近、あるお客さんから、快速なので、cjsonを使おうという要望をいただきましたが、以前、僕はcjsonは色なエッジケースの処理が微妙と分かっていて、実際に他のライブラリより早いのかなと思いました。cjsonのPyPIページいろなコメントが書かれています。しかも、最新パージョンは2007リリースでかなり古い。バグがあるのに、直っていないし、あんまりメンテしてないライブラリに見える。 simplejsonもjsonlib もCで拡張があり、かなり最適化されていると思ったので、テストしてみようと思いました。 というわけで、パフォーマンステストを作って、Bitbucketにアップしました https://bitbucket.org/IanLewis/jsonlib-test 準備 buildoutを使って、環境を作ります テストを実行 ./bin/run_testを実行します。オプションは
Redis の Python クライアントの redis-py で以下のような事をやってみた。 # -*- coding: utf-8 -*- from redis import Redis client = Redis(host=localhost) data = {u'foo': u'bar', u'baz': ['aaa', 'bbb', 'ccc']} client.set('sample', data) ret = client.get('sample') print ret set には key, value しかダメなはずなので、このコードはエラーになると思ってたが、Redis から get した際に値が文字列として取れた。 # redis-py の内部で str() で変換していた。 文字列だと取り回しがメンドクサイので、以前は value を MessagePack でシ
[pukiwiki] [[swfmill:http://swfmill.org/]]の[[メーリングリストの過去ログ:http://osflash.org/pipermail/swfmill_osflash.org/]]を読もうとしたらgzipで圧縮されてまして。。。まとめて解凍するツールを持ってなかったのでPythonで。 次回用にメモ <<追記>> [[圧縮する方法もメモ:http://boxheadroom.com/2009/05/02/python-gzip#compress]] [[5/3 zlibモジュールについて追記:http://boxheadroom.com/2009/05/02/python-gzip#zlib]] [/pukiwiki] コマンドプロンプトにて、gzアーカイブが有るフォルダをカレントフォルダにして python -c "import gzip,glob
MessagePack とは、古橋(id:viver)さんが開発された高速・高効率なバイナリシリアライズフォーマットです。詳しくは 古橋さんの日記 やプロジェクトサイト を見てください。 PythonからMessagePackフォーマットでSerialize/DeserializeするためのPythonパッケージを作ったので、取得方法と使い方について簡単に紹介します。 1. インストール msgpackという名前でPython Package Index (PyPI)に登録してあります。 <http://pypi.python.org/pypi/msgpack/> setuptoolsをインストールしている環境では、 $ easy_install msgpack でインストールすることができます。 Windowsでインストールする場合は、PyPIのパッケージサイト からインストーラをダウン
今年もGoogleIOのシーズンです。去年に引き続き今年もIOに来ています。 今年は、Keynote(Day1)の前日夕方入りという結構ぎりぎりのスケジュールでした。 去年と違い今年は、Keynoteの整理券が前日に配布されるという方式に変わったらしく 前日にもかかわらず、9時のRegistrationオープン前に長蛇の列が出来るという 整理券で並ぶかKeynoteで配るかかわらなくない?的な状況になっていたらしいです。 私は到着が18時前だったのであまり関係ないですが・・・ 19時前に空港から会場に直行してバッジを受け取ろうと思ったのですが 19時にもかかわらず結構長い列ができていて(60mくらい)去年までは 前日の夕方はガラガラでルーズな感じだったのに、どうなっちゃったんだろう という印象でした。長蛇の原因は、セキュリティーで空港のように一人ずつ 金属探知機でのチェック体制をとっていた
GAEにどんどん機能が追加されていく中、なかなか実装されないのが全文検索。品詞がとれるセグメンターだけでも提供してくれたら全然便利だと思うんだけどそんなアナウンスはまだ有りません。 なきゃ作ればいいじゃんという事で、全文検索もどきを実装してみました。ひとつ前のエントリー通りTriGramです。 以前、恵比寿のイケメン イアンさんと一緒に作ったmisopotetoというモジュールをベースにしています。 今回のポイントは、転置インデックスをredisサーバに送っているところ、GAE(とうかDB全般)は、インサートがめちゃくちゃ遅いので、Ngramでgram毎にエントリーIDをappendしていくというのは辛いです。Twitterの検索結果15個x100文字位をTriGramでインデックスを作ろうとすると、1500個くらいをgetしてappendして、putする必要があります。以前は、TaskQ
Note 英語の本家のページは、 PHPを使って説明 説明していますが、このページではPythonと Tornado を使ったチュートリアルに変えてあります。 Bitbucketの リポジトリ に、このチュートリアルのファイル一式が含まれています。 tutorial/retwis/ フォルダを自分の作業フォルダにおいて、 retwis_start.py に、これから説明する内容を追加で実装していってください。なお、実力に自信のある方は、PHPやRubyの参考実装だけを見ながら、 RegisterHandler や、 FollowHandler クラスもPythonに移植してみてください。 また、 @yssk22 氏がnode.js版を実装してくれました。これもリポジトリの中に入っていますので、興味のある方はこちらのファイルの内容に読み替えてください。 RedisとPythonを使ったシンプ
homebrewたんを使ってやってみた. といってもbrewたん使ってinstallするだけなんですが…はい. // インストール # brew install opencv // インストールされる場所は/usr/local/Cellar/opencv/2.2 Apollon% pwd /usr/local/Cellar/opencv/2.2/lib/python2.7/site-packages ここにcv.soがあるので,これを自分のPYTHONPATHの通ってる所に入れるかリンク貼るか,そんな感じで使えるはず. サンプルは適当に探してきたけど,どこで見つけたか忘れてしまいました. import cv import time cv.NamedWindow("camera", 1) capture = cv.CreateCameraCapture(0) width = None
ページコンテンツ optparse – getopt に代わるコマンドラインオプションパーサ OptionParser を作成する オプションを定義する コマンドラインを解析する 短いオプション名と長いオプション名 getopt と比較する オプション値 デフォルト値の設定 型変換 選択肢 オプションのアクション 定数 ブーリアンフラグ 繰り返しオプション コールバック ヘルプメッセージ オプションを構成する アプリケーション設定 ナビゲーション コンテンツテーブル 前: getopt – Command line option parsing 次: argparse – コマンドラインオプションと引数の解析 This Page Show Source サンプルプログラム PyMOTW の全てのサンプルプログラムの出力は、 注記されていない限りは Python 2.7.2 で生成されていま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く