スタッフブログ
今日の蒸し暑さに、かなりバテ気味のgusagiです(最近、こんなのばかりですね)
先日、Ryujiもブログに書いていましたが、9/4(金)・9/5(土)にPHPカンファレンス2009が開催されます。
PHPカンファレンスのサイトでは、現在発表者の一般公募を行っているようです。
締め切りが6/26(金)とギリギリですが、興味のある方は是非応募してみて下さい
また、今週・来週にはCMSビズやOpenSource World 2009など、オープンソース系のイベントが開催されます。
上記の2イベントには、弊社のRyujiも参加する予定です。
これから夏に向けてどんどん暑くなりますが、夏バテせずにOSS関連のイベントに参加しようと思っていますので、機会がありましたら是非声を掛けて下さい
先日、Ryujiもブログに書いていましたが、9/4(金)・9/5(土)にPHPカンファレンス2009が開催されます。
PHPカンファレンスのサイトでは、現在発表者の一般公募を行っているようです。
締め切りが6/26(金)とギリギリですが、興味のある方は是非応募してみて下さい
また、今週・来週にはCMSビズやOpenSource World 2009など、オープンソース系のイベントが開催されます。
上記の2イベントには、弊社のRyujiも参加する予定です。
これから夏に向けてどんどん暑くなりますが、夏バテせずにOSS関連のイベントに参加しようと思っていますので、機会がありましたら是非声を掛けて下さい
気になりつつも時間とれなくて先送りしつづけていた、このサイトのカイゼンに着手しはじめた龍司です。
今日ちょっとやってみたのは、このスタッフブログ(d3blogを使ってます)の各記事の画面で、同じカテゴリの最新記事一覧も表示させることです。
最初はxoops_blockプラグインだけでできるかなぁとも思ったのですが、そのままではできなかったので、テンプレートにプログラムを書くという邪道な方法で表示させてしまいました。
見ている記事に関連したコンテンツを楽に見られるようにしたいと思っているので、まだもうちょっと手を加えていくつもりです。
# 同じカテゴリの閲覧数上位の記事リスト表示とか、同じユーザの最新と閲覧数上位リストの表示とかもやってみたいと思っています。
d3blogは、こまめにバージョンアップしているので、最新版でうまく動作するのを確認して、やっつけで書いたプログラムを整理した上で、またこのブログでやり方を公開したいとおもっています。
今日ちょっとやってみたのは、このスタッフブログ(d3blogを使ってます)の各記事の画面で、同じカテゴリの最新記事一覧も表示させることです。
最初はxoops_blockプラグインだけでできるかなぁとも思ったのですが、そのままではできなかったので、テンプレートにプログラムを書くという邪道な方法で表示させてしまいました。
見ている記事に関連したコンテンツを楽に見られるようにしたいと思っているので、まだもうちょっと手を加えていくつもりです。
# 同じカテゴリの閲覧数上位の記事リスト表示とか、同じユーザの最新と閲覧数上位リストの表示とかもやってみたいと思っています。
d3blogは、こまめにバージョンアップしているので、最新版でうまく動作するのを確認して、やっつけで書いたプログラムを整理した上で、またこのブログでやり方を公開したいとおもっています。
長いことThinkPad1台でやってきたのですが、デスクトップの導入と持ち運び用ノートパソコンの軽量化を通じて自分周りのハードウェアを再構成中です。
買ったもの
i-mac http://www.apple.com/jp/imac/
vaio type-p http://www.vaio.sony.co.jp/Products/P1/
type-pはオーナーメイドでOSはWindowsXP、色は金色です。
i-macを会社のデスクトップとして使用し、持ち運び用はtype-pで軽量化を図ります。
今まで1台でやってきたので、問題となりそうなのはデータの一元化です。
そのためには今まで無料バージョンで使ってきたDropBoxの有料申込をして使える容量を50GBにアップしました。
早速i-macにDropBoxをインストールしただけで、ThinkPadで使っていたものと全く同じファイルが入っているのには感動しました。これからは共有データはできるかぎりDropBoxへ保存していくつもりです。
また、メールについてはgmailを使う予定です。
現在ローカルでは秀丸メールを使っていますが、IMAP対応がどこまで使えるか?という疑問があります。とはいえ使い慣れたインターフェースは捨てがたいのでとりあえずチャレンジ。
今の作業状況は
・gmailにインポートするため、ローカルでthunderbirdにメールデータを移動
というあたりです。フォルダ分けをたくさんしているのでフォルダごとにしかエクスポートできないという秀丸メールからのエクスポートに時間がかかっています。
i-macにはWindowsをVMwareで動かせるようにしました。これでマック環境とWindows環境はばっちりです。
持ち運びに伴う身体の疲れも取れそうですし、マックでしか使えないソフトを使ったり、マック環境でのWebサイトの動作確認などもこれからは楽にできる、といいことづくめな気がしています。
買ったもの
i-mac http://www.apple.com/jp/imac/
vaio type-p http://www.vaio.sony.co.jp/Products/P1/
type-pはオーナーメイドでOSはWindowsXP、色は金色です。
i-macを会社のデスクトップとして使用し、持ち運び用はtype-pで軽量化を図ります。
今まで1台でやってきたので、問題となりそうなのはデータの一元化です。
そのためには今まで無料バージョンで使ってきたDropBoxの有料申込をして使える容量を50GBにアップしました。
早速i-macにDropBoxをインストールしただけで、ThinkPadで使っていたものと全く同じファイルが入っているのには感動しました。これからは共有データはできるかぎりDropBoxへ保存していくつもりです。
また、メールについてはgmailを使う予定です。
現在ローカルでは秀丸メールを使っていますが、IMAP対応がどこまで使えるか?という疑問があります。とはいえ使い慣れたインターフェースは捨てがたいのでとりあえずチャレンジ。
今の作業状況は
・gmailにインポートするため、ローカルでthunderbirdにメールデータを移動
というあたりです。フォルダ分けをたくさんしているのでフォルダごとにしかエクスポートできないという秀丸メールからのエクスポートに時間がかかっています。
i-macにはWindowsをVMwareで動かせるようにしました。これでマック環境とWindows環境はばっちりです。
持ち運びに伴う身体の疲れも取れそうですし、マックでしか使えないソフトを使ったり、マック環境でのWebサイトの動作確認などもこれからは楽にできる、といいことづくめな気がしています。
こんにちは。argonです。
今回は、お勧めの小説「第六大陸」について書いてみようと思います。
第六大陸 1:ハヤカワ・オンライン
結構前にhaltさんと面白い小説などの話をしていて、自分は今回紹介する小川一水著の「第六大陸」をあげていて、先日やっとhaltさんに貸すことになりました。
詳しい感想はまだ聞いていませんがhaltさんは朝の4時まで読んでいたそうです。
今その本はSF好きだと聞いたので、兎本(mik)さんに貸していたりします。
さて内容は簡単にいうと「プロジェクトX」的SF小説です。
ハヤカワ・オンラインより引用
自分はこの手の近未来SFものや宇宙開発ものが作品が結構好きです。
現在の経済が常に発展する、成長し続けるというシステムを維持しようとすると、まず人類の総人口の増加が続く事
その条件として食料生産量の拡大。そして、やがては生存圏の拡大が必要になってくると思います。
生存圏としての宇宙を考えると、技術的課題も多く早々は実現はできないかもしれませんが、数世紀レベルのスパンで考えれば、人類が進めるべき事業だと思うのです。
ちなみに他の近未来が舞台のSF作品としてはこの「第六大陸」のカバーイラストを描いている幸村誠氏の「プラネテス」という漫画がお勧めです。
今回は、お勧めの小説「第六大陸」について書いてみようと思います。
第六大陸 1:ハヤカワ・オンライン
結構前にhaltさんと面白い小説などの話をしていて、自分は今回紹介する小川一水著の「第六大陸」をあげていて、先日やっとhaltさんに貸すことになりました。
詳しい感想はまだ聞いていませんがhaltさんは朝の4時まで読んでいたそうです。
今その本はSF好きだと聞いたので、兎本(mik)さんに貸していたりします。
さて内容は簡単にいうと「プロジェクトX」的SF小説です。
ハヤカワ・オンラインより引用
西暦二〇二五年。極限環境下での建設事業を得意とする御鳥羽総合建設は、巨大
レジャー企業から新たな計画を受注した。工期は十年、予算一千五百億円、そし
て、建設地は月――。機動建設部の青峰は月面の中国基地へ現場調査に赴くが、
そこは想像を絶する苛酷な環境だった。月面開発計画「第六大陸」全二巻着工!
自分はこの手の近未来SFものや宇宙開発ものが作品が結構好きです。
現在の経済が常に発展する、成長し続けるというシステムを維持しようとすると、まず人類の総人口の増加が続く事
その条件として食料生産量の拡大。そして、やがては生存圏の拡大が必要になってくると思います。
生存圏としての宇宙を考えると、技術的課題も多く早々は実現はできないかもしれませんが、数世紀レベルのスパンで考えれば、人類が進めるべき事業だと思うのです。
ちなみに他の近未来が舞台のSF作品としてはこの「第六大陸」のカバーイラストを描いている幸村誠氏の「プラネテス」という漫画がお勧めです。
haltです。今日は、はてな記法を解釈するライブラリ、HatenaSyntax ( http://openpear.org/package/HatenaSyntax )を紹介します。
HatenaSyntaxは、はてなダイアリーで使われている、はてな記法 ( http://hatenadiary.g.hatena.ne.jp/keyword/%e3%81%af%e3%81%a6%e3%81%aa%e8%a8%98%e6%b3%95%e4%b8%80%e8%a6%a7 ) を解釈します。
はてな記法を利用する事で、ユーザは、簡単な記号を書くだけで、HTMLの知識がなくても複雑な表現する事ができ、
サービス提供者側は、HTMLタグを直接使わなくても多様な表現ができる分、脆弱性発生のリスクを抑える事ができます。
(もちろんはてな記法の解釈に問題があって脆弱性が発生する可能性は受け入れる必要がありますが)
HatenaSyntaxの特徴は、「少ない行数で使える事」です。最低限の変換ができるだけでよければ、以下のコードで動きます。
HatenaSyntax.phpをrequireした後にHatenaSyntax::render()を実行するだけです。
ただし、HatenaSyntaxはPEGライブラリに依存しているので、こちらも同時にインストールしておく必要があります。
私は過去にPukiWiki記法をパースするライブラリを書いた事があるのですが、すべての構文をカバーする気力がなく、途中で力尽きました。
有名な記法ならなんでもよかったので、その時にHatenaSyntaxがあれば大幅に工数を減らせたのになーと昔の事を思いだしました。
HatenaSyntaxは、はてなダイアリーで使われている、はてな記法 ( http://hatenadiary.g.hatena.ne.jp/keyword/%e3%81%af%e3%81%a6%e3%81%aa%e8%a8%98%e6%b3%95%e4%b8%80%e8%a6%a7 ) を解釈します。
はてな記法を利用する事で、ユーザは、簡単な記号を書くだけで、HTMLの知識がなくても複雑な表現する事ができ、
サービス提供者側は、HTMLタグを直接使わなくても多様な表現ができる分、脆弱性発生のリスクを抑える事ができます。
(もちろんはてな記法の解釈に問題があって脆弱性が発生する可能性は受け入れる必要がありますが)
HatenaSyntaxの特徴は、「少ない行数で使える事」です。最低限の変換ができるだけでよければ、以下のコードで動きます。
require_once 'HatenaSyntax.php';
$str = '
* header
';
echo HatenaSyntax::render($str);
HatenaSyntax.phpをrequireした後にHatenaSyntax::render()を実行するだけです。
ただし、HatenaSyntaxはPEGライブラリに依存しているので、こちらも同時にインストールしておく必要があります。
私は過去にPukiWiki記法をパースするライブラリを書いた事があるのですが、すべての構文をカバーする気力がなく、途中で力尽きました。
有名な記法ならなんでもよかったので、その時にHatenaSyntaxがあれば大幅に工数を減らせたのになーと昔の事を思いだしました。
Emacsで使う日本語入力メソッドを、Prime(prime.el)に変えました。 いままでは、Anthy(anthy.el)を使っていました。 (過去記事:Emacs修行中)
Anthyでは英数字やカナを入力する前に、モードを切り替えないといけないのですが、できるようになりませんでした。
身に染みついた変換の癖はかなり強くて、「入力してからファンクション・キーで変換」という方法が使えないか模索していたのですが、そこで見つけたPrimeに乗り換えることにしました。
これはこれで(予測変換という)今まで体験していなかったような動きがあって、その部分は慣れていこうと思っているのですが、今まで感じていた入力のストレスが大幅に軽くなったと思います。
Ubuntu 8.04 でのインストールは、APTでインストールできるのでお手軽です。 必要なライブラリも含めて、load-pathには勝手に入るのですが、有効化するには設定ファイル(.emacs)を自分で書き換える必要がありました(私の環境の場合)。 その書き方をノウハウとしてメモ書きしておきます。
以下、.emacsに追加する部分
;;; PRIME for Emacs (require '55prime-el) (global-set-key "\C-\\" 'prime-mode) (setq default-input-method "japanese-prime")
satoです。
今週末に札幌でオープンソースカンファレンス2009 Hokkaidoがあります。
私もRedmineについて話す予定ですので、北海道の方は是非お越し下さい。
さて、Redmineを普通に使うには、Redmine.jpという、日本語でRedmineの情報を集めたサイトがありますので、こちらをご覧頂けると大体問題なく使えるのですが、実運用になると何かと問題が発生します。
Redmine.jpではPassengerを使用した方法が書かれていますが、Passengerは動作が安定しないことがあり、個人的にはまだ実用するには不安が残ります。
そこで、Railsアプリ運用では一般的だと思われる、mod_proxy_balancerとThinを組み合わせた運用方法について説明します。
WEBrick(素の状態でruby script/serverで起動するサーバ)のRedmineの起動ができていることを前提とします。
■Thin
Thinは、RubyのWebサーバで、Mongrelを内部でパーサとして使用しており、かつMongrelより高速なのが特徴です。
まずインストールをします(以下ほとんどsudo等の管理者権限で実行することになります)
これだけでThinを使うことができます。
なお、Ubuntuで
のようなエラーが出た場合は、
として、ruby1.8-devをインストールすると解決します。
これだけでもいいのですが、このままでは起動が面倒です。また、1プロセスしか存在しないため、1プロセスが死ぬと繋がらない状態になります。
Thinには、両方とも解決する機能が搭載されており、起動スクリプトの自動生成と、クラスタ化ができるようになっております。
で、/etc/init.d/にthinが入ります。
ですが、このままだと起動できないので、起動用の設定ファイルを別途出力します。
Thinの起動スクリプトは、/etc/thin/*.ymlを読み込みます。そのため、そこに設定ファイルを出力します。
/path/to/redmine/はRedmineのパス、--servers 3はプロセスを3つ立ち上げる、-e productionはproduction環境で実行する、ということになります。
出力される/etc/thin/redmine.ymlは名前の通りYAMLですので、簡単に修正することができます。使用するポート番号の範囲とかも書かれているので確認しておいてください。
ここまでできたら、
で、Redmineが起動します。必要に応じてchkconfig thin onなどでサーバ起動時に起動するようにしておきましょう。
■mod_proxy_balancer
mod_proxy_balancerは、Apache2.2から導入されたソフトウェアのロードバランサモジュールです。
今回はThinを複数プロセス起動しているので、これを使用して1つのURLでアクセスできるようにします。
大体こんな感じです。
BalancerMemberで、立ち上げたThinのURLをプロセス分記入します。
ロードバランサだけならPoundやNginxとかでもいいのですが、通常Redmineだけでサーバ1つ占有することはないと思いますので、大体入っていると思われるApacheを使って設定するのが便利だと思います。
■余談
リポジトリ画面は、そのままだと毎回取得して遅いので、本番環境では必ずcronで取得するようにしましょう。
詳細はRedmine.jpの記事をご覧下さい。
今週末に札幌でオープンソースカンファレンス2009 Hokkaidoがあります。
私もRedmineについて話す予定ですので、北海道の方は是非お越し下さい。
さて、Redmineを普通に使うには、Redmine.jpという、日本語でRedmineの情報を集めたサイトがありますので、こちらをご覧頂けると大体問題なく使えるのですが、実運用になると何かと問題が発生します。
Redmine.jpではPassengerを使用した方法が書かれていますが、Passengerは動作が安定しないことがあり、個人的にはまだ実用するには不安が残ります。
そこで、Railsアプリ運用では一般的だと思われる、mod_proxy_balancerとThinを組み合わせた運用方法について説明します。
WEBrick(素の状態でruby script/serverで起動するサーバ)のRedmineの起動ができていることを前提とします。
■Thin
Thinは、RubyのWebサーバで、Mongrelを内部でパーサとして使用しており、かつMongrelより高速なのが特徴です。
まずインストールをします(以下ほとんどsudo等の管理者権限で実行することになります)
gem install rack
gem install thin
なお、Ubuntuで
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
sudo aptitude install ruby1.8-dev
これだけでもいいのですが、このままでは起動が面倒です。また、1プロセスしか存在しないため、1プロセスが死ぬと繋がらない状態になります。
Thinには、両方とも解決する機能が搭載されており、起動スクリプトの自動生成と、クラスタ化ができるようになっております。
thin install
ですが、このままだと起動できないので、起動用の設定ファイルを別途出力します。
thin config -C /etc/thin/redmine.yml -c /path/to/redmine/ --servers 3 -e production
Thinの起動スクリプトは、/etc/thin/*.ymlを読み込みます。そのため、そこに設定ファイルを出力します。
/path/to/redmine/はRedmineのパス、--servers 3はプロセスを3つ立ち上げる、-e productionはproduction環境で実行する、ということになります。
出力される/etc/thin/redmine.ymlは名前の通りYAMLですので、簡単に修正することができます。使用するポート番号の範囲とかも書かれているので確認しておいてください。
ここまでできたら、
/etc/init.d/thin start
■mod_proxy_balancer
mod_proxy_balancerは、Apache2.2から導入されたソフトウェアのロードバランサモジュールです。
今回はThinを複数プロセス起動しているので、これを使用して1つのURLでアクセスできるようにします。
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName redmine.example.com
ProxyPass / balancer://redmine_cluster/
ProxyPassReverse / balancer://redmine_cluster/
<Proxy balancer://redmine_cluster/>
BalancerMember http://127.0.0.1:3000 loadfactor=20
BalancerMember http://127.0.0.1:3001 loadfactor=20
BalancerMember http://127.0.0.1:3002 loadfactor=20
</Proxy>
</VirtualHost>
大体こんな感じです。
BalancerMemberで、立ち上げたThinのURLをプロセス分記入します。
ロードバランサだけならPoundやNginxとかでもいいのですが、通常Redmineだけでサーバ1つ占有することはないと思いますので、大体入っていると思われるApacheを使って設定するのが便利だと思います。
■余談
リポジトリ画面は、そのままだと毎回取得して遅いので、本番環境では必ずcronで取得するようにしましょう。
詳細はRedmine.jpの記事をご覧下さい。
外の蒸し暑さと、建物内の冷房の差で風邪を引かないように四苦八苦しているgusagiです
この週末にVirtualBoxを試してみたので、今日はそれについて書こうと思います。
VirtualBoxとは、正式にはSun xVM VirtualBoxといい、サン・マイクロシステムズが公開している仮想化アプリケーションで、個人・教育・評価目的であれば無償で使用出来ます。
特徴としては、スナップショットなどの機能を備えつつ無償で利用出来ること、対応ゲストOSが多く存在すること、起動などの速度が他の仮想化アプリケーションに比べて速いことなどがあるようです。
また、機能面での大きな特徴としては、「シームレスモード」が存在することが挙げられます。
私はプライベートのメイン環境をVMWare上に構築しているのですが、最近起動の際にかかる重さが気になっていたところに、金曜日の社内発表会でVirtualBoxに関するhaltのプレゼンを聞いて、試して見る気になりました
ということで、この週末にVirtualBoxをインストールして、メイン環境として利用出来るか試してみました。
ベンチマークなどについては、多くの方が既にブログなどで書かれているので、今回は「メイン環境として利用できるか」を中心に、体感速度などを重視してみました。
この週末にVirtualBoxを試してみたので、今日はそれについて書こうと思います。
VirtualBoxとは、正式にはSun xVM VirtualBoxといい、サン・マイクロシステムズが公開している仮想化アプリケーションで、個人・教育・評価目的であれば無償で使用出来ます。
特徴としては、スナップショットなどの機能を備えつつ無償で利用出来ること、対応ゲストOSが多く存在すること、起動などの速度が他の仮想化アプリケーションに比べて速いことなどがあるようです。
また、機能面での大きな特徴としては、「シームレスモード」が存在することが挙げられます。
私はプライベートのメイン環境をVMWare上に構築しているのですが、最近起動の際にかかる重さが気になっていたところに、金曜日の社内発表会でVirtualBoxに関するhaltのプレゼンを聞いて、試して見る気になりました
ということで、この週末にVirtualBoxをインストールして、メイン環境として利用出来るか試してみました。
ベンチマークなどについては、多くの方が既にブログなどで書かれているので、今回は「メイン環境として利用できるか」を中心に、体感速度などを重視してみました。
まだ3ヶ月ぐらい先の話になりますが、PHPカンファレンス2009が9月4日、5日と二日間にわたり開催されます。
・PHP カンファレンス 2009
9月4日(金曜)はビジネス視点でのPHPをテーマとした「ビジネスディ」
9月5日(土曜)は技術視点でのPHPをテーマとした「テックディ」
になってるようです。
昨年のPHPカンファレンス2008では少し話をさせてもらっただけですが、今年はスポンサーとしても協力させていただきます。
PHPで開発をする皆さんや、ビジネスでPHPを活用される皆さんにとっても素晴らしいカンファレンスになることを今から祈っております。
実行委員の皆さんは、大変だと思いますが、がんばってくださいね!
・PHP カンファレンス 2009
9月4日(金曜)はビジネス視点でのPHPをテーマとした「ビジネスディ」
9月5日(土曜)は技術視点でのPHPをテーマとした「テックディ」
になってるようです。
昨年のPHPカンファレンス2008では少し話をさせてもらっただけですが、今年はスポンサーとしても協力させていただきます。
PHPで開発をする皆さんや、ビジネスでPHPを活用される皆さんにとっても素晴らしいカンファレンスになることを今から祈っております。
実行委員の皆さんは、大変だと思いますが、がんばってくださいね!
6月7日、日曜日。RYUSメンバーのうち4人は都内某所にてすごい会議の大橋禅太郎さんをファシリテーターに迎え、12時間に及ぶ会議を実行しました。
議題はRYUSの2009年の重点課題「組織力向上による利益向上」。常にそういうことを考えつつ、なかなか実現できない、実行できないところをこの会議を通じて多くの「やるべきこと」に気づきました。やるべきことをするにはそれに対応する「方法」が必要ですがその方法についても学ぶことができました。
最初は12時間も会議をするとは…と思っていましたが、終盤近くになりもうあと1時間ちょっとなのかと気づいたときには「まだ、時間が足りない!」と思ったほどでした。
月曜日にスタッフ全員とこの会議内容について話し合いをした結果、皆がコミットしてくれることを確信しました。
不思議ですが、意識が変わったせいか仕事の効率が良くなり、社内の雰囲気も明るくなった気がします。
しかし、まだまだこれからが本番です。
すごいRYUS になるため、毎日ワクワク仕事をしていく所存です。
議題はRYUSの2009年の重点課題「組織力向上による利益向上」。常にそういうことを考えつつ、なかなか実現できない、実行できないところをこの会議を通じて多くの「やるべきこと」に気づきました。やるべきことをするにはそれに対応する「方法」が必要ですがその方法についても学ぶことができました。
最初は12時間も会議をするとは…と思っていましたが、終盤近くになりもうあと1時間ちょっとなのかと気づいたときには「まだ、時間が足りない!」と思ったほどでした。
月曜日にスタッフ全員とこの会議内容について話し合いをした結果、皆がコミットしてくれることを確信しました。
不思議ですが、意識が変わったせいか仕事の効率が良くなり、社内の雰囲気も明るくなった気がします。
しかし、まだまだこれからが本番です。
すごいRYUS になるため、毎日ワクワク仕事をしていく所存です。