Jul 27 2008

Observing the Heavens at Lick Observatory

Published by Julien Lecomte under Astronomy

The Lick Observatory is an astronomical observatory, owned and operated by the University of California. It is situated on the summit of Mount Hamilton, in the Diablo Range just east of San Jose, California, USA. The observatory is managed from the University of California, Santa Cruz, where its scientific staff moved in the mid-1960s. (source: Wikipedia)

Every year, the Lick Observatory presents a summer concert series on Saturday nights to benefit the Lick Observatory Visitors Programs. Tickets are hard to come by, and the shows sell out soon after they go on sale. However, this year, I managed to purchase a couple of tickets, and last night, Brandi and I had the opportunity to spend the evening at the Lick Observatory.

The evening began pleasantly with an observation of solar prominences, shortly followed by an hour long string quartet concert. We then got to observe Messier 17, an emission nebula located approximately 6,000 light years away from us, through the Great 36" Lick refractor (the 2nd largest in the world!) After that, the renowned Geoff Marcy gave a lecture on “Searching for Earth-like Planets” [outside our solar system] Finally, we looked at a few deep sky objects, as well as Jupiter, through amateur telescopes stationed on the parking lot. Below are some photos of this wonderful event. Cheers!

Sunset at the Lick Observatory

Looking back at the bay from Mount Hamilton

A high quality, amateur-owned refractor outfitted with a special solar filter

The Great 36

String quartet concert

Looking back at San Jose

2 responses so far

Jul 08 2008

An IDE Device Driver for Simplix

Published by Julien Lecomte under System Programming

Over the past couple of weeks, I have been working on an IDE hard disk driver for my hobby operating system Simplix. This driver probes for existing IDE controllers, identifies the IDE devices connected to these controllers, and allows for reading/writing contiguous sectors from/to these devices. It communicates with IDE devices in PIO mode (no DMA) and does not support ATAPI devices (i.e. it does not offer any support for CD-ROM or DVD-ROM drives) At the same time, I also wrote a RAM disk driver, a simple block device interface, and a test program in the form of a kernel thread. This test program reads the first sector of the master IDE device connected to the primary IDE controller, and displays the last two bytes of this sector. These are usually 0×55aa (boot record signature)

Go ahead and take a look at the source code online. You can also download the Simplix distribution, compile it and run it either in Bochs/QEMU, or on a real PC. Below is a screen shot of Simplix running inside Bochs. Cheers!

No responses yet

Jun 20 2008

Velocity Conference 2008

Published by Julien Lecomte under Web Development

Velocity Conference 2008 Logo

I will be speaking at the Velocity Conference 2008 alongside my buddies and former co-workers Steve Souders and Bill Scott. The conference takes place on Monday, June 23 in Burlingame, CA. The topic of my presentation is High Performance Ajax Applications. I am also looking forward to attending all the other interesting talks.

Hope to see you all there!

4 responses so far

Jun 18 2008

Simplix Running on Real Hardware

Published by Julien Lecomte under System Programming

This morning, as I was just finishing up the code responsible for detecting IDE devices (hard disks, CD-ROM drives, etc.) in Simplix, I felt like trying my operating system on real hardware. I have a 4 year old PC with a floppy drive at home, so I decided to give it a shot. The result is pure geek pleasure. Cheers!

Screen shot of Simplix running on real hardware

4 responses so far

May 26 2008

New Version of Simplix, My Hobby Operating System

Published by Julien Lecomte under System Programming

Some of you may remember this post about Simplix, my hobby operating system. The first version, published in Sept. 2007, was not able to do much and was really buggy. Over the next 9 months, as I was studying the inner workings of modern operating systems, I also wanted to experiment with some of the concepts and ideas I was learning. I decided to apply my newly acquired knowledge to a new version of Simplix I was secretly working on. This new version contains a lot of improvements:

  • Greatly improved the performance of the page allocator.
  • New high performance memory allocator (kmalloc/kfree)
  • Better handling of software exceptions: Kill the current process and display debug info.
  • New system calls. Simplix now supports exit, fork, waitpid, getpid, getppid, time, stime, sleep and brk.
  • New scheduling algorithm. This algorithm is ridiculously simple and not particularly efficient or elegant. It should however be fair to interactive jobs, while doing its best to accomodate CPU intensive tasks.
  • Implemented a small set of user space libraries, including string manipulations (string.h) and a trivial implementation of malloc and free copied directly from the book “The C Programming Language” by Brian W. Kernighan and Dennis M. Ritchie.
  • Much cleaner source tree, improved source code documentation, etc.

As you have probably noticed by now, this new version of Simplix still does not provide any I/O facility for user space tasks. I/O is probably the most complex part of an operating system, so I decided to put it off for a little while longer. In this version however, I decided to write a few sample programs:

  • A Unix time counter implemented as a kernel thread.
  • Another kernel thread that finds and prints prime numbers.
  • A user task that computes the first 10,000 decimals of the number PI.
  • A kernel thread that prints live information about the system.
  • A program that creates a lot of user space tasks, each of them sleeps for one second before exiting.

You can already take a look at the complete and up-to-date source code, and even download it. Compiling Simplix requires a not-too-ancient version of GCC, make, and a few basic command line tools available on almost all Unix systems (objcopy, dd, etc.) If you don’t feel like trying it out yourself, I put together a very short Flash video showing the system booting and running inside Bochs. You can also put the kernel binary on a floppy and try it on a real PC with a floppy drive. Cheers!

Note: If you can’t see the video below, it’s probably because you are reading this article using a news reader. If that’s the case, open this article in a web browser to view the video.

Get the Flash Player to see this player.

No responses yet

Apr 23 2008

gedit, An Awesome Text Editor

Published by Julien Lecomte under Uncategorized

TextMate has gained a lot of traction in the past few years, especially among web developers. Ruby developers swear by it for some reason. I don’t have MacOS X at home so I don’t use TextMate. Instead, my favorite text editor is gedit, the official text editor of the GNOME desktop environment. Unlike TextMate, gedit does not cost a thing, and is released under the GNU General Public License (GPL). It is extremely light weight and easily extensible via plugins, which can be written either in C or Python. On Ubuntu, the most popular plugins can be installed via the package gedit-plugins. Additional third party plugins can be downloaded here. Some of my favorite plugins include the following:

  • File browser pane
  • Find in documents
  • Draw spaces
  • Reopen tabs
  • Save without trailing space
  • Symbol browser
  • Tab converter

I also use the Darkmate theme for syntax highlighting. Finally, TextMate aficionados will enjoy this article explaining how to configure gedit to look and behave just like their editor of choice. Now, if you really insist on spending $64 (that’s how much a single user license for TextMate costs as the time of this writing), I would recommend you donate this amount to a charity of your choice. They really need it. Cheers!

Comments Off

Apr 22 2008

Ubuntu 8.04 (Hardy Heron) First Impressions

Published by Julien Lecomte under Uncategorized

Ubuntu logo

Last night, I downloaded and installed Ubuntu 8.04 (Hardy Heron) Release Candidate on my laptop (a HP dv2000 with a dual core AMD64 2.8GHz CPU and 2GB RAM) I had used Ubuntu in the past (versions 7.04 and 7.10) on that same machine, but finally turned to Windows Vista because my hardware was not very well supported on Linux (mainly my Broadcom wireless card) However, last night, I fell in love with Ubuntu all over again. The install went very smoothly, and everything worked right out of the box. I activated the proprietary drivers for both my video card and my wireless card, and voila! I was off and running in about 30 minutes. Awesome!

No responses yet

Apr 16 2008

JavaScript: The Good Parts

Published by Julien Lecomte under Web Development

JavaScript: The Good Parts (Book Cover)

Douglas Crockford just published his first book titled JavaScript: The Good Parts. After reading this book, some of you may be left with the impression that Douglas is always complaining about some aspect of this very popular programming language. However, having been a user of the JavaScript language for about 7 years, and having used it extensively in small web sites and large web applications, all I can tell you is that I could not agree more with the author.

It is really unfortunate that we live in an imperfect world. As such, there is no perfect programming language, and there will probably never be. However, by gaining a deep understanding of the philosophy and the inner workings of a programming language, and by sticking to a subset of that language (what the author refers to as the “good parts”), we can all become better programmers by constructing more reliable and more maintainable programs.

In JavaScript: The Good Parts, Douglas extensively describes that good subset of the JavaScript language, occasionally warning to avoid the bad. I consider Douglas’ book a must-buy for anybody who’s serious about developing professional applications for the web. It’s definitely well worth the read!

One response so far

Jan 28 2008

YUI Compressor Version 2.3 Now Available

Published by Julien Lecomte under Web Development

This new version of the compressor fixes a few bugs and implements a few additional micro optimizations. Please refer to the CHANGELOG file for a complete list of changes, and don’t hesitate to report any issue you may experience with this version of the YUI Compressor.

Download version 2.3 of the YUI Compressor

19 responses so far

Jan 04 2008

Happy New Year From Beautiful Rio de Janeiro

Published by Julien Lecomte under Uncategorized

I wish all of you a happy new year from beautiful Rio de Janeiro! I’m still enjoying a hot (95F) and humid weather before heading back to the US in a few days. May 2008 bring you happiness and success in all of your endeavors. Cheers!


One response so far

Next »