Thursday, December 20, 2007

ReSharper 3.1 Released

I am a ReSharper addict.  I admit it.  I have this habit of upgrading my ReSharper every time JetBrains releases a new version.

Speaking of which: ReSharper 3.1 is out and ready for download.

Or you can read the release notes.

But, if you are hoping this will add C# 3.0 support...it doesn't.  That is supposed to be next month, in ReSharper 4.0.  BTW, there is a small note on the web site, if you buy ReSharper 3.0 now, you will get a free upgrade to ReSharper 4.0.

Or, come to BSDG meeting for a chance to win a free copy!

Friday, December 07, 2007

Meeting note: 12/6/2007

This was our Christmas meeting, so Merry Christmas to everyone.  And appropriately, everyone went home with something.

We covered three main topics today, ApexSQL, Reflector and Log4Net.  Log4Net was the real topic, Reflector was talk about because too many people had not seen it.

As promised, I posted a How To on Log4Net up on Elegant Code.

Links:

Thursday, December 06, 2007

PDC08: Oct 27-30, 2008

http://msdn2.microsoft.com/en-us/events/bb288534.aspx

PDC08 has been announced.  Scheduled for Oct 27-30 at Los Angeles, California. 

Of all the conferences that Microsoft puts on, this is the one that usually gets the best reviews.

Tuesday, December 04, 2007

Mobile Super Computer

For the guy who really needs his super-computer ready to go anywhere: Sun has developed the product for you, Project Blackbox.

Literally.  It is a giant black box, a shipping container to be precise, to take care of all of your mobile data center needs.  Why travel from home without it.  :)

http://www.sun.com/emrkt/blackbox/news.jsp

Tuesday, November 27, 2007

History of BSDG

BSDG actually pre-dates my (Jim McKeeth - DavinciUnltd.com & McKeeth.org) involvement. As far as I know Steve Dahlin started the group as a Clipper users group, but I am not sure when that was. Rich Hundausen took over in 1995 or 1996 and changed it to a Delphi users group (registering the famous Delphi.org domain name!) Steve Garland (of AstaTech) took over from Rich, and after a few years it became the Boise Visual Developers (or BVD like the underware) group to expand its focus now that in addition to Delphi, Visual Studio was a viable development tool . In 2000 I took over and changed the name to Boise Software Developers Group (although debated going back to the Delphi users group), but it is still frequently referred to as the Boise Delphi group. Chris Brandsma (Programmers on Fire and Elegant Code) took over in October of this year - 2007. Hopefully it will continue on for many more years and many more leaders.

Hopefully the others will help me flush this out with some more dates or anything I may have missed. Stay tuned!

Steve Dahlin added:

Actually, the group started as a completely separate Delphi group which I organized. I hosted for the first few months and then others took over after I had suffered complete burnout. The first meeting was held on the 2nd floor of the Central Plaza bldg which is part of the WGI [Washington Group International] complex [where it currently meets].
Richard Hundhausen added:

Wow, very cool. I had forgotten about the lineage myself.

Jim forgot to tell you that during the Clipper user group days, each week we would hassle Steve Dahlin on his choice of screen colors.

(I've heard about Steve's color choices.)

Doug Reece added (and I was negligent in not including him in the history. Sorry Doug!)

I just read your post about the history of BSDG and found it interesting. I also thought that I'd add a bit more info. I was at the meeting where Rich nominated Steve Garland to take over the group. Steve seemed a bit reluctant to take on the job by himself. By this time, Steve and I had become well acquainted and that same evening, he asked me if I'd co-lead the group with him, which I agreed to. I eventually ran many of the meetings myself (Steve's participation became less frequent). I was the one that suggested to Steve that we ask [Jim] to consider taking over leadership of the group, and it was I who actually communicated with you about that.

While Rich was leading the group, we met at (the place he worked, which was some government agency I can't remember). During the time Steven and I ran the group, we met at Executrain at its old location on Executive Drive by HP. It wasn't uncommon to lock people out at that location since the doors were automatically locked after 7:00 pm. I believe that we were still meeting there when [Jim] took over, but then quickly relocated to the place [Jim was] working.

Wednesday, November 21, 2007

December 6th 2007 Visual Studio 2008 Install Fest

Registration link: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032360765&Culture=en-US
Thursday, December 06, 2007 1:00 PM - Thursday, December 06, 2007 5:00 PM
Overland Park Cinemas
7051 Overland Road
Boise, Idaho 83709
United States
Audience: Developer.
Event Overview ATTENTION DEVELOPERS! Are you ready to be one of the first to get their hands on Visual Studio 2008? Join Microsoft, the Boise .NET Developers User Group (NETDUG), and the Boise Software Developers Group (BSDG) for a Visual Studio 2008 InstallFest and Holiday Party on December 6th, 2007 at the Overland Park Cinemas in Boise. Visual Studio 2008 is HERE and this event is your opportunity to get your hands on the released version before anyone else. Every person that installs Visual Studio 2008 on their computer at the event will receive a FREE fully licensed copy of Visual Studio 2008 Professional in the mail shortly after public release. Don't miss out a great evening of food, fun, and your very own copy of Visual Studio 2008 Professional! Space is limited so register today.

Thursday, November 08, 2007

Silverlight Training

Mithun Dhar is hosting a Silverlight event in Seattle called Silverlight Fire Starter for those of you who want some more Silverlight training.  Read the details below.

Event: Silverlight Fire Starter Course – 1 full day free training for designers and developers who are interested in working with Silverlight 1.0

Venue: Microsoft Redmond Campus – Microsoft Conference Center (Kodiak Room)

Date & Time: November – 29th – 2007  (Thursday) between 8:00 AM and 5:00 PM (Breakfast and lunch provided)

Register: http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032359153&Culture=en-US
or by calling 1-877-673-8368 and referencing Event ID 1032359153

Monday, November 05, 2007

Visual Studio 2008 and .Net 3.5 due this month

This has been making the rounds for about a week now, but Visual Studio 2008 and .Net 3.4 is expected to be released this month (November 2007).
More info below:
http://blogs.msdn.com/somasegar/archive/2007/11/05/teched-developer-in-europe.aspx
http://msdn2.microsoft.com/en-us/vstudio/products/default.aspx
Also there is a rumor that the Microsoft ASP.Net MVC framework will also be released REAL SOON (meaning: when they feel like it, but probably after the Visual Studio 2008 launch -- and they will probably change the name).
For those of you who don't know: the Asp.Net MVC Framework is a MonoRail/Ruby On Rails-esk web development framework for Asp.Net.  It does not use WinForms at all.  This actually has a lot of people really excited right now.  Phil Haack and Rob Conery both left their current jobs for Microsoft just so they could help work on this. 
Haack must be the single greatest last name for a developer....
Scott Hanselman (now a blue badge Microsofty) has two videos from the ALT.NET conference last month with Scott Guthrie and himself.
http://www.hanselman.com/blog/ScottGuMVCPresentationAndScottHaScreencastFromALTNETConference.aspx

Friday, November 02, 2007

CodeRage II Virtual Developer Conference - November 26-30, 2007

CodeRage II

Be sure you are registered to attend CodeRage II. This is CodeGear's second virtual developers conference. Being virtual it is a whole lot cheaper and easier to attend. The key is to actually schedule time to watch sessions and be sure you are not working or otherwise distracted. If you are overseas that gets even more interesting.

You can always catch the replays later, but then you miss out on the live chat and Q&A session. I must admit, as a presenter it is odd being in the chat room with the attendees while you are presenting - you are both the presenter and the "peanut gallery" at the same time.

You'll see sessions on Delphi, Ruby, Java, PHP, C++, Databases, .NET, Win32 and all the latest CodeGear tools and technologies.

I'll be attending and presenting both. I hope to see you there, virtually of course!

Monday, October 29, 2007

November Meeting: GIS

If you are in town (Boise) on Thursday, Nov 1 at 7:00 PM ,BSDG is having our monthly meeting.

Topic for this month: GIS.
Presenter: Will Jenson

What is GIS and why would you ever want to program it?

A high level discussion of core GIS concepts and API's that will be focused on ESRI's ArcGIS suite of software products. Topics will include:

  • The Map - Cartography and Spatial Analysis
  • The Data - Geodatabases, Topology and Editing
  • Geoprocessing - Spatial manipulation and post processing
  • The API's - ArcObjects, .NET and Python.
  • The Web - ArcGIS Server, ArcIMS and the Web ADF

See more details on time at location at http://bsdg.org/2004/12/meeting-location.shtml

Tuesday, September 11, 2007

Boise MSDN Event on Oct 4

http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&EventID=1032346939

Thursday, October 04, 2007 1:00 PM - Thursday, October 04, 2007 5:00 PM Mountain Time (US & Canada)
Welcome Time: 12:00 PM

Theater - Edwards Boise Stadium 21

7701 Overland Road
Boise Idaho 83709
United States

Language(s):
English.

Product(s):
ASP.NET, Office, Visual Studio and Windows Vista.

Audience(s):
Developer.

Event Overview

MSDN Events are free, live sessions designed to enhance your coding skills and make your life a little easier. By attending you’ll get up –to-the-minute technology delivered by seasoned developers and have lots of time to network and ask questions. Chat with your fellow developers get the latest coding tools and tips and learn how to create rich new applications. Register today for a free live event in your area and get the hands on knowledge you need. For more information visit: http://www.msdnevents.com.

Friday, September 07, 2007

Meeting Post-Mortem

We had a nice meeting last night (on this opening day of the NFL season -- let no one be confused about where my priorities lay, I was at the meeting). 

Jake Munson showed off the shiny new Adobe ColdFusion.  It seems to be a nice tool for creating web pages quickly and easily.  There are some features that ColdFusion gives you with a single tag that would take a bit of work in ASP.NET or a 3rd party component.  But it is hard to cover an entire application framework in a 1 hour talk.  Some of the Flash based tags were pretty cool (charts, grids, calendars).

The one point against it though: I pretty hefty price tag on the server software.

There was one point that did come up in all of this:  there are some niches emerging in the web development space. 

  • ASP.NET seems to be for the more "hard core" developer (the type of person who was doing Windows Forms development and is not being asked to make web pages).  These are the guys/gals that already know VB or C# and are comfortable in them.
  • JSP: Same as ASP.NET, just substitute C# and VB for Java. 
  • ColdFusion: less of a developer type, more of designer type.  The Flash integration helps with that.
  • Ruby/Ruby on Rails: Hard core developer gone a bit nuts.  Doesn't like language constraints, loves code generators.
  • PHP: somewhere between ColdFusion and Ruby on Rails.  I imagine that if someone were looking at ColdFusion, but didn't need Flash, they would probably end up here instead.
  • ASP/VBScript:  These developers are ... who am I kidding?  The only reason I've found people are still using this is because they don't have the time to convert it to something else.  Legacy code happens.  That is who COBOL is still around.

And that was one of the end questions that wasn't really answered: why would you pick ColdFusion over PHP?  

I know why I would stick to ASP.Net over both of them -- I already know C# and the .Net Framework and I love the versatility they give me.  I would probably say the same thing if I was  Java developer.

So many questions, so little time.

One final note: our beloved leader, Jim McKeeth, has announced that he is leaving Boise and heading to Seattle.  As such he is stepping down from the BSDG board and I (Chris Brandsma) am now taking over.  I promise not to make people sing "Hale to the chief" when the meeting starts.

So, we are looking for a new head lackey -- I mean Vice President.  Must be in the Boise region to apply and willing to present from time to time and willing to share knowledge. 

Tuesday, June 12, 2007

Orcas is Part of the Delphi Family

So I wanted to look up something on Oracs, the as yet unreleased development tool from Microsoft for Vista. So I went to Firefox and typed Orcas into the Google search box. The first hit that came up was on Wikipedia and it turned out to be on Orca (the singular of Orcas). I actually learned a lot.

I knew Orca where killer whales, and I knew they were related to dolphins. What surprised me was that dolphins and killer whales are both in the Delphinidae family. I thought that was really revealing that Microsoft choose that as the code name for their product, especially now that they are playing catch up with Delphi again. In case you didn't know, CodeGear (FKA Borland) now has two IDE's (Delphi 2007 and C++ Builder 2007) released that support Microsoft's Windows Vista, while Microsoft doesn't have one released yet.

Now someone pointed out that you can use .NET 3.0 with Visual Studio 2005 to get some Vista support, but from my understanding you still don't get Sheet of Glass support on your forms, or some of the other neato Aero effects without writing extra code. And to be fair, CodeGear's 2007 releases don't support .NET 3.0 or much of the specific functionality only exposed through .NET 3.0 - then again, it is a native Win32 development tool, so of course it doesn't support .NET.

The significant fact is that CodeGear has two actual releases for Vista before Microsoft does. There are a number of great innovations in Delphi 2007 that Microsoft is yet to copy.

In related news, CodeGear released their Delphi Roadmap, which shows plans for Highlander to be released this year with support for .NET 2.0 and compatibility with .NET 3.0.

It is nice to see Delphi out in front again.

Score: Development tool releases for Vista

  • CodeGear: 2
  • Microsoft: 0

Sunday, June 03, 2007

Google Gears

Did you hear about Google Gears? It lets you use web based applications while you are offline. So you could use Gmail, Google Reader, and Google Apps. BTW, Gears is Open Source.

I noticed support for it in my Google Reader a while ago. I just read a news article about it. Firefox 3 has plans to support this as well. I read about it a while ago. They were waiting for some provider of web based applications to start supporting the idea, which now Google is doing.

The thing is, I don't see Microsoft supporting this kind of innovation since it competes with Office specifically, and Windows in general. That means no IE support for the latest web innovation. But with Microsoft's push for their Live products maybe they will support it. I guess we will see.

I still think we are within 5 years of seeing a very significant shift with Microsoft's position in the industry. The web and the web browser is becoming the platform Microsoft feared it would be. It is competing with the windows and office offering. Now with their move into patent litigation and Paul Graham's observations on their demise, I believe things have been set in motion. John Dvorak said they are going the way of the IBM years ago. He was especially vocal about it during the Lindows AKA Linspire fiasco.

Thursday, May 24, 2007

Delphi Jobs

So David I posted a link for a Delphi job listing site, and Joe pulled a chicken little jumping to the conclusion that there are only 4 Delphi jobs in existence. Unfortunately there is not one single source that lists all jobs for any skill or category. You need to do a little hunting.

It used to be that DelphiJobs.com aggregated job listings from a number of job sites, and then allowed you to view them all from their site. It was as close as you could get to a definitive listing of Delphi jobs. Since they no longer do that, here is a snap shot of the Delphi job numbers as of right now:

(Click on the [feed] link to add a feed to your news reader. Maybe Delphi Feeds can include these in a special section!)

Grand total of 1022 jobs! And that doesn't include all the job openings that are not listed on these centralized search listings, or the ones that are filled through networking (the #1 way jobs are filled). Sure, there may be some duplicates between the sites, and some of the jobs postings that are returned in these searches may be mistakes, but it certainly proves that Delphi job market is NOT dead.

It is true that there may not be as many Delphi jobs as other languages, but that is an indicator of two things:

  1. It takes less Delphi developers to complete a project then with many other languages. It is a more productive environment and community.
  2. Delphi developers have greater job satisfaction and switch jobs less often, thus less vacancies.

So it is a good thing!

Wednesday, May 23, 2007

More on Microsoft vs the Free World

I had a great comment from Jason on my previous Microsoft vs. World post.

I'll work on using losing and not loosing. I actually checked that I had the right word, but I guess I forgot to update it. I've never claimed perfection in that area, lots of room for improvement.

Despite Microsoft's claims of 40 million copies of Vista shipped, I see signs like Dell offering Ubuntu and XP instead of Vista, based on customer demands, as a sign Microsoft is losing (see, I can be taught!) there totalitarian grip on the desktop. I also read a lot of blogs, mostly of developers, and a surprising number have rolled back from Vista to XP, or jumped ship to Linux all together. No hard numbers there, just a perceived trend.

I am well aware of the differences of patents and copyrights. If you read the GPL it does cover patent indemnification as well as copyrights. In the paragraph 7 of the preamble it states:

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

Read the rest, especially section 7 on Patents.

From what I was reading in Fortune's Microsoft takes on the Free World, this specific patent coverage in the GPL is why Microsoft is offering certificates and not offering SUSE directly. But I was only skimming at that point while I was in the airport.

I actually do understand the GPL fairly well for not being a lawyer, but I do appreciate Jason's concern. However I may have misstated things. I was saying that the idea behind open source is that users can change or add to the code - that is one of the the basic freedoms of open source. The GPL says that if the user does distribute the changed version, then their changes are also covered by the GPL. This is referred to as Copyleft. Free software was originally designed as a developer to developer (including administrators, etc.) system since they were the only ones using computers. The Open Source definition (which came after the GPL) says you cannot discriminate (point 5) users. As the users of computers and open source software has expanded to non-developers, now they are covered under the GPL even though they have no inclination to modify the code. Not sure if you were aware of it or not, but Microsoft actually offers their own copyleft license similar to the GPL, called the Microsoft Community License. Obviously calling it community would indicate the idea that a community would use and contribute to the code, but as you stated it, they are not required to contribute to use. It also covers patents similar to the GPL. Basically Microsoft made their own GPL so they can still call Stallman evil.

As far as my Tax law reference, Jason was correct. The copyright law defines the financial gain that a license is offered for ". . includes receipt, or expectation of receipt, of anything of value, including the receipt of other copyrighted works." For some reason I was thinking I read that in the tax law because it says "financial gain". Oops, my bad.

Thanks again for the great comment Jason!

C++ Builder 2007 Announced

Just in case anyone missed the announcement. If this comes out before Orcas then CodeGear will have two IDE's released that specifically support developing for Vista and Microsoft will have 0. Looks like things are returning back to the way they were.

Key features and capabilities provided by C++Builder include:

  • Seamless support for Microsoft Windows Vista Aero, Vista Desktop and Vista APIs
  • Increased ANSI C++ conformance and compatibility including Boost and Dinkumware C++ library support
  • New C++ build flexibility and custom configurations powered by the Microsoft MSBuild engine
  • Up to 5 times in-IDE build performance improvements over prior versions
  • UML C++ source code visualization
  • Integrated C++ unit testing
  • New DBX 4 RAD data access with support for the latest versions of popular RDBMs including CodeGear InterBase®, Microsoft SQL Server, MySQL®, Oracle®, IBM® DB2, and Sybase®
  • C++ IDE enhancements including virtual folders and enhanced C++ structure pane
  • New INDY 10 Internet Protocol component suite

Read the press release

Tuesday, May 15, 2007

Microsoft vs. The World

Everyone knew it was coming, despite Microsoft's claims to the contrary. . . .

In the past, resorting to seeking revenue through patent infringement against consumers is a sign a company is going under or getting desperate. It is only when a company is losing customers at a very fast rate do they resort to assaulting consumers directly. I guess Microsoft has finally realized they are becoming irrelevant and loosing the battle to open source.

According to Bloomberg news, Microsoft "wants makers of [open source] software to pay royalties." Now InformationWeek is stating that instead of litigating or just demanding royalties, "Microsoft wants to create more arrangements that mirror the company's deal with Linux distributor Novell." But my question is what if they don't want to enter such a deal? Then does Microsoft litigate?

Contrary to popular belief, trademarks are the only intellectual property that in unenforced is lost. So you are not compelled to enforce a patent. If you were then most of the patents Microsoft owns, as well as most of the other software patents out there, would be invalidated.

Microsoft claims they only want to reach licensing agreements, but I want to know how are those arrangements that much different then the arrangement provided by the GPL (which essentially provides a reciprocal license of code in exchange for use of the combined result.) If Microsoft wants to use and contribute to Linux then they would in effect be in that kind of arrangement with every other user and contributor of Linux. That is what the GPL does.

First of all, I think they should explicitly cite the patents and the infringement, which they refuse to do. Their refusal to do that reminds me of SCO and their fishing for people to charge royalties.

Now I am a big fan of capitalism, and companies making money - that is where many jobs come from, including mine.

What Microsoft is threatening to undertake is similar to what the RIAA, SCO, and other "intellectual property holding companies" have done in the past. These companies realize that their best source of revenue is to attack consumers. It is amazing that Microsoft has decided they are in that position.

Patent law actually allows a patent holder to attack the user of an unlicensed patent. This is different then trademark or copyright law. So the fact that Microsoft "wants makers of such software to pay royalties" is an indication that they want to go after consumers. Sure they are dressing it up with "license over litigation" claims, but the fact remains they are going after consumers.

Now I am sure you are about to say "Wait, they say they are going after makers, not consumers! This is just like Apple vs. Microsoft, etc." That is where the issue of open source comes into play. Open source (specifically the GPL) is a license where by the user is allowed a license in exchange for their contributions to the code. Interestingly this license arrangement is pretty much explicitly allowed for in the US Tax law. So by saying they are going after makers of open source they are actually going after consumers, and leaving it open to go after pretty much anyone involved. I know I have contributed to some open source projects. Have any of you made your code available for the use of others? If so, then your code may have been incorporated into one of these monstrosities that are robing poor Microsoft of their revenue and they may come after you!

Since they won't tell anyone exactly what parts are infringing, and with what patents, it is obvious they would rather extract a toll then work something out. The open source community, especially Linux, has specifically said if anyone pointed out where and how they were unknowingly infringing they would be glad to correct the situation.

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

Saturday, May 05, 2007

Delphi 2007 and Binary Compatibility

A really cool feature of Delphi 2007 is it is binary compatible with Delphi 2006 (on the Win32 side). What this means is that unlike every previous Delphi and Turbo Pascal release (as far as I know) you can keep all your compiled DCU files. That means you don't have to wait / hope / pray for your 3rd party component provider to release an updated release for Delphi 2007, most of your Delphi 2006 components for Win32 will work just fine.

Typically what makes a DCU stay compatible is if the interface section of the unit remains unchanged. The really cool thing about Delphi 2007 is they added a new property to TForm for support of Vista Aero, but they still remained backwards compatible.

Allen Bauer broke the news about how this was pulled off. Steve Trefethen has some more behind the scenes details. And as usual, Hallvard Vassbotn has a great technical write-up on all the details.

One really cool think, is I think it was Nick Hodges that said they might actually go to a release cycle that only every other release of Delphi was a breaking release. That would certainly be cool, but their component partners might not like that so much.

Technorati Tags: [] [] [] []

Free Turbo Delphi, C++ or C#

Just in case you some how missed it, you can get a free Turbo product from Borland / CodeGear. You your choice of Delphi for .NET, Delphi for Win32, C# Builder or C++ Builder, but you can only have one installed at a time. They are based on Delphi 2006. The catch for the free version (called Explorer) is you cannot install components, add-ins, etc. and can only have one version installed at a time. You can buy the Pro version for just a little bit more and lift those restrictions.

[TurboExplorer.com]

Future version will be based on the newer Delphi IDE's. I suspect that after they come out with Delphi Studio 2007 (guessing on the name) with support for .NET, Delphi, C# and C++ then they will have an updated Turbo release. They hinted they may change the restrictions some then too.

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

Friday, May 04, 2007

Delphi 2007 IDE Multi-Monitor Support

Last night Steve asked if you could change the docked and embedded Delphi 2007 IDE to look like Delphi 7 and earlier where everything is undocked and the designer is not embedded in the same window as the code. This is especially nice if you have multiple monitors! I couldn't remember how to do this at the time. Nick Hodges, the Delphi Product Manager at CodeGear, just made a great video showing how to undock and unembed the IDE so it looks more like Delphi 7 and earlier.

The video only takes about 2 minutes and is part of his 2 minute tutorial series.

[Watch]

For the record, you CANNOT have a docked IDE with an unembedded form designer. If you skip the step he includes of switching to undocked, and just uncheck the Embedded Form designer option it switches you to undocked automatically.

Here is what to do, if you don't want to watch the video:

In the Delphi 2007 IDE go to Tools / Options, which brings up the Options dialog. From there go to Environment Options / VCL Designer in the tree on the left. Then in the Options box on the right uncheck the Embedded designer check box. Restart the IDE and you are reliving the good old days!

Lets see you do that in Visual Studio! Multi-monitors is a huge performance improvement, so anything that takes better advantage of that is a great thing.

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

Wednesday, May 02, 2007

8 defensive programming best practices

This article is written for PHP, but at the high level these 8 practices apply everywhere. Here they are (with comments by me). The original article has more comments and PHP specific resources.

  1. Handle unexpected conditions - of course you cannot expect every unexpected condition, but you can write code to handle things when they don't happen as expected. Even if the code just raises an error.
  2. Process external systems data properly - Instead of just assuming all input and output is correct, validate it. Be sure you are getting what you are expecting, and that what your program produces is correct. This is especially an issue with SQL and HTML injection!
  3. Test your code - Hello McFly, anyone home? You need unit tests, regression tests, UI tests, user tests, etc. Then look at what you are not testing and test that. Especially if you are releasing to the public.
  4. Monitor your site errors and act upon them - Whatever kind of development you are doing, you need to log all errors (serious and minor) and if possible centralize them. Then analyze your error logs and do something about it. When you start seeing those exceptions you put in for #1 show up, that means the unexpected happened. Now that you know what it is, you can expect it and act on it.
  5. Do not disclose errors to the users -This is huge for websites. I don't know how many times I have been using a website and it breaks and I am presented with a beautiful debug screen with all sorts of juicy details that if I were a hacker I could make use of. This is the worst with ASP/ASP.NET sites. Remove debug messages when you release - same goes for non-web development.
  6. Damage control - Make sure your program fails gracefully. Save the users data often.
  7. Backup - This is another really obvious one. First of all, use a GOOD source control system so you are backed-up during the development process. Remember to backup your database and other non-source code bits too. Then backup your users data for them. Even if you can't force them to backup their data, at least make it easy.
  8. Do what you can as you can never get defensive enough - This is like Lather, Rinse, Repeat. Once you have done all the above, refactor your code, and go through the steps again. Just be aware that things break. This goes back to #6. What can you do to make sure they don't break to bad? That is a good start.

One other point it makes is "If anything can go wrong, it will." I would not say that every worst case scenario will play out. I will however say that the more possibility for malfunction you leave, the greater the chance. Also, the more users you have, and the more time the users spend using your application, the greater the odds of any errors showing up.

What are your defensive programming best practices?

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

Monday, April 30, 2007

Microsoft Announces IronPython and IronRuby

The big Microsoft announcement is out at MIX. Microsoft has formally announced support for IronPython and IronRuby, as well as more goodies for SilverLight.

Also, SilverLight is now in GoLive licensing -- meaning we can officially release software for it. (if you happen to have some laying around right now)

You can read the details at Soma's blog.

Technorati Tags: [][][][]

Saturday, April 28, 2007

Robocode Java Programming Challenge

According to Chris Brandsma, it appears David Starr has thrown down the gauntlet and challenged the rest of us to a Robocode Java Programming Challenge. In Robocode you use Java to program a little 2D robot to maneuver in the virtual arena and do battle with the other robots.

I always thought this was a great type of game. I built a fairly good robot for the 3D D-Robots from PlasmaCode (link no longer available, but I will find it if you are interested). The D in D-Robots is for Delphi, which is actually Delphi Web Script, a 3rd party, open source, Delphi syntax compatible scripting language. Just in case you didn't know, Delphi 2007 for Win32 is out (and ROCKS!) and there is also free Turbo releases of Delphi.

I figure this is a great way to brush up on my Java, and also have some fun doing virtual battle! One major advantage Robocode has over D-Robots (beyond still being available) is that Robocode is open source (as is Java now), so you know it will stick around as long as people are interested. Anyone else interested in a competition?

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

Thursday, April 26, 2007

Basics of Compiler Design

Torben Mogensen from DIKU as the University of Copenhagen is offering the text book he has written on Basics of Compiler Design for free use.

I have taught an undergraduate compilers course for over a decade. In the last several years, I have used my own textbook "Basics of Compiler Design". I have now decided to make this available online.

Permission to copy and print for personal use is granted. If you, as a lecturer, want to print the book and sell it to your students, you can do so if you only charge the printing cost.

Technorati Tags: [] [] [] []

Thursday, April 19, 2007

Ubuntu 7.04 Feisty Fawn Released

The new version 7.04 of Ubuntu Linux is available for download in both Server and Desktop editions. Check out the release notes and find a mirror and download it.

The desktop edition comes in a combination LiveCD (that runs from the CD) and installer, while the server version includes no GUI and is ready to create the perfect server for you with everything installed, and no ports open. The installation is really quick and straightforward.

Technorati Tags: [] []

Visual Studio "Orcas" and .NET FX 3.5 Beta1 shipped!

Visual Studio "Orcas" and .NET FX 3.5 Beta1 shipped!

You can read about it on Soma's blog. Or go right to the MSDN page.

Technorati Tags: [] [] []

Monday, April 16, 2007

WPF/E = Silverlight

OK, this is a first. Microsoft takes a crummy, unmemorable name like WPF/E and turns it into something interesting, like Silverlight.

Granted, some people still aren't going to like the new name, you can't please everyone, but I like the direction. Read more about Silverlight here: http://www.microsoft.com/silverlight Or on Soma's blog.

Technorati Tags: []|[]

Wednesday, April 11, 2007

Delphi 2007 for Win32 Launch Event

May 11th, 2007 is our Delphi 2007 for Win32 Launch Event. You will want to be present to check out this first look at the first new Delphi release since the CodeGear spin-off and the begin of the Delphi Renaissance. It is a very impressive release! Come hear all the latest Delphi news and get those rumors cleared up.

Also at this meeting we will be showing off and using the new Camtasia to record the presentation. It is our goal to find a way to post this recording for everyone to reference after the meeting.

Then in June we will have a Delphi for PHP Launch Event. I am working on door prizes for both events.

Our usual meeting time is 7 PM at our usual Washington Group International location.

Tuesday, March 27, 2007

ReSharper UnitRun

I'm all in favor of good tools when I can find them, even better when they are free (as this one appears to be).

But JetBrains has released ReSharper UnitRun for down. http://www.jetbrains.com/unitrun/ If you already use ReSharper you know how good of a tool this is already. If you don't user ReSharper, this is one of the best features in it (next to automatic code profiling). So, if you are doing Test Driving development, check it out, it is worth the download.

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

Tuesday, February 27, 2007

Non-Programmers Need Not Apply

Jeff over at Coding Horror says out of 200 job applications, only 199 will be able to program.

Joel states that if you get 200 people who apply for a job, 199 of them are the same people that have applied for every other job, but never get hired because they don't have the skills:

That means, in this horribly simplified universe, that the entire world could consist of 1,000,000 programmers, of whom the worst 199 keep applying for every job and never getting them, but the best 999,801 always get jobs as soon as they apply for one. So every time a job is listed the 199 losers apply, as usual, and one guy from the pool of 999,801 applies, and he gets the job, of course, because he's the best, and now, in this contrived example, every employer thinks they're getting the top 0.5% when they're actually getting the top 99.9801%.

A lot of it has to do with how the job offer is made. If you posted it on Craigslist, that may be an accurate reflection of the numbers. Probably the same is true for posting it through Job Service or in the local general newspaper. Would also have a lot to do with the unemployement numbers.

It would be interesting to post a fictional job offer on Craigslist in New York or LA and then offer an automated FizzBuzz Question (see the article) and see what kind of numbers you get. You would need to make sure your job offer was run of the mill. If your job offer was too phenomenal then you would dip into that pool of programmers that have jobs and aren't actively applying for new jobs. That is what Google and Microsoft are trying to do - hire the best of the best away from the rest.

I was actually working one place where they wanted to hire a developer and I helped write the job posting and find some good placements. I think we got about 30 responses to very specific job requirements. About 25 of them wanted the company to sponsor their H1B visa. A couple others wanted to telecommute. That is for a Boise Idaho posting too.

Off hand it seems like I have been offered every single software development job I have applied for where I actually got past the low level resume filters (i.e. the HR department that is looking for keywords). Most likely that was due to the simple fact that I have a provable skill and experience in software development. Of course I have never applied for a software development position with Google or the like. The only two reasons I would consider moving to California is if Google or CodeGear offered me a job - well, depending on the job.

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

Wednesday, February 21, 2007

RAD Visual IDE for PHP (Delphi for PHP) just announced!

CodeGear and Delphi now offers for PHP what .NET does for ASP.NET: RAD Visual IDE with component reuse. Now you can have the productivity of ASP.NET and run it on LAMP.

read more | digg story

Monday, January 29, 2007

Boise Code Camp-12 days to go, 37 sessions!

I just checked the Boise Code Camp web site and we now have 37 confirmed sessions!

www.BoiseCodeCamp.com Plus, we now have lunch and dinner being provided to the attendees for free (thanks to some very generous sponsors). I'm starting to excited about this.

Technorati Tags: [] []

Wednesday, January 24, 2007

Atlas has shipped

OK, so it is really called Microsoft Ajax Toolkit. I still think Atlas is a cooler name. Anyway, it has shipped! Check it out here http://ajax.asp.net/. Even better, now they have videos on the web site to show you how to use the toolkit. For a complete list of videos (on AJAX and other ASP.NET topics), go here: http://www.asp.net/learn/videos/default.aspx?tabid=63 And lastly, if you have been using Atlas already, they are now shipping with more controls. The Tab control come to mind right now (mostly because a client of ours has been asking for just that).

Technorati Tags: [] [] []

Saturday, January 06, 2007

Interbase, CodeGear, and Delphi: Oh my

I just saw a post from a CodeGear blogger stating that Interbase 2007 Developer Ed had been released (free download as well). If you are interested you can grab it here:

http://www.codegear.com/Default.aspx?tabid=142

I haven't been to the CodeGear web site since they first announced, and it didn't have much then. The web site now looks fairly well fleshed out, online store, all of their products, and a familiar motif for long time Delphi developers. Where am I going with this, I'm not sure right now. I guess I'm just glad that things are still moving on, and I don't have to rely on Microsoft for all of compilers. I like having some competition around.

Technorati Tags: [] [] []