Monday, August 30, 2004

Arm, Wrist and Hand Health

As a software developer my arms, hands and wrists are very important to me, and their proper operation is my livelihood. RSI (Repetitive Stress Injury) is a real and serious threat to any developer's ability to make money. Luckily O'Reilly's ONLamp.com has some tips and software to help prevent and treat RSI.

Wanted Delphi Marketing Manager

It would appear that Borland is still interested in marketing Delphi. In fact they are so interested they are looking for a Product Marketing Manager for Delphi on Monster.com. Thanks to Nick for the link. Hopefully this means that we will see an angressive push and greater public awareness for Delphi.

Sunday, August 29, 2004

Mac OS X Conference 2004

Mac OS X Conference 2004If you own a Mac or are considering developing software for OS X then this is the place to be. Santa Clara, CA, October 25-28th. There are pleanty of sessions on Programming & Scripting as well as everything else you might want to do with OS X. Also, as a member of this users group you can get a discount. If you don't already have our discount code then contact me and I can provide it for you.

Just a reminder, you can also get a 20% discount on O'Reilly, No Starch, Paraglyph, Pragmatic Bookshelf, and Syngress books as well as O'Reilly conferences.

Thursday, August 26, 2004

Design Patterns Explained - 2nd Edition

When we started Code Complete we were unaware that Code Complete 2 would be out before we finished the book. Well it appears that Design Patterns Explained 2nd Edition is due out in October. So to avoid a repeat of what happened with Code Complete, we are going to read the 2nd edition, not the first.

Wednesday, August 25, 2004

Collapsible Posts

You may or may not have noticed that my posts are collapsible. This is a feature that I like in most offline readers, allowing you to close an article that isn't interesting to you. I realize not everyone is going to be interested in every post I make, so this makes it easier for you to skip them. Just click on the Close to close a post, and then click on the Open. I thought about adding the same functionality to dates too, but that seems less logical.

If anyone is interested I will try to clean up my code and post it for others to use.

Language Metrics

I love programming languages, and I love metrics. Michael Pence posted to the TDAG list about a site that ranks languages based on a battery of tests in order of performance (CPU), memory utilization (Memory), and Lines of Code (LOC). There is another site (I forget who originally shared the link) that ranks languages based on the number of community pages that support that language - this shows how mainstream or popular a language appears. I took the top 10 mainstream languages (excluding SQL since it isn't on the performance list) and ranked them by the combined performance score (CPU + Memory + LOC) and have the results on display for you in the table bellow. For languages that have more then one implementation on the performance rank I just take the top rank. I also combined VB and VBScript, which I realize are in fact different languages.

Language Popularity CPU Memory Lines Combined
Delphi 4.814% 30.72 28.00 13.78 72.56
C++ 15.306% 27.63 25.44 19.00 72.06
C 16.335% 30.23 28.05 13.55 70.64
Python 4.704% 27.00 20.54 21.58 69.13
Perl 8.440% 25.87 21.43 21.57 67.35
VB 10.136% 11.15 22.46 28.08 61.69
PHP 10.427% 21.00 16.14 22.71 59.93
Java 16.997% 28.40 11.64 16.08 56.12
C# 1.633% 27.33 14.57 12.67 54.57
JavaScript 1.681% 18.15 17.15 18.38 53.69

The big differences from the rankings on the popularity site versus the ranking here is that Delphi is near the bottom of the popularity rankings (7th), but is at the top (1st) of the performance rankings. Python also ranks significantly better for performance (4th) then for popularity (8th). Moving the other direction we have Java, which is ranked at the top of the popularity chart (1st) and is ranked near the bottom on the performance chart (8th). C# remains at the bottom of both charts.

Because the community / popularity rankings are tracked over time, it also shows trends. Delphi, Python and PHP are moving up in popularity. Java, C/C++, VB and JavaScript are remaining the same, while Perl and C# are moving even lower. It looks like C# might even fall out of mainstream in the near future. Delphi and Python's upward momentum is inline with their better then average performance. C#'s downward momentum is inline with its abysmal performance.

Since C# is the newest language in the round-up it needs strong upward momentum. With all the promotion that Microsoft invested in the launch of C# it would appear it entered the market at an over inflated position, and is falling to a lower ranking. This is one of the languages that developers in general seem to be the most excited about. It is unfortunate that the language does not appear to justify the excitement. Hopefully with the release of C# 2.0 along with .NET 2.0 we will see C# improve both its performance and popularity. It might also have hope in the recent release of Mono 1.0. If not then it might go extinct before ever really catching on as a mainstream language with little to no reason to use it.

Since all the languages listed are mainstream languages, the popularity really isn't that big of an impact. You should be able to find support and developers for a project in that language. The important data is performance. Lines of code probably is not the best indicator of developer productivity, but for now that is what we have to work with. Maybe if you combined the LOC ranking with the popularity you would get a good indicator of productivity.

Based on this data it would appear that if you were looking for a language to start a new project in that you should lean towards Delphi or C/C++ and maybe Python as your first choices. For second tier I would say Perl, VB or Java. Your last resort should be C# or JavaScript as they constantly rank near the bottom in all categories. I am not making a recommendation for PHP since it is for web development only and not a general-purpose language.

Design Patterns Explained

As a group we are reading Design Patterns ExplainedDesign Patterns Explained: A New Perspective on Object-Oriented Design by Alan Shalloway, James R. Trott and James Trott. If you have not ordered your copy yet, and want to read along, you really should order it now, or pick it up locally.

Amazon.com seems to be offering the best deal right now. You can get free shipping on the new book, with a price of just $31.94, or you can get it for a little less from their market place, but then you add shipping. I looked locally and at other web sites and was not able to find a better deal.

Even if you are not going to be reading along at the meetings this looks like a good book to pick up anyway. Rich suggested he might be able to get Alan Shalloway to come visit the group too. I'll keep you posted on that.

NMock : A Dynamic Mock Object Library for .NET

Richard Hundhausen just sent me a link for this: NMock : A Dynamic Mock Object Library for .NET.

From what I can tell, NMock could be useful when you have a large group of programmers and someone else is developing a class that you need to develop against. You implement the interface of that unknown class in NMock. Then you develop your implementation against that mock implementation. You can then test to verify that your code all behaves correctly.

This could also be useful if you are implementing a facade class for some data access class. Then you can create a test without worrying about what is in the database or the state of the database. Your mock of the data access class always returns known values so you can create reproducible tests (with NUnit of course).

Or say maybe you have a really expensive to deploy (in $$ or impact to the machine) 3rd party library. You create a mock implementation and all your developers can develop using NMock and not need to worry about the actual library.

Tuesday, August 24, 2004

Great Hacker != Great Hire ?

In response to Paul Graham's essay and talk at OSCON titled Great Hackers (a good read, I highly recommend it) Eric Sink responded in his blog that Great Hacker != Great Hire. He disputes Paul's claims that a company should try to lure so called great hackers to work for them. I both agree and disagree with Eric and Paul on this.

One thing you need to decide when hiring an employee (not that I have a lot of experience in this reguard as being an employee myself) is if you want a drone or a free thinker. Many companies want a drone (think the Borg). They show up at work on time and they do exactly what they are told. In fact, if management suggested that they create a web service in COBOL then they would happily do it (or at least work at it until you tell them to stop). They don't question anything.

At the opposite end of the spectrum is the free thinker. The free thinker challenges everything. Management says that the web site should be redesigned to use ASP.NET and MS SQL Server. The free thinker says that PHP and MySQL would be the way to go. Management suggests that the company picnic is catered by company XYZ and the free thinker says it should be a pot luck.

Many companies favor drones over free thinkers. Their thinking goes that they can mold a drone into the ideal employee. The problem is that management cannot know everything about all aspects of technology. That is where the free thinkers come in - they can provide feedback to management when they are unaware of certain implications of decisions they are making.

Great Hackers tend to be Free Thinkers. Personally I think there is a sweet spot somewhere between Free Thinker and Drone. It is important that the "line workers" share their opinion and expertise with management, but it is also important that when management finally makes a decision that the line workers go along with it.

So a great hacker can be a great hire, if they can swallow their pride and follow orders when necessary.

.NET and Language Homogenization

I found it interesting that one of the Microsoft promises about .NET was that we could have development teams where every developer used their favorite language. No longer would a development group have their language thrust upon them by upper management with everyone forced to use C++. Programmers could choose any .NET language that they felt was the best solution to their portion of the task at hand.

Now that .NET is here I am seeing shop after shop moving to exclusively C# for .NET development, even where they used previously both Visual C++ and VB (or Delphi, etc.) for Win32 development. So it appears that .NET has actually had the opposite effect - programming groups are becoming language homogeneous instead of language heterogeneous.

Part of the reasoning I have heard for this is that .NET removes many of the differences between C like languages (C/C++/C#) and VB, taking away the need to use both. Previously VB was used for quick and dirty applications, or ones that were UI dependent. C++ was used for everything else, or when performance was any kind of issue. Now with .NET we see that C# and VB are interchangeable. They both generate almost the same IL, and both have access to the same libraries and tools.

At a management level there is little to no difference between the two, but to a programmer there are many differences. So we programmers are being dragged into a greater homogenization of languages, where our choice and opinion matters less and less, when we were told to expect the opposite. Why am I not surprised.

Saturday, August 21, 2004

Expand Your Focus for Performance

Hopefully this isn't considered a violation of my NDA or anything along those lines, but I just had to share. I left anything too touchy out so it is pretty vauge technically.

At work we have an older program that is very critical for many of our internal customers. It uses and older database backend (similar to MS Access). There is a very important project coming up, and they need it to generate some reports. Unfortunately some of the reports were running for a very long period of time (more then 12 hours) and still not completing. It is a very complex process to generate the data needed for the reports. The program starts generating the data and then eventually hits a point where the CPU utilization and memory consumption are very low and the hard drive access light just goes solid.

Well, because of the importance of this project we were all told to make it our top priority to improve the performance of these reports. I am fairly new to the company so I have had no prior experience with this program. Steve had previously optimized the program as much as possible given the current design - he didn't think a change to program logic was the answer.

We were sitting around discussing what we could do when Steve asked if the cache of the database had been increased - turns out this database is very limited in this regard and its various settings had been explored with very little success. This got me thinking. I asked how big the datafiles were. Turns out it is only 10 to 40 megabytes. I suggested putting the database on a ramdrive - effectively caching the whole thing.

Brian installed a RAM drive and the database was moved over. The windows temp directory was also redirected there since the database used that to store temporary files. Logging was also turned off, but the log could have been redirected to the temp folder (theoretically).

The result was that these reports were done in close to a hundredth of the time. It is hard to get an accurate measure since we were testing on different systems and didn't bring our stop watches. Maybe come Monday we will have some hard data, but I am sure it will be a very substantial improvement.

Using a modern, higher-end database system could also fix the issue, but that is an architectural change.

The moral of the story is to think outside the box. When your only tool is a hammer everything looks like a nail, and when your only tool is the source code then that is where you try to get everything done.

This is could be the performance stack for a program:

  • Hardware
    • CPU
    • RAM
    • Hard drive
  • Operating System
  • Drivers
  • API Library
    • Service Packs
    • Shared DLL's (.NET Framework, DirectX, etc.)
  • Database
    • Data model
  • Development Libraries
  • Source Code
  • Compiler / Linker
    • Debug options
    • Shared libraries vs. Monolithic binary
    • executable compression
  • Deployment
  • User
    • Training
    • Expectations
    • Support
    • Other "unrelated" programs

Your bottleneck can exist anywhere in this chain, and this chain could be significantly more complex depending on the type of application you are running. For example a web based application. If you don't look at the whole chain then you could end up spending a lot of time with very little (if any) return. But making the right change at the right point can have a huge impact.

Programmers on Fire

Chris Brandsma has hopped on the blogging bandwagon with Programmers on Fire. It is now hosted at www.ChrisBrandsma.com, having finally moved from Blogspot.

Stop by and tell Chris hi.

Thursday, August 19, 2004

Delphi Informant

I just got word from Nick Hodges, a member of TeamB and recent columnist in Delphi Informant that his column will no longer be appearing. Not that there was anything wrong with his column, but this month was the last issue.

There is no news about it on Delphi Informant's website so that is the extent of the details. I am curious if their ASP.NET Pro magazine will continue. If so maybe Nick can move his column (on ASP.NET with Delphi) there. Hopefully he didn't violate an NDA in sharing this news before it was made public. We can only hope that this is a mistake.

I certainly hope that Delphi Informant will publish one last compilation CD.

The crazy thing is Michael P. just joked about that today on The Delphi Advocacy Group mailing list. He commented that he wondered how long they could stay profitable. What a tragedy to predict so close to the event.

I certainly hope that Delphi 9 and the improved Borland Developers Network really make some noise as I can already hear the "Delphi is Dead" camp warming up their drums

Delphi wins in .NET vs Java

Blake Watson has the article The Web Services Shootout: .NET or Java? where he compares web services with C# (.NET) and Java. Interestingly it looks like Delphi (native Win32) came out on top.

Great way to sneak Delphi in under the radar before people can put up their defenses.

The Delphi Advocacy Group

I posted this request / challenge to The Delphi Advocacy Group. You can follow the discussion and contribute your comments there if you like.

This group is the Delphi Advocacy Group. I am curious if anyone out there is interested in doing some serious advocating of Delphi. I have a few ideas and would love to bounce them off some other interested people.

What I have planned will be of mutual benefit of all those involved (as well as our favorite tool) but only if those involved are serious about doing this. I know we have 174 members right now. I also know that many of us are not using Delphi as our primary tool any more - not as our choice, and with much protest I am sure. I am now doing C# development in Visual Studio (shudder!)

What I expect is that we will start a smaller group of those few who are serious, and then we can pull from this larger group as we need additional support.

I was thinking maybe we might have a TDAG bof (Birds Of a Feather) at BorCon 2004 if there is enough interest. I know Robert and Nick are on this list and will be there. Anyone else?

I see Aughtly owns tdag.org through August of next year. Hopefully we can put that to good use as well.

Now is a great time to act with the pending release of Delphi 9, which Borland is promising will knock our socks off. Here's hoping!


I'll tip my hand. Delphi's main trouble is image. It is perceived as a "boutique language" by many people, if they have even heard of it (either that or they think it died when Microsoft took Anders). So what we do is increase the public perception and awareness of Delphi. If we look at how people develop their perceptions and awareness about a tool or technology we see that much of it comes from the news media (development magazines, conferences, web sites, etc.)

How often do you see a article about Delphi from a non-Delphi news source? Fairly rarely. What I am suggesting (among other things) is that we start an article writing campaign. Sure, we could write articles for Borland Developers Network, Delphi Informant or The Delphi Magazine. What I am suggesting is that we target other, more general magazines.

Delphi 8 recently won two awards from non-Delphi magazines:

2004 .NET People's Choice Winner best IDE / Editor for MSD2D.com http://www.msd2d.com/PeoplesChoice_result2004.aspx (link broken / expired)

Best Development Tool from Best of TechEd Europe 2004 Award Winner. http://www.winnetmag.com/Article/ArticleID/43218/43218.html

Oddly I doubt there are many article about Delphi in these magazines. Typically a Delphi developer keeps to themselves unless they are proselyting, and then they end up in religious wars.

There are three types of Delphi articles we can write for non-Delphi magazines:

1) An article that highlights a unique feature of Delphi in a non-biased way (from a technical standpoint, not a "review" or "fan" article)

2) An article that covers a general programming topic, but uses Delphi code in the examples. This would be effective since it would grab peoples attention by talking about some general concept without scarring them off by having "Delphi" in the title.

3) An article that reviews Delphi, or a related tool or technology.

Magazines love people to submit articles. In fact they usually pay people to do it. I have previously spoken to an editor for Dr. Dobbs and he said that if someone would just submit an article about Delphi he would publish it.

Dr. Dobbs is just one of many general development magazines. There are a number of magazines that cover Web Services or .NET development specifically. Delphi does all of that, but there are no articles about it in these magazines. Lets fix that.

Now I know that we are not all writers, but writing requires more then just writers, we need grammatical and technical reviewers. So if some one wants to write and then everyone else can review the articles and provide constructive feedback then that would be a huge help. Other times we might collaborate on articles.

So what is the benefit to those who participate? Borland offers a number of programs through developer relations to benefit people who support their tools. Typically you receive free copies of any development tools you support. Now I am not advocating that Borland send free copies to everyone on this list, but for those who make a considerable contribution to the effort I would suspect they would gladly help us out.

A few years back I co-contributed a chapter on Kylix to a book on .NET web services. I was surprised at Borland's eagerness to help us out. I know through their Tools and Components Partner program they also provide development tools. Borland is very generous to those who help them.

Also anyone who writes articles will be getting paid from the magazines that publish their work. For anyone who works as a consultant or trainer this will increase their exposure and make them more valuable. For the rest of us in the employ of some company we are aware of the fact that lay off's happen and companies go out of business, and having writing credit on your resume really helps you stand out from the rest of the crowd.

There are a lot of talented people on this list. I know if we can get a commitment from a few you to work together on this we can have a huge impact. If we can save but one soul from the perils of using an inferior development tool then it will all be worth it (sorry, switched into proselyting mode again). If we can get a free copy of Delphi, make a few bucks and improve our resumes along the way then all the better.

I already have a couple articles in the hopper that need some feedback and editing, so we can hit the ground running if there is any interest.

Wednesday, August 18, 2004

Going to BorCon

Well, it looks like I will be going to BorCon 2004. I am excited to see DiamondBack, the next version of Delphi (shall we call it Delphi 9?) as well as see everything else that is going on in the world of software development.

Delphi 9 is especially exciting since Delphi follows the opposite pattern from the Star Trek movies. While every even Star Trek movie rocked, every odd Delphi also rocks! Not to say the odd Star Trek movies, or even Delphi releases are all that terrible (ignoring Star Trek 1 and Delphi 4), but that their counterparts are just that much better.

Let me illustrate:

  • Delphi 1 - Introducing true RAD!
  • Delphi 3 - Fabulous COM!
  • Delphi 5 - More improvements then I can list! Some people still say this is the best!
  • Delphi 7 - Cross platform with Kylix or .NET (preview) as well as Web Services!
  • Delphi 9 - Guess you will need to go to BorCon. ..

I am not trying to say the even numbered ones were that bad. Just as Star Trek III: The Search for Spock was a good movie too. . . The even numbered Delphi releases were actually revolutionary:

  • Delphi 2 - 32-bits!
  • Delphi 4 - (Suggestions anyone? I didn't use this one. . .)
  • Delphi 6 - Web Services and Kylix
  • Delphi 8 - .NET

It just seems that there are more applications written in the odd numbered releases. People upgrade to the odd numbered releases quicker. A lot of people only upgrade to the odd releases (skipping the even ones). The odd numbered ones tend to have more excitement about them, and people keep using them for longer (well at least until the next odd numbered release).

I am glad one of the major development tools providers for the Microsoft platform still supports their developers with updated releases and conferences. . . .

See you all at BorCon!

Microsoft PDC Canceled

Microsoft has canceled PDC 2004 and postponed PDC 2005.

PDC 2005 was originally scheduled for spring 2005, but it has been pushed back to at least the fall. If Microsoft follows their trends as of late to continue pushing things back then PDC 2005 might be canceled as well (or moved to 2006, depending on how you look at it).

A visit to PDC Central shows it still has not been updated since 2003. My first inclination is that PDC was canceled due to lack of interest. This may only be part of the cause. Microsoft has gone a really long time without a major release as of late. It is used to be that they had a release every year, every other year at most. These days their release cycle keeps getting longer and longer. Not sure what this is an indicator of. . . .

UPDATE: Turns out Microsoft only has PDC every 2 years. In related news, PDC 2005 has been announced.

Tuesday, August 17, 2004

INETA

CONGRATULATIONS! Your group (Boise Software Developers Group) has been approved to be an INETA member based on your dedication to the .NET user group community. Welcome to INETA! If you have any questions about the goals of INETA, or if I can personally be a source of encouragement and information for you, do not hesitate to drop me an email!

I see INETA as a way for the user groups (especially through the groups leadership) to connect with other user groups', answer each other's questions, and generally support each other. I hope you'll be interested in participating as an INETA member group as INETA continues to evolve.

As you may know, INETA maintains a Speakers Bureau and will be happy to provide a nationally known industry guru to speak at one of your meetings. In addition, INETA will provide money for refreshments (pizza, soda, etc) for this event as well. Just go to the Speakers Bureau tab on the INETA site and file out the form to request a speaker.

We publish a monthly newsletter which you will start receiving at the beginning of next month. You can find past newsletters in the Repository on the INETA Website. We would love to have you submit an article on any user group related subject or a write up and pictures of a recent meeting. We are looking for community building information not technical, for the newsletter.

Best regards,

Julia Lerman

Monday, August 16, 2004

Extrapolated Facts

I have started a second blog. This is a personal blog where I will post things that are not really related to the group or programming. There may be some programming related posts there too, just as there may be some non-programming related posts here. Just to make things more confusing.

Wanted: Delphi Developer in Beaverton, Oregon

Senior Software Developer in Beaverton, Oregon

Healthcare software company looking for Senior Software Developer to join our outstanding development team. Contribute to the development and implementation of core company products in a dynamic, positive environment.

  • Technical Requirements: 7+ years software development experience, 4+ years of Delphi, 2+ years SQL/Database development.
  • Personal Requirements: Proven leadership and interpersonal skills, self-motivated, innovative.
  • Preferred Requirements: knowledge of healthcare EDI and/or hospital business operations.

EEOC with great medical benefits, profit sharing and company funded IRA. Send resumes to srdev2004@yahoo.com

Thursday, August 12, 2004

The Delphi "with" statement

I agree with Hallvard on his comments about the with statement, as well as his follow-up. One big problem I find in dealing with other coders is they would rather have syntactical sugar over using comments and formatting in their code. I suspect the reason his reader likes his version using the "with" statement is because it offsets the code in a block. There is not reason you couldn't do this:
var
  a: TForm1;
begin
  // 'a' is a local reference to the global Form1
  // which is not the current form referenced by self
  a := Form1;

  // we use 'a' here as a short hand for
  // setting a few properties
  //-------------------------
    a.foo := 123;
    a.bar := 'xyz';
    a.Caption := 'Test';

  // finished using 'a'
  a := nil;

  // now setting properties on the current form
  Caption := 'Foo Bar';
end;
You could even make a comment about using a instead of a with statement to make the code more readable and easier to debug / maintain. What really gets me about other people's comments is usually they comment the obvious, and ignore the obscure. Comments like these drive me crazy:
//------------------------
// procedure name FooBar
//------------------------
procedure FooBar;
Sometimes they even go so far as to tell me the name and types of the parameters. This is information I can easily obtain by reading the source code. It would be nice if they told me what FooBar does and what is expected in the parameters.

Friday, August 06, 2004

August 2004 Meeting Wrap-Up

We had a great turn out last night. Steve was planning to share Mono with everyone, but had a grundle of technical difficulties that prevented that. Now he is going to share twice as much Mono in September! If you really can't wait until then, head over to Ars Technica for their article on Mono.

We discussed the need for Virtual Machines. Virtual machines allow to have multiple, different OS's installed and running simultaneously on the same PC. This can be useful for testing (since the virtual machines are isolated and can roll back to previous states) or development environments. Once again Ars Tehnica has a comparison between VMWare and Microsoft Virtual PC (previously of Connectix). They ranked VMWare a higher then Virtual PC, even though it costs a bit more. VMWare out performed Virtual PC, and in some cases out performed the host system. If you are on a really tight budget, or need to run a virtual machine on a non IA-32 compatible CPU check out Boch, the Open Source IA-32 Emulator. It will run any IA-32 (aka x86) OS on just about anything.

In case you haven't heard about Microsoft's Express products, you might want to check them out. These currently beta products are development tools for the .NET framework version 2.0. While in beta they are free, but after beta the plan is to charge less then $100 per product. Their target is non-professional programmers.

Steve pointed out a useful CD and DVD burning program called Burn 4 Free (who's site seems to be currently having some trouble). This free utility makes it easy to burn and copy most any format of CD or DVD. It supports all kinds of data types, drives and languages.

Since Richard Hundhausen wasn't able to attend we went out to his blog to catch up on his news. We also chatted with him on-line a little bit from Tampa.

If you are up for some competitive programming with cash prizes then you might want to check out TopCoder and their 2004 TopCoder Open, which is sponsored by Microsoft with $150,000 in prizes. Computer Associates is also offering a $1 million dollar bounty for tools to help people migrate to their open source Ingres database.

For anyone with a need to create a diagram, but who doesn't have access to Visio (also now owned by Microsoft), you can use Dia. Not only is Dia free / open source, but it actually has some features not found in Visio. It uses gtk+ so it runs on most any platform. If you want to run it on a Win32 platform, then you will need a special version for Win32.

For those that like spicy food, head over to Flying Pie Pizza for their Double Habanero pizza. This spicy delicacy is only available for the month of August. Steve and I, along with a few friends, met their for a single habanero pizza this week. It was good and hot.

Finally we declared Code Complete finished and had a good discussion about what book to read next. Randy suggested The Career Programmer: Guerilla Tactics for an Imperfect World saying that it is easy and fun to read, and could save our careers. In the end we decided to go with Design Patterns Explained: A New Perspective on Object-Oriented Design by Alan Shalloway and James R. Trott since we were in the move for a more nitty-gritty technical book. Steve is going to check the book out and give us a quick review first part of next week and then we will make reading assignments if everyone decides to go with that book.

Coming up. . . .

So as a reminder, September we will have Steve sharing Mono, possibly me with Code Rush for Visual Studio, and the first few chapters of our new book.

Rational will be here in October, and November has Chris with SharpDevelop.

Thursday, August 05, 2004

See the next Delphi at BorCon 2004

"In-depth details on DiamondBack, the code name for the next Delphi release, will be shown throughout BorCon 2004 (US). If you use Delphi, you'll want to be there! "

From the list of sessions we can see that the next version of Delphi will in fact support both .NET and Win32. Looks like it will also have refactoring support. All of this in addition to the features found in the current two versions of Delphi. Sounds pretty exciting to me!

Wednesday, August 04, 2004

20 Questions

Want to play 20 Questions? This is a simple concept done really well. The basic concept is a binary search tree. The computer asks a question, and then depending on a yes or no answer it goes to another question until it runs out of questions, and then it knows the answer.

This one uses a fuzzier approach. Instead of just yes and no it takes multiple answers (maybe, unlikely, etc.) and it also keeps track of all the answers it gets, realizing that people disagree. The result is a system that is really good at guessing what you are thinking about in 20 questions or less.