<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10japanesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">
    <title>u39 technik</title>
    <link rel="alternate" type="text/html" href="http://tech.u39.info/" />
    
   <id>tag:,2011:/5</id>
    <link rel="service.post" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5" title="u39 technik" />
    <updated>2011-08-29T12:49:34Z</updated>
    <subtitle>Ein Thema des technischen Systemes.</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type  4.23-ja</generator>
 

<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/u39technik" /><feedburner:info uri="u39technik" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry>
    <title>今話題のAirbnbを使ってみた</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/1_ZJ9_BWx4M/1146" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1146" title="今話題のAirbnbを使ってみた" />
    <id>tag:tech.u39.info,2011://5.1146</id>
    
    <published>2011-07-28T14:27:13Z</published>
    <updated>2011-08-29T12:49:34Z</updated>
    
    <summary>先日休暇でマレーシアのクアラルンプール(以下、KL)に行ってきた時に、今話題のA...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="サービスレビュー" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;先日休暇でマレーシアのクアラルンプール(以下、KL)に行ってきた時に、今話題のAirbnbを使って「人の家に泊まる」という経験をしてきました。サイトの存在自体は以前から知っていて、仕組みも大体分かってはいたつもりだったのですが、やはり想像と実際とは違うものです。今回は、サービスを通して使っての感想を、「特にネガティブなことを中心に」書こうと思います。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.airbnb.com/?af=741061&amp;c=direct_link"&gt;&lt;img src="http://tech.u39.info/img/110727-1.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe src="http://www.airbnb.com/widgets/slideshow?af=741061&amp;c=slideshow_widget" width="336" height="280" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;■その家、どこにあるの？&lt;/p&gt;

&lt;p&gt;普段宿を探す時に考慮するのが「出かけやすい(観光しやすい)場所にあるか」という点です。駅までの距離や、中心地・見所からどのくらい離れているのか、というのを予算とのバランスを考えながら探すものです。&lt;/p&gt;

&lt;p&gt;しかしAirbnbのgoogle mapsの地図を見ても、土地勘がないので正直それが「よく分からない」感じでした。駅から近い順にソートすることもできないので、非常に探しづらかったです。予約した部屋も駅から近いと思っていたのですが、実際は駅まで少し距離があり、道路には歩道が全くない(これはマレーシア全体の多くの道でそうなってる...)のでタクシーを使わざるを得ませんでした。タクシー代が安かったからよかったのですが。&lt;/p&gt;

&lt;p&gt;あとはガイドブックには載っていない場所なので、タクシーに場所を説明する時に少し困りました(有名な団地群だったのでなんとかなりましたが)。&lt;/p&gt;

&lt;p&gt;■予約の流れはスムーズ&lt;/p&gt;

&lt;p&gt;予約完了までは、ホテル予約と同じような流れで特に迷うことなく完了しました。ただ一点ホテルと違うのが、相手の日程が合うかどうか。ページには「空き日程」のカレンダーがあったものの、不安だったので念のため本当に空いているかメッセージを送って確認しました。返答があってからサイトから予約(ここで決済)し、相手の承認を経て予約が確定となりました。&lt;/p&gt;

&lt;p&gt;いきなりサイトから予約することもできるのですが、予約を断られることもあります。そりゃ、どこの誰かも分からない人がいきなり泊めてくれ、と言われても躊躇しますからね...。ここで重要なのはAirbnbに登録する「自分の」プロフィールだと言われています。僕の場合は、プロフィール写真と学歴・会社名などをfacebookから引っぱっておきました。&lt;/p&gt;

&lt;p&gt;価格に関しては、超安いなー、という感じはしませんでした(そもそもKLですし)。NYとか、ホテル代が高い場所だと利用価値が上がるのかもしれません。&lt;/p&gt;

&lt;p&gt;■「部屋貸し」だと思ったら「家貸し」だった&lt;/p&gt;

&lt;p&gt;サービスを利用していて一番想像と違っていたのが、利用側の自由度でした。てっきり、「毎日ホストがいる時間に家を出て、ホストがいる時間に帰ってくる」ものだと思っていましたが、今回は最初に家の鍵を渡してくれて、「俺ら家族は実家に帰るから、この家自由に使って良いよ」という、ちょっと驚きの経験でした。他のホストがどうしているかは分からないので、事前にコンタクトを取って聞いてみるといいと思います。&lt;/p&gt;

&lt;p&gt;ただちょっと残念だったのが、ホストとコミュニケーションが取れる時間が限られていたこと。もっといろいろ会話したかったのですが...。&lt;/p&gt;

&lt;p&gt;■わかってはいるものの「ホテル」ではない&lt;/p&gt;

&lt;p&gt;インターフェイスや、サイト見た目は「ホテル予約サイト」のメタファーを利用していますが、実際泊まるのはホテルではありません。&lt;/p&gt;

&lt;p&gt;例えば、チェックイン時間は相手都合です。今回は会う時間が合わず、2時間も空港で待ちぼうけを食らいました。忙しい短期の滞在には、Airbnbは向いてなさそうな印象を受けました(しかも実際にサービスを受けてから)。&lt;/p&gt;

&lt;p&gt;お部屋はというと、写真では綺麗だったものの、床をよく見ればチリや髪の毛が落ちていたり、トイレが少し汚かったりしました。もちろんそこらへんはホストに寄るかと思いますが...。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://tech.u39.info/img/110727-2.jpg" /&gt;&lt;/p&gt;

&lt;p&gt;アメニティ(今回はバスタオルは用意してもらえてました)は自宅から持って行けば良いのですが、セーフティーボックスがないのには困りました。貴重品は、自己責任での管理となります。&lt;/p&gt;

&lt;p&gt;■レビューは万能ではない&lt;/p&gt;

&lt;p&gt;「良い点」「悪い点」を客観的に見られるのが既に宿泊した人のレビューのはずですが、細かい「ちょっとこれはなー」がレビューに載らないのも理由がありそうです。それはレビューが実名顔写真付きで掲載されることと、「お世話になった人に文句は言いづらい」ことだと思います。&lt;/p&gt;

&lt;p&gt;そういう意味で、Airbnbのレビューは「サービスに対する評価というよりも、人に対する評価」と考えた方が良さそうです。要は、最悪な経験でなければ、みんな細かいところには目をつむっているのかな、と...。&lt;/p&gt;

&lt;p&gt;あと、レビューの「数」はあまりアテにならないな、と思いました。今回はレビューの数が2つのところに宿泊しましたが、ホストに聞くと「今まで宿泊した人は既に30組は越えている」とのことでした。積極的に「レビューを書いてくれ」と言ったもの勝ちという感じがしました。&lt;/p&gt;

&lt;p&gt;Airbnbを使ってみたい、という友人からは、「本当に掲載している写真みたいに、オシャレな部屋だった？」との声がありました。今回は「YES」でした。&lt;/p&gt;

&lt;p&gt;レビュー項目の一つに、「写真と実際が乖離していなかったか？」とAirbnbに対してレポートする項目があります。恐らく、このポイントが貯まれば、写真の右上に「Airbnb.com Verified photo」とお墨付きが貰えるのだと思います(そりゃ、一々Airbnbの調査員が行って調べてたら、スケールしませんからね...)。本当に不安な人は、そのお墨付きがついているかどうかも、チェックすると良いかと思います。&lt;/p&gt;

&lt;p&gt;---&lt;/p&gt;

&lt;p&gt;という感じでしょうか。&lt;/p&gt;

&lt;p&gt;「外国の人とコミュニケーションが出来る、友達ができる」という醍醐味を味わえなかったというのもあり、個人的には、「また時間に余裕があるときに使っても良いかなー」という感想です。&lt;/p&gt;

&lt;p&gt;---&lt;br /&gt;
&lt;a href="http://www.airbnb.com/?af=741061&amp;c=mrect_01"&gt;&lt;img src="http://assets.airbnb.com/affiliates/buttons/300x250_01.jpg" alt="Airbnb" width="300" height="250" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://tech.u39.info/ab/index.html"&gt;Airbnbの使い方まとめサイト&lt;/a&gt;を現在作成中です。&lt;br /&gt;
&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/1_ZJ9_BWx4M" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1146</feedburner:origLink></entry>

<entry>
    <title>トゥルースリーパー、いいですよ</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/e5yNN8fHl8Q/1145" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1145" title="トゥルースリーパー、いいですよ" />
    <id>tag:tech.u39.info,2011://5.1145</id>
    
    <published>2011-03-23T15:07:00Z</published>
    <updated>2011-07-28T14:29:26Z</updated>
    
    <summary>「トゥルースリーパー・プレミアム」を購入しました。 結論：これは買ってよかった....</summary>
    <author>
        <name />
        
    </author>
    
        <category term="生活・ワークスタイル" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;「トゥルースリーパー・プレミアム」を購入しました。&lt;/p&gt;

&lt;p&gt;結論：これは買ってよかった...。&lt;/p&gt;

&lt;p&gt;■背景&lt;/p&gt;

&lt;p&gt;自分の睡眠について、&lt;br /&gt;
・いくら寝ても疲れが取れない&lt;br /&gt;
・そもそも寝ている状態が「疲れる」&lt;br /&gt;
・起きると肩と腰が痛い&lt;br /&gt;
という悩みを以前から抱えていました。&lt;/p&gt;

&lt;p&gt;トゥルースリーパーは、以前からTVショッピングで「これいいかも」と気になっていて、ちょうど良い機会にキャンペーンをやっていたので、買ってみました。&lt;/p&gt;

&lt;p&gt;■到着・開封&lt;/p&gt;

&lt;p&gt;箱を空けると、商品はロール状になって収まっていました。床に拡げて、自然に元の形状になるのを待ちます(半日くらいかかります)。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://tech.u39.info/img/110324-1.jpg" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://tech.u39.info/img/110324-2.jpg" alt="" /&gt;&lt;/p&gt;

&lt;p&gt;他の人のブログなどを見て知ってはいたものの、商品のシンナー臭は想像以上に酷いものでした。鼻と喉をつんざくような臭いで、相当相性が悪いのか、換気をしても喉を痛めて、鼻水がずるずると出てくる状ような状態でした。&lt;/p&gt;

&lt;p&gt;■使用方法&lt;/p&gt;

&lt;p&gt;通常のベッドマットの上に、専用のカバーをしたトゥルースリーパーを載せるだけです。&lt;/p&gt;

&lt;p&gt;■使用感&lt;/p&gt;

&lt;p&gt;仰向けで寝てみると、謳い文句通り、体全体を包み込んでくれるため、腰回りがかなり楽です。横向きでも、腕や体に負担を感じなくなくなります。&lt;/p&gt;

&lt;p&gt;「違い」は一晩で気づきました。朝の寝起きが格段に違います。以前に比べてスッと起きられるようになりました。また、昼間に眠くなりにくいのです。睡眠の質が違うのでしょう。&lt;/p&gt;

&lt;p&gt;既に一ヶ月ほど使用しましたが、おかげで心地よく眠ることができていて、もはや一生(?)手放せないモノとなりました。&lt;/p&gt;

&lt;p&gt;■分からない点&lt;/p&gt;

&lt;p&gt;しばらく使用しても、まだよく分からないことはあります。&lt;/p&gt;

&lt;p&gt;・夏はどうなのか？&lt;/p&gt;

&lt;p&gt;→体を包み込むような形状のため、寝ている時に蒸し暑くならないかというのは気になります。「プレミアム」では改善されたらしいですが、どの程度のものか気になります。&lt;br /&gt;
・マットの耐久性はどうなのか？&lt;/p&gt;

&lt;p&gt;→果たして何年使える商品かはイマイチよく分かっていません...。&lt;/p&gt;

&lt;p&gt;■マイナスな点&lt;/p&gt;

&lt;p&gt;使用して一ヶ月が経ちますが、まだシンナー臭が完全に取れていません。&lt;br /&gt;
ここはちょっとマイナスですね。&lt;/p&gt;

&lt;p&gt;---&lt;/p&gt;

&lt;p&gt;という感じでトゥルースリーパーを紹介してみました。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/e5yNN8fHl8Q" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1145</feedburner:origLink></entry>

<entry>
    <title>Facebook「シェアする」のサムネイル画像のキャッシュをクリアする方法</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/DULcgOtJ6IU/1144" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1144" title="Facebook「シェアする」のサムネイル画像のキャッシュをクリアする方法" />
    <id>tag:tech.u39.info,2011://5.1144</id>
    
    <published>2011-01-12T07:12:08Z</published>
    <updated>2011-01-12T07:13:58Z</updated>
    
    <summary>「」に、Facebookの「シェアする」ボタンを設置してみた時、困ったことがあり...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="未分類" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;「&lt;a href="http://konoeki.jp/coupon/"この駅クーポン&lt;/a&gt;」に、Facebookの「シェアする」ボタンを設置してみた時、困ったことがありました。どうも「シェアする」ボタンが一度押されると、対象URLのサムネイル画像がずっとキャッシュされてしまう、という問題があるようです。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://tech.u39.info/img/110110-2.jpg" alt="facebook シェアする"/&gt;&lt;/p&gt;

&lt;p&gt;解決策を調べてみると、以下の方法があることがわかりました。&lt;/p&gt;

&lt;p&gt;(1)シェアされるURLを変更する&lt;br /&gt;
(2)Facebook公式の&lt;a href="http://developers.facebook.com/tools/lint/"&gt;URLリンター&lt;/a&gt;を使う&lt;/p&gt;

&lt;p&gt;(1) たとえば、URLの後ろに、「?v=1」「?v=2」など、URLルーティングに影響のない範囲で任意のパラメータを付与して、都度違うURLを登録させる方法です。クーポン共同購入サイトなど、ずっと同じURLだけどコンテンツが頻繁に変わる、という場合に有効かと思います。&lt;/p&gt;

&lt;p&gt;(2) については、以下ページを参考にしました。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://fbmhell.com/2010/10/breaking-facebook-share-cache/"&gt;FBMHell.com : Breaking Facebook's Cache&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;どうやらこのツールでキャッシュがクリアされるのは、副次的なものらしいですね。&lt;/p&gt;

&lt;p&gt;ところでこのツール、知らなかったのですが、どのようにFacebookにシェアされるかがデバッグできるので、とても便利です。&lt;/p&gt;

&lt;p&gt;ちなみに最近では、Facebookに掲載される「フィード」をいかに最適化するか考えることは当たり前のようです。確かに、どうでもいいサムネイル画像よりは、よりキャッチーな画像を指定すると、より多くのユーザの目に止まりやすくなります。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://tech.u39.info/img/110110-3.jpg" alt="facebook シェアする"/&gt;&lt;br /&gt;
&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/DULcgOtJ6IU" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1144</feedburner:origLink></entry>

<entry>
    <title>「この駅クーポン」をリリース</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/MrukvmXF-y0/1143" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1143" title="「この駅クーポン」をリリース" />
    <id>tag:tech.u39.info,2011://5.1143</id>
    
    <published>2011-01-12T06:44:24Z</published>
    <updated>2011-01-13T14:30:29Z</updated>
    
    <summary>「この駅クーポン」というサービスをリリースしました。クーポン共同購入サイトから、...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="この駅.jp" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;「この駅クーポン」というサービスをリリースしました。クーポン共同購入サイトから、自分が登録した駅近くのクーポン情報をメールで届けてくれるサービスです。&lt;/p&gt;

&lt;p&gt;■この駅クーポン&lt;br /&gt;
&lt;a href="http://konoeki.jp/coupon/"&gt;http://konoeki.jp/coupon/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="http://tech.u39.info/img/110110-1.jpg" src="この駅クーポン"&gt;&lt;/p&gt;

&lt;p&gt;昨年から、「クーポン共同購入サイト(いわゆる、グルーポン系)」というものが沢山登場しましたが、ユーザからしてみると、&lt;/p&gt;

&lt;p&gt;・実際に自分の行ける範囲のお店の情報はごくわずか&lt;br /&gt;
・サイト多すぎて、お得情報を逃してしまうことがある&lt;/p&gt;

&lt;p&gt;という問題がありました。&lt;/p&gt;

&lt;p&gt;一方で、同じようにたくさん生まれたクーポン共同購入サイトのまとめサイトは、&lt;/p&gt;

&lt;p&gt;・都道府県単位でしかクーポン情報の絞り込みができない&lt;br /&gt;
・地図を操作しないと近くの情報を閲覧できない&lt;br /&gt;
・適切なキーワードを指定しないとアラートメールが届かない&lt;/p&gt;

&lt;p&gt;という制約がありました。&lt;/p&gt;

&lt;p&gt;この駅クーポンは、これらの問題を解決し、ユーザのお得情報収集のお手伝いをしてくれます。&lt;/p&gt;

&lt;p&gt;またサイトを利用するユーザだけでなく、クーポン共同購入サイト、掲載しているお店にも、メリットをもたらすことができると考えています。&lt;/p&gt;

&lt;p&gt;■クーポン共同購入サイトのメリット&lt;/p&gt;

&lt;p&gt;◎「あなただけのためのメール」が届くことによって、クーポン情報がユーザの目にとまりやすい&lt;/p&gt;

&lt;p&gt;かつてクーポン共同購入サイトは、都道府県単位でクーポンを発売していました。クーポン共同購入サイトの基本はメールマーケティングだと言われていますが、ユーザからしてみると、「自分に関係のないお店の情報ばかり届くプッシュメール」ばかり届くわけで、だんだんと飽きられてしまうという問題がありました。&lt;/p&gt;

&lt;p&gt;一方で、現在(特に資金力があるところ)のクーポン共同購入サイトは、恵比寿・広尾エリア、銀座エリアのように、エリア単位でクーポンを発売しています。&lt;/p&gt;

&lt;p&gt;一見良さそうな解決策に見えるのですが、小さいエリアに絞れば絞るほどユーザへのリーチが減っていきます。またユーザからしてみれば、このエリア「だけで」生活している人はまれで、複数のエリアについて気を払わなければならない、という面倒なことになっていたわけです。&lt;/p&gt;

&lt;p&gt;◎他のクーポン共同購入サイトの顧客リストを使って商売ができる&lt;/p&gt;

&lt;p&gt;クーポン共同購入サイト成功の秘訣は、営業・企画力とかではなく、「クーポン情報を目にする顧客をどれだけ増やせるか」につきると思います。なんとかマーケティングとかいろいろやっても、小さいサイト運営事業者が顧客プールを拡げることにやがて限界はきます。&lt;/p&gt;

&lt;p&gt;この駅クーポンに登録する人は、いずれかのクーポン共同購入サイトを使ったことのある確度の高い見込み客がほとんどになるかと思います。そのような人に向けて、自分のところのクーポン情報を露出できるのは大きなメリットかと思います。ユーザからしてみれば、安ければどのサイトが販売しているかなんて気になりません。&lt;/p&gt;

&lt;p&gt;■お店側のメリット&lt;/p&gt;

&lt;p&gt;◎クーポンの販売数を増やせる&lt;/p&gt;

&lt;p&gt;「クーポン共同購入サイトのメリット」でも述べましたが、単純にクーポンの注目度が上がれば、売り上げも伸びることでしょう(笑)。&lt;/p&gt;

&lt;p&gt;---&lt;/p&gt;

&lt;p&gt;今後の予定ですが、まずはクーポン共同購入サイトをよく使う人をターゲットにサービスの認知を広めた後、徐々にそれ以外の層にもサービスを使って貰えるようにしていきたいと考えています。&lt;/p&gt;

&lt;p&gt;また、「人と駅とのインタレストグラフ」という意味では結構面白そうなことができそうで、今後「この駅.jp」サービスのシリーズ化を視野に入れたいと思います。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/MrukvmXF-y0" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1143</feedburner:origLink></entry>

<entry>
    <title>Services_Twitterで投稿が文字化けする</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/0QhnhLYq2cE/1041" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1041" title="Services_Twitterで投稿が文字化けする" />
    <id>tag:tech.u39.info,2009://5.1041</id>
    
    <published>2009-09-26T14:10:59Z</published>
    <updated>2011-01-10T12:12:41Z</updated>
    
    <summary>注意：version0.30です。 twitter関連のPEARライブラリ「Se...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="PHP" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;注意：version0.30です。&lt;/p&gt;

&lt;p&gt;twitter関連のPEARライブラリ「Services_Twitter(作者が日本人じゃない方)」を使って、twitterに投稿すると文字化けする。ハマったので、メモ。&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;
Twitter.phpの566行目付近の&lt;/p&gt;

&lt;pre name="code" class="php"&gt;
if ($pType == 'string' &amp;&amp; !$this-&gt;isUnicode($arg)) {
  // iso-8859-1 string that we must convert to unicode
  $arg = utf8_encode($arg);
}
&lt;/pre&gt;

&lt;p&gt;utf8_encodeの処理をしている行をコメントアウトすればOK。&lt;/p&gt;

&lt;p&gt;コメントの通り、元の文字コードがiso-8859-1であるという、豪快な決めうちっぷり。。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/0QhnhLYq2cE" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1041</feedburner:origLink></entry>

<entry>
    <title>さくらのレンタルサーバにGeoIPを入れる</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/YRd0FoaqeQk/1017" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1017" title="さくらのレンタルサーバにGeoIPを入れる" />
    <id>tag:tech.u39.info,2009://5.1017</id>
    
    <published>2009-03-14T16:17:12Z</published>
    <updated>2011-01-10T12:39:51Z</updated>
    
    <summary>IPアドレスから所在地が分かるという「GeoIP」。下記の記事を参考に、さくらの...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="さくら共有サーバー" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;IPアドレスから所在地が分かるという「GeoIP」。下記の記事を参考に、さくらのサーバでもインストールできるか試してみた。例によってbashを想定。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://itpro.nikkeibp.co.jp/article/COLUMN/20090127/323589/"&gt;121. IPアドレスから所在地探し&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;GeoIPライブラリ&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$wget http://www.maxmind.com/download/geoip/api/c/GeoIP.tar.gz&lt;br /&gt;
$tar zxvf GeoIP.tar.gz&lt;br /&gt;
$cd GeoIP.tar.gz&lt;br /&gt;
$./configure --prefix=$HOME/local&lt;br /&gt;
$make&lt;br /&gt;
$make install&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;GeoIPデータ&lt;/b&gt;&lt;br /&gt;
参考ページにあるURLがそのまま使えなかったので、適宜変更。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
$wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
$gunzip GeoIP.dat.gz
$cp GeoIP.dat.gz ~/local/share/GeoIP

&lt;p&gt;$wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz&lt;br /&gt;
$gunzip GeoLiteCity.dat.gz&lt;br /&gt;
$cp GeoLiteCity.dat.gz ~/local/share/GeoIP/GeoIPCity.dat&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Peclモジュール&lt;/b&gt;&lt;br /&gt;
一度ダウンロードしてコンパイル。余計なconfigureオプションがあるかも。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
$export PHP_AUTOCONF=autoconf259
$export PHP_AUTOHEADER=autoheader259.

&lt;p&gt;$pecl download geoip&lt;br /&gt;
$tar zxvf geoip-1.0.7&lt;br /&gt;
$cd geoip-1.0.7&lt;br /&gt;
$phpize&lt;br /&gt;
$./configure --prefix=$HOME/local --exec-prefix=$HOME/local --with-php-config=$HOME/local/bin/php-config --with-geoip=$HOME/local&lt;br /&gt;
$make&lt;br /&gt;
$make install&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;設定&lt;/b&gt;&lt;br /&gt;
php.iniにモジュールを設定。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
extension_dir="/home/xxxxxx/local/lib/php/extensions/no-debug-non-zts-20060613/"
extension="geoip.so"
&lt;/pre&gt;

&lt;p&gt;&lt;b&gt;テスト&lt;/b&gt;&lt;/p&gt;

&lt;pre name="code" class="php"&gt;
var_dump(geoip_record_by_name('whitehouse.gov')); 
&lt;/pre&gt;

&lt;pre name="code"&gt;
array
  'continent_code' =&gt; string 'AS' (length=2)
  'country_code' =&gt; string 'SG' (length=2)
  'country_code3' =&gt; string 'SGP' (length=3)
  'country_name' =&gt; string 'Singapore' (length=9)
  'region' =&gt; string '' (length=0)
  'city' =&gt; string '' (length=0)
  'postal_code' =&gt; string '' (length=0)
  'latitude' =&gt; float 1.366700053215
  'longitude' =&gt; float 103.80000305176
  'dma_code' =&gt; int 0
  'area_code' =&gt; int 0
&lt;/pre&gt;

&lt;p&gt;シンガポール？ MaxMind社の&lt;a href="http://www.maxmind.com/app/locate_ip"&gt;Online Demo&lt;/a&gt;と結果が違うが、エラーログは吐いてない...。&lt;/p&gt;

&lt;pre name="code"&gt;
var_dump(geoip_record_by_name($_SERVER['REMOTE_ADDR'])); 
&lt;/pre&gt;

&lt;pre name="code class="php""&gt;
array
  'continent_code' =&gt; string 'AS' (length=2)
  'country_code' =&gt; string 'JP' (length=2)
  'country_code3' =&gt; string 'JPN' (length=3)
  'country_name' =&gt; string 'Japan' (length=5)
  'region' =&gt; string '40' (length=2)
  'city' =&gt; string 'Tokyo' (length=5)
  'postal_code' =&gt; string '' (length=0)
  'latitude' =&gt; float 35.685001373291
  'longitude' =&gt; float 139.75140380859
  'dma_code' =&gt; int 0
  'area_code' =&gt; int 0
&lt;/pre&gt;

&lt;p&gt;とりあえず都道府県まで。緯度経度は皇居と出た...。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://px.a8.net/svt/ejp?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" target="_blank"&gt;&lt;br /&gt;
&lt;img border="0" width="468" height="60" alt="" src="http://www25.a8.net/svt/bgt?aid=100802788346&amp;wid=002&amp;eno=01&amp;mid=s00000008091006050000&amp;mc=1"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img border="0" width="1" height="1" src="http://www18.a8.net/0.gif?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" alt=""&gt;&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/YRd0FoaqeQk" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1017</feedburner:origLink></entry>

<entry>
    <title>さくらのレンタルサーバにXdebugを入れる</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/W_kEyY_N_6g/1016" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1016" title="さくらのレンタルサーバにXdebugを入れる" />
    <id>tag:tech.u39.info,2009://5.1016</id>
    
    <published>2009-03-13T15:12:36Z</published>
    <updated>2011-01-10T12:40:00Z</updated>
    
    <summary>前回のPHP5のインストールに引き続き、Xdebugをインストール。リモートデバ...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="さくら共有サーバー" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;前回の&lt;a href="http://tech.u39.info/1014"&gt;PHP5のインストール&lt;/a&gt;に引き続き、Xdebugをインストール。リモートデバッグは恐らく使えないだろうが、var_dumpが色つきでビジュアルライズされるだけでも、使う価値がある拡張モジュールと言える。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://bohebohe.livedoor.biz/archives/51093251.html"&gt;さくらのサーバにxdebugをインストールする。&lt;/a&gt;を参考に...。 bashを想定。&lt;/p&gt;

&lt;p&gt;&lt;b&gt;環境変数の設定&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$export PHP_AUTOCONF=autoconf259&lt;br /&gt;
$export PHP_AUTOHEADER=autoheader259&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;コンパイル・インストール&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$wget http://www.xdebug.org/files/xdebug-2.0.4.tgz&lt;br /&gt;
$tar zxvf xdebug-2.0.2.tgz&lt;br /&gt;
$cd xdebug-2.0.2&lt;/p&gt;

&lt;p&gt;$which phpize&lt;br /&gt;
/home/u39lab/bin/phpize&lt;/p&gt;

&lt;p&gt;$phpize&lt;br /&gt;
$./configure --prefix=$HOME/local --exec-prefix=$HOME/local --with-php-config=$HOME/local/bin/php-config --bindir=$HOME/local/bin --enable-xdebug&lt;br /&gt;
...&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;設定&lt;/b&gt;&lt;br /&gt;
本来ならば本番環境とテスト環境を分けるために、.htaccessのphp_valueでXdebugの利用有無を設定したいが、さくらではphp_valueに対応していない模様。というわけで、素直にphp.iniに記述。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
zend_extension="/home/u39lab/local/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
&lt;/pre&gt;

&lt;p&gt;個人的によく間違えるのが、extensionのスペルミス。&lt;/p&gt;

&lt;p&gt;あとは、phpinfo()やvar_dump()などでXdebugが正しく動作しているかチェック。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://px.a8.net/svt/ejp?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" target="_blank"&gt;&lt;br /&gt;
&lt;img border="0" width="468" height="60" alt="" src="http://www25.a8.net/svt/bgt?aid=100802788346&amp;wid=002&amp;eno=01&amp;mid=s00000008091006050000&amp;mc=1"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img border="0" width="1" height="1" src="http://www18.a8.net/0.gif?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" alt=""&gt;&lt;br /&gt;
&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/W_kEyY_N_6g" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1016</feedburner:origLink></entry>

<entry>
    <title>さくらのレンタルサーバにSubversionを入れる</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/FeQ3DJVn5p4/1015" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1015" title="さくらのレンタルサーバにSubversionを入れる" />
    <id>tag:tech.u39.info,2009://5.1015</id>
    
    <published>2009-03-09T15:01:09Z</published>
    <updated>2011-01-10T12:40:11Z</updated>
    
    <summary>さくらインターネットの共有サーバーにSubversionを入れてみる。シェルはb...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="さくら共有サーバー" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;さくらインターネットの共有サーバーにSubversionを入れてみる。シェルはbashで、$HOME/localにイロイロ入れることを想定。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.nyarla.net/2006/10/21/2"&gt;Subversionをさくらインターネットにインストール&lt;/a&gt;を参考に...。もしかするとSubversionだけならさらにシンプルに出来るかもしれない。&lt;/p&gt;

&lt;p&gt;&lt;b&gt;パスの設定&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$export PATH="$HOME/local/bin:$PATH"&lt;br /&gt;
$export LD_LIBRARY_PATH="$HOME/local/lib"&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;SWIG&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$wget http://downloads.sourceforge.net/swig/swig-1.3.38.tar.gz?use_mirror=jaist&lt;br /&gt;
...&lt;br /&gt;
$./configure --prefix=$HOME/local --with-python=/usr/local/bin/python&lt;br /&gt;
...&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;APR&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.3.3.tar.gz&lt;br /&gt;
...&lt;br /&gt;
$./configure --prefix=$HOME/local --disable-static&lt;br /&gt;
...&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;APR-util&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.3.4.tar.gz&lt;br /&gt;
...&lt;br /&gt;
$./configure --prefix=$HOME/local --with-apr=$HOME/local --with-expat=/usr/local --with-iconv=/usr/local --disable-static&lt;br /&gt;
...&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Subversion&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
$wget http://subversion.tigris.org/downloads/subversion-1.5.6.tar.gz&lt;br /&gt;
...&lt;br /&gt;
$./configure --prefix=$HOME/local --with-neon=$HOME/local --without-berkeley-db --enable-swig-bindings=perl --with-swig=$HOME/local/bin/swig --with-apr=$HOME/local/bin/apr-1-config --with-apr-util=$HOME/local/bin/apu-1-config --disable-static&lt;br /&gt;
...&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;レポジトリの作成&lt;/b&gt;&lt;br /&gt;
レポジトリは$HOME/var/snv/repoに設置することを想定。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.livedoor.jp/memozilla/archives/54933239.html"&gt;さくらインターネットに設置した subversion で ssh ログイン時に発生するエラー&lt;/a&gt;を参考にしながら。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
$ln -s $HOME/subversion_path/bin $HOME/bin
$mkdir -p $HOME/var/svn
$svnadmin create --fs-type=fsfs $HOME/var/svn/repo
&lt;/pre&gt;

&lt;p&gt;Eclipseでプロジェクトを作成し、右クリック「チーム」→「プロジェクトの共用」。Subclipseにて、下記のURLを指定。&lt;/p&gt;

&lt;p&gt;svn+ssh://xxxxx.sakura.ne.jp/home/xxxxx/var/svn/repo&lt;/p&gt;

&lt;p&gt;&lt;a href="http://px.a8.net/svt/ejp?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" target="_blank"&gt;&lt;br /&gt;
&lt;img border="0" width="468" height="60" alt="" src="http://www25.a8.net/svt/bgt?aid=100802788346&amp;wid=002&amp;eno=01&amp;mid=s00000008091006050000&amp;mc=1"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img border="0" width="1" height="1" src="http://www18.a8.net/0.gif?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" alt=""&gt;&lt;br /&gt;
&lt;img border="0" width="1" height="1" src="http://www19.a8.net/0.gif?a8mat=1C8E7L+786GWQ+D8Y+6C9LD" alt=""&gt;&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/FeQ3DJVn5p4" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1015</feedburner:origLink></entry>

<entry>
    <title>さくらのレンタルサーバーにPHP5を入れる(PDO対応・今さら編)</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/fAsED3RLu40/1014" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1014" title="さくらのレンタルサーバーにPHP5を入れる(PDO対応・今さら編)" />
    <id>tag:tech.u39.info,2009://5.1014</id>
    
    <published>2009-03-08T15:15:09Z</published>
    <updated>2011-01-10T12:40:20Z</updated>
    
    <summary>さくらインターネットの共有サーバーでは、長らくPHP5のサポートが行われていなか...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="さくら共有サーバー" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;さくらインターネットの共有サーバーでは、長らくPHP5のサポートが行われていなかったため、一部のユーザが、独自にPHP5をホームディレクトリ内にインストールを試み、ノウハウが共有されてきた。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://d.hatena.ne.jp/nazoking/20041213/1102925275"&gt;・さくらのレンタルサーバでPHP5&lt;/a&gt;&lt;br /&gt;
などを参照。&lt;/p&gt;

&lt;p&gt;昨年ようやく、さくらインターネットの共有サーバーでもPHP5のサポートが開始されたが、何か物足りない...。&lt;/p&gt;

&lt;p&gt;・好き勝手PHP.iniをいじりたい&lt;br /&gt;
・好き勝手モジュールを入れてコンパイルしたい&lt;br /&gt;
・任意のバージョンを入れたい&lt;/p&gt;

&lt;p&gt;ということで敢えて今更やってみる。準備としていくつかディレクトリを作成。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
$mkdir ~/local
$mkdir ~/src
$mkdir ~/etc
&lt;/pre&gt;

&lt;p&gt;PHPをダウンロードして展開する。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
$cd ~/src
$wget http://...
$tar zxvf php-5.2.9.tar.gz
&lt;/pre&gt;

&lt;p&gt;展開したディレクトリに、以下のようなシェルスクリプトを用意する。&lt;/p&gt;

&lt;p&gt;&lt;b&gt;conf.sh&lt;/b&gt;&lt;br /&gt;
&lt;pre name="code" class="sh"&gt;&lt;br /&gt;
#!/bin/sh&lt;/p&gt;

&lt;p&gt;./configure \&lt;br /&gt;
--prefix=$HOME/local \&lt;br /&gt;
--with-config-file-path=$HOME/etc \&lt;br /&gt;
--with-pear=$HOME/local/share/pear5 \&lt;br /&gt;
--enable-mbstring=all \&lt;br /&gt;
--enable-mbregex \&lt;br /&gt;
--enable-force-cgi-redirect \&lt;br /&gt;
--with-openssl=/usr \&lt;br /&gt;
--with-mysql \&lt;br /&gt;
--with-curl \&lt;br /&gt;
--enable-ftp \&lt;br /&gt;
--enable-pdo \&lt;br /&gt;
--with-pdo-mysql=/usr/local/bin/mysql&lt;br /&gt;
&lt;/pre&gt;&lt;/p&gt;

&lt;p&gt;PDOやFTPなどをオプションでとりあえず指定。GDは必要なし。無駄にハマってしまったのがphp.iniのパス指定で、ここではファイル名ではなくディレクトリ名を指定する。&lt;/p&gt;

&lt;p&gt;スクリプトに実行権を与えて、実行(=configure)する。その後makeしてインストール。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
$cd php-5.2.9
$chmod u+x conf.sh
$./conf.sh
...
$make
...
$make test
...
$make install
...
&lt;/pre&gt;

&lt;p&gt;続いてCGIモードでオリジナルのPHPを動かすための作業。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
$mkdir ~/www/cgi-bin
$ln ~/local/bin/php-cgi ~/www/cgi-bin/php5.cgi
&lt;/pre&gt;

&lt;p&gt;ドキュメントルート(~/www)に下記のような.htaccessを設置。&lt;/p&gt;

&lt;pre name="code" class="sh&gt;
Action php5-script /cgi-bin/php5.cgi
AddHandler php5-script .php
&lt;/pre&gt;

&lt;p&gt;最後に~/etcにphp.iniの設置。どこかのphp.iniを使うなり、php.ini-recommendedを使うなりする。.htaccessのphp_valueでエラーログファイルの切り替えができないので、あらかじめphp.iniでログの保存先ディレクトリを指定しておくと良い。&lt;/p&gt;

&lt;pre name="code" class="sh"&gt;
error_log = /home/xxxxx/var/log/php.log 
&lt;/pre&gt;

&lt;p&gt;&lt;br /&gt;
最後に、ドキュメントルートに置いたphpファイルにphpinfo()を記述し、インストールしたPHPが動いているかチェックして完了。&lt;/p&gt;

&lt;p&gt;ただし、CLIでPHPを動かす場合はインストール先のPHPを指定する。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://px.a8.net/svt/ejp?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" target="_blank"&gt;&lt;br /&gt;
&lt;img border="0" width="468" height="60" alt="" src="http://www25.a8.net/svt/bgt?aid=100802788346&amp;wid=002&amp;eno=01&amp;mid=s00000008091006050000&amp;mc=1"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img border="0" width="1" height="1" src="http://www18.a8.net/0.gif?a8mat=1O0JXG+5Q00UY+1QFI+100Q3L" alt=""&gt;&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/fAsED3RLu40" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1014</feedburner:origLink></entry>

<entry>
    <title>さくらインターネット - 共有サーバーのサービスを刷新</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/wpi69mrsShA/1012" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1012" title="さくらインターネット - 共有サーバーのサービスを刷新" />
    <id>tag:tech.u39.info,2009://5.1012</id>
    
    <published>2009-02-09T16:00:00Z</published>
    <updated>2009-02-10T16:01:50Z</updated>
    
    <summary>いろいろ遊べて安価な共有サーバーでお馴染み、さくらインターネットがバージョンアッ...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="未分類" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;いろいろ遊べて安価な共有サーバーでお馴染み、さくらインターネットがバージョンアップしました。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://journal.mycom.co.jp/news/2009/01/26/040/index.html"&gt;MYCOM : さくらインターネットが共有サーバのセキュリティ強化、法人向け新プランも&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;嬉しいのが、月5,000円のプランしか対応していなかったSSLが、共有SSLという形で月500円のプランでも使えるようになっています。またMySQLが4から5に一気にバージョンアップ。ようやくサブクエリーが使えるようになります...。&lt;/p&gt;

&lt;p&gt;既存ユーザーのプランのグレードアップはこれからだですが、またいろいろ遊んでいきたいと思います。広告も新しいのが出ていました。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://px.a8.net/svt/ejp?a8mat=1C8E7L+786GWQ+D8Y+6BU5T" target="_blank"&gt;&lt;br /&gt;
&lt;img border="0" width="240" height="240" alt="" src="http://www28.a8.net/svt/bgt?aid=081013233437&amp;wid=002&amp;eno=01&amp;mid=s00000001717001063000&amp;mc=1"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;img border="0" width="1" height="1" src="http://www17.a8.net/0.gif?a8mat=1C8E7L+786GWQ+D8Y+6BU5T" alt=""&gt;&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/wpi69mrsShA" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1012</feedburner:origLink></entry>

<entry>
    <title>イトーヨーカドーのネットスーパー - 安い・便利・丁寧</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/3sH8F7ZNx7c/1009" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1009" title="イトーヨーカドーのネットスーパー - 安い・便利・丁寧" />
    <id>tag:tech.u39.info,2009://5.1009</id>
    
    <published>2009-02-08T07:53:08Z</published>
    <updated>2009-02-08T07:54:56Z</updated>
    
    <summary>今年に入り、イトーヨーカドーのネットスーパーを数回使ってみた。開始した当初は対応...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="生活・ワークスタイル" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;今年に入り、&lt;a href="https://www.iy-net.jp/"&gt;イトーヨーカドーのネットスーパー&lt;/a&gt;を数回使ってみた。開始した当初は対応地域も限られていたが、順調に対応店舗とエリアを拡大している。ネットスーパーと言えば、やはり気になるのは品揃えとお値段。&lt;/p&gt;

&lt;p&gt;品揃えは悪くない。一般にスーパーで買っているものであれば大抵手に入る。食品では99円のお菓子、特売のお肉、お総菜、カット野菜なども手に入るので一人暮らしをしている人にも便利だ。また日用雑貨も取り扱っているのがデパートの強み。オムツやちょっとした雑貨を買うときも、持って帰る手間を省くことができる。&lt;/p&gt;

&lt;p&gt;またウェブサイトも使いやすい(AutoPagarizeにも対応していた)ので、買い物がスムーズもできる。献立の提案をしてくれるコーナーもあり、関連する食材を一括して購入することができるのも便利だ。&lt;/p&gt;

&lt;p&gt;続いてお値段。さすがにタイムセールの値引きはないが、実際の店舗で買う値段と変わらない。配送料については店舗によって異なるようで、大井町店であれば300円の配送料が、7,000円以上の購入で無料になる。日用品やお米などを組み合わせれば、クリアーできるはずだ。&lt;/p&gt;

&lt;p&gt;例えばドリンクも特売品ならば安い。配送料がかかるため楽天で購入するのは論外だが、以前使っていたAmazonと比較してみる。「六甲のおいしい水2リットル6本入り」をAmazonで購入すると1,013円のところ、イトーヨーカドーのネットスーパーでは588円。「ポカリスエット1.5リットル×8」が1,764円の所、2リットル×6本で1,188円となる。残念なことに一人6本までという制限があるものの、アスクルなんかよりも安いと思う。&lt;/p&gt;

&lt;p&gt;配送方法も丁寧なので、最後まで好印象を持てる。お肉はドライアイスに入れて冷やして持ってくるし、卵のパックはもちろん、パスタでさえプチプチに梱包して配送してくれる。ちなみに、どこかに書いてあったが宅配ボックスには対応していないようだ。&lt;/p&gt;

&lt;p&gt;&lt;img src="http://tech.u39.info/img/080208-1.jpg" alt="イトーヨーカドー・ネットスーパーの梱包"/&gt;&lt;/p&gt;

&lt;p&gt;唯一気にしなければいけないのが、注文受付時間。希望する配送時間の数時間前までに注文する必要があるが、配送できる数に限りがあるので早い時間でも締め切られてしまう場合がある。余裕をもって事前に買い物を済ませる必要があるだろう。&lt;/p&gt;

&lt;p&gt;いろいろ書いてみたが、なんと言ってもやはりその存在自体がうれしい。重い物を持って帰らなくてもいい(そう言う時に限って雨が降ってくる)というメリットは何に変えても変えがたい。そんなこんなで、前回はお米やらストック用のドリンクやらで、総計30Kg前後の買い物をしてしまいました...。配送スタッフの方ごめんなさい。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/3sH8F7ZNx7c" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1009</feedburner:origLink></entry>

<entry>
    <title>CakePHPへの愚痴いろいろ</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/AgUFuvH9fKw/1000" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=1000" title="CakePHPへの愚痴いろいろ" />
    <id>tag:tech.u39.info,2009://5.1000</id>
    
    <published>2009-01-25T13:13:34Z</published>
    <updated>2009-01-26T14:12:55Z</updated>
    
    <summary>CakePHPは便利なフレームワークの一つであることは確かだが、いくつか使ってみ...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="CakePHP" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;CakePHPは便利なフレームワークの一つであることは確かだが、いくつか使ってみての愚痴を書いてみたい。&lt;/p&gt;

&lt;p&gt;(1)仕様変わりすぎ&lt;/p&gt;

&lt;p&gt;バージョンによって仕様がコロコロ変わっている。使い始めて「あれ？」となったのは、思いつくだけでも、&lt;/p&gt;

&lt;p&gt;・conditionの書き方変更&lt;br /&gt;
・findAll廃止&lt;br /&gt;
・web routingの変更&lt;/p&gt;

&lt;p&gt;などなど。このため入門書や解説サイトが役に立たないことがある。&lt;/p&gt;

&lt;p&gt;(2)ロジックはモデルに&lt;/p&gt;

&lt;p&gt;というベストプラクティスのようなものが少し前に議論されていたが、「当たり前の話ではないか」と違和感を感じざるを得なかった。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.sooey.com/journal/2008/03/26/717/"&gt;Sooey：CakePHPを使ったMVC設計のベストプラクティス&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;特にPerlやPHPでプログラミングを始めた人は、CakePHPに限らずコントローラーにベッタベタにロジックを書く人が多く、Javaでプログラミングを始めた人は、ちゃんとドメインモデルを守ってモデル・エンティティにロジックを書くというスタイルに慣れていると思う。あくまで主観。&lt;/p&gt;

&lt;p&gt;(3)モデルはエンティティではない&lt;/p&gt;

&lt;p&gt;最初にハマった。data?何それ。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://wiki.cre8system.jp/index.php?PHP%2FCakePHP%2FCakePHP%A4%CE%A5%E2%A5%C7%A5%EB%A4%F2%A5%A8%A5%F3%A5%C6%A5%A3%A5%C6%A5%A3%A4%C8%A4%B7%A4%C6%B0%B7%A4%A6"&gt;Happy Engner Life：CakePHPのモデルをエンティティとして扱う&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(4)プラグインの構成要素&lt;/p&gt;

&lt;p&gt;CakePHPのプラグインは「コントローラー＋モデル＋ビュー」をまとめたものが、プロジェクト間での可搬性という意味でプラグインという概念を考えると、「コンポーネント＋ヘルパー」のパッケージを使う機会のほうが多いと思う。&lt;/p&gt;

&lt;p&gt;ヘルパーとは、ビューのロジックの切り替えを隠蔽したもの(HTMLを書く必要を無くすという意味合いではない)である。その切り替えロジックはコントローラー間で共通である事が多く、コントローラー間の処理を共通する処理はコンポーネントで書くのがセオリーだ。&lt;/p&gt;

&lt;p&gt;例えば携帯電話向けページの処理。ヘルパーでキャリア判別を行っているものも見たことがあるが、キャリア判別をコンポーネントのbeforeRenderで行い、ヘルパーはコンポーネントの判別結果(フィールド値なり)を参照して分岐を行えば、判別処理を一箇所にまとめることができスッキリとする。&lt;/p&gt;

&lt;p&gt;このような「モバイルプラグイン」のようなコンポーネントとヘルパーの組み合わせであれば、可搬性という意味でもいいのではないかと思うのだが、周りはどうしているのだろうか。一方で、ヘルパーはコンポーネントに依存しちゃいかん、という文も見かけたことがある。全く不可解だ。&lt;/p&gt;

&lt;p&gt;(5)設定の切り替え&lt;/p&gt;

&lt;p&gt;本番環境とテスト環境によって設定の値を変えたい場合が多々あるが、CakePHPは環境の切り替えをサポートする機構が弱いのではないかと思った。できれば設定値一発で、使用する設定ファイルを切り替えられるのが理想だ。&lt;/p&gt;

&lt;p&gt;既に自分で取り入れていて一番シンプルなのは、.htaccessやhttpd.confの中に、SetEnvで環境ごとの値を置いておいて、PHP側で$_SERVERから読み出して認識させる方法。&lt;/p&gt;

&lt;p&gt;テスト環境と本番環境で思い出したが、テスト環境は「test」や「debug」という英単語で良いと思うのだが、本番環境を「real」としていた会社チームがあった。素で「debub」と書く奴もいたな。プログラミング言語は英語で書く言語だけに、スペルミスはもちろん、こういう微妙な間違いもチームの士気を下げる一因となってしまう。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/AgUFuvH9fKw" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/1000</feedburner:origLink></entry>

<entry>
    <title>iPhotoやiPodでうまくファイル名順に写真の並び替えができない</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/FC_-61TN4nk/999" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=999" title="iPhotoやiPodでうまくファイル名順に写真の並び替えができない" />
    <id>tag:tech.u39.info,2009://5.999</id>
    
    <published>2009-01-25T11:44:08Z</published>
    <updated>2009-01-25T11:46:04Z</updated>
    
    <summary>誰かハマっているかもしれないのでメモ。 iPhotoのタイトルで並べ替え(*1)...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="未分類" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;誰かハマっているかもしれないのでメモ。&lt;/p&gt;

&lt;p&gt;iPhotoのタイトルで並べ替え(*1)や、iPodの写真の並び順は、ExprolerやFinderとは仕様が少し異なる。下記のようなファイル名のファイル群をインポートしたとする。&lt;/p&gt;

&lt;p&gt;(*1)ファイル名で並び替え：「表示」→「写真を並べ替え」→「タイトル」&lt;/p&gt;

&lt;p&gt;XXXX-1.jpg&lt;br /&gt;
XXXX-2.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-10.jpg&lt;br /&gt;
XXXX-11.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-100.jpg&lt;br /&gt;
XXXX-101.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-110.jpg&lt;br /&gt;
XXXX-111.jpg&lt;/p&gt;

&lt;p&gt;通常のExproler, Finder, Picasaではこの順番のままだが、iPhotoやiPod(iPhone)で見ると、&lt;/p&gt;

&lt;p&gt;XXXX-1.jpg&lt;br /&gt;
XXXX-10.jpg&lt;br /&gt;
XXXX-100.jpg&lt;br /&gt;
XXXX-101.jpg&lt;br /&gt;
XXXX-102.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-109.jpg&lt;br /&gt;
XXXX-11.jpg&lt;br /&gt;
XXXX-111.jpg&lt;br /&gt;
XXXX-112.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-119.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-12.jpg&lt;br /&gt;
XXXX-121.jpg&lt;/p&gt;

&lt;p&gt;という順番になってしまう。恐らくデジカメが生成するファイル名が関連しているものと思われるが、これを解決するためには、&lt;/p&gt;

&lt;p&gt;XXXX-001.jpg&lt;br /&gt;
XXXX-002.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-010.jpg&lt;br /&gt;
XXXX-011.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-100.jpg&lt;br /&gt;
XXXX-101.jpg&lt;br /&gt;
...&lt;br /&gt;
XXXX-110.jpg&lt;br /&gt;
XXXX-111.jpg&lt;/p&gt;

&lt;p&gt;とケタを揃えて0で埋めるしかない...。ウザい仕様だ。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/FC_-61TN4nk" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/999</feedburner:origLink></entry>

<entry>
    <title>ジオコーディングに過度に期待していた件</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/WIKMvH5xo30/998" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=998" title="ジオコーディングに過度に期待していた件" />
    <id>tag:tech.u39.info,2009://5.998</id>
    
    <published>2009-01-20T15:00:00Z</published>
    <updated>2009-01-19T16:01:17Z</updated>
    
    <summary>どうやら「ジオコーディング」に期待しすぎていたようで、現実を知ってガッカリした。...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="Webサービス" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;どうやら「ジオコーディング」に期待しすぎていたようで、現実を知ってガッカリした。ジオコーディングとは住所または施設名から緯度経度を返してくれるサービスで、日本ではgoogleやYahooなどが提供しているのが有名。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://developer.yahoo.co.jp/webapi/map/localsearch/v1/localsearch.html"&gt;Yahoo!デベロッパーネットワーク - 地図 - ローカルサーチ&lt;/a&gt;には下記のような説明がある。&lt;/p&gt;

&lt;blockquote&gt;
ローカルサーチAPIでは、キーワード検索、周辺検索の機能を提供します。キーワード検索は、住所・郵便番号・施設を指定して、その位置情報（緯度、経度）を出力します。周辺検索は、位置情報（緯度、経度）、範囲を指定すると、その範囲内に含まれる施設情報を出力します。 

&lt;p&gt;landmark - 施設（役所、学校、病院、郵便局など）を対象に検索&lt;br /&gt;
&lt;/blockquote&gt;&lt;/p&gt;

&lt;p&gt;この「など」という文言に、妄想に妄想を膨らませていたが、「施設名」とはランドマーク的な物に限るようだ。駅や公共施設は問題ないが、現実には一般のお店はおろか期待していた「チェーン系のお店」ですら出てこない。&lt;/p&gt;

&lt;p&gt;個人レベルで利用できるマスターデータもなさげで、住所と店舗名をクローリングして自分で情報をメンテナンスしなきゃダメなのだろうか。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://5515.biz/"&gt;チェーン店検索なら「ここいこ店舗なび」　5515.biz&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/WIKMvH5xo30" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/998</feedburner:origLink></entry>

<entry>
    <title>効率的にMTのテンプレートコーディングを行う</title>
    <link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/u39technik/~3/eyczkAfQnpU/997" />
    <link rel="service.edit" type="application/atom+xml" href="http://cms.tank.jp/mt/mt-atom.cgi/weblog/blog_id=5/entry_id=997" title="効率的にMTのテンプレートコーディングを行う" />
    <id>tag:tech.u39.info,2009://5.997</id>
    
    <published>2009-01-19T15:14:49Z</published>
    <updated>2009-01-19T15:25:27Z</updated>
    
    <summary>ランチブログ：偏食偏在はいつもの通りMTで構築したのですが、ビュー部分のコーディ...</summary>
    <author>
        <name />
        
    </author>
    
        <category term="MovableType" />
    
    <content type="html" xml:lang="ja" xml:base="http://tech.u39.info/">
        &lt;p&gt;&lt;a href="http://lunch.u39.info/"&gt;ランチブログ：偏食偏在&lt;/a&gt;はいつもの通りMTで構築したのですが、ビュー部分のコーディングでは、こちらの便利なプラグインを利用しました。&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blog.webcreativepark.net/2008/03/21-191325.html"&gt;MTのテンプレート開発で再構築を不要にするfastDevelopmentプラグイン：to-R&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MTのテンプレートコーディングで何が嫌かと言えば、あのもっさりとした管理画面です。特にバージョン4になって酷くなりました。しかも特定の箇所を継続して修正したい際、変更ボタン押下後に画面が再描画されるため、テキストフィールドのカーソルを再度該当する箇所に合わせる必要があります。これでは全く「コーディング→確認」のリズムがつかめません。&lt;/p&gt;

&lt;p&gt;管理画面を回避する方法としては、ファイルリンクを利用して外部エディタで編集する方法がありますが、ファイルが更新されたことをMTが検知する必要があるため、確認のたびに再構築作業が必要です(ダイナミックパブリッシングの場合は管理画面上での何らかの操作でOK?)。&lt;/p&gt;

&lt;p&gt;こちらのプラグインは、ダイナミックパブリッシング利用下において、ファイルシステムのテンプレートファイルの変更を、すぐに画面に反映・確認できるようにするものです。仕組みとしてはブートストラッパー(mtview.php)の処理をフックして、表示毎に古いテンプレートのキャッシュを破棄することにより、毎回新しい内容をファイルからロードして解釈(MT→Smarty→PHP[→キャッシュ])させ、実行・表示させているのかと思います。ていうか、こんなフックができるなんて知りませんでした。素晴らしい。&lt;/p&gt;

&lt;p&gt;とは言え、わざわざローカルで編集したファイルをSFTPでチマチマとアップロードする作業もアホくさいので、Eclipseで編集+アップロード→という流れか、ssfhsでサーバをマウントしてしまい、エディタで編集+直接保存という流れがメインになりそうです。&lt;/p&gt;

&lt;p&gt;さてさて、特にカスタムフィードの普及以降、MTはブログツールではなくCMSであるという考えがようやく認知されはじめ、SixApartのwebでも事例として紹介されていますが、最近の個人的にはもう少しプリミティブな機能で見ており、「MT = 標準的に設計されたDBスキーマ + カスタマイズ可能な管理画面セット + インターフェイス(Atom or XML-RPC)」である、という認識を持ちながらいろいろと活用を考えています。そんな話はまた追々。&lt;/p&gt;
        
    &lt;img src="http://feeds.feedburner.com/~r/u39technik/~4/eyczkAfQnpU" height="1" width="1"/&gt;</content>
<feedburner:origLink>http://tech.u39.info/997</feedburner:origLink></entry>

</feed>

