FP(関数プログラマー?)3級を受けてきた

ファイナンシャルプランナー3級試験を受けてきた。自己採点では午前午後とも9割くらいは取れてたので、まぁOKでしょう。

テキスト一冊買って、iPhoneアプリ使って一週間くらい勉強すれば合格の6割正解に届く感じ。

ProductName うかる! FP技能士3級 最速テキスト 2012-2013年版

日本経済新聞出版社 / 1680円 ( 2012-06-21 )


昼は駅から三嶋大社まで歩いて毎度!に。

1369562427

プレミアム潮という限定麺を頂いた。

1369562428

毎度は相変わらず美味い。

第2回入門機械学習読書会をやった

二回目も無事に終了しました。入門機械学習にはベイズの定理の説明があまり書かれていなかったので、それっぽい資料にしてみましたが、箱というアナロジーはなかなか掴みにくかったのかも。

懇親会

懇親会は筋肉系の居酒屋にお邪魔しました。なんかアイテムが増えてて、片手で50kgとか。酒飲みながら筋トレを楽しめる感じになっていた。というか、そういう世界があるというのも驚きだ。

1369559011

焼き鳥についている辛味噌が良い感じ。

1369559010

あと焼きそばは小辛でもかなり辛かった。

次回は静岡です

懇親会は後ほど用意します

神速フォトショップはCS6じゃないと使えない技が結構あった

本職のヒトのためのクックブックみたいなもんだからそうなんだろうけど。

ProductName 神速Photoshop [グラフィックデザイン編]
浅野桜
アスキー・メディアワークス / 2520円 ( 2013-01-09 )


こんなに時間がかかっていた作業が、すごーく短くなりますよという内容なんだけどその時間がかかっていた作業を知ることができるのがよい。

クオリティをあげるためにはそういうところに気を使うのねと。

ブレイクスルーの話

高度経済成長期にあった所謂必勝パターンがなくなってしまったので、フレームワーク的なアプローチでは解決できない問題が増えてきた。

で、「ブレイクスルーでしょ」みたいな。

ブレイクスルーとは、創造的な思考で、壁を突破し、結果、課題が解決されること

ProductName ブレイクスルー ひらめきはロジックから生まれる
木村 健太郎
宣伝会議 / 1575円 ( 2013-04-04 )


アブダクションってのも結局、論理に裏打ちされた上での守破離的な。

なんちゅーか、突き詰めて考えた結果降りてくるセレンディピティ的なところがあるからなぁ。

ちょっとストーリー色が強すぎる(脚色されすぎな感がある)ので、読み物としては面白いけど。

アイデア・バイブルのほうがいいかも。

ProductName アイデア・バイブル
マイケル・マハルコ
ダイヤモンド社 / 2940円 ( 2012-02-17 )


PythonScriptでjQueryを扱う

次回のShizuoka.pyはサーバーサイド寄りの演題が多めなので、カウンターとしてフロントエンド寄りのネタでもやろうかなと思いPythonScriptをいじっている。

PythonScriptでjQueryを使うのは簡単。jQueryとラッパーを呼び出しておけばJでアクセスできる。

index.html

<!DOCTYPE html>
<html>
    <head>
        <title>PythonScript & jQuery</title>
    </head>
    <body>
      <div id="mydiv">click      
      </div>
      <script src="pythonscript.js"></script>
      <script src="jquery.js"></script>
      <script src="jquery.py.js"></script>
      <script src="app.py.js"></script>
    </body>
</html>

app.py

J()でjQueryのラッパーオブジェクトを作れるが、jQueryオブジェクトはj属性で参照されるので注意。

class Model():
    def __init__(self, tag):
        self.el = J(tag)
        self.el.bind("click", self.el, self.say)

    def say(self):
        d = J('<p>:-)</p>')
        self.el.append(d.j)
        print "hello PythonScript"

m = Model('#mydiv')

pythonscript & jQuery

今週末は入門機械学習読書会です

ベイズ分類の章をやります。

今回は富士吉原開催なので、僕のオススメのつけナポリタンの店でも紹介しておきます。

アドニス

つけナポ元祖。鉄板。

1237541908

当初は速攻売り切れていたのだけど、最近はそんなこともないみたい。

かなり酸の効いた味で、日本酒に例えると杉錦天保13年

ソファリ

まったりカフェで食べるつけナポリタン

1263475174 1263475204

プレアーテ

ワイン酒場になってた。コミュニティFの目の前なのでアクセスは良い。つけナポリタンの味も良かった。

器つれづれ

骨董エッセイ集。この人の文章は読んでいて楽しい。器の話だけどプログラミングに通じるものもある。

美しい「花」がある、「花」の美しさといふ様なものはない

ProductName 器つれづれ
白洲 正子
世界文化社 / 2520円 ( 1999-07 )


魯山人

ろくろをひかないために、陶芸家として認めないという人もいたが、もともと工芸は分業であるのが本来の形だし、ろくろが巧いからといって、美しい作品が出来上がるわけでもない。

これは

プログラムをかかないために、エンジニアとして認めないという人もいたが、もともとウェブサービスはは分業であるのが本来の形だし、プログラミングが巧いからといって、美しい作品が出来上がるわけでもない。

とも書けるが、そもそもウェブサービスは分業であるべきなのだろうかという根源的な問いは残る。というより、ある程度プログラミングができるのであればデザインに注力していくべきであろうと最近思っている。

が、bootstrapとかfoundationのようなフレームワークとかSass/CompassといったCSSフレームワークもあるのであとは、デザイン力を鍛えればよい環境であるといえるのではないだろうか?

そろそろ新しい酒器を物色したい。

ニンニクを収穫した

昨日収穫して干すところまでやった。凧糸が紛失していたので、娘のリリアン用の毛糸で縛った。

1368953637

掘り起こした直後。その後葉を切ってお持ち帰り。一昼夜ベランダに転がしておいて、吊るした(上の写真)

1368953632 1368953634

去年よりも二週間程度早く区画が空いた。

1368953635

今日は雨の予報だったのに、いつまでたっても降る気配がないので、石灰と鶏糞蒔いてしまった。さてどうしようかなぁと悩みつつ、帰りにいけたにさんに酒を買いに行ったら、落花生を植えろというアドバイスとともに種を頂いたので落花生でも植えてみることにした。

区画

「殴られても痛くないよ、だからTPPに参加しようよ」っていう内容だった

外交の基本って、握手してない方の手で殴りあうわけじゃない?

タイトルから期待してたのはどういうメリットが考えられるからTPP参加すべきみたいな内容だったんだけど、本書は「ここらへん殴られそうだけど、あまり痛くないから大丈夫、だから安心してTPPに参加しようよ」というよくわからない内容だった。

それから著者の利害関係の立場を明確にしていないので、ウソは言ってないけど、ホントの事も言ってないんだろうなぁという、モヤモヤする読後感が得られた。

ちなみに著者は東京財団の人達。

ProductName TPPでさらに強くなる日本
原田 泰
PHP研究所 / 1470円 ( 2013-03-23 )


2章以降は速読の練習に使った。

PythonScriptのクラスシステムを読んでみた

PythonScriptではクラスがどういうjavascriptにトランスレートされるのか気になったので。

class C():
    def __init__(self, x, y):
        self.x = x
        self.y = y

c1 = C(1, 2)
c2 = C(3, 4)

print c1.x, c2.y

これは以下のjavascriptに変換される

C = {};
parents = create_array();
var C____init__ = function(args, kwargs) {
    var signature = {"kwargs": {}, "args": create_array("self", "x", "y")};
    var arguments = get_arguments(signature, args, kwargs);
    var self = arguments["self"];
    var x = arguments["x"];
    var y = arguments["y"];
    set_attribute(self, "x", x);
    set_attribute(self, "y", y);
}

C.__init__ = C____init__;
C = create_class("C", parents, C);
c1 = get_attribute(C, "__call__")(create_array(1, 2), {});
c2 = get_attribute(C, "__call__")(create_array(3, 4), {});
console.log(get_attribute(c1, "x"), get_attribute(c2, "y"));

create_array, get_arguments, create_class, get_attribute, set_attributeはpythonscript.jsのほうに定義されている。create_classは次のように定義されている

var create_class = function(class_name, parents, attrs) {
    if(attrs.__metaclass__) {
        var metaclass;
        metaclass = attrs.__metaclass__;
        attrs.__metaclass__ = undefined;
        return metaclass([class_name, parents, attrs]);
    }
    else {

    }

    var klass;
    klass = {};
    klass.bases = parents;
    klass.__name__ = class_name;
    klass.__dict__ = attrs;
    var __call__ = function() {
        var object;
        object = {};
        object.__class__ = klass;
        object.__dict__ = {};
        var init;
        init = get_attribute(object, "__init__");
        if(init) {
            init.apply(undefined, arguments);
        }
        else {

        }

        return object;
    }

    klass.__call__ = __call__;
    return klass;
}