Spotlight Topics

Most of the content on this page is related to one of the topics that I was recently interested in, so here you can find a page for every topic with some my articles, comments and other useful links:

Some Interests

Academic Stuff

As already mentioned, I'm a student of computer science at Faculty of Mathematics and Physics [^] of Charles University.

The topcis that I'm interested in are still changing :-), but you can find some up-to-date information on my academic page. My Bachelor thesis (it is available there) was about type-safe "AJAX" web development in F# with modality tracked in a type system using computation expressions (aka "monads"), so you can expect topics related to programming languages and tools...

Photography

I like taking photos, but updating the online gallery frequently was always a bit problem :-). That's why this page has a calendar, which shows a new picture every month (and also forces me to find and upload a new picture regularly).


Calendar - July 2009

More About Me

I'm student and Microsoft C# MVP from Prague, Czech Republic. I'm studying computer science at Charles University of Prague and I finished Bachelor studies in 2007.

Recently, I spent 3 months in Microsoft Research as an intern (with the F# team) and started wokring on the F# WebTools [^] project which allows developing "AJAX" applications purely in F# and this was also a topic of my thesis. I believe that F# and functional programming has a very promissing future.

The second topic that I'm involved in is maintaining of a project called Phalanger [^], which is a PHP language compiler started by my fellow students.

Latest Articles by Tomáš Petříček

F# Webcast (IV.) - Developing standard .NET libraries

In the previous parts of this webcast series we've developed an F# script that downloads RSS feeds asynchronously and in parallel and searches them for the specified keywords. We followed the usual F# development style, so after introducing the basic functional concepts, we wrote the code in the simples possible style and demonstrated how to use System.Xml and System.Net namespaces. Then we refactored the existing code, to run asynchronously and process the results potentially in parallel, which was very easy thanks to F# asynchronous workflows.

In this part of the series, we'll make the next evolutionary step of our sample application. We'll turn the code that originally used F# tuples and lists into code that uses standard .NET objects and we'll also see how to declare a class in F#. This simple modification will turn the script into an F# library that is almost indistinguishable from a library developed in C#. We'll also look how you can use the library from C# web application to show the interop between C# and F# in practice. We'll start with the code from the previous part, so if you missed that, you may want to check it out or download the source code.

Read the complete article
Monday, June 15, 2009

More Recent Articles

  • F# Webcast (III.) - Using Asynchronous Workflows (6/5/2009)

    In the previous part you've seen how to write a simple function for downloading RSS feeds and processing them. In this part, we look how to improve the function to download data asynchronously and process them potentially in parallel.

  • F# Webcast (II.) - Using .NET libraries (6/1/2009)

    This is the second part of the webcast series that introduces the F# language. It shows how to use .NET libraries from F# to download RSS feed and how to work with the obtained data using tuples, sequence expressions and other F# features.

  • F# Webcast (I.) - Introducing functional concepts (5/25/2009)

    Now that Visual Studio 2010 beta 1 is out, it may be a good time finally try the new F# language. To make the exploration easier, I created a web cast series that demonstrates interesting aspects of F#. In this part, we'll look at basic functional concepts and working with data.

  • Internship project: Reactive pattern matching (5/17/2009)

    I already mentioned that I was doing my second internship with Don Syme at MSR Cambridge. This time, I was in Cambridge for 6 months from October until April, so it has been more than a month since I left, but as you can guess I didn't have time to write anything about the internship until now...

Other Links

My Projects

  • F# Web Tools - Using the F# Web Tools you can author homogeneous client/server/database web applications in one type-checked project in F#. The distinction whether a code runs on the client (as JavaScript) or natively on the server is modeled using F# computation expressions.

  • Phalanger - PHP Language Compiler with several language extensions to allow smooth interoperability between PHP and other .NET (for example C#) code. Phalanger is complete enough to run applications like WordPress or MediaWiki.

  • LINQ Extensions - The project implements several useful extensions for the LINQ project. These extensions incude LINQ support for the C++/CLI language and simplified syntax or writing common types of database queries.

  • Other Projects Archive - Contains links to several older or partially completed projects that are no longer in active development, but may still be fun or even useful.