サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
アメリカ大統領選
blog.katsuma.tv
唐突の約1年ぶりのエントリーになりますが、itunes-clientの親戚みたいなかんじのkeynote-clientを作ってみました。 Github RubyGem これは何? itunes-clientと同様、高レベル(のはず)なAPIでKeynoteを操作できます。たとえばこんなかんじ。 require 'keynote-client' # インストール済のテーマ一覧を取得 themes = Keynote::Theme.find_by(:all) # 特定の名前のテーマを取得 theme = Keynote::Theme.find_by(name: 'cookpad').first # テーマを指定して新しいドキュメントを作成 doc = Keynote::Document.new(theme: theme, file_path: '/path/to/slide_name.key'
travis-blink1 これは何? blink(1)という、USB接続で発光するガジェットをhmskさんからいただいたので、遊びでつくってみたgemです。 指定したgithubのプロジェクトについて、TravisCIの結果を発光して通知してくれるものです。CIが実行中のときは黄色で点滅、テストに失敗したときは赤色で点滅、テストが通ったときは緑で発光します。 動作の様子はこんなかんじ。 テスト失敗時 テスト成功時 blink(1)がおもしろいのは、プログラマブルに発光できること。色や点滅時間など、ことこまかく調整できるので、任意のイベントの通知として発光させることが可能になります。 いろんな言語からblink(1)のAPIを叩くクライアントがあるのですが、rubyだとrb-blink1がひとまずよさそう。travis-blink1でも内部で利用しています。 とりあえずチカチカさせるには、
TokyuRubyKaigi07でitunes-clientの発表をしました。 Rubyを使わずにiTunesを操作していいのは小学生までですよね!!1 あと、スライドの中でいろいろ動画をいれていたのですが、それもあわせて公開しておきます。 Itunes::Track.find_by Itunes::Track#play/pause/stop Itunes::Player.add / Itunes::Track#update
去年の秋頃、友人経由で、Fishmansファンのためのイベント「お彼岸ナイト」を開催しているALOHA FISHMANSの人たちを紹介してもらったのですが、何か僕で手伝えることがあれば、、というわけでサイトのフルリニューアルを手伝わせていただきました。 ALOHA FISHMANS 今回利用した技術としては フロントエンド middleman middleman-blog Haml Sass Foundation バックエンド Sinatra インフラ さくらのVPS nginx unicorn unicorn-worker-killer コード管理 github(のプライベートレポジトリ) な、感じ。 今回、このリニューアルでいろいろハマったところや工夫できたことがあったので、もろもろまとめたいと思います。 CSSフレームワーク 以前のサイトは、PCでの閲覧のみ意識していたような作りにな
JISA(情報サービス産業協会)の要求工学技術部会で、クックパッドのものづくりについて発表をしてきました。 内容としては、ここ1年ほどのサービス開発のフローをざっとまとめたものになっています。 ひょんなこと(WEB+DB PRESSの記事をご覧になられていた模様)から南山大学の青山先生にお声がけいただいて参加することになりましたが、普段は触れることがない世界に入ることができてとても新鮮でした。 「要求工学」という存在もまったく知らなかった初心者がその筋のトップの方々の前に現れてWebサービスについてしゃべる、、、という割と無茶な感じではあったのですが、質疑応答でも鋭いコメントをもいただきつつ、ディスカッションもできて、有意義な時間を過ごさせていただきました。こういう場があると、自分たちの考え方を振り返るいい機会になりますね。
相変わらずの週末RubyMotion野郎な日々です。 前回の記事の中でMacBaconにPull Request送った話を書きましたが、本家のRubyMotion自体とは実装が分かれていることに気づいたので、改めてPull Requstを送ることにしました。(実質同じ内容) Add context method as describe alias 実はこのPRなかなかマージされるどころか一切反応がないまま数週間放置されていました。つついていいのかどうなのか温度感もわからないままムーと唸っていたのですが、なんとなく唐突にtwitter経由で確認してもらうようにお願いしてみました。突然のPR確認依頼。 Hi @RubyMotion could you check my pull request? http://t.co/WNVGuA1q4z — ryo katsuma (@ryo_katsum
身の回りのiTunes関連で書きたいコードはtaifu, musical, itunes-clientあたりが落ち着いて一段落しました。 そろそろここらでiOSアプリを書けるようになりたいなぁ、でもObjective-Cをゼロから学ぶのもなかなか時間かかりそうだなぁ、、ともやもやしていたところ巷で噂のRubyMotionの存在を思い出したので、週末軽く手を出してみました。 RubyMotionについて細かな説明は省きますが、要するにRubyでネイティブのiOSアプリを作れるコンパイラ、テストスイートなどのツール群です。 Xcodeを(インストールはされていないとダメですが)起動しなくても、ターミナル+好きなエディタでサクサクとTDDでiOSアプリを書けるのが非常に良さそうです。ひとまずこの記事がいい感じにまとまってて良さそうです。 MacRubyがiOSに来た!RubyでiOSのネイティブ
@k_katsumi経由で話題のLeap Motionを購入したので、ひとまずiTunesを操作できるものをRubyで作ってみました。 https://github.com/katsuma/leap_tunes デモムービーはこんなかんじです。 5本指を差し出すことでトラックの再生/一時停止 2本指を差し出すことで次のトラックを再生 が可能です。 WebSocket API Leap MotionのSDKを利用することで、指の動きの情報をAPI経由で取得できる。。はずなのですが、いくらやっても情報が取得できませんでした。おそらく設定を何かミスってるのでしょうが。。たとえばこれらのgemが動作しませんでした。 https://github.com/glejeune/ruby-leap-motion https://github.com/tenderlove/leap_motion この問題は
SiriProxyのプラグインとしてSiriで家電を操作するSiriProxy-iRemocon で、Siriの入力を赤外線に変換して家電を操作することを試みましたが、小ネタとしてTweetを入力にすることも試してみました。「エアコンをつけて」「エアコンを消して」のTweetで僕の部屋のエアコンを操作できます。 twitter-iremocon TwitterのStreamAPIってなんだかんだで実際に使ったことが無かったのでその使い方の勉強も兼ねて。 TweetStreamはめちゃめちゃ便利ですが、Ruby2.0でうまく動かないIssueに気づくまでかなり時間を無駄にしました。。 コードはめちゃめちゃシンプルに書いたので、現状は僕がFollowしている人が誰でもウチのエアコンを操作できちゃうんですけど、まー面白いからヨシとしてます。Timelineに出てきた文字列に「エアコン」でマッチさ
TokyuRuby会議06で「Siri and Ruby」というタイトルでLTをしてきました。 今年に入ってからSiriProxyでいろいろ遊んできた内容を全部まとめた感じにしてみました。 どんな雰囲気か分からないまま参加したのでかなり探り探りでしたが、そこそこ笑いも取れていたっぽいので良かったかな?と。 何より司会 && 同僚の小川さん中心とした、とてもいい雰囲気のコミュニティを実感できたことが良かったです。かなり長時間ではありましたが、雰囲気が良く他の皆さんも面白ネタ豊富だったのですぐに終わった感じがしました。 また開催されることがあったら、次回もぜひ参加したいですね!
itunes-client って何? rubygems.org katsuma/itunes-client itunes-clientはローカルのiTunesの操作を簡単に扱う高レベルなAPIを提供するgemです。たとえばトラックの操作はこんな感じで行えます。 背景 似たようなことを実現するものとして、AppleEventをラップして高レベルのAPIを提供するrb-appscriptや、それを利用したiTunes専用のライブラリrb-itunes などがあります。ところが、iTunes10.6からSandboxが加わることで、これ系のライブラリは全部動作しなくなりました。 で、対応方法としてAppleScriptを介すことで回避はできるのですが、taifuやmusicalを書き直してる中で、何度も同じようなコードを書き続けているので、分離して管理したほうが実装しやすいなと思い、今回分離して
SiriProxy-Screenって何? SiriProxy-Screen またまたSiriProxyのプラグインの形で、Siriでスクリーンを操作できるものを作りました。と、いってもスクリーンセーバーを起動できるだけです。 画面を消して とSiriに言う事で、スクリーンセーバーを起動することができます。 これでマウスやキーボードが無いマシンでも安心してスクリーンセーバーを起動して離席することができますね。 作った動機 社内ブログで「スクリーンをすぐロックするTips」というエントリが上がり、なぜかこのネタに限って他のエンジニアがこぞって「俺ならこうする」みたいなネタを連投する流れに。 「スクリーンをすぐロックするTips(2)」「スクリーンをすぐロックするTips(3)」… のように、次々と新しい方法のエントリが上がり、謎の祭り状態に。 OS X スクリーンロック Advent Cale
以前にWeb+DB PRESSで執筆させていただいた 「クックパッドのサービス開発」 「リーンスタートアップ」 についての記事が再録されたWebサービス開発徹底攻略 (WEB+DB PRESS plus)が1/26に発売されます。 WEB+DB PRESS vol.66に寄稿しました WEB+DB PRESS vol.68に寄稿しました 基本的に上記内容の再掲載になるのですが、当時と現在と比較して差分が生じている箇所について一部修正されている箇所もあります。特にクックパッド特集では、 デザインの再考とそのプロセス オートスケーリングやVPCなどの最新インフラ事情 GitHub Enterpriseを始めとする技術力向上の仕組みづくり など、クックパッドの最新の開発事情について@mirakuiさんが新規で書きおろしの記事も追加されてあって、こちらも身内ながら読み応えがありました。(tofuが
1/23に「すべての人に知っておいてほしい JavaScriptの基本原則」というデザイナさん向けのJavaScriptの本が発売されます。 「本職はJavaScriptなわけでもないのですが。。」と恐縮しつつ、業務の内容に一番近いjQueryの章の執筆をさせていただきました。 僕の担当した箇所は、こんな感じの内容になっています。 なぜjQueryが使われるのか jQueryの基本的な使い方 jQueryの応用的な使い方 jQuery高速化のポイント jQueryとスマートフォン Column jQueryの今後 デザイナさん向けということで、全体的に基本的な内容が多めにはなっていますが、それでもスマートフォンまわりの話なんかは僕も知らなかったことも多かったし、エンジニアにとっても最近のトレンドをざっと見渡すにはいい1冊になっていると思います。 ぜひ書店で見かけた際には、手に取っていただけ
SiriProxy-iRemoconって何? SiriProxy-iRemocon SiriProxyのプラグインの形で、Siriで家電を操作できるものを作りました。今のところ電気のON/OFFだけですが、こんな感じで ライトを付けて ライトを消して とSiriに言う事で、部屋の電気を操作できます。 (2013.01.14追記) エアコンのON/OFFの様子も追加しました。 部屋の電気の操作ってどうやってるの?? このブログでは定番になってきましたが、やはりiRemoconを利用しています。詳しくはこちらをどうぞ。 ネット上で話題になっている番組に自動的にTVのチャンネルを変えるpop-zap SiriProxyって何? SiriProxyはその名のごとくSiriのProxyサーバで、プラグイン形式で質問文に対して独自の処理を追加することができるものです。Readmeがしっかり書かれている
明けましておめでとうございます。 年も明けたことだし、意識高めにRuby2.0+Rails4な(スケルトンの)アプリを作成しました。 roomkeepr 我が家はiRemoconを使って家電を管理しているのですが、テンプレートを変更するのがあまりに面倒なので全部Webベースにしちゃえばいいや、と思ってせっかくなので最新のエッジな環境で作ってみよう!とおもった次第です。実際、Sinatraで十分なんだけど。。 微妙にハマる個所もありましたが、rspecでテストが動くところまで確認できました。 以下、そこまでのメモです。 Ruby2.0 RVMでpreview2版がインストールできます。 まずは、ビルドツールを最新にしておきます。Homebrewを利用している場合はこんなかんじ。 brew update brew tap homebrew/dupes brew install autoconf
<h3>注意</h3> <p>本内容は、自身で著作権を有するDVDをAppleTVで再生する場合のみ参考ください。</p> <h3>手順</h3> <p>ffmegはhomebrewで最新版に上げておきます。手元のバージョンは0.11.1でした。</p> <p> $ffmpeg ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers built on Jul 28 2012 15:27:19 with clang 4.0 ((tags/Apple/clang-421.0.57)) configuration: --prefix=/usr/local/Cellar/ffmpeg/0.11.1 --enable-shared --enable-gpl --enable-version3 --enable-nonfr
同僚、兼GXEBオーガナイザーの高本さんに誘われて、GXEB#05にスピーカーとして参加してきました。 当日は、最近つくったpop-zapの発表を。あわせて、今回のGXEBにあわせていくつか改良をしたので、その内容をふまえたものにしました。改良した内容として チャンネル変更の精度の向上 チャンネル変更時の音声ガイダンス などがあります。発表資料はこんなかんじ。 GXEBは、参加したことなかったものの、会のヤバそうな温度感だけは理解していたので、どう臨むかかなり悩んだのですが、まーなんとか最低限の仕事は果たせたかな、、と思います。どの発表も面白かったですが、中でもTokyo Interactive Spam & Phishing Awardはかなり面白すぎました。アレはまじでもう一度全部見直したい。。! と、いうわけで誘っていただいた高本さん、発表を聞いてくださった皆さん、どうもありがとうご
最近更新されたiTunes10.6.3からMountain Lion対応としてsandboxのコードが入っている様子。結果、なんとなく動いていたrb-appscriptを利用してrubyからiTunesを動かすことができなくなっています。(参考:iTunes 10.6.3 changes AppleScript interface?) 結果、musicalもtaifuも動かなくなってすごい不便。。。そもそもrb-appscriptはもう開発を停止したようだし、似たことをやるなら素のAppleScriptを書くか、Objective-Cで書きなおすかをしないとダメっぽいです。うーむ、残念。。というかなんとかせねば。
<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>作
<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/
<p> このご時世、<a href="http://vps.sakura.ad.jp/">VPS</a>でも<a href="http://cloud.sakura.ad.jp/">クラウド</a>でもなく、さくらインターネットの<a href="http://www.sakura.ne.jp/">レンタルサーバ</a>でCGIを動かす必要があったので、その備忘録。KENT-WEBみたいなかんじのPerlでもよかったのですが、せっかくなのでモダンな環境を用意してSinatraで動かしてみました。</p> <h2>rvm+Ruby1.9.3のインストール</h2> <p> さくらでRubyをインストールするときは、googleで調べるかぎりソースからコンパイルして導入しているケースが多いのですが、面倒くさいだけなのでrvmを利用します。特に変わった設定は不要で、いつも通りの感じでインストール
ifconfigでもちろん取れるけど、情報量多すぎるのでIPアドレスがどこに書かれてるか探してしまうCUI素人としては、極限まで情報量削ってもっと便利にしたい。と、いうことでこんなのを最近使ってます。
<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という
同僚のhmskさんから献本いただいたウェブオペレーション、なかなかまとまった時間が取れていなかったのですが、今週やっと読み終えました。 日本の料理のインフラ 去年、hmskさんが執筆しているときから内容については大筋把握はしていたのですが、 改めてhmskさんが寄稿された18章から読みなおしました。 こういう形で自分の会社のサービスについて、かなり細かな内部なことを客観的に読むことはほとんどないので、 「あぁインフラモニタあるよね。このウィンドウも入社時と比べて種類が増えたもんだなぁ」なんてしみじみ思ったり、 (hmskさん本人も言及されていますが)「いやいやVarnishいま使ってるよねw」なんてにこやかな感じで読んでいたのですが、 フと目にとまったのが「18.7章 抱える課題」。そこにはこうあります。 現在クックパッドのインフラチームが唯一抱えている問題は、インフラチーム外との情報共有
jQuery1.5から追加されたjquery.deferred。どんなものなのかはなんとなく理解していたのですが、全く触ったことがなかったので練習がてら、このblogのトップページにあるFlickrの最新画像サムネイル表示ライブラリを、jquery.deferredを利用したjquery.pluginとして書きなおしてみました。 jquery.flickr.js 利用方法 jquery(1.5)以上と、当jsをロードしておいた状態で、 $('#foo').flickr({ user_name: 'katsuma'}); こんなかんじで最新画像のサムネイルがロードされます(デフォルトでは6枚)。Topページもこのシンプルな方法でロードさせています。 枚数を変更したいときは $('#foo').flickr({ user_name: 'katsuma', view_num: 3 }); こんな
CSSでDOM要素に対してアルファフィルターを適用させたいときは、クロスブラウザを意識すると次のような記述になると思います。 もうすこし古いMozilla系ブラウザを対象にするなら-moz-opacityの定義も追加してあげるとことになりますが、 今回はIEに絞った話のため、そのあたりは割愛します。 element { filter: alpha(opacity=0); /* IE / opacity: 0; / その他のモダンブラウザ */ } さて、普段は特に何も考えずにfilter:alpha~と記述していたのですが、 実はIEはある条件下によってまったくfilterが効かない場合があります。 ActiveXが無効 そもそもの話ですが、filterはActiveXを利用したレンダリングを行っています。 そのため、そもそもセキュリティの設定などでActiveXを無効にされていると、fi
(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
半年ぶりの更新ですが、特に脈略もなく唐突にXcodeとopenFrameworksの話をします。 最近、趣味でopenFrameworksを触りだしたのですが、XCodeの開発環境を触るのも1年ぶりだし、そもそもC++を書くのは数年ぶりすぎて前に書いたのいつだっけ、、というくらいのレベルでした。 そんな感じなので、まずは開発環境を完璧にしようと思った矢先、出鼻をくじかれる問題が。 テンプレートから作成したプロジェクトがビルドできない openFrameworkは2011年1月16日時点でバージョン0.062が最新となっています。 ダウンロードページから最新ファイルを解凍すると、Xcode用のテンプレートディレクトリ「xcode templates」が内包されてあり、このディレクトリをXcodeが起動していないときに下記のいずれかに配置すると、 Xcode側で認識されopenFramewor
次のページ
このページを最初にブックマークしてみませんか?
『blog.katsuma.tv』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く