サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
blog.katsuma.tv
(2008.12.19 22:00追記) peer IDをnear IDに修正 先日のAdobe MAXでFlashの新しいプロトコルRTMFPを扱うことができるサービス「Stratus」について発表がありました。これは簡単に言うと、ブラウザで何もインストールすることなくP2Pを実現できる神がかったプロトコル(=RTMFP)と、RTMFPをサポートするサービス(=Stratus)、という位置づけです。上の写真は実際にStratusを介してRTMFPによる通信で僕の家とオフィス(夜中なので真っ暗ですね)をつないでいるものです。 これらについては、Adobe Labsでの次の文章が非常に分かりやすいです。 Stratus service for developing end-to-end applications using RTMFP in Flash Player で、この文章があまりに分
greeさんで開催されたKey Value Store勉強会に行ってきました。 時間にして4時間超え、内容も国内のKey-Value Storeなソフトウェアの最前線の話ばかりで相当なボリューム。以下、メモってたのを残しておきたいと思います。(誤字、脱字、内容に誤りを含むものなどありましたらお伝えください)また、発表者の方やプロダクトについて、ざっくり調べてURL見つけられたものについてはリンク張っています。 森さん / 末永さん groonga Sennaの後継エンジン 融通が効かないのがSennaのデメリット スコア算出式のカスタマイズなど Sennaの転置索引 索引の構成部品を自由に組み合わせて使える APIもいろいろ QL DB Low Level memcached互換のkey-value store バイナリのみ対応 計測 クライアント memstorm-0.6.8 mem
先週高校の友達が家に泊まりにきたとき、バランスWiiボードを見て「これでGoogleマップ操作できたら面白そうじゃない?」とぽろっと言ったのをきっかけに「あれ、それできそうだぞ」と思ったので勢いで作ってみました。 動作としては直感的なものになっていて、足踏みするとどんどん進んでいって、左右に重心傾けると向きが変わって前後に重心を傾けるとズームが変わります。百聞は一見にしかずで、映像見てもらったほうが分かりやすいかと思います。 Google Street View by Wii Balance Board from katsuma on Vimeo. 構成 全体の構成としては次のもので成り立っています。 バランスWiiボード Bluetoothレシーバ(iMac) 信号解析モジュール(Java) ローカルWebサーバ(Jetty) Javascript(JSONP) Webブラウザ(出力)
SiriProxy-iRemoconって何? SiriProxy-iRemocon SiriProxyのプラグインの形で、Siriで家電を操作できるものを作りました。今のところ電気のON/OFFだけですが、こんな感じで ライトを付けて ライトを消して とSiriに言う事で、部屋の電気を操作できます。 (2013.01.14追記) エアコンのON/OFFの様子も追加しました。 部屋の電気の操作ってどうやってるの?? このブログでは定番になってきましたが、やはりiRemoconを利用しています。詳しくはこちらをどうぞ。 ネット上で話題になっている番組に自動的にTVのチャンネルを変えるpop-zap SiriProxyって何? SiriProxyはその名のごとくSiriのProxyサーバで、プラグイン形式で質問文に対して独自の処理を追加することができるものです。Readmeがしっかり書かれている
クレジットカード決済代行サービスは少しググるだけでも数多く見つかりますが、小額決済の場合はPaypalがなかなか便利です。Paypal は、主に次のような利点があります。 月々の料金なし 設定料金なし ゲートウェイ料金なし 無料のeBay支払いツールとウェブ支払いツール 不正防止システムの追加料金なし また、ここによると国内代金受領時の手数料も比較的低めに設定されて、魅力的です。 じゃダメな点は何だろう、、、といろいろ考えたのですが、利用側の立場だと特にダメな点は見つからないのが本音です。強いてあげるとすると、日本ではまだそこまで広く普及したサービスではないので、ユーザがやや戸惑う可能性がある??と、いうことくらいです。それでも、Webページの表示は多くの言語に対応していますし、非Paypalユーザもアカウントを作ることなく決済ができるなど、非常に便利なサービスだと思います。 今回は、そん
もう、いろんなニュースサイトで言われていますが、 Yahooからページパフォーマンス計測ツールの「YSlow for Firebug」が リリースされました。Firebugをインストールしている上で、YSlowをインストールすると、Webサイトの高速化を行うためのポイントと、 現状についてのポイント表示を行ってくれます。 これ、実際に試してみるとよく分かるのですが、いかに工夫をしていないサイトは、改善の余地があり余っているか。。 ほんと身を引き締められます。ちなみにYSlowでは次の項目をポイントに挙げています。 Make Fewer HTTP Requests Use a Content Delivery Network Add an Expires Header Gzip Components Put CSS at the Top Move Scripts to the Bottom
いろんなBlog巡回してると、どこもかしこもgit, gitなのでアカウントだけ作って放置してたgithubで昔に書いたちょこちょこしたコードをコミットしてみました。 github/katsuma katsuma / mt-delicious-bookmark-counter katsuma / flickr-gadget katsuma / sbm-comment さすがにはじめてのgitは戸惑うことばかりだったので、メモを残しておきたいと思います。 gitのインストール 作業OSはMac OSXです。ソースからもインストールできますが、管理しやすいようにMac portsでインストールしてしまいます。 sudo port -d sync # 同期 port search git # cogito, git-core, stgit, cgitあたりがあるはず. git-coreを選択 p
前回、JavaScriptでMap Reduceのコードが書けるHadoop Streamingについて紹介しました。 標準入出力さえサポートされてあれば、任意のコードでMap Reduuceの処理が書ける、というものでしたが、エンジニアはそもそも面倒くさがり。コードも書くのも面倒です。 と、いうわけで、今回はもうコードすら書かずにSQLライクでMap ReduceできるHiveというプロダクトについて、まとめたいと思います。 Hive Hiveとは、簡単に言うとHadoop上で動作するRDBのようなものです。 HDFSなどの分散ファイルシステム上に存在するデータに対して、HiveQLというSQLライクな言語で操作できます。 で、面白いのがHiveQLの操作は基本的にMap Reduceのラッパーになっていること。 要するに、SELECT文実行すると裏でMap&Reduceのタスクが走り出
(2011/1/23 23:00追記) macrubycはLLVMから入れなくてもmacrubyをインストールするだけで一緒にインストールされます。下記内容は誤りを含んでいますのでご注意ください。ご指摘いただいたwatson1978さん、ありがとうございました。 最近Macアプリケーションが気になっていて、Cocoa周りの話を調べています。その一環でRubyでMacアプリを作る方法についての話です。 MacRuby Mac上でRubyでアプリケーションを作る場合、最初からインストールされてあるRubyCocoaと、最近盛り上がっているMacRubyの2通りの手段があります。 どちらもCocoaを含むいろんなフレームワークをRubyから直接叩けるのですが、RubyCocoaはプロキシオブジェクトを介してCocoaフレームワークを叩くのに対して、MacRubyはプロキシを必要とせずに直接Obj
数多くの動画フォーマット、コーデックに幅広く対応したアプリケーションといえばffmpegがやはり一番有名だと思います。事実、ffmpegベースのアプリケーションも多く出回っていて、mplyer, 携帯動画変換君なんかは有名だと思います。 キャリア共通仕様 そんなffmpegですが、Linuxで1からビルドを行おうとすると、結構ハマるポイントが多いです。またバージョンによってビルド方法が異なったり、1つ違うことを行おうとするとコーデックやライブラリが不足したりし、なかなかうまくいかないことが多かったりします。そこで、今回は「3G携帯の動画を扱う」ことに特化したffmpegのビルド方法をまとめてみたいと思います。3G携帯と一口にいってもキャリアごとに利用できるフォーマットやコーデックも差異があるのですが、次のポイントを抑えれば各キャリアの(ほぼ)すべての端末に対応した動画ファイルを扱うことがで
身内で勉強会のようなものを行う機会があったので、amachangのJavaScriptによるプレゼンテーションライブラリのS6を利用してみました。 すぐに直感的に利用できる部分もある一方で、スタイルの反映のさせ方でハマった点もあったんで、そのあたりをまとめておこうと思います。 ファイル構成 S6のファイルはamachangのプレゼンページからソースが取得できます。たとえばここから。(まとまった公式ページってどこかにあるのかな?)S6本体のJavaScriptは、ページングやアクション処理などがまとまって定義されています。「右ボタン」で次のページ、「左ボタン」で前のページに戻る、などのイベント処理はHTMLの方で記述されています。 スライドを作っていくには、本体のS6自体に手を入れることは必要なく、HTMLにどんどんスライド内容と、必要があればエフェクト処理とスタイルの設定を追記していきます
YSlowの評価に対する改善シリーズ、その2です。mod_deflateを利用してHTTPレスポンスを圧縮させる方法はこちらから。 YSlow対策でmod_deflateを利用してHTTPレスポンスをgzip圧縮 前回で、総合ポイントが「F」だったサイトをレスポンス圧縮することで、総合ポイントを「D」にまで上げることができました。今回は、残りの「F」項目の中の「Add an Expires header」についての処理を行いたいと思います。 YSlowの公式サイトによると、「リッチサイトはCSSやらJSやら多くのファイルをロードするために、リクエスト回数も増えちゃうよね。でも変更が少ないファイルについてはExpiresヘッダを追加することで、ユーザにキャッシュさせ、リクエスト回数を減らすことができるよ(大雑把な意訳)」と、あります。つまり、Apache側でExpiresヘッダをレスポンスに
GmailやLDRなどもそうですが、最近はWebアプリケーションでも「起動させっぱなし」を基本路線に置いているものも増えてきています。そういうときにポイントとなるのが「(サーバ側で変更が発生したときに)サーバからの通知をブラウザにどうやって知らせるか?」ということ。ブラウザでページを開かれている場合だと、変更箇所を専用のボックスエリアを設けて、適当に目立たせておけばいいのですが、別タブで開かれている場合などには、タブをユーザが切り替えるまでは、その変更を通知することができません。そんなときに、「差分の大きな複数のfavicon(*)を動的に変更させることで通知と同等の効果が期待できないか?」という話。(全然違うfaviconをアニメーションさせることで目立たせられないか?という狙い) faviconの変更は割と単純 まずfaviconが動的に変更させることができないか?の検証ページを作って
JISA(情報サービス産業協会)の要求工学技術部会で、クックパッドのものづくりについて発表をしてきました。 内容としては、ここ1年ほどのサービス開発のフローをざっとまとめたものになっています。 ひょんなこと(WEB+DB PRESSの記事をご覧になられていた模様)から南山大学の青山先生にお声がけいただいて参加することになりましたが、普段は触れることがない世界に入ることができてとても新鮮でした。 「要求工学」という存在もまったく知らなかった初心者がその筋のトップの方々の前に現れてWebサービスについてしゃべる、、、という割と無茶な感じではあったのですが、質疑応答でも鋭いコメントをもいただきつつ、ディスカッションもできて、有意義な時間を過ごさせていただきました。こういう場があると、自分たちの考え方を振り返るいい機会になりますね。
<p>pop-zapというライブラリを作りました。</p> <p> <ul> <li><a href="https://github.com/katsuma/pop-zap">pop-zap</a></li> </ul> </p> <h3>これは何?</h3> <p>2ちゃんねるの実況板で話題になっているチャンネルに、TVのチャンネルを定期的に自動で切り替えるrubyスクリプトです。</p> <p>「<a href="http://tv2ch.nukos.net/">勝手に2ちゃんねる勢いグラフ</a>」さんのデータを参照させていただいて、その中から一番「勢い」がある(盛り上がっている)チャンネルを取得し、 該当するTVのチャンネルを変更する信号を発信させています。チャンネル変更時はgrowlで再生する番組名とチャンネル名が表示され、内容がすぐに分かるようになっています。</p> <p>作
今回もPaypalシリーズの続きです。前回まではこれらのエントリーをご参照ください。 Paypalを使った「今すぐ購入」ボタンの作り方 Paypal「PDT」「IPN」を使った決済とバックエンドの統合(1) さて、前回まででPaypalを利用した場合の自サイトとPaypalサイトとのデータの流れについて、概略を説明しました。今回はその中でPDT、IPNを実際に実装する際の注意点についてまとめておきたいと思います。今回の話は、主に次のPDFファイルの内容を重要な点だけまとめ直して、ハマった点を追記したものなので、あわせて読まれることをお勧めします。 注文管理インテグレーションガイド Sandbox ユーザーガイド Sandbox いきなり本物のクレジットカード情報でやりとりをするわけにはいかないので、閉じられたテスト環境内でまずは実験を行うことになります。Paypalは、このテスト環境を提供
クックパッドさん主催のRuby on Railsセミナーに参加してきました。Railsは仕事では利用していないのですが、CakePHPなんかはRailsと似たところがあるし、スケーリングの話なんかは参考になるところもあるかな、と思い参加。CTOの橋本健太さんのトークのみ、という内容だったのですがRailsに留まらない「クックパッドとしてのものづくりに対する考え方」は非常に興味深い内容がふんだんでした。以下、そのメモです。(誤字とかRails系の用語は間違っているものもあるかも、、) クックパッド 毎日の料理を楽しみにすることで心からの笑顔を増やす これだけやる! 世界で一番!生活に役立つサイト作り 月刊ユーザ524万人 四国の人口よりおおい! 20,30代女性中心 20代は4人に1人が見てる! Railsサイト中世界8位(ユーザ数) 月刊PV2.8億 PV的にはRailsサイトで世界3位
久々のBlog更新、というわけでリハビリがてらJavaScriptで軽く遊んでみたいと思います。 いま、巷で流行ってるMapReduceのオープンソース実装Hadoopは「Hadoop Streaming」という標準入出力でデータのやりとりができる仕組みを使って、 Hadoopの実装言語であるJavaにとらわれず、RubyやPerlなど他の言語でもMap+Reduceの処理ができることが1つのウリになっています。 で、僕たちwebエンジニアはみんなJavaScript大好きなので、「JavaScriptでもMap Reduceやりたい!」という流れになるのは必然です。 そこで、試行錯誤でいろいろ試してみると割とさっくり出来たのでそのメモを残しておきたいと思います。 環境の整備 Mac OSX上のVMWare FusionにCentOSの仮想マシンを2台立ち上げて、環境セットアップしました。
Cakeでキャッシュ周りの調査をしていたら、モデルのメソッドの実行結果をキャッシュさせるbehaviorがあるのを見つけました。 CakePHP1.2 Behaviorでモデルのメソッドキャッシュを行う これが相当いい感じなので、その利点や導入方法についてまとめておきたいと思います。 コントローラのスリム化 MVCモデルでキャッシュを利用しようという話になると、大抵Controllerでキャッシュヒットの有無を確認して、ヒットしない場合キャッシュをリセットする、というロジックがまず頭に浮かぶと思います。 if (($posts = Cache::read('posts')) === false) { $posts = $this->Post->find('all'); Cache::write('posts', $posts); } ただ、コントローラで毎回このようなキャッシュヒットを確認
Flash Media Serverの(ほぼ)完璧なクローンとして、Wowza Media Serverというものがあります。元Adobe(しかもFMS担当だった気が)の社員がスピンアウトして立ち上げたもので、Javaで書かれていてMacでも動いたり、614,250円払わなきゃオリジン、エッジサーバの構成ができないFMSと違って$995で全てがそろってしまうナイスなストリーミングサーバです。詳細な違いは糸柳さんが詳しい説明を書いてくださっているので、そちらが大変参考になります。 ちなみに同じくFlashのストリーミングサーバでオープンソース版でRed5もありますが、以前のエントリーのとおり、FlashPlayerのバージョンで動作が異なったり、SharedObjectの挙動が怪しいときがあったりと、まだまだ安定さは欠ける模様です。 Wowza Media Serverのインストール このW
前回のemacs導入時にtomoyaさんにコメントいただいたり、negipoさんにもanything.elいれるといいよー!てずっと言われてて、軽く試してもなんかうまく導入できなくて途方に暮れて放置してたところ、この週末に時間とって試してみるとすんなり入りました。得てしてそういうものですよね。。あと、あわせてrails.el, anything-rcodetools.elなんかも入れてみました。その導入メモを残しておきたいと思います。 anything.el ここからanything.elをDL.ロードパスが通ってるディレクトリにつっこみます。僕はここのサイトの影響で .emacs.d/elisp/ 以下につっこんでます。ロードパスを変えたいときは、.emacs.elに (setq load-path (cons "~/path/to/loadpath" load-path)) みたいな記
CSSでDOM要素に対してアルファフィルターを適用させたいときは、クロスブラウザを意識すると次のような記述になると思います。 もうすこし古いMozilla系ブラウザを対象にするなら-moz-opacityの定義も追加してあげるとことになりますが、 今回はIEに絞った話のため、そのあたりは割愛します。 element { filter: alpha(opacity=0); /* IE / opacity: 0; / その他のモダンブラウザ */ } さて、普段は特に何も考えずにfilter:alpha~と記述していたのですが、 実はIEはある条件下によってまったくfilterが効かない場合があります。 ActiveXが無効 そもそもの話ですが、filterはActiveXを利用したレンダリングを行っています。 そのため、そもそもセキュリティの設定などでActiveXを無効にされていると、fi
前回「Mac OSXにredisをインストール」で、redisを動かす環境まではできたので、せっかくなんでテスト的に何かサービスを作ってみよう、ということでTwitterクローンのRedTweetを作ってみました。 RedTweet redisを使ったTwitterクローンは、PHP版のRetwisと、それをSinatraで書き直したRetwis-RBがあるのですが、サンプルコードはいくらっても世の中に少しは役立つだろうと思ってRails版で実装してみました。オンラインで動作できる環境はないので、git cloneしてscript/serverで手元の起動で確認ください、、と投げやり気味ですみません。とりあえず次の項目は一通り実装しています。 ユーザID発行 Login / Logout Follow / Remove 自分のTimeline, Public Timeline, 各ユーザの
(注意:まだ書きかけです→2008.06.18 書き終わりました) 2008.06.18現在、CakePHP1.2のrc版がリリースされてあり、1.1でアプリケーションを作っていた人もそろそろ1.2に上げようかな、、なんて思っているんじゃないかと思います。最近仕事でさくっとCakePHP1.1で作ったサイトがあったのですが、リリースが落ち着いた瞬間を狙って一気に1.2に上げてみました。そのときのメモを残しておきます。 今回は1.2.0.7125 RC1を利用しています。なお、この移行作業は「とりあえず警告が出ないレベルで正常動作する」ことを目的にして作業を行っています。なので、実際は非推奨の方法も混ざっていることもあるかと思いますが、ご注意ください。 cakeディレクトリ ここは全部丸ごと入れ替えます。オリジナルのcakeディレクトリ丸ごと削除→1.2のcakeディレクトリをコピー。 vi
[09/04/07 16:00 追記] embedでの呼び出し結果の表に誤りがあったので訂正しました。 世間ではiPhone OS3.0で騒がれていますが、そんな中メインストリームとは逆行してJava Appletについていろいろ調べていました。 情報が少なすぎる 世間的にはJava Appletの話なんて枯れすぎてる話題なので、いくら調べても2000年過ぎの情報ばかりが大半です。「ただしこの方法ではNetscape4.0以上の環境では。。。」とか言われても困るわけです。今どきのWebアプリケーションらしくJavaScriptと連携させるにはどうすればいいんでしょうか。そもそもappletのロード方法1つとってもSafariやChromeなんかのモダンブラウザに対応したロード方法とかまったくわかりません。あとJava Runtimeのインストールチェックなんてどうすればいいのでしょうか??
<p> githubにはwebhooks機能があり、これを利用することで、git pushすると同時に様々な処理を実行することができます。たとえば、サイトをgithubで丸ごと管理している場合、pushと同時にサイトを更新することも可能です。</p> 僕は趣味のとんかつサイトTON.KATSUma.tvを遊びで作っていますが、このサイトは今はgithubで管理して、手元でgit pushするとサイトが更新される仕組みにしています。id:viverさんが素晴らしい記事を書いて下さっていますが、今回はその復習的備忘録です。 <h2>Post-Receive URLs</h2> <p>webhooks機能を利用するためには、githubから送信されるHTTP POST命令の処理するWebサーバが必要になります。 僕は<a href="http://blog.katsuma.tv/2012/02/
前回のエントリー「Pyapalを使った「今すぐ購入」ボタンの作り方 」の続きです。今回、および次回ではPaypalの決済を終えた後に、Paypalからコールバックされる情報を元に、バックエンドとの統合方法、およびマルチバイトを扱う際の注意ポイントを解説していきます。 Paypalからコールバックされる仕掛けはPDT(支払いデータ転送)、およびIPN(即時支払い通知)の2種類があります。これらは一見似ているもので、実際コールバックされる内容はほぼ同じだったりするのですが、実はまったく違う仕掛けなものなので、どちらか一方だけを考慮してもダメで、両方のコールバックともに考慮すべきものです。これらの違いは次の通りです。 PDT PDT の主要機能は、買い手が支払い完了時に自Paypalのサイトから自サイトに自動的にリダイレクトされた時に、支払い取引の詳細を表示することです。つまり、Paypalと自
経緯は自分でもまったく分からないのですが、気づいたらMySQLのrootアカウントを削除してしまいました。普段は開発中のDBに対してselect, update, insert, deleteのみを許した限定的な権限のユーザでゴニョゴニョしていたので、いざ新規テーブルを作成しようかと思ったらrootでつなげない→途方に暮れる、ということになったわけです。 よくある事例としては「rootのパスワードを忘れました」ということはあるかと思うのですが、「rootアカウント自体を削除してしまいました」という事例はなかなか聞きません。と、いうわけで地味に対応が困ったのですが、何とか復旧できたのでそのメモを記しておきます。OSはFedora5です。 まず、起動しているmysqldを停止させます。Fedoraだと(*) /etc/init.d/mysqld stop で、停止します。 (*) 起動パスなど
<p><strong>musical</strong>というgemを作りました。</p> <ul> <li><a href="https://rubygems.org/gems/musical">musical</a></li> <li><a href="https://github.com/katsuma/musical">github</a></li> </ul> <h3>これは何?</h3> <p>「<a href="http://blog.katsuma.tv/2009/01/dvd_to_mp3.html">Mac OSXでライブDVDをmp3ファイルに変換</a>」にも書いたのですが、僕はアーティストのライブDVDを買って思う存分鑑賞した後は、mp3/AACに変換してiTunes/iPhoneで聴くという楽しみ方をよくしています。 ところが、この変換の際に肝である0SExという
次のページ
このページを最初にブックマークしてみませんか?
『blog.katsuma.tv』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く