<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>2Y's BLOG</title>
    <link>http://blog.ekeio.jp/2y/</link>
    <description>めっちゃ不定期更新ブログ！</description>
    <!-- optional tags -->
    <language>ja</language>           <!-- valid langugae goes here -->
    <generator>ekeio BLOG v3.1</generator>
    <copyright>&#169;</copyright>             <!-- Copyright notice -->
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://blog.ekeio.jp/2y/admin/</url>
      <title>2Y's BLOG</title>
      <link>http://blog.ekeio.jp/2y/</link>
    </image>
    <item>
 <title><![CDATA[Google Analytics for Mobileを改造してみた]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=30</link>
<description><![CDATA[Google Analyticsが携帯の解析に対応し始めたのですが、なんやかんやでちゃんと統計が取れないので、Googleに送るデータを生成するga.phpを改造してみました。<br />
<br />
【改良点】<br />
<br />
* DoCoMo以外の機種情報も送ってるってこと（それは↑と同様）<br />
* 透過GIFが一部の携帯だと「白色」になってしまうのを改善<br />
* 機種固有IDが取れなかったらCookieに頼る（大量にSessionをカウントしないように）<br />
　（機種固有IDもCookieも使えない携帯は無理。そんな設定の携帯はカウントしなくてもいいような…）<br />
<br />
【思ったこと】<br />
<br />
* IPの下1バイトを0にしてるけど何で？ユーザを匿名にしてるって書いてあるけど、普通のGoogle Analyticsだと普通にアクセスしてるよね…ってか携帯の場合だと普通キャリアのIPしか渡らない気が、、、そこに匿名性って必要なのかねー。。。<br />
* オリジナルのソースにあった最後のほうの『?><?php』って何か意味あんの？<br />
* SSL通信だと機種固有IDが取れないから、SSLページにGETでgetVisitorIdの返り値を渡せばいいと思います。独自実装になっちゃうけどね・・・<br />
* getVisitorIdで何してるかって言うと、<br />
　o 機種固有IDが取れたら<br />
　　 1. 機種固有IDとAnalyticsのコード「MO-XXXXXX」と文字列をつなげる<br />
　　 2. つなげた値をMD5でハッシュ値化して先頭16文字を取る<br />
　　　⇒ これで機種固有IDの生情報をGoogleに通知することなくユニークなIDをAnalyticsに渡せるってわけです。<br />
　o 機種固有IDが取れないと<br />
　　 1. 固有のIDが無いということなので、変わりにUSER-AGENTとランダム値のハッシュを使う<br />
　　 2. これを毎度毎度やっても固有のIDが取得できないからCookieにセットしてIDを引きずり回してるって感じになってます。<br />
　ってなわけで、へー一応色々考えてあるって感じでした。<br />
<br />
<a href="http://www.b-r-u.net/google_analytics_for_mobile.html" target="_blank">http://www.b-r-u.net/google_analytics_for_mobile.html</a>]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=30</comments>
 <pubDate>Sun, 06 Dec 2009 02:36:36 +0900</pubDate>
</item><item>
 <title><![CDATA[イマジーン / インターネット募金でNPOを応援!!]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=29</link>
<description><![CDATA[新しいサービス始めました。<br />
<a href="http://www.imagene.jp/" target="_blank">イマジーン / インターネット募金でNPOを応援!!</a><br />
よかったら登録してください。<br />
携帯からは<a href="http://m.imagene.jp/" target="_blank" title="イマジーン / インターネット募金でNPOを応援!!">http://m.imagene.jp/</a>でアクセスできます。<br />
<br />
イマジーンはインターネット版の募金箱です<br />
<br />
イマジーンは、<br />
ＮＰＯやＮＧＯなど「社会をより良くするために活動されている方々」を応援するために作られた、インターネット版の募金箱です。<br />
<br />
ご覧いただければ分かるように、環境保護に努められている団体や、災害支援に取り組まれている団体など、世の中には、たいへん多くの方々が、この世界が抱えている種々の問題を解決しようと励まれています。<br />
<br />
そんな彼らのために、活動資金集めのサポートをするのがイマジーンの使命です。<br />
<br />
少額の、手軽にできる募金を通して、彼らと一緒に社会を良くしていきませんか？<br />
<br />
イマジーンでは、１人の志有る方が１００万円を募金することよりも、１万人が１００円ずつ募金することで世の中が良くなると信じています。]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=29</comments>
 <pubDate>Sun, 14 Jun 2009 02:14:36 +0900</pubDate>
</item><item>
 <title><![CDATA[Flash Player 10 で クリップボードにコピーする方法]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=28</link>
<description><![CDATA[Flash Player 10からSystem.setClipboard()の使用が制限されました。<a href="http://www.adobe.com/jp/devnet/flashplayer/articles/fplayer10_security_changes_02.html#head4" target="_blank">Adobeのページを参考</a><br />
どーゆーことかって言うと、クリップボードへの情報の貼り付けはIE以外はFlashで行えるのですが、それが出来なくなるってことです。<br />
<br />
一番手っ取り早い解決策はボタンそのものをFlashにしてしまうことです。<a href="http://blog.flashcast.jp/2008/10/flashjavascript.html" target="_blank">参考サイト</a><br />
今扱ってる案件ではボタンの種類が多く、ボタンの数の分だけFlashを作るわけにもいかないので、透過Flashにして今までどおり使えるようにしました。<br />
<br />
動作にはPrototypeが必要です。<br />
PrototypeとFlashの良い勉強になりました。<br />
<br />
<a href="http://www.b-r-u.net/flashclipboard.html" target="_blank">ソース：http://www.b-r-u.net/flashclipboard.html</a>]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=28</comments>
 <pubDate>Mon, 17 Nov 2008 01:14:01 +0900</pubDate>
</item><item>
 <title><![CDATA[PHP Tips (4) - ハッシュについて]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=27</link>
<description><![CDATA[ハッシュってのは暗号化とは違います。<br />
暗号化は複合すれば元に戻りますがハッシュは元に戻せません。<br />
Aのハッシュ値がA'だとするとA'だけからAを求めることはできません。<br />
WindowsとかでCDからデータを落とすときに<br />
「○○をコピーできません。データエラー(巡回冗長検査(CRC)エラー)です。」<br />
ってのが一番身近なハッシュかな…<br />
<br />
PHPでそれぞれのハッシュ値を100,000回算出するためにかかった時間<br />
md5はよく使われててPHPでもmd5('hoge');ってすればhogeのハッシュがわかるんだけど、（perlでもcryptで可能）<br />
アメリカ政府（NIST (アメリカ国立標準技術研究所)）と<br />
日本のCRYPTREC (暗号技術評価プロジェクト)では、<br />
MD5が推奨から外れているとおりに攻撃される可能性があるんですよ。<br />
<br />
NISTじゃSHA-2(SHA1以外のこと)が使われているらしくて<br />
とりあえずハッシュの実行速度がわかるように算出してみた。<br />
<br />
sha256はmd5の倍ぐらい時間かかるみたいです。<br />
でもアメリカの政府が使ってるぐらいだから安全みたいだし、<br />
sha256を使えばよさそうだね。<br />
<br />
md2 (128): 1.068129<br />
md4 (128): 0.168168<br />
md5 (128): 0.183619<br />
sha1 (160): 0.213175<br />
sha256 (256): 0.338196<br />
sha384 (384): 0.958671<br />
sha512 (512): 0.959832<br />
ripemd128 (128): 0.302765<br />
ripemd160 (160): 0.335816<br />
ripemd256 (256): 0.306326<br />
ripemd320 (320): 0.344032<br />
whirlpool (512): 0.723098<br />
tiger128,3 (128): 0.244434<br />
tiger160,3 (160): 0.244207<br />
tiger192,3 (192): 0.244750<br />
tiger128,4 (128): 0.277339<br />
tiger160,4 (160): 0.275671<br />
tiger192,4 (192): 0.277098<br />
snefru (256): 0.948601<br />
gost (256): 0.990941<br />
adler32 (32): 0.143271<br />
crc32 (32): 0.128725<br />
crc32b (32): 0.128641]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=27</comments>
 <pubDate>Sun, 13 Apr 2008 23:36:21 +0900</pubDate>
</item><item>
 <title><![CDATA[PHP Tips (3) - PHPでのCSVの読み込み]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=26</link>
<description><![CDATA[【難易度：中】<br />
PHPでCSVを操作するにはfgetcsvというすげー便利な関数があるが、<br />
たとえば単純にカンマ区切りのデータの場合はファイルを読み込んで<br />
,でexplodeかけても同様の動きをする。<br />
ってことで今回で3回目になるPHP Tipsですが、<br />
ファイルの中身を読むにもfopen関数やfile関数やfile_get_contents関数やら色々ある、<br />
結局どれを使えばいいんだよって話になるので<br />
とりあえずベンチってみた。<br />
<br />
data1-1,data1-2,data1-3,...<br />
data2-1,data2-2,data3-3,...<br />
...<br />
ってのがCSVデータなんだけど<br />
それを以下の4通りで取得してみる。<br />
<br />
1. fgetcsv<br />
2. file→explode(,)<br />
3. fopen→fread→explode(\n)→explode(,)<br />
4. file_get_contents→explode(\n)→explode(,)<br />
<br />
結論から言うとfgetcsv意外はどれも早い。<br />
今回行ったベンチマークでは3<2<4<<1の順番だった。<br />
fgetcsvは他のに比べて約2倍処理に時間がかかる。<br />
2,3,4は多分誤差の範囲だと思います。<br />
コードの読みやすさから個人的には2.がお勧めです。<br />
Perlな人はfopenのほうが使いやすいのかな？<br />
まー人それぞれだと思います。<br />
<br />
ではなんでfgetcsvが遅いかと言うと、fgetcsvは<br />
フィールド囲いこみ文字もちゃんと認識してくれるからです。<br />
フィールド囲いこみ文字ってのは<br />
data1,data2,"data3,5,6",data7,"data8<br />
改行があってからdata9",data10,...<br />
ってな感じの「"」です。<br />
よーはカンマ区切りのデータだと区切り文字になってるカンマはデータに入れられないし、行も改行でわけられてるから改行でデータに入れることもできないけどよーはCSVだとできます。<br />
まーよく意味がわからない人はExcelで名前をつけて保存でCSVを選択してから保存してテキストエディタを開いてみてください。<br />
<br />
これを2,3,4で読めるようにするには結構苦労が要るからfgetcsvを使うと一発ですって話です。<br />
よーは時と場合によって使う関数を変えましょうって話です。<br />
<br />
いや、CSVなんて使わずにDB使えば、、、って話はとりあえずなしです。<br />
<br />
※ PHPやPerlなどで膨大なテキストを操作する場合は、気をつけましょう。<br />
　 サーバによってはCGIの実行速度が制限されていて保存が完了する前に実行が止められるとデータが飛びます！]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=26</comments>
 <pubDate>Sun, 13 Apr 2008 23:36:02 +0900</pubDate>
</item><item>
 <title><![CDATA[【ML】 Keio.to]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=24</link>
<description><![CDATA[<a href="http://www.keio.to/">Keio.to</a>に新機能を追加しました。<br />
・QRコード表示機能<br />
・エラー表示機能<br />
<br />
PHPとMySQLを最新に変えて<br />
DBをがしがしいじりました。<br />
<br />
今後の改良予定としては<br />
・subscribe unsubscribe機能<br />
・MLでのイベント参加受付<br />
・軽い名簿集計機能<br />
・MLのSequencer機能<br />
・他ドメインとのML接続<br />
・副管理人機能<br />
<br />
あともう少しでユニークなメールアドレス登録数が<br />
4万4千…<br />
<br />
MLの便利機能・アイディア募集…]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=24</comments>
 <pubDate>Sun, 16 Mar 2008 04:14:24 +0900</pubDate>
</item><item>
 <title><![CDATA[PHP Tips (2) - strpos strstr preg_match結局どれが早いの？]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=23</link>
<description><![CDATA[文字検索の方法はstrposやstrstrやpreg_matchなどいろいろありますが、 <br />
結論から言うとstrposが一番早いです。 <br />
本来preg_matchはPerlの正規表現が使えるということで便利なのですが、 <br />
単純に文字が含まれているかどうかのチェックをする場合（正規表現を使う必要がない場合）は必要ありません。 <br />
<br />
また、preg_matchで'/a|b|c/'などor検索する場合も <br />
strposをorでひっかけたほうが早いです。 <br />
<br />
$strに文字($findme)が含まれているかどうかをチェックする場合 <br />
strpos($str,$findme)!=falseとするのは間違えです <br />
これはstrposが検索文字を文字列の何番目にあるかどうかをチェックするからです。 <br />
もしこれが一番最初に来た場合、人間のお約束の1では無く0が帰ってきますので <br />
strpos($str,$findme)!==falseとするのが正しいです。 <br />
<br />
ただ、検索している文字列が0番目にくることがまず絶対ありえないのだったら <br />
if(strpos($str,$findme)){...} <br />
とするのが一番早いようです。 <br />
<br />
手元で軽くベンチマークを取ったことろ <br />
preg_matchはstrposより3〜4倍程度処理に時間がかかります。 <br />
<br />
■結果 <br />
文字検索の際、正規表現を使わないときはpreg_matchではなく、strposを使おう！]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=23</comments>
 <pubDate>Sat, 15 Mar 2008 02:57:56 +0900</pubDate>
</item><item>
 <title><![CDATA[wrong mysql library version or lib not found]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=22</link>
<description><![CDATA[毎度のことながらmysqlとphpのインストールは面倒だ。<br />
phpはバージョン違いでコンパイルできませんといわれるし<br />
mysqlはじゃんじゃん文字化けしてくれる。<br />
ここ何年かいじっててやっと最近慣れてきた。<br />
<br />
古いmysqlや古いphpから最新のものにしようとすると<br />
phpのコンパイルの際に<br />
「wrong mysql library version or lib not found」<br />
と出る。<br />
あ、いや、新しいの入れたんですが…<br />
といいたくなるがconfigureは勝手に中断してしまう。<br />
しかもエラーの不親切なことｗ<br />
<br />
mysqlを入れなおしても改善されなかったので<br />
サポート掲示板を見てみるんだけどなかなか解決方法が見当たらない…<br />
<br />
解決方法は<br />
/usr/lib/mysql/内の<br />
libmysqlclient.soのバージョンが古いからでした。<br />
最新のmysqlは<br />
/usr/lib/libmysqlclient.so.15.0.0<br />
に最新のmysqlclientを入れてくれるらしいんだけど<br />
そんなんわからないって・・・ｗ]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=22</comments>
 <pubDate>Sun, 09 Mar 2008 20:32:17 +0900</pubDate>
</item><item>
 <title><![CDATA[PHP Tips (1) - PHPでJPGやGIFにコメントを追加する]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=21</link>
<description><![CDATA[<a href="http://www.ozhiker.com/electronics/pjmt/" target="_blank">The PHP JPEG Metadata Toolkit</a>にならってJPGだけでなくGIFにもコメントを挿入できるPHPを作ってみた。<br />
全部のソースはないので多少自力でやる必要あります。<br />
これで携帯電話で画像を転送させなくできます。<br />
ImagickとかMagickWandとかあるけど、処理速度が気になるので自分で作りました。<br />
何のサイトで使おうとしてるのかも今は秘密で…<br />
PNGもやろうとしたけど資料がすぐに見つからなかったので断念…<br />
<br />
//The PHP JPEG & GIF Comment Tool<br />
@header('Content-Type:'. $ctype);<br />
@header('Content-Transfer-Encoding: binary');<br />
$read = file_get_contents($file);<br />
$str = 'copy="NO",kddi_copyright=on';<br />
if($ctype=='image/jpg'){<br />
　　　　echo substr($read,0,strpos($read,0xFF,3));<br />
　　　　// Write segment marker<br />
　　　　echo "\xFF\xFE";<br />
　　　　// Write segment size<br />
　　　　echo pack('n',strlen($str)+2);<br />
　　　　// Write segment data<br />
　　　　echo $str;<br />
　　　　echo substr($read,strpos($read,0xFF,3));<br />
}elseif($ctype=='image/gif'){<br />
　　　　echo substr($read,0,strlen($read)-2);<br />
　　　　// Write segment marker<br />
　　　　echo "\x00\x21";<br />
　　　　// Write segment size<br />
　　　　echo pack('n',strlen($str));<br />
　　　　// Write segment data<br />
　　　　echo $str;<br />
　　　　echo "\x00\x3b";<br />
}]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=21</comments>
 <pubDate>Tue, 19 Feb 2008 02:29:19 +0900</pubDate>
</item><item>
 <title><![CDATA[CPUとDRAMな話]]></title>
 <link>http://blog.ekeio.jp/2y/?itemid=20</link>
<description><![CDATA[慶早戦のときに久しぶり(実はそうでもない!?)に会った先輩に <br />
ガチでマニアックな日記を書いてくれといわれたので、 <br />
<br />
CPUの値段の下落情報でも載せてみる。 <br />
<br />
情報によるとIntelが7月22日に価格改定を行うらしい、何でもAMDの対抗らしい。 <br />
販売ではIntelが圧勝ですからねぇAMDも必死なんでしょう… <br />
<br />
4月の価格改定で <br />
10万だったQ6600(2.4GHz Quad Core)が7万になり、 <br />
7月の改定で3万5千円ぐらいになるらしい。 <br />
<br />
また、同様の値段で <br />
E6850(3GHz Dual Core)が出るらしい、 <br />
そこでスピードを取るか、4CPUを取るか、、、 <br />
う〜んどっちかなぁ〜… <br />
<br />
また、6月中にDRAMの値段が急上昇するという噂もある、 <br />
何でも、現時点で生産コストよりも安い値段で販売しているとかなんとか… <br />
まぁなんせ去年10月の1/4の値段で売ってるからねぇ〜 <br />
<br />
7月って事はテスト後ですね、、、 <br />
いや、まだ考えたくありません。]]></description>
 <category></category>
<comments>http://blog.ekeio.jp/2y/?itemid=20</comments>
 <pubDate>Tue, 12 Jun 2007 04:53:50 +0900</pubDate>
</item>
  </channel>
</rss>
