Archive for May, 2008

Mathematical Books

Wednesday, May 21st, 2008

I went to the library today to check out Munkres’ Topology, because I am interested in listening in 18.901 next fall. I couldn’t find it except on Reserve, so I checked out some lighter readings:

I got the Spivak’s books because Gerry Sussman recommends Calculus on Manifolds in Structure and Interpretation of Classical Mechanics (SICM), where he mentions that his notation is inspired from Spivak’s.

Perspective on F#

Monday, May 19th, 2008

I’ve been using F# for roughly a semester now. It has been very beneficial to my project.

As part of my research, I am implementing a plug-in to AutoCAD, Micado. A Windows-only application, AutoCAD can be extended in C++, .NET, and AutoLISP — all in various degrees; in particular, certain core extensions can only be implemented in C++. Given these constraints, I chose to write the bulk of my application on the .NET platform. Initially, I implemented a prototype in C#. When it was time to start fresh, I decided to spice things up by learning F# and using it whenever possible.

The benefits of switching to F# entirely exceeded my expectations. I feel my code is written at a higher-level of abstraction. Coding in F# feels like building little languages that allow me to express my problem closer to its domain, thus solving a class of problem instead of just the one specific problem I am facing (whose requirements keep changing anyways — that’s research, after all!)

This resonates with a recent post of Don Syme to the F# mailing list:

[…] F# clearly excels at being a “domain” language. […] So I’d encourage us all to look at F# in that light: a general-purpose programming tool that can be applied very effectively to “crack open” domains like those above and apply the essential power of both FP and OO programming to problem solving in those domains, as well as being just a great FP/OO language. Applying F# to solve problems is what it’s all about, and that’s where much of the fun lies.

I’ll see if I can give specific examples in Micado. To be continued…

For now, let me conclude by saying that F# is tons of fun. And the fun elevates the research.

The term is coming to an end…

Monday, May 19th, 2008

This term was a lot of fun. Specially Sussman’s class. In fact, I liked it so much that I am thinking of taking his other class next term (the idea of expressing a physical theory as an unambiguous computer program really appeals to me). Then, for my second class, which has to be in Systems (and unfortunately, there isn’t that many options next fall!), I hesitate between Operating Systems and Computer Architecture. I feel Computer Architecture might be more useful in the long run, specially for someone like me who hasn’t taken a solid undergrad class in architecture. However, I heard it’s boring, and Operating Systems is sure to be more fun (though probably more time-consuming!), as I’d get to write my own operating systems from scratch in the labs.

On to achievements:

  • In Sussman’s class, my team and I had a really great time on the final project. We used the great book Building Problem Solvers (my Amazon review) as a base to implement a debugger for metabolic networks, BioHacker.
  • In my research, I finally released my work as a real product, Micado. The latest feature I’ve added is automatic control inference & generation, though this is still not officially included yet.

Now, I only have my film music exam on Wednesday. I don’t think I’ll study much for it. Instead, I’ll be reading a few books: