FP Complete

Announcing Stackage Server

A New Service A couple months ago I made a post explaining Stackage server, its motivations and use-cases, and that it would be available in the coming months. It’s now officially available in beta! Stackage server. As a quick recap: the essence of Stackage is that rather than publishing at the granularity of packages, like […]

vectorBuilder: packed-representation yielding for conduit

Back in March, I mentioned that we’d be using conduit for high performance analyses. We’ve been busy working on various aspects of this behind the scenes. This is the first publicly available follow-up since then. One issue with financial analyses is bridging the gap between in-memory representations and streaming data. The former allows for higher […]

Stackage Server

Stackage is an infrastructure to create stable builds of complete package sets (henceforth we call them “snapshots”). Think “stable Hackage”. Let’s recap. As a user By running automated builds before releasing a new snapshot, Stackage gives the following assurances: There is always a build plan.¹ All packages actually compile.² All tests suites pass. All of […]

GHC 7.8, transformers 0.3, and lenient lower bounds

In the Stackage maintainer’s agreement, there’s a section about keeping your package compatible with the newest versions of all dependencies. What the maintainer’s agreement doesn’t (yet) discuss is when it’s important to be compatible with old versions of a package. The reasons for this are not immediately obvious, especially as it affects a smaller subset […]

Calculating the Minimum Variance Portfolio in R, Pandas and IAP

As part of producing a demo for FP Complete’s new IAP product, I wound up implementing the Minimum Variance Portfolio calculation for a stock portfolio in R, then in Haskell for the IAP, and finally in Python using the NumPy and SciPy extension libraries. I want to look at the process of writing each of […]

Monte carlo analysis in Haskell

A common analytic task is the monte carlo simulation. This involves sampling large numbers of random values in order to come to some kind of conclusion. Random numbers are often thought of as a weak point in purely functional languages. In a purely functional language like Haskell, we keep a strict separation between pure and […]

The State of Stackage

Almost a full year ago, I made the first commit into the Stackage repository, and the announcement blog post describes the project’s motivations. Since then, as part of our work at FP Complete, there’s been a lot of activity on this project. The community contributions have been amazing as well, with a huge number of […]

Haskell from C: Where are the for Loops?

If you’re coming from a language like C, Haskell can take some getting used to. It’s typical for a new language to feel a little different, but in Haskell the differences are more dramatic, and more fundamental. In particular… Where are the for loops? In most imperative languages, for loops are all over the place, […]

Solving the Global Software Crisis

Companies today are facing a perfect storm in information technology. As the world becomes more and more technological, more and more of a company’s success is driven – or limited – by its ability to innovate in IT. And IT innovation, in practice, means making software do new things. But companies still developing with 1990s and even […]

What do commercial users want from Haskell?

Over the next two years Haskell will have a lot more users, including many in commercial settings. We at FP Complete spend a lot of time interviewing and studying current and potential users, and at the recent ICFP gathering in Copenhagen many attendees encouraged me to talk more about what we have learned. Haskell delivers […]