ワテのブログ

The fundamental things apply As time goes by.

2014年12月6日土曜日

【ネタバレ注意】 ブレイキング・バッド名シーン シーズン4

スポンサーリンク

“Breaking Bad”
Huluでみてハマりました。
最高のドラマです。

印象に残ったシーンの時間を記録しています。

シーズン4

# タイトル 時間 内容
1 ガスの怒り 33:00 ガスがビクターの首を掻っ切る
4 厄介な存在 17:05 ゲイルのカラオケビデオ
8 ガスの過去 34:33 ガスの回想シーン
10 復讐の杯 7:30 ジェシーのお料理

随時更新中

以下シーンの説明です。

ガスがビクターの首を掻っ切る
ウォルターとジェシーの前で、ガスがビクターの首を掻っ切る。迫力のあるシーンである。
ゲイルのカラオケビデオ
ゲイルが歌を歌っているビデオをハンクが流すシーン。
ガスの回想シーン
若かりしガスが相棒とカルテルに売り込みをかけるシーン。サラマンカ爺さんとの因縁のシーン。
ジェシーのお料理
カルテルの製造工場に連れて来られたジェシー。高品質のぶつを生成をしなければない。本番に強いジェシー。うまい具合に切り抜ける。
スポンサーリンク

2014年11月15日土曜日

Vagrant/CentOS共有フォルダのエラーを解決する方法

スポンサーリンク

解決方法

$ vagrant sshでマシンに接続。

/etc/yum.confexclude=kernel*
があればコメントアウト。

その後、

$ sudo yum -y update kernel
$ sudo yum -y install kernel-devel

そして、vagrant reloadで再起動。

以上で、カーネルが新しくなりvirtual box guest additionsがビルドされるはずです。

概要

  1. vagrant-vbguest pluginをインストールしている
  2. CentOSのvirtual box用vagrant boxを使用している

以上の条件下でvagrant upすると

Building the main Guest Additions module[FAILED]
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions[  OK  ]
Installing the Window System drivers
Could not find the X.Org or XFree86 Window System, skipping.
An error occurred during installation of VirtualBox Guest Additions 4.3.18. Some functionality may not work as intended.
In most cases it is OK that the "Window System drivers" installation failed.
Restarting VM to apply changes...

というエラーが出力され

Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

/sbin/mount.vboxsf: mounting failed with the error: No such device

共有フォルダをマウントするところでこのエラーが出力される。

原因

  1. virtualbox guest additionsのビルドに失敗しているのが原因
  2. virtualbox guest additionsのビルドにはkernelソースが必要
  3. CentOSにはkernelソースがインストールされていない
  4. その結果、ビルドが失敗する
  5. yumでkernelをアップデートしてkernel_develをインストールすればよい

感想

vagrant upで一発で仮想環境が構築できるとやったぜーと思っているところでエラーが発生すると残念な感じが半端ない。
(組み合わせで発生する問題 なので、vagrantが悪いわけでも、CentOSが悪いわけでも、virtual boxが悪いわけでもないですが。。。)

スポンサーリンク

2014年11月12日水曜日

【ネタバレ注意】 ブレイキング・バッド名シーン シーズン3

スポンサーリンク

“Breaking Bad”
Huluでみてハマりました。
最高のドラマです。

印象に残ったシーンの時間を記録しています。

シーズン3

# タイトル 時間 内容
1 戻れない道 32:00 ウォルターついに告白する
2 名もなき男 0:30 A Horse With No Name
2 名もなき男 35:30 ピザを屋根に放り投げる
6 追い詰められた二人 16:10 ゲイル登場
6 追い詰められた二人 23:48 ハンクの携帯の着信音
6 追い詰められた二人 - 全体的に名シーン
7 ハンクの苦しみ - 全体的に名シーン(後半、ハンクがトゥコのいとこに襲われる)
10 かなわぬ最後 - ひたすらハエを追いかけるシーン
12 憎しみの連鎖 45:30 ジェシーを助けるウォルター
13 向けられた銃口 23:00 ガスがゲイルの部屋を訪問
13 向けられた銃口 44:50 ゲイル消される

以下シーンの説明です。

ウォルターついに告白する
ウォルターのアパートで、スカイラーが離婚届をつきつける。売人なんでしょ?と言われてついに真実を告白する。
A Horse With No Name
ウォルターがドライブをしながら聞いているのが”A Horse With No Name”です。”アメリカ”というバンドの曲で、砂漠を名もなき馬に乗って移動する心持ちを歌った曲です。
ピザを屋根に放り投げる
スカイラーと話しあうためにピザを買って自宅を訪れるも拒否される。切れたウォルターはピザを駐車場の屋根に放り投げる。
ゲイル登場
ゲイルが登場。ウォルターの助手としてあてがわれる。化学の専門知識を持ちウォルターと意気投合するが…
(コーヒーが美味しそうだ。)
ハンクの携帯の着信音
張り込み中のハンク。携帯に着信。この着信音がなかなかイカしている。
ひたすらハエを追いかけるシーン
ラボにハエがいる。不純物がまざることを気にするウォルターがひたすらハエを追いかけるシーン。ジェシーとの心温まる?シーン
ジェシーを助けるウォルター
アンドレアと知り合ったジェシー。コンボを倒したのがアンドレアの弟トーマスと知る。トーマスは近所の二人のギャングの仲間に入るためライバルであるコンボを倒した。復讐に向かったジェシー。二人のギャングと睨み合い決戦が開始されそうな時、ウォルターが車で二人に突っ込んだ。
ガスがゲイルの部屋を訪問
曲は「Quartetto Cetra - Crapa Pelada」ガスがゲイルを訪問。どれぐらいで引き継げるか尋ねる。
ゲイル消される
曲は「滿場飛」ジェシーがゲイルを消す。ゲイルはウォルターたちにとって邪魔な存在だった。

関連項目

スポンサーリンク

2014年11月9日日曜日

【ネタバレ注意】 ブレイキング・バッド名シーン シーズン2

スポンサーリンク

“Breaking Bad”
Huluでみてハマりました。
最高のドラマです。

印象に残ったシーンの時間を記録しています。

シーズン2

# タイトル 時間 内容
2 消息不明 44:10 ハンク、トゥコと対決
3 脱出の代償 2:30 ウォルター生まれたままの姿でみつかる
3 脱出の代償 27:30 サラマンカ爺さんがDEAに呼ばれる
4 崩れゆく生活
5 再始動 15:00 ジェーン(クリステン・リッター)登場
7 噂の男、ジェシー 0:00 ロス・クアテス・デ・シナロア ”黒と青”
8 ソウルに電話しよう! 19:40 ソウル・グッドマン登場
8 ソウルに電話しよう! 37:53 バッジャー救出作戦
9 荒野の四日間 38:30 オー、ワイヤー
10 ビジネスの引き際 - 全体的に名シーン
11 混沌の渦 22:55 スカイラー、ハッピバースデーを歌う
12 マイ・リトル・ガール 44:12 ジェーンの最後

以下シーンの説明

ハンク、トゥコと対決
行方不明のウォルターを探すために、ジェシーの車を追跡していたハンクがトゥコと対決する。さすがDEAの捜査官、弾の補充のタイミングで冷静に仕留める。この出来事が後ほどハンクを苦しめることになる。
ウォルター生まれたままの姿でみつかる
行方不明だった理由をごまかすために、スーパーマーケットで生まれたままの姿になる。
サラマンカ爺さんがDEAに呼ばれる
ジェシーはDEAに捕まり尋問されているがアリバイ工作をしている。サラマンカ爺さん(車いすに乗ってチーンチーンと鳴らす爺さん)がDEAに呼ばれジェシーを昨日あなたの家で見たかと質もされるも答えない。その結果ジェシーは釈放される。
ジェーン(クリステン・リッター)登場
ジェーン登場。ジェシーがみつけた借家の大家の娘。ジェシーが借りた隣の部屋に住んでいる。後にジェシーの彼女となるが…
ロス・クアテス・デ・シナロア ”黒と青”
ハイゼンベルクを題材にした歌
ソウル・グッドマン登場
Better Call SaulのCMでお馴染みのソウル・グッドマン登場。おちゃらけてるが有能な弁護士。
バッジャー救出作戦
DEAの陽動作戦で逮捕されてしまったバッジャーを救うべく偽ハイゼンベルグを雇ってハンク達DEAが監視している中ベンチで取引をさせようとするも見知らぬ人がバッジャーの隣に座る。バッジャーはその人物が取引相手と誤解してしまう。車から事態を見守っていたジェシーとウォルターは見かねて助け舟を出す。ウォルターはハンクに偶然であったふりをして視界を隠し、その間にジェシーがバッジャーにあっちのベンチだと伝えに行く。
オー、ワイヤー
キャンピングカーのバッテリーが上がってしまう。化学の知識を活かしてウォルターは電池を作成しようとする。ジェシーに電池の原理を説明するが呆然としている。正極と負極をつなぐのは?と銅線をみせながらジェシーに質問するが「ワイヤー」と答える。
スカイラー、ハッピバースデーを歌う
ベネキーの誕生日会で皆に促されマリリン・モンローの真似でハッピバースデーを歌う。
ジェーンの最後
ジェーンが寝ゲロで窒息する。ウォルターは助けずに見過ごす。

関連項目

スポンサーリンク

2014年11月8日土曜日

【ネタバレ注意】 ブレイキング・バッド名シーン シーズン1

スポンサーリンク

“Breaking Bad”
Huluでみてハマりました。
最高のドラマです。

印象に残ったシーンの時間を記録しています。

シーズン1

# タイトル 時間 内容
1 化学教師 ウォルター・ホワイト 16:50 肺がん告知シーン
1 化学教師 ウォルター・ホワイト 26:02 ジェシー登場(この後ジェシーと手を組む重要なシーン)
1 化学教師 ウォルター・ホワイト 41:00 初お料理
1 化学教師 ウォルター・ホワイト 49:20 化学の知識(赤リンを加熱)で難を逃れる
4 家族への告知 7:20 家族へ肺がんであることを告知
4 家族への告知 46:00 KEN WINSのBMWをショートさせる
5 ウォルターの選択 26:06 トーキングピロー
6 最凶のワル 39:00 ウォルター頭を剃る
6 最凶のワル 42:00 ウォルター、ハイゼンベルクと名乗る
7 犯罪の境界線 43:30 トゥコの「タイタイタイ」

以下シーンの説明

肺がん告知シーン
洗車場で倒れたウォルターは救急車で病院に運ばれる。そこで検査を受け肺がんであることを告知される。その場では冷静を装っていたが、後日、眉毛おやじに切れて洗車場を辞める。悪の道へ進むことを決心する。
ジェシー登場
義理の弟であるDEA捜査官のハンクにたのみ取り締まりの現場を見学させてもらう。捜査官達がエミリオの家に突入後、となりの家の二階から逃げ出してきたジェシーを目撃する。その夜、ジェシーの家を訪問しタッグを組むことを提案する。
初お料理
キャンピングカーを購入し荒れ地でジェシーと初のお料理。パンツ一丁にエプロン姿お料理。
化学の知識(赤リンを加熱)で難を逃れる
初お料理で作成した物をジェシーが卸売をしているクレイジーエイトに売りに行くがエミリオはジェシーにはめられて逮捕されたと思っていると聞かされる。そんなことはないとジェシーがいったところでエミリオ登場。ふたりに拉致られて荒れ地のお料理場に連行される。ウォルターをDEAの仲間と誤解される。脅されたのでレシピを教えるふりをしてフライパン沸かした水に赤リンを投入し難を逃れる。化学の知識で困難を乗り越える初めての場面。パンツ一丁の冒頭の場面につながっていく。
家族へ肺がんであることを告知
ウォルターの自宅でハンク家族達とバーベキュー。その場で、全員に末期の肺がんであることを告げる。
KEN WINSのBMWをショートさせる
銀行で強引に駐車場に割り込んだいけすかない男(ナンバープレートがKEN WINS)をガソリンスタンドで偶然に見かける。ウォルターが仕返しにBMWのボンネットを開け(オープンカー)バッテリーをショートさせ車を炎上させる。ウォルターが大胆不敵な人物に変化してきていることを表現している場面。
トーキングピロー
ウォルターが家に帰ると家族全員がソファーに座っている。エリオットの援助を受けないことを問いただされる。ハンクは援助を受ければいいといい、ジュニアは父さんは弱虫だといわれる。マリーはウォルターが決めることだと言うが議論は紛糾する。ウォルターは自分で決めると言う。治療は受けないと言うが。ウォルターの心は揺れ動き、その後、治療を受けることを決める。しかし、エリオットからの援助は断り、お料理で稼ぐことを決心する。
ウォルター頭を剃る
抗がん剤の副作用で髪が抜け始めたウォルター、髪を剃ってしまう。いよいよ悪に染まって来た。
ウォルター、ハイゼンベルクと名乗る
本名を隠すためハイゼンベルクと名乗る。
トゥコの「タイタイタイ」
ウォルターのお料理を決めたトゥコがタイタイタイといシャウトする。大変印象深い場面。

関連項目

スポンサーリンク

2014年11月6日木曜日

天皇賞(秋)に行ってきた(2014)

スポンサーリンク

enter image description here

ラッキーなことに指定席があたりました。
初の東京競馬場。

当初は京王線の府中競馬正門前駅から行こうと思っていたのですが、Google Mapを見ると府中本町からでもそんなに遠くなさそうなので南武線の府中本町で下車。

駅から高架橋が競馬場までつながっていました。

enter image description here

これは便利です。

途中で競馬新聞を売っていました。
競馬新聞って500円ぐらいするんですね。
結構高い。

高架橋を抜けると入場口があり入場料200円を払っていよいよ場内です。

enter image description here

広大な空間です。
空が広い!

enter image description here

そして、建物がでかい!

9時前に入場しましたが、すでに混雑気味です。
さすが天皇賞です。

さて、天皇賞にはまだまだ時間があります。
建物内を歩きまわってみると、飲食店が目立ちます。
ペッパーランチや吉野家といった定番ファストフードからちょっと高級そうなレストランまであります。

enter image description here

フライドチキンが軽食とはこれ如何にと思って撮った写真です。
ずいぶんヘビーな感じのフライドチキンである。
まぁ手軽に食べられるから軽食といえば軽食か。

enter image description here

これはパドックです。レース前にお馬さんがここで披露されます。
見る人が見れば馬の調子がわかるそうです。

指定席に移動。

enter image description here

なかなかの眺めの良さ。
座席には電源完備。WiFiも入ります。

馬券の購入。

enter image description here

初めてなのでよくわかない。

イスラボニータが人気ぽかったのでイスラボニータを入れつつ適当に購入。

そろそろ出走の時間

航空自衛隊によるファンファーレ。
観衆の拍手でまったく聞こえません。
盛り上がってまりました。

出走。ゴールまで二分ちょい。あっという間のできごと。

第四コーナーからの競り合いがすごい。
総額300円とはいえ、熱くなりました。

熱くなっていたのでゴールの場面の写真はございません。

enter image description here

結果は
1. スピルバーグ
2. ジェンティルドンナ
3. イスラボニータ
みごとに外れました。
イスラボニータもうすこしふんばって欲しかった。
残念。

表彰式に石坂浩二さんが来てました。

総括。
東京競馬場は一大アミューズメントパークであり競馬は

ロマン

である。

以上です。

スポンサーリンク

2014年11月4日火曜日

[golang/cgo] cgoのサンプル - wxWidgetsとgoの組み合わせ

スポンサーリンク

概要

cgoのサンプルを作成しました。
cgoを使ってgoとwxWidgets(C++)を組み合わせています。

ファイル構成

  • widgets.go
  • ui.h
  • ui.cpp

cgoの設定

widgets.goで設定しています。
cgo directivesという
#cgo
で始まるコマンドでコンパイル時やリンク時のオプションを設定できます。
cgo directivesはMacとLinuxなどプラットフォーム毎に定義できます。

#cgo linux ...
#cgo darwin ...

と書くことでプラットフォーム毎に別のオプションを設定できます。

CPPFLAGSLDFLAGSwx-configから取得したものをコピペしました。
wx-configはwxWidgetsの設定を表示するコマンドです。
wxWidgetsをインストールすると使えます。

$ wx-config --cppflgas
$ wx-config --ldflags

そのあと、ui.hをインクルードしています。
これで、ui.hで定義されているものをgoの世界から参照できます。

ui.hではdarwuiという関数をexternで宣言しています。

ビルド

事前にwxWidgets-3.0のインストールが必要です。

$ go build

でビルド可能です。

動作

$ ./widgets
  1. goのmainからwxAppを初期化・実行し、Windowを表示します(ui関数内の処理)
  2. Fileメニュー → Newを選択する
  3. wxWidgets側からgoの関数drawRoutineを3呼び出します
  4. drawRoutine関数では描画用のC++の関数drawを呼び出すgo routineを起動します。
  5. この処理はgoroutineでで並列化されます
  6. 赤・青・緑色でランダムに円が描画されます

追加(2014/11/5)

linux版にXInitThreads()を追加しました。 これがないと描画中に落ちます。

関連項目

スポンサーリンク

2014年10月30日木曜日

wxWidgets 3.0.2用のVagrantfileを作成した

スポンサーリンク

wxWidgets-3.0.2がリリースされていたのでVagrantfileを作成した。

wxWidgets 3.0.0用のVagrantfileを作成した

変更点

  • ubuntuをtrusty64に変更しました。
  • apt-getを高速化するため/etc/apt/sources.list内のurlをftp.jaist.ac.jpに変更しています。
  • wxWidgetsをsourceforgeからダウンロードするように変更しました。

Vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "ubuntu/trusty64"

  config.vm.provider :virtualbox do |v|
    v.gui = true
  end

  config.vm.provision :shell, :inline => <<-EOT
    sed -i".bak" -e 's/archive\.ubuntu\.com/ftp.jaist.ac.jp/g' /etc/apt/sources.list
    apt-get update -y
    apt-get install -y ubuntu-desktop
    apt-get install -y g++
    apt-get install -y libgtk2.0-dev
    apt-get install -y curl
  EOT

  config.vm.provision :reload

  config.vm.provision :shell, :inline => <<-EOT
    rm -rf wxWidgets-3.0.2*
    curl -OL https://sourceforge.net/projects/wxwindows/files/3.0.2/wxWidgets-3.0.2.tar.bz2
    tar xvfj wxWidgets-3.0.2.tar.bz2
    cd wxWidgets-3.0.2
    mkdir -p ubuntu
    cd ubuntu
    ../configure --disable-debug --disable-shared --enable-unicode --enable-graphics_ctx
    make
    make install
  EOT

end
スポンサーリンク

2014年10月25日土曜日

[golang/cgo] C配列をGoの関数に渡す方法

スポンサーリンク

Cの配列をGoの関数に渡す方法。

  1. C配列のポインタと長さを渡す
  2. Go側でC配列をSliceにみせかける

メリットとしてはオーバーヘッドがほぼないこと。

デメリットとしてはreflect.SliceHeaderの構造は将来のバージョンで変更される可能性があるのでポータビリティの点で不安がある。

ちなみに、配列のメモリはC側でアロケートされているので、Go側ではメモリ管理はされない。

// c
int a[] = {0, 1, 2, 3};
hoge(&a[0], 4);
// go
func hoge(p *C.int, l C.int) {
  var go_array []C.int
  slice := (*reflect.SliceHeader)(unsafe.Pointer(&go_array))
  slice.Cap = int(l)
  slice.Len = int(l)
  slice.Data = uintptr(unsafe.Pointer(p))
  fmt.Println(go_array)
}

関連項目

スポンサーリンク

今週の出来事(2014/10/25)

スポンサーリンク

2014/10/20

夕飯に山芋そばを食す。
夜中に腹痛で目覚める。

昨年火災にあった藪そばが復活していた。
小奇麗な雰囲気である。

2014/10/21

iMac 5kモデルを見に行く。
画面がでかくて綺麗である。
解像度的にはMBPと同じぐらいか。
それほどインパクトは強くなかった。

2014/10/22


気温がさがる。

2014/10/23

2日連続で雨。
Windows 10 Previewを更新。

2014/10/24

NYでギニア帰りの医師がエボラを発症。
今後の情勢がきになる。

マリにエボラ上陸。

スポンサーリンク

2014年10月24日金曜日

[iOS8] 動画でみる・ヘルスケアの簡単な使い方

スポンサーリンク

iOS8に「ヘルスケア」というアプリが追加されました。

健康に関するデータを表示してくれるアプリのようですが、初めて起動するとどうやって使うのか正直よくわかりませんでした。

そこで、簡単な使い方を動画にしてみました。

iOS8 ヘルスケアの簡単な使い方

内容は

  • ウォーキング + ランニングの距離
  • 歩数
  • 体重

をダッシュボードに表示する方法です。

ちなみに、ウォーキング + ランニングの距離と歩数はiPhone 5s以降であればM7あるいはM8プロセッサが検出してデータを保持しているので自分で入力しなくてもデータは更新されます。

体重は、さすがにiPhoneは検知できないので、手入力です。
これは動画で説明していませんが、
「データポイントを追加」をタップして入力することができます。
自分で体重を測ったあとに入力しておけばグラフが作成されます。

スポンサーリンク

2014年10月21日火曜日

[話題] 虫はLEDがお好き?

スポンサーリンク

Who Loves LED Lights? The Nobel Committee – And Flying Insects | Tech | Australian Popular Science
によると、虫たちはナトリウムランプの街灯よりLEDの街灯にあつまりやすいらしい。

虫は青色の光によく集まる習性があるらしい。

白色のLEDは青色LEDの光とその補色である黄色の光との組み合わせである。

虫は、我々には白く見える光の中の青色を感じることができるらしい。

研究者がナトリウムランプとLED照明で比較実験を行ったところLEDの方が48%ほど多く虫が集まってきたらしい。

LEDは街灯の多い 市街地に虫を呼び込むことになり、生態系を乱したり病気を持ち込んだり有害な虫が広がるかもしれない。

研究者は、電気屋さんとの協力が生態系への影響を最小にするために必要であると考えている。

虫だけに無視できない話ですねw

ちなみにこの話題、ナトリウムランプとの比較なのでその点注意です。日本では街灯は蛍光灯が多いですが、海外だとナトリウムランプのが多い国もあります。ナトリウムランプからLEDにかえると虫があつまりやすいということで、日本のように蛍光灯からLEDにかえるとどうなるかはわからないですね。LEDと蛍光灯だとLEDの方が虫が寄り付きにくいというはなしもあるようですがどうなんでしょうか?

スポンサーリンク

2014年10月18日土曜日

[Yosemite] MacPortsでwxWidgetsビルドに失敗する件

スポンサーリンク

OSX Yosemiteにアップグレードしてさっそくmacportsをインストールした。
ちなみにmacportsのpkgインストーラだとインストールできなかったのでソースからインストールした。
で、wxWdigetsを

追記
Yosemiteに対応したMacPorts 2.3.2がリリースされている。
The MacPorts Project -- Download & Installation

$ sudo port install wxWidgets-3.0 @3.0.2_1

としたところエラーが発生。どうやらWebKitLegacy.hがみつからないというエラーらしい。

#16329 (wxwidgets doesn’t build on Mac OS 10.10) – wxWidgetsに報告がある。

この報告を読むとYosemiteではWebKit.hをWebKitLegacy.hに統合したようだ。

#include <WebKit/WebKit.h>

#include <WebKit/WebKitLegacy.h>

に書き換えるべしとある。
そして、macportsがpatch(patch-webview_webkit.mm.diff )でこの書き換えを行なっているようだ。

ところが、Xcode 6.0.1に付属のSDKがMacOSX10.9だけなのでこちらはWebKit.hしか存在しない。
その結果WebKitLegacy.hなんてないぜとエラーが出ているようだ。

結局パッチをあてない状態にソースをもどしてビルドした。

Xcode 6.1からMacOSX10.10のSDKが付属するのだろうか?

追記

より優雅な解決方法

$ sudo port edit wxWidgets-3.0

エディタにwxWidgets-3.0の設定ファイルが表示される。
以下をコメントアウト(行頭に#を置く)して保存すればよろしい。

platform darwin 14 {
    patchfiles-append patch-webview_webkit.mm.diff
}

2014/10/21

xcode 6.1がリリースされた。MacOSX10.10のSDKが付属。

回避策は不要

スポンサーリンク

今週の出来事(2014/10/18)

スポンサーリンク

2014/10/13

台風19号襲来
夜になり風雨つよまる
横浜市から緊急速報メールがとどく
音に驚くが
「詳細はホームページをごらんください」
という一文にも驚く。
ホームページが落ちるだろうとおもったら落ちていた。

2014/10/14

台風一過で気温高し
夜になり気温が下がる

2014/10/15

[話題]
ブロッコリが自閉症の治療に役立つ!?

Could A Treatment For Autism Be Found In…Broccoli? - Modern Farmerによると、ブロッコリに含まれる成分が自閉症の治療に役立つかもしれないらしい。
自閉症は発熱しているとその症状が和らぐ→発熱なしに発熱と同じ状態をつくればよい→ブロッコリに含まれている成分がその状態をつくれるかも?
ということらしい。
なお、ブロッコリを食べまくってもその効果は期待できないらしい。

2014/10/17

AppleからiPad Air 2とiPad mini 3、iMac 5k retina、mac miniが発表される。
5kというのがすごい。驚異的である。実際の画面を拝みたい。

OSX Yosemiteがリリースされる。
MBPにクリーンインストール。
デザインがフラット化。画面の視認性がよくなっている。

enter image description here
この電池のデザインがいまいちだ。

スポンサーリンク

2014年10月13日月曜日

ビアレッティ ブリッカでカプチーノを楽しむ

スポンサーリンク

ビアレッティ ブリッカでカプチーノを楽しむ。
カプチーノは泡立てたミルクにエスプレッソをそそいだ飲み物です。
ミルクとエスプレッソがいい感じに混和して美味しいです。

ミルクの泡立てにはハリオのクリーマーゼットを使用しました。
クリーマーゼットはミルクの撹拌機です。
単三電池二本で動作します。
温めたミルクをクリーマーゼットで撹拌するといい感じにミルクが泡立ちます。
泡だったミルクにブリッカで作ったコーヒーを注ぎ込めばカプチーノのできあがり。

クリーマーゼットでミルクを泡立てる
ブリッカでつくったコーヒーを泡立てたミルクに注ぎ込む

関連投稿

スポンサーリンク

2014年10月11日土曜日

今週の出来事(2014/10/11)

スポンサーリンク

2014/10/06

台風18号襲来
0710頃出勤
雨強し
1100頃風が強くなる
一時間ほどでおさまる
午後は綺麗に晴れた

横浜で土砂災害があったようだ

2014/10/07

ノーベル物理学賞
青色LEDの発明に日本人3名に授与される
素晴らしい
白色LEDは青色LEDがないとできなかったらしい
知らなかった

2014/10/08

皆既月食
今回の月食は高度が低く大きく見えた

アメリカでエボラを発症した患者が死亡

2014/10/09

右足が痛む
歩き難し
筋肉が傷んだようだ

2014/10/10

台風19号が近づいてきている
この台風も急速強化で強力になっている
電車では14日に遅延や運休の可能性があるとアナウンスしている

スポンサーリンク

2014年10月10日金曜日

[Swift] String.rangeOfStringについて

スポンサーリンク

SwiftのString.rangeOfStringについて
文字列の中から特定の文字を探しだしてその位置を取得してその次の文字にアクセスしようとしてハマりました。

NSString.rangeOfStringの戻り値NSRangeは、

struct NSRange {
    NSUInteger location;
    NSUInteger len;
};

的な構造体だったと記憶していたのでSwiftもその乗りだろうと考えて

var str = "hoge/gero"
var range = str.rangeOfString("/")
var pos = range.startIndex + 1

とかするとエラーがでてコンパイルできましぇんと言われます。

どうやらrange.startIndexが型が異なるとおっしゃられているらしい。

調べてみると、

range.startIndex

はイテレータ的な型らしい。
なのでこれを進めるには

advance(range.startIndex, 1)

的な書き方をするらしい。

ちなみにString ClassにはstartIndexというインスタンスメソッドがあってこれを使って

var pos = distance(str.startIndex, range.startIndex)

としてやれば数値として先頭からのオフセットを計算できます。

直接数値でインデクッスを表現しない理由は
Strings in Swift – Ole Begemann
これっぽいです。

以上

スポンサーリンク

2014年10月5日日曜日

[ブリッカ][コーヒ粉] コロンビアコーヒー”スプレモ”

スポンサーリンク

台風18号の影響ですごい雨です。

先日購入したバルベーラ マゲットが底をつきました。

今回は、コロンビアコーヒー”スプレモ”を購入しました。

enter image description here

コロンビア大使館御用達のようです。

さて、いつものようにブリッカでいれてみました。
酸味は少しありますが強くなく爽やかです。
少し渋みがるような感覚があります。
全般的には上品で飲みやすい味わいです。

関連投稿

スポンサーリンク

2014年10月4日土曜日

今週の出来事(2014/10/04)

スポンサーリンク

2014/09/27

11:53 御嶽山噴火
水蒸気爆発と思われる
晴天、休日、紅葉シーズンが重なり犠牲者多数
御嶽山は死火山と思われていたが1979年に水蒸気爆発
活火山の定義をみなおすきっかけとなった

2014/09/30

Winodws 10が発表される
9はどこにいったのか?
スタートボタンが復活
Windows 10 Technical Previewが提供される
Virtual Boxにインストールした

スポンサーリンク

感想
スタートボタンがやはり便利
ほかは8とほとんど変わらず
もうこの仕様でよいとおもいます
安定性を高めてはやくリリースしてほしい

2014/10/01

エボラ出血熱、アメリカ国内で初の感染
テキサス州ダラスで感染者を確認
隔離中

リベリアで取材を行ったアメリカのカメラマンがエボラに感染
隔離中

今後の動向に注目

愛用のiPhone 5Sのディスプレイ右上に浮き上がりを発見
Apple Storeのジーニアスバーに持っていった
ディスプレイの交換で対応できるとのことで交換していただいた
ギリギリ保証期間だったので無料
ディスプレイの交換費用は13,800円らしい

2014/10/03

自称パフォーマーがヒカリエの屋根に侵入
確保される
ルパン四世らしい

docomoからiPhone対応サイフケータイジャケットが発表される

台風18号が接近中
急速強化で超強力な台風ぽい
関東には5日から影響がでそうである

急速強化
台風は海が温かいとより勢力が強くなる
海水温は海の表面の浅いところだけが高くなる
台風がくると深いところの温度の低い海水とかきまぜられ海水温がさがり台風の強化に寄与しなくなるが
深いところまで温度が高いとかき混ぜられても温度が維持され海水温が下がらない
そのため長い間台風が強化される

スポンサーリンク

2014年9月24日水曜日

これはいい!フロアフロスは歯医者さんおすすめのフロス

スポンサーリンク

先日、歯医者さんの定期健診に行ってきました。
歯と歯の間に汚れがたまっていると指摘されました。
毎日、フロスをかけていたにもかかわらずです(汗)
どうやら使っているフロスが細すぎてうまく汚れがとれていないようでした。(細いフロスでもきちんと使用すれば汚れはとれます)

そこで、おすすめのフロスを衛生士さんに尋ねました。
太めで繊維が柔らかく、フッ素も入っているこのフロスがよいとおすすめされました。

fluorflossです。
enter image description here

Oral Careが販売しています。

特徴は

  • 繊維がやわらかい
  • 唾液の水分で繊維が膨らみプラークを除去しやすい

です。

実際、使用してみると非常によく汚れがとれます。
こんなに汚れていたんだとびっくりすることもよくあります。
また、繊維がやわらく痛みはほぼ感じません。

オーラルケアフロアフロスの評価は 5点満点中 5点です。

よいフロスがないかなぁと探しっている方。
おすすめです。

スポンサーリンク

2014年8月28日木曜日

[OSX] clamavの使い方

スポンサーリンク

オープンソースのantivirusソフトであるClamAVをOSXで使用する方法。

インストール

私はパッケージ管理にThe MacPorts Project を利用しています。

$ sudo port install clamav

clamavを使用するにはまず定義ファイルを更新する必要があります。

$ sudo freshclam

で更新できるのですが、

ERROR: Can't open/parse the config file /opt/local/etc/freshclam.conf

というエラーが表示されます。
これは/opt/local/etc/freshclam.confが存在しないためです。
/opt/local/etc/にfreshclam.conf.sampleがありますので

$ sudo cp /opt/local/etc/freshclam.conf.sample /opt/local/etc/freshclam.conf

でsampleをコピーし

# Comment or remove the line below.
Example

# Comment or remove the line below.
# Example

とします。

その後、freshclamを実行すると、

ERROR: Can't change dir to /opt/local/share/clamav

というエラーが表示されます。
これは

/opt/local/share/clamav

が存在しないためです。
ディレクトを作成します。

$ sudo mkdir /opt/local/share/clamav

いざ更新です。

$ sudo freshclam

こんどは

ERROR: Can't create temporary directory /opt/local/share/clamav/clamav-5532dd27edeabedf4f6a1c03484e175b.tmp
Hint: The database directory must be writable for UID 82 or GID 82

というエラーが表示されます。
どうやらディレクトにclamavのアクセス権限が必要なようです。
そこで

$ sudo chown clamav /opt/local/share/clamav

で権限をかえてやります。
これでやっと実行できます。

$ sudo freshclam

その後

$ clamscan -r <検査したいディレクトリ>

で検査することができます。

まとめ

$ sudo port install clamav
$ sudo sed -e 's/Example/#Example/' /opt/local/etc/freshclam.conf.sample > /opt/local/etc/freshclam.conf
$ sudo mkdir /opt/local/share/clamav
$ sudo chown clamav /opt/local/share/clamav
$ sudo freshclam
$ clamscan -r /
スポンサーリンク

2014年8月27日水曜日

InstagramのHyperlapseをためしてみた。

スポンサーリンク

Instagramからタイムラプス動画作成アプリHyperlapseがリリースされました。

手ぶれ補正機能が強力で手持ちでも安定したタイムラプス動画が作成できます。

さっそくビアレッティ・ブリッカの抽出の様子を撮影しました。
30秒ほどにまとまっています。
もとの動画は3分ぐらいです。
最初はブレが大きいですがそのあとは比較的安定して撮れています。

アプリはシンプルなUIで使い勝手がよく気軽に使える感じです。

スポンサーリンク

2014年8月23日土曜日

[ブリッカ][コーヒ粉]バルベーラ マゲット

スポンサーリンク

成城石井にて購入。599円。

バルベーラ(Barbera)はイタリアはメッシーナにおいて1870年にドメニコ・バルベーラによって創業されたコーヒー焙煎会社です。

マゲット(maghetto)は、
Barbera Italian Coffee of America - Buy online ground beans - Barbera Italian Coffee of America - Italian coffee traditions brought to perfection
こちらのページによると、イタリア語で”Little Magician”=”小さな魔法使い”を意味するらしい。創業者の方が”il Mago”つまり”The Magician”と呼ばれていたことにちなむらしいです。

enter image description here

さっそくブリッカでいれてみました。
酸味はほとんど無し。
苦味もそこそこで飲みやすい味わいです。
甘いものにあいそうです。
イリーのディープローストエスプレッソに似た感じです。

関連投稿

スポンサーリンク

2014年8月15日金曜日

かわいい!くまモン マネしておしゃべりぬいぐるみ

スポンサーリンク
帰省のお土産に
「くまモン マネしておしゃべりぬいぐるみ」
を購入しました。

話しかけた言葉をくまモン声でおしゃべりしてくれます。

超ラブリー

「ふなっしー」と声をかければ
くまモン声で
「ふなっしー」といってくれます(笑)

みんな大喜びです!



スポンサーリンク

2014年7月31日木曜日

[golang] cgoの使い方

スポンサーリンク

ファイル構成

$ ls
test.c  test.go  test.h

goからc/c++の関数を呼び出す。
c/c++からgoの関数を呼び出す方法。
import “C”の真上のコメントがCの定義部として処理されます。
そこで定義されているものはgoの世界から”C.”プリフィックスでアクセスできます。
C.GoStringはcの文字列からgoの文字列を生成します。
C.CStringはgoの文字列からc文字列を生成します。mallocでメモリが確保されるのでfreeで解放する必要があります。

goの関数は関数上に//export 関数名と書くことで_go_export.hに書きだされます。
c側で
#include “_cgo_export.h”
としてやれば呼び出すことができます。
関数の戻り値は関数名_returnという構造体が自動的に定義されます。

$ go tool cgo test.go

で_objフォルダにcのコードが吐出されます。
こいつの中をみれば理解しやすいでしょう。
ちなみにc++のコードを呼ぶときは関数の宣言をextern “C” {}で囲ってやればよろしい。

関連項目

// test.go
package main

/*
#include "test.h"
*/
import "C"
import (
    "fmt"
    "unsafe"
)

//export gohoge
func gohoge(h *C.hoge_t) (C.int, *C.char) {
    fmt.Printf("go -> %d:%s\n", h.a, C.GoString(h.str))
    return 2, C.CString("return from go")
}

func main() {
    h := &C.hoge_t{
        a:   C.int(1),
        str: C.CString("hello from go"),
    }
    C.hoge(h)
    C.free(unsafe.Pointer(h.str))
}
// test.h
#ifndef test_h
#define test_h
#include <stdio.h>
#include <stdlib.h>

typedef struct hoge_t {
  int a;
  char *str;
} hoge_t;

extern void hoge(hoge_t* h); 
#endif
// test.c
#include "test.h"
#include "_cgo_export.h"

void hoge(hoge_t* h) {
  struct gohoge_return r = gohoge(h);
  fprintf(stdout, "c  -> %d:%s\n", r.r0, r.r1);
  free(r.r1);
}
# 実行結果
go -> 1:hello from go
c  -> 2:return from go
スポンサーリンク

2014年7月19日土曜日

PS3 media serverをvagrantで動かす

スポンサーリンク

PS3 Media ServerをvagrantのUbuntuで動かす方法。

Ubuntuは12.04TLS (precise)

まず、PS3 Media Serverをインストール

$ sudo add-apt-repository ppa:happy-neko/ps3mediaserver
$ sudo apt-get update
$ sudo apt-get install ps3mediaserver

これでPS3 Media Serverがインストールされます。
PS3 Media Serverは同一のLANないに存在するDLNA Client(PS3等)と通信します。
そのためDLNA Clientからvagrant上のUbuntuにアクセスできなければなりません。
色々やりかたはありますがVagrantをブリッジ接続する方法を選択しました。

Vagrantfileに以下の記述を追加します。

config.vm.network :public_network

この設定を追加しvagrant upすると
ブリッジするインタフェイスを訊いてくるので自分が利用しているインタフェイスを選択してください。

Ubuntuが起動したら

$ ps3mediaserver

でPS3 Media Serverが起動します。

DNLA Client側からこのサーバーに接続すれば利用できます。

参照

スポンサーリンク

2014年7月15日火曜日

[golang] goで簡易httpサーバ

スポンサーリンク

The Go Programming Languageで簡易的なhttpサーバを作成してみました。

コマンド引数で指定したファイルをサーブします。
go言語シンプルにかけていい感じです。

ビルドの方法
httpd.goを保存後

$ go build

実行方法

$ ./httpd httpd.go -p 8080

試しに接続

$ curl -i localhost:8080
HTTP/1.1 200 OK
Content-Disposition: attachment; filename="shttpd.go"
Date: Tue, 15 Jul 2014 10:43:30 GMT
Content-Length: 1299
Content-Type: text/plain; charset=utf-8

package main

import (
  "flag"
  "fmt"
  "net/http"
  "log"
  "io"
  "os"
  "path"
)
...

ソースコード

参考にしたサイト
* http - The Go Programming Language
* flag - The Go Programming Language

スポンサーリンク

2014年6月24日火曜日

ブリッカでクレマをつくるコツ

スポンサーリンク

ブリッカを購入して一ヶ月が過ぎました。
ほぼ毎日使用しています。
やっと最近クレマがつくれるようになりました。

「コツ」は一つです。

「きっちり締める」

ことです。

ブリッカの上のユニットの底にパッキンがついています。
このパッキンが下のユニットにセットしたコーヒーの粉を入れる器具を押さえつける仕組みです。
締め方が緩いと器具の押さえつける力が弱く圧力が逃げるので抽出時の圧が下がってクレマがあまりできないような感じです。

きっちり締めると把手が丁度安全弁の上辺りにきます。
個体差があるかもしれませんが目安に便利です。

enter image description here

抽出の様子です。

プシュッと鳴った瞬間に火をとめています。抽出後すぐカップに注がないとクレマが消えます。
ビアレッティ ブリッカ クレマの様子

関連投稿

スポンサーリンク

2014年6月6日金曜日

[swift]Closureのunownedについて

スポンサーリンク

ClosureからselfをキャプチャするとselfとClosure間に循環参照が生じメモリが解放されないとこの辺に書いてありました。

解決策としてはClosureのキャプチャリストにunowned selfと記述しselfを保持しない形でキャプチャすればよいとのことです。

で、やってみました。

。。。解放されない気がする

import Foundation

class HTMLElement {

    let name: String
    let text: String?

    @lazy var asHTML: () -> String = {
        [unowned self] in
        if let text = self.text {
            return "<\(self.name)>\(text)</\(self.name)>"
        } else {
            return "<\(self.name) />"
        }
    }

    init(name: String, text: String? = nil) {
        self.name = name
        self.text = text
    }

    deinit {
        println("\(name) is being deinitialized")
    }

}

func test1() {
    var paragraph:HTMLElement? = HTMLElement(name: "test1", text: "Hello, world")
    println(paragraph!.asHTML())
    paragraph = nil
}

func test2() {
    var paragraph:HTMLElement? = HTMLElement(name: "test2", text: "Hello, world")
    paragraph = nil
}

println("call: test1()")
test1()
println("call: test2()")
test2()

println("-- end --")

test2()のみdeinitのメッセージ”test2 is being deinitialized”が表示されます。
test1()はdeinitのメッセージが表示されません。

追記
weakでキャプチャするとtest1()でもdeinitがよばれます

@lazy var asHTML: () -> String = {
    [weak self] in
    if let text = self!.text {
        return "<\(self!.name)>\(text)</\(self!.name)>"
    } else {
        return "<\(self!.name) />"
    }
}

追記

stackoverflowに同様のトピックあり。 ios - Object is not deallocated when capturing by closures in Swift - Stack Overflow

追記

Xcode6-Beta3にて解放されるようになりました。

スポンサーリンク

2014年6月5日木曜日

WebDriverJs + chromedriverでChromeの拡張機能を使用する方法

スポンサーリンク

方法

  1. chrome.Optionsに拡張機能のcrxファイルへのパスを指定します。
  2. crxはChromeの拡張機能のフォルダから作成することができます
  3. OSXの場合Chromeの拡張機能は~/Library/Application Support/Google/Chrome/Default/Extensionsでフォルダ単位で管理されています。
  4. Chromeのメニューからツール->拡張機能を選択
  5. 拡張機能タブの”拡張機能のパッケージ化…”ボタンをクリック
  6. 拡張機能のルートディレクトリの参照ボタンをクリック
  7. crx化したい拡張機能のフォルダを~/Library/Application Support/Google/Chrome/Default/Extensionsから選択
  8. その中にバージョンごとのフォルダがあるのでパッケージ化したいバージョンのフォルダを選択
  9. 拡張機能のパッケージ化ボタンをクリック
  10. .crxと.pemが作成される
  11. .crxを好みのフォルダに移動

以下コード例

var wb = require('selenium-webdriver');
var chrome = require('selenium-webdriver/chrome');

var options = new chrome.Options().addExtensions("/path_to_crx/hogehoge.crx");

var driver = new wb.Builder().withCapabilities(wb.Capabilities.chrome()).setChromeOptions(options).build();
スポンサーリンク

2014年6月4日水曜日

[ブリッカ][コーヒ粉]ラバッツァ

スポンサーリンク

先日購入したビアレッティのブリッカ(Brikka)。
ブリッカと同時に購入したイリーのエスプレッソ粉がもうそこをついたので、ラバッツァのエスプレッソ粉を購入しました。

さっそくブリッカで飲んでみました。

いつもどおりの作業。
水をボイラー部に投入し、ロート状の器具に粉をつめます。
粉の色はイリーに比べて明るいです。
イリーの粉が深い色なのはディープローストだったからですね。

ブリッカを火にかけて五分。
プッシューっとコーヒーが吹き上がります。
コーヒーの香りが部屋に充満します。
香りはイリーに比べて軽いですね。
すこし華やかな感じです。

味は、イリーのディープローストのエスプレッソより苦味が弱く酸味があります。酸味があるぶん爽やかです。
朝に飲むのに適していそうですね。

私的にはイリーの方が好みかな。

追記(2014/7/16)

アイスにすると美味しいです。

関連投稿

スポンサーリンク

[Swift] Swiftを試してみた

スポンサーリンク

Appleから新言語Swiftが発表されました。

同時に発表されたXcode6-BetaをインストールするとSwiftが使えます。
PlaygroundというモードがあってインタラクティブにSwiftを試すことができます。絵が描けたりするようなのでさっそくSICPの図形言語をSwiftで書いてみました。

感想。
1. typescriptに似ている
2. どことなく関数型言語のにおい
3. 高階関数がシンプルにかける
4. classの初期化時に引数名?を与えるのが面倒
5. Obj-Cにくらべるとシンプルで書きやすい
6. 総合すると出来の良い言語だと思う、いまのところ

参考サイト
1. http://sicp-picture-language-racket.googlecode.com/files/PictureLanguage_1_0.scm

enter image description here

スポンサーリンク

2014年5月29日木曜日

[iOS]XcodeのLaunchImage設定ではまった話

スポンサーリンク

現象

最近はXcodeでLauchImageを設定できるようになったのですがはまったのでメモ。

iPhoneで画面をキャプチャするとPNG(Portalbe Network Graphics)形式で保存されます。
これをXcodeのLaunchImageにドラッグしても受け入れてもらえません。悲しいことに。拒絶されます。

原因と解決策

原因は拡張子です。iPhoneでキャプチャしたPNGファイルの拡張子はPNGと大文字になっています。

これがいけません。

PNGを小文字のpngにしてやればXcodeは快く受け入れてくれます。

まとめ

拡張子は小文字でお願いします。

スポンサーリンク

2014年5月26日月曜日

nodejs + selenium + phantomjs でheadless scraping

スポンサーリンク

動機

いままでrubyでselenium使ってたけどnodejsでいいんじゃね?
typescriptいい感じだし。JavaScriptで統一したい年頃だし。phantomjs使えばheadlessでスクレイピングできちゃうよ。

[PR]

環境構築

  1. 始めにnodejsありき。
  2. npm install selenium-webdriver
  3. git clone git://github.com/ariya/phantomjs.git
  4. cd phantomjs
  5. git checkout 1.9
  6. ./build.sh
  7. ビルドが終わるまで気長に待つ

実行

phantomjsをJSON Wire Protocolモードで起動しておく

$ /hogehoge/phantomjs/bin/phantomjs -w &

お試しスクリプトを作成

// test.js
var wb = require('selenium-webdriver');
var driver = new wb.Builder().
  usingServer('http://localhost:8910').
  withCapabilities(wb.Capabilities.chrome()).
  build();

driver.get('http://www.google.com').
then(function () {
    return driver.getPageSource();
}).
then(function (src) {
    console.log(src);
});

$ node test.js

無事実行できればhttp://www.google.comのhtmlソースが表示されます。
htmlをパースしたければcheerioが便利です。

スポンサーリンク

2014年5月24日土曜日

ビアレッティ ブリッカでいれるコーヒーは美味しい

スポンサーリンク

enter image description here

いわゆるマキネッタといわれる直火式エスプレッソ器具。ビアレッティ ブリッカ(Brikka)の4cupモデルを日本のアマゾンで購入しました。
うわさによるとイタリアのアマゾンで購入したほうが安いらしいですが、値下げされていたので日本のアマゾンで購入しました。

(楽天でも販売されています。)

さすがイタリア、緩衝材なしでブリッカがそのまま箱のなかに入っているだけの大胆な梱包。搬送中にゆれてとってが箱に当たって箱に穴が。でも、ブリッカ自体にはなんら問題なし。頑丈にできています。アルミの鋳造なのか肉厚でフォルムが美しい。さすがイタリア。デザインの国。日本語の説明書が入っていました。

構造は単純で上下の二層構造。下に水を入れ網のついた漏斗的な器具にコーヒー粉をつめてセット。上と下はネジ式になっていて合体します。そのままガスコンロに置いて加熱してやれば下の水が沸騰してその蒸気で圧力が高まりお湯が上部に向かって送り込まれコーヒー粉からコーヒー成分を抽出して上にたまる仕組みです。至って単純。ちなみにブリッカは「モカエキスプレス」の改良版。より高い圧力で抽出できるのでより本格的なエスプレッソに近いコーヒー(クレマができる)ができます。

さて買ったからには試してみねば。コーヒー粉、これはイリーのエスプレッソ粉を購入。初回、無事プッシューという音ともに抽出できたがクレマは一瞬で消えました。初回なので金属臭がして飲まずに捨てました。数回抽出するとコーヒーの油分の膜が金属表面にでき金属臭がなくなります。三回目の抽出で初試飲。クレマは消えましたが香り高く凝縮された味わい深いコーヒーができました。クレマをつくるにはこつが必要のようです。クレマはなくても味は濃く美味しいです。ネスプレッソより美味しいかも。(参照 ブリッカでクレマをつくるコツ)

加熱を始めて5分ぐらいで抽出されます。準備を含めるとおおよそ10分はコーヒーを飲むまでかかります(慣れれば5分で飲めます)。この作業を楽しめるかどうか心のゆとりが試されます。

ちなみに器具は抽出後かなり熱くなります。コーヒー粉を捨てるために冷めるまでまたなければなりません。なので、連続で何杯も抽出するのは難しいです。大きめの(4cup)がおすすめです。大体ですが抽出される量は120mlぐらいです。

enter image description here

まとめ。仕組みは単純。そして美味しいコーヒーが飲めます。抽出作業が理科の実験みたいで楽しい。フォームドミルクを入れてカプチーノとか作るともっと楽しめそう。
おすすめです!!

関連投稿

追加

ブリッカ抽出の様子の動画を作成しました。抽出は2:49あたりです。
早回しバージョン
クリーマーゼットでミルクを泡立てる
ブリッカでカプチーノ
スポンサーリンク

2014年5月8日木曜日

キャタピランは超便利

スポンサーリンク

enter image description here

概要

靴紐がほどけて何度も結び直すのが面倒です。
こういうページを参考にして色々結び方を試してもやはり結局ほどけます。
これはおしゃれ、15の靴ひもの結び方:らばQ
靴紐がほどけると靴紐を自分で踏んで転倒したり危険です。

解決策

調査したところ、キャタピランという画期的な靴紐があるらしい。
コブ付きの靴紐です。結ぶ必要はありません。
コブが靴紐を通す穴にひっかかkり緩まない仕組みです。

使用感

実際にキャタピランを購入し半年使用しました。
あたりまえですがほどけません。
そして足と靴のフィット感がよく普通の靴紐より疲れにくい感じです。
ただ、時間がたつにつれ紐が伸びてくる感じは少しあります。
紐は結ばないので端っこは穴からでますが目立ちません。
半年感で気づいた人は一人もいません。

まとめ

非常に満足しています。
靴紐になやまされている方におすすめです!

スポンサーリンク

2014年3月29日土曜日

最近Vagrantのubuntuでsynced_folderでエラーが発生する件について

スポンサーリンク

最近vagrant上のubuntuでsynced_folderをマウントするときにエラーが発生するので調査しました。

どうやらVirtual Boxの不具合らしいです。
#12879 (Can’t mount shared folders with guest additions 4.3.10) – Oracle VM VirtualBox

回避策
vagrant sshでubuntuにログイン後以下のコマンドを打つべし。

sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions

参考サイト

スポンサーリンク

2014年3月7日金曜日

Fusion 360で文字のモデルを作成する方法

スポンサーリンク

概要

Autodesk Fusion 360(ver.2.0.2455)で文字のモデルを作成します。
ちょっとわかりにくい操作です。

方法

  1. Toolbar→スケッチ→テキストをクリック
  2. 文字を配置したいPlaneを選択
  3. 文字を配置したいPlane上の位置をクリック
  4. 設定ダイアログが表示されるので文字、高さ、フォントを設定してOKをクリック
  5. 表示された文字をクリックして右クリック(この時文字が水色(選択色)になります)
  6. プレス/プルをクリック
  7. 矢印をドラッグして押出せば文字のモデルが完成!

スポンサーリンク

2014年2月27日木曜日

sedのデリミタを変更する

スポンサーリンク

sedでファイルパスを操作する時、sedのデリミタが’/’なのでパスに含まれる’/’をエスケープしなければなりません。sedでさくっと処理したいのにいちいちエスケープするのは面倒です。

例えば、パスから/usr/localを/usrに置換するコマンドは以下のようなります。見るからに複雑です。

$ sed -s 's/\/usr\/local/\/usr/'

これをデリミタを変更して書くと簡単です。

$ sed -s 's%/usr/local%/usr%'
スポンサーリンク

2014年2月26日水曜日

デカングーのワイパー(2013)

スポンサーリンク

ワイパー購入履歴。
2013年に購入。
カングーは2012年版(側面のモールがボディ同色)

  • ACDelco(ACデルコ) ワイパーブレード AFS600 (運転席側) - 1953円
  • ACDelco(ACデルコ) ワイパーブレード AFS550 (助手席側) - 1953円

こちらで購入。
アメ車専門店 ガレージダイバン - Yahoo!ショッピング
いまも売っているのかは不明。

AC Delcoのワイパーにはアダプタが付属していてルノーの変態フック(バヨネット)にも対応しています。
拭き具合は良好ですが三ヶ月ぐらいで時々ビビリがでるようになりました。実用上は問題なくつかえてはいます。

スポンサーリンク

2014年2月19日水曜日

llvm3.2をビルドする方法

スポンサーリンク

ソースコードをダウンロードします。

$ wget http://llvm.org/releases/3.2/llvm-3.2.src.tar.gz
$ wget http://llvm.org/releases/3.2/clang-3.2.src.tar.gz
$ wget http://llvm.org/releases/3.2/compiler-rt-3.2.src.tar.gz

解凍します。

$ tar xvfz llvm-3.2.src.tar.gz
$ tar xvfz clang-3.2.src.tar.gz
$ tar xvfz compiler-rt-3.2.src.tar.gz

フォルダを構成します。

$ mv ./clang-3.2.src ./llvm-3.2.src/tools/clang
$ mv ./compiler-rt-3.2.src ./llvm-3.2.src/projects/compiler-rt

configureしてmakeします。

$ cd llvm-3.2.src
$ mkdir build
$ cd build
$ ../configure --enable-optimized --enable-assertions=no --enable-targets=host-only
$ make
$ sudo make install

参考サイト

スポンサーリンク

2014年2月12日水曜日

NSDateから曜日を取得する

スポンサーリンク

NSDateから曜日を取得する方法が複雑なのでメモ。
NSDateから直接曜日を取得することはできません。
NSCalenderとNSDateComponentsを使って取得します。

Objective-C版

weekdayは
1=日曜日〜7=土曜日
です。

Swift版

スポンサーリンク

2014年1月27日月曜日

リモコン・データベースのデータをIRKitのjson 形式に変換する

スポンサーリンク

リモコンデータベースを見つけました。
iRemo2 リモコン・データベース - FUTABA HOME
素晴しいことにデータをXML形式でダウンロードできます。

このXML形式のデータをIRKitのjson形式に変換できれば自分でIRKitにリモコンを向けてボタンを押してコードを登録する作業をせずにIRKitを活用できるかもしれません。

ということで、変換プログラムを作成してみました。

XMLのデータはShift_JISエンコードです。そのまま読むとエラーが発生したためUTF-8に変換してからプログラムに読みこませます。

$ iconv -f SHIFT_JIS -t UTF-8 iremo.xml | gosh rdbxml2irkitjson.scm

出力形式は

<ボタン名>:<json>

です。
以下出力の具体例。

*Page1
電源:{"format":"raw","freq":"38","data":[7000,3400,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,2600,1000,2600,1000,2600,1000,1000,1000,1000,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,1000,1000,2600,1000,1000,1000,1000,1000,1000,1000,1000,1000,2600,1000,2600,1000,1000,1000,2600,1000,1000,1000,1000,1000,1000,1000,2600,1000,1000,1000,1000,1000,1000,1000,2600,1000,1000,1000,2600,1000,2600,1000,14000]}
CH−:{"format":"raw","freq":"38","data":[7000,3400,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,2600,1000,1000,1000,2600,1000,1000,1000,2600,1000,2600,1000,2600,1000,2600,1000,1000,1000,1000,1000,1000,1000,2600,1000,1000,1000,2600,1000,1000,1000,1000,1000,2600,1000,1000,1000,1000,1000,1000,1000,1000,1000,2600,1000,1000,1000,1000,1000,2600,1000,1000,1000,1000,1000,1000,1000,2600,1000,1000,1000,1000,1000,1000,1000,2600,1000,1000,1000,1000,1000,2600,1000,14000]}

試しに電源ボタンのjsonでIRKitから送信したらテレビの電源が入りました。(しかし、時々反応しないときがあります。その場合、一度テレビ付属のリモコンで電源を操作するとIRKitから操作できるようになります。理由は不明です。)

ソースコードはこちら(Github)

スポンサーリンク

2014年1月25日土曜日

Thunderbirdでメールを回送する

スポンサーリンク

仕事上メールを回送(リダイレクト)したい時があります。
長らくThunderbirdでは回送ができないと信じていたのですが、そんなことはありません。
なんと回送用のアドオンがありました。

ちなみに回送と転送の違いは

  • 転送

    差し出し人は転送をした人のメールアドレス

  • 回送

    差し出し人は元のメールの差し出し人のメールアドレス

です。
回送するとあたかもメールが直接その差し出し人から届いたように見えます。

で、そのアドオンはこちらです。

Mail Redirect :: Add-ons for Thunderbird

便利です。

スポンサーリンク

IRKitのjsonについてのメモ

スポンサーリンク

IRKitのjsonのdata keyについて下記のように説明されています。

赤外線信号は、サブキャリア周波数のオン・オフからなります。IRKitデバイスはオン→オフ間の時間、オフ→オン間の時間を 2MHz のカウンタで数えます。dataには、カウンタで数えた数をオン・オフの回数分ならびます。

正直、一回読んだだけでは意味がわかりませんでしたが調査した結果、理解できました。

参照サイト

  1. 赤外線リモコンの通信フォーマット

赤外線リモコンは赤外線ランプのオンオフの繰り返しでデータを表現します。オンになっている時間、オフになっている時間の違いでデータを区別します。
例えば、家製協(AEHA)フォーマットでデータの始まりを表わすLeaderはオンになっている時間が425μs * 8 = 3400μs、オフになっている時間が425μs * 4 = 1700μsで表現されます。[1]

ここでjsonのdata keyの説明を読むと

IRKitデバイスはオン→オフ間の時間、オフ→オン間の時間を 2MHz のカウンタで数えます。

と書いてあります。つまり、赤外線がオンになって オフになるまで、オフになってオンになるまでの間の時間を2MHzのカウンタで数えているということです。2MHzは1 / 200,000s = 0.5μsですので0.5μsに一回カウントされます。
例えば、家製協(AEHA)フォーマットのLeaderですとオンからオフまでの時間が3400μsです。これを2MHzのカウンタで計数すると0.5μs毎にカウントされるので3400μs * 2 = 6800カウントとなります。
同じくオフからオンまでの時間は1700μsですから1700μs * 2 = 3400カウントとなります。

そして、

dataには、カウンタで数えた数をオン・オフの回数分ならびます。

とあるので、このデータをjson で表現すると、

[6800, 3400]

という配列となります。

さて、[1]にはLeader以降のCustomer CodeやParityやData0…がありますが、これらはbit列で表現されます。bitはData bitで表現されます。0はオンの時間が425μs、オフの時間が425μs。1はオンの時間が425μs、オフの時間が1275μsです。これをカウントで表現すると0は[850, 850]、1は[820, 2550]となります。

ここまでくればもうおわかりかとおもいますが、まとめると

カウント = μs * 2

です。
そしてdata keyはこのカウントの配列です。

関連項目

スポンサーリンク

2014年1月21日火曜日

IRKit APIメモ

スポンサーリンク

IRKit APIの使い方のメモ

IRKitのIPアドレスをみつける

このコマンドでIRKitのInstance Nameを取得

$ dns-sd -B _irkit._tcp

Instance NameからIPアドレスを取得

$ dns-sd -G v4 <Instance Name>.local

Instance Nameに.localをつけるのを忘れずに。

IRKitが受信したIRコードを取得する

IRKitが最後に受信したIRコードを取得する。
IRKitの近くでリモコンのボタンを押すとIRKitがピカピカっとする。
ピカピカっとした時にIRKitはリモコンからのIRコードを受信している。
そのデータをJSON形式で取得することができる。

$ curl -i "http://192.168.0.6/messages"

そのIRコードを送信したければ受信したJSONをhttp://192.168.0.6/messagesにPOSTしてやればよい。

$ curl -i "http://192.168.0.6/messages" -d='<json>'

関連項目

スポンサーリンク

2014年1月18日土曜日

IRKitを使ってみた

スポンサーリンク

2014/01/18 IRKitが届きました。
IRKitは赤外線で家電を自由に操作できるアプリを作成するためのキットです。
IRKit

エアコンを切り忘れてでかけてもiPhoneから切るといったことができる夢のデバイスです。
ほんと、なんど家にもどってエアコンを確認したことか。
これがあれば家にもどらなくてもいい。心配しなくてもいい。
iPhoneでピッってやればエアコンが切れるのです。
素晴しいです。

とりあえず写真です。

パッケージの写真
enter image description here

本体
enter image description here

大きさ比較(綾鷹は280mlのやつ)
enter image description here

まずは設定。マイクロUSBをIRKitにさして電源On。
iPhoneにはIRKitシンプルリモコンをインストール。
それで設定っていたいどうやってやるんだろうこのシンプルな筐体でとおもっていたらそういうことですか。
モールス信号ってそういうことですか。
その発想はなかったわ。
おもわず綾鷹吹いたwww。

リモコンアプリはとてもシンプルです。
使いかたも簡単。
ボタンの追加をえらんでIRKitにむけてリモコンの登録したいボタンを押せば登録完了。
登録したボタンをタップするとIRKitからその信号が送信されるという仕組み。

さっそくエアコンでためしてみた。

エアコンのオン、オフをアプリに登録したの図
enter image description here

ちなみにエアコンのリモコンには「運転/停止」というボタンが一つあるだけです。
信号一つでトグルになっているのかとおもいきや信号は別になっていました。
エアコンのリモコン上でエアコンが切れていることになっている時に発信される信号が電源Onの信号で、エアコンが動作していることになっている時に発信される信号が電源Offの信号です。

そしてiPhoneでOnをタップすると。
エアコンからピッ!という音がして起動した。
あたりまえのことですが、すごい!。
次にOffをタップするとエアコンが切れます。すごい!
さらにエアコンをつけっぱにして外出。
iPhoneでOffをタップして帰宅。
エアコンが切れていた!
これはすごい。
エアコンでこんなんに感動できるとは思わなかった。

まとめ

  • 本体は小さくてデザインも良い
  • 設定時のモールス信号がおもしろい
  • アプリもシンプルで良い
  • 青色LEDが眩しい(設置場所によると思いますがもう少し小さなLEDで良いかなぁと)
  • エアコン操作だけでも感動できる

関連項目

スポンサーリンク

2014年1月17日金曜日

wxWidgets 3.0.0用のVagrantfileを作成した

スポンサーリンク

wxWidgets-3.0.0を使ったGUIアプリ開発用のVagrantfileを作成したのでメモ。
Ubuntu 12.0.4にubuntu-desktopを導入後、g++とgtk2.0をインストール、その後wxWidgets-3.0.0をインストールする。
v.gui = true
でGUIが起動する用にしている。(Virtual BoxのGUI)
GUIが不要であればこの値をfalseにすればよい。

wxWidgetsはスタティックリンクでUnicodeとwxGraphicsContextをオンにしている。

# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.synced_folder "../", "/develop", \
        create: true, owner: 'vagrant', group: 'vagrant', \
        mount_options: ['dmode=777,fmode=666']

  config.vm.provider :virtualbox do |v|
    v.gui = true
  end

  config.vm.provision :shell, :inline => <<-EOT
    apt-get update -y
    apt-get install -y ubuntu-desktop
    apt-get install -y g++
    apt-get install -y libgtk2.0-dev
  EOT

  config.vm.provision :reload

  config.vm.provision :shell, :inline => <<-EOT
    rm -rf wxWidgets-3.0.0*
    wget ftp://ftp.wxwidgets.org/pub/3.0.0/wxWidgets-3.0.0.tar.bz2
    tar xvfj wxWidgets-3.0.0.tar.bz2
    cd wxWidgets-3.0.0
    mkdir -p ubuntu
    cd ubuntu
    ../configure --disable-debug --disable-shared --enable-unicode --enable-graphics_ctx
    make
    make install
  EOT

end
スポンサーリンク