[F1]:Williams という哲学 - 2009年を見据えて

2008/06/25 15:00:28
カテゴリ:F1

F1キンダーガーデンで、面白い記事を見つけました。

欠席したサム・マイケルの代わりに、技術部門の最高責任者であり、チームの創立時代から信頼を寄せられているパトリック・ヘッドが陣頭指揮を取った。彼が指示したのは「とにかく最高速を高くしろ」だった。

・・・中略・・・

そこで最高速に振ったマシンでデータを取る。それをガレージで構えるサム・マイケルに届ける。ウィリアムズは、そこで集積したデータを24日から始まるシルバーストンのテストに投入するのではないか。

F1キンダーガーテン:ウィリアムズのレース哲学に期待!?

なるほど。高速サーキット連戦に対する戦略の可能性、ですか。
現代F1において、1レースをある意味捨ててテストする、ってのは勇気が要りそうですが、目先の成果ではなく先を見た成果を追えるのも、安定したスポンサーを確保しているWilliamsならではじゃないでしょうか。
(SuperAguri消滅前は、全戦テストみたいでしたが・・・)

だけど自分には、高速サーキットへの対策だけではないような気がします。
ずばり、対2009年!

みなさんご存知の通り、来年はダウンフォース量を制限されるわけですが、
必然的にメカニカルグリップと、ストレートスピード+ストレートエンドでのブレーキングのスタビリティーが重要になってきます。
記事中にあった「Williamsの得意なサーキットがモナコやカナダ」、というのは公道を利用したサーキットでスリッピーなわけで、 そこが得意ということはメカニカルグリップは及第点と考え、「ストレートスピード+ブレーキングのスタビリティー」に焦点を絞ってきたんではないでしょうか。

長年、良い時も悪い時も、常に技術屋・レース屋として開発し続けてきたWilliamsだからこそ、
目先の成果を追わず「継続」開発での将来のコンストラクターチャンピオンを見据えているからこそ、
そしてプライベーターだからこそ(プライベートテストし放題とは行かないからこそ)、
実戦をテスト、というか「実験」の場にしてしまったのだとしたら・・・

そう考えられたら、かっこいい! そして渋い!

でも、この今回のレースペースに対する分析、Williamsだからこそ、ですね。
他のチームだったら、「遅い!」の一言で終わっちゃいそうです。

[FMS]:Flash Media Server 2 の Debug Mode 設定

2008/06/24 17:31:12
カテゴリ:Web > Flash (FMS, AS)

FMS2の コンソール(fms2_console)を利用すると、サーバーサイドスクリプトのtrace内容とかをデバッグできますが、Shared Objectsの中身もデバッグできるみたいです。
「Veiw Applications」タブの中で、アプリケーションを選択後、「Shared Objects」タブを選択すると、Shared Objectの一覧が表示されます。

でも、個別のShared Objectを選択すると、

Failed to make a debug connection, please check that the application is in debug mode

とエラーが出て、中身が見れません。
「debug mode」かどうか確認、と言われても、そんなことスクリプトで設定できるのかな? と、数少ない書籍(しかも、FCS向け)を熟読するも、そんなことはどこにも書いてません。

FMS関連の情報は、ググってもなかなか情報が無いので、仕方なくFlash Media Serverのリソースをひたすら検索したら、わかりました。

基本的に、デフォルトではデバッグ不可になっていたようです。
「デバッグモードか確認しろ。」じゃなくて、「デバッグの設定が true になってるか確認しろ。」と言ってくれれば、早かったのにorz

で、許可する方法ですが、「Application.xml」という設定XMLファイルで行います。
Application.xmlは、「インストールディレクトリ /conf/_defaultRoot_/_defaultVHost_」の中にあります。
サーバ丸ごとデバッグを許可するなら、こいつの

<AllowDebugDefault>false</AllowDebugDefault>

を、「true」にして、サーバ再起動。

特定のアプリケーションだけ許可するなら、Application.xmlを、そのアプリケーションディレクトリにコピーして、同様に編集するだけ。
サーバの再起動が面倒だったので、アプリケーションをリロードだけで行けるかな?
と思ったけど、反映されませんでした。
でも、「明日でいっか。」と放っておいて、ブラウザからのテストのコネクションも全部切断、コンソールも終了、で他の仕事して、また戻ってきたら有効になってました。

何がトリガーなのか不明ですが、まぁOKってことで。

[PHP]:Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent

2008/06/21 13:06:13
カテゴリ:Web > PHP

またもや、PHPのWarning 「header already sent by (...)」 ネタです。

今度は別の個人で受けた案件で、「超特急で、メール送信フォームをお願いします!」というのがありました。
まぁ、メールフォームくらいならすぐ出来ますよ、ってなもんで、
既存でサーバに上がってたHTMLをダウンロードしてきて、PHP化して、
ちゃちゃっと終わらせようとしたら、またもや Warningで、 「header already sent by (...)」が!

詳細はこれ。

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at hoge.php:1) in hoge.php on line 5

line 5 に書かれているのは「 session_start(); 」。

むむむ?
前回の記事のように、ファイルの頭に、余分な改行も、空白もありません。

で、今回の「超特急」でお願いされた仕事でもあり、いろいろ確認をすっとばしてたところを、
真面目に再確認。

おお!UTF-8 だ!これか?!
普段、PHPはEUCで書いてて、UTFなんかで書かないですもん。

でも、content の宣言もUTF-8で、ファイル保存形式も・・・、「UTF-8」!
これか?
日本語、使ってるぞ!?

で、「UTF-8N」に保存し直して、一件落着。

でも、なぜ「 SESSION 」についてのエラーなんでしょう?
2行目から4行目は、なんでエラーにならないんでしょう?
(行数が違うってことは、当然、改行コードも入ってるし。)

あぁ、そうか。処理の中で一番最初に日本語が出てくるのは、セッション内に
格納された、日本語文字列か orz

なるほど。焦点が間違ってましたね。
「なぜ、セッションでのエラーなのか」、じゃなかったんだ。
「スクリプトの中で、セッションが、一番最初に扱うものにエラーがある。」、だったんだ。

森博嗣が、書いてました。

人は、どう答えるかではなく、何を問うかで評価される。
臨機応答・変問自在

デバッグの基本、ですね。

[PHP]:Warning: Cannot modify header information - headers already sent by

2008/06/17 21:46:24
カテゴリ:Web > PHP

先日、会社をやめちゃったプログラマ(初心者)からある案件を引き継ぎました。
PHP + MySQL(+ JavaScript使いまくり!)。
そしたら、バグの雨あられ。

で、今日はまったのが、このエラー。

Warning: Cannot modify header information - headers already sent by (output started at hogehoge.php:7) in unyaunya.php on line 28

う~ん、header情報がすでに出力されてるって言っても、「hogehoge.php」に相当するファイルのどこでも「header("Content-Type:・・・);」みたいなことはやってる形跡がありません。

しかし、やっぱりヒントは、「header」なのでした。
「hogehoge.php」で定義されてるfunctionの前に、改行やら、タブやらが転がってました。
つまり、改行やら、タブやらが「出力」されてしまっていて、「unyaunya.php」で吐きたいheader情報が上書きできてなかったみたいです。

↓これは駄目。

<?
	
	function hoge(){
	}
?>

↓当然これはOK。

<?
function hoge(){
}
?>

普段、いきなりファイルの冒頭でインデントなんてしたことなかったので、分かりませんでした。
これも勉強!、ですかね?

[Smarty]:Linux へのインストール メモ

2008/06/17 13:55:25
カテゴリ:Web > PHP
  1. 解凍したファイルを全部アップロードするのは面倒なので、「tar.gz」版をダウンロード。
    2008年6月17日現在の最新版は、2.6.19。
    ダウンロードサイト:http://www.smarty.net/download.php
  2. ダウンロードしたファイル(Smarty-2.6.19.tar.gz)をライブラリディレクトリへアップロード。
    今回は、「/usr/local/lib/」。
  3. Telnetして、アップしたディレクトリへ移動して、解凍。
    # cd /usr/local/lib/
    # tar xvzf Smarty-2.6.19.tar.gz
    
  4. 解凍できたか確認。
    # ls
    # Smarty-2.6.19  Smarty-2.6.19.tar.gz
    
  5. インストールは以上で完了。
    あとは、Smartyを利用するPHPファイルから、
    define('SMARTY_DIR', '/usr/local/lib/Smarty-2.6.19/libs/');
    require_once(SMARTY_DIR . 'Smarty.class.php');
    $hoge = new MySmarty();
    
    でOK。

[Smarty]:Smarty のソースをDreamWeaverで

2008/06/13 19:37:04
カテゴリ:Web > PHP

とある新規のお客さんから、
「Webデザイン会社にサイトを作ってもらったけど、管理が大変で仕方がないので、テンプレート化&管理画面化して欲しい。」
とのお仕事を頂きました。

お客さんとしては、若干PHPの知識があるようなので、PHP+Smartyに決定。
だけど、普段の更新作業はDreamWeaverを使っている模様。

自分は全くと言っていい程DreamWeaverを使わない(コーディングからプログラムまで、何でもかんでもTerapadです)ので、DreamWeaver上でSmartyのソースがどうなるやら想像も付きませんでした。

で、Google先生に教えて頂いたのが、こちらのページ。
SmartyをよりスマートにDreamweaverで編集する (Nega Diary)

その発展版ソリューションがこちら↓
Smarty×Smarty (Nega Diary)

PhotoshopのJavaScriptプラグイン書く人とか、Firefoxのアドオン作る人とかもそうですが、こういう風に、アプリケーションに突入して行けるってすごく羨ましいです。

[F1]:SuperAguriを応援したかった...

2008/06/12 14:54:23
カテゴリ:F1

もっとブログを早く始めていれば、SuperAguriの足跡を追えたのに...

後の祭りとは、まさにこのことです。

[MT4]:MovableType「被」啓蒙。で、ブログ始めました。

2008/06/11 14:35:16
カテゴリ:Web > MovableType

今まで、色んな企業さんのサイトの「新着情報」とか「商品ページ」とかを
稚拙なPHPで作ってきました。

先日、義姉のWebサイトを Movable Type で作ってみたら、以外と簡単。

で、「手段と目的が逆転してる」的な感情を抱きつつ、仕事でもお客さんのサイトにMTを導入。
HTMLコーディング上がってきてからMTに乗っけたわけですが、
なんと、1時間(!)程度であっけなく完成してしまいました。

「これは使い倒してやらねば」と思い立ち、個人の実験の場として、このブログを立てました。

修行不足の自分から見た発見、経験をMTに限らず、PHP、CSS、JavaScript、などを書いて行きたいと思います。

でも、F1も好きだし、社会に不満のある一般市民だし、そんなことも書きたくなるに違いないので、「カテゴリ」というよりは、「グローバルメニュー」的にリンクが出来ていく予感がして、そんなナビゲーションのレイアウトにしてみました。

さてさて、どうなることやら。

皆さん、宜しくお願い致します。