開発情報
一つ上に移動涼しい軽井沢
今回の目的は、開発合宿第3弾です。
夏休みも、ほとんどとっていないので、みんなで涼しいところで、開発を行いたいという、意味ありげな考えで行ってきます。
何か成果物を残したいと考えております。
戻りは、28日月曜日です。
それでは、行ってきます。
- カテゴリ
- 開発情報
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
TurboGearsをmod_wsgiで使ってみる
最近は、PloneのみならずTurboGearsを使うこともある。
TurboGearsには、Zope/Ploneと同じように、CherryPyというWebサーバが内蔵されている。CherryPyは関数がそのままURLにマッピングされ、GET引数や「/」で区切った引数の処理が柔軟で非常に便利である。
TurboGearsの本番環境へのIntegrateは、CherryPyをそのまま使用する(フロントにApacheと置いて、Proxyにて行う方法がよく使われているようである。他には、mod_pythonを使った方法も使われている。
Pythonには、WSGI(Web Server Gateway Interface)という仕様がある。Pythonで書かれた、TwistedというサーバやDjangoなどがこのWSGIに対応している。CherryPyもWSGI対応となっている。
最近、mod_wsigというプロジェクトが本格的になってきたようである。Djangoをmod_wsgiで動かそうとしている人がいることを見つけ、TurboGeasでも使えるはずとおもい週末からテストを行ってみた。下記に悪戦苦闘の結果を記載しておく。
*2007年11月7日に、WSGIファイルを変更しました。
- OSは、CentOS4.4を使用(ほぼデフォルトインストール状態)
- Apacheにapxsが導入されていること。
- インストールされていなかったので、yumでインストール
-
yum install httpd-devel
- mod_wsgiのインストール
-
$ svn checkout http://modwsgi.googlecode.com/svn/trunk/ modwsgi
$ cd modwsgi
$ ./configure
$ make
# cp .libs/mod_wsgi.so /etc/httpd/modules/. - expatのバージョン確認
-
# ldd /usr/sbin/httpd | grep expat
libexpat.so.0 => /usr/lib/libexpat.so.0 (0x00152000)
# strings /usr/lib/libexpat.so.0 | grep expat_
expat_1.95.7 - pyexpatはPython2.4.4を使用すると、1.95.8となる。
- これでは、バージョン違いで、
child pid xxxxx exit signal Segmentation fault (11)
- となってしまい、動かない。そこで、expatをソースからインストールする。
- expatのソースインストール
- http://sourceforge.net/projects/expat/ から1.95.8をダウンロード
-
$ ./configure
$ make
# make instal
# vi /etc/ld.so.conf
'/usr/local/lib'を追記
# /sbin/ldconfig - wsgi設定ファイルの作成
- project.wsgiとした。
- 2007年11月7日変更(identity を使用しているとうまくいかない件の解消)
-
import os
os.environ['PYTHON_EGG_CACHE'] = '/home/USER/www/'
import sys
sys.path.append('/home/USER/www')
sys.stdout = sys.stderr
import atexit
import cherrypy
import cherrypy._cpwsgi
import pkg_resources
pkg_resources.require("TurboGears")
import turbogears
turbogears.update_config(configfile="prod..cfg", modulename="project.config")
turbogears.config.update({'global': {'server.environment': 'production'}})
turbogears.config.update({'global': {'autoreload.on': False}})
# +++++++
import project.controllers #修正部
cherrypy.root = project.controllers.Root() #修正部
# +++++++
if cherrypy.server.state == 0:
atexit.register(cherrypy.server.stop)
cherrypy.server.start(init_only=True, server_class=None)
# --------
#import project.controllers
#cherrypy.root = project.controllers.Root()
# --------
application = cherrypy._cpwsgi.wsgiApp -
- httpd.confへの追記
-
LoadModule wsgi_module /etc/httpd/modules/mod_wsgi.so
<VirtualHost *:80>
ServerName www.example.com
Alias /static /home/USER/www/project/project/static
WSGIScriptAlias / /home/USER/www/project/project.wsgi
</VirtualHost> - 参考サイト
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (1)
- トラックバック用URL:
[python]TurboGearsアプリをFastCGIでデプロイする
開発合宿(1泊2日)
本日から1泊2日で、千葉県内で開発合宿を行います。
今回は、幅広くメンバーを募り、14名が参加いただくイベントとなりました。
今までとの違いは、
- テーマ・目標は個人で好きなことを行ってもらう(今までの当社の合宿は、テーマを前もって決めみんなで作り上げていました)
- 関係各所にお声を掛け、幅広く集まってもらった。(結果14名)
- 1泊2日と短い期間での開催
- 人数もまとまったので、小型バスを借りた
- なるべく普段できないことへの挑戦をする
などです。
結果はまたお伝えします。
私は、Socket通信やSNS的な物などで作りたい物があり、2つのテーマを平行して行おうかと、いまだ悩んでいます。
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
開発合宿終了しました
この土日の開発合宿を無事に終了しました。詳しいレポートは別途行うとして、まずは概略を報告します。
まず、今回の行き帰りに使用したバスは、最高でした。小型サロンバスだったのですが、これがまた非常に快適。運転手さんも良い方で様々な心遣いをいただきました。
宿泊先は、テレビ東京「ワールドビジネスサテライト」でも紹介されたことのある、土善旅館に行ってきました。温泉も雰囲気がありいいお湯でした。インターネット回線は多少遅く感じることがあったり、独自に設置した無線LANが思ったような動きをしてくれなかったりとてこずってしまう場面がありました。
開発の方は、まず、Socketサーバ開発に向けたTwistedの基本的なコード書きを行いました。
次に、友達(購読)機能を持った「ミニブログ」のベース機能の実装を行いました。
どちらも、基本部分はクリアでき、最後の発表は駆け足になりましたが、無事デモできました。
他には、リモートWWWサーバの設定を見直したり、新規導入したMacBookの設定変更などを行って、あっという間に合宿終了となりました。
今回の合宿では、下記のようなことをみんなで作りました。
- ActionScript3を使った、Socket接続するチャットシステム。このバックエンドでTwistedを使用しました(私もその一部コードを書きました)。バックエンドは、Spreadを使用し複数のTwistedサーバをたてられるような設計にしまして、その実装を行いました。この仕組みは見事動いたデモをみんなでテストできました。(私を除いて2人で実装(クライアントサイド・サーバサイドそれぞれ1人)
- Zope2を用いた、cometチャットシステム。ブラウザベースでできる、チャットシステムを実装しデモを見せていただきました。(これは1人で実装) Zopeのプロダクトとなっています。JavaScriptにはPrototype.jaを使用しています。複数台のPCを用いたデモも見せてもらえました。
- 他にも、PHPベースのフレームワークcakePHPでブログを作ったり、PHP+MySQLで外注管理システムを作ったりもしていました。
- 日帰りの方2人も、Adobe AIRでアプリを作ったり、ArchGenXMLでPloneのプロダクトを作るデモを見せてもらったりもしました。
- 一番の注目の、鉄道模型を電子コントロールするJMRIをPythonからコントロールするという、Webなどとは全く違ったリアルな世界で動く物を見せてもらえました。これは、モータ技術やギヤ技術という私の好きな(経験もある)ものから、コンピュータの世界へつなぐおもしろい物です。
- 他にも、皆さんの一歩レベルを上げる努力をしていただき、楽しく充実した合宿となりました。
写真などを含めた、レポートは別途公開したいと思います。
次回の合宿は、8月の前半に行う予定です。次回は今回のテーマを拡充できるようにできればと思っております。参加希望の方がいらっしゃいましたら、早めにご連絡をいただければと思います。
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (1)
- トラックバック用URL:
開発合宿に参加しました
阿波ダンスつっこみ放送局
当サイトのTopページではお伝えしておりましたが、テレビCMでもおなじみの映画「阿波DANCE」のプロモーションサイトを制作しました。
その名も、阿波DANCE「元祖つっこみ放送局」です。
動画にテロップを入れたり、音声・効果をつけられたりと、プリクラ感覚でテレビのようなおもしろさを演出することができます。
Flash動画プレーヤはFXB原さんの協力を得て開発しました。一緒に開発していて楽しかったです。
また、バックエンドには、動画配信で多くの実績のあるFlipClipさんに協力を頂きました。
みなさん使ってみてください。
この「元祖つっこみ放送局」は、2006年冬映画「シムソンズ」ブログにて実装した、ブログコメントから動画テロップになるという物をバージョンアップした物です。機能的には大幅に加わっています。
主な機能
- 字幕(テロップ)が入れられる。吹き出しが入れられる。音声・効果が入れられる。
- 表示時間の編集が出来る。
- これらアイテムを削除することが出来る。
- 現在の状態を保持したい場合は、それも可能。
- ブログに貼り付けることが出来る。
今後は、これを応用しサービス展開していたいと思います。
なお、映画「阿波DANCE」は、8月18日から公開になります。この暑い夏を青春映画でぶっ飛ばせると思います。(ケータイサイトは、http://m.awadance.jp/です)
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
開発合宿 in 草津温泉
この週末は、開発合宿を2泊3日で行ってきました。金曜日の仕事後に出発という少し強硬な日程でした。しかし、参加された9名のみなさんは成果を出されていました。
目的日は涼しい場所ということで、草津温泉に行ってきました。昨年同じ時期に軽井沢に行ったのですが、さすがに軽井沢に比べると蒸し暑い感じが残っていましたが、気温は日中で25℃、夜は20℃を下回っていました。
前回6月の開発合宿同様に、皆さん個人個人テーマを決めて、開発に励んでいました。その中私は、普段行わない、クライアントサイドの開発をメインに行いました。Flex3を使ったクライアントアプリを作りました。完成とは行きませんでしたが、準備をほとんどせずに望んだ割には、物が出来たので良かったです。クライアントはWebAPIでデータを表示させるのですが、そちらはの制作は案外簡単でした。
今回の注目は、Pythonおれおれフレームワークの制作やその上にのるアプリの開発(2名)
俳句を詠むサイト(音声付き)などでした。
他にも、0から始めるPythonやプロデューサ職でも出来るPHP+MySQLサイトなども、良い成果が出ていました。
次回は10月頃関東近郊で開催することしました。参加希望の方はご連絡ください。
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
2007年を振り返り
2007年末も終わりに近づき、今年を振り返ってみたいと思います。
今年の実績と開発実績
- サイト内検索エンジンを作り、大手企業に納入した。<<今後、ビジネスに使いたい
- Ploneサイトを民間系案件に使い、サイトの利用率が倍になった。
- Ploneで、カートシステムを作った。<<良い実装が出来た
- TurboGearsで、映画サイトとして「つっこみ放送局」を作った
- つっこみ放送局は、「ニコニコ動画」よりも面白い物が出来た
- 政府系大手サイトをPloneで構築した
- ケータイサイトを作った
- コミュニティーケータイサイトの構築に関われた
- Ploneで、アクセシビリティ対応サイトを作った
今年良かったこと
- スタッフが増えた
- 大きな実績が作れた
- 来年への布石が出来た
来年への布石
-
ケータイ系ASPサービスと検索を絡めた企画を進めたい
- Ploneを簡単に使ってもらうために、静的書き出しプロジェクトが開始
- Plone , Varnish and LVS などの精査が始まった
などなど、みなさんにご迷惑をお掛けしながらも会社として成長出来てきます。
来年もみなさんよろしくお願いいたします。
- カテゴリ
- 日常
- サービス
- Zope/Plone
- 開発情報
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
日本語にてPlone3.xを使用する便利なプロダクト
ご無沙汰しております。夏休み最後の日は北軽井沢で過ごしています。3箇月に1回程度定期的に行っている、開発合宿に来ています。その成果の一部でもあります、プロダクトを2つ紹介します。
日本語でPloneを使う際の問題点
- ファイルアイテム(コンテンツタイプ)にて、日本語ファイル名をアップロードして、ダウンロードする際にファイル名が元の物と変わってしまう。
- 日本語にてタイトルを入力し、自動的にショートネームを生成すると意味のない文字列になる。
- 日本語検索がデフォルトで提供されない。また、アドオンプロダクトの設定も面倒。
- メールの文字化けなど発生するケースがある。
- その他
ファイルアイテム(コンテンツタイプ)の日本語ファイル名取り扱い
下記のプロダクトを説明の通りインストールしてください。日本語ファイル名ダウンロードプロダクトファイルをダウンロードする際のファイル名取得方法の仕様からみていきたいと思います。
基本
HTTPヘッダーにContent-Disposition: attachment; filename="filename.txt"とします。
もし、このヘッダーが無い場合は、URLの末尾を使用するようです。
日本語の場合
下記のような疑問が出てきます。- 文字コードを何にするか? ページのエンコーディングと一緒か?
- Windowsだったら、Shift_jisにすればいいのか?
- ヘッダーに日本語をいれて、RFC的に問題ない??
但し、ここからが問題です。このRFC2231の通り実装してもブラウザ毎に挙動が違うのです。それらが課題となりました。
ブラウザ毎の違い
- MS-IE6、MS-IE7
- 独自仕様が多くいつも困らされているが今回も・・・
- UTF-8で、URLエンコードした文字列を指定する。
- 即ち、「filename*=URLエンコードされたファイル名.txt」のように指定する。
- この場合は、拡張子が有ることが条件のようです。
- この方法以外にも、生Shift_jisの文字列を使用することでも機能するようです。(こちらは拡張子の有無に関係ないらしい)
- FireFox
- もっとも仕様に厳格で、RFC2231の通り実装すれば機能します。
- 即ち、「filename*=utf-8'B'URLエンコードされたファイル名.txt」のように指定する。
- Safari
- 様々なWebサイトを見ましたが、完全な答えは見つかりませんでした。
- ただ、Content-Disposition: を指定せず、URLの末尾に、UTF-8でURLエンコードしたファイル名を指定することで解決できるようです。(未確認)
- Opera
- 仕様がよく分かりません。
- 生UTF-8を指定することでうまくいくケースと駄目なケース(ファイルによる)があります。
- そこで、日本のOperaに知り合いがいたので、その方を経由して技術的な仕様を確認しているところです。今しばらくお待ち下さい。
このサイトを参考にさせていただきました。
日本語タイトルを意味のあるショートネームにする
下記のプロダクトを説明の通りインストールしてください。Plone日本語タイトルからショートネームを翻訳生成プロダクトこれは、先日のPlone研究会でたかのりさんにアイデアを頂きまして実装してみました。
アイデア段階では、Google翻訳を使用すれば良いと言うことだったのですが、Google側の仕様が変わったようで教えていただいたモジュールも使用できず、Yahoo!のAPIを使わせていただきました。
商用で使用できるかというと、外部のサイトを使ったりと問題も多そうですが、一つのアイデアプロダクトとして公開します。
その他
これら2つのプロダクトとも、現在の所、α公開です。またPlone3.0以降に対応させています。今後の仕様変更やクリティカルなバグが潜んでいる可能性が有ります。ただし、データベース操作をする物ではないので、プロダクトソースを消すことで元の機能に戻ります。
まだ、改良の余地も多いと思います。バグ報告や機能アップ要望などがありましたら、連絡をいただければと思います。
機能をお客様のために作り込むお仕事もさせていただいています。その際もご連絡を頂ければと思います。
Plone日本語ファイル名ダウンロード
サイズ
1 kB
-
ファイルの種類
text/plain
Plone日本語タイトルからショートネームを翻訳生成
サイズ
1 kB
-
ファイルの種類
text/plain
- カテゴリ
- Zope/Plone
- 開発情報
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
東アジア言語(日本語を含む)におけるPlone検索プロダクト
Google Summer of Code にて開発を進めていたのですが、7月の時点でドロップアウトしてしまい、このプロジェクトは中断していました。
このままでは、4月に考えていた思いが中途半端で終わってしまう事もあり、会社としてプロジェクトを継続しました。
その成果がようやく発表できる段階まで来ましたので報告します。
各国語に詳しい方がいらっしゃいましたら、テストに協力をいただけれれば幸いです。
- カテゴリ
- Zope/Plone
- 開発情報
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL:
東アジア言語(日本語を含む)におけるPlone検索プロダクト2
東アジア言語(日本語を含む)におけるPlone検索プロダクト
サイズ
987
-
ファイルの種類
text/html
東アジア言語を含めたPlone検索プロダクト
サイズ
1 kB
-
ファイルの種類
text/plain
- カテゴリ
- Zope/Plone
- 開発情報
- 固定リンク
- ¦
- コメント (0)
- ¦
- トラックバック (0)
- トラックバック用URL: