October 21, 2005

A few CodeSnipers posts

Alex Bendig put an interesting post on CodeSnipers yesterday about feature creep.  It's an open question, so join in on the conversation!
Also, after a few weeks of slacking off, my latest post titled Mozilla as a Thick Client Development Platform? is up.  It's really on open question to see if other developers are thinking of creating thick clients based on the Mozilla platform.  It seems timely considering yesterday's release of flock (an application built on Mozilla).

Tags: , ,

September 13, 2005

Desktop vs. Laptop

Alex King is considering the Tools of The Trade and debating about moving to a desktop or staying on a laptop for development.  I'm shocked that this is even a debate.  I have friends who like to develop on laptops and I had no problem with it until The Change.  You see, there are two time-lines for me as far as development machines are concerned.  Pre-(kick-ass, cpu-screaming, gigabytes-of-memory, dual-monitor, hot-hot-desktop-action), and post.  The PA (pre action) period was a dark bleak time in my life.  The HHA (hot, hot action) period is a time for joy, learning  and productive hacking.
The desktop system is my own and while at the paying day job I was developing on a laptop.  Going back and forth between the two for the last year I can say that there's no comparison.  I work on the laptop when mobile but if I have the choice I'll work on the desktop any day of the week and twice on Sunday.  The only thing that brings me down about the desktop is that at the moment I only have two monitors as opposed to three or four.
What does everyone else think?  Desktop?  Laptop?  Mix both as appropriate?

August 24, 2005

Code Sniping

I'm late to announce this because of my time off last week, but I've become contributor to a  new software development site CodeSnipers.com.  The site launched a little over a week ago and I'd  say things are shaping up nicely.  KC of Casey Software organized the whole thing and pulled together a very solid group of people to write regularly for the site.  I only hope that I can keep up and add something interesting to the discussion.  I've submitted my first post, which should be put up on Friday!  I'm very excited about the opportunity to be involved with such an interesting group.  Hopefully this will help me on my path to becoming a great hacker, becoming a better writer, and get me more involved in the community.

July 31, 2005

Lowest Common Denominator

I read a few posts this morning about rich ASP.NET applications.  These posts highlight what has been my biggest complaint about web development:  Most web development targets the lowest common denominator.  It reminds me of grade school and how the system is designed to target the below average student.  Well I wasn't that big a fan of grade school and I'm also not a big fan of designing for the user who's running a 6 year old browser.  Now let me preface the rest of this rant by stating clearly what kind of web development I'm talking about.  I think that when you're writing something for the web, there are two different goals:

  1. Dissemination of information.  Get it out to as wide an audience as possible.
  2. Web applications.  Provide the needed function in the best way possible to the users of your system.

Now these two may mix together but I believe that for most things web related, your primary focus is one of the two.  In the first category we have the following examples:

  • The New York Times
  • Amazon - While they do have a certain amount of crossover, their goal is to sell to the widest possible audience.

In the second category:

Another way I'd put it is that category number one represents web sites while category number two represents web applications.  The items in category two have been getting rave reviews because of their richness.  If you're building a web application, why worry about every single browser made in the last 10 years?  The two most popular browsers are free and Firefox is cross-platform.  Make your users upgrade and they may thank you for it later.

May 04, 2005

First Impressions on Python

Well I didn't get as far as I'd like over the last few weeks (too much work, sick, etc...)  , but I started my foray into Python.  For now I've decided to just use IDLE since it comes with Python.  I'll dig into other IDEs when I get a little more experience.  IDLE seems like a decent environment but I must say that I miss Visual Studio.  I'm reading Dive Into Python by Mark Pilgrim to get started.  I'm five chapters in and I like the format of the book.  It assumes that you already know how to program so it doesn't waste any time and you start working with the language right away.
As I go through the features of Python I keep comparing it to Java or C#.  Dynamic typing is a bit different but I like that fact that you can't reference something you haven't assigned to (damn you VBScript!).  It's still a strongly typed language so that's the same.  Introspection is cool but the aforementioned languages have Reflection to mirror that.  Functions, and everything else for that matter, are objects so you can pass them off to anything.  I like that and my first guess about mapping that functionality to C# would be through delegates.  I'd have to write some test code and play around with both to make any determinations.  Maybe I'll make that a personal assignment over the next week.  Lambda functions look like a great tool and to be honest I'm not sure that C# has an equivalent.  Another thing that I'll have to do a little research on.  The one feature that stood out as a definite advantage over C# is the interactive shell.  I do like being able to test and run code on the fly without compiling.  This feature seems like an invaluable tool for developing stuff fast while keeping it free of obvious bugs.  I've heard this as a major argument for Lisp.  In fact, certain Lisp hackers will say that the languages of today are only trying to catch up with the functionality that Lispers have enjoyed for decades.  But for now, back to Python.  List comprehension and lists in general are sweet.  Fewer lines of code and quicker to work with than ArrayList.  All in all, I like what I'm seeing.  At the very least, this Python effort is causing me to look at C# in different ways.  At this point there are two little homework projects I'd like to assign myself.

  • I want to see if C# supports anything like lambda functions.  Produce sample code in Python and C# with an examination of both methods.
  • Python supports easy mapping to functions and in fact you can call to a function at runtime without knowing its name beforehand.  Is there a way to do this in C#?  Again, produce sample code in both languages.

I also need to start thinking about a project that I can implement in Python.  I have two projects that I want to start right now but I'll save that discussion for another post...

March 11, 2005

I want to be a great hacker cont.

Quick add to the last post.  I just read something else Paul Graham put on his site about Python and great hackers.  I guess he's not saying that Java and .NET people are hacks, but merely that you're more likely to find talent with Python people.  I can't speak to this at all but it, once again, piques my interest in Python.

I want to be a "Great Hacker"...

I just read an essay Paul Graham wrote on great hackers.  It reminded me that the whole time I've been working with computers, this has been my goal.  I want to be a great hacker.

One thing about his essay that bothered me was his focus on programming languages and tools in general.  I thought that he put too much emphasis on the idea that people working with Windows languages (while he didn't mention them specifically, I'd guess he was talking about .NET and VB) and even Java were more likely than not just hacks. 

As a .NET programmer, I take a little offense to this.  I'm not claiming to be a great hacker but it's been my opinion during recent years that the tools matter less than getting the job done.  Programming holy wars are all too common and for the most part I just don't care.  One thing is certain, I need more exposure to discuss this issue intelligently. 

Mr. Graham says that many great hackers use Python.  My experience lies mainly with C# and VB.NET with some Java, Delphi and a little C++ mixed in.  None of these seemed that different to me from a high level view.  With those languages I take the stance that one may be better than another based on the specifics of the project. 

I'm tempted to pick up Python and try my hand at a few projects using it.  Am I missing the boat on a truly great programming language?  If I am to continue my quest to become a great hacker I can't ignore such a glowing endorsement for Python.  Now if I can find the time...