手軽に chef-solo を実行するためにスケルトンを作ってくれるやつ
追記 2012/08/03:knife-solo という gem をインストールすると knife kitchen というコマンドが使えるようになるんだけど、こっちのほうが chef-solo のための豪華なスケルトンを作ってくれてよさそうかもです。
手軽に chef-solo を実行するためにスケルトンを作ってくれるやつ (ユースケース要検討) — Gist
Chef はとっつきにくいのがネックだなと思っていて、たとえば chef-solo を実行するのにもいちいち solo.rb と node.json を作って cookbooks ディレクトリを作って knife create cookbooks foo とかやらなければならないのがだるいから、その部分を自動化するスクリプトを書いた。
$ ruby chef-solo-skelton.rb foo ## chef-solo -c /Users/tily/foo/solo.rb -j /Users/tily/foo/node.json [Sun, 29 Jul 2012 12:43:15 +0900] INFO: *** Chef 0.10.8 *** [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Setting the run_list to [] from JSON [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Run List is [] [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Run List expands to [] [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Starting Chef Run for linwttaa.local [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Running start handlers [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Start handlers complete. [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Chef Run complete in 0.001156 seconds [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Running report handlers [Sun, 29 Jul 2012 12:43:19 +0900] INFO: Report handlers complete $ tree foo/ foo/ ├── cookbooks ├── node.json └── solo.rb 1 directory, 2 files
レシピを指定すると、自動で opscode 公式の cookbook をインストールしてくれたりもする。
ruby chef-solo-skelton.rb hoge apache2 php mysql
まだ使いやすいかよく分からないので、必要になったとき自分で使いつつエンハンスしたい。
クックパッドのレシピで分量を自由に変更できるブックマークレット
最近よくクックパッドのレシピを見て料理を作っているんだけど、作りたい分量が合わないとき頭で分量を計算しなおすのが面倒くさいので作りました。
ブックマークレットを起動すると「操作」エリアが追加され、テキストエリアに数字を入れて「倍」ボタンを押すと分量を変更してくれます。あと、おまけで「ヘルシーに」を押すと肉と油を減らしたり「うまそうに」を押すとその逆をやってくれたりする機能もつけてみました。
豚汁 100 人分とか巨大なケーキの分量を知ることができて便利だと思う (もちろん 0.5 とか入力して 4 人分を 2 人分に減らすこともできる)。ただ、レシピ掲載者のひとたちの表記ゆれを全部カバーできている自信が全然なくてうまく動かないことが多いかもです。
(サンプル画像としてプロの味!の豚汁 by Fumiaを使わせていただきました、問題があれば @tily までご連絡ください。)
(使ってみたレポートありがとうございます、使い方がよくわからない人は 料理レシピ「クックパッド(cookpad)」で分量を再計算ブックマークレットが便利すぎる!|アマモ場 をどうぞ。)
何?を/見?て-も何/か*思+い出*す
↓
似てるものを 2 つずつ投稿して共有するだけのウェブサービスを作った。上記は納豆の風味とコーヒーの香りが微妙に似ているということを表現しようとしてるけど、伝わってなさそう。
「A を B に空目した」とか「C さんはこの写真に写ってる原住民に似てる」とかポストしておもしろい感じになればいいなと思っているが、単に何かを 2 つ並べたいときに使えばいい気もする。oEmbed に対応しているので Flickr の画像や YouTube の動画を埋め込むこともできたりします。
特にたいしたことやってないけど、興味あったら使ってみてもらえるとうれしいです。不具合とかあったら Twitter 等で教えてもらえると助かります。
ひまあったらスライドショーモードとか、編集距離を計算して表示するのとかやりたいと思ってます。あと、下記は参考にさせてもらった意見やコード、いつもありがとうございます。
- Ernest Hemingway "I Guess Everything Reminds You of Something" (タイトル文言)
- youpy さんの unsearchable (タイトルの検索よけ)
- ucnv さんの unsearchable2 (タイトルの検索よけ 2)
- mala さんの 最速インターフェース研究会 :: 高橋メソッドなプレゼンツール (文字を大きく表示), あと oEmbed を教えてもらった
追記 (2014/07/16)
dotcloud (http://ermos.dotcloud.com/) から heroku (http://everythingremindsmeofsomething.herokuapp.com/) に移行したので URL を更新しました。
最近作ったものや書いた文章のまとめ (2010/05 〜 2011/12)
年末らしくまとめてみた。前回が 2010/05 だったのでそれ以降のまとめです。時系列に並べたらものすごくまとまりのない感じになったのでカテゴリに分けた。
音声処理
- 2011/02/27 tily/java-android-pixel-synthesizer - GitHub
- 2011/04/02 Twitter / @tily: タイプライターみたいな感じで音が出るテキストエリアを ...
- 2011/04/07 Flash のマイクから取得した波形データを HTML5 canvas に描画するやつ
- 2011/11/19 Twitter / @tily: JavaScript でブルーズを自動生成するやつ途 ...
- 2011/11/20 Twitter / @tily: ファミコンっぽい効果音でチャットできるやつ作った ( ...
- 2011/11/06 ブラウザ + WebSocket で電話する - PARAGRAPHS
画像処理
- 2010/05/12 face.com の顔認識 API + canvas で Google 画像検索に落書きする - PARAGRAPHS
- 2011/01/29 ぶっ壊れた写真しか撮れないカメラ (BrokenCamera for Android) - PARAGRAPHS
- 2011/01/30 glitch yesterday - PARAGRAPHS
- 2011/02/06 カメラを扱う Android アプリではまったところ - 文字 - はてな自習室
- 2011/02/14 BrokenCamera を修正して簡単にいろんな壊れ方を試せるようにした - PARAGRAPHS
- 2011/02/20 BrokenCamera for Android (Version 6) - PARAGRAPHS
物語自動生成
- 2011/11/21 日本語の物語っぽいテキストから登場人物を抽出する (適当) ― Gist
- 2011/08/03 マクガフィン自動生成 ― Gist
- 2011/08/10 架空のアーティスト自動生成 ― Gist
自然言語処理・言葉遊び
- 2010/05/15 喫茶店の名前変換
- 2010/06/10 なんでもバイト敬語っぽくするやつ
- 2010/06/19 なんでも lifehack っぽくするやつ
- 2010/09/29 tily/ruby-faker-japanese - GitHub
- 2011/11/17 日本語文書に出現するカタカナ語の TF/IDF を取得する ― Gist
- 2011/11/17 ニンジャスレイヤーの特徴的なカタカナ語ランキング (ベスト100) ― Gist
- 2011/12/07 Ruby で Double-Array を実装して Common-Prefix Search を試してみる - PARAGRAPHS
- 2011/03/06 無理矢理ニュースっぽく変換するやつ ― Gist
- 2011/08/01 日本語テキストから韻のふめる言葉を抜き出す - PARAGRAPHS
- 2011/08/13 なんでも性的にするやつ ― Gist
- 2011/08/14 なんでも美味そうにするやつ ― Gist
- 2011/10/14 tily/ruby-ja-sound-index - GitHub
- 2011/10/14 tily/ruby-ja-complex-word - GitHub
便利ツール
- 2010/07/18 リフレクション + runkit で既存のクラスをスタブ化する PHP ライブラリ - PARAGRAPHS
- 2010/10/17 GNU screen を簡単に外側から操作できるようにする Ruby ライブラリ easy-screen - PARAGRAPHS
- 2010/10/19 gist/gisty を利用した簡素なメモツール gistpad - PARAGRAPHS
- 2010/10/22 gistpad (2) スマートなファイル指定、自動コミット & プッシュ、ファイル重複時の候補表示、zsh によるファイル名補完 - PARAGRAPHS
- 2011/01/22 1 枚の Java ソースファイルだけで Android アプリを管理できるようにする rur コマンド - PARAGRAPHS
- 2011/03/31 Greasemonkey でインストール時にバイナリデータをサンプリングできるようにするやつ
- 2011/06/12 手動で変換しなくてもいい日本語入力 - PARAGRAPHS
- 2011/06/27 分布を表示してくれる grep - 文字 - はてな自習室
- 2011/09/19 Tumblr、ローカルの写真を複数ドラッグ&ドロップでアップロードできるようにする Greasemonkey スクリプト - 文字 - はてな自習室
- 2011/10/07 MongoDB シェルの printjson() を使いやすくする - 文字 - はてな自習室
- 2011/11/30 ページで使われている JavaScript と CSS の一覧を表示する Greasemonkey スクリプト - 文字 - はてな自習室
- 2011/11/24 tily/ruby-jhc - GitHub
- 2010/06/06 Twitter ボットのエンハンス - PARAGRAPHS
- 2010/10/27 tily/ruby-twdo - GitHub
- 2010/10/30 OAuth::CLI::Twitter - PARAGRAPHS
- 2010/11/13 Twitter へのポストをキューイングする Twiq - PARAGRAPHS
- 2011/11/16 Twitter の特定ユーザの 3200 発言を取得して YAML で保存する (適当) ― Gist
翻訳・文章
- 2010/05/30 EKEN M001 で始める Android アプリケーション開発 - PARAGRAPHS
- 2010/05/31 JGate (AppJet) の使い方 - PARAGRAPHS
- 2011/10/05 イベントログ収集ツール fluent を試しに使ってみる - 文字 - はてな自習室
- 2011/10/10 no.de の SmartMachine に mecab をインストールする - 文字 - はてな自習室
- 2011/11/13 サバクラ両方で動く JavaScript の大規模開発を行うために ― Gist
これだけ作ったのに翻訳した「サバクラ〜」が一番ブクマされてたりするんだけど、やっぱ翻訳するより作るほうがおもしろいのでもっと作りたい。
便利ツールに関しては、結構な数を作っているけどなかなか便利にならず、自分でも継続して使えているものがなくて残念。もっと既存のツールをたくさん使って便利さのセンスをよくしたい。あと、音声処理とか電子書籍の分野でいくつかアイデアがあるので必要な勉強をしてなるべく早く作りたい。
ちなみに今はなぜか Rails でウェブアプリケーションを作るのがナウな tily にバカウケしていて、年明けあたりにいくつかリリースしたいと思ってたりします。来年もよろしくお願いします。
ブラウザ + WebSocket で電話する
- http://tily.no.de/telephone
- トップページ、部屋とニックネームを決めて開始する
- http://tily.no.de/telephone/sandbox
- 手軽に試す用
電話というか音声チャットなんだけど、Flash のマイクでとった音声を WebSocket 経由で送信して、受け取った側では Web Audio API とか Audio Data API とかで再生するというのを作った。Firefox と Chrome で動く。
はずなんだけど、no.de の SmartMachine のスペックが低いせいか、遅延のあるせいか相手側の音声がブツブツ切れて聴こえてしまう…。ローカルではちゃんと音声チャットっぽいことができているんだけど。
なんか色々他の人のコードを使ったり参考にしたりしたので書いておきます。
- socket.io サンプルのチャットプログラム
- デザインとか文字チャット部分は基本的にサンプルをそのまま使わせていただいています
- こてさきAjax:WebSocket + node.jsでAudio Streaming - livedoor Blog(ブログ)
- 非常に短いコードから音楽を生成して再生するやつ - hitode909のダイアリー
- Web Audio API を利用している部分を参考にさせていただきました
- JavaScriptでリアルタイムに音を出すときに簡単便利なやつつくった - つまみ食う
- 今回は使っていないけど、Safari でも動くように pico player を使うようにしたい
- Beyond HTML5 - Implementing device and stream management in WebKit | Ericsson Labs
- Flash マイク + WebSocket とか過渡期っぽいので、早くこういうのが主要ブラウザに実装されるといいな
あとここらへんも。
日本語テキストから韻のふめる言葉を抜き出す
# Usage: ruby extract_rhyme.rb [-m (vowel|vowel_with_help|surface)] -n N /path/to/file.txt
カタカナまんま (デフォルト、-m surface)
$ ruby extract_rhyme.rb -n 3 夏目漱石_坊ちゃん.txt | head アカリ: 月あかり | 灯 | 星明り アガル: 上がる | 起き上がる | 飛び上がる | 揚がる アゲル: 上げる | あげる | 取り上げる | 揚げる アタリ: 辺 | 見当り | 大当り | 心当り | 中り | 突き当り | 辺り アタル: 思い当る | あたる | 中る アルイ: 歩い | あるい | ねりあるい アワセ: 袷 | 不仕合せ | 申し合せ | 打ち合せ | 合せ | 待ち合せ | 仕合せ | 見合せ イガイ: 以外 | 大概 | 例外 イサイ: 制裁 | 体裁 | 委細 イサツ: 挨拶 | 推察 | 警察
母音 (-m vowel)
$ ruby extract_rhyme.rb -n 4 -m vowel 夏目漱石_坊ちゃん.txt | tail オオイア: 床板 | 木の下 | ここいら オオイイ: 恐ろしい | 騒々しい | 明後日 | よろしい | 乏しい | 思い切っ | 思いきっ オオイウ: よろしく | 落っこちる | 頼もしく | 騒々しくっ オオイオ: 思い込ん | 面白 | ごろりと | 躍り込ん オオエウ: 泳げる | 恐る | 求める | 覚える | 見届ける オオオア: ところが | 及ぼさ | 床の間 | どころか オオオイ: 驚 | 驚い | 心持ち | 試み | もとより | 横取り | 一昨日 オオオウ: ことごとく | 喜ぶ | 及ぼす | 驚く オオオエ: 心得 | 整え | 物覚え | 懐手 オオオオ: のそのそ | ごろごろ | ホホホホ | 色男 | そろそろ | きょろきょろ | ぞろぞろ | ちょろちょろ | そこそこ | よろよろ | もともと | 所々
母音 (-m vowel_with_help, ッーンを含む)
$ ruby extract_rhyme.rb -n 4 -m vowel_with_help 夏目漱石_坊ちゃん.txt | egrep "ッ|ー|ン" ウアアアッ: 済まなかっ | ぶら下がっ | ぶらさがっ オイアアッ: 飛びかかっ | 飛び上がっ | 持ち上がっ | 躍り上がっ | 起き上がっ | 取りかかっ オーアアイ: 大当り | 大騒ぎ | 遠廻し
手動で変換しなくてもいい日本語入力
そもそも「変換候補が表示されてそこから選ぶ」というのがめんどくさいから、ぜんぶ Google 日本語入力 API に任せたらどうなるかを試してみた。最後の入力から 0.5 秒経ったら自動で変換処理を開始する。IME を OFF にして "toukyoutokkyokyokakyoku" とかをキーボードから入力するとどういうことか分かる。JavaScript でテキストエリアの文字列を管理するのがむずかしくていろいろちゃんと動いてないけど、だいたい感じは掴めた。違うものを作ってたつもりなのに結局これ (変換操作を省いて自動的に変換・確定する:IME即効テクニック) の劣化版みたいな感じになったような…。
あと副産物として GlitchIME の JavaScript 版とかも作った。