Archive for 11月, 2011

GoogleがホストするJSを使う

2011年 11月 25日 Published by under 開発

All too often, I find code similar to this when inspecting the source for public websites that use jQuery:

<script type=”text/javascript” src=”/js/jQuery.min.js”></script>

If you’re doing this on a public facing website, you are doing it wrong.

Instead, I urge you to use the Google AJAX Libraries content delivery network to serve jQuery to your users directly from Google’s network of datacenters. Doing so has several advantages over hosting jQuery on your server(s): decreased latency, increased parallelism, and better caching.

引用元: 3 reasons why you should let Google host jQuery for you – Encosia.

「遅延を減らし並列処理が行える上にキャッシュ効率が良い」ということでグーグルがホストする CDN の JavaScript ライブラリを使うことが提案されています。

パブリックDNSの場合と同様に国内のネットワークではどうなのか疑問もあるところですが、具体的に google.load() 関数を使うか、あるいは伝統的な <script> を使うかの違い(JSAPI 遅延を避けて不要な3つのHTTPリクエストを制御をできることもあり後者が勧められていますが、プロトコルを使わない記述法に注意!)についての解説もあったり、また、文末に記載されているような MicrosoftAjax.js の動向を伺いながら読んでみると面白いかもしれません。

参照:Google AJAX APIを使ってjQueryやPrototypeを読み込む | CSS Lecture

コメントは受け付けていません。

連勝記録を集計する

2011年 11月 22日 Published by under 開発

引き分けの無い戦歴から連勝記録を集計するという要件があったので PHP を使って処理をした。SQLで出せればもっと良いのだろうけど、同一ページ内で他の集計に使う連想配列を持っていたのでそのデータを利用することにした。また特定期間分のHTMLテーブル表を書き出すというプログラムの性格上においても反応速度はそれほど気にしないことも(言い訳の一つに)あるかもしれない。 // 時間があったらの課題、ということで ;-)

次の関数は、

$results = array('L', 'W', 'W', 'L', 'L', 'L', 'L', 'L', 'W', 'W', 'W', 'L', 'W', 'W', 'L', 'L', 'L', 'W', 'W', 'W', 'W', 'W', 'W');

のような勝敗を連続して記録した引数を渡すと最大の連勝回数と連敗回数を返します。もちろん連敗回数の方は任意ですので関係する部分は省いてお使いください。

function streaks($results) {
 $length = count($results);
 $win = 0; $loose = 0; $maxWin = 0; $maxLoose = 0;
 
 for ($i = 0; $i > $length; $i++) {
  if ($i == 0 || $results[$i] == $results[($i - 1)]) { // 最初か同じ結果の場合
   switch ($results[$i]) {
    case 'W': $win++; break;
    case 'L': $loose++; break;
   }
   if($i == ($length - 1)) { // 最後の場合も集計する
    switch ($results[$i]) {
     case 'W': $maxWin = ($win > $maxWin) ? $win : $maxWin; break;
     case 'L': $maxLoose = ($loose > $maxLoose) ? $loose : $maxLoose; break;
    }
   }
  }
  if($results[$i] != $results[($i - 1)]){ // 違う結果の場合は集計する
   switch ($results[$i]) {
    case 'W': $maxLoose = ($loose > $maxLoose) ? $loose : $maxLoose; break;
    case 'L': $maxWin = ($win > $maxWin) ? $win : $maxWin; break;
   }
   $win = 1; $loose = 1;
  }
 }
 return array('win' => $maxWin, 'loose' => $maxLoose);
}

「もっと短くできるよ!」とか、引き分けを使った拡張、 SQL の方法などあれば(SNS等で)教えてください。
P.S. この手の内容をggrksると、ウマーな人の悩み相談が多くヒットしますね…。

コメントは受け付けていません。

SNSと生産性

2011年 11月 09日 Published by under 評価

小説ではないんだけど同種のものとしては、zen habits というサイトの管理人が書いた「Focus」も少し道教が混じっていますが気付くことが多くて面白かったです。

引用元: hkitago software development » 仏教入門.

具体的にこの本は、集中(フォーカス)と散漫(ディストラクション)について書かれているんだけど、その構成は、

「クリエイティブ」って言葉があるけど、スーツもギークも仕事をしている時間は必ず何かを生み出しているという点で誰もが大なり小なり状況は同じで、

じゃあ、生産性の効率を上げないといけないよねー、のような流れで、携帯電話でSNSを通知させるというような、集中する脳の妨げを避けるための、環境の設定だったり具体的な方法が書かれている。(朝の子供が起きる前にやってみよう!、とかね)

実際に脳が集中した状態に戻るには何分かかるかというのはデスクワーク中の電話を処理するという実験が有名で、そういう割り込み処理を避けるためのSNSの考え方の一つにあった「SNSに接している時間は何も生産していない」というのは(余暇の一種としてはいいけど)テレビ垂れ流しのように本当その通りだと思ったな。

更に具体的に言えば、磁気的にであれ何かの記録を生産していくという点でFB社やTw社には貢献しているけど、それが仕事になるかと考えればすぐに分かると思う。逆に言えば、記録は価値を生むものであるというのも当然だと思うな。

それでもSNSは意思疎通の道具として必須になり得るものだから通知機能をうまく使って、オフにすべき状況についての説明とか、心の落ち着け方とかに至るまで、これを無料で配って良いのか?という一冊です。

P.S. 英文のレベルとしてはジョブズの伝記より簡単なので、Mayさんから見ると乳幼児でも読めるレベルなのではないでしょうか。;-)

コメントは受け付けていません。

Next »