Scott Hanselman

The Weekly Source Code 5

September 12, '07 Comments [6] Posted in Source Code
Sponsored By

In my new ongoing quest to read source code to be a better developer, I now present the fifth in an infinite number of a weekly series called "The Weekly Source Code." Here's some source I'm reading this week that I enjoyed.

  • NGenerics - "A class library providing generic data structures and algorithms not implemented in the standard .NET framework." I love it when someone adds something computer-science-like that they feel "ought" to have been in the framework. This is cool code because it's not only adding new data structures, but also extending existing ones. They've added an IVisitor interface to add the Visitor pattern to create the VisitableHashTable amongst others.
  • iGmail, a Gmail interface for the iPhone in Ruby - What a find. This is a simple iPhone-friendly AJAX gateway that gives you Gmail-style email (a view, not pull via the uber-lame Gmail support the iPhone currently has) implemented as a Rails app. Best to host it yourself and take the pressure off his system. Check the source out via subversion. Brilliant.
  • jQuery - Well, not really. I've been trying to get my small mind around this crazy amazing JavaScript library for a while. I read it like I read Rainbow Six. Er, like the way I've been starting and re-starting, and jumping in the middle. I mean, the book is 897 pages and there's a crapload going on. JQuery isn't that long, but there's a LOT going on and you need to keep track of it. Maybe I'll finish someday. At least I know it's awesome.
  • The iPhone Unlock Source - I personally don't care, but I found it interesting to see the out of the box thinking that a community will invoke when a company "locks" something. Reminds me of the Oracle "Unbreakable" fiasco. As Quentin Tarantino says, "He who is most likely to make declarative statements is most likely to be called a fool in retrospect."
  • Arduino - This isn't really like source to read, as it's a whole programming language and hardware platform. I'm thinking of building a robot, so I'm brainstorming different platforms I could use to move the arm, the camera, etc. It is actively developed and loved...more importantly it's a whole parallel universe that I know NOTHING about. When trying to become a better developer, I think that visiting parallel universes can only help one's perspective.

Feel free to send me links to cool source that you find hasn't been given a good read.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by ORCS Web
Wednesday, September 12, 2007 12:50:45 PM UTC
What about doing a review of some of the interesting code you're finding? I may or may not get around to downloading these projects, but I'd sure like to hear some specifics and examples of what you like about them.
Wednesday, September 12, 2007 2:03:53 PM UTC
Scott,

Glad you mentioned JQuery.

It's truly a great tool for any web developer and actually very simple to use and extend.

I can't imagine dev-ing without it.
Wednesday, September 12, 2007 5:07:00 PM UTC
I, for one, welcome our new Hansel-bot overlords!
Tim Kummer
Wednesday, September 12, 2007 6:20:02 PM UTC

What is it you do when you download one of these project? Do you open each cs/vb file and read it top to bottom? Do you follow it through the debugger?

It seems to me it's a ton of source code to go through each week.

Also it would be beneficial if you highlight the strength of a project like what design pattern it's using.
I haven't looked at any projects you mentioned and if I would, I don't know where to start.
(Are these projects well commented?)

Thanks for all your work, btw.

About the iPhone piece. I don't own one but it struck me that one of the unlock projects I read about was done by the iPhone dev team. Are they allowed to that? Did they do it outside of Apple's walls? Maybe I didn't understand the whole story. I don't use so I didn't pay much attention but the phrase 'dev team' with 'unlock' didn't click with me.


abdu
Thursday, September 20, 2007 7:57:14 PM UTC
Regarding Arduino:

One of my favorite "parallel universes" in hardware is the Propeller. Eight 32-bit processor cores, 32 I/O channels, on-chip video support, and a novel parallel programming system. And it's cheap.
Wolf Logan
Tuesday, September 25, 2007 7:16:50 PM UTC
You might want to go through sqlite and System.Data.SQLite.
Suraj
Comments are closed.

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.