駒形電産

オペラシティでお昼を食べたついでにINTER COMMUNICATION CENTERのオープンスペースの展示を見に行って来ました。

ICC ONLINE | オープン・スペース 2009

メディア・アートの展示をやってます。何も知らずに行ったんですが、すごく面白かった。無料だし開催期間も長いのでおすすめです。

僕は情報系の専門学校にいってそのまま20歳からひたすら、

「コンピューターを使っていかに儲けるか」

系の泥臭い仕事ばかり(嫌いじゃないですが)やってきたので、アートやらサイエンスやらは無縁。

僕のはじめての仕事は、

「本を倉庫から出荷する時にその一覧をOracleから引っ張って来てVBでプリンタで出力する。」

というものでした。(確か“自動倉庫システム”というプロジェクト名)

メディア・アートとは要するにコンピューターを使って素敵な画像や動画や音楽やテキストでやる芸術の事みたいです。

何か、コンピューターを使って、「儲ける」とかじゃなくて、単に「素敵な音楽」とか「楽しいグラフィック」というだけで存在しているコンピューターっぽいものはとても癒される。

全くそういう意識になかった、セルオートマトンのライフゲームやワイアーワールド、フラクタルなどはアルゴリズムがどうとか抜きで動きがわいいなあなどとボーッと見れました。

一番大きな展示が《My%20Desktop OSX10.4》

巨大なプロジェクターに投影されたMacのデスクトップでひたすら操作されてて、エラー音や警告音、スピーチの声とかが狂った調子で繰り返されてる。

無響室も不思議な体験だった。音が無くなるというより普段意識してない音の音圧が凄くて圧迫してきて、うるさく感じる。

コンピューターの作る変な絵とか、音とか変なハードとか、仕事抜きで好きなんだなぁと癒されて会社に戻りました。

戻って待っていたのはさいかのバグ修正。

「PHPのin_array関数は便利だな〜」

とかすっごいリアルで現実に引き戻されました。バグは直ってよかったです・・・。

自己紹介が面倒なのでプロフィールをエントリーにまとめておきます。

プロフィール

名前
駒形 真幸
写真
性別
男性
現住所
東京都渋谷区
出身地
東京都八王子市
生年月日
1978年5月13日
趣味
読書, ゲーム, インターネット, ダイエット
職業
プログラマ
似ている芸能人
  1. 昔の山のフドウ
  2. 大黒シズオ
  3. 牛股権左衛門
生まれ変わったらなりたいもの
  1. 佐藤浩市
  2. M.ナイト.シャマラン
  3. 姜尚中(ハスキーボイス)
好きな本・マンガ
MASTERキートン、団地ともお、血だるま剣法
好きな言葉
焼け石に水
連絡先
    Email:
    komagata@gmail.com
    mixi:
    179970
    Windows live Messenger
    komagata@hotmail.co.jp
    Skype
    komagata1111
    Twitter
    komagata

ドキュメント

p0t
ガチ鬱プログラマー日記
大東亜戦争従軍記
戦争時の祖父の手記をブログ化
ちゃりんちゃりん生活
Webのマネタイズについて
Mr.T
渋谷区本町六号通り商店街にあるMr.Tの謎を追う
アクトインディ技術部隊報告書「komatata」
アクトインディ株式会社在籍時の技術ブログ
ウノウラボ: 検索結果:「komagata」
ウノウ株式会社在籍時の技術ブログ

動画

GemCasts
便利なRubyGems紹介
生放送しながらWebサービスを作る
Help me, hackers!というWebサービスをゆるいおっさん二人が作ります。

サービス

Plnet
フィードアグリゲーションサービス
Mojavi Japan
PHPのWebアプリケーションフレームワークMojaviの各種リソースと日本語コミュニティ

ツール

win32-aques_talk
AquesTalk rubyバインディング
saimaa
継続的インテグレーションを助けるコマンド
Talkedbun
日本語テキストトゥースピーチサーバー
Darjeeling
ちょっと見易いRedmineのテーマ
Cloister
Rails簡単ブログ
DNSBL::Client
荒らし対策DNSブラックリストクライアント
ssl_requirement_paranoid
IEでSSL移動時警告が出ないようにするRailsプラグイン
Widget.Dialog
標準のalert, confirm, promptを置き換えるようなシンプルなJavaScriptライブラリ
AwesomeFramework
PHP4, PHP5(多分6も・・・)対応のとてつもなくシンプルなWebアプリケーションフレームワーク
Raw Template Engine
PHP4, PHP5対応のとてつもなくシンプルなテンプレートエンジン

メディア

イベント・カンファレンス

所属

駒形真幸
個人事業主
FJORD, LLC(合同会社フィヨルド)
代表社員
スペイシーズ
外部取締役

出社

フィヨルド
平日
スペイシーズ
月1

仕事でやってること

  • コード書く
  • サーバー作る
  • BTS書く(Redmine)
  • リリースする(デプロイ)
  • ミーティングする

仕事で作ってるもの

インストール

wget 'http://www.vim.org/scripts/download_script.php?src_id=10198' -O ~/.vim/plugin/gist.vim
vi ~/.vimrc
" github
let g:github_user = 'komagata'
let g:github_token = 'XXXXXXXXXXXXXXXXXX'

開いてるファイルをgistにアップ

:Gist

自分のgist一覧

:Gist -l komagata

便利過ぎて失禁する。

作者のmattnさん・・・God bless you.

参照:Big Sky :: Gistを便利に扱えるvimscript、「Gist.vim」書いた。

ターミナル — ssh — 80×24

今度はWordPressのテーマ実装はどうなってるのか調べてみました。

% tree wp-content/themes/default
wp-content/themes/default
|-- images
|   |-- audio.jpg
|   `-- kubrickheader.jpg
|-- index.php
`-- style.css

ほう、テーマディレクトリ自体がDocumentRoot以下にあると・・・。

あ…ありのまま 今 起こった事を話すぜ!

「おれはテーマを晒さない方法を調べていたと思ったら、 いつのまにか問題にすらなってなかった」

AA略

なるほど・・・これは、頭に無かったな・・・いや、しかし・・・。

ユーザがサーバ障害・不具合を認識
 │
 ├───┐
 │  ユーザがユーザ掲示板に書き込み
 │   ↓
 │  xrea 側からの反応一切無し
 │
 │
 ├───┐
 │  ユーザが value-domain のお問い合わせフォームから問い合わせ
 │   ↓
 │  サポート受付担当者からテンプレートな返事にて
 │  担当部門が緊急対応をしており、
 │  受付担当者は受付が担当の為、詳細の状況は何も返答できず、
 │  ユーザ掲示板にを活用しつつ待つようにと返答
 │   ↓
 │  ユーザがユーザ掲示板に書き込み
 │   ↓
 │  xrea 側からの反応一切無し
 │
 │
 ├───┐
 │  ユーザが digirock のコンタクトフォームからお問い合わせ
 │   ↓
 │  digirock 側からの反応一切無し
 │
 │
 └───┐
    ユーザが digirock の代表電話番号へ電話
     ↓
    留守番電話に切り替わり、人が電話に出ず
XREA&CORE SUPPORT BOARD - View Single Post – FTP障害・メール障害の原因は逆引きDNSの不具合?

以上のことから、サポート受付担当は、障害・不具合を認識しているが、 サーバ管理担当者やネットワーク管理担当者が、何をしているのか、 ユーザには、何も報告されず、何も分からない状況。 ユーザは、不具合の状態のまま、ただ待つのみ。 xrea に見切りを付けたユーザは、xrea 以外のレンタルサーバに移動を始めている模様。

サポート受付担当者は担当部門が緊急対応を 行っていると言うが、不具合があまりも長時間にわたるため、 サーバ管理担当者やネットワーク管理担当者が、実際何をしているのか全く分からない。

XREAが5日ぐらい障害中。(エクスリアって読むらしいですよ!)

技術的な問題だけでなく、サポート体制や組織内の意思疎通も正常な状態ではないように思えます。

個人向けサービスと考えて、仕事では同じレンジの用途では別のサーバーを探そうと思いました。

この前書いたこの問題。

長いので以下ステージング環境認証問題と言うことにします。

(ステージング環境についてはこちら

元エントリーにもコメントをいただき、大変参考になりました。僕の場合、3日考えて良い解決法が見つからない時は大抵1ヶ月かかっても見つからないのでブログに書いたり人に助けを求めたりします。(サーセン・・・)

今回もそれを実行したところid:dandasoにナイスアイデアを頂きました。(Thanks!)

皆様方におかれましては、

「そんなに悩むところか?」

感が否めないかもしれませんが、僕と同じく悩んだ方がいて、参考になったりすれば幸いです。

ステージング環境認証問題対応方法

一言で言うと、「クッキーの値で認証する」ということです。

fooというアプリがあるとして、まず、下記のようなBASIC認証をがかかった認証用クッキーを設定するプログラムを見えないとこに置きます。(PHPが便利でした)

<?php
$user = 'foo';
$pass = 'bar';
$realm = 'foo';

if ($_SERVER['PHP_AUTH_USER'] === $user and $_SERVER['PHP_AUTH_PW'] === $pass):
    setcookie($realm, sha1($pass));
    header('Location: /');
else:
    header("WWW-Authenticate: Basic realm=\"{$realm}\"");
    header("HTTP/1.0 401 Unauthorized");
?>
<html>
  <head>
    <title>Authentication</title>
  </head>
  <body>
    <h1>Authentication</h1>
    <p>正しいユーザー名とパスワードを入力してください。</p>
  </body>
</html>
<?php endif ?>

本来、問題になっているアプリ「foo」に上記のアプリのAliasを張ります。(上記をfooのリポジトリに入れたくないので)

<VirtualHost *:80>
  ServerName foo
  Alias /auth /path_to/auth.php
...(snip)...
</VirtualHost>

fooのアプリのApplicationControllerでlogin_required(本来のBASIC認証)より先にcookieを見て認証します。(認証失敗したらさっきのPHPにリダイレクトする)

require 'digest/sha1'

class ApplicationController < ActionController::Base

...(snip)...

  before_filter :cookie_auth_required if $STAGING

  def cookie_auth_required
    redirect_to "/auth" unless cookies["foo"] == Digest::SHA1.hexdigest("bar")
  end
end

ステージング環境でのみこの認証を追加したいので、capの設定ファイルにステージング環境用フラグを追加するタスクを書きます。(フラグの書き方、もっとキモくない方法しりたいです・・・)

config/deploy/staging.rb:

namespace :deploy do
  desc 'Added staging flag in production.rb'
  task :before_restart do
    run "echo '$STAGING = true' >> #{current_path}/config/environments/production.rb" 
  end
end

これで http://foo/auth というURLと foo / bar というID/PASSをお客さんに教えることでステージング環境を認証有りで確認してもらうことができました。

お客さんの手間と本来のアプリのリポジトリの影響を最小限にしたいがためにこんな形になりました。

ブラウザを閉じるまでの間、cookie内にパスワード(のハッシュ)があるので大事な認証に使うのは辞めた方がいいと思います。利便性とのトレードオフで今回の自分ような、見られても致命的な影響が無いものならいいかなと思いました。

Apacheの設定とかでcookieの値を見てはじければ、fooから認証コードが取れてもっとよさげです。そういうモジュールとか無いのかな?引き続き模索してみます。

参照

参考になるCakePHPのアプリのソースを探してCakeforgeのCheesecake Photoblogというのをインストールしてみました。

CakeForge: Cheesecake Photoblog: Project Info

A simple to setup and use Photoblog using cake which has theming, tags, comments and archive browsing using several options. more information on http://cheesecake-photoblog.org

CakeforgeでCakePHP自身の次にダウンロードされてるそうです。最新安定板である1.5.1 Stableを使ってみました。

Quick Start

1. Untar and upload the entire contents of the tarball in a folder of your liking on your website 2. Go to http://yourdomain.com/path_to_your_cheesecake_install/install/ and follow the instructions on screen

インストール方法はREADMEの通り簡単ですが、下記を直さないと画面真っ白です。

diff app/views/layouts/default.thtml{,.org}
15c15
< <script type='text/javascript'></script>
---
> <script type='text/javascript'>

cheeseCake </del> alpaka mini

普通のフォトブログですが、テーマをサポートしてたり、CakePHPをベースにオープンソースソフトを作る参考になりそうです。

The Gift of 1.2 final (Articles) | The Bakery, Everything CakePHP

Today, the history of the CakePHP grows stronger. December 25, 2008 will be remembered as one of the most important points in this history. After exactly 2 yrs from the first development release, we can happily say we have the most stable and powerful web framework available. Please enjoy our big present to you, CakePHP 1.2 stable [1]. For this release, we have removed the test files from the build, and created a tag in SVN.

クリスマスにCakePHPの1.2がリリースされた。

1.1で作り始めたばかりの俺にとっては悪夢。

年末持ち帰ったCakeアプ... <del> 赤さん </del> はてなセリフ

まさに外道。

Creole – Trac

The Creole Project is Dead

Note: Creole is no longer being maintained.

ちょwww、PHP5用のDB抽象レイヤーのCreoleが終了!?(via id:shimooka

Rails3の決断が早いっつー話があったけどOSS(特にLL系)は引き際も早いですなぁー。

ユーザーにとっては引き際早過ぎて嬉しいところ無しw

ぷろぺる(Propel)とかどーなんの?

[#ZF-5317] typo in Zend_Db_Adapter_Abstract – Zend Framework Issue Tracker

In ZF v. 1.7.1, Zend/Db/Adapter/Abstract.php, line 179: Zend_DB::AUTO_QUOTE_IDENTIFIERS => $this->_autoQuoteIdentifiers instead of: Zend__Db::AUTO_QUOTE_IDENTIFIERS => $this->_autoQuoteIdentifiers

仕方ないね・・・(via kawadu)