methane @methane @riywo fork してから exec する前に実行して欲しい関数を指定します。具体的には os.setsid とか指定します。(最近の Python だと start_new_session キーワード引数指定できますが) 2013-03-24 02:11:06

ymmt2005 こと山本泰宇です。こんにちは。 cybozu.com のインフラ開発チームでは仕事のかなりを Python でこなしています。 Python を選んだ理由は以下の通りです。 便利だから Python には "batteries included" と呼ばれるほど豊富な標準ライブラリが整備されています。例えば HTTP で通信するとか、JSON データを読み込むといった良くある仕事のためにいちいち外部ライブラリを探さなくていいのです。 堅いプログラミングができるから 例外やモジュールといった現代的な機構が備わっているので、ベターシェルスクリプトとして使うのに適しています。 書き方にバリエーションが少ないから チーム開発では他の人が書いたコードを手直しすることは良くあります。書く人によって書き方がいくつもあるような言語より、レビューや修正がしやすいと考えています。 標準的に使
RSpec の入門とその一歩先へ がとてもよい記事だったので、 Python で写経させてもらいました。 https://github.com/methane/pytest-tut Ruby コミュニティと Python コミュニティの考え方の違いも見えて面白いと思います。 環境は Python 3.3 で、実行には py.test コマンドを使いましたが、 py.test の機能は特に使っていないので nose でもなんでも大丈夫です。 ファイルの作成 まずは空の実装とテストを作ります。 message_filter.py class MessageFilter: pass message_filter_test.py 最初のテストを書く py.test は .should といったメソッドを勝手に生やしたりはしません。普通に assert 文を書きましょう。 --- a/messege
wdbはPython製のWSGI用のWebベースデバッガーです。 スクリプト言語の開発のが個人的には手軽ですが、IDEを使ったコンパイル系言語の開発において羨ましいと感じるのがブレークポイントを含めたデバッガー機能です。そんなデバッグ機能をWSGIを使った開発に用いられるのがwdbです。 アクセスするとデバッガーが立ち上がります。 ステップ実行、コンソールでの出力ができます。 別なライブラリへ遷移します。 最後は結果が出力されて完了です。 wdbを実行すると、1984番ポートでWebサーバが立ち上がります。そして/wtfにアクセスするとwdb.set_trace()を実行した次の行からステップ実行が可能になります。最後までいくと画面に結果のHTMLが出力されて完了となります。変数の内容を見たり、ステップ実行もできるようになり、より開発がスムーズになりそうです。 wdbはPython製、GP
By Robert McDon. 皆様こんにちは! 先日の記事『16万タイトルの AV の ID を dmm から集めた』の続きです。前回は IDBy Robert McDon. 皆様こんにちは! 先日の記事『16万タイトルの AV の ID を dmm から集めた』の続きです。前回は ID を集めたので、今回はそれを元に画像をもりもりとダウンロードします。 画像の処理とかにトライするのはまた後日。今回の記事はダウンロードまでです。 大量のデータを用いれば何か出てくるかもしれないという期待、楽しいですね。 そういえば前回の記事について「ビッグデータ」という言葉を絡めてコメントをいただきましたが、正直この程度ではビッグデータでも何でもないと思います。レコード数16万というのはデータベースとしてはたぶん特に多くもないほうです。また、今回ダウンロードした総データ量は107GBですが、一般にビッグ
昨日Pythonでメモリを食い過ぎた時に見直すポイントを書いたが、使ったツールの説明を忘れていた。 Guppy-PE: A Python Programming Environmentを使うとこんな感じの出力が得られる。 Partition of a set of 2330379 objects. Total size = 355901024 bytes. Index Count % Size % Cumulative % Kind (class / dict of class) 0 447287 19 125240360 35 125240360 35 dict of __main__.Node 1 53016 2 85891008 24 211131368 59 dict (no owner) 2 467204 20 66360776 19 277492144 78 str 3 457
はじめに こんにちは、Python界の情弱です。情弱ながらPyCon JP 2012で1セッション持たせてもらえることになりました。予め資料を公開しておきますので、当日は色々と質問・意見して頂ければと思います。 各トピックは各トピックでの総論になっていますので、細かい部分は本文最後の参照にあるリンクを見るとより理解が深まります。 「なおここに書いてある内容は所属する団体とは関係のない、私個人の見解ですので、予めご了承下さい。」テンプレ終わり。 イベント PyCon JP 2012 発表日時 2012-09-16 11:00-11:45 作者 @ymotongpoo URL http://2012.pycon.jp/program/sessions.html#session-16-1100-room357-ja スライド (追記: 2012/09/16 23:50:00) 発表の24:00頃
使い捨て python コードの書き方 from Sho Shimauchi サポートの仕事におけるプログラミングというのは通常の開発と少し異なっています。 「1時間以内に数十GBのログを解析して問題を特定し対策を回答しなければいけない」などということはしょっちゅう発生しますので、ちまちま時間をかけてコードを書いていられません。 その代わりプログラムそのものをお客様に提供するわけではなく、解析の道具として手足のように使うことが要求されますので、基本的に品質は求められません。 そういう意味では、プログラミングコンテストに性質が近いかもしれません。あそこまでの高度なアルゴリズムを使うことは稀ですが。 先日 PyFes LT で話をした内容を要約すると、「作成スピード向上のためにもある程度のテストやコード管理は必要ですよ」ということです。 わずかでもテストを書いておけばケアレスミスの確認・修正時
開発部 川野です。最近、Sublime Text が流行っていますよね。私の周りでも、Sublime Text を使っている、というエンジニアが増えてきたように思います。 パワフルでモダンなエディタを探している方は、ぜひ一度試してみてはいかがでしょうか。 そんな Sublime Text ですが、魅力のひとつに便利なプラグインの存在があります。本記事では、Sublime Text のプラグイン開発について取り上げてみようと思います。 Hello, World! Sublime Text のプラグイン開発を始めるのは、とっても簡単です。メニューバーの Tools > New Plugin.. を選択して下さい。雛形となるプラグインのコードが記述されたバッファを作ってくれます。Sublime Text のプラグインは、Python を使って書いていきます。 このプラグインは、バッファの一番最初
せっかくのゴールデンウィークですが、旅行にも行かず、ソーシャルメディアからもなるべく足を遠ざけて、僧侶のように写経をする毎日です。 実は、SXSW で面白かったセッションの一つが、「 コードの書き方を勉強して、 自分が作りたいソフトウェアを作れるようになろう 」というセッ...
優れたインデックスを作れれば解決するかな 独り言 昨日のエントリーにニコ動の中の人、というか凄い人からはてブコメント頂いて朝からテンションうpうpな僕です。ありがとうございました。 表現の仕方が合っているかわかりませんが、APIを叩く感覚が短すぎたので自動切断されたみたいです。一応申し訳程度にtime.sleepで待機時間を作っていたんですが、もっと待機時間を長くしないといけないんですね。 あと、昨日暇な時間に考えてたんですけど、結局「指定期間内に投稿された動画の中から」「再生数が多い順」に並べるみたいな形にすると、やはり今のやり方では問題が発生するよなと今更ながら気付きました。情報を取るタイミングが同一でなければ、後から情報を取得した動画の方が再生数なりコメント数は多くなるのが普通ですもんね。フェアじゃない順位とか凄く嫌いですし、意味が無いのでやっぱり却下。 となると一番いいのは優れたイ
言語女子会: undefとnullは両方必要?の続編です。 varは必要なの? とあるプログラミング言語が集う女子会にて: Python: JavaScriptちゃんってさ、なんでvarだらけなの? JavaScript: えっ、変? Python: varなんかいらなくない?私ぜんぜん持ってないよ? JavaScript: えー、じゃあ変数をどうやって宣言するの? Python: 宣言っていうか…「x = 1」みたいな代入文があれば変数xが必要なのって自明じゃない?宣言とか必要? Ruby: 必要ないよね。っていうか変数宣言とか古臭くない? JavaScript: そうかなー。 Python: 少しダサイかも。ほら断舎離ブームだし要らないものは捨てなきゃ! JavaScript: 要らないかなぁ、変数宣言。Pythonちゃんは関数がネストしているときに外側のスコープの変数に代入するのって
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー 一部読者から高い評価をいただき,絶版となりながら中古市場でプレミア価格がついていた拙著「みんなのPython Webアプリ編」のHTML版をお送りします。Pythonを使って,Webアプリを開発するための方法を,基本的な事柄から積み重ね式に解説した書籍をHTMLにしたのが本コンテンツです。 編集部のご厚意で作ってもらった配布用PDFをベースに作っています(PDF作成だけでなく,出版契約の解除など必要な手続きを快く受けて頂いた担当様にはとても感謝しております)。構成などは著書をベースにしていますが,HTML化する過程で少し手直ししてあります。特にPython 2.7で動かないサンプルコー
いかにしておっぱい画像をダウンロードするか〜2012 の Python 実装です。 Node.js 版は [twitter:@kumatch] さんの いかにしておっぱい画像をダウンロードするか〜2012 for Node.js :: kumatch's blogspot。 PHP 版は ゆーすけべーさんのおっぱいスクリプトをPHPで書き直してみた - maeharinの日記。 Ruby 版は 橋本商会 » いかにしておっぱい画像をダウンロードするか〜2012 をRubyで書いた。 言語に Py なんて名前が付いているからには Python でやらないとダメでしょう!! requests モジュールを使えば簡単! $ pip install requestsとかで requests をインストールして下さい。 さらに requests は async を実装してるので簡単!! 一応 50
この宇宙が、天国にいるものすごいハッカーのコンピュータで動いているセルオートマトンでできていないという証拠はない とある研究者 今回からしばらくセルオートマトンの不思議な世界をふらついてみようと思ってます。セルオートマトンは、その名前のとおりセル(格子)から構成されたオートマトン(自動機械)です。確率とは無縁の決定論的世界ですべてはルールに厳密にしたがって動作します*1。これ以上、説明が難しいので実例を。前に、Java(2004/12/25)やPython(2008/9/14)で作ったことがあるライフゲームは、二次元セルオートマトンの一種です。 ライフゲームの各セルは、生と死(ON、OFFでもいいですけど)の2つの状態を取り、たった3つのルールにしたがって動作します。 生きているセルの周囲に2つまたは3つの生きているセルがあればそのセルは次の世代も生きている 死んでいるセルの周囲に3つの生
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く