Everybody can use Excel, but creating a web-based data-driven story requires professional developers, if not a team. I'm working on making data-driven storytelling easier, more open and reproducible.
The Gamma is a research project to build tools that easily integrate with modern data sources (open government data, public online sources) and let users easily create visualizations that are directly linked to the data, making the visualizations more transparent, reproducible, but also easy to adapt to explore other aspects of the data.
- Visualizing Olympic medalists is a demo that shows how such open data-driven articles could look like. It lets explores the history of Olympic medals.
- Computation + Journalism 2015 paper about an earlier prototype describes ideas and motivations of the project in more details. Watch a 15 minute demo or a 45 minute talk from StrangeLoop.
- The Gamma is on GitHub and everything is available under the Apache license. You can learn about the latest news on Twitter at @thegamma_net.
I'm a frequent conference speaker, founding member of the F# Software Foundation author of C# and F# books and author of many definitive F# libraries. I have been Microsoft MVP since 2004 and used F# since early Microsoft Research versions.
Have you seen the F# testimonials and are you thinking how can your company also benefit from the safety, correctness, efficiency and faster time-to-market provided by F#?
- fsharpWorks trainings — At fsharpWorks, we love sharing our knowledge with your team and we offer a wide range of workshops. We created an online course about F# in Finance and Type Providers and we regularly run an in-person course Fast Track to F# in London. We offer all of these and more as on-site trainings too — just drop us an email!
- F# books and articles — I wrote Real World Functional Programming, which explains functional concepts using C# and F#, editted a collection of F# case studies F# Deep Dives and also wrote a free O'Reilly report Analyzing and Visualizing Data with F#.
Coeffects and research
I recently submitted my PhD thesis at University of Cambridge and I closely collaborate with the F# team in Microsoft Research Cambridge.
My recent publications cover a range of topics from theory of context-aware programming, F# and type providers to language extensions for concurrent, reactive and asynchronous programming.
- Coeffects playgrouund is an interactive essay that lets you explore my PhD research in an accessible and fun way. You can read more in our ICFP 2014 paper.
- Academic web page has links to other published papers, work-in-progress drafts, research talks and also information about student projects and courses that I supervised.
Philosophy of science
During my (computer science) PhD, I became interested in how programming language research is done and how it should be done. We tend to think that science has infallible methods for discovering the truth, but is that the case? Or is science more 'sloppy' and 'irrational' than its methodological image as Paul Feyerabend says?
- History and philosophy of types is my most recent work in this area. It uses types as an example of a concept that appears simple, but is (and needs to be) more complex. Watch my LambdaDays talk or read the full-length Onward! essay.
- Philosophy posts on my blog — start with philosophy and history books every computer scientist should read and come to some of the events organized by the HaPoC Comission.
Wednesday, 6 July 2016, 4:03 PM
At NDC Oslo 2016, I did a talk about some of the recent new F# projects that are making data science with F# even nicer than it used to be. The talk covered a wider range of topics, but one of the nice new thing I showed was the improved F# Interactive in the Ionide plugin for Atom and the integration with FsLab libraries that it provides.
In particular, with the latest version of Ionide for Atom and the latest version of FsLab package, you can run code in F# Interactive and you'll see resulting time series, data frames, matrices, vectors and charts as nicely pretty printed HTML objects, right in the editor. The following shows some of the features (click on it for a bigger version):
In this post, I'll write about how the new Ionide and FsLab integration works, how you can use it with your own libraries and also about some of the future plans. You can also learn more by getting the FsLab package, or watching the NDC talk..
Here you'll find what I'm working on — my blog posts tend to be either updates about projects I'm working on, trainings and talks I'm doing, or longer posts that are early versions of my ideas — some of them become papers, some of them have been cited in other papers, some will be soon forgotten.
Tuesday, 31 May 2016, 1:51 AM
Thursday, 26 May 2016, 1:33 PM
Combining philosophy and computer science might appear a bit odd, but the fact that the disciplines do not overlap might very well be the reason why putting them together is interesting - the antidisciplinary field that opens presents a number of important questions about programming language research and computer science in general!
Tuesday, 12 April 2016, 3:33 PM
In my PhD thesis, I worked on integrating contextual information into a type system of functional programming languages. Most of the work is on theory, but I wanted to make it more accessible. To do this, I built an interactive essay where you can write, run, type check and parse simple context-aware programs and learn more about the (dry) theory in a more fun way.
Wednesday, 30 December 2015, 6:09 PM
This year, my #FsAdvent contribution ended up on December 31.To celebrate the beginning of the New Year 2016, I built an interactive web application that visualizes 'Happy New Year' tweets across the globe. It uses a range of interesting F# libraries including F# Data Toolbox for calling Twitter, Suave.io web server and F# agents.
Thursday, 10 December 2015, 12:42 PM
When I tell my fellow computer scientists or software developers that I'm interested in philosophy of science, they first look a bit confused, then we have a really interesting discussion about it and then they ask me for some interesting books they could read about it. So, I thought I should turn my answer into a blog post!
I published papers about programming languages including type providers, theory of coeffects, concurrent and reactive programming, but also philosophy and history of programming. My academic page has a complete list, including teaching and other activities.
Tomas Petricek, Gustavo Guerra and Don Syme. In Proceedings of PLDI 2016
The paper presents F# Data, a library of type providers that integrate external data in XML, CSV and JSON formats into the type system of the F# language. F# Data infers the shape of structured documents and uses it to guarantee a relative safety property.
Tomas Petricek. Submitted in April 2016.
The paper records a classroom discussion about failures in software engineering. Tau advocates that all errors must be eliminated using proofs, Alpha and Beta believe in testing, Epsilon argues that we need to live with errors and finally, live coder Omega embraces errors as the source of creative inspiration.
Alan Mycroft, Dominic Orchard, Tomas Petricek. Semantics, Logics, and Calculi, 2016
This paper joins two recent developments related to effect systems - the development of richer effect systems based on complex algebraic structures and the development of semantic models based on monads. We show how graded joinads link the two developments.