SlideShare a Scribd company logo
1 of 16
Download to read offline
すごい Yesod
たのしく学ぼう!
ふつうの人が
すごい Haskell を使って
ふつうに
Webプログラミングする
自己紹介
• 名前:島崎清山     (@seizans) �
• 勤務:ワークスアプリケーションズ(ERPパッケージ)
• 仕事:AWS とか・・・セキュリティとか・・・雑用?
• 生まれ:ファミコンやディズニーランドと同年
• エンジニア歴:3年
• Haskell歴:1年
• ふつうのプログラマ
• こいつがわしを育てた
  • 書籍「プログラミングHaskell」
  • Haskell初心者勉強会
  • スタートHaskell
Haskell はじめたきっかけ
• @mayahjp   氏(今日は来てない)に聞きました。

 私�「プログラミングできるようになるためには
 ������どうすればいいですか?」

 @mayahjp 「では関数型言語をやってください」

 私�「どれをやるといいですか?」

 @mayahjp 「Haskellをやってください」
Yesod はじめたきっかけ
• 結婚することが決まったので(式は来週)


「じゃあ Haskell の Yesod でWebサイトを作ろう!」
Yesod で作ってみました
• 結婚式二次会用サイト:happiage
• ソース:https://github.com/seizans/happiage
• Mighty:ハイパフォーマンスWebサーバ、Haskell製
• Angel:daemontoolsクローン、簡単で便利、Haskell製
• MongoDB:ドキュメント指向DB:カラムにリストを持てる
• (実はApacheも使用・・・SSLのために)


• 開発者:@dekosuke、@rf0444、@shokos、@seizans
• デザイン:同僚の人2人


 結婚予定のHaskellerの方はよろしければお使いください!
Yesod の紹介
• は既に結構されている
• @tanakh   さん(2011年5月)
  • http://www.slideshare.net/tanakh/yesod�
• @cutsea110 さん(2011年12月)
  • http://www.asahi-net.or.jp/~gi3k-itu/Yesod-
    Intro.pdf�
• @mr_konn さん(2012年2月)
  • http://blog.konn-san.com/article/20120324/
    yesod-technology-techtalk�
• @kazu_yamamoto さん(2012年3月)
  • http://www.mew.org/~kazu/material/2012-
    yesod.pdf�
Yesod の感触
• ふつうにフルスタックWebアプリケーション・フレームワーク
• プラスYesod(Haskell)の特徴によるメリット
 • 次のスライドで
• マイナスまだ不足しているものがあるデメリット
 • ドキュメント
 • 型が難しくてコンパイルエラーの意味を読むが難しい
 • デプロイ
Yesod の特徴
• 意識せずに書いてデフォルトで安全な感じになる
• コンパイル時の型チェックで実行時エラー削減
 • リンク切れが無い(アプリ内リソースに対して)
 • 通信エラー等の実行時エラーは残る
• セキュリティ系の対策
 • XSS、CSRF、SQLI、に対してふつうに対策
 • セッションハイジャックもデフォルトで防ぐ(IP確認)
• スケーラブル
 • スティッキーでないセッション
  • セッションは適切に処理してCookieに全部格納
Yesod の情報源
• 環境構築や動作確認
  • http://www.yesodweb.com/page/quickstart
  • http://www.mew.org/~kazu/material/2012-mighty-
    yesod.pdf
• あとは調べるために下(およびHayoo!(Hoogleは使えない...))
  • YesodBook http://www.yesodweb.com/book
  • ライブラリ
    • Database.Persist:DBアクセスする関数いろいろ
      http://hackage.haskell.org/packages/archive/
      persistent/latest/doc/html/Database-Persist.html
    • Yesod.Form.Field:Form部品いろいろ
      http://hackage.haskell.org/packages/archive/yesod-
      form/latest/doc/html/Yesod-Form-Fields.html
ライブコーディング
• 目的
 • ふつうの人がYesodを使ってふつうにWebプログラミング
    できそうだと感じてもらう
• twitterや肉声でフォローしてください!
  • 説明不足な感じになると思うので説明とか
  • そこはこう書いた方が良いよ! とか
• 今度Yesodハッカソンをやろうと思います
  • Yesodやってみようという人はそちらもどうぞ
  • そのときではゆっくり説明します
• ネタは以下
  https://github.com/seizans/todo
簡単なCRUDページを作る
• cabal install yesod は割愛(結構時間かかる)
• yesod init と cabal-dev install
• Model定義する
  • config/models
• ルーティングとハンドラとhamletを書いてページを作ろう
  • config/routes
  • Handler/Homu.hs
  • template/mado.hamlet
• フォーム雛形からwidgetを作ってhamletに入れ込もう
• フォームをPOSTに変えて、POSTリクエストを受けよう
• DB処理を書いて動作確認をしよう
  • runDB でDBトランザクションを記述
簡単なCRUDページを作る
• ハンドラを別ファイルに分割しよう
 • Application.hsがHandlerを読んでいる
 • ExitFailure11にご注意
• UPDATEフォームを作ろう
 • 初期表示値を       Maybe Tag 型で受け取ろう
• リストビューページを作ろう
  • 各行からUPDATEフォームへのリンクを作ろう
• リストビューにページングを実装しよう
  • selectList に渡す option list
• DefaultLayoutを変更しよう
  • template/default-layout-wrapper.hamlet
TodoのCRUDを作る(できれば)
• Todo定義
 • Dayフィールドや、Boolフィールドを作ってみる
• Todo新規作成ページ
• Todo更新ページ
• Todoリストビューページ
次回予告
• YesodHackathon やる予定(希望者がいれば)
 • デプロイ
 • 認証周り
 • メールと連携
 • REST対応
 • とか?


• Yesod書いてみたい人は下記に参加登録してみてください
 Yesod Hackathon(仮)
 http://bit.ly/KR7v32
聴いてくれて
ありがとう!

More Related Content

Viewers also liked

Haskell勉強会 in ie
Haskell勉強会 in ieHaskell勉強会 in ie
Haskell勉強会 in iemaeken2010
 
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ HaskellKazkuki Oakamoto
 
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad悠滋 山本
 
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」Kazkuki Oakamoto
 
すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!Haruka Nakajima
 
Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜aiya000
 

Viewers also liked (9)

Yesod and Auth
Yesod and AuthYesod and Auth
Yesod and Auth
 
Haskell勉強会 in ie
Haskell勉強会 in ieHaskell勉強会 in ie
Haskell勉強会 in ie
 
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
姫路 IT 系勉強会 Vol. 11 L1 グランプリ Haskell
 
Yesod(at FPM2012)
Yesod(at FPM2012)Yesod(at FPM2012)
Yesod(at FPM2012)
 
Haskell Lecture 2
Haskell Lecture 2Haskell Lecture 2
Haskell Lecture 2
 
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
2014 05-11-関数型lt大会-「やらなければならないこと」としてのhaskellのmonad
 
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
第2回関数型言語勉強会 LT 「Haskell 入門書を読んだその後は」
 
すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!すごいHaskellたのしくHeroku!
すごいHaskellたのしくHeroku!
 
Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜Haskellの型安全性の力よ〜参照透明性編〜
Haskellの型安全性の力よ〜参照透明性編〜
 

Similar to 20120527yesod

Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13hanachin
 
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTScala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTpocketberserker
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?Shinichi Nishikawa
 
elasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるelasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるKatsushi Yamashita
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているpocketberserker
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座Shinichi Nishikawa
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料Takashi Aoe
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミングYusuke Sakurai
 
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介Ruby StyleStatsの紹介
Ruby StyleStatsの紹介Toshihiro Gotou
 
Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!Masaya Taji
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門Masaya Dake
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Shingo Furuyama
 
とあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たこととあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たことkamiyam .
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1Nishida Kansuke
 

Similar to 20120527yesod (15)

Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 
Scala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LTScala基礎勉強会 懇親会LT
Scala基礎勉強会 懇親会LT
 
WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?WordPress中級者への道!テンプレートタグはどう動くのか!?
WordPress中級者への道!テンプレートタグはどう動くのか!?
 
elasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみるelasticsearch-hadoopをつかってごにょごにょしてみる
elasticsearch-hadoopをつかってごにょごにょしてみる
 
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみているF#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
 
鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料鹿駆動勉強会 青江発表資料
鹿駆動勉強会 青江発表資料
 
Macで快適にプログラミング
Macで快適にプログラミングMacで快適にプログラミング
Macで快適にプログラミング
 
Ppl
PplPpl
Ppl
 
Ruby StyleStatsの紹介
Ruby StyleStatsの紹介Ruby StyleStatsの紹介
Ruby StyleStatsの紹介
 
Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!Hadoop Streamingを使って お好きな言語でMap☆Reduce!
Hadoop Streamingを使って お好きな言語でMap☆Reduce!
 
グラフデータベース入門
グラフデータベース入門グラフデータベース入門
グラフデータベース入門
 
Hadoop Source Code Reading #17
Hadoop Source Code Reading #17Hadoop Source Code Reading #17
Hadoop Source Code Reading #17
 
とあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たこととあるWEBエンジニアが スーパーハッカソンで知り得たこと
とあるWEBエンジニアが スーパーハッカソンで知り得たこと
 
⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1⑳CSSでアニメーション!その1
⑳CSSでアニメーション!その1
 

More from Seizan Shimazaki

一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)Seizan Shimazaki
 
メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)Seizan Shimazaki
 

More from Seizan Shimazaki (6)

PFDS8.1
PFDS8.1PFDS8.1
PFDS8.1
 
Pfds20120304
Pfds20120304Pfds20120304
Pfds20120304
 
Cryptography
CryptographyCryptography
Cryptography
 
Digital Signature and PKI
Digital Signature and PKIDigital Signature and PKI
Digital Signature and PKI
 
一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)一方向ハッシュ関数(One-way Hash Function)
一方向ハッシュ関数(One-way Hash Function)
 
メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)メッセージ認証コード(Message Authentication Code)
メッセージ認証コード(Message Authentication Code)
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 

Recently uploaded (12)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 

20120527yesod

  • 3. 自己紹介 • 名前:島崎清山 (@seizans) � • 勤務:ワークスアプリケーションズ(ERPパッケージ) • 仕事:AWS とか・・・セキュリティとか・・・雑用? • 生まれ:ファミコンやディズニーランドと同年 • エンジニア歴:3年 • Haskell歴:1年 • ふつうのプログラマ • こいつがわしを育てた • 書籍「プログラミングHaskell」 • Haskell初心者勉強会 • スタートHaskell
  • 4. Haskell はじめたきっかけ • @mayahjp 氏(今日は来てない)に聞きました。 私�「プログラミングできるようになるためには ������どうすればいいですか?」 @mayahjp 「では関数型言語をやってください」 私�「どれをやるといいですか?」 @mayahjp 「Haskellをやってください」
  • 6. Yesod で作ってみました • 結婚式二次会用サイト:happiage • ソース:https://github.com/seizans/happiage • Mighty:ハイパフォーマンスWebサーバ、Haskell製 • Angel:daemontoolsクローン、簡単で便利、Haskell製 • MongoDB:ドキュメント指向DB:カラムにリストを持てる • (実はApacheも使用・・・SSLのために) • 開発者:@dekosuke、@rf0444、@shokos、@seizans • デザイン:同僚の人2人 結婚予定のHaskellerの方はよろしければお使いください!
  • 7. Yesod の紹介 • は既に結構されている • @tanakh さん(2011年5月) • http://www.slideshare.net/tanakh/yesod� • @cutsea110 さん(2011年12月) • http://www.asahi-net.or.jp/~gi3k-itu/Yesod- Intro.pdf� • @mr_konn さん(2012年2月) • http://blog.konn-san.com/article/20120324/ yesod-technology-techtalk� • @kazu_yamamoto さん(2012年3月) • http://www.mew.org/~kazu/material/2012- yesod.pdf�
  • 8. Yesod の感触 • ふつうにフルスタックWebアプリケーション・フレームワーク • プラスYesod(Haskell)の特徴によるメリット • 次のスライドで • マイナスまだ不足しているものがあるデメリット • ドキュメント • 型が難しくてコンパイルエラーの意味を読むが難しい • デプロイ
  • 9. Yesod の特徴 • 意識せずに書いてデフォルトで安全な感じになる • コンパイル時の型チェックで実行時エラー削減 • リンク切れが無い(アプリ内リソースに対して) • 通信エラー等の実行時エラーは残る • セキュリティ系の対策 • XSS、CSRF、SQLI、に対してふつうに対策 • セッションハイジャックもデフォルトで防ぐ(IP確認) • スケーラブル • スティッキーでないセッション • セッションは適切に処理してCookieに全部格納
  • 10. Yesod の情報源 • 環境構築や動作確認 • http://www.yesodweb.com/page/quickstart • http://www.mew.org/~kazu/material/2012-mighty- yesod.pdf • あとは調べるために下(およびHayoo!(Hoogleは使えない...)) • YesodBook http://www.yesodweb.com/book • ライブラリ • Database.Persist:DBアクセスする関数いろいろ http://hackage.haskell.org/packages/archive/ persistent/latest/doc/html/Database-Persist.html • Yesod.Form.Field:Form部品いろいろ http://hackage.haskell.org/packages/archive/yesod- form/latest/doc/html/Yesod-Form-Fields.html
  • 11. ライブコーディング • 目的 • ふつうの人がYesodを使ってふつうにWebプログラミング できそうだと感じてもらう • twitterや肉声でフォローしてください! • 説明不足な感じになると思うので説明とか • そこはこう書いた方が良いよ! とか • 今度Yesodハッカソンをやろうと思います • Yesodやってみようという人はそちらもどうぞ • そのときではゆっくり説明します • ネタは以下 https://github.com/seizans/todo
  • 12. 簡単なCRUDページを作る • cabal install yesod は割愛(結構時間かかる) • yesod init と cabal-dev install • Model定義する • config/models • ルーティングとハンドラとhamletを書いてページを作ろう • config/routes • Handler/Homu.hs • template/mado.hamlet • フォーム雛形からwidgetを作ってhamletに入れ込もう • フォームをPOSTに変えて、POSTリクエストを受けよう • DB処理を書いて動作確認をしよう • runDB でDBトランザクションを記述
  • 13. 簡単なCRUDページを作る • ハンドラを別ファイルに分割しよう • Application.hsがHandlerを読んでいる • ExitFailure11にご注意 • UPDATEフォームを作ろう • 初期表示値を Maybe Tag 型で受け取ろう • リストビューページを作ろう • 各行からUPDATEフォームへのリンクを作ろう • リストビューにページングを実装しよう • selectList に渡す option list • DefaultLayoutを変更しよう • template/default-layout-wrapper.hamlet
  • 14. TodoのCRUDを作る(できれば) • Todo定義 • Dayフィールドや、Boolフィールドを作ってみる • Todo新規作成ページ • Todo更新ページ • Todoリストビューページ
  • 15. 次回予告 • YesodHackathon やる予定(希望者がいれば) • デプロイ • 認証周り • メールと連携 • REST対応 • とか? • Yesod書いてみたい人は下記に参加登録してみてください Yesod Hackathon(仮) http://bit.ly/KR7v32