学習がてら、HaskellのWebフレームワークであるYesodと、セッション管理をサポートするライブラリであるserversessionを組み合わせて動かしてみました。 今回は、stackのtemplateであるyesodweb/simpleを利用して、redissessionというプロジェクト名にしました。 今回は、SessionストレージにRedisを使いたかったので、serversessionというライブラリを使いました。 (このライブラリは長いことメンテナンスされていないようですが、今回はHaskellでのセッション周りの実装例を見てみることが目的なので、気にせず進みます。) まずは、package.yamlにserversessionパッケージの情報を追記します。 フロントエンドとしてYesod、バックエンドとしてRedisを使用するので、serversession-front
To continue our series on Haskell in production, we have an interview with Jezen Thomas, the CTO of Riskbook. Riskbook is a marketplace that connects reinsurance brokers and underwriters, and Haskell has been working out quite well for them. In the interview, we talk about how Haskell can be a blessing when introducing changes to the codebase, what libraries and extensions they use in their projec
問題意識 モダンというと曖昧ですが、想定しているのはNode.jsのnpmで、pugやsassやtypescriptなど使い勝手の良いalt言語を自動ビルドしながら開発する感じです。 悲しいことに、Haskellのフロントエンド開発は忌避されがちです。 バックエンド(サーバー側)をHaskellで実装する場合、フロントエンド(クライアント側)はどう開発すれば面倒くさくないのでしょうか? もし、SPAのようにJSON APIを介してバックエンドとフロントエンドを分離するなら、Haskellはバックエンドだけ、フロントエンドはnpmでビルド可能な自由な言語という選択ができます。 例えばservant+elmはいい感じですね。 この場合は、あまり問題にはなりません。 しかし、SPAは一般に管理ファイルとコード記述量が多くなります。 したがって、小規模でブラウザの動的処理が少ない場合は、SPAにし
HaskellのウェブアプリケーションフレームワークYesodの入門書! 『Haskellで作るWebアプリケーション 遠回りして学ぶYesod入門』発行 技術書典シリーズ、8月の新刊
Posted on March 19, 2018 authored by Shinya Yamaguchi Last Updated March 19, 2018 はじめに 今回は Yesod を使っているマニア向け情報です。 Yesod にはサブサイトという機能があり、Yesod Book の Creating a Subsite で一通りの使い方が説明されています。 簡単に言えば、異なる Yesod アプリケーションで共通のコンポーネント (認証システム等) を利用するために使えるようです。 scaffolded site を使っている人は yesod-static パッケージで提供されている Static 型をサブサイトとして利用していることでしょう。 Yesod のバージョンが 1.6 に上がった影響により Yesod Book の内容がそのままでは動かなくなっていたため、コードを
Posted on January 27, 2018 translated by Kotaro Ohsugi authored by Michael Snoyman Original post: Upcoming Yesod breaking changes 2018年 1月 11日 Michael Snoyman 私が作ったライブラリの破壊的変更点について話をしてきましたが、Yesod をその変更から取り残したくはありませんでした。yesod-core は 2014年からバージョン1.4 で安定しています。しかし、私のパッケージエコシステムにおける MonadUnliftIO の変更は Yesod にも影響してくるでしょう。問題は、どの程度かということです。 知らない人のために補足しておくと、MonadUnliftIO は monad-control と exceptions にそれぞれ
この記事はHaskell(その3) Advent Calendar 2017の22日目の記事になります. 「ああ,Haskellで仕事できたらどれだけ幸せか!」 おそらくHaskell好きな方にはこういった方が多いと思います. ですが,実情としてC++やC#, Pythonといった主力勢力の多い企業や団体の中で,一人Haskellを推していったところで焼け石に水. なぜでしょうか?それは,Haskellが共通言語ではないからです. これはみなさんご承知でしょう. なので,社内・社外の勉強会を利用するわけですが,如何せん,すでに他言語で書かれているものを置き換えたり機能追加するのはやはりハードルが高いわけです. なぜでしょうか? 彼らはきっとこういうでしょう. 「だって,Pythonの方が慣れてるし」 慣れ. そう,つまり慣れなのです! 私たちだって,英語は読み書きできるけれど,日常の多くの
Clojurian時々Haskellerでラブライブ!ファン(海未🏹&曜⛵推し)のlagénorhynque (a.k.a. カマイルカ)です。 Opt Technologies所属で、普段は広告運用に関わる社内向けプロダクトをPHP, TypeScript, Clojureで開発しています。 最近までにClojureをプロダクトに導入したり、Haskell/Elmプロダクトの開発者を募集したりと、社内でもClojureやHaskellといった言語への注目度がこれまで以上に高まっています(断言)。 そこで今回は、今年11月から新たに始まったClojure勉強会clj-nakanoでの課題を題材に、HaskellでのWeb API開発に入門してみることにしました。 ちなみにclj-nakanoといえば、Clojure開発者Rich HickeyのClojure/conj 2017でのキーノ
ゲーム販売webアプリケーションSYAKERAKEを支える技術, HaskellとYesodで作られています Haskell (その3) Advent Calendar 2017 - Qiitaの3日目の記事です. この前「Haskellで書かれたwebサービスって何がある?」と聞かれて, HackageとかStackageのようなHaskellに関連したサービスぐらいしかパッと出せませんでした. なので, webアプリケーションであるSYAKERAKEがHaskell製であることと, これを構成するライブラリなどを書いていこうと思います. SYAKERAKEがどういうサービスかはサイトを見ていってください. 半分このサービスの宣伝です. お許しください. この記事を読むことで, 小規模ながらもプロダクションレベルのwebアプリケーションがHaskellで作れるということがわかっていただけ
はじめに YesodはフルスタックのWeb Application Frameworkであるため、ログイン・ログアウトの機構を作成することのできる拡張可能なモジュールが提供されています。 Yesodでは基本的に Yesod.Auth モジュールとその拡張に乗っかった形で認証の機能を実装します。 ひな形 まずは、ひな形として以下のファイルを用意します。 stack.yaml: resolver: lts-6.27 packages: - '.' extra-deps: - load-env-0.1.1 flags: {} extra-package-dbs: [] name: yesod-auth-sample version: 0.1.0.0 cabal-version: >= 1.8 build-type: Simple Flag dev Description: Turn on dev
Yesodを使ってWebアプリケーションを作るとき、よほどのことがなければYesodのベストプラクティスが詰まったテンプレートをベースに開発するのが、無難な選択です。 HaskellのビルドツールであるstackにはYesodのテンプレートが提供されています。 このエントリではテンプレートが生成するファイルの中でも、特に重要なものを解説します。 各ファイルの役割を知ることで、独自のカスタマイズや拡張を施したいときに、どうすればいいか当たりが付けやすくなります。 stackでYesodプロジェクトを作る 例えば、データベースがPostgreSQLのYesodプロジェクトをテンプレートから生成するコマンドは次のようになります。
今回のゴール Scaffolded Site によるサンプルプログラムの実行。 以下のようなカッコイイサンプルが動きます。 Yesod とは Yesod は Pure Haskell で記述されるフルスタック Web フレームワークです。MVC アーキテクチャを採用しています。 簡単に説明すると、Web サイトや Web アプリケーションが Haskell で作れます。 Yesod で動いている Web アプリケーションや Web サイト Front Row Education haskellers FP Complete School of Haskell Yesod のメリット 実行時のバグ (XSSやリンク切れなど) をコンパイル時に検出可能 Haskell で Web 開発ができる Yesod のデメリット 学習コストが非常に高い コンパイル時間が長い 情報が非常に少ない Yeso
Deployment system for web applications, originally intended for hosting Yesod applications. Keter does the following actions for your application: Binds to the main port (usually port 80) and reverse proxies requests to your application based on virtual hostnames. Provides SSL support if requested. Automatically launches applications, monitors processes, and relaunches any processes which die. Pro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く