The Hobbit Hole

In a hole there lived a hobbit. Not a nasty, dirty, wet hole, filled with the ends of worms and an oozy smell, nor yet a dry, bare, sandy hole with nothing in it to sit down on or to eat: it was a hobbit-hole, and that means comfort.

7/6/2010

Circus Ponies Notebook 50% off

Filed under: General, Writing — bilbo @ 9:34 pm

If you use a Mac and are a fan of Microsoft OneNote, you’ll like Notebook by Circus Ponies. For today only, it Is 50% off, available for $25 through mupromo.com.

6/6/2010

ATS - A Better C?

Filed under: General — bilbo @ 10:18 am

I don’t really think ATS is a replacement for C, but I really liked this post about using ATS to write safer programs using C libraries.

It seems that ATS is basically as fast as C/C++. l’ve been using different functional languages off and on for the last decade, and performance of some functional languages (or at least their implementations) has prohibited me from using them more broadly. Being able to add ATS to my arsenal (Clean being my preferred functional language for performance) is something I look forward to. I enjoy learning new languages.

4/28/2010

Theory Proven Incorrect

Filed under: Programming — bilbo @ 10:49 pm

One of my reasons for writing a scheme interpreter/compiler is that I have always thought Scheme would be a good foundation for building a universal dynamic language environment. It seems that this was also a goal of Guile, the GNU extension language. I can (obviously) see the appeal.

Theory proven incorrect aside, I will say my goals are a trifle different. I’m not looking to port existing languages, at least not identically. I don’t think I would have had such hubris. Instead, I’m trying to create a language development environment. I think Scheme provides a great base, or more precisely, any VM that can support a Scheme has the necessary primitives to support just about any dynamic language. So there is my hubris :).

I believe that a Scheme is the ideal environment for trying dynamic language ideas for a couple of reasons:
1) The syntax of Scheme is similar to an abstract syntax tree. Parsers simply have to create a scheme equivalent and run (print (eval (read))).
2) Add primitives in Scheme. When a dynamic language needs a new primitive, it can easily do so by creating a scheme function or macro.

After getting this project up and running to a 1.0 state, I plan on writing a BASIC interpreter for it to provide a prototype.

4/19/2010

SQL Server Driver for PHP 2.0 (Now with PDO!)

Filed under: General — bilbo @ 12:00 pm

Microsoft has released the most recent fruits of my team’s labor. The SQL Server Driver for PHP 2.0 is now out.

This version contains a PDO driver. The PDO SqlSrv driver provides a full implementation of the PDO specification, though there are some things that we did different than other drivers. Which is not surprising, because not every driver does things the same way. However, we are actively soliciting feedback, so if you use PHP and PDO, please try our driver out and let us know what you think, and what you would like to see.

One of the key areas we’re interested in are SQL Server specific features. PDO has extensibility through driver specific methods. If there is some cool SQL Server feature that you want to use through PDO, let us know.

An important milestone for myself is that this is the first version I was the technical lead for. While I’ve written most of the code within previous versions, I was not actually responsible for the ‘code quality’. That always was the technical lead, who until now was mostly responsible for reviewing the code I wrote. With this release, I not only wrote alot the code, but was responsible ultimately for its quality. (Don’t worry, it was still reviewed by qualified people. :))

The other important facet is that until this release, I wrote all the code. We now have an additional developer, so we can split the responsibilities and deliver more goodness for PHP! Just one more thing to show that Microsoft takes PHP seriously.

Many thanks to those who contributed to this release.