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 MIT 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#, edited 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, 25 January 2017, 12:31 PM
There were a lot of rumors recently about the death of facts and even the death of statistics. I believe the core of the problem is that working with facts is quite tedious and the results are often not particularly exciting. Social media made it extremely easy to share your own opinions in an engaging way, but what we are missing is a similarly easy and engaging way to share facts backed by data.
This is, in essence, the motivation for The Gamma project that I've been working on recently. After several experiments, including the visualization of Olympic medalists, I'm now happy to share the first reusable component based on the work that you can try and use in your data visualization projects. If you want to get started:
- Check out thegamma-script package on npm
- Minimal example of thegamma-script in action
- How to use thegamma-script in your projects
The package implements a simple scripting language that anyone can use for writing simple data aggregation and data exploration scripts. The tooling for the scripting language makes it super easy to create and modify existing data analyses. Editor auto-complete offers all available operations and a spreadsheet-inspired editor lets you create scripts without writing code - yet, you still get a transparent and reproducible script as the result.
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, 11 October 2016, 5:30 PM
Our thinking is shaped by basic assumptions that we rarely question. As described by philosophers of science, research paradigms determine how scientists approach problems and what questions are accepted as valid scientific theories. In this article, I try to discover some of the hidden assumptions in the area of programming research. What are assumptions that we never question and what might the world look like if we based our design method on different basic principles?
Tuesday, 27 September 2016, 4:53 PM
Functions are the reason why many nice features become hard or impossible to implement. Functions make type inference hard and they make it impossible to use tools that rely on manipulation with concrete values - because functions introduce names with unknown values and types. Can we take inspiration from spreadsheet programming and build alternative abstraction mechanism that does not introduce this problematic property?
Tuesday, 6 September 2016, 4:37 PM
Olympic Games are perfect opportunity to do a fun data visualization project - you can easily predict when they will happen and you can get something interesting ready in advance. I used this year's Olympic Games in Rio as a motivation to resume working on The Gamma project, which aims to build tooling for open, reproducible and interactive data-driven storytelling.
Wednesday, 31 August 2016, 1:38 PM
Data science is often about telling stories with data and being able to use data to tell (and understand) stories is becoming a vital skill in the modern world. This is one of the reasons why I have been interested in building better tools for data-driven storytelling. Today, I'm happy to announce that my project called The Gamma has been awarded funding from the DNI Innovation Fund and I'll be working on this topic over the next year at the Alan Turing Institute in London.
Wednesday, 6 July 2016, 4:03 PM
The most recent version of Ionide comes with a completely revamped version of F# Interactive which makes it possible to format the results of running F# code as HTML. This blog post provides some of the details about how this works and it also introduces an Ionide integration with FsLab, which gives you new powerful tools for doing data science with F#.
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. Submitted in November 2016.
Computer programs do not always work as expected. In fact, ominous warnings about the desperate state of the software industry continue to be released with almost ritualistic regularity. In this paper, we look at the 60 years history of programming and at the different practical methods that software community developed to live with programming errors.
Tomas Petricek. Presented at PPIG 2016.
Our thinking is shaped by basic assumptions that we rarely question. What are some of the hidden assumptions that we never question and that determine how programming languages are designed? And what might the world of programming look like if we based our thinking on different basic principles?
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.