Raytracer

Up till 6 this morning finishing a raytracer for class. It worked out fine with the shadows, reflection and Phong illumination working, but this has turned into a routine that has replaced sleeping on Sunday nights. I miss that. Thankfully it was the last assignment before a final project. And I’d like to point out that Harvard has the worst schedule possible with finals after winter break.

In the NYTimes magazine’s Year of Ideas, the most puzzling and interesting was entitled “Coincidence Theory”. It describes 20 years of research into whether humans can change the outcome of a random number generator. The answer so far is yes, in a tiny way. From the article:

Mayer’s research and writings eventually led her to Robert G. Jahn, a science and engineering professor at Princeton. Since 1979, Jahn had amassed a mountain of data demonstrating people’s ability to alter the outcome of a random event generator — essentially a machine designed to replicate a perfect coin toss over and over — in a minute but statistically significant way.

It looks like the “anomalous effects” have been reproduced many other places, but the theories as to why it might be true all sound unbelievable.

Update: Looks like many other believe this to be a bogus study. Looks like you can’t trust what you read in the Times.

The Mighty Mighty Bosstones won’t be having their annual “Hometown Throwdown” for the first time in 9 years. The article says the band is on hiatus - but don’t worry, the dancing Bosstone is doing okay. Now I haven’t been to one of their show’s in years, but in high school those shows were always a good time. Back then I was loving “Devil’s Night Out” and “More Noise & Other Disturbances” prior to all that “Impressions That I Get” crap. And heading to the MidEast in December to watch the crowd go nuts for “Awfully Quiet” or “Dr. D” was so much fun.

In the past couple weeks while avoiding the annoying WBUR fundraising there hasn’t been a time when I haven’t found Outkast’s “Hey Ya” playing. It’s everywhere - on hip hop stations, rock stations, tv, before movies and now permanently stuck in my head.

After spending the last couple days in an Eclipse Developers course, a friend asked me what the advantages were to using Eclipse as an IDE over something like Emacs for writing Java. Prior to switching to using Eclipse, I’d primarily used Emacs with the JDEE and was pretty happy. But here are a few reasons I switched:

  • Refactoring - Simply great refactoring support for all sorts of common operations like rename, move, override baseclass methods, and my recent favorite “Generate Delegate Methods” which saves a lot of typing.
  • Content Assist - Including but not limited to code completion, it just works smoothly. Half of what I type now is Ctrl-Space to complete the class/method/field/template name that I’m writing. I never type import statements anymore, and if you do it will help you complete those too. There are other editor goodies as well, like easily diving into method bodies, having compile errors take you straight to the offending line and countless others.
  • Compile-as-you-type - This one is tough to truly appreciate until you use it. It takes the guess work out of whether your code will compile, since the built-in compiler transparently checks for you each step of the way. Forget a semicolon and you know right away. Combined with the handy quickfixes, a whole category of stupid bugs can be eliminated. And when you want to test your app, the code is always compiled and ready to go.
  • SWT/Native look & feel- I’d tried other Java IDEs and found most to be slow and have a second-class feel to them. Eclipse on Windows, feels like Windows and on Linux looks like GTK. Perhaps Swing is to blame for other’s problems, but none of them struck me the way Eclipse did. It just looks better (and it helps that it actually is).
  • Plug-in Development Environment (PDE) - If you are building a plugin or application on top of Eclipse, it’s the only way to go. Provides a lot help in constructing, testing and deploying your code. And with the ever-growing services provided by the platform, including the exciting Rich Client Platform work, there a lot of reasons to consider it.
  • Better Debugger - I just flat-out like a visual debugger better than using jdb. It’s one of those things that I find really useful to have a graphical representation of, like diff/merge tools. This one is well-integrated with the product, supports hot-swapping code, remote debugging and other helpful features.
  • Growing community - Eclipse has spread like wildfire and has a huge community of users, developers, and corporate backers (even without Sun). And from its various members comes a huge number of plugins (free and commerical), articles & books, courses, conferences and an even a programming competition. Lots of new features in 3.0, including a solid visual designer for SWT and Swing.
  • Equivalence with Emacs - Emacs will always be my first real love with a text editor: oh, the staying up to learn Elisp, hacking my own functions and menus, arguing over Emacs vs. XEmacs! And I still use it, just not for Java. Because Eclipse is free, open-source and cross-platform.

In the end, I can’t say if or how much more productive it makes me. But there are so many powerful capabilities close at hand that it feels like my job is easier and not spent as much tripping over my development environment.