ワテのブログ

The fundamental things apply As time goes by.

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

スポンサーリンク