24052013 life
本職のヒトのためのクックブックみたいなもんだからそうなんだろうけど。
こんなに時間がかかっていた作業が、すごーく短くなりますよという内容なんだけどその時間がかかっていた作業を知ることができるのがよい。
クオリティをあげるためにはそういうところに気を使うのねと。
24052013 life
本職のヒトのためのクックブックみたいなもんだからそうなんだろうけど。
こんなに時間がかかっていた作業が、すごーく短くなりますよという内容なんだけどその時間がかかっていた作業を知ることができるのがよい。
クオリティをあげるためにはそういうところに気を使うのねと。
23052013 life
22052013 Python
次回のShizuoka.pyはサーバーサイド寄りの演題が多めなので、カウンターとしてフロントエンド寄りのネタでもやろうかなと思いPythonScriptをいじっている。
PythonScriptでjQueryを使うのは簡単。jQueryとラッパーを呼び出しておけばJでアクセスできる。
<!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>
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')
ベイズ分類の章をやります。
今回は富士吉原開催なので、僕のオススメのつけナポリタンの店でも紹介しておきます。
つけナポ元祖。鉄板。
当初は速攻売り切れていたのだけど、最近はそんなこともないみたい。
かなり酸の効いた味で、日本酒に例えると杉錦天保13年
まったりカフェで食べるつけナポリタン
ワイン酒場になってた。コミュニティFの目の前なのでアクセスは良い。つけナポリタンの味も良かった。
20052013 life
骨董エッセイ集。この人の文章は読んでいて楽しい。器の話だけどプログラミングに通じるものもある。
美しい「花」がある、「花」の美しさといふ様なものはない
魯山人
ろくろをひかないために、陶芸家として認めないという人もいたが、もともと工芸は分業であるのが本来の形だし、ろくろが巧いからといって、美しい作品が出来上がるわけでもない。
これは
プログラムをかかないために、エンジニアとして認めないという人もいたが、もともとウェブサービスはは分業であるのが本来の形だし、プログラミングが巧いからといって、美しい作品が出来上がるわけでもない。
とも書けるが、そもそもウェブサービスは分業であるべきなのだろうかという根源的な問いは残る。というより、ある程度プログラミングができるのであればデザインに注力していくべきであろうと最近思っている。
が、bootstrapとかfoundationのようなフレームワークとかSass/CompassといったCSSフレームワークもあるのであとは、デザイン力を鍛えればよい環境であるといえるのではないだろうか?
そろそろ新しい酒器を物色したい。
19052013 家庭菜園
昨日収穫して干すところまでやった。凧糸が紛失していたので、娘のリリアン用の毛糸で縛った。
掘り起こした直後。その後葉を切ってお持ち帰り。一昼夜ベランダに転がしておいて、吊るした(上の写真)
去年よりも二週間程度早く区画が空いた。
今日は雨の予報だったのに、いつまでたっても降る気配がないので、石灰と鶏糞蒔いてしまった。さてどうしようかなぁと悩みつつ、帰りにいけたにさんに酒を買いに行ったら、落花生を植えろというアドバイスとともに種を頂いたので落花生でも植えてみることにした。
19052013 life
外交の基本って、握手してない方の手で殴りあうわけじゃない?
タイトルから期待してたのはどういうメリットが考えられるからTPP参加すべきみたいな内容だったんだけど、本書は「ここらへん殴られそうだけど、あまり痛くないから大丈夫、だから安心してTPPに参加しようよ」というよくわからない内容だった。
それから著者の利害関係の立場を明確にしていないので、ウソは言ってないけど、ホントの事も言ってないんだろうなぁという、モヤモヤする読後感が得られた。
ちなみに著者は東京財団の人達。
2章以降は速読の練習に使った。
19052013 Python javascript
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; }
18052013 Python
eしずおかの新着一覧をチェックするためにベイズ分類器にeオプションを足した。ついでに来週の入門機械学習読書会はベイズ分類なので興味があれば参加してみてください(あと一人ですが)。
$ ./nk -e きみにあわないよ: Lab's Numazu (http://labsnumazu.eshizuoka.jp/) きみにあわないよ: 備忘録に代えて (http://bibouroku.eshizuoka.jp/) きみにあわないよ: 焼津の服屋さん Primera estrella (http://primera.eshizuoka.jp/) きみにあわないよ: 静岡市の美容室 Hills earl&bee <ヒルズ・・・ (http://hills.eshizuoka.jp/) きみにあわないよ: DIESEL ONLYSHOP EURO UNO (http://eurouno.eshizuoka.jp/) きみにあうよ: 明るい母ちゃん!楽しい子供!日記 (http://karashi21012.eshizuoka.jp/) きみにあわないよ: Abricotの気ままなスタッフブログ (http://hal.eshizuoka.jp/) きみにあうよ: Aroma&Herbでりらっくすしましょ。 (http://konohana.eshizuoka.jp/) きみにあわないよ: 心も体もぽっかぽっか♪整体・ロミロミ・マ・・・ (http://kamomechan.eshizuoka.jp/) きみにあわないよ: ROH SHIZUOKA (http://roh.eshizuoka.jp/) きみにあわないよ: 焼津 海味工房ぬかや斎藤商店 (http://nukaya4239.eshizuoka.jp/) きみにあわないよ: 森の小さなアイス屋 (http://morinoiceya.eshizuoka.jp/) きみにあわないよ: ものづくり生活 (http://handmadelife2.eshizuoka.jp/) きみにあわないよ: СнⅠкдの日常Вlοg (http://ganeesha9465.eshizuoka.jp/) きみにあわないよ: 「食」プロデュース◇中野ヤスコ◇食の学び舎・・・ (http://nakanoyasuko.eshizuoka.jp/) きみにあわないよ: 女性のための癒しと健康 『so・ra』 (http://surugaseifu.eshizuoka.jp/) きみにあわないよ: おいしい幸せ 「京菜や」 (http://kyousaiya.eshizuoka.jp/) きみにあわないよ: タイマイのおススメ (http://elonia.eshizuoka.jp/) きみにあわないよ: au ショップスタッフの enjoy スマホ Life (http://aushop.eshizuoka.jp/) きみにあわないよ: strawberry×strawberry (http://oshirukomoe.eshizuoka.jp/) きみにあわないよ: 伊豆不動産リゾート情報 (http://blog.towa-kaihatsu.co.jp/) きみにあわないよ: コリの無いシアワセな日々へ・クラリオンヒ・・・ (http://r1633.eshizuoka.jp/) きみにあわないよ: 菓子工房 クレオ (http://ecreo.eshizuoka.jp/) きみにあわないよ: インテリア雑貨shop ~ cozy Life ~ (http://cozylife.eshizuoka.jp/)
ローカルの食べ物ネタとかお酒について書かれているブログがヒットしやすくなって調子いい。
Pythonでスクレイピングするならrequests+pyqueryの組み合わせは鉄板。
def check_eshizuoka(): d = pq(requests.get("http://www2.eshizuoka.jp/allentry").content) for e in d("#newEntry li .blogTitle a"): blog_title = e.get("title") blog_url = e.get("href") blog_rss = e.get("href") + "index.xml" r = test(blog_rss) print "{}: {} ({})".format(r['status'], blog_title.encode('utf-8'), blog_url)