Python で Rake を真似るとしたら という反応を頂いたので、それにまつわるお話を。 まず、CodeReposにコミットしてあるtasktoolsは distutils及びsetuptoolsを拡張する ということを念頭に置いています。ですのである程度distutils.core.Commandの思想というか、インターフェイスを残しています。 タスクをクラスで定義すること オプションの定義方法 sub_commands や finalize_options といったメソッド などなどは元のまんまです。 じゃあ、 distutils や setuptools を抜いて好きにRakeをPythonで真似るとしたら、というのが今回メインのお話。最初にこんな感じでコマンドを定義しますよ、というのを出してしまいます。 1from __future__ import with_statemen
誰もが一度使うと便利さと気軽さに感動するRubyが誇るライブラリ、 Rake 。 プログラムのビルドもそうなんですが、雑多なタスクを簡単に書けて、整理できるのがなんといっても魅力的。RailsなんかではDBの作成から何から、ばんばんRakeタスクにされていますよね。 さて、俺はPythonistasなので、PythonでRakeみたいなのがほしいわけです。ビルドに限っていえばPythonは Scons という素晴らしいツールがあります。C言語はおろか、JAVA、PDF、PostScriptなどなど、さらにはSubversionもサポートしていますし、並列コンパイルもでき、実績も多数で申し分ありません。 でも俺がしたいのは、雑多なタスクを放り込む、コレ。そういうのを簡単にやるライブラリってPythonではないんでしょうか。RubyではRakeが標準添付されるというのに。いえ、あります。前から
PHP advent calendar です。 クリスマス過ぎましたけど 12/26日をお送りします。(google docsに名前書き忘れていたんだよ) 前回 12/25日は、@yoya さんの「Windows で PHP を build する」でした。 今回は、facebookの人が作った PHP を C++ に変換して高速動作させるという hiphop php がジェネレートする C++ のコードを読んでみたいと思います。 C++は厳格な静的型づけの言語ですが、PHPは動的型づけの言語です。 これをどうやって、変換しているのか?という話です。 非常に長く、眠い話になりますが、寝ないで読んでいただけたら嬉しいです。 間違いなどありました、ぜひ教えてください。 hiphop php を入れよう。 そもそもhiphop php を入れるのはすごく大変です。 Scientific Linux
年の瀬に引越ししたので、部屋の再構築を行った。 コンセプトは快適に引き篭もれる未来の部屋。 その紹介をしたいと思う。 図面 一部省略の図面、古い建物なのでちょっと広い。 10m2 * 2部屋ぐらい。 何度か検討を繰り返してこの形式に落ち着いた。 カーテンを100インチのディスプレイにしてみた カーテンレールに100インチのスクリーンを釣り下げてみた。 カーテンが支えられるんだから、100インチのスクリーンぐらい支えられるだろうという発想。 カーテンレールに入れるのにLANケーブル用のマーカータイを使ってみた。 束ねれば結構強固である。 スクリーンの後ろは黒塗りされているので裏写りはないと思うけど、念のための裏写り防止のためと、昼間でも投影できるように暗室を作りたかったので、暗室用のブラックカーテンを後ろに引いている。 プロジェクターはNECの NP-U310WJD 短焦点プロジェクターを使
'13/7/6 追記: Google Play の売上情報に、購入者の個人情報が入らなくなりました 注: '12/1/13、Google側が誤りであったことを認めたとのことです。詳細は一番下の追記参照。 最近、Android Market の売上レポートに購入者の完全な名前・住所・電話番号・メールアドレスなどが表示されるようになってしまい、少々困っています。 Android Market でのアプリ売上は Google Checkout というサイトで確認できるようになっており、それぞれの売上ごとに詳細なレポートを閲覧できるようになっています。以下はその中の抜粋です(個人情報は全部塗りつぶしています) 配送先というところに、購入者の完全な住所・名前・携帯電話番号・メールアドレスが入ってしまっています。この配送先は前からレポートには出ていたのですが、以前は情報は部分的なものでした(住所は番地
去年の年末、Facebookで以下の様な画像が流れてきて自分もついついシェアしたんだけど、久々に、というか、自分にとってのここ最近の課題をドンピシャで突かれたような気がして、しばらく頭から離れなかった。 出展: 中村 修治 - 中村 修治さんの写真アルバム | Facebook 「プロ」か「アマチュア」か、というのはこの際どうでも良くて、この図の、上の曲線が、目指すべきところだなって話なだけなので、とりあえずその話をまとめてみることにする。 けど、まぁ、だいたい、こういう話をまとめるのは苦手だし途中で面倒になってしまうので、以下サブセクションだけ先に作ってみたものの、ちゃんと書くかどうかわからない... が、まあ、いい!あと、なんかグダグダ書いてしまいそうだけど、結局、サブセクションのタイトルにしたことをこねくりまわしているだけです。 作ってみるまでわからない 何にも言えることだけど作って
paver 依存関係を調査しないrubyのrakeのようなもの。Rakefileにあたるファイルはpavement.py。以下のように書く。 from paver.easy import * @task def hello(options): print "hello" @task def list_tasks(): task_list = environment.get_tasks() for task in task_list: print task.shortname これでhelloタスクが使えるようになる(list_tasksも使える) % paver hello # hello paverには利用できるタスクを表示するオプションがない。 元のコードに手を加えて、オプションを付け足しても良いけれど、とりあえずはlist_tasksを定義することでしのぐ。 タスクのリストはひょうじ
ごちゃっとしたプロジェクトで、setup.pyみたいなファイルだけでそのプロジェクトのビルドや配置が完結できない場合に役に立つのが paver。 でも、そのためにみんなに paver をインストールしてもらうのが気が引ける、という場合、 paver minilib というコマンドを実行すると、 paver-minilib.zip というzipファイルが生成され、Paverの基本的な機能はこれで全部カバーされる。 このファイルは23KBなので、チェックアウトしたツリーに突っ込んで配布しても良いし、いっそのこと直接バージョン管理システムに突っ込むのもありだろう。 なんだけど、 paver をインストールしないと、 paver コマンドを実行できない。なので、 minipaver とかいう名前でこんな起動スクリプトを付けると良いだろう。 #!/usr/bin/env python import
僕はsvnやhgなどで落としてるライブラリをあるdir配下にまとめている。 こんなカンジで。 (あくまで例ですよ) ./ -- bespin -- bruce-tpt-read-only -- ctypesgen-read-only -- django -- django-command-extensions -- eventlet -- gaeutilities-read-only -- google_appengine -- jaikuengine-read-only -- jinja2-main -- mako -- nevow -- paver-read-only -- pinax -- pinsor -- projectmgr -- py3k -- pypy-dist -- pyquery -- python26 -- python27 -- remedie -- rope --
Paver: ソフトウェアプロジェクトのための簡易スクリプティング¶ Paver は Make や Rake によく似た Python ベースのソフトウェアプロジェクトのスクリプティングツールです。例えば C 言語のプログラムのように必要な依存関係を追跡して扱うようには設計されていません。Python 構文と豊富なライブラリコードの利便性により、雑多な全ての繰り返しタスク(ドキュメントを生成する、関連ファイルを移動する、ダウンロードする)に対して 補助するように 設計されています 。 もしあなたが Python でアプリケーションを開発しているなら、なおさら使用してみましょう。大半の Python のパブリックプロジェクトは再配布向けのソース tarball を作成するために distutils か setuptools を使用します(プライベートプロジェクトもこの利点を得ることができる!
シンプルな問い合わせフォームアプリをSilexを使って作ってみましたのでその紹介。 Silexとは? SilexとはPHPで書かれたマイクロフレームワークです。RubyのsinatoraにインスパイアされてSymfony2のリードマージャー(Lead Merger)であるファビアンさんが作っています。特徴として名前空間がしがし使っていたりするのでPHP5.3.2以上でないと動きません。 というと、Symfony2っぽいと思われる方がいると思いますが、このSilexのライブラリはSymfony2でも利用しているコンポーネント類の一部を利用して作成されています。いわばSymfony2の妹分といったところでしょうか。 あと、ライブラリをpharアーカイブで配布しているので基本silex.pharの1ファイルさえあれば動かせます。 冗談のようなアプリかと思っていたら意外(失礼)と本気のようで公式サ
自分用のメモ。 Flask はマイクロフレームワークを詠っているが、大きめのアプリケーションを作る事が出来る。 自分で色々組み合わせて行くのが好きなので Flask を使う。 メンドクサイのなら、素直に Django とか Pyramid なフルスタックを使えば良い。 Modular Applications with Blueprints — Flask 1.0.2 documentation Flask で大きなアプリケーション Blueprint ver. - 混沌脳内 アプリケーションの構成 お手本としたアプリケーション*1 danjac / newsmeme — Bitbucket http://www.ninxit.com/blog/2011/03/09/flask-mvc-sample/ 基本的に上記に影響を受けてる。 ├── manage.py └── app ├── __
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く