24022013 life
鉱工業生産指数って今でもモノづくりの実態をあらわしているのかな?
その他の指標
- 毎月勤労統計調査
- 企業物価指数と消費者物価
24022013 life
鉱工業生産指数って今でもモノづくりの実態をあらわしているのかな?
その他の指標
24022013 Haskell
昨日の三島Haskell無名関数の会(mishima.hs)で「PersistentのKeyってどうやって作るの?」っていう話になって、宿題として持ち帰ったので朝から調べていた。
Keyは
type Key val = KeyBackend (PersistEntityBackend val) val
で、KeyBackendのデータコンストラクタがKeyなので、PersistValueのデータコンストラクタで包めばいいみたい。
ひとつレコードを作って、キーを指定して年齢を変更した後、キーでレコードを取ってきて年齢が変わっていることを確認するサンプル。SQLitのキーがInt64なのでこのサンプルではPersistInt64データコンストラクタを使っている。
{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, OverloadedStrings #-} {-# LANGUAGE GADTs, FlexibleContexts #-} import Database.Persist import Database.Persist.Sqlite import Database.Persist.TH import Control.Monad.IO.Class (liftIO) import Database.Persist.Store share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persist| Person name String age Int Maybe loc String default="Japan" deriving Show |] main :: IO () main = withSqliteConn "test.db" $ runSqlConn $ do runMigration migrateAll kzfmId <- insert $ Person "kzfm" (Just 20) "Fuji" liftIO $ print kzfmId kzfm <- getJust kzfmId liftIO $ print kzfm kzfm2 <- replace (Key (PersistInt64 1)) (kzfm {personAge = Just 36}) liftIO $ print kzfm2 kzfm3 <- getJust (Key (PersistInt64 1)) liftIO $ print (personAge kzfm3)
どういうメソッドがあるのかはDatabase.Persist の関数群を簡単に説明が参考になる。
やりました。virthualenvを快適に使うためのvirthualenvwrapperの話と、
静的サイトジェネレーターのHakyllの話をしてきた。Hakyllは導入するとこで時間切れになってしまったので残念。結構便利だと思うので、もっと広まって欲しい。
懇親会は鈴木屋で。

Haskellでサンドボックス環境を構築するにはvirthualenvかcabal-devがポピュラーだと思います(が後者は使ったことない)。
virthualenvを使う場合、仮想環境を構築したいディレクトリに移動してvirthualenvコマンドを叩いてファイルのコピーなどをした後に source .virthualenv/bin/activateで仮想環境に入る必要があるため、以下の問題があります。
Virthualenvwrapperはこれらを解決するものです。virthualenvwrapperを使うと、
なかなか便利です。
23022013 drum'n'bass
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
22022013 Python SQLAlchemy
WindowsのOracleにアクセスしてSQLAlchemyを使おうとすると日本語が化ける。
engine = create_engine("xxxxxxxx", encoding='cp932')
とcreate_engineまわりをいじっても全然改善できない。これはcx_Oracleまわりかなぁとそっち方面を攻めたら解決したのでメモ。
対象のDBにアクセスしてコマンドを叩く
SELECT value FROM nls_database_parameters WHERE parameter='NLS_CHARACTERSET';
JA16SJISTILDEという文字列が返ってきた。
スクリプト中で環境変数を設定する
import os os.environ["NLS_LANG"] = "JAPANESE_JAPAN.JA16SJISTILDE"
これで解決した。
22022013 life
22022013 music
予約した
21022013 sake
木桶って扱いが大変なんだなぁと思いながら。仙禽って木桶仕込みだったよなぁ。
酵母、麹、醪、精米といった、酒造りに必須な要素のブレークスルーが面白く書かれていて楽しく読めた。
逆に酒造りをひと通り理解していないと、面白さが伝わらないと思う。
もちろん日本酒(臥龍梅)を呑みながら読んだ。
20022013 life
タイトルの答えは書かれていなかった。最後もノックアウトでうまくいかなかったという話で終わっていて、GP2のノックインとかSNPsとかの考察がなくて、ノックアウトがうまく埋め合わせられた(と思っている)という主観で終わっているので、科学読み物として読むと非常に不完全燃焼感が高いかも。
ゲーデルの不完全性定理を解いた(と自分では思っている)と書かれたみたいな読了感。
エッセイとして読めば面白い。
19022013 Haskell
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
pandocが組み込まれたWebサイト用makeというのが僕の印象。
Jekyllがブログっぽい静的サイトを生成するっていうイメージだったので、Hakyllも似た感じなのかなぁと考えていたけどちょっと違う感じ。
pandocとunixFilterのおかげでepub, docx出力なんかもできるのでちょっとした規模のサイトだったら構成ごとそのまま管理できると思う。
それからSphinxでサイト管理するよりは、もうちょっと柔軟に対応できそう。というよりサブディレクトリにSphinxを埋め込めればさらに快適になりそう。
haskellのソースコードもDSLっぽくなっていて、match -> route -> compileの流れは分かりやすい。