Bisection is about the simplest algorithm there is for isolating a root of a continuous function: Start with an interval such that the function takes on oppositely signed values on the endpoints. Split the interval at its midpoint. Recurse into whichever half has endpoints on which the function takes on oppositely signed values. After each step, the new interval is half as large as the previous in
Hi, I’m Emmanuel! I’m the author of this blog. I am a Senior Director of Software Engineering at adidas.com, and I’m based in Amsterdam, Netherlands. Translations: This article was translated to Simplified Chinese by Xiong Duo and to Korean by Matt Lee (이 성욱). Introduction I want to make solid-state drives (SSDs) the optimal storage solution for my key-value store project. For that reason, I had t
Intro Lately I got sucked into Haskell. When I first saw it it looked like it might be a bit impractical for real-life projects but this prejudice faded away slowly. Now I’m at the point where I have an idea for a web application and I’d like to do it in Haskell. After a quick search I found many frameworks and libraries that I might use. So I decided to do some exploration and implement a bunch o
Attempto Controlled English is a formally defined unambiguous language which is a subset of the English language. It’s pretty sweet. I’ve known about it for some time, but I never fiddled with it because the standard implementation setup is rather elaborate. I wanted a nice, simple package in Haskell which would define a parser and a printer only, much like haskell-src-exts does. That way I can us
Post published:February 25, 2014 Post Author:Philip Nilsson Post Category:Uncategorized Post Comments:3 Comments I recently started a toy Haskell project implementing some concepts related to Event Sourcing and CQRS. I find strong the abstractions and type system from Haskell usually help in solidifing my understanding of most concepts. This post will start things off only tangentially related to
As anyone who has looked into functional reactive programming (FRP) knows, there are lots of competing approaches to it, and not a lot of conceptual clarity about how they relate to each other. In this post, I’ll try to shed some light, and in particular give you some guide posts for understanding how the different versions of FRP relate to each other. Plus, I’ll show some connections to a similar
A nicer way to browse big profile files Published on February 25, 2014 under the tag haskell Introduction GHC comes with some amazing tools to do profiling of Haskell programs. In .prof files, you can see exactly in which function most time is spent and where most allocation is done. However, at Erudify, we have a huge amount of Haskell code – and at this point .prof files can become very unwieldy
I am currently in the early stages of a new project, plhaskell. plhaskell is a language handler for PostgreSQL that will allow you to write PostgreSQL functions in Haskell. The project has already taught me a lot, but recently I’ve had a somewhat mind bending encounter with what is almost dependently typed programming in Haskell - and I’ve just got to share it with you. Here’s the problem. At runt
Interactive code snippets not yet available for SoH 2.0, see our Status of of School of Haskell 2.0 blog post IntroductionI see a lot of people complain about the state of Haskell documentation. Some of the complaints are reasonable. After all, it took me a very long time to understand data families. The documentation on the extension that enables them doesn't really say much about them. But there
Previously, we covered state and mutability. Up until now, we’ve been programming primarily at the REPL. However, the REPL is a limited tool. While it lets us explore a problem interactively, that interactivity comes at a cost: changing an expression requires retyping the entire thing, editing multi-line expressions is awkward, and our work vanishes when we restart the REPL–so we can’t share our p
tl;dr: We present a multiple dispatch system for Python. We discuss issues that arise from multiple dispatch. We try to allay fears related to these issues. Dispatch Abstract operations like addition, +, have several different implementations. We choose which implementation to use based on the type of the inputs. For example: The addition of two numbers results in arithmetic addition The addition
Last time we saw a geometric version of the algorithm to add points on elliptic curves. We went quite deep into the formal setting for it (projective space $ \mathbb{P}^2$), and we spent a lot of time talking about the right way to define the “zero” object in our elliptic curve so that our issues with vertical lines would disappear. With that understanding in mind we now finally turn to code, and
Servo: Inside Mozilla's mission to reinvent the web browser for the multi-core age Mozilla on how its Servo engine will throw away the 20th-century baggage that holds back current browsers and harness the power of modern multi-core smartphones and tablets. Mozilla has opened up about its mission to reinvent the web browser for the multi-core, mobile age. The foundation behind the Firefox browser i
Revamped Parallel Layout in Servo Feb 25th, 2014 | Comments Over the past week I’ve submitted a series of pull requests that significantly revamp the way parallel layout works in Servo. Originally I did this work to improve performance, but it’s also turned out to be necessary to implement more advanced CSS 2.1 features. As it’s a fairly novel algorithm (as far as I’m aware) I’d like to take some
Use urandom Use urandom. Use urandom. Use urandom. Use urandom. Use urandom. Use urandom. But what about for crypto keys? Still urandom. Why not {SecureRandom, OpenSSL, havaged, &c}? These are userspace CSPRNGs. You want to use the kernel’s CSPRNG, because: The kernel has access to raw device entropy. It can promise not to share the same state between applications. A good kernel CSPRNG, like FreeB
最近GNU grepコマンドの最新バージョンがリリースされ、速度が10倍になったとのアナウンスがあった。それを聞いて、なんであんな枯れた技術に10倍もの高速化の余地があったのだろうと不思議に思った人も多いだろう。 ニュース記事:grepコマンド最新版、”-i”で10倍の高速化 本家のリリースノート:grep – News: grep-2.17 released [stable] 今回のリリースでは正確には、マルチバイトロケールで、-iオプション(–ignore-case、つまり大文字小文字を区別しないオプション)をオンにした時の速度が10倍くらいになったそうだ。 なぜそんなに速くなったのか?逆を言えば今までなぜそんなに遅かったのか? そもそも、多くの日本人にとって「大文字小文字の区別」というと英語のアルファベットか、せいぜいフランス語とかドイツ語とかのアクサン記号・ウムラウトがついたものく
2014年 パターン認識・機械学習勉強会 資料 第1回:イントロダクション 第2回:ベイズ確率・ベイズ識別・モデルの検証 第3回:モデル選択基準・MCMC法 第4回:ギブスサンプリング・線形識別モデル 第5回:線形識別モデル:ロジスティック回帰 第6回:線形識別モデル:ベイズロジスティック回帰,フィッシャーの線形判別 第7回:ニューラルネットワーク 第8回:ニューラルネットワーク(続き) 第9回:ニューラルネットワーク(続き) 第10回:カーネル法, カーネル密度推定法,カーネル回帰分析 第11回:カーネル法:ガウス過程 第12回:サポートベクターマシン, ソフトマージン 第13回:多クラスSVM, SVM回帰, 関連ベクターマシン 第14回:ベイジアンネットワーク 第15回:ジョインツリーアルゴリズム 第16回:ジョインツリーアルゴリズム(続き) 第17回:マルコフ確率場・ファクターグラ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く