1/10くらいになってやっと年賀状書いてたわけですが、作ろうと思った案を途中まで作ってイラレで並べるのが面倒になってSVG/JSで作りました。
フラクタル羊。ジェネラティブ年賀状。
手順はこんな感じ。
せっかくなんで若干いじって、生成過程を見れるようにしてみた。
デモ。アップもしてみた。ソースはきれくとかしてない。
http://ikekou.jp/projects/fractal-sheeps/
できたーとおもって印刷しようと思ったら家のプリンタ(年代モノ)がぶっこわれたので諦めてキンコーズで印刷してたんですけど、家のインクジェットプリンタでやるよりずっといい。まあそりゃそうだ。ただフチなしはできないらしいので、印刷して送ったやつは若干デザイン変えてる。
それでも、印刷位置を0.5ミリ左にお願いします、、、とか何回も面倒くさいこと(キンコーズでそんな細かい事言うなよって話だ)言ってもちゃんと親切に対応してくれたのでむっちゃありがたかった。キンコーズありがとう。
今年もなにとぞ、よろしくお願いいたします。
よく遊び、よく作る。2015年のテーマかな。
楽しいこと、今までと違うこと、もっといっぱいやってきたいなー。
“Home Control”とか大げさなタイトルだけどIRKitの話でもなくiOS Homekitの話でもなくて、
使おうとおもって買ったもののタイミングを逃して使わず家に転がっていた
DMXディマーパックを使ってAlfredで電気製品をオンオフしてみたっていうだけの話だったりする。
Alfred(Macの多機能ランチャー)から電気とかサーキュレーターとかをオンオフする。
“home-run”で電源オン。”home-stop”で電源オフする。
ELATION DP-415 (DMX Dimmer Pack)
ENTTEC DMX USB Pro (USB => DMX Converter)
Mac
Alfred (Power pack)
Max/MSP
iTerm
Alfred => (UDP Socket) => Max/MSP => (DMX) => DMX USB Pro => (DMX) => DMX Dimmer Pack => 電気製品
DMX USB Proのドライバ入れたりする。細かくは忘れた。
AlfredでComnmandを叩くWorkflowを作る。run用とstop用を2つ。
macに最初から入ってるcuコマンドを使って、AlfredからMaxの間はUDPで通信する。
cu -z -u 127.0.0.1 50001;exit
キックするだけだから値もナシで、-zにしてる。
あとAlfredでコマンド叩くとterminalが一枚立ち上がってそのままになるからexitで閉じる。
ってどっかに書いてあってそうしてみたんだけど閉じなくて、iTermなら閉じてくれたからAlfredから起動するTerminalソフトをiTermにした。
Terminalでもexitで閉じるようにきっとなんか設定があるんだとおもう。
ビルトインのコンポーネントだと”udpreceive”があるけど正しくOSCフォーマットでないとはじかれる。
今回の用途だととりあえずキックできればいいしコマンドラインでOSCをどうやって送ればいいかわからなかったから
普通にUDPを扱えるexternalのsadam.udpReceiverを使う。
50001番ポートがキックされたらrun、50002番ポートがキックされたらstopということにする。(ほんとは同じポートで受け取った値で分岐すればいいと思う)
dmxusbproのexternalは無料だと2チャンネルまで、有料だともっと使えるみたいだけど今回はとりあえず無料でよいのでそのまま。
getdevsしたあとopenのmessageにシリアルポート名を直接打ってる。ここなんかいい感じにしたい。
dmxusbproに入力するのは0が最小、255が最大だから、オンオフみたいだからそれで電源をオンオフする。
ここはもう特になにもやってなくて
dmxusbproのexternalがDMXをDMX USB Proに送ってくれて、そっからDP-415に送ってくれて、そしたら調光してくれる。
できあがりは冒頭の動画。
調光だからほんとは段階的に制御できるんだけど、サーキュレーターは中間の回転速度で異音がするし、
PWMじゃないから(だよね?)LED電球パっとついてパっと消えるし、やめた。
何動かしたら面白いかなー。
おわり。
Snap.svgてのを見かけて試してみた。
Raphaelにどうも似てるなと思ったらそもそも同じ人が作ってるらしい。
pathメソッドのRが、ASでは自前計算してたスムーズな連続カーブを描いてくれるからうれしい。
あと色系のメソッド便利。
前回は「ラムネマンゴーココナッツパフェ」をmecabが単語に分けてくれない、という問題が未解決。
mecabのオプションでそれっぽいのがないかなと見てみる。
$ mecab -h
を見ながらそれっぽいのを探してみたが、–levelがそれっぽいかなと思ったけど違う感じだし、–level 1と2で–margnalとか–nbest使ったら?って言われるからそっちも試してみるが正直うまくいかない。ラムネマンゴーココナッツパフェはラムネマンゴーココナッツパフェのまま。
そこで色々調べているとChasenとKakasiとMeCabの形態素解析・わかち書きの比較っていうサイトが出て来て、ブラウザ上でそれぞれを試せるのだけど、Chasenならラムネマンゴーココナッツパフェを分割できることが確認できたのでChasenを次は入れてみる。
mecabは保留。
前の記事でmecabとmecab-pythonをmacに入れてみたので、csvファイルを読んでmecabにかけてみる。
csvは普通にexcelで作る。こんなかんじでいいや。
data.csvという名前で保存した。
id,name 1,すもももももももものうち 2,いちごパイカスタードパフェ 3,ラムネマンゴーココナッツパフェ
あとはcsv読み込んでmecabかけるpythonを書く。
pythonは正直あんまりわかってないから間違ってるかもしれないけど、一応動く。
#!/usr/bin/python # -*- coding: utf-8 -*- import MeCab import csv csvFile=open('data.csv','rU') csvFile.next() # 先頭行は今回見出し行だから飛ばす csvReader=csv.reader(csvFile) for row in csvReader: rowId=row[0] sentence=row[1] print '-' print 'id : '+rowId print 'sentence : '+sentence try: t=MeCab.Tagger() m=t.parseToNode(sentence) while m: if m.surface=='': m=m.next continue print 'surface : ' + m.surface print 'feature : '+m.feature m = m.next except RuntimeError, e: print "RuntimeError:", e;
実行する。
$ python example.py - id : 1 sentence : すもももももももものうち surface : すもも feature : 名詞,一般,*,*,*,*,すもも,スモモ,スモモ surface : も feature : 助詞,係助詞,*,*,*,*,も,モ,モ surface : もも feature : 名詞,一般,*,*,*,*,もも,モモ,モモ surface : も feature : 助詞,係助詞,*,*,*,*,も,モ,モ surface : もも feature : 名詞,一般,*,*,*,*,もも,モモ,モモ surface : の feature : 助詞,連体化,*,*,*,*,の,ノ,ノ surface : うち feature : 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ - id : 2 sentence : いちごパイカスタードパフェ surface : いちご feature : 名詞,一般,*,*,*,*,いちご,イチゴ,イチゴ surface : パイカスタードパフェ feature : 名詞,一般,*,*,*,*,* - id : 3 sentence : ラムネマンゴーココナッツパフェ surface : ラムネマンゴーココナッツパフェ feature : 名詞,固有名詞,組織,*,*,*,*
動いた。
動いたけど、あんまり分解できてないのがわかる。
「すもももももももものうち」はきっちり分解できてるけど、「いちごパイカスタードパフェ」は「いちご」と「パイカスタードパフェ」にしかわけれてない。パイカスタードパフェっていう一般名詞は無いと思うけど辞書に入ってるのかな。
「ラムネマンゴーココナッツパフェ」に至っては1個の固有名詞ってことになってる。
これではイマイチ。
次はmecabのオプションを見てみよう。細かく分ける方法があるかも。
GoProをプログラムから制御してみた。GoProはHero3 plus black edition。Macは10.9.2。
ライブラリを調べてみる。
pythonのライブラリ
https://github.com/joshvillbrandt/GoProController
Node.jsのライブラリ
https://www.npmjs.org/package/gopro
が出て来た。
pythonはmacに最初から入ってるから、と思って動かしてみるけど何かライブラリが足りないっぽくてエラー出るし、作者はUbuntuで動くようにしか作ってないみたいだし、頑張ってMacで動くようにする前にNodeのほうを試す。
Node.jsは前に入れたのが入ってるし。
nodeモジュールをインストールする。
$ npm install gopro
exampleフォルダには、4つくらいサンプルがあるから動かしてみる。
$ cd node_modules/gopro/examples $ node status.original.js http://10.5.5.9/bacpac/se?t=jambikassu ReferenceError: body is not defined
エラーが出た。
status.jsを開いて見るとパスワードを入れる必要があるみたいので書き換える。
var cam = new Camera('10.5.5.9', 'mypasswd')
new Camera()の第2引数を自分でgoproに設定したwifiパスワードに書き換える。
再度実行。
$ node status.js http://10.5.5.9/bacpac/se?t=kosegopropasswd status byte 0 0 status byte 1 100 status byte 2 1 status byte 3 0 status byte 4 4 status byte 5 0 status byte 6 65533 status byte 7 0 status byte 8 82 status byte 9 1 status byte 10 0 status byte 11 1 status byte 12 11 status byte 13 2 status byte 14 1 status byte 15 1 camera status { ready: true }
正常なステータスが帰って来てるっぽい。
ここまでは簡単だったので他のサンプルも動かしてみる。
日本語形態素解析をしてみたい、ということでMacにMeCabとmecab-pythonを入れた。
環境はMac OS X 10.9.2 Marvericks
MeCabは0.996
macportsとかhomebrewとかは今回は無し
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#download
でダウンロードURLを確認
$ cd ~/Downloads $ curl -O https://mecab.googlecode.com/files/mecab-0.996.tar.gz $ tar zxfv mecab-0.996.tar.gz $ cd mecab-0.996 $ ./configure $ make $ make check
http://mecab.googlecode.com/svn/trunk/mecab/doc/index.html#download
でダウンロードURLを確認
$ cd ~/Downloads $ tar zxfv mecab-ipadic-2.7.0-20070801.tar.gz $ cd mecab-ipadic-2.7.0-20070801 $ ./configure --with-charset=utf8 $ make $ sudo make install
$ mecab すもももももももものうち すもも 名詞,一般,*,*,*,*,すもも,スモモ,スモモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ も 助詞,係助詞,*,*,*,*,も,モ,モ もも 名詞,一般,*,*,*,*,もも,モモ,モモ の 助詞,連体化,*,*,*,*,の,ノ,ノ うち 名詞,非自立,副詞可能,*,*,*,うち,ウチ,ウチ EOS
いけた
https://code.google.com/p/mecab/downloads/list
でダウンロードURLを確認
$ curl -O https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz $ tar zxfv mecab-python-0.996.tar.gz $ cd mecab-python-0.996
READMEを読む
$ python setup.py build $ su $ python setup.py install
とあるのでやる
error: command 'cc' failed with exit status 1
とか言われるのでググる
MarvericksにしてPILのインストールがコケる件 – Qiita http://qiita.com/noblejasper/items/797849a6c3c603016166
xcode-select --install
をする、なおらず
mecab-pythonをMacにインストールする – Qiita http://qiita.com/wwacky/items/e1e3b7cbfa3c4da4d877
を見る
$ export CFLAGS=-Qunused-arguments $ export CPPFLAGS=-Qunused-arguments
をするとよいようだ(内容はわかってない、とりあえずやってみる)
$ python setup.py build $ python setup.py install
いけた
mecab-python-0.996にtest.pyがあるのでそれを実行する
$ python test.py 0.996 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二 名詞,数,*,*,*,*,二,ニ,ニ 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 EOS BOS/EOS,*,*,*,*,*,*,*,* 太郎 名詞,固有名詞,人名,名,*,*,太郎,タロウ,タロー は 助詞,係助詞,*,*,*,*,は,ハ,ワ この 連体詞,*,*,*,*,*,この,コノ,コノ 本 名詞,一般,*,*,*,*,本,ホン,ホン を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 二 名詞,数,*,*,*,*,二,ニ,ニ 郎 名詞,一般,*,*,*,*,郎,ロウ,ロー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 見 動詞,自立,*,*,一段,連用形,見る,ミ,ミ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 女性 名詞,一般,*,*,*,*,女性,ジョセイ,ジョセイ に 助詞,格助詞,一般,*,*,*,に,ニ,ニ 渡し 動詞,自立,*,*,五段・サ行,連用形,渡す,ワタシ,ワタシ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 BOS/EOS,*,*,*,*,*,*,*,* EOS EOS filename: /usr/local/lib/mecab/dic/ipadic/sys.dic charset: utf-8 size: 392126 type: 0 lsize: 1316 rsize: 1316 version: 102
できた
からだ巡茶のコンテンツで「ダメ広末」というのがあるというのを昨日発見。
広末涼子がひたすら「ダメ」と言う動画が70本もあるぶっとんだコンテンツ。
広末涼子「ダメ」と言われるということ、そしてその広末自身も微妙に美しきダメさを醸し出してること。
これはすごい。なんかすごい。
この提案通した人凄いしOKしたクライアントも素敵だ。
で、Facebookでシェアしたときに@chabudaiが「ずっと見てたら精神的に不安定になりました」と言うので、
今日朝起きてふと思って、これずっと見てたらいいんじゃないかってことでずっと見てられるものを作った。
機能はふたつだけ、
・http://apps.ikekou.jp/endless-denied/にアクセスする
・ひたすら順番に動画が流れダメと言われる
・ その際にURLが動画毎に変わる(http://apps.ikekou.jp/endless-denied/#29みたいな)
・お気に入りのダメがあったら即リロード、または番号つきのURL(http://apps.ikekou.jp/endless-denied/#29みたいな)でアクセスしなおすとそのダメだけひたすら流れる
まあ要はハッシュがついてたらそれだけループ、ついてなかったらシーケンシャルにループ、っていうだけなんだけど。
ということで広末涼子にお気に入りのダメをひたすら言われ続けることができます。
一部の人には嬉しい、かもしれない。
あと確かに 作ってる間1時間くらいずっとダメって言われ続けてこれは病むなと思った。あと広末かわいい。
Google Readerの増えすぎた購読フィードを整理したい。がどれを解除していいか判断がつかない僕のために。
僕は今でもできるだけ毎日Google Readerに目を通しているのだけど、どうにも効率が低下している気がしていた。
基本的に登録はするが削除はしないのでそのせいかもしれない。
そこでふとGoogle ReaderのAPI(非公認)があったのを思い出して、使ってみたかったというのもあって、購読解除してもいいかもしれないフィードを見つけるコードを書いてみた。ついでにTwitter Bootstrapも使ってみたかったので使ってみた。
とはいっても、Google Readerの既読アイテム直近1000件(ほんとはもっと取得したかったのだけど1000件以上取得する方法がぱっとわからなかった)から単純に既読数とスター数の割合で、たくさん読んでるのにちっともスターがついてないフィードはもしかしていらないんじゃない?という風に並べているだけ。かっこいいアルゴリズムとかは現状ない。
Google Reader上に「トレンド」というやつがあってスター率が高いフィードなんかは見れるのだけどその逆は見れない。
ちなみに今やTwitterやFacebookでおなじみOAuthは実装されていないので昔ながらのID/Passwordを入力する方法しかなく、OAuthに慣れた人間からしたら怪しいことこの上ない。もし自分だったらあんまり入力したくない、、、がGoogleが実装していない以上しょうがない。
もちろん悪用する気はないし保存もしてないしセッションにすら入れてない(それはただやらんかっただけだけど)けどそこは信用してもらうしか術がない気がする。市井のサービスはそこってすごい壁だな。それかもしかしたらまだ案外気にせず入力してしまう人も多いのか。
使うとこんな感じ。
僕の場合Newsweekを読んでるけど全然ふぁぼってないから、賢い気分になる自己満足はやめて購読解除しちゃえば?ってことになる。キャプチャだとスターが0ばっかりだけどそれは見えてないだけでもうちょっと下に行くとほんとはある。
ちなみに削除ボタンを押すと購読解除して見た目上も削除するけど、データソースとして使っている既読アイテムの履歴からは削除されないからリロードするとまた舞い戻ってしまう仕様。一週間に一度とか都度いらなそうなフィードを削除して最適化していくといいかもしれない。
仕様はそのうちなんとかするかもしれない。
アプリはこちら。Neverの使い方が微妙に間違ってないか、とかは知らない。
Google Never Reader
Facebookでフレンドリスト(発言の公開範囲を設定するグループ)を細かく設定するのに公式のUIはあまり向いてないです。一人一人設定していかないといけない。
Google+のはそこらへんやりやすくていいなーと思ったので、作りました。
まず前提として用語説明。
フレンド=普通に友達のことです。
フレンドリスト=友達のグループ、リスト。発言の公開範囲を選ぶ時に、選択肢に出るやつです。
機能は
・フレンドリストの作成
・フレンドリストの削除
・ユーザーのフレンドリストへの追加
・ユーザーのフレンドリスト除外
です。
フレンド自体を削除したりとかはないです。
使い方は
とりあえずJOINを押します。でそしたら承認しますかみたいなのが出るので承認します。
左から順に、表示するフレンドリストを選択して、表示されたフレンドから処理対象フレンドを選択、次に処理対象のフレンドリストを選択して、最後に追加or除外を押す。
対象フレンドと対象フレンドリストは複数選択可。jQueryUIのお陰でドラッグでも選択できます。あとCtrl押しながらで複数選択できます。(一番やりたかったのは結局これ)(Windowsで上手く動いてないみたい。jQueryUI使っただけなので謎ですが気が向いたら直します。)
だから10人選んで、それをリストAとリストBに追加とか、その逆とか、できます。
あとは左から三番目の処理対象フレンドリストの下に、フレンドリストの追加ボタンと、選択中のフレンドリストの削除ボタンあり。
フレンドリストの削除だけは間違って消しちゃうと悲しいので、確認ダイアログあり。気をつけて!
英語の成績は学生時代惨憺たるものだったので英語は多分おかしいけど、なんとなく伝わればまあいいです。
注意事項。
僕はフレンドが120人くらいしかいないので普通に使えてますけど、フレンドがめっちゃ多い人が使ったら多分止まります。何人くらいからやばいか不明。
リストからのフレンドの追加・除外処理は600件くらいまとめて(120人を5つのリストに追加)やっても大丈夫でしたけど、何件くらいからやばいか不明。
ブラウザチェックはMacのFirefox,Chrome,Safariの最新しかしてないです。IE?なにそれ。
止まったらリロードしてね。
一応免責。
このアプリを使って生じたいかなる損害も、その責任は負えませんのでご了承の上でご使用ください。
これでみなさんも今日から快適な陰口ライフを!
あ、キャプチャとるにあたって、嫁に内緒でFacebookやってたりしなさそうな、載せて大丈夫そうな方を選びましたが、問題あったらこっそり連絡ください。すぐ修正します。