マクルーハンは難しい

挫折した。

ProductName マクルーハン理論―電子メディアの可能性 (平凡社ライブラリー)
マーシャル マクルーハン
平凡社 / 1260円 ( 2003-03 )


解像度が高いものをホット、低いものをクールと呼ぶ。

クールなメディアないし人間は人びとに参加と関わりあいを要求する。人びとが反応する余地が残っているからである

  • 教育と娯楽の間になにか根本的な差異があると考えるのは誤りである
  • 新しいテクノロジーというものはすべてのヒトとの感覚生活を完全に変えるもの
  • 安価な記録再生機が登場すれば、テレビの将来はレコードの将来に似たものになるだろう

Hakyll+bootstrapでGithub Pagesをつくった

次回の三島Haskell無名の関数の会は懇親会を鈴木屋@三島でやることが決定しているので、前回のホルモン画像を使ってみた。

鈴木屋

使ったもの

Shizudevつくる会でbootstrapの勉強会をやりたいなーと思っているんだけど誰か興味ある人いないじゃろか?

bootstap用の配色ツールを使ってみた(PaintStrapとLavish)

BootstrapのCSSを簡単にいい感じにカスタマイズできる厳選サービス2+1つ紹介で二つ紹介されてたので、両方触ってみた。

Paintstrap

PaintStrapAdobe kulerCOLORloversの配色を取り込んでbootstrapに設定してくれる。

が、kulerがいまいち使えないというか、気に入ったパターンをアプライするとごちゃごちゃした感じになるので「えーこんなの使えねーじゃん」と最初は結構悩んだ。

どういうパターンを選択するのがよいかということになるわけだが、kulerを使った誰にでもできそうなWeb配色を参考にした。というわけで、同系色の濃淡+アクセントカラーというパターンを選ぶとうまくいくことが多いかなと。

natureとかいい感じ

nature_strap

kulerだと7:2.5:0.5とか色の面積比で見ることができないので、面積力がなくてバランスが掴めない場合にはCOLORloversの比率付きで出ているパレットを使ったほうが全体のイメージが掴みやすいかもしれない。それから色で検索できるので個人的にはこっちを使うほうが楽かなと思う。lavish(後述)でつくったセットが気に入らない場合に色で検索できる。

Lavish

写真からbootstrapの配色を決定しくれるサービスなのでお手軽。自分の写真から配色つくれば、オリジナルの写真をherounitにでも設定すれば素敵になるし。

kichitonaru_strap

写真もアクセントカラーの効いてるヤツを選ぶといいみたい(こういうのとか)

Flickrで良さげなのをみつけてアプライするのもいいと思う。

ただ、どうしてもボケた感じになってしまうので、似たような配色をCOLORloversで探してみることは多いかも。あとはFlickr使うとオリジナルの写真を貼付けにくいので、自分のPhotostockの中から使うのがいいかな。

配色の管理

つくったlessは自分用twitter bootstrapを管理するでmy_variablesを配色名にちなんだ名前のファイルにしてヘッダーにオリジナルの画像のURLがlavishとかパターンのurlでもつけておけばいいかなと思う。

こんな感じで使ってみようと思う。

ProductName ウェブ配色 コーディネートカタログ
坂本 邦夫
技術評論社 / 2604円 ( 2011-02-23 )


Haskellのarrは何を持ち上げるのかがちょっと分かった気になった

Hakyllのサンプルを読んでいてarrowの使い方がわかりやすくていいなーと思ったんだがarrの必要性がよく分からなかった。

例えばtagblogの22行目のarrとか。

>>> arr (renderDateField "date" "%B %e, %Y" "Date unknown")

renderDateFieldは

renderDateField :: String  -- ^ Key in which the rendered date should be placed
                -> String  -- ^ Format to use on the date
                -> String  -- ^ Default value, in case the date cannot be parsed
                -> Page a  -- ^ Page on which this should be applied
                -> Page a  -- ^ Resulting page
renderDateField = renderDateFieldWith defaultTimeLocale

だからrenderDateField "date" "%B %e, %Y" "Date unknown"の型は

Page a -> Page a

でarrで持ち上げる必要ないんじゃないかなぁと。

と思ったので、22行目のarrを除いてコンパイルしてみた。

$ ghc --make test.hs 
[1 of 1] Compiling Main             ( test.hs, test.o )

test.hs:22:17:
    Couldn't match expected type `Compiler (Page String) b0'
                with actual type `Page a0 -> Page a0'
    In the return type of a call of `renderDateField'

あれ?arrってCompiler型に持ち上げていたのか。ということはCompiler型ってAllowなのか

みてみると、

data Compiler a b = Compiler
    { compilerDependencies :: Reader DependencyEnvironment Dependencies
    , compilerJob          :: a -> CompilerM b
    }

あーなるほど。こういうのもArrowになるのか。

というわけで、arrの使い道がちょっと分かった(気がした)。

hsktagsでHaskellでもタグジャンプ

@karky7に教えてもらったEmacsのタグジャンプでRedmineの中を探索するのが楽になったが、etagsはHaskell対応していない。

これは困ったとフグったところ、hasktagsをみつけて解決。

hakyllのソースで

hasktags -e .

ってやってTAGSファイルを作ったら、Emacsでタグジャンプできる。

HaskellでRSSを読み込む

以前書いたのを今みるとグダグダだ。やっぱコピペはダメだな。

今回feedを使ってみた。ファイルの読み込みだったらparseFeedFromFileを使う。

import Text.Feed.Import
import Text.Feed.Query
import Data.Maybe

main = do
  rss <- parseFeedFromFile "test.rss"
  mapM_ putStrLn $ map (fromJust . getItemTitle) (getFeedItems rss)

HTTPと組み合わせる場合は

import Text.Feed.Import
import Text.Feed.Query
import Data.Maybe
import Network.HTTP

eutils_url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/erss.cgi?rss_guid="
guid = "1ZQ4a7JQ6X8P3NJNZLWG_ML-XsrLQgH63A06CsXO-jG0m_iEe-"

getTitle = (take 60) . fromJust . getItemTitle
getItems = getFeedItems . fromJust . parseFeedString

main :: IO ()
main = do
  res <- simpleHTTP $ getRequest $ eutils_url ++ guid
  body <- getResponseBody res
  mapM_ putStrLn $ map getTitle $ getItems body

実行すると

RMol: A Toolset for Transforming SD/Molfile structure inform
Adenosiland: Walking through adenosine receptors landscape.
Enzyme Informatics.
The Use of the R language for Medicinal Chemistry Applicatio
Similarity coefficients for binary chemoinformatics data: ov
Review on Chemogenomics approach: Interpreting antagonist ac
Immunotoxicity, Flow Cytometry and Chemoinformatics: A Revie
A Parallel Systematic-Monte Carlo Algorithm for exploring Co
Validation of drug-like inhibitors against Mycobacterium tub
Desirability-based Multi-criteria Virtual Screening of Selec
The use of glycoinformatics in glycochemistry.
Role of computational methods in pharmaceutical sciences.
High-throughput screening with a miniaturized radioligand co
Chemoinformatics: recent advances at the interfaces between 
ReactionPredictor: Prediction of Complex Chemical Reactions

プロキシとかセッションなんかを使いたい場合にはNetwork.Browserを利用する。

Network.Browserは以下の機能が使えるハイレベルなモジュール。

  • HTTP Authentication handling
  • Transparent handling of redirects
  • Cookie stores + transmission.
  • Transaction logging
  • Proxy-mediated connections.

browseのところに色々挟みこむとよろしくやってくれる(今回はなんもしてないけど)。職場で使う時にはプロキシを挟む必要があるためsimpleHTTPは使えない。

import Text.Feed.Import
import Text.Feed.Query
import Data.Maybe
import Network.HTTP
import Network.Browser (browse, request)

eutils_url = "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/erss.cgi?rss_guid="
guid = "1ZQ4a7JQ6X8P3NJNZLWG_ML-XsrLQgH63A06CsXO-jG0m_iEe-"

getTitle = (take 60) . fromJust . getItemTitle
getItems = getFeedItems . fromJust . parseFeedString . rspBody

main :: IO ()
main = do
  (_, res) <- browse $ do
    request $ getRequest $ eutils_url ++ guid
  mapM_ putStrLn $ map getTitle $ getItems $ res

ちなみにRMolにはいまいち惹かれないなぁ。Rならではのメリットあるんだろうか?

富士宮のレストラン ビオスに行ってきた

ビオファーム松木でやっているレストランであるところのビオスにお邪魔してきた。

三度くらい振られているので、初訪問が三周年記念をやっていたという(オープン当時からずっと狙っていた)。西富士道路を通って行くと西富士宮駅からビオスまで山一つ超えるんだけどこの道が超狭い。助手席に座っていたんだけど手に汗握った。帰りは芝川のほうに下りていって富士宮イオンのほうにぬける道を使って帰ってきた。

サラダはマッシュルームと三年物のニジマス。ニジマスは富士宮の名産品なので外せないな。マッシュルームは生でした(つまりナマッシュ)ということは長谷川農産のマッシュルームだな。

1354701661

ひょうたんカボチャのスープ。ビオスのテーブルの真中に野菜が置かれていて、これがひょうたんカボチャですよって見せてくれる演出はいいなと思った。写真には取ってないけど野菜を育てているヒトには楽しめる演出だと思った。

1354701663

7種の野菜のグリル。レッドムーンと紫のサツマイモとか。太いごぼうは大浦ごぼうかな?味付けは塩とバターだけとのことで、ゴテゴテしないシンプルな味わいで美味しかった。

1354701665

夢幻豚(でいいのか?)の肩ロース。言うことなし。

1354701668

デザートは玉ねぎのアイスクリームとリンゴのタルト。アイスクリームの玉ねぎ感はすごかったが、バルサミコ酢のソースとは合うな。アイスに玉ねぎの香りがついてるのは賛否あるだろうなぁ。そういえば椎茸プリンをgawaで食べた時の衝撃と似たようなもんかな。

1354701669

満足のランチだった。また行きたい。

ProductName 農はショーバイ!
松木 一浩
アールズ出版 / 1365円 ( 2010-09-15 )


やっぱ料理は楽しいと思う。

ProductName ビオファームまつき 畑から届いた採れたて野菜レシピ
松木一浩
学研パブリッシング / ?円 ( 2010-09-29 )


器も色々欲しいが審美眼はない

ProductName 料理と食器
北大路 魯山人
/ ?円 ( 2012-09-14 )


HaskellでSQLiteにアクセスする

Haskell力をあげるために、少しの間Pythonを封印してみることにした(職場で)。

いつもならSQLAlchemyを使うところでHDBCを使っているが、本を読んで分かった気になっていただけだったと思い知らされた。

使ってみてDBIっぽいなぁと思ったらゆるく参考にしているらしい

HDBC is modeled loosely on Perl's DBI interface http://search.cpan.org/~timb/DBI/DBI.pm, though it has also been influenced by Python's DB-API v2, JDBC in Java, and HSQL in Haskell. Database.HDBC

結果のフェッチの仕方を調べてみると用途に応じて色々なやり方で結果を返すことができるようになっていた。

  • listで返すかassociation listで返すか、それともMapで返すか
  • 正格、非性格
  • 全てのrowを返すか、一つを返すか
  • SQLValue型かMaybe String型で返すか

必ず答えが返ってくるのが分かっているなら、Maybe Stringで返してfromJustでstringにすればいい。自分のブログ(Flask製)のdatabaseを使ってみる。

import Database.HDBC
import Database.HDBC.Sqlite3
import Data.Maybe

main = do
  conn <- connectSqlite3 "/Users/kzfm/blog.db"
  stmt <- prepare conn "select title from entry"
  execute stmt []
  results <- sFetchAllRows stmt
  mapM_ (putStrLn . fromJust) $ concat results

RWHの日本語版のEpubかmobiが欲しいなぁ。

ProductName Real World Haskell―実戦で学ぶ関数型言語プログラミング
Bryan O'Sullivan
オライリージャパン / 3990円 ( 2009-10-26 )


UXの考え方を参考に、サイト内検索から得られるデータを分析する

UXとアクセス解析の交わりは面白そう

1354437349

「ウェブ上を検索しているのは惹きつけたい人達で、自分のサイトを検索しているのはつなぎとめたいカスタマー」p.14

統計っぽくないのでSEOはあんまり興味ないけど、SSA(Sight Search Analytics)というのは非常に興味を持った。イントラサイトの運用だとSEOはほとんど必要ないけど、SSAは超重要なのに見過ごされている気がする。

SEOはウェブ全体の検索エンジンで自分のサイトを見つけやすくする方法です。一方SSAは、サイト内に実装された独自の検索エンジンで実行されるサイト内検索を改善する方法です

自サイト内の検索ログから、仮説を立てて検証してみたいなPDCAサイクルをどう回していくかっていう内容です。失敗を如何に評価して改善につなげるかというあたりの説明に重点をおいている。

  • 誰が何をいつ検索したか、から学ぶ
  • 言葉の粒の大きさ
  • セグメント分割の重要性
  • 入力されるクエリのほとんどが収まる幅を検索結果から把握する

どうぶつの森ダウンロード版は中途半端な「サンタ・クロース最適化(SCO)」

子供に「サンタに3DSかどうぶつの森お願いする」って言われたら、3DS一択なのか?!と思ったが、コンビニでダウンロードカードを調達すればいいのか。

でも紙かよーと思っていたら、大体みんな同じように悩むのな。

ProductName ニンテンドー3DS コバルトブルー

任天堂 / 14250円 ( 2012-03-22 )