elmでスライド作成ツール作ってみた

昨年末のElm Advent Calendar*1を見て、elm*2に興味を持ち、ちょこちょこ触ってました。で、とりあえず何か作ってみようということで、スライドっぽいウェブページを作るツール(Kelmote)を作って見ました。
それで作ったサンプルは http://suzuki-shin.github.io/kelmote/
カーソルキー左右(もしくはクリックorタッチ)でページ送り(戻し)できます。
ソースは https://github.com/suzuki-shin/kelmote においてあります。

elm触った感想

ちゃんと静的型がついてうれしい

ぼくがAltJSに求める一番のものはこれ。コンパイラが型エラーもちゃんと教えてくれて捗る。

Haskellっぽいsyntaxうれしい

まあ、Haskell好きなので。でもHaskellというよりMLじゃんという話も。*3

環境作るのが楽

macではバイナリ持ってきてインストールできた。windowsもそうみたい。
PureScriptとかって結構環境作るのに苦労した覚えがあるんだけど、elmは超らくちん。

ドキュメントやサンプルコードが結構充実している

web上で編集できるサンプルがたくさんあって勉強が捗る。

Signal結構難しい

まだ僕ではやりたくてもどうやればいいのかわからないことが結構ある。何かのトリガーで開始したりリセットしたりするタイマーとかどうやって作ればいいのかわからない><超簡単にできそうなのに。
あとフォーム周りがまだいまいちわかってない>

やっぱりモナド使いたい
FRPとかVirtualDOMとかelmで入門するのもいいんじゃない?

コマンドラインでTwitterにPOSTできるアプリを作った

前回のHaskellもくもく会*1のときに作ってたやつがだいたいできたかなという感じなのでブログに書いておく。

f:id:suzuki-shin:20140602134715p:plain
https://github.com/suzuki-shin/twhs

これをつくり始めたのは、twitterに自分用のメモ的な意味でPOSTをしたいことが僕はよくあって、そのときに
つぶやきたい => twitter(web、アプリ)を開く => timelineが見える => timelineを読み込んでしまう => 15分経つ => 何をつぶやこうとしていたか忘れる
みたいなことがよくあって、ただつぶやくだけのアプリをつくろうと思ったことがきっかけ。*2*3

言語はhaskellで、twitter-conduitというライブラリをつかって作りました。というかtwitter-conduitのサンプルコードだけでだいたい用は足りてしまったという。。

問題なければそのうちhackageにアップしちゃおうかと思ってる。

*1:http://haskellmokumoku.connpass.com/event/6063/

*2:しかし、結局timelineを取得する機能もつけちゃった

*3:というか、本当はrubyでつくられたtwというアプリがあって、それを使ってたんだけど、自分でもhaskellで作ってみたかったというだけ

迷路のやつをHaskellでやってみた

これもだいぶまえのやつだけど、ブログにも書いとくかということで。
全経路求めているので入力がちょっと大きいと終わらない。そのうちちゃんとしたアルゴリズムを勉強して書き直す予定。
ここで出されていた問題。 http://okajima.air-nifty.com/b/2010/01/post-abc6.html
2010年当時見た時はぜんぜん書ける気がしなかったんだけど、去年くらいにたまたま見て、Haskell(が少し書けるようになった今)なら書けるんじゃね?って思ってやってみたらできた。


迷路のやつ。ただし全経路求めてるので大きい(経路がたくさんある)入力だと終わらない。。

実行結果付きは http://ideone.com/XOspWl

ぷよぷよ19連鎖のやつをHaskellで書いてみた

たしか、Haskellもくもく会のときにやったやつ。ちょっと前の物だけど、ブログをずっと更新していなかったので、ブログに書いてみる。
http://okajima.air-nifty.com/b/2011/01/2011-ffac.html ネタ元はこちら。


実行結果はこんな感じ。http://ideone.com/MoMCka

4つ以上連なっているかどうかの判定がいけてないと思う。もっと簡単な方法も早い方法もあると思う。いつか気が向いたら書き直す。

今年読んだ本、読みかけの本

読み終わったやつ

  • 考えない練習 (小学館文庫)
  • お金は銀行に預けるな 2013年度版 (1コインキンドル文庫第5巻)
  • ズボラでも大丈夫! 書き込み式 一生役立つ お金のキホン
  • 投資信託にだまされるな![新版]
  • 投資家が「お金」よりも大切にしていること (星海社新書)
  • トゥモローズゴールド 世界的大変革期のゴールドラッシュを求めて (ウィザードブック)
  • Xcode 4ではじめるObjective-Cプログラミング 改訂第2版
  • iPhoneプログラミングUIKit詳解リファレンス
  • 改訂新版 反復学習ソフト付き SQL書き方ドリル
  • 伝説のファンドマネージャーが教える株の公式
  • 詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS 7対応
  • 伝説のファンドマネージャーが実践する 株の絶対法則

読みかけのやつ

感想

こんなもんかなあ。
今年は投資を始めたのもあって、投資関係がわりと多め。
あとiOSアプリ開発始めたので、それもいくつか。それ関係ではUIKit詳解リファレンスがとても良い。いまも作るときにリファレンスとして活用してる。ただ、一番最初に何も知らない時に読むと挫折すると思う。現在のXcode5ではだいぶ違うところもあるし。
SQLアンチパターンは会社で読書会をやって読んでる。来年2月くらいには読み終わるかな。

関数プログラミングの楽しみはいつまで積ん読なんだ、おれは。
IFPH(関数プログラミング入門)は読書会に行ってたんだけど、秋ごろいろいろやる気を無くしてた時に読まなくなっちゃって、読書会も行かなくなっちゃった。また来年早々には読むのを再開したい。順番的にはそのあと関数プログラミングの楽しみだな。
TAPL(型システム入門)はオーム社のセールで買った。で、今日読み始めたけど、これもきっと読みおわるのはずっと先だろうな。

カードゲームの役を判定する

CodeIQの問題に挑戦して、出題者の方からフィードバックを頂きました。
もうブログ等に書いても良いとこの事だったので、書きます。
挑戦したのは@Nabetani 鍋谷 武典さんからのゲームの問題で「カードゲームの役を判定する」というものです。
https://codeiq.jp/ace/nabetani_takenori/q476
言語の指定がなかったので、ぼくはHaskellで解きました。
CodeIQ_id=54590

haveWiningHandを含め、急いで書いたのであれな部分が色々あると思いますので、暇を見つけてリファクタしたいと思います。

最後に、面白い問題、そしてフィードバックありがとうございました。