« 2010March »
Su Mo Tu We Th Fr Sa
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
このBlogについて
このブログはCMScomが公開する、公式ブログです。 Zope/Ploneのことや、Pythonのことなどを掲載しています。 また、個人的な内容も一部含まれております。
最近のエントリ
Zope/Plone開発勉強会(2009年2月)の報告 terada 2010年02月25日
Zope/Plone開発勉強会(合宿バージョン)の報告2 terada 2010年02月15日
Zope/Plone開発勉強会(合宿バージョン)の報告1 terada 2010年02月01日
Ploneの英語のメーリングリスト紹介 terada 2010年01月29日
2010年も既に半月経過 terada 2010年01月17日
PloneでMS-Officeファイルを検索対象にするプロダクト公開 terada 2009年12月18日
Plone研究会&Ploneパーティー2009 terada 2009年12月10日
Plone3の日本語検索とメールバグ terada 2009年12月08日
Pythonスクリプトを使って便利な機能を実装 terada 2009年12月04日
MeCabで日本語読みを出力 on Windows terada 2009年12月03日
Plone3のメールバグ解消プロダクト公開 terada 2009年11月23日
Plone Conference 2009 の報告(4) terada 2009年11月18日
Plone Conference 2009 の報告(3) terada 2009年11月18日
Plone Conference 2009 の報告(2) terada 2009年11月10日
Plone Conference 2009 の報告(1) terada 2009年11月09日
Plone Conference 2009 がはじまりました terada 2009年10月28日
Plone Conference 2009 へ(2) terada 2009年10月23日
Plone Conference 2009 へ terada 2009年10月22日
【終了】Zope/Plone開発勉強会 #4 terada 2009年10月21日
Plone4のデフォルトデザイン terada 2009年10月18日
最近のコメント
Re:PloneでMS-Officeファイルを検索対象にするプロダクト公開 NK 2010年02月15日
Re:Plone3のメールバグ解消プロダクト公開 terada 2009年11月23日
Re:Zope Essentials 7 無事終了 t2y 2009年08月23日
Re:Plone3.0以降のメール送信 akiko 2009年08月10日
Re:Google App Engine と Google Apps はすい 2009年08月04日
Re:PyLuceneの日本のコミュニティが立ち上がった t2y 2009年08月04日
Re:Plone3.0以降のメール送信 siebo 2009年01月20日
Re:Plone3.0以降のメール送信 Shigeo Honda 2009年01月20日
Re:Plone Conference 2008 で知り合った人々(1) 伊藤@b-mark 2008年11月23日
Re:Plone Conference 2008 に参加 terada 2008年10月16日
Re:Plone Conference 2008 に参加 terada 2008年10月16日
Re:Plone Conference 2008 に参加 malik 2008年10月16日
Re:Plone Conference 2008 に参加 Yasu. 2008年10月16日
Re:Twitterどうでしょうか zen 2007年05月26日
Re:Plone2.5からの注意 Anonymous User 2007年04月21日
Re: Windows Vista良い感じ terada 2006年11月15日
Re: Windows Vista良い感じ ナルディ 2006年11月15日
Re:Ploneのケータイ対応 sayg 2005年12月02日
Re:Ploneのケータイ対応 terada 2005年12月02日
Re: SWFファイル Terada 2005年10月25日
 
編集操作

開発情報

一つ上に移動

編集操作

涼しい軽井沢

本日の夜から、中軽井沢へ行ってきます。
今回の目的は、開発合宿第3弾です。

夏休みも、ほとんどとっていないので、みんなで涼しいところで、開発を行いたいという、意味ありげな考えで行ってきます。
何か成果物を残したいと考えております。

戻りは、28日月曜日です。

それでは、行ってきます。

カテゴリ
開発情報
トラックバック用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>
  • 参考サイト
トラックバック用URL:

[python]TurboGearsアプリをFastCGIでデプロイする

投稿者 a geek 投稿日時: 1999年01月01日 06時45分
TurboGearsアプリを Apache + mod_fastcgi で動かしたときのメモです。*1 環境 Python 2.5 TurboGears 1.0.3.4 CherryPy 2.3.0 mod_fastcgiインストール 入ってるの前提なので省略。このエントリとかこのエントリとか。 flupインストール TurboGearsアプリは基本的にWSGIア

開発合宿(1泊2日)


本日から1泊2日で、千葉県内で開発合宿を行います。
今回は、幅広くメンバーを募り、14名が参加いただくイベントとなりました。

今までとの違いは、

  • テーマ・目標は個人で好きなことを行ってもらう(今までの当社の合宿は、テーマを前もって決めみんなで作り上げていました)
  • 関係各所にお声を掛け、幅広く集まってもらった。(結果14名)
  • 1泊2日と短い期間での開催
  • 人数もまとまったので、小型バスを借りた
  • なるべく普段できないことへの挑戦をする

などです。

結果はまたお伝えします。



私は、Socket通信やSNS的な物などで作りたい物があり、2つのテーマを平行して行おうかと、いまだ悩んでいます。

トラックバック用URL:

開発合宿終了しました

貸し切りバスで現地へ

お昼はウナギをいただきました

宿泊地へ到着

開発部屋で準備中

開発部屋

JMRIのレール

この土日の開発合宿を無事に終了しました。詳しいレポートは別途行うとして、まずは概略を報告します。

まず、今回の行き帰りに使用したバスは、最高でした。小型サロンバスだったのですが、これがまた非常に快適。運転手さんも良い方で様々な心遣いをいただきました。

宿泊先は、テレビ東京「ワールドビジネスサテライト」でも紹介されたことのある、土善旅館に行ってきました。温泉も雰囲気がありいいお湯でした。インターネット回線は多少遅く感じることがあったり、独自に設置した無線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月の前半に行う予定です。次回は今回のテーマを拡充できるようにできればと思っております。参加希望の方がいらっしゃいましたら、早めにご連絡をいただければと思います。
トラックバック用URL:

開発合宿に参加しました

投稿者 Ciel Serein Blog 投稿日時: 1999年01月01日 06時45分
先週末、CMSコミュニケーションズさんの開発合宿に参加しました。とは言っても、翌日朝から用事があったので、土曜日、日帰りでの参加です。初めての経験でどうなることかと思っていましたが、大変楽しく、有意義に過ごすことができました。  どんなところが良かったか...

阿波ダンスつっこみ放送局

当サイトのTopページではお伝えしておりましたが、テレビCMでもおなじみの映画「阿波DANCE」のプロモーションサイトを制作しました。

その名も、阿波DANCE「元祖つっこみ放送局」です。

動画にテロップを入れたり、音声・効果をつけられたりと、プリクラ感覚でテレビのようなおもしろさを演出することができます。
Flash動画プレーヤはFXB原さんの協力を得て開発しました。一緒に開発していて楽しかったです。
また、バックエンドには、動画配信で多くの実績のあるFlipClipさんに協力を頂きました。

みなさん使ってみてください。

この「元祖つっこみ放送局」は、2006年冬映画「シムソンズ」ブログにて実装した、ブログコメントから動画テロップになるという物をバージョンアップした物です。機能的には大幅に加わっています。

主な機能

  • 字幕(テロップ)が入れられる。吹き出しが入れられる。音声・効果が入れられる。
  • 表示時間の編集が出来る。
  • これらアイテムを削除することが出来る。
  • 現在の状態を保持したい場合は、それも可能。
  • ブログに貼り付けることが出来る。

今後は、これを応用しサービス展開していたいと思います。

なお、映画「阿波DANCE」は、8月18日から公開になります。この暑い夏を青春映画でぶっ飛ばせると思います。(ケータイサイトは、http://m.awadance.jp/です)

トラックバック用URL:

開発合宿 in 草津温泉

この週末は、開発合宿を2泊3日で行ってきました。金曜日の仕事後に出発という少し強硬な日程でした。しかし、参加された9名のみなさんは成果を出されていました。

目的日は涼しい場所ということで、草津温泉に行ってきました。昨年同じ時期に軽井沢に行ったのですが、さすがに軽井沢に比べると蒸し暑い感じが残っていましたが、気温は日中で25℃、夜は20℃を下回っていました。

前回6月の開発合宿同様に、皆さん個人個人テーマを決めて、開発に励んでいました。その中私は、普段行わない、クライアントサイドの開発をメインに行いました。Flex3を使ったクライアントアプリを作りました。完成とは行きませんでしたが、準備をほとんどせずに望んだ割には、物が出来たので良かったです。クライアントはWebAPIでデータを表示させるのですが、そちらはの制作は案外簡単でした。

今回の注目は、Pythonおれおれフレームワークの制作やその上にのるアプリの開発(2名)
俳句を詠むサイト(音声付き)などでした。
他にも、0から始めるPythonやプロデューサ職でも出来るPHP+MySQLサイトなども、良い成果が出ていました。

次回は10月頃関東近郊で開催することしました。参加希望の方はご連絡ください。

特急草津
開発風景1
開発風景2
寒暖計 25℃
成果発表
草津温泉湯畑

トラックバック用URL:

2007年を振り返り

2007年末も終わりに近づき、今年を振り返ってみたいと思います。

今年の実績と開発実績

  • サイト内検索エンジンを作り、大手企業に納入した。<<今後、ビジネスに使いたい
  • Ploneサイトを民間系案件に使い、サイトの利用率が倍になった。
  • Ploneで、カートシステムを作った。<<良い実装が出来た
  • TurboGearsで、映画サイトとして「つっこみ放送局」を作った
  • つっこみ放送局は、「ニコニコ動画」よりも面白い物が出来た
  • 政府系大手サイトをPloneで構築した
  • ケータイサイトを作った
  • コミュニティーケータイサイトの構築に関われた
  • Ploneで、アクセシビリティ対応サイトを作った

今年良かったこと

  • スタッフが増えた
  • 大きな実績が作れた
  • 来年への布石が出来た

来年への布石

  • ケータイ系ASPサービスと検索を絡めた企画を進めたい

  • Ploneを簡単に使ってもらうために、静的書き出しプロジェクトが開始
  • Plone , Varnish and LVS などの精査が始まった


などなど、みなさんにご迷惑をお掛けしながらも会社として成長出来てきます。
来年もみなさんよろしくお願いいたします。

トラックバック用URL:

日本語にてPlone3.xを使用する便利なプロダクト


ご無沙汰しております。夏休み最後の日は北軽井沢で過ごしています。3箇月に1回程度定期的に行っている、開発合宿に来ています。その成果の一部でもあります、プロダクトを2つ紹介します。

日本語でPloneを使う際の問題点

  • ファイルアイテム(コンテンツタイプ)にて、日本語ファイル名をアップロードして、ダウンロードする際にファイル名が元の物と変わってしまう。
  • 日本語にてタイトルを入力し、自動的にショートネームを生成すると意味のない文字列になる。
  • 日本語検索がデフォルトで提供されない。また、アドオンプロダクトの設定も面倒。
  • メールの文字化けなど発生するケースがある。
  • その他
これらを解決するプロダクトを開発したいと思っております。今回はその中の上2件のプロダクトを公開します。

ファイルアイテム(コンテンツタイプ)の日本語ファイル名取り扱い

下記のプロダクトを説明の通りインストールしてください。
日本語ファイル名ダウンロードプロダクト
ファイルをダウンロードする際のファイル名取得方法の仕様からみていきたいと思います。

基本

HTTPヘッダーに
Content-Disposition: attachment; filename="filename.txt"
とします。

もし、このヘッダーが無い場合は、URLの末尾を使用するようです。

日本語の場合

下記のような疑問が出てきます。
  • 文字コードを何にするか? ページのエンコーディングと一緒か?
  • Windowsだったら、Shift_jisにすればいいのか?
  • ヘッダーに日本語をいれて、RFC的に問題ない??
それを調べてみると、RFC2231が見つかり、メールタイトルの処理方法と同じようにすることが良いようです。
但し、ここからが問題です。この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に知り合いがいたので、その方を経由して技術的な仕様を確認しているところです。今しばらくお待ち下さい。
現在の所、IEとFireFoxのみに対応しています。みなさんの環境でもテストしていただければ幸いです。情報をお待ちしています。

このサイトを参考にさせていただきました。

日本語タイトルを意味のあるショートネームにする

下記のプロダクトを説明の通りインストールしてください。
Plone日本語タイトルからショートネームを翻訳生成プロダクト
これは、先日のPlone研究会でたかのりさんにアイデアを頂きまして実装してみました。
アイデア段階では、Google翻訳を使用すれば良いと言うことだったのですが、Google側の仕様が変わったようで教えていただいたモジュールも使用できず、Yahoo!のAPIを使わせていただきました。
商用で使用できるかというと、外部のサイトを使ったりと問題も多そうですが、一つのアイデアプロダクトとして公開します。

その他

これら2つのプロダクトとも、現在の所、α公開です。またPlone3.0以降に対応させています。
今後の仕様変更やクリティカルなバグが潜んでいる可能性が有ります。ただし、データベース操作をする物ではないので、プロダクトソースを消すことで元の機能に戻ります。
まだ、改良の余地も多いと思います。バグ報告や機能アップ要望などがありましたら、連絡をいただければと思います。

機能をお客様のために作り込むお仕事もさせていただいています。その際もご連絡を頂ければと思います。

Plone日本語ファイル名ダウンロード Plone日本語ファイル名ダウンロード
サイズ 1 kB - ファイルの種類 text/plain
Plone日本語タイトルからショートネームを翻訳生成 Plone日本語タイトルからショートネームを翻訳生成
サイズ 1 kB - ファイルの種類 text/plain
トラックバック用URL:

東アジア言語(日本語を含む)におけるPlone検索プロダクト


Google Summer of Code にて開発を進めていたのですが、7月の時点でドロップアウトしてしまい、このプロジェクトは中断していました。

このままでは、4月に考えていた思いが中途半端で終わってしまう事もあり、会社としてプロジェクトを継続しました。

その成果がようやく発表できる段階まで来ましたので報告します。


各国語に詳しい方がいらっしゃいましたら、テストに協力をいただけれれば幸いです。
東アジア言語を含めたPlone検索プロダクト 東アジア言語を含めたPlone検索プロダクト
サイズ 1 kB - ファイルの種類 text/plain
トラックバック用URL:

東アジア言語(日本語を含む)におけるPlone検索プロダクト2


本日、βバージョンとしてVer.0.2をリリースしました。

バグフィックスや日本語の仕様変更を行いました。

ダウンロード先: BigramSplitter




東アジア言語(日本語を含む)におけるPlone検索プロダクト 東アジア言語(日本語を含む)におけるPlone検索プロダクト
サイズ 987 - ファイルの種類 text/html
東アジア言語を含めたPlone検索プロダクト 東アジア言語を含めたPlone検索プロダクト
サイズ 1 kB - ファイルの種類 text/plain
トラックバック用URL: