Saturday, December 30, 2006

New Years Developer Resolutions

I thought it might be interesting to put up some New Years Resolutions relating to developing software. Here is what I have been able to come up with.

  • Learn a new language (Ruby, Python, Lisp, something)
  • Get better with that AJAX thing (this is probably a given)
  • Write more unit tests
  • Finish the pet projects that I have at home
  • Learn DMX and the Data Mining portion of Analysis Services 2005
What does everyone else have on their list?

Technorati Tags: [] []

Wednesday, December 13, 2006

More on Language Popularity

Last night I was reading Considering Ajax on IBM's DeveloperWorks site. There was a quote near the top of the page:

"When we were young, we were told that 'Everybody else is doing it' was a really stupid reason to do something. Now it's the standard reason for picking a particular software package." -- Barry Gehm

I agree that language popularity should not be the primary reason for picking a particular software package. Nor should how innovative and advanced it is. The primary reasons should be:

  1. Suitability to particular software development task.
  2. Effectiveness of developers with selected language.

Of course the 2nd point does take into account the popularity and how supported it is. If you cannot find any developers to work in a specific language, then it isn't a good choice no matter now suitable it is, unless the developers can become effective and productive quickly in the language.

Really the 1st point is the most important. Sure, the innovation and advancements in the language are important in this area too, but much less so then the other elements of its suitability.

Technorati Tags: [] [] []

PDC 07 announced

PDC 07 (Professional Developer Conference) has finally been announced, Oct 2-5 in Las Angeles, California. Typically, this is the conference that Microsoft puts on when they have a bunch of new developer stuff to show off (like LINQ).

http://msdn.microsoft.com/events/PDC/

Looks like they are just in the planning stages so not much there yet. But if you haven't been to PDC before, or would like to see what the last one was like, you can see Channel 9's coverage of PDC 05 here: http://channel9.msdn.com/tags/pdc05.

Now I just have to figure out how to score some free tickets. :)

Technorati Tags: [] [] []

Tuesday, December 05, 2006

Language Popularity ASP vs. PHP

Matt and I werediscussing the flexibility of PHP. I commented that I keep hearing everyone saying ASP/ASP.net is the best of the best for web development, but judging by the fruits of the internet I would say PHP is more popular and more powerful. I realize that judging its power based on popularity isn't accurate, but I think having such a large repository of available projects to leverage as well as sites dedicated to the language is a huge strength of a language.

Beyond an estimate based on observation, you can judge a language's popularity in three ways.

  1. TIOBE Programming Community Index. Unfortunately it doesn't include ASP/ASP.net since it does not consider it an actual language. It does include PHP, and rates it quite highly at #5 (In other news, Delphi moved up to #9 in December!)
  2. Google Fight, which compares the Google results of two search terms. It puts PHP as the winner with 2.7 million results vs. ASP with 1.7 million results.
  3. Google Code Search, which is the latest in a long line of code search engines. It has 567,000 PHP code samples and only 400 ASP code samples.
TIOBE does a really good job in tracking language popularity. It would be interesting to see how they would rate ASP/ASP.net in comparison to PHP, but I suspect it would put PHP very high on the list. The final indicator of the value of a language is asking people who know both PHP and ASP/ASP.net. They all favor PHP over ASP/ASP.net.

Technorati Tags: [] [] [] [] []

Got API?

Matt just sent me this site: www.GotApi.com. "It's indexed the API's of PHP, Javascript (DOM related only it looks like... of course thats the tough part anyway), HTML, and CSS."

Matt and I were discussing the popularity and power of PHP vs. ASP/ASP.net.

Technorati Tags: [] [] [] [] [] [] [] []

Tuesday, November 14, 2006

Code Gear coming out party (Borland developer tools)

Borland has finally announced what they are doing with their developer tools. By the sound of what is going on from the Yahoo Finance site, Borland is forming a new company that will be a "wholly-owned subsidiary".

Anyway, they have a web site: CodeGear.com.

The front page shows an animated GIF showing: CodeGear = new Company(); or CodeGear := TCompany.Create(); or $CodeGear = new Company()

Technorati Tags: [] [] [] []

Monday, November 13, 2006

Java now Open Source

Sun finally came through on its promise to go Open Source with Java. And they did. With a remarkably small amount of fanfare I might add.

At least I haven't heard much on it yet -- but then again, I'm mainly a .NET developer. So what would I know? :)

Anyway, here is the official Sun web site for it: http://www.sun.com/software/opensource/java/

Technorati Tags:[] [] []

Firebird goes 2.0

Since BSDG used to be primarily a Borland user group, I thought we should at least mention that Firebird has gone 2.0.

For those of you that don't know, FireBird is the Open Sourced version of Borland's Interbase database. It has installs for Windows 32 and 64, and multiple versions of Linux

Technorati Tags: [] [] []

Tuesday, November 07, 2006

.NET 3.0 Released

Title says it all for now...and on election day. Hmmmmm.

See it here

Technorati Tags: [] [] []

Thursday, November 02, 2006

Vista, Office 2007, Exchange due Nov 30

According to IT Wire, they have received official word that Vista, Office 2007, and Exchange will be released on Nov 7. That should mean the release of .NET 3.0 as well.

http://www.itwire.com.au/content/view/6820/52/

I think this will be the new official D Day for developers and IT professionals everywhere, and hopefully will round out a pretty full release calendar for the past few months. I'm still coming to terms with IE7 and FireFox 2.0. Now we have a new OS and Office platform to boot! And a slew of new things in .NET 3.0!

It isn't that this changes everything, but it will change nearly everything.

Technorati Tags: [] [] [][] [] []

Sunday, October 29, 2006

What's up at O'Reilly

O'Reilly is offering some deals for User Group members: Subscribe to MAKE or CRAFT and get 1 issue free, or buy books at 30% to 35% off with the new user group code DSUG. O'Reilly has a great selection of books you can choose from, including some interesting new ones (See bellow). O'Reilly is a great supporter of user groups too, which makes me a huge fan.

Subscribe to MAKE and save!MAKE magazine is all about really cool and terribly geeky projects and cool hacks. They claim they are about DIY Technology projects. I say it is the resource if you really want to prove your geekiness for all to see. They have a whole community on their site where you can share your projects too. Check it out.

Subscribe to CRAFT and save!CRAFT is their new magazine that just came out this month. While MAKE is all about technology and science, CRAFT is about, well, crafts. As they describe it on their site, they are the first project-based magazine dedicated to the renaissance happening within the world of crafts.

Here are some new books that I think look really interesting, but you can check out their new releases and see what looks hot to you.

I am planning to get the Process Improvement Essentials book. I'll let you know how good it is.

Technorati Tags: [] [] [] [] [] []

Tuesday, October 24, 2006

FireFox 2.0 release

This is good news: 1 week, 2 new browsers.

Today FireFox 2.0 was release. www.mozilla.com/en-US/firefox/

A few days ago IE 7 was released. http://www.microsoft.com/windows/ie

Because of one week in the entire year we now have to go through every site we ever developed to make sure everything still looks like it is supposed to.

The programming gods are against us.

Technorati Tags: [] [] [] [] []

Wednesday, October 11, 2006

Open Source is Contagious

No, this isn't a continuation of Microsoft's rant that Open Source licenses are viral (which is actually only true of some of them). Instead it is cool news about how QUALCOMM, makers of the fabulous Eudora mail program, will be basing future versions on Get Thunderbird!Mozilla's Thunderbird email program. They will add all the cool features of Eudora, and then make the resulting program free and open source.

I am curious if they plan to offer support as a revenue stream. QUALCOMM also provides a number of wireless and cellular products, so they may have decided that they don't need the incomesteam from Eudora, and would instead of incredible brand recognition by improving their circulation.

Not so long ago Opera 9 - Innovation deliveredOpera software made their lightening quick browser completely free, but not open source. Maybe they will join forces with Get Firefox!Mozilla's Firefox and make an open source version of Opera. If they could give Firefox a huge speed improvement we would all be winners. I really like Opera, but I am hooked on the huge sellection of extensions for Firefox. It would be great to have both!

UPDATE: After reading thier FAQ on the announcement I found their motivation.

Why is Eudora moving to an open source development platform?

QUALCOMM has decided not to remain in the email market because it is not in alignment with the core business or strategic goals. By moving Eudora to an open source product, QUALCOMM can exit the Eudora business while still supporting Eudora users and advancing the Eudora e-mail client at a faster pace than before, through the power of the open source development community.

So in answer to my speculation, they are not offering support as a revenue stream, they are just taking an honorable exit from a specific market. I think it is great when companies do that.

Technorati Tags: [] [] [] [] [] [] []

Wednesday, September 20, 2006

Language Bootstrapping

We were having a discussion about programming langauges and the concept of bootstrapping came up:

Each new version of Delphi is written in that version of Delphi too. The original compiler was written in C++ and Assembly. Once the compiler worked then it was used to rewrite the compiler in Delphi. I am sure much of the compiler is written in inline assemblier, which is a feature of the Delphi compiler. When a new version is under development, when they reach stable milestones they start developing in the milestone releases.

As I see it there are three benefits to writing a language in itself (if it is a general purpose language that this is applicable to)

  1. Like Chris suggested it is the original unit test. At Microsoft they refer to this as "eating your own dog food" (I am not kidding). The idea is if you are using your product then you know it works or doesn't work, and you do a better job debugging it. For a general purpose programming language what better way then to write the language in itself.

  2. This is really a side effect of the first benefit, but it is a instant testimonial for the language. If it is good enough to write itself in, then it must be good enough for project X. Like I said, this is a side effect.

  3. As the language is improved then those improvements can be used to make the language better. This also explains how computers in general have an exponential growth - each new innovation is used to create the next. As Anders Hejlsberg put it ". . . .standing on the shoulders of giants," (maybe slightly out of context, but applies in principle). So if you decide to use language A to write language B then if you want to take advantage of a new feature then you must first update Language A to you can update Language B. You create twice as much work that way. So by putting in a little additional effort up front to bootstrap, you actually save work in the long run.

That is the way I see it at least.

Technorati Tags:[][][][][][]

Thursday, September 14, 2006

Learning Ruby and Ruby on Rails

We were having a great discussion about Ruby and Ruby on Rails and Mike Moore of the Boise Ruby Brigade suggested some great resources for learning Ruby and Ruby on Rails:

 

The main Ruby web site was updated recently. I believe there is some good info there, like this 20 minute introduction.

The Ruby on Rails web site has alot of good information on it. You might want to start out with some of the screencasts. You will get a good sense of what Rails does and how you can use it there.

You can also get to the APIs, online tutorials, and some of the many books written about Rails (and Ruby) at RubyOnRails.com.

I prefer to do all my heavy learning with dead tree books, and the Pragmatic Bookshelf has the best offering of Ruby books so far, although other publishers are starting to catch up. The seminal Ruby book is the "pickaxe" book by Dave Thomas, named for its cover.

My favorite Rails book is also by Dave Thomas. There is also a new beta version.

~Mike

I looked at Ruby a long time back, but there wasn't much documentation then. Looks like that is no longer the case. I guess it is time to look into Ruby again. Thanks for the resources Mike!

Technorati Tags:[][][][][]

Tuesday, September 12, 2006

The software formerly known as Atlas

Thanks to Mike Cline for this tip about the software formally known as Atlas:

Microsoft has announced that is going to target the official release the Microsoft Ajax Library 1.0 (the software formerly known as Atlas) for the end of this year. Actually, Atlas will be split up into 3 products:

  1. The client side Atlas Ajax library will be named “The Microsoft Ajax Library”,
  2. The server side Atlas functionality will be called the “ASP.NET 2.0 AJAX Extensions”,
  3. The Atlas Control Toolkit will be known as the “ASP.NET AJAX Control Toolkit”.

Splitting it up into 3 products makes it a bit confusing…

Given that there have been more than 250,000 downloads of the Atlas CTPs already, one wonders how much difference an “official release” will make.

I think this is great news. Ajax is the buzz word for web development - every ad for web tool kits now says something about being Ajax enabled. Microsoft is always a couple years behind everyone else before they support / embrace things, especially internet technologies (just the Internet in general, Web Browsers, Java, Web Services, Blogging, Instant Messaging, P2P, etc.). Maybe they are finally learning. I think Ajax is great and this is sure to really turbo charge people using it more, which I am excited for!

Subject Tags: [][][][][][]

Friday, September 08, 2006

But I just started using .NET 2.0 -- 3.0 RC1 Released

OK, I've been using 2.0 for over six months now. It just doesn't seem like that long. But, .NET 3.0 RC1 has just been released. .NET 3.0 RC1 Release Notes .NET 3.0 RC1 Framework Components .NET 3.0 RC1 SDK .NET 3.0 RC1 VS05 Tools (including Cider) .NET 3.0 RC1 SDK online

Subject Tags: [] [] [] []

Tuesday, August 15, 2006

Good Oracle DB Creation Resources

I recently found myself recreating an Oracle 10g database on Red Hat Linux remotely. Long story. I found these two resources to be very helpful:

Here is what I mostly ended up with (I pieced it back together when I finally got it to work). I've removed paths, passwords, etc. or anything that is specific to the actual database I was working on. This is pretty much a combination of the above resources with a couple changes.

connect / as sysdba
shutdown abort
startup nomount

CREATE DATABASE oradb
controlfile reuse
  MAXINSTANCES 8
  MAXLOGHISTORY 226
  MAXLOGFILES 16
  MAXLOGMEMBERS 4
  MAXDATAFILES 1022
DATAFILE 'system01.dbf'
  SIZE 540M REUSE
  AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
  EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE 'sysaux01.dbf'
  SIZE 350M REUSE
  AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
  DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'temp01.dbf'
  SIZE 25M REUSE
  AUTOEXTEND ON NEXT 1024K MAXSIZE UNLIMITED
  UNDO TABLESPACE "UNDOTBS1"
DATAFILE 'undotbs01.dbf'
  SIZE 100M REUSE
  AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
  CHARACTER SET UTF8
  NATIONAL CHARACTER SET utf8
LOGFILE
  GROUP 1 ('redo01a.log',
  'redo01b.log') SIZE 20M,
  GROUP 2 ('redo02a.log',
  'redo02b.log') SIZE 20M,
  GROUP 3 ('redo03a.log',
  'redo03b.log') SIZE 20M
USER SYS IDENTIFIED BY "password"
USER SYSTEM IDENTIFIED BY "password";


@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql


connect system/password
@?/sqlplus/admin/pupbld

Subject Tags: [] [] []

Tuesday, August 08, 2006

Conference Rankings

This is pretty cool. I found a ranking page for the conference sessions.

Currently my You Can't Do That In Visual Studio is tied for 1st in votes. In all I have 3 in the top 10 by vote and 5 in the top 10 by rating. Pretty exciting! Thanks for your votes! It will be interesting to see how this goes between now and August 21st. If you haven't voted yet then be sure to login and vote! If you don't have an account you need to create a new user account first.

I haven't figured how to create a single link so you can vote for my sessions automatically. Somehow Borland always manages to setup a link like that when they are up for reader choice awards. Although since I have 12 sessions, and you get 10 votes, you would still need to pick and choose which sessions to vote for.

Subject Tags: [] [] [] [] [] [] [] [] [] [] [] []

Vote for the Borland 2006 US Developer Conference

Voting is open for the Borland 2006 US Developer Conference. You can rate them and vote for your Top 10 Favorites through QC. To save you from needing to search for my sessions I have listed them here:

  1. You Can't Do That In Visual Studio
  2. Coding Competition
  3. Generics in Delphi
  4. Template Development
  5. Mashups - Combining Web Service Api's with Delphi
  6. Content Syndication
  7. Internet Protocols
  8. Advanced Internet Protocols
  9. Exceptional Exceptions
  10. Implementing Cryptography
  11. Understanding Cryptography
  12. Oracle at Delphi
Personally, I would really like to attend the Coding Competition session, which is why I submitted it. I think it will be a lot of fun. It would appear my You Can't Do That In Visual Studio session is doing quite well - it has the most votes from what I have seen. That one will be fun as well!

Be sure to login and vote! Rating them is nice, but it would appear voting carries the most weight. If you don't have an account you can create a new user account first. Voting closes August 21st!

See you at the conference!

Subject Tags: [] [] [] [] [] [] [] [] [] [] [] []

Monday, July 17, 2006

Sessions for 2006 Borland Developers Conference

I submitted 12 sessions for the 2006 Borland Developers Tool Conference. I am sure it will have a shorter name before the conference gets here. Here are my sessions:

  1. Internet Protocols
  2. Advanced Internet Protocols
  3. Coding Competition
  4. Exceptional Exceptions
  5. Implementing Cryptography
  6. Understanding Cryptography
  7. Oracle at Delphi
  8. Generics in Delphi
  9. You Can't Do That In Visual Studio
  10. Template Development
  11. Mashups - Combining Web Service Api's with Delphi
  12. Content Syndication

Once they are published on BDN with details I will provide links. I am really excited about a few of these, especially the Coding Competition. I actually was chatting with Nick Hodges, the new Delphi product manager, about it before the call for papers was published.

Also, it appears I won the abstract submission prize! The reference number assigned to one of my abstracts is 1234! I think that gets me automatic selection as a speaker!

Subject Tags: [] [] [] [] [] [] [] []

Thursday, July 06, 2006

Borland's Developer Tools Group to get New Owner

I guess I am a bit behind on the news. Dateline June 30th, 2006:

Nick Jackson, managing director of Borland DTG in the Asia-Pacific region, told ZDNet Asia that the company, which announced its intention to divest its developer product lines on Feb. 8, has attracted about 16 qualified bidders so far.
And some doubters were saying they would have a hard time finding anyone interested. 16 qualified bidders means they had more then 16 interested. Those are only the qualified ones. Heck, I was interested, but not really qualified. And the good news is

By the third quarter of this year, Jackson said that Borland's DTG will become a totally independent company after the divestment.
Interestingly 3rd quarter this year is "Fall of 2006" which is the scheduled date of the as yet unnamed 2006 Developers Conference. I'm telling you, they are going to unveil it at the conference. This is the conference you want to attend.

Also, as was predicted:

He added that Borland will continue to have some small part in the new company, be it in the form of a minor equity stake or representation on the board of directors through Borland CEO Tod Nielson.
So it is in Borland's best interest to find a buyer that shares the vision of making DevCo / DTG as profitable as possible.

Subject Tags: [] [] [] [] []

Wednesday, July 05, 2006

2006 US Borland Developer Conference -- Call for Papers

06 developer conference Borland’s Developer Tools Group has begun planning for the 2006 US Developer Conference to be in held in the Fall of 2006 in Northern California. The deadline for submitting abstracts is July 17th, 2006.

They are going to let the community vote on the submitted abstracts to determine what sessions will be presented. Be sure to vote on my abstracts. I'll have links up for them once they are available.

Read more at the new improved bdn.borland.com .

I don't have the inside track on any information, but I suspect that if we don't see an annoucement about the spin off of the developer tools group by then, then we will see one at the conference. It was at BorCon 2001 when a gorilla smashed the Inprise facade to reveal the rebirth of the Borland name.

Yes, I am expecting big things, and yes, I plan to be there.

Subject Tags: [] [] [] [] [] [] []

Thursday, June 15, 2006

Brief History of C# and C Langauge Names

Someone wanted to know how to pronounce C# and what it's association was with the other C languages. Here is a little primer for everyone's reference.

The language is pronounced "sea sharp", and it is an ECMA standard. Since most search engines don't index the # symbol, and you rarely see it in a URL you will often see it written C-Sharp online. Although Microsoft invented the language, there are other implementations of it. Visual C# is Microsoft's implementation of the C# language.

It is related to other C languages (C and C++) by the fact that it uses the C syntax. Also Microsoft wants to replace the previous dominate languages of C, C++ and Java (also a C syntax language) with C#, so they gave it a name that made it look like the predecessor to C and C++.

The difference between C and C++ was the move from procedural or functional programming to object orientated programming. The big difference with C# is the removal of pointers and working within the .NET framework. There is no use of C# outside of the .NET CLI (Common Language Infrastructure), which is also an ECMA standard.

Keep in mind that Microsoft isn't the only one to implement that framework though. There is a number of other implementations, with the most notable one being the MONO Project, which is a cross platform open source implementation of the CLI Framework and the C# langauge.

Interestingly, how C++ got its name is that in the C language there is a ++ operator that takes the value of a variable, increases it by one, and then uses that value. So to write C++ is to say C = C + 1. Which means the C++ language takes the C language, improves it, and continues using it.

To get the name C# Microsoft took the double pluses from C++ and they moved the first plus up a little bit, and the second plus down a little bit, then they moved them closer together so they overlapped. If you clean that up then you have the # symbol in C#.

Subject Tags: [] [] [] [] [] [] [] [] [] [] []

Friday, June 09, 2006

WinFX renamed .NET 3.0

OK, this is just now hitting the Microsoft blogs.

WinFX has officially been renamed .NET 3.0 See Somas blog for details: http://blogs.msdn.com/somasegar/archive/2006/06/09/624300.aspx

Subject Tags: [] [] [] [] []

.NET 1.1 in Visual Studio.NET 2005

You did not read that title wrong. Develop .NET 1.1 code using Visual Studio.NET 2005 using MSBee

What is this really? MSBee is an addition to MSBuild (MSBuild handles all of the builds for Visual Studio.NET 2005 whether you realize it or not), that allow you to use the .NET 1.1 compiler instead of the .NET 2.0 compiler. Very cool! So now you can get the cool new features of Visual Studio.NET 2005 (refactoring!) and keep everything in 1.1. Read more here: http://blogs.msdn.com/seshadripv/archive/2006/06/09/623871.aspx

Subject Tags: [] [] [] []

Friday, May 26, 2006

Office 2007 Beta 2

Just in case you are interested.

Subject Tags: []

Wednesday, May 24, 2006

Hiring Recommendations

If I were a manager at a technical company, say software development. And I were hiring a new co-worker to work with my existing staff, the first place I would look for applicants is staff recommendations.

I would evaluate their recommendations to be sure they are competent. If they are competent and recommended, I would hire them. The existing staff is the ones who will have to work with the new-hire.

Sure, hiring from a larger pool might produce more technically savvy staff, but personality is more important. Technical training is a whole lot easier to come by then resolving a personality conflict.

So worst case hiring a recommendation is investing in some technical training, since the personality and ability to interact with the existing staff is known. But if we hire from a larger pool (say a classified ad or a job listing site) then worst case is that we have an unresolvable personality conflict, and need technical training.

Subject Tags: [] [] [] [] [] [] []

Monday, May 22, 2006

Rube Goldberg Programming Challenge

I just had a great idea for a fun programming competition this weekend: The Rube Goldberg Programming Challenge! You would be given a simple task, like "Hello World", and then your task would be to solve that task in the most complex way possible.

Points could be given for:

  • Each pattern implemented (Need at least one singleton in there!)
  • Making unnecessary use of a database.
  • Incorporating a web service.
  • Extra function calls.
  • Classes, lots of classes.
  • Weaving some threads in there.
  • Extra file I/O with temporary files everywhere.
  • XML, it has got to be in XML!
  • Using multiple languages.
  • Using multiple platforms or frameworks!
  • Customized memory management!
  • Creating an interpreter or simulator that is required for the final output!
  • Recreating all the standard libraries, classes and components!
  • Encoding and decoding the data in silly ways.
  • Not using any native types.
  • Everything (and I do mean everything) is an object!
  • Self modifying code!
  • Outputting customized source code and then creating a compiler to create a module to complete a step.
  • Ratio of pertinent comments to source code greater then 2:1.

What else can you think of? If you've ever had to maintain anyone else's code you have probably seen a lot of crazy extra steps that other programmers go though. You could always check out Daily WTF for inspiration. Who would be interested in such a competition?

Subject Tags: [Programming] [Software] [Contest] [Challenge] [Rube Goldberg] [Patterns] [Fun] [Databases] [Web Services] [XML]

Thursday, May 18, 2006

Richard Hundhausen in Dr. Dobb's

Our very own Richard Hundhausen has an interview in the latest issue of Dr. Dobb's Journal. They interviewed him on Visual Studio Team System, as he is the foremost expert on that subject. The interview is called VSTS: In the Wild. I was actually flipping through the magazine and saw a picture of a guy wearing sun glasses, a Google T-shirt, shorts and sandals while standing on a rock. I thought to my self he looked a lot like Rich, and then glanced up and the headline and sure enough it was.

Scott Swigart was interviewing him about VSTS and how it is being used in the real world. Besides the cool picture of Rich and the kind works about him, the 4 page article has some good information on VSTS.

Also, this month Dr. Dobb's made some changes. It would appear the combined Dr. Dobb's with Software Development magazine. Now you can apply for a free subscription to Dr. Dobb's and read the articles online. That was always one of my complaints, that I would read a great article in the magazine, and then had to pay to reference it later if I wanted to read it online. There are a number of other changes with this as well.

The cover story is about Ruby on Rails and there is are some articles on Game and Graphic programming. There still seems to be a good amount of source code in the magazine, which is nice. That was something that Software Development Magazine really lacked.

Lets hope Dr. Dobb's continues to be the best software developers magazine around. With a great interview like this with the likes of Richard Hundhausen they are off to a great start!

Subject Tags: [] [] [] [] [] [] [] []

Wednesday, May 17, 2006

Can't Wait for ATLAS? Get GWT!

Google has made their AJAX development tool Google Web Toolkit (GWT) available. Instead of focusing on bits of JavaScript to be pieced together, as most other tool kits do, they went a different route.

You develop your application in Java using your favorite Java IDE. You make use of the GWT during the Java development. Since this is a normal Java application at this point, you are running in the JVM and have all the usual rich Java debugging and development tools. Once you have your application debugged and ready to go, you use the GWT to convert it to JavaScript and HTML.

What a really great concept. Plus, since it is written in Java it is available for Windows (2000 & XP) and Linux. Then the published application (in JavaScript and HTML) runs in IE, Firefox, Mozilla, Safari, and Opera, all with no special browser handling required on the part of the developer.

I expect we will see a huge increase in the number of AJAX applications in the very near future.

Subject Tags: [] [] [] [] [] [] [] [] []

Monday, May 15, 2006

Boise Blogger Dinner TONIGHT!

If you live in the Boise, Idaho area and are involved in blogging (reader or writer) be sure you are at the Boise Blog Dinner tonight!

In addition to local blogosphere members, Shel Israel, author of Naked Conversations, will be there.

Subject Tags: [] [] [] [] [] [] [] [] [] [] []

Friday, May 12, 2006

My Daughter Loves Ruby

The O'Reilly door prize books for Boise Code Camp v1.0 came, so I have a big stack of books I am busily getting to the winners. A number of lucky attendees won their choice of book from O'Reilly's expansive catalog of books. Now they are all setting in my living room. Kind of wish I had time to read them all before delivering them.

My 3 year old daughter really loves the The Pragmatic Programmers' Guide to Programming Ruby. I think mostly because the cover graphic is pink (or close to pink), or it could be the pretty ruby on it too. Although I didn't ask her why. I might do that.

How do I know this? I was reading a computer magazine with her and she pointed to a picture of the book and said “I wove dis book daddy! I wove it. And I have it! Wanna see?” and then went I showed me where I had the books stacked for the prizes. She started going through the book looking for that one.

I guess she has good taste. Or she really likes pink.

Subject Tags: [] [] [] [] []

Thursday, May 11, 2006

The Lie About Comments

Have you ever heard the common excuse for programmers not commenting their code:

The problem with comments is they lie. The code changes (as code tends to do) and the comments are never updated which leaves them inaccurate. The code always tells you what it is doing. So you are better off not writing comments since it just takes more time and only confuses and misleads anyone supporting your code in the future.

Seems like a brilliant argument against comments, doesn't it? Why go through the extra work of writing comments if they are only going to confuse future developers, including yourself? One might be convinced that comment writing was a bad idea and no-one should do it.

One might think that, but only until they start to think.

Having supported both commented and uncommented code, I can speak from experience that any comments is 100x better then no comments. Sure, I have seen comments that are out of date, extremely vague, or more verbose then the code it was commenting on, but I still prefer any of that to the alternative of no comments.

Saying the problem with comments is they get out of date with the code changes is like saying the problem with source code is it gets syntax errors when you edit it. If you think about it, over 90% of the time you are editing a piece of source code it has a syntax error and will not compile. If you are writing a line of C# code that is 40 characters long, it will have a syntax error for the first 39 characters, and only be syntactically correct once you put that semicolon in place. Even then it might still be incorrect. Don't forget your curly brackets!

By that same notion you could say that the problem with software developers is they introduce errors into the source code, which we do. Working on a piece of code is like open heart surgery. We cut the patient open, rip a lot of stuff out, move things around, and then connect things back up again (not being a surgeon I have no idea if this is what surgery is like, but it works for my analogy). The very first thing we do is break the code. The program will not work again until we finish with what we are doing. Sure, an agile or iterative approach means the program spends less time in a broken state, but the fact is, every time we touch a piece of previously working code we break the code before we make it work again.

Now you may argue that this is a poor analogy since a good developer always fixes the code they start on. Well, that is my point exactly. If you come to a piece of code that has a comment on it, and you change the code so the comment is no longer accurate, then your job is not done. Just like you put a semicolon at the end of your lines, making sure the code it syntactically correct and operates as expected, a good developer also updates the comments and adds new ones outlining the changes they made.

I don't claim perfection in this area, but I certainly advocate improvement instead of making excuses for laziness. How about you?

Subject Tags: [] [] [] [] [] [] []

Thursday, April 27, 2006

RoboRally on Linux

RoboRally is a board game where you program a robot to manuver a factory floor to touch flags while avoiding hazards and other robots. It is a lot of fun. We have played it after most every developer meetings since I got it for my birthday in October of 2005, and about half the people I play it with run out and buy their own copy. Both my wife and my 8 year old son really enjoy playing it. Most others whom I have spoken with also say their kids and spouses enjoy playing it.

When programmers play it, inevitablly someone talks about wanting to have a multi-player networked version for playing on the computer. Quite often someone in the group has started programming it, or is about to start working on writing it.

Bots 'n' Scouts ScreenshotWell, thanks to Bots 'n' Scounts you don't need to worry about writing a program so you can play it on the PC any more! I know that is both good news and bad news (sometimes writing the program is half the fun!) That's right, you can now play RoboRally on your computer, but only if you are running Linux. It isn't a perfect clone, there are no upgrade cards for example, and it looks like the boards are different, but the idea is the same. This looks like a really good reason to install Linux, and quick!

I guess there is still space for someone to port the game to MS Windows.

Thanks Matt for the link!

Subject Tags: [] [] [] [] [] [] [] []

Wednesday, April 19, 2006

Where is XP SP3?

I ended-up creating a new XP image in my Virtual Machine today. I used an XP SP2 CD image. After installing VMWare Tools the first thing I did was run windows update. Not only did Windows Update need updating (I think 3 downloads), which required a reboot, but then there were 41 Critical Updates to download.

With Vista's release date still slipping I believe it would be good of Microsoft to provide an 3rd service pack for XP. Although Microsoft will most likely not provide one since they want to start moving people off of XP and onto Vista as soon as possible.

I know a few people that refuse to upgrade because of the invasive DRM (Digital Rights Management) that Microsoft has announced will be part of Vista. There was a document they released a while ago that said all the video communication over the bus must be encrypted, even if it means dropped frames. That is just crazy.

I was sitting in the LAX airport after PDC and talking with a Microsoft employee and he confessed that most people at Microsoft were not too keen on the DRM either, but the company felt it was a good idea strategically to get on the good side of Hollywood and the record companies.

Subject Tags: [] [] [] [] [] [] [] []

Friday, April 14, 2006

When to Learn a New Language or Tool

On our mailing list Jake said he didn't see any reason to learn Ruby on Rails (RoR) since he's strength is in ColdFusion, which does most everything that RoR does. I told him that since he is a "web software engineer" it is even more important that he learn RoR. Not that he is going to jump ship from ColdFusion to RoR, but it improves his credibility with ColdFusion.

Knowing ColdFusion and the competing RoR allows him to intelligently say why a project would be better implemented in ColdFusion over RoR. The reverse may also be true from time to time, and when RoR is a better solution he can work on that as well.

When we don't have a knowledge of a competing technology then when we suggest using our favored technology it is assumed that the basis of our recommendation is our ignorance of the alternatives. When we are knowledgable on two or more competing technologies, then we can point out the specific reasons one is more sutiable, plus we are credible in that we are happy to do the project in either technology, but from experience we recommend a specific technology.

Learning C# has given me a better understanding of when Delphi is the best solution, while at the same time giving me the ability to work on a C# application when it is precieved as a better solution.

Subject Tags: [] [] [] [] [] [] [] [] []

Thursday, April 13, 2006

Software Engineer is Best Job

A few months back I was talking with Jason Grundy from Treetop Tech about how the software development industry is constantly changing and there is always something new to learn. He responded that was the reason this is the best industry to be in. I, of course, agree.

Well, now Money Magazine agrees with us and has announced to the world what we all already knew. They surveyed 166 jobs based on income, stress, creativity, barriers to entry and a number of other factors. The choose Software Engineer as the Best Job in America.

They rated it as a B for stress, B for flexibility (citing telecommuting as a great plus), A for creativity and C for ease of entry. They estimate a 10 year growth of 46% (making it second highest, right behind physician's assistant), with an average of 44,800 annual job openings. Average salary? $80,500.

They acknowledge that working for a large company was one of the uncool aspects. Also outsourcing is a concern, as well as avoiding eye, back, wrist and hand strain/problems.

So, beyond making us all feel good about our jobs, what will the implications of this be? I suspect we will see a large influx of people wanting to be Software Engineers again. Hopefully they are right about the growth rate, and offshoring doesn't become a larger threat, or we might be looking at too many software engineers and not enough jobs again.

Subject Tags: [] [] [] [] [] [] [] [] [] [] []

Tuesday, April 11, 2006

O'Reilly's Where 2.0 Conference

O'Reilly's Where 2.0 Conference

O'Reilly has yet another really cool and relevant conference coming up. Maps and geographic based applications are everywhere. We have GPS functionality in our cellphones, maps in our cars, geotagging, and the competing AJAX mapping web sites. It would appear we are obsesed with location and Where everything is.

Enter the O'Reilly Where 2.o conference. Find out about all the cool location based technologies and how to use them on the web. Then take it to the next level with mashups that combine other data with location information.

It looks like Web 2.0 is location based, and Where 2.0 is the place to be!

Subject Tags: [] [] [] [] [] [] []

Sunday, April 09, 2006

More on Process by Judy Bamberger of Process Solutions

Some words of wisdom on process, process management and process improvement. These are not my words, they are Judy Bamberger's words. She shared them on the CxAdvocates list on March 4th, 2006. I am reprinting them with her permission. Thanks Judy!

(1) "You don't have to adopt Continuous Improvement: Survival is not compulsory." [W Edwards Deming]

(2) Pick one - any one - quality framework or model or standard or method or ... pick one and embrace it; follow it, learn from it, improve it ...

(3) There is no way to achieve #1 without #2 ...

(4) There is no way to achieve #1, #2, or #3 without good people and switched-on brains (heads) and bodies (hands) and feelings (hearts) ...

(5) The *ONLY* reason to have a process - any process - is to produce products and services that attract, satisfy, and delight customers.

(6) CMM/CMMI are "quality frameworks"; ISO is a "quality standard"; Agile is a "method" ... of course, GRINS, I know people who would make the case for each one of these that it is a religion and the *only* way to solve world peace ... GRINS ... Each (framework, standard, method) have their appropriate place and time; all three can be used together as appropriate.

None of the three - or any other - can be used without heads and hands and hearts all engaged. (see #5)

(7) I don't know anybody worth their mettle who truly believes "turn on process; turn off brain" ... If you believe that someone is selling that line, run and run FAST and AWAY from that person ...

(8) I have never seen any empirical proof that shows me that there is a definitive cause/effect relationship between CMM/CMMI maturity levels and a "guarantee" of quality (per any measures of quality). So-called "level 5" organizations can optimize their production of concrete parachutes ... or of products that truly delight their customers.

If someone is asserting that level-anything is a guarantee of anything else, again - run and away and fast.

(9) There is a world of difference between having one or more processes under statistical control and demonstrating what one can and cannot do (e.g., per CMM/CMMI Level 5) toward achieving a specific customer requirement in a specific domain within a specific part of the organization.

"Caveat emptor" - buyer beware - if I do not ask sensible questions and demand relevant data and references, than it is *I* who am guilty of making an inappropriate partnering decision. It is not the fault of "them" or of "CMMI/ISO/etc" ... It is my professional responsibility to select appropriate sub-contractors or out-sourcers or partners. No "certificate on the wall" or "magic maturity number" replaces hard data from relevant related experience.

(10) There is - and has been - so much competition for high maturity levels, that there has been/is/will be a well-known cadre of "easy appraisers/assessors." As long as people focus on "level for the sake of level," this will always be the case.

The same is true for ISO 9000 auditors/registrars.

(11) I just had cancer surgery. YOU BETCHA I wanted each member of my medical team to follow process; to have been trained and skilled and educated and practiced and apprenticed and reviewed and coached and improved and etc ... YOU BETCHA I wanted PROCESS involved. I wanted those people so trained and imbued and instilled with process that it was truly second nature to them.

*AND* YOU BETCHA I wanted my medical team to know when to follow process and when to recognize special circumstances that require a deviation from "standard process" - and knowing what are acceptable alternatives because of other processes and data and etc.

I saw process and quality checks and documentation "up the wazoo" the two times I presented to emergency room - one of which was, truly, life saving. And at each and every chemotherapy and radiation therapy session (of which there were far too many). I valued each form and each quality check and double check; each written record and each peer review before they put deadly poisons and chemicals into my veins. Before they fried my body with radiation.

My whole treatment was/is/will be managed because of process and metrics and closed-loop improvement ... and, grins, I cannot think of anything more life- and safety-critical than what I am goin' through right now.

...

A colleague of mine (Jim Hook, Oregon Graduate Institute) put it brilliantly:

The purpose of defined processes is to take common sense and make it common knowledge, and to take common knowledge and to make it common practice.

I add to that: with the goal to deliver products and services that attract and retain customers, so "we" can remain in business and do no harm.

...

As someone who knows a little bit about software engineering and quality models and standards and frameworks and methods, I hope we can stop "bashing" and "blaming" those inanimate frameworks, models, standards, and methods for poor business decisions we make.

It's time we human beings recognized our responsibility and took responsibility for making bad business decisions - and give ourselves credit for making good ones, too.

Peace, Judy

Judy Bamberger Process Solutions 10 Hobbs Street O'Connor ACT 2602 AUSTRALIA

Naturally I formatted this and corrected a couple spelling mistakes (through the help of a spell checker). I also formatted it and added emphasis. I am just a little compulsive that way. So any errors or confusion introduced are my fault.

CxAdvocates is a mailing list run by Construx Software.

I've quoted Judy before, which was actually taken from this essay. If you are looking for contact information for Judy let me know. I just didn't want to post it here for the spam spiders to find it.

Subject Tags: [] [] [] [] [] [] [] [] [] [] [] []