Yesod is a Haskell web framework for productive development of type-safe, RESTful, high performance web applications. February 16, 2014By Michael SnoymanView source on Github I'm happy to announce the release of a number of packages today, in particular: mono-traversable 0.3chunked-data 0.1 (first release)conduit-combinators 0.1 (first release)classy-prelude, classy-prelude-conduit, and classy-pre
Create Projects Type, modify, and run your code instantly. Immediately access reference guides, tutorials and live code. Create Share Projects Make your Haskell code instantly accessible. People can see, edit, and run code as soon as it’s published. Share IntroductionThis is a tutorial that attempts to show a basic way to run a simple simulator for the price of one stock or security. We will cove
graphdownを書き直した。改めて説明すると、graphdownはMarkdownでグラフを記述するための拡張記法を提供するライブラリで、以前のバージョンではGraphvizを使ってグラフを描画していたため、あの冗長なDOT言語を使わざるを得なかった。 新しいgraphdownは以下のようなMarkdownの記法を拡張する。 このMarkdownは以下のようなSVGに変換される。 A B C D E F [A] -> [B]という記法でノードをエッジで接続する。さらに、[A] <-> [B]と書くとノードを双方向に接続する。[A] -> [B], [C], [D] -> [E]と書いて複数のノードとの接続を簡潔に書くこともできる。 以前のバージョンではグラフはGraphvizが生成したPNGだったが、新しいバージョンはSVGとしてグラフを出力するため、CSSやJSでグラフを扱うことがで
Introduction In my last post called Concurrency, Goroutines and GOMAXPROCS, I set the stage for talking about channels. We discussed what concurrency was and how goroutines played a role. With that foundation in hand, we can now understand the nature of channels and how they can be used to synchronize goroutines to share resources in a safe, less error prone and fun way. What Are Channels Channels
Note that the Debian/Ubuntu package won’t work before Debian Jessie (8.0) or Ubuntu Trusty (14.04), due to missing dependencies. Furthermore, you are more than welcome to make a package for your OS of choice, if you do so please contact us. ☺ Build from the source (if you don’t use our packages) You will need: Python 3.4+, the interpreter, as well as the headers and shared objects needed to compil
Picture a traditional webapp. We have a bunch of stateless workers connected to a stateful, relational database. This is a setup with a number of excellent properties: All state can be queried using a uniform api - SQL. This enables flexible ad-hoc exploration of the application state as well as generic UIs like django admin Every item of state has a unique and predictable name by which it can be
Vimで、文字列を別のところに「持って行って置換する」効率的な方法は? 前置き これは私が答えを知っているパズルではなく、Vimmer諸氏への純粋な質問です。 「Vimで文字列を別のところに「持って行って置換する」効率的な方法は?」 意味がよく伝わるように例で説明します。 例 たとえば、以下のような文章を書いているとき。 BEFORE: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequa
今回は、論文の本数が多いのと、ドワンゴに雇われているので、本気でじっくりと論文を読んで解説しているし、ライブラリの論文も読み飛ばさずに読んでいるので、いつもより時間がかかる。そのため、いくつかのパートに分けて公開することにした。 今回はドラフトの更新はなし。 今回の新機能の提案の論文には、SG10のためのマクロ名の提案が目立つ。SG10というのは、Cプリプロセッサーによる機能テストのマクロ名を標準化しようという提案のStudy Groupだ。醜悪で将来廃止されるべきCプリプロセッサーに依存する機能をこれ以上増やさないで欲しいのだが。 N3824: make_array std::array<T>を返すmake_arrayの提案。以下のように使う。 // make_arrayの利用例 std::array<int, 3> a = std::make_array( 1, 2, 3 ) ; st
Capture, share, & collaborate on knowledge internally. Two weeks ago, we announced the public launch of Stack Overflow in Portuguese, our first-ever non-English Stack Overflow community. Which raises one very obvious question: Have we lost our minds? Wasn't the whole point of Stack Overflow to aggregate as much developer knowledge as possible in one place? To get all the potential solutions togeth
Scalability. It's the question that drives us. It's an anomaly inherent to the programming of the matrix. It's time for servers to handle 10 million simultaneous connections, don't you think? After all, computers now have 1000 times the memory as 15 years ago when the first started handling 10 thousand connections. Today (2013), $1200 will buy you a computer with 8 cores, 64 gigabytes of RAM, 10-g
CSRF 脆弱性対策には攻撃者の知り得ない秘密情報をリクエストに対して要求すればよく、そのような用途としてはセッション ID がお手軽でいいよねという時代があったかと思います。 いや、もちろん、 CSRF 対策の文脈だけで言えば今も昔も間違いというわけではありません。セッション ID が秘密情報であるのは Web アプリケーションにおいて当然の前提ですので、 CSRF 対策としてリクエストに求めるべきパラメータとしての条件はたしかに満たしています。 たとえば 『安全なウェブサイトの作り方』 改訂第6版では以下のように解説されています。 6-(i)-a. (中略) その「hidden パラメータ」に秘密情報が挿入されるよう、前のページを自動生成して、実行ページではその値が正しい場合のみ処理を実行する。 (中略) この秘密情報は、セッション管理に使用しているセッション ID を用いる方法の他、
I love Vim. I've used it for years and I still feel like I'm just scratching the surface of this tool. One thing that makes Vim so great is its plugins. In this post I'll talk about a few of my favorites. Introduction I love Vim. I’ve used it for years and I still feel like I’m just scratching the surface of this tool. I’ll part with my browser, I’ll switch shells, and if work requires it, I’ll ev
以下のエントリ 「関数型Ruby」という病(6) - 関数合成と文脈、Proc#liftとProc#>=、そしてモナ に便乗して、(一部の例を)Scalaに翻訳してみるのと、ScalazのKleisliの話をします。Scalaや関数型に興味のない人は読まないほうがいいかもしれません。わざとMonadとかFunctorの用語も出します。また、もとのエントリの良し悪しとか、Rubyでああいうことをやることの是非などはあまり話しません、というか、それが主目的ではありません。とにかく便乗してScalaの話するのと、あえて元記事では避けている「関数型の用語を出した説明」を少しします。 まず、(nilはOptionを使うということにして)もとの>=の例を直訳すると以下 val f = (_: List[Int]).headOption val g = (_: Int) + 1 val h = (_:
前回から一年以上が経過しているけど、最近lambda_driver.gemに機能を追加したので、そのことについて書こうと思う。 Rubyで、モナ……っぽい関数合成を実装した話だ。 Rubyで関数合成とかしたいので lambda_driver.gem というのを作った - ( ꒪⌓꒪) ゆるよろ日記 関数合成 関数合成については以前に書いたので、こちらを見て欲しい。 「関数型Ruby」という病(2) - 関数合成 Proc#compose - ( ꒪⌓꒪) ゆるよろ日記 おさらいをしておくと、関数合成とは、 関数gと関数fから、g(f(x))という関数hを新たに作り出すことだ。 (g ∘ f)(x) = g(f(x)) 関数gと関数fの合成関数g ∘ fに引数xを渡した結果は、関数gにf(x)の結果を渡したものと等しい。つまり、このような操作である。 f = lambda{|x| x + 1
※普通は「教師なしLDA」という言い方はしないです モチベーション 元々は、TwitterからURLつきのツイートを取りたかった。某ニュースアプリがTwitter上で(?)話題になっているニュース記事を(法的な是非があるとはいえ)配信しており、そんな感じのマイニングがしたかった。 ただ、普通に「http,https」でTwitter上で検索すると、量が膨大だった。加えて、ほとんどがスパム。なーにが「このサイトすごすぎwwwww」じゃ。 ということで、検索の段階でスパミーなキーワードを取り除き、純度の高いURL投稿マイニングをしたいわけだが、キーワードは既知なものには限らない。例えば「無料」とか「アフィリエイト」とかがスパムなのはそうなんだけど、「パズドラ」とか「魔法石」とか、未知のキーワードとか出てきた時に対応できない。 そこで、教師なし学習のアプローチを使って、スパムなキーワードを抽出す
Foreword by Ricardo Sanchez Back in March I had the pleasure to attend Karsten’s workshop at the 2013 Resonate conference in Belgrade, in it we learned how to work with audio and music while coding live using the Clojure programming language. It was great! I got so addicted to this new way of programming that it made me work on a little tutorial so I can share my experience with newcomers. After I
ISO C++ committee meeting June 24-29, St. Louis, MO, USA C++ on Sea July 2-5, Folkestone, Kent, UK Current status The current status of major subgroups can be found here: P1018: Language Evolution status P2400: Library Evolution status Recent milestones: C++26 work in progress C++23 and many TSes have been published, and work is now underway on more TSes and C++26 as shown below. click to enlarge
CRuby の Feature #8850 で提案されている Rational を10進小数展開する機能を実装してみた。 循環節の検出は、セルオートマトンの周期解を検出するときに使った手法を応用した。 この手法では、1桁ずつの展開 (標準展開) と2桁ずつの展開 (倍速展開) を同時に進め、両者の状態 (剰余) が等しくなったときに循環を見付けたことになる。 標準展開の末尾の位置と倍速展開の末尾の位置の差が循環節の長さに一致する。 循環節の先頭位置を見付けるには、標準展開と倍速展開のそれぞれの末尾から1桁ずつ前に戻りながら桁の値を比較していけば良い。 たとえば、循環を検出した時点で以下のような小数展開が得られたとしよう。 123.4567891357924680123450987613579246801234 ^ 標準展開の末尾 ^ 倍速展開の末尾 標準展開の末尾と倍速展開の末尾にあるカー
Game Development with Unity 2D – part 4: Oplites, Back to Basics! This is the fourth part of a voyage in Unity 2D development, where we document in video the design and development of a simple strategic game reproducing the Battle of the Teutoburg Forest; here we take a quick detour. If you missed them here are Part 0, Part 1, Part 2, Part 3, Part 5. Note for those following the development of the
Lock-free programming is a challenge, not just because of the complexity of the task itself, but because of how difficult it can be to penetrate the subject in the first place. I was fortunate in that my first introduction to lock-free (also known as lockless) programming was Bruce Dawson’s excellent and comprehensive white paper, Lockless Programming Considerations. And like many, I’ve had the oc
Thank you for visiting nature.com. You are using a browser version with limited support for CSS. To obtain the best experience, we recommend you use a more up to date browser (or turn off compatibility mode in Internet Explorer). In the meantime, to ensure continued support, we are displaying the site without styles and JavaScript.
Lemme see it St4k What is this? This is my attempt to pack as much Stack Overflow as possible into a single 4096 byte file. (The file is gzipped). The single file includes… All the HTML used All the CSS used All the Javascript used Embedded SVG for the Stack Overflow logo It doesn't use any libraries (no jQuery, underscore, etc) … and it'll probably only work on recent versions of Chrome and Firef
White polka dots on black cotton fabric (source: Wikimedia Commons) Introduction Since its first public release in February 2012, the Julia programming language has received a lot of hype. This has led to some confusion about the language’s current status. In this post, I’d like to make clear where Julia stands and where Julia is going, especially in regard to Julia’s role in data science, where t
This is a hack for the popular game, Flappy Bird. Although the game is no longer available on Google Play or the App Store, it did not stop folks from creating very good replicas for the web. People have also created some interesting variants of the game - Flappy Bird Typing Tutor and Flappy Math Saga. After playing the game a few times (read few hours), I saw the opportunity to practice my machin
概要 Clojureでデータマイニングに必要な各手法を解説する記事です。 本記事を読むと、全くClojureを知らない方でも データ抽出・集計 可視化 機械学習(決定木、ランダムフォレスト、k-meansクラスタリング) をClojureで実行できるようになります。 はじめに ClojureとはJVM上で動く(つまりOSを問わず沢山の環境で動く上に Java資産をそのまま使える)Lisp系の言語です。 Clojureではデータマイニングを行う際、 Incanterとclj-mlという2つの便利なツールがあります。 Incanterは統計処理用の専門ライブラリで、 単体で様々な統計分析を行ったり集計を便利にしたりする機能が沢山用意されています。 clj-mlはwekaという機械学習系のツールをClojureで簡単に使えるようにしたラッパーで、 決定木やランダムフォレストなどの分類器や 各種ク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く