<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Haskell / Drkcore</title><link>http://blog.kzfmix.com/Haskell</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Sun, 01 Dec 2019 11:55:53 +0919</lastBuildDate><item><title>Shizuoka.hsに参加してきました</title><link>http://blog.kzfmix.com/entry/1575168234</link><description>&lt;p&gt;&lt;a href="http://blog.kzfmix.com/entry/1512873213"&gt;2年ぶり&lt;/a&gt;の開催です。&lt;a href="https://www.slideshare.net/KazufumiOhkawa/ss-42415176"&gt;私が勢いだけで作った貴重な歴史的資料&lt;/a&gt;によると2012年にはコミュニティとして活動してるんですよね、、、なんかその頃は伊豆半島にHaskellerが沢山いたしw&lt;/p&gt;
&lt;p&gt;私は転職時に頂いた圏論の歩き方をネタに話しましたが次回はもう少しHaskellに寄せたネタを考えておきます。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4535787204/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="https://images-fe.ssl-images-amazon.com/images/I/51%2B3E-ixuNL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;圏論の歩き方&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    &lt;br /&gt;
    日本評論社 / 4180円 ( 2015-09-09 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;家を出たら富士山が白くなっていることに気づく。それからお昼食べる暇がなかったので駅そばで済ました。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1575167608" src="http://www.kzfmix.com/images/blog/1575167608.jpg" /&gt;
&lt;img alt="1575167600" src="http://www.kzfmix.com/images/blog/1575167600.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;懇親会はリパブリューで。最近プログラミング界隈のコミュニティに出ていなかったので色々と新鮮な話を聞けた。
それから&lt;a href="http://twitter.com/polidog"&gt;@polidog&lt;/a&gt;とはなにげに初対面であることに驚かれた。なんかすれ違い多かったみたい。&lt;/p&gt;
&lt;p&gt;なにげにここのところ、twitterではフォローしあってるけど初めて会うっていうのが結構多いですね。&lt;/p&gt;
&lt;p&gt;あとは、アカウントわからないけどオフラインで私のtweetのリプライされるのも結構多い。初対面の人に「いつもtwitter見てます。で、この前こうtweetしてたじゃないですか？あれってどういうことなんですか？」みたいな。これは製薬特有の現象かもしれないが。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1575167593" src="http://www.kzfmix.com/images/blog/1575167593.jpg" /&gt;
&lt;img alt="1575167598" src="http://www.kzfmix.com/images/blog/1575167598.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="1575167603" src="http://www.kzfmix.com/images/blog/1575167603.jpg" /&gt;
&lt;img alt="1575167605" src="http://www.kzfmix.com/images/blog/1575167605.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;それから&lt;a href="http://blog.kzfmix.com/entry/1538275967"&gt;Shizuoka.py&lt;/a&gt;やりましょうっていう話もでたんで、近いうちに日程を決めますね。コミュニティFだとちょっと不便なのでプラサヴェルデでも取っておきます。&lt;/p&gt;</description><pubDate>Sun, 01 Dec 2019 11:55:53 +0919</pubDate><category>Haskell</category></item><item><title>三島haskell無名関数の会に参加しました</title><link>http://blog.kzfmix.com/entry/1512873213</link><description>&lt;p&gt;Haskell好きが集まってHakellに関してワイワイガヤガヤするという&lt;a href="https://connpass.com/event/71324/"&gt;三島haskell無名関数の会&lt;/a&gt;が4年ぶりに開催されたので参加してきました。&lt;/p&gt;
&lt;p&gt;ていうか、&lt;a href="http://twitter.com/karky7"&gt;@karky7&lt;/a&gt;と二人だけだけだったw。&lt;/p&gt;
&lt;p&gt;karky7に会うのは2年ぶりくらい？会場は&lt;a href="http://repubrew.com/index.html"&gt;リパブリュー&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;java とかscalaの話から入って、Goどうなんかな？みたいな&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873372" src="http://www.kzfmix.com/images/blog/1512873372.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;ポテトにアンチョビをまぶしたのをつまみつつ、型システムと遅延評価、Hakyllいいよねっていう&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873374" src="http://www.kzfmix.com/images/blog/1512873374.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;ラムチョップ美味いですね。からの麺や七彩おすすめという話と銀座のラーメン屋制覇しつつ、
pythonでrangeで添字付けながらループ回すのC++の影響なの？ｗｗ&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873378" src="http://www.kzfmix.com/images/blog/1512873378.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;リュウゼツランのビールからなんで製薬会社は論文出すの？秘密にしないの？に対してGitHubにコードあげないと優秀なひと来ないでしょ？
ソフトウェア開発会社は？みたいに返してなるほどされた話とか。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873380" src="http://www.kzfmix.com/images/blog/1512873380.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;うしとらモザイクマッドネスから、SBDDとかLBDDのしごとって何なの？とかあとマッドネスなネタをはさみつつ。karky7はユーチューバーになりたいヒトなんですか？とか&lt;/p&gt;
&lt;p&gt;今元気が出るテレビの画像抽出を(haskellで？)やっている話とか、&lt;/p&gt;
&lt;p&gt;「あーそう言えば僕のgmailアドレスは」&lt;/p&gt;
&lt;p&gt;「あー知ってる知ってる、あれでしょ、山田太郎、メロリンキュー」&lt;/p&gt;
&lt;p&gt;とバレていたりとかｗ&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873382" src="http://www.kzfmix.com/images/blog/1512873382.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;リパブリューの5作目を飲みつつ、子供にプログラミング教育でスクラッチは甘えじゃないのか、だまってCとか
教えろやっていう話とか。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873384" src="http://www.kzfmix.com/images/blog/1512873384.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;ムール貝から、来年は伊東の浜でBBQやりつつ勉強会するかという話と、おもむろにカウンターでGentoo起動させ始めてyesodに関してのアツいスライドが。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873387" src="http://www.kzfmix.com/images/blog/1512873387.jpg" /&gt;
&lt;img alt="1512873389" src="http://www.kzfmix.com/images/blog/1512873389.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;モーモースタウト飲みながら、ワンコ愛について語る感じで&lt;/p&gt;
&lt;p&gt;&lt;img alt="1512873391" src="http://www.kzfmix.com/images/blog/1512873391.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;尚、ビールは全てパイントですｗ結局5時間しゃべりっぱなしだったというｗ
とても楽しかったので、Haskellなどの関数型言語に興味がある方は次回参加されるといいと思います。Python,Java,C,C++,Scalaといった言語全般に関しても語り合えると思います。Gentooに関してはkarky7に任せますｗ&lt;/p&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/Ye57f3Dupno" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen&gt;&lt;/iframe&gt;</description><pubDate>Sun, 10 Dec 2017 12:03:19 +0919</pubDate><category>沼津</category><category>Haskell</category></item><item><title>Haskell Platform 2013.2.0.0をインストールした</title><link>http://blog.kzfmix.com/entry/1369740155</link><description>&lt;p&gt;待望の&lt;a href="http://www.haskell.org/platform/"&gt;Haskell Platform&lt;/a&gt;がリリースされたので早速入れてみる。&lt;/p&gt;
&lt;p&gt;GHCが7.6.3になっていて64ビットでも&lt;a href="http://www.yesodweb.com/page/quickstart"&gt;Yesod&lt;/a&gt;が動くので64bit版をインストールした。これで、&lt;a href="http://blog.kzfmix.com/entry/1360150884"&gt;curl&lt;/a&gt;もいけるかな。&lt;/p&gt;
&lt;p&gt;それから、virthualenvがhsenvに変わっているので、&lt;a href="https://github.com/kzfm/virthualenvwrapper"&gt;virthualenvwrapper&lt;/a&gt;もhsenvwrapperに変えておこうっと。&lt;/p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/16704697" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen&gt; &lt;/iframe&gt;

&lt;p&gt;&lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="http://www.slideshare.net/KazufumiOhkawa/virthualenvwrapper" title="Virthualenvwrapper" target="_blank"&gt;Virthualenvwrapper&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://www.slideshare.net/KazufumiOhkawa" target="_blank"&gt;Kazufumi Ohkawa&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;&lt;/p&gt;</description><pubDate>Tue, 28 May 2013 20:23:11 +0919</pubDate><category>Haskell</category></item><item><title>型システム入門がきた</title><link>http://blog.kzfmix.com/entry/1364542322</link><description>&lt;p&gt;頑張って読んでいこうかと。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1364542311" src="http://www.kzfmix.com/images/blog/1364542311.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274069117/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/412u2xI8r3L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;型システム入門 −プログラミング言語と型の理論−&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Benjamin C. Pierce&lt;br /&gt;
    オーム社 / 7140円 ( 2013-03-26 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;</description><pubDate>Fri, 29 Mar 2013 16:32:22 +0919</pubDate><category>Haskell</category></item><item><title>静岡プログラミング言語勢力図2013春版</title><link>http://blog.kzfmix.com/entry/1363494908</link><description>&lt;h3&gt;13.03.23追記&lt;/h3&gt;
&lt;p&gt;皆さんのおかげで&lt;a href="http://blog.kzfmix.com/entry/1363862391"&gt;Shizuoka.py&lt;/a&gt;を開催することになりましたので楽しくやりましょう。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/408877079X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/31SADAJT7BL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;キングダム 1 (ヤングジャンプコミックス)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    原 泰久&lt;br /&gt;
    集英社 / 530円 ( 2006-05-19 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;静岡県は東西に長いので文化が結構違うのだが、実はプログラミングのカルチャーも違うのだ。
二年くらい前は&lt;strong&gt;西のRuby東のPython&lt;/strong&gt;と言われていたような気がするんだが最近は&lt;a href="https://twitter.com/motimune/status/312886939063820288"&gt;静岡県東部でHaskellerが勢力を伸ばし始めている&lt;/a&gt;のが認知されているらしく素晴らしいですね。&lt;/p&gt;
&lt;p&gt;&lt;img alt="shizuoka_lang" src="http://www.kzfmix.com/images/blog/shizuoka_lang.png" /&gt;&lt;/p&gt;
&lt;p&gt;西部には&lt;a href="http://hamamatsu-rb.github.com/"&gt;Hamamatsu.rb&lt;/a&gt;があり、東部には&lt;a href="http://blog.kzfmix.com/entry/1361621488"&gt;三島Haskell無名関数の会&lt;/a&gt;があるのに、静岡でPythonの集まりがないのはアレなので、一度くらいはShizuoka.pyをやりませんか？&lt;/p&gt;
&lt;p&gt;&lt;img alt="snake" src="http://www.kzfmix.com/images/blog/snake.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;巳年だしね。&lt;/p&gt;</description><pubDate>Sat, 23 Mar 2013 15:11:07 +0919</pubDate><category>Haskell</category><category>Python</category></item><item><title>Persistentでキーから検索する方法</title><link>http://blog.kzfmix.com/entry/1361660392</link><description>&lt;p&gt;昨日の三島Haskell無名関数の会(mishima.hs)で&lt;strong&gt;「PersistentのKeyってどうやって作るの？」&lt;/strong&gt;っていう話になって、宿題として持ち帰ったので朝から調べていた。&lt;/p&gt;
&lt;p&gt;Keyは&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="kr"&gt;type&lt;/span&gt; &lt;span class="kt"&gt;Key&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt; &lt;span class="ow"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;KeyBackend&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;PersistEntityBackend&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;val&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;で、&lt;a href="http://hackage.haskell.org/packages/archive/persistent/1.1.5.1/doc/html/Database-Persist.html#t:KeyBackend"&gt;KeyBackendのデータコンストラクタがKey&lt;/a&gt;なので、&lt;a href="http://hackage.haskell.org/packages/archive/persistent/1.1.5.1/doc/html/Database-Persist-Store.html#t:PersistValue"&gt;PersistValueのデータコンストラクタ&lt;/a&gt;で包めばいいみたい。&lt;/p&gt;
&lt;p&gt;ひとつレコードを作って、キーを指定して年齢を変更した後、キーでレコードを取ってきて年齢が変わっていることを確認するサンプル。SQLitのキーがInt64なのでこのサンプルではPersistInt64データコンストラクタを使っている。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="cm"&gt;{-# LANGUAGE QuasiQuotes, TemplateHaskell, TypeFamilies, OverloadedStrings #-}&lt;/span&gt;
&lt;span class="cm"&gt;{-# LANGUAGE GADTs, FlexibleContexts #-}&lt;/span&gt;
&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Database.Persist&lt;/span&gt;
&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Database.Persist.Sqlite&lt;/span&gt;
&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Database.Persist.TH&lt;/span&gt;
&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Control.Monad.IO.Class&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;liftIO&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;Database.Persist.Store&lt;/span&gt;

&lt;span class="nf"&gt;share&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;mkPersist&lt;/span&gt; &lt;span class="n"&gt;sqlSettings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;mkMigrate&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;migrateAll&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;persist&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
&lt;span class="kt"&gt;Person&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt;
    &lt;span class="n"&gt;age&lt;/span&gt; &lt;span class="kt"&gt;Int&lt;/span&gt; &lt;span class="kt"&gt;Maybe&lt;/span&gt;
    &lt;span class="n"&gt;loc&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="kr"&gt;default&lt;/span&gt;&lt;span class="ow"&gt;=&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;Japan&amp;quot;&lt;/span&gt;
    &lt;span class="kr"&gt;deriving&lt;/span&gt; &lt;span class="kt"&gt;Show&lt;/span&gt;
&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nf"&gt;main&lt;/span&gt; &lt;span class="ow"&gt;::&lt;/span&gt; &lt;span class="kt"&gt;IO&lt;/span&gt; &lt;span class="nb"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;main&lt;/span&gt; &lt;span class="ow"&gt;=&lt;/span&gt; &lt;span class="n"&gt;withSqliteConn&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;test.db&amp;quot;&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;runSqlConn&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="kr"&gt;do&lt;/span&gt;
    &lt;span class="n"&gt;runMigration&lt;/span&gt; &lt;span class="n"&gt;migrateAll&lt;/span&gt;
    &lt;span class="n"&gt;kzfmId&lt;/span&gt; &lt;span class="ow"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;insert&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="kt"&gt;Person&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;kzfm&amp;quot;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Just&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;Fuji&amp;quot;&lt;/span&gt;
    &lt;span class="n"&gt;liftIO&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;print&lt;/span&gt; &lt;span class="n"&gt;kzfmId&lt;/span&gt;
    &lt;span class="n"&gt;kzfm&lt;/span&gt; &lt;span class="ow"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;getJust&lt;/span&gt; &lt;span class="n"&gt;kzfmId&lt;/span&gt;
    &lt;span class="n"&gt;liftIO&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;print&lt;/span&gt; &lt;span class="n"&gt;kzfm&lt;/span&gt;
    &lt;span class="n"&gt;kzfm2&lt;/span&gt; &lt;span class="ow"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;replace&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Key&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;PersistInt64&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;kzfm&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;personAge&lt;/span&gt; &lt;span class="ow"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Just&lt;/span&gt; &lt;span class="mi"&gt;36&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="n"&gt;liftIO&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;print&lt;/span&gt; &lt;span class="n"&gt;kzfm2&lt;/span&gt;
    &lt;span class="n"&gt;kzfm3&lt;/span&gt; &lt;span class="ow"&gt;&amp;lt;-&lt;/span&gt; &lt;span class="n"&gt;getJust&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Key&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;PersistInt64&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="n"&gt;liftIO&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;personAge&lt;/span&gt; &lt;span class="n"&gt;kzfm3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;どういうメソッドがあるのかは&lt;a href="http://qiita.com/items/2d57f7fe6296590faa80"&gt;Database.Persist の関数群を簡単に説明&lt;/a&gt;が参考になる。&lt;/p&gt;</description><pubDate>Sun, 24 Feb 2013 08:04:48 +0919</pubDate><category>Haskell</category></item><item><title>三島Haskell無名関数の会 第2回目とホルモン</title><link>http://blog.kzfmix.com/entry/1361621488</link><description>&lt;p&gt;やりました。virthualenvを快適に使うためのvirthualenvwrapperの話と、&lt;/p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/16704697" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen&gt; &lt;/iframe&gt;

&lt;p&gt;&lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="http://www.slideshare.net/KazufumiOhkawa/virthualenvwrapper" title="Virthualenvwrapper" target="_blank"&gt;Virthualenvwrapper&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://www.slideshare.net/KazufumiOhkawa" target="_blank"&gt;Kazufumi Ohkawa&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;&lt;/p&gt;
&lt;p&gt;静的サイトジェネレーターのHakyllの話をしてきた。Hakyllは導入するとこで時間切れになってしまったので残念。結構便利だと思うので、もっと広まって欲しい。&lt;/p&gt;
&lt;iframe src="http://www.slideshare.net/slideshow/embed_code/16690749" width="427" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen webkitallowfullscreen mozallowfullscreen&gt; &lt;/iframe&gt;

&lt;p&gt;&lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="http://www.slideshare.net/KazufumiOhkawa/hakyll" title="Hakyll" target="_blank"&gt;Hakyll&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://www.slideshare.net/KazufumiOhkawa" target="_blank"&gt;Kazufumi Ohkawa&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;&lt;/p&gt;
&lt;p&gt;懇親会は鈴木屋で。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1361621625" src="http://www.kzfmix.com/images/blog/1361621625.jpg" /&gt;&lt;/p&gt;
&lt;h3&gt;Virthualenvwrapperとは&lt;/h3&gt;
&lt;p&gt;Haskellでサンドボックス環境を構築するには&lt;a href="http://hackage.haskell.org/package/virthualenv"&gt;virthualenv&lt;/a&gt;か&lt;a href="http://hackage.haskell.org/package/cabal-dev"&gt;cabal-dev&lt;/a&gt;がポピュラーだと思います（が後者は使ったことない）。&lt;/p&gt;
&lt;p&gt;virthualenvを使う場合、仮想環境を構築したいディレクトリに移動してvirthualenvコマンドを叩いてファイルのコピーなどをした後に source .virthualenv/bin/activateで仮想環境に入る必要があるため、以下の問題があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;仮想環境が増えていくとディレクトリの管理が大変になってくる&lt;/li&gt;
&lt;li&gt;virthualenv -&amp;gt; source .virthualenv/bin/activateはルーチンなので面倒くさい&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Virthualenvwrapperはこれらを解決するものです。virthualenvwrapperを使うと、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;仮想環境は.virthualenvディレクトリ以下に作成される(mkvhenv)&lt;/li&gt;
&lt;li&gt;仮想環境のディレクトリに移動してactivateをするコマンドを提供(workhon)&lt;/li&gt;
&lt;li&gt;仮想環境のリスト(lsvirthualenv)&lt;/li&gt;
&lt;li&gt;仮想環境削除(rmvirthualenv)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;なかなか便利です。&lt;/p&gt;</description><pubDate>Sun, 24 Feb 2013 06:00:19 +0919</pubDate><category>三島</category><category>Haskell</category></item><item><title>HakyllでJadeを使う</title><link>http://blog.kzfmix.com/entry/1361227513</link><description>&lt;p&gt;unixFilterを使えばよいが、jadeはstdinオプションがなかったので&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;cat &lt;span class="nv"&gt;$1&lt;/span&gt; | jade
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;というbashスクリプトを用意してbin/sjadeとした。&lt;/p&gt;
&lt;p&gt;hakyllでの設定はこんな感じ。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nf"&gt;match&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fromList&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;&amp;quot;index.jade&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;about.jade&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;member.jade&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="kr"&gt;do&lt;/span&gt;
  &lt;span class="n"&gt;route&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;setExtension&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;html&amp;quot;&lt;/span&gt;
  &lt;span class="n"&gt;compile&lt;/span&gt; &lt;span class="o"&gt;$&lt;/span&gt; &lt;span class="n"&gt;getResourceString&lt;/span&gt;
    &lt;span class="o"&gt;&amp;gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;withItemBody&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;unixFilter&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;bin/sjade&amp;quot;&lt;/span&gt; &lt;span class="kt"&gt;[]&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="o"&gt;&amp;gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;loadAndApplyTemplate&lt;/span&gt; &lt;span class="s"&gt;&amp;quot;templates/default.html&amp;quot;&lt;/span&gt; &lt;span class="n"&gt;defaultContext&lt;/span&gt;
    &lt;span class="o"&gt;&amp;gt;&amp;gt;=&lt;/span&gt; &lt;span class="n"&gt;relativizeUrls&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;h3&gt;Hakyllとは何か？&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;pandocが組み込まれたWebサイト用make&lt;/strong&gt;というのが僕の印象。&lt;/p&gt;
&lt;p&gt;Jekyllがブログっぽい静的サイトを生成するっていうイメージだったので、Hakyllも似た感じなのかなぁと考えていたけどちょっと違う感じ。&lt;/p&gt;
&lt;p&gt;&lt;a href="http://johnmacfarlane.net/pandoc/"&gt;pandoc&lt;/a&gt;とunixFilterのおかげでepub, docx出力なんかもできるのでちょっとした規模のサイトだったら構成ごとそのまま管理できると思う。&lt;/p&gt;
&lt;p&gt;それからSphinxでサイト管理するよりは、もうちょっと柔軟に対応できそう。というよりサブディレクトリにSphinxを埋め込めればさらに快適になりそう。&lt;/p&gt;
&lt;p&gt;haskellのソースコードもDSLっぽくなっていて、match -&amp;gt; route -&amp;gt; compileの流れは分かりやすい。&lt;/p&gt;</description><pubDate>Tue, 19 Feb 2013 08:50:03 +0919</pubDate><category>Haskell</category></item><item><title>三島Haskell無名関数の会 第2回目やります</title><link>http://blog.kzfmix.com/entry/1360068582</link><description>&lt;p&gt;今週末です。発表者と参加者募集中。今のところ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;virthualenvwrapperの紹介&lt;/li&gt;
&lt;li&gt;persistent入門&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;をやる予定にしてますが、他に&lt;strong&gt;ioDriveでHaskell使うとどんな感じなの？&lt;/strong&gt;とかそんな発表も期待してます。&lt;/p&gt;
&lt;p&gt;時間が余るようだったら&lt;a href="http://jaspervdj.be/hakyll/"&gt;Hakyll&lt;/a&gt;のハンズオンでもやる予定にしてます。&lt;/p&gt;
&lt;p&gt;僕の場合はマイクロフレームワークは&lt;a href="http://flask.pocoo.org/"&gt;Flask&lt;/a&gt;で静的サイトジェネレータは&lt;a href="http://jaspervdj.be/hakyll/"&gt;Hakyll&lt;/a&gt;を使っている。&lt;/p&gt;
&lt;p&gt;フルスタックのフレームワークはあまり好きじゃないんだけど、使うなら&lt;a href="http://www.yesodweb.com/"&gt;Yesod&lt;/a&gt;を習得したいなぁと思っているが。&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;2/23@三島です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://atnd.org/events/36699"&gt;三島Haskell無名関数の会 第2回目&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;内容はこれから更新していきますが、懇親会は鈴木屋でホルモンをいただく感じです（というかこっちがメイン）。&lt;/p&gt;
&lt;p&gt;&lt;img alt="1360096263" src="http://www.kzfmix.com/images/blog/1360096263.jpg" /&gt;&lt;/p&gt;
&lt;p&gt;僕はvirthualenvwrapperの話とoptparse-applicativeでなんかコマンドをつくるというネタでもやろうかなと思っている。&lt;/p&gt;</description><pubDate>Mon, 18 Feb 2013 19:42:59 +0919</pubDate><category>三島</category><category>Haskell</category></item><item><title>Haskellでbrewのcurlを使おうとしたが</title><link>http://blog.kzfmix.com/entry/1360150884</link><description>&lt;p&gt;Haskellでscpを使いたいなぁと思い、色々と調べてみたがヨサゲなのが見つからなかった。&lt;/p&gt;
&lt;p&gt;そこで、あーそういえばcurl使えんじゃんと思い出して、職場のlinuxではcabal install curlでokだった。この勢いでMBAにも入れようとしてハマった。&lt;/p&gt;
&lt;p&gt;osxに最初から入っているcurlはscpに対応していない&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;/usr/bin/curl -V
curl 7.24.0 &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin12.0&lt;span class="o"&gt;)&lt;/span&gt; libcurl/7.24.0 OpenSSL/0.9.8r zlib/1.2.5
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp 
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;というわけでbrewで入れた(libssh2が必要)。ちなみに&lt;a href="http://stackoverflow.com/questions/4691403/keg-only-homebrew-formulas"&gt;こんなの&lt;/a&gt;が出るのでln -sした。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;/usr/local/bin/curl -V
curl 7.28.1 &lt;span class="o"&gt;(&lt;/span&gt;x86_64-apple-darwin12.2.1&lt;span class="o"&gt;)&lt;/span&gt; libcurl/7.28.1 OpenSSL/0.9.8r zlib/1.2.5 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp 
Features: IPv6 Largefile NTLM NTLM_WB SSL libz
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;curlのほうはコレでOK。&lt;/p&gt;
&lt;p&gt;続いてcabal installで&lt;a href="http://hackage.haskell.org/package/curl"&gt;curl&lt;/a&gt;を入れるわけだが、brewのlibとかincludeを指定できないみたいなので、ソースを読んでみる。&lt;/p&gt;
&lt;p&gt;curlc.cのincludeが&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;lt;curl/curl.h&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;と決め打ちなので、ちょいと書きなおしてやる&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="cp"&gt;#include &amp;quot;/usr/local/Cellar/curl/7.28.1/include/curl/curl.h&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;これでコンパイル通るかなーと&lt;/p&gt;
&lt;p&gt;通らない。&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;/usr/local/Cellar/curl/7.28.1/include/curl/curlrules.h:143:0:
     error: size of array ‘__curl_rule_01__’ is negative

/usr/local/Cellar/curl/7.28.1/include/curl/curlrules.h:153:0:
     error: size of array ‘__curl_rule_02__’ is negative
cabal: Error: some packages failed to install:
curl-1.3.8 failed during the building phase. The exception was:
ExitFailure 1
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;negativeってなんだよ？とググってみたら&lt;a href="http://ubuntuforums.org/showthread.php?t=1680426"&gt;ヒットした&lt;/a&gt;。要するに64bitのlibcurlを32bitのghcで使おうとしてエラーになっているらしい。&lt;/p&gt;
&lt;p&gt;が、&lt;a href="http://www.yesodweb.com/page/quickstart"&gt;32bitじゃないと現状Yesodがうまく動かない&lt;/a&gt;のでこれ以上はどうしようもない感じ。&lt;/p&gt;
&lt;p&gt;5月に&lt;a href="http://trac.haskell.org/haskell-platform/wiki/ReleaseTimetable"&gt;Haskell Platform 2013.2.0.0が出たら&lt;/a&gt;再チャレンジするかな。または&lt;a href="http://hackage.haskell.org/package/libssh2"&gt;libssh2&lt;/a&gt;とか&lt;a href="http://hackage.haskell.org/package/ssh"&gt;ssh&lt;/a&gt;でなんとかするか。&lt;/p&gt;</description><pubDate>Thu, 07 Feb 2013 19:02:43 +0919</pubDate><category>Haskell</category></item></channel></rss>