3Dプリンタの進捗をリモートから覗く

3Dプリントは時間がかかる。
そしてプリンタキューがない、、というより物理的に連続印刷が出来ないのでまとめて印刷をかけておくことが出来ない。
1つずつ造形しては取り出しまた造形しては取り出し。
その上、たまに失敗するので完全に手放しというわけにもいかない。
ネットワークにつながっていて小さなマイコンがついていれば10%進捗するたびにSlackに通知させる、とかできそうだけれども、FlashForge Creator ProにはUSBはついていてもRJ45はついてない。

ならばせめて、目で確認できるようにとカメラをつけよう。
PCとDVカメラでは場所をとるのでマイコンで。

Raspberry PI3とWebcamでなんとかなるかな、ととりあえず購入。

購入時は電源もお忘れなく。
microUSB給電なのに2.5Aも食うので結構しっかりした電源アダプタが必要。

LOGICOOL ウェブカム HD画質 120万画素 C270
ロジクール (2010-08-20)
売り上げランキング: 58

WebcamはHDでも1000円で買えるのか。
と思ったら、買って気づいた720pだった。
IMG_1004
まぁ監視用途には十分か。

家に転がっていた8GのmicroSDにraspbian+PIXELをインストール。
Introducing PIXEL – Raspberry Pi

サーバ運用は面倒なのでYoutube Liveもしくはustreamに飛ばそうと思ったが、ここに来て適当にWebcamを買ったのが失敗。
raspberryのカメラモジュールを使えばraspvid コマンドと avconvコマンドで一発で行くらしいのだが、USB接続のWebcamは(当然)これでは認識せず。
Live Stream to YouTube With a Raspberry Pi

こんなことなら純正カメラモジュールを買えば良かった。

Raspberry Pi カメラモジュール Raspberry Pi Camera Board
Yegoo
売り上げランキング: 16,896

お安いし。

試行錯誤して、Webcamでストリーミングにはffmpegをつかうことに。
libx264等のライブラリとともにffmpegを自前コンパイル。
今回音声は不要なのでalsa等の音声周りのライブラリは不要。
Installing FFMPEG for Raspberry Pi – Jeff Thompson

Webcamをつないでffmpegで映像送出すると、Youtube Liveではなぜか動作せず(サーバはデータ認識するが配信が開始されない)。

ustreamにチャンネルを作って送出すると無事に配信が開始された。

送出コマンドは以下の通り。

% ffmpeg -f v4l2 -i /dev/video0 -s 1280×720 -vcodec h264 -pix_fmt yuv420p -g 50 -vb 3000k -profile:v baseline -r 30 -f flv [RTMP URL]/[Stream key]

[RTMP URL]と[Stream key]はustreamのマイページで生成されたもの。

これをユーザの~/.zshrcの末尾に突っ込んで完了。

カメラはプリンタの内側上部に設置。
ベルクロで固定しようと思ったが上手い具合に構図を作れないので下駄を出力。
端切れ材探してくるより作った方が早い。
IMG_1014
これを噛ませて固定。
IMG_1017

やはり3Dプリンタを使うための3Dプリンティングは続く。

いざストリーミングしてみるとかなりボケてる。
Webcamが固定フォーカスで、対象がカメラから近すぎて焦点合わず。
安いWebcamを適当に買った後悔再び。

Webcam買い直すのも悔しいしなぁ、とWebcamを開けてみたらどうやら焦点を動かせそう。
IMG_1026
このレンズの周りの歯車がフォーカスリング。
矢印の部分に接着剤がついて固定されているのでマイナスドライバで接着剤を剥がしてフォーカスリングを回すと近距離でピントが合うようになった。

ふと思って調べてみると同じことを考える人はいて、同じWebcam(c270)の焦点調整が紹介されていた。

とてもわかりやすい。

馬鹿の試行錯誤より先にgoogle先生。
これ今日の最重要ポイント。

組み立てて再度3Dプリンタにインストールしたらフォーカスが合って何やってるかは数秒のタイムラグでわかるようになった。

USTREAM__printer__flshforge_creator_pro_

自宅では20fps強出たが、オフィスのネットワークの問題か10fps強しか出ない。
とはいえ、とりあえず進捗監視できる目はなったか。

2分で作った三角柱出力した以外は3Dプリンティングあまり関係ないエントリーになってしまった。

Read More

とっさのバックアップ

今日、仕事先にいるときに連絡が入って、うちのマンションの上の階が火事になっている、と。
急いで帰って書いたFacebook.

その後、コメントに書いたとおり実際の火事は同じデザインの隣のマンションだった、というオチだったのだけれど。
道の反対側のお店の人曰く、「灰が雪のようだった」とか。
駆けつけた警察官がだいたい収まった頃、弁当屋に弁当買いに行っているの見たときは呑気なもんだなぁ、と思いました。
うちのマンションは水もかぶらずに無事に日常生活に戻る。

とはいえ、いざ自分の部屋に入ったときは本当になにが最優先か分からず。
後から考えれば、洗濯物ではなかったような。

上が燃えているってことはここが燃えることはあまりないだろうから怖いのは火ではなくて水と煙だなぁ、とかパスポートとか通帳とかは(手間はかかっても)バックアップできるよなぁ、カメラのレンズはキャップしておけば水も灰も大丈夫かなあ、とか考えた。

まずはなにをもちだすべきだろうか。
1度はなんとか規制線またいで越えられたものの2度目は無理かもしれない、水や灰に弱くてバックアップがないもの、と考えた答えが「バックアップ」だった。
ファイルサーバとMacのTime capsule。
その他のお家サーバはなくなってもどうにかなる。(サーバの仮想化技術、ありがとう)
子供を連れ出すように抱えたファイルサーバ。
小さいので助かった。ファイルサーバの可搬性が問題になることがあるなんて。

今の家に住むまでに6回くらい引っ越したが、学生寮を除けば初めての集合住宅。
どんなに気をつけていても、他の人のうっかりで平気で家がなくなってしまうこともあるんだなぁ、と恐ろしくなった。

火の用心。
火の用心。

Read More

和菓子の切り方

和菓子屋さんで伺った豆知識。

和菓子を頂くときには十字に切る

これを
misakiya_aioi1

こうする
misakiya_aioi2

こう切ったときに安定する(崩れない、倒れない)ように和生菓子は設計されているのだそうだ。
どんなお菓子でも、(基本的には)そのように作られているらしい。

こうやって切って食べようとしたら教えて頂いた。
misakiya_aioi1 2

もはやなにを書くblogなんだか分からなくなってくる・・・

Read More

2014年度

今年度のノルマは
「自分の与えられた範囲以外に手と口を出さない」
ということ。

幸いにも学生の頃からいろいろな経験をさせてもらっているので守備範囲はどちらかと言えば広め。
そして自分で手を動かしたい気質。

いろいろな人とやっていると気になること、「こうしたらもっと良いのに」ということが結構出てくる。
1年前までは「繰り返して10回考えて全てGOだったら言え」説を採用していた。
それでうまく行くこともあったし、撃沈することもあった。

それを続けているとあちこち角が立ってくるようになってしまった。
ワカゾウでなくなってきてしまったからかもしれない。
年齢なりポジションなどによって、ぽっと考えた生まれた直後のアイデアをくちにしたとしてもへんな強制力を持ってしまってきたからかもしれない。
「良いから言って」といわれてばか正直に言っても、たいてい失敗する。

ディレクションを依頼されたらディレクタに徹する。
コーディングを依頼されたらコーダーに徹する。
「受け身」というのとも違った、「徹する」。

それによって物足りないと思うこともあるし、必要性のうすい遠回りだなと思うこともときどきあるけれど。

と言うわけで、今年度は口出し0,を目標に。
人の振り見て何とやら。
踏み外しているのを見たら、止めて下さい。

Read More

アマチュアイズム

お金をもらって楽器を弾くということをはじめた頃にベテランのミュージシャンに
「アマチュアはスゴ技がたまにできれば、それ以外で失敗しても問題は無い。
プロはすごいことができなくても良いから必ずいつもそれなりの演奏ができなければならない。」
と言われたことがある。
恥ずかしながらその頃技に走っていた、というのがバレバレなのだけれど。

オリンピックがアマチュアの祭典であるのはビジネス的な意味だけでなくそういうこともあるのだろうか。
「9失敗しても良いから、1に賭けてとりあえず最大限挑戦しろ」というメッセージなのだろうか。

実際にはオリンピックの競技が自体がそうであっても、スポンサーシップのことやウェアの企業ロゴがテレビに何秒露出したみたいな方法で評価される彼らにとってはそう簡単な話ではないのだろうけれども。
と運動音痴(興味もあまりなし)脳でぼけっと考える。

Read More

2013年、おせわになりました

年末っぽく。

貴殿におかれましては〜

今年はガラにもなく起業塾的なものに参加してみたり(参加してみたらとても興味深かった)、その後新しく会社を立ち上げたりしました。

iBooksStore日本上陸にあわせてリッチな電子書籍”fineBook”を作ろうぜ、という会社です。

株式会社ARCO | ARCO = Architects of Contents

初期メンバ全員がそれぞれの会社の社長という、とってもまとめにくい会社です。

起業のきっかけとなったのは、これの制作をさせていただいた事でした。
Ko Shibasaki Official Web site

まだなかなか光の差さない分野ですが、いずれ来る日の出に向けて来年も走りたいと思っています。
年明け1月か2月に次の1冊が出る予定です。

カルチャ、アート、旅行、アド・・・といろいろな分野でのコンテンツを作り、他方継続/定着のためのビジネス的なバックグラウンド作っていきたいと思っています。(後者はほとんど他のメンバー任せ)

電子書籍はARCOに限らず、私が元からやっている会社(アーティキュレイト)でも制作/請け負い致しております。
ARCOとアーティキュレイトの違いは書籍のベースとなるワイヤフレームを誰が書くか、ということです。
ARCOはインテリアデザイナのメンバもしくは元人事コンサルのメンバが書いてくれます
アーティキュレイトは私が書きます。
どちらも書籍のディレクションとオーサライズは私が魂込めてやります。
共に例をお出しできないのが残念ですが、両者仲良くやっておりお互いを紹介しながらやっていこうとおもっているのでご興味の方はご相談頂ければと思います。

まだプレイヤーの少ない中、両社で制作について切磋琢磨してながらやっていこうと思っています。

来年は電子書籍と、私のもう1つのワラジ、医療クラウド開発(こちらはいずれ)に没入していこうと思っております

私においてはまだまだ低空飛行の続く今日この頃ですがまだ墜落していないので来年もどうぞよろしくお願い致します。

Read More

ちょっと気になっていたパイナップルハウスに行ってみた

表参道にできた隈研吾設計のパイナップルハウス、建築しているときから前を通る度に気になっていた。

これ。
出来てから訪れてみたけれどオープン前で入れず。
オープンして1週間、遅ればせながら 再挑戦。

台湾のパイナップルケーキ屋さん Sunny Hills.
漢字にすると微熱山丘。
太陽どこ行った。

入って階段を上がると席に案内してくれて、お茶とお店の旗艦商品パイナップルケーキを出してくれる。

カフェのつもりで行ったのだけれど、これは試食。
お茶のおかわりも勧めて頂ながらゆっくり座ってケーキ食べる。
レジもあって、そこで5個入りか10個入りの箱を購入することも出来る。
1つ300円。
商品はこれだけ。

店内もモザイク。

レジのお客向けUIがiPad miniのWebアプリ。
アドレスバーがばっちり見えてるSafari上で動いているのが男らしい。
半角数字のフォントがちょっとカッコ良かったので「フォントかっこいいですね」といったら苦笑されました。平凡なフォントだったのかなぁ。

着席での試食付けて1つ300円のケーキを売ってこの表参道にこの建物が建つんだから、不思議だなぁ、と思いました。

Read More

switch文の最後のbreak

ものすごいしょうもない、けど昔から疑問な点。

Cでもjavaでも何でも良いのだけれども、switch文での条件分岐で最後の条件の最後にbreakが書かれていることがとても多い。
一般に流布してるサンプルコードやオープンソース見ていても感じる。

xcode5でもswitchを入れたときの自動補完は以下のようになる

xcode_switch


この最後のbreakを書くのは、何か特別な意味や理由があるのだろうか。

Read More

vagrant install on Mac OSX

vagrant

http://www.vagrantup.com/
Vagrant

Oracleの仮想マシンのCUIツールとして作られた。
今は様々なvmwareなど仮想マシンやAWSなどクラウドマシンにも対応。

「Vagrant」は仮想環境をプログラミングするツール。同一環境をどこにでも、いくつでもすぐに作成可能。Vagrant meetup 2013 ? Publickey

複数の人やマシン間の開発環境の統一に便利。
メンテナンスした内容をてそれぞれの仮想環境にコマンド一発で反映させられる。

vagrantインストール

1)vagrantをダウンロード
http://downloads.vagrantup.com/
Vagrant – Downloads

ここから最新版をダウンロード。(今回はv1.3.1)

2)インストール
ダウンロードしたdmgファイルをダブルクリックしてインストール

virtualboxのインストール

無料で使える仮想マシン環境VirtualBoxをインストール

1)VirtualBoxをダウンロード
https://www.virtualbox.org/wiki/Downloads
から最新版をダウンロード。(今回はVirtualBox 4.2.18 for OS X hosts)

2)インストール
ダウンロードしたdmgファイルをダブルクリックしてインストール

仮想マシン(Box)のインストール

適当なVirtualBoxの仮想マシンを見つける

例えばここから適当に選択
http://www.vagrantbox.es/
A list of base boxes for Vagrant – Vagrantbox.es

今回はubuntuのオフィシャルサイトから。
http://cloud-images.ubuntu.com/vagrant/raring/current/

raring-server-cloudimg-amd64-vagrant-disk1.box
を選択。

$ vagrant box add ubuntu13 http://cloud-images.ubuntu.com/raring/current/raring-server-cloudimg-vagrant-amd64-disk1.box
Downloading or copying the box...
Progress: 0% (Rate: 185k/s, Estimated time remaining: 1:11:56)^CWaiting for cleanup before exiting...
Extracting box...e: 0/s, Estimated time remaining: --:--:--)
Successfully added box 'ubuntu13' with provider 'virtualbox'!

boxファイルをダウンロードしてローカルのパス指定しても可。

仮想マシンの初期設定

適当な作業ディレクトリを作って

$ vagrant init ubuntu13
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
mbpi7r:vagrant shin$ vagrant up ubuntu13
The machine with the name 'ubuntu13' was not found configured for
this Vagrant environment.

仮想マシンの起動


$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Importing base box 'ubuntu13'...
[default] Matching MAC address for NAT networking...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for machine to boot. This may take a few minutes...
[default] Machine booted and ready!
[default] Mounting shared folders...
[default] -- /vagrant

これで起動完了。

仮想マシンにsshする


$ vagrant ssh
Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-30-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Tue Sep 10 01:54:54 UTC 2013

System load: 0.22 Processes: 78
Usage of /: 2.4% of 39.33GB Users logged in: 0
Memory usage: 33% IP address for eth0: 10.0.2.15
Swap usage: 0%

Graph this data and manage this system at https://landscape.canonical.com/

Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud

Use Juju to deploy your cloud instances and workloads:
https://juju.ubuntu.com/#cloud-raring

0 packages can be updated.
0 updates are security updates.

vagrant@vagrant-ubuntu-raring-64:~$

仮想マシンを落とす


$ vagrant halt
[default] Attempting graceful shutdown of VM...

Read More