月刊「Twitter で使用されているオープンソースまとめ」

Twitter で使用されているオープンソースがまとめられています。

bootstrap

http://twitter.github.com/bootstrap/

Webアプリケーション(サイト)の開発をより簡単にスタートするために設計されたHTML、CSS、およびJSツールキットです

その他、Twitter で使用されているオープンソースまとめはこちら↓
http://twitter.github.com/

jQueryのパフォーマンス高速化Tipsまとめ

jquery-logo

jQueryのパフォーマンス高速化Tipsのヒントリストです。

セレクタのパフォーマンスのヒント

1. 常に#ID から辿る

jQueryで要素を選択する最速の方法は、IDによるものです。

$('#content').hide();
$('#content p').hide();

2. クラスの前にタグを使用

jQueryで2番目に早いセレクタは、タグセレクタ($(’head’))です。
なぜならそれはネイティブJavaScriptメソッド、getElementsByTagName()だからです。
最良の方法は、接頭辞にタグ名(およびIDから派生)を持つクラスです。

var receiveNewsletter = $('#nslForm input.on');

クラスセレクタは、jQueryの最も遅いセレクタのひとつです
可能な限りそれ(タグ名とIDの接頭辞無し)を使用することは避けてください。

例えば、これは遅いです。”content”のIDを探す為に、div要素を全てループするからです。

var content = $('div#content'); // VERY SLOW, AVOID THIS

また、複数のID指定も遅いです。

var traffic_light = $('#content #traffic_light'); // VERY SLOW, AVOID THIS

3. サブクエリを使用

var header = $('#header');

var menu = header.find('.menu');
// or
var menu = $('.menu', header);

4. find()を使用

var divs = $('.testdiv', '#pageBody'); // 2353 on Firebug 3.6
var divs = $('#pageBody').find('.testdiv'); // 2324 on Firebug 3.6 - The best time
var divs = $('#pageBody .testdiv'); // 2469 on Firebug 3.6

5. チェーンメソッドを活用

セレクタをキャッシュするよりも、チェーンのjQueryメソッドをすると良いでしょう

$('#menu-item').click(function () {alert('test click');})
                     .css('display', 'block')
                     .css('color', 'red')
                     fadeTo(2, 0.7);

DOM操作のパフォーマンスのヒント

6. jQueryオブジェクトをキャッシュ

var header = $('#header');
var divs = header.find('div');
var forms = header.find('form');

7. DOM挿入のいずれかの種類を実行するときに単一の要素のすべてをラップする

DOM操作は非常に遅いです。できるだけ少なくしてHTML構造を変更してみてください。

var menu = '<ul id="menu">';
for (var i = 1; i < 100; i++) {
    menu += '<li>' + i + '</li>';
}
menu += '</ul>';
$('#header').prepend(menu);

// 代わりにこちら:

$('#header').prepend('<ul id="menu"></ul>');
for (var i = 1; i < 100; i++) {
    $('#menu').append('<li>' + i + '</li>');
}

イベントのパフォーマンスのヒント

8. readyイベント

// Instead of:
$(document).ready(function (){
    // your code
});

// you can do:

$(function (){
    // your code
});

一般的なjQueryのパフォーマンスのヒント

9. jQueryの最新バージョンを使用

最新バージョンは、通常、最良のものです。ただし、jQueryのコアバージョンを変更した後、コードをテストすることを忘れないでください。時にはそれは完全な下位互換性はありません。

10. HTML 5を使用

HTML5は軽量なDOM構造の標準を念頭にしています。軽量なDOM構造は、jQueryとロードのパフォーマンスに良い結果をもたらします。
だから、可能な場合はHTML5 を使用。

11. 必要とされていないコードをロードしない

不要なJSコードとセレクタをロードしないでください。

12. Googleソースコードからフレームワークをロードする

Google CDNからjQueryをロードする – ユーザーの最寄りのキャッシュの場所からスクリプトを高速に実現します。

// Link the minified version by specific version
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

PHP, Perl, Python, Ruby 文法などの比較まとめチートシート

プログラミング言語の比較対応で文法覚えられそうなんで便利!

* Big Script: PHP, Perl, Python, Ruby, Smalltalk
http://hyperpolyglot.wikidot.com/scripting

* Small Script: Bash, Tcl, Lua, Javascript, IO
http://hyperpolyglot.wikidot.com/small

* Platform: C, C++, Objective C, Java, C#
http://hyperpolyglot.wikidot.com/platform

[PHP]オープンソースのウェブメールまとめ

PHP言語で書かれたオープンソースのwebmailの紹介です。

1.squirrelmail

公式サイト:
http://www.squirrelmail.jp/

SquirrelMailはPHPベースのWEBメールシステムです。40以上の多くの言語に対応、外部サーバーのサポート、プラグインによる機能拡張など多くの機能を備えています。

特徴

  • 日本語(多言語:40以上の多くの言語)対応
  • データベース不要(しかし、MySQLなどにも対応)
  • プラグインによる機能拡張
  • IMAP4、SMTPサーバー

2.AtMail

公式サイト:
http://atmail.org/

AtMailはPHP言語によって開発されたWEBメーラーで、IMAPに対応しています。また、Ajax技術を使用しているため、デスクトップアプリケーションに匹敵するぐらいの快適な操作性を実現しています。

特徴

  • Ajax技術を使用した快適な操作性
  • ビデオメール
  • 見栄えの良いデザイン
  • IMAPサポート
  • スペルチェック

3.RoundCube

公式サイト:
http://roundcube.net/

RoundCube Webmailはデスクトップアプリケーションのようなユーザーインタフェースを持っているブラウザベースの多言語IMAPクライアントです。データベースはMySQLかPostgreSQLを必要とします。

特徴

  • 多言語対応
  • MIMEとHTMLメッセージに対するフルサポート
  • アドレス帳
  • 外部SMTPサーバのサポート
  • スペルチェック

XHTML(Valid)規格に準じたFlashソースの書き方

FlashコンテンツをWEBサイトに埋め込むに当たって、
XHTML Validエラーの壁にぶち当たったのでメモとしてエントリー。

参考url:
http://kyosuke.jp/portfolio/seminar/2006-04csslite/flash.html

自分はHTML編集ソフトとして「Dreamweaver8」を使ってるのですがそれでFlashオブジェクトを挿入すると、こんな感じのソースが挿入されます。

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="500" height="200" title="SlideShow">
  <param name="movie" value="SlideShow.swf" />
  <param name="quality" value="high" />
  <embed src="SlideShow.swf" width="500" height="200" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>
</object>

上記のソースを【The W3C Markup Validation Service】でチェックすると「there is no attribute “src”」とか、「there is no attribute “width”」でエラーが出ます。

最新の「Dreamweaver CS3」では対応されてるかもしれないが、未だ旧バージョンを使用してる場合に、Flashを挿入したときバリデータでエラーを出さないようにするためには次のように修正する。

1.まずは、「embed」タグを消去する。

「embed」タグはXHTMLでは使えないタグなので削除

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="500" height="200" title="SlideShow">
  <param name="movie" value="SlideShow.swf" />
  <param name="quality" value="high" />
</object>

2.「classid」要素を削除し「type」要素に変更

「classid」要素の代わりに、MIME typeを指定する「type=”application/x-shockwave-flash”」に変更する

<object type="application/x-shockwave-flash" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="500" height="200" title="SlideShow">
  <param name="movie" value="SlideShow.swf" />
  <param name="quality" value="high" />
</object>

3.「codebase」要素を削除し「data」属性に変更

「data」属性にmovieのvalueと同じFlashへのパスを追加しないと表示されないので追加。

<object type="application/x-shockwave-flash" data="SlideShow.swf" width="500" height="200" title="SlideShow">
  <param name="movie" value="SlideShow.swf" />
  <param name="quality" value="high" />
</object>

以上で、W3CのXHTML(Valid)規格に準じたFlashソースの書き方でした。