"Snippet"の記事

PHP プロセス数を指定して実行するマルチスレッド処理(curl_multi)

curl_multi系を使って、プロセス数を指定して実行するマルチスレッド処理です。

urlは配列で受け取って、もし指定したプロセス数より多い場合は分割して実行するようになってます。

このサンプルコードではこのブログの幾つかのurlに対してtitleを取得しました。

参考:PHPでマルチスレッド(バックグラウンド処理)を実現する方法

2011年08月09日(火) PHP, PHP, Snippet

githubの/usrが削除されたスレットが面白かった、Nokogiriで画像を拾うSinatra appを書いた

スレット経緯

bumblebeeというgithubのプロジェクトにinstall.shというファイルがありますが、
実行するとrm -rf /usrのコマンドで/usrが全部削除されることで大騒ぎになったようです。
githubのスレット

bumblebee rm -rf :usr

一個スペースが多かったですね。。

でコメントに上がっている画像がとても面白かったので、それをNokogiriを使って拾うrubyコードを書きました。プログラマのヒューモア満載の画像ですね。

Sinatra + Nokogiri + Herokuで作りました、キャッシュはdalliというgemを使いました。

成果

下記iframeで表示しています。urlはhttp://kinopyo-omgmyusr.heroku.com

ソースコード

githubに上げています。
https://github.com/kinopyo/Funny-Images-in-bumblebee-rm--rf--usr-thread

参考になったリンク:
http://devcenter.heroku.com/articles/memcache

2011年06月21日(火) Ruby, Github, Snippet, sinatra, heroku, nokogiri

PHPで他のJSON形式APIをコールするサンプルコード

file_get_contentsとjson_decodeの組み合わせでAPIコールするサンプルコードです。

// APIコール
$api_url = 'http://example.com/api/';
$api_ret = file_get_contents($api_url);

// JSONにデコード
$api_result = json_decode($api_ret,true);

// APIエラーチェック: 何かしらの成功フラグでチェック
if(isset($api_result*'success']) && $api_result['success'* == 0)
{
    // 処理
}
else
{
    // handle error
}

2011年03月07日(月) PHP, PHP, Snippet, API

Spring DataSource beanのメモ

DataSource Beanを定義する際applicationContext.xmlの書き方と、Javaで呼び出すコードのメモです。ずいぶん昔のメモです。。

こんなjdbc.propertiesファイルがクラスパスにあるとします。

jdbc.driverClassName=org.h2.Driver
jdbc.url=jdbc:h2:~/test
jdbc.username=sa
jdbc.password=

そしてSpringのapplicationContext.xmlにはこう書きます。

<context:property-placeholder location="jdbc.properties"/>

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClassName}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />
</bean>


<bean id="accountDao" class="test.dao.AccountDao">
    <property name="dataSource" ref="dataSource" />
</bean>

Javaでの呼び出し:

ApplicationContext context = new ClassPathXmlApplicationContext(
        "applicationContext.xml");

AccountDao accountDao = (AccountDao) context.getBean("accountDao");

// other code...
2010年12月06日(月) Java, Snippet, Spring, howto, tutorial

JavaScript: カンマ区切りで数値をフォーマットする

// 数値を日本円表現にフォーマット。
// 例:12345 -> 12,345
num2Currency = function(obj) {
  // 画面項目の値
  var str = obj.value;
  var num = new String(str).replace(/,/g/"");
  while(num != (num =num.replace(/^(-?\d+)(\d{3})/,"$1,$2")));
  obj.value = num;
}

// 日本円表現を数値にフォーマット。
// 例:123,45 -> 12345
currency2Num = function(obj) {
  var str = obj.value;
  var num = str.replace(/,/g,"");
  obj.value = num;
}
2010年11月29日(月) Javascript, Snippet