2009-01-01から1年間の記事一覧
jQueryのプラグインを作っていると、 好きなサイトにプラグインの機能を適応させて動作の確認をしたい場合があるんですが、 それを簡易的に行うちょっとしたブックマークレット。 javascript: (function() { var $, s = document.createElement('script'); s…
通常、fileタイプのinput要素をクリックしたときのみファイルを選択することができますが、 画像や文字をクリックしたときにもファイル選択ダイアログを表示し、ファイルをアップロードできるようにします。 簡単にいうと、AjaxUploadのファイル選択部分と同…
Ajaxライクに非同期でファイルをアップロードできるjQueryプラグインつくりました。 同様のプラグインやライブラリはいくつかありますが、Flashを使用しないシンプルな実装で jQueryのスタイルを踏襲しているものがなかった(要は好みじゃなかった)ので再実…
スクロールで次ページを自動読み込みするjQueryプラグイン v1.0.0をリリースしました。 全バージョンから全面的に書き直し、クリック等をトリガーにした読込みにも対応させました。 デモ サンプル 自動ページング機能を有効にするには、次ページへのリンクが…
app/webroot/.htaccess リクエストされたURLをクエリに付与してindex.phpを呼び出す形式に書き換え RewriteCond %{REQUEST_FILENAME} !-d # ディレクトリが存在しない場合 RewriteCond %{REQUEST_FILENAME} !-f # ファイルが存在しない場合 RewriteRule ^(.*…
メソッドに表示したくない戻り値がある場合、それを出力しないようにするバッドノウハウ。 {$session->flash()} 上記はメソッドがtrueを返すため"1"と表示されてしまう 対処方法 helperに何もしないメソッドを作って戻り値を捨てる void($session->flash())}
認証時に、ユーザIDとパスワードなどの組み合わせだけではなく、 メールアドレスとパスワード等、複数のカラムどれでもログインできるようにする方法。 サンプル Authコンポーネントをそのまま使用。 一方の組み合わせで認証に失敗したら、もう一度、別カラ…
ruby $ sudo apt-get install ruby ruby-dev irb libopenssl-ruby gem $ sudo apt-get install rubygems $ vi ~/.bashrc # gemにパスを通す export PATH="$PATH":/var/lib/gems/1.8/bin $ source ~/.bashrc rails $ sudo gem install rails passenger $ sudo…
GreasemonkeyスクリプトのAutoPagerizeやFirefox add-onのAutoPagerのように、スクロールするだけで自動ページングできるjQueryプラグインを作ってみました。※10/22 全面的に書き直したv1.0.0をリリースしました。 詳しくはhttp://lagoscript.org/jquery/aut…
コマンドライン引数で受け取った文字列をstrcmpで比較してソートする。 #include <stdio.h> #include <string.h> void quicksort(char *array[], int left, int right) { if (left >= right) return; int l = left; int r = right; char *pivot = array[(left + right) / 2]; //</string.h></stdio.h>…
Cだといちいちめんどくさい。 #include <stdio.h> void quicksort(int array[], int left, int right) { int l = left; int r = right; int pivot = array[(left + right) / 2]; // 中央からピボットを選択 int buf; while (1) { while (array[l] < pivot) l++; while</stdio.h>…
一般的に最も高速なソートのアルゴリズムらしい。 アルゴリズム 1. 適当な数(ピボットという)を選択する (この場合はデータの総数の中央値が望ましい) 2. ピボットより小さい数を前方、大きい数を後方に移動させる (分割) 3. 二分割された各々のデータ…
バージョン1.6.0.3。 Function.prototype.bind() thisと引数の値を固定化した関数を返すメソッド。 第一引数にthisとなる値、第二引数以降に固定化する引数の値を指定する。 Function.prototypeを直接拡張している。 Object.extend(Function.prototype, { //…
確認したバージョンは1.6.0.3。 $() Prototype.jsで拡張したelementオブジェクト(の配列)を返す関数。 引数が複数の場合は、再帰的に自身を呼び出し配列にセット。その配列をreturn。 引数が一つで文字列であればidとみなしてelementオブジェクトを取得す…
Ubuntuのデフォルトでは日本語マニュアルがインストールされていないらしい $ man man No manual entry for man マニュアルのインストール $ sudo apt-get install manpages-ja manpages-ja-dev manpages-ja-devは、システムコールとLibcのマニュアル 参考 m…
繰り返しいろいろ。ループ回数も取得する場合。 foreach $value) { // なんらかの処理 echo $i++; } while foreachのように配列のコピーを作成しないのでメモリを節約できる
PHP5.3のラムダが普及すればわりと使えるかも。 クラス定義 $name; array_unshift($args, $this); // 自分自身を第一引数とする return call_user_func_array($method, $args); } } 実行 hello = create_function('$self', ' echo "Hello,…
シェルコマンド。すぐ忘れるので。 WEB+DB PRESS Vol.50の記事のメモ。 grep 正規表現にマッチした行を出力する例: エラーログのうち、タイムアウトは無視する $ grep -i error | grep -iv 'time error' -i : 大文字小文字を無視する -v : マッチしなかった…
Head First デザインパターンのメモ。 Template Methodパターン メソッドにおけるアルゴリズムの骨組みを定義し、いくつかの手順をサブクラスに先送りします。 Template Methodは、アルゴリズムの構造を変えることなく、 アルゴリズムのある手順をサブクラス…
Head First デザインパターンのメモ。 Facadeパターン サブシステムの一連のインターフェースに対する、統合されたインターフェースを提供します。 ファサードは、サブシステムをより使いやすくする高水準インターフェースを定義します。 Facedeパターン実装…
Head First デザインパターンのメモ。 Adapterパターン クラスのインターフェースをクライアントが期待する別のインターフェースに変換します。 アダプタは互換性のないインターフェースのためにそのままでは連携できないクラスを連携させます。 2つの形式 …
mod_rewriteが使えない環境で、$_SERVERのREQUEST_URI値が取得できずエラーが出るときの対処法。 通常 http://example.com/controller/action/ mod_writeが使えない場合 http://example.com/index.php/controller/action/app/config/core.php
cakeはUTF-8のままにしときたいけど、DBはSJISじゃないとダメな場合があったので。 単純に、モデルのbeforeFind、AfterFindなどを使ってエンコードを変換する。 うまくいったように見えるけど、ホントにこれでいいかはわかりません。 MySQLとかなら、DATABAS…