三島Haskell無名関数の会 第2回目とホルモン

やりました。virthualenvを快適に使うためのvirthualenvwrapperの話と、

静的サイトジェネレーターのHakyllの話をしてきた。Hakyllは導入するとこで時間切れになってしまったので残念。結構便利だと思うので、もっと広まって欲しい。

懇親会は鈴木屋で。

1361621625

Virthualenvwrapperとは

Haskellでサンドボックス環境を構築するにはvirthualenvcabal-devがポピュラーだと思います(が後者は使ったことない)。

virthualenvを使う場合、仮想環境を構築したいディレクトリに移動してvirthualenvコマンドを叩いてファイルのコピーなどをした後に source .virthualenv/bin/activateで仮想環境に入る必要があるため、以下の問題があります。

  • 仮想環境が増えていくとディレクトリの管理が大変になってくる
  • virthualenv -> source .virthualenv/bin/activateはルーチンなので面倒くさい

Virthualenvwrapperはこれらを解決するものです。virthualenvwrapperを使うと、

  • 仮想環境は.virthualenvディレクトリ以下に作成される(mkvhenv)
  • 仮想環境のディレクトリに移動してactivateをするコマンドを提供(workhon)
  • 仮想環境のリスト(lsvirthualenv)
  • 仮想環境削除(rmvirthualenv)

なかなか便利です。

Ni Ten Ichi RyuはTeebee remixよりもオリジナルのほうが好きやな

Vicious Nature -> Ni Ten Ichi Ryu -> Tap Hoのつながりが気に入った。繋いだログを取ってあるからエッジ(つながり)にRating付けられればいいんだが。

このログはd3.jsで遊ぶネタとしても面白いかもしれない。

Darkness Dub / Subwave
Underprint / Noisia & Alix Perez
Stoppit / Spor
Natures Call / Blue Motion
Skip Rope / Need For Mirrors
Dream Killer (Audio Remix) / Cause4Concern
Halogen / Spor
Horus / Billain
Vicious Nature / Ant Miles & Boneshaker
Ni Ten Ichi Ryu / Photek
Tap Ho / TC
Sacrifice / Noisia & The Upbeats
Shape Of Things To Come / Calyx & Teebee
Reflections / B-Complex
MEMORIES / SUBWAVE
Amen Alley / Danny Byrd

SQLAlchemyとOracleの文字化け問題と闘った

WindowsのOracleにアクセスしてSQLAlchemyを使おうとすると日本語が化ける。

engine = create_engine("xxxxxxxx", encoding='cp932')

とcreate_engineまわりをいじっても全然改善できない。これはcx_Oracleまわりかなぁとそっち方面を攻めたら解決したのでメモ。

Oracleのエンコーディングを調べる

対象のDBにアクセスしてコマンドを叩く

SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';

JA16SJISTILDEという文字列が返ってきた。

環境変数を設定する

スクリプト中で環境変数を設定する

import os
os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"

これで解決した。

ProductName 超変換!! もじバケる6 20個入 BOX (食玩)

バンダイ / 2100円 ( 2012-12-12 )


サカナクションの新譜

予約した

ProductName sakanaction (初回生産限定盤CD+DVD)
サカナクション
ビクターエンタテインメント / 3036円 ( 2013-03-13 )


吟醸酒の来た道

木桶って扱いが大変なんだなぁと思いながら。仙禽って木桶仕込みだったよなぁ。

ProductName 吟醸酒の来た道 (中公文庫)
篠田 次郎
中央公論社 / ?円 ( 1999-01 )


酵母、麹、醪、精米といった、酒造りに必須な要素のブレークスルーが面白く書かれていて楽しく読めた。

逆に酒造りをひと通り理解していないと、面白さが伝わらないと思う。

もちろん日本酒(臥龍梅)を呑みながら読んだ。

「生物と無生物のあいだ」はエッセイ

タイトルの答えは書かれていなかった。最後もノックアウトでうまくいかなかったという話で終わっていて、GP2のノックインとかSNPsとかの考察がなくて、ノックアウトがうまく埋め合わせられた(と思っている)という主観で終わっているので、科学読み物として読むと非常に不完全燃焼感が高いかも。

ゲーデルの不完全性定理を解いた(と自分では思っている)と書かれたみたいな読了感。

エッセイとして読めば面白い。

ProductName 生物と無生物のあいだ (講談社現代新書)
福岡 伸一
講談社 / 777円 ( 2007-05-18 )


HakyllでJadeを使う

unixFilterを使えばよいが、jadeはstdinオプションがなかったので

cat $1 | jade

というbashスクリプトを用意してbin/sjadeとした。

hakyllでの設定はこんな感じ。

match (fromList ["index.jade", "about.jade", "member.jade"]) $ do
  route $ setExtension "html"
  compile $ getResourceString
    >>= withItemBody (unixFilter "bin/sjade" [])
    >>= loadAndApplyTemplate "templates/default.html" defaultContext
    >>= relativizeUrls

Hakyllとは何か?

pandocが組み込まれたWebサイト用makeというのが僕の印象。

Jekyllがブログっぽい静的サイトを生成するっていうイメージだったので、Hakyllも似た感じなのかなぁと考えていたけどちょっと違う感じ。

pandocとunixFilterのおかげでepub, docx出力なんかもできるのでちょっとした規模のサイトだったら構成ごとそのまま管理できると思う。

それからSphinxでサイト管理するよりは、もうちょっと柔軟に対応できそう。というよりサブディレクトリにSphinxを埋め込めればさらに快適になりそう。

haskellのソースコードもDSLっぽくなっていて、match -> route -> compileの流れは分かりやすい。

実践リーンスタートアップ

リーンスタートアップより、具体的にどう実践していくかという内容。顧客をどう選ぶかと、顧客との対話で何を得るのかといったあたりに重点が置かれている感じかな。

リーンキャンバスは便利そうだったし、自分のフィールドでも使えそうかなと感じるんだけど、こういうのは全員の共通理解がないと難しいですね。そもそもアジャイルとかそういう話から理解してもらわないといけないので大変かも。強い興味はあるけど、顧客獲得が難しいので色々と躊躇しているなぁ。

MVPの決め方

  • 顧客は必要としているか?
  • 顧客はお金を払ってくれるか?
  • それは解決可能か?

ProductName Running Lean ―実践リーンスタートアップ (THE LEAN SERIES)
アッシュ・マウリャ
オライリージャパン / 2310円 ( 2012-12-21 )


何回か読みなおす必要のある本だな。

  • 獲得とは、何も知らない訪問者が、関心のある見込み客になった時点を表します。
  • 反証可能な仮説
  • 適正な価格とは、顧客が少し抵抗を見せながらも、受け入れる価格
  • ソフトウェアにおける最も大きなムダは、次の工程の待ち時間
  • MMFとは顧客に価値を提供できる最小の部分

三島Haskell無名関数の会 第2回目やります

今週末です。発表者と参加者募集中。今のところ

  • virthualenvwrapperの紹介
  • persistent入門

をやる予定にしてますが、他にioDriveでHaskell使うとどんな感じなの?とかそんな発表も期待してます。

時間が余るようだったらHakyllのハンズオンでもやる予定にしてます。

僕の場合はマイクロフレームワークはFlaskで静的サイトジェネレータはHakyllを使っている。

フルスタックのフレームワークはあまり好きじゃないんだけど、使うならYesodを習得したいなぁと思っているが。


2/23@三島です。

内容はこれから更新していきますが、懇親会は鈴木屋でホルモンをいただく感じです(というかこっちがメイン)。

1360096263

僕はvirthualenvwrapperの話とoptparse-applicativeでなんかコマンドをつくるというネタでもやろうかなと思っている。