Friday, September 30, 2005

Review of Serenity

I just put up a review of Serenity. I might add more later, but it is late and I am tired.

Tags: [] [] []

Delphi Ares P2P is #5 project on SourceForge

I was reading through my September 2005 Sourceforge.net site update and noticed that Ares P2P, written in Delphi, is the #5 project on the site. Delphi is also the 10th most popular programming language on the site, with 1885 projects written in Delphi or Kylix (does not include the 349 written in Pascal or the 274 in Object Pascal).

The 20 most popular langauges on SourceForge.net by number of projects are:

  1. 16,338 - C++
  2. 16,163 - Java
  3. 15,587 - C
  4. 11,762 - PHP
  5. 6,104 - Perl
  6. 4,371 - Python
  7. 2,745 - C#
  8. 2,616 - JavaScript
  9. 2,156 - Visual Basic
  10. 1,885 - Delphi/Kylix
  11. 1,802 - Unix Shell
  12. 1589 - Assembly
  13. 1124 - PL/SQL
  14. 898 - Tcl
  15. 723 - Objective C
  16. 550 - ASP
  17. 376 - Ruby
  18. 349 - Pascal
  19. 318 - Lisp
  20. 274 - Object Pascal

There are a total of 90,417 projects on SourceForget.net, written in 72 different languages. Oberon is a langauge choice, but there are currently no projects for that langauge. There are however 4 for COBOL, 7 for MUMPS and 24 for D.

Update: Ares is now the #3 top downloaded project.

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

Migrating from .NET 1.1 to .NET 2.0

At PDC I recieved a copy of VS2005 RC1 along with .NET 2.0. We discussed devoping our next application at work in .NET 2.0 since it is due out any day nowTM. Our primary third party component vendor had a booth at PDC too, so I asked me if they were .NET 2.0 ready. They said they were really close, and commited to being 100% within 30 days of actual release, any day nowTM. I figured I would see if I could port our prototype over. The result was successful. This is what I had to do:

  • Built in conversion wizard when you open a VS2003 solution / project converts to VS2005.
    • Required checking the files out of source control so they could be modified.
    • Not very tricky, pretty straight forward.
  • Removed unused references to other 3rd party assemblies.
  • Set all references to the same version of the 3rd party assemblies and .NET framework.
    • Before this was done it resulted in some confusing runtime errors about not being able to cast something to the original type (this is because it was the same type from two different versions of the assembly.)
  • Updated references to obsolte methods
    • Each obsolte method was flagged with a warning which specified which method to use instead. The latter was a very useful feature.
  • Some of the namespaces for the datasets needed to be adjusted to include the subdirectory the dataset was in.
    • Pretty straight forward once I figured out what it was referring too. Not sure why it worked before in VS2003.

Overall it was a fairly simple process. I didn't get a chance to use VS2005 much yet, but the one HUGE anoying bug or missing / changed feature was that chaning which file you were editing didn't update the location in the solution explorer. This resulted in manually hunting for the files in the solution explorer, which waisted a lot of time and was very frustrating. VS2003 has that feature, so I am not sure why they removed it from VS2005. Hopefully they fix that bug in time for release.

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

Thursday, September 29, 2005

More on the Delphi Roadmap

Robert Love has some updated information on the Delphi roadmap as a result of the BDN Radio broadcast. Hopefully an MP3 is forthcoming.

Going forward Delphi will support Win32, .NET, C++, C#, Delphi language, other .NET langauges (VB.NET, etc.) and there are now officially announced plans to support Win64 natively and .NET 2.0.

Update: You can listen to the MP3 recording of the Roadmap radio broadcast now. There is also a chat log with some other questions and answers in in. Good information!

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

Fox News Opinion on OpenDocuments is Uninformed and Highly Biased

I am sure most people don't find that headline very surprising. It may be worth while to note the "article" is actually a guest editorial in the "views" section. The writer is not a Fox News columnist. The author is Jim Prendergast, the executive director of Americans for Technology Leadership. From the slant of that article I am guessing that organization is one that spouts praise for Microsoft and attacks Open Source all in the name of well paid research.

The OpenDocuments format is an OASIS approved document format that anyone is welcome to support. Choosing to standarize on OpenDocument supporting applications is like choosing to use applications that suppport XML or other standardized formats. It is not lockin to a specific vendor. While the article does raise what might appear to be good points it misses the whole objective. First of all it claims the decision circumvents the "merit-based procurement process", which is totally false. The state has decided to standardize on an open format that has free tools available for all to use while interacting with the state. As a government agency providing a free way for citizens to interact with them seems like a good policy.

They are still open to the merit-based procurement process and bids and proposals. Microsoft, or anyone else (including "mall state-based systems integrators") could choose to support the OpenDocument format and they may win the state contract.

I think government agencies that standardize on a closed and proprietary format that forces citizens to buy overpriced software just to interact with them is providing a public disservice. What if I am using Linux or some other platform that doesn't run Microsoft Word? Or what if I don't own a copy of Office? Should I be required to purchase a platform that runs office, and then purchase office just to interact with the government?

What if the state standardized on Bill and Ted's Excellent Office Suite because it was the absolutely fastest performer, uses the least memory, and they got a great deal. The only bad news is it uses a propritary file format that can only be read by this specific suite. Sure the state got an incredible deal because they purchased so many coppies, but if an individual wants to create or view one of these documents then it will cost them $5000 because it only runs on a specific operating system that only runs on specialized hardware. Is that doing the public a service?

OpenOffice and StarOffice are big supporters of the OpenDocument format and they alos provide excellent interoperability with Microsoft Office. In fact, they provide better interoperability then Microsoft Office, opening more formats of Office documents then even Microsoft Office does. A fact conveniently neglected in the opinion piece.

Interestingly the piece also says that:

In many cases, new technologies will have to be purchased even when current systems are fully functional. In other words, taxpayers will be paying duplicative costs.

But then later says "Microsoft keeps expanding into XML and metadata"

So the author is advocating the state upgrade to the latest Microsoft Office product, and pay all the additional duplicative (replacement) and training costs associated with that. But the author has a problem if the state wants to move in an open direction that could save money on licensing (up front and over the long run) and provide greater accessibility by standardizing on a tool that supports the OpenDocument format.

It sounds to me like the author owns MSFT stock and wants to see his portfolio improve more then he wants to encourage open accessibility to government technology.

He also falsely states that OpenOffice and StarOffice don't support assistive technologies. He obviously didn't research any since both StarOffice and OpenOffice have extensive accessibility features.

He does not the exception granted PDF, but I believe that is rightfully so. Adobe provides a free viewer for most all platforms, and they provide the useful feature that the document can be formatted on one machine and then printed identically on any other machine. I thought it was interesting that the author points out that "How confident can Adobe and others be that the government won't later change their minds and suddenly deny the exemption?" Isn't that the nature of government contracts? If a better, cheaper, more accessible alternative comes along, then the contract is awarded to a new vendor. It would appear the author doesn't believe in "free market competition" after all.

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

Wednesday, September 28, 2005

Free Barcode Font - TrueType Code 39

Tony just sent me this link for a free Code 3 of 9 barcode TrueType font. It is free for personal use.

Bar codes are pretty useful. I have one friend who prints out all his product keys in barcodes, and then scans them in when he reinstalls. Speeds up the reinstall time. Tony on the other had was using a barcode of (Carriage Return or ASC #13) to advance a powerpoint presentation. Get creative and fun!

Of course you will need a bar code scanner to read these back in. You can usually get one on eBay or maybe you can find an old CueCat lying around.

Tags: [] [] []

Tuesday, September 27, 2005

The Unholy PDA Union

Since Palm OS split from Palm devices that opened them up to the an unholy union of Microsoft Windows Mobile 5.0 (FKA WinCE, WinXP mobile, Pocket PC, etc. . . .) on a Palm Treo device. Even with all the marketing Microsoft has put into encouraging adoption of their OS, including licensing the OS to a huge variety of hardware manufactures, Palm still dominates the market. Not sure what this will do to the mix, but I suspect it will really hurt the sales of all the other Microsoft OS devices and the Blackberry.

Interestingly, the Treo actually originated with Handspring, which was a company started by a couple engineers who left US Robotics shortly after they released the Palm Pilot. US Robotics was purchased by 3Com, and the name was changed to Palm because of a trademark conflict with Pilot pens. Later Palm was spun off from 3Com as PalmOne. Then it split into Palm and Palm Source, with the later making the OS and the former making the devices. At some point in there Palm purchased Handspring, keeping only their Treo product line, which is the most popular, and one of the first, PDA & Phone combos. Of course all of that is just by my best recollection, so feel free to correct me.

With Compact Framework the Microsoft devices are a whole lot more appealing since they are much easier to program on. Although Palm OS has Pocket Pascal.

Tags: [] [] [] []

Real Delphi Roadmap

You may remember my projected Delphi Timeline. Well, David I. just unveiled an actual Delphi Roadmap, and it looks like it will make everyone happy. Marco Cantu has some great coverage.

No mention of Aspect Orientated Programming unfortunately. Also not on the time line is LINQ, but Danny Thorpe already talked about supporting LINQ in Delphi, but he didn't say which version (or I missed it). I would suspect LINQ support in Highlander / Delphi 2006, but it may be as late as 2007. Since DeXter is pretty much finished at this point I can't imagine it showing up there, unless it comes as an update.

The impression I got at PDC was that LINQ does not depend on a new features in the CLR, so it would not require .NET 3.0. It is a language feature that happens to be supported by both C# 3.0 and VB.NET.

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

Computer Programming Board Games

There has been a lot of fuss lately about c-jump, computer programming board game that teaches C syntax and logic to children. Very creative idea. When I think of computer programming board games I think of RoboRally, by Richard Garfield and Wizards of the Coast. This game was actually unavailable for years, but now you can buy it online!

I've played RoboRally, and it is a lot of fun. Now that it is available again maybe I will buy it.

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

Wednesday, September 21, 2005

Orpheus 4.06 for Delphi 2005

This was a while ago, but I thought it was worth mentioning. Chee Wee Chua has updated Orpheus 4.06 to work with Delphi 2005. Orpheus was open sourced when TurboPower closed their doors. This library adds over 120 components to Delphi, covering a wide range of features. At one of my previous jobs we actually purchased a previous version of Orpheus, and now you can get the latest version free. Thanks Chewy!

I think it would be great if Borland started bundling these libraries with Delphi. If they actually put them in the IDE on installation then that would really jack up the number of components they shipped with. Do the TurboPower ones, and then the Jedi library.

That is the one thing about the Delphi community, the incredible selection of great quality open source components. Since Delphi was really doing component development while everyone else was just starting to figure it out they really got a great head start.

Tags: [] [] [] []

Saturday, September 17, 2005

I Won an iRiver H10 at PDC

iRiver H10

To those who know me this will come as no surprise, but I won an iRiver H10 5 GB MP3 player at PDC. When you complete an evaluation of a session you have a chance of winning. At the second to last session I won. I actually almost went to lunch with someone instead, but we rescheduled. I'll post a review later. So far I am impressed - nice small form factor, great color display and every feature you can imagine. Even came preloaded with some MP3's to listen to. . . .

Tags: [] [] [] []

Great New Book on Requirements

I recently signed up with Construx Advocates, which is a group dedicated to improving the practice of software engineering. Interesting discussion. Dick Holland recommend this great book on Requirements:

If you want to read the very best book yet about requirements, as well as many other aspects of software and systems engineering, then get Tom Gilb's Competitive Engineering just published by Elsevier.

Sounds like a fun read. Dick also pointed out the IEEE definition of requirements:

A condition or capability needed by a user to solve a problem or achieve an objective

Tags: [] [] [] []

DRM in Vista

I am not too thrilled about it either. I actually found myself sitting in the airport (ready to fly back from PDC) next to a Microsoft employee and we started talking about Vista DRM. He said that frankly a lot of people inside Microsoft are really unhappy with all the DRM stuff, but it has been accepted as an inevitability - eventually there will be laws past to require it. There are moves in the media industry to require DRM to play some media, so MS wants their customers to have access.

BTW, Linux will not always be DRM free. It won't be long and games will start employing and requiring full blown DRM, they have been employing copy protection and the like for longer then any other media. Linus has already said that he is open to DRM on Linux.

Forget boycotting products. Instead write your representatives and support the EFF.

Tags: [] [] [] []

Thursday, September 15, 2005

The .NET Language Integrated Query Framework - LINQ - PDC05

Anders Hejlsberg unveiled one of the cool new features coming in C# 3.0 (Comega): The .NET Language Integrated Query Framework - LINQ. It has three parts: In memory structure (Array, collection, etc.) query, relational database query (DLinq) and XML query (XLinq). Basically you can interact with all three using the same (or similar) native language features. There are a number of enhancements to the C# langauge to support LINQ. A lot of really cool stuff in here!

One of the features is called Extension Methods. This reminds me a lot of class helpers in Delphi 2005, except it only adds methods, not properties. Also it applies it to an Interface, so any class that implements that interface also gets the new methods. I spoke with Anders afterwards and he said it was similar to Class Helpers, but obviously different in the ways I mentioned, and implemented differently (as far as he knew).

Tags: [] [] []

Getting Users to Fall in Love with Your Software - PDC05

Couple interesting notes from this session by Hillel Cooperman:

  • When developing an application you loose one point for every dialog you add.
    • Users don't read them unless they are expecting them
    • It just anoys them that they have to clear them.

 

  • Most people look at software development as making trade offs in four areas:
    • Experience vs. Tool
      • A coffee pot is a tool, it gets the job done
      • Starbucks is an experience, the point is more then just the outcome
    • Powerful vs. Simple
      • The more features you add, the more powerful it is
      • Presents the user with fewer choices so it “just works” – more Wizards
    • Automatic vs. Manual
      • Provides automatic solutions without requiring the user to tell it to
      • The user has the option to tweak the settings and make changes through-out the process.
    • Familiar vs. Special
      • Common look and feel using the usual keystrokes, etc.
      • Stands out from other applications and has specialized behavior.
  • Real good software is “both” not a trade off.
    • Tool and Experience
      • Provide the solution quickly and easily, but keep the “ambience”
    • Powerful and Simple
      • Many features, but keep them contextual and focus on the most common features.
      • Don’t punish the “power users” by making the special features hard to find, but at the same time don’t punish the starter users by obsuring the common features with ones they don’t need.
    • Automatic and Manual
      • Offer the most common or most frequent solution by default, and then allow the user to tweak it and make changes.  Don’t hide the ability to tweak, but don’t require advanced knowledge to get things done.
    • Familiar and Special
      • Build on the common and familiar.  Improve and innovate.

 

One of the things I liked about this session was that Hillel Cooperman, the presenter, was honest in where Microsoft hadn’t got these things right in the past.  He even provided some really specific examples.

Tags: [] [] []

Monad - PDC05

I attended a session on Monad (or MSH - Microsoft Command Shell) mostly since I didn't have anything else going on during one slot. All I can say is WOW! Basically Microsoft has taken all the great UNIX / LINUX shells and scripting langauges and ported them to windows, while making it fully object orientated and extensible.

You can mount and access not only drives, but your registry, a database or just about anything else you can think of. I played with it for a little bit in the lab and found it very intuitive, powerful and easy to use. But be warned, it is really, really powerful, so you can do a lot of damage in a hurry! Be sure to use the -whatif and -confirm parameters.

They just released the Public Beta 2, but you need Windows XP, 2003 or Vista to run it, and it requires .NET 2.0.

Tags: [] [] []

FxCop

I'd heard about FxCop before, but I never really played with it any. Saw a session on it yesterday. Go download and install it right now if you are not already using it. And then run it daily, if not more often. I was really impressed with everything it is able to catch. I can think of a lot of code I have been repairing where it would have been great if the original author had recieved the warnings from FxCop about them in the first place.

Tags: [] [] [] []

Wednesday, September 14, 2005

WiFi Issues at PDC05

I'd be posting more except for my WiFi issues. It is pretty spotty coverage, even in the "hotspots". I noticed a few other people having issues too, so I am pretty sure it isn't just me. When I spotted Danny I found him sitting under a WiFi access-point. The other issue is time. You know me, I am always looking for more information. . . .

I am actually posting from one of the Microsoft provided PC's right now, which means I am forced to use IE. Rather frustrating. I posted some others last night / this morning (3 AM) from my hotel. I have more posts coming - too many posts, too little time / WiFi.

Tags: [] [] [] []

Borland at PDC05

John Kaster John KasterI've been keeping my eyes open for people I recognize from the conference formally known as BorCon. I've spotted two real live Borland employees: John Kaster and Danny Thorpe. I only saw John in passing, but I was able to speak to Danny for a little bit. While he didn't say John was the only other Borland employee here, he didn't mention any others.

I am not counting all the former Borland employees I spotted. There certainly are a lot of them. I wonder where Microsoft would be if they didn't have Borland to hire from. I don't blame anyone for the migration from Borland to Microsoft, just think it is interesting.

Don Bowker

I also spotted Don Bowker of the BorCon 2004 advisory board. There are a lot of people here, so it is hard to see everyone so I may have missed others, or I still may see them.

In the Expo hall there are a number traditional of Borland ISV's: DevExpress, Raize, RemObjects, Falafel, etc. Borland themselves is suspiciously missing. Before the conspiracy theorists get started I am going to suggest it was a huge mistake or error that Borland is not here, nothing more.

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

Agile vs. Non-agile Development - PDC05 BOF

Wow, what an eye opener. The objective was to debate Agile vs. Non-agile development, but everyone that showed up (except one person who left early) was in complete agreement that some sort of Agile methodology was the way to go, and non-agile is out. Interestingly a short survey showed that most of those practicing agile were from a small shop, and not working in the Enterprise. This is probably a result of the fact that most large enterprises are pretty stubborn when it comes to changing development methodologies.

Opposite this session was one on using the "Joel Method" as defined by his Joel Test.

Tags: [] [] []

Using Enterprise Library In the Real World - PDC05 BOF

Another great conversation. A lot of people are using the Enterprise Library from Microsoft. Most people are taking it as a suggestion and building on it. There was a concencious that it would be great if there was a good community to build on and support the Enterprise Library since Microsoft isn't supporting it.

Tags: [] [] []

Integrating P2P Into Applications - PDC05 BOF

Interesting session talking about all sorts of stuff related to Peer-to-Peer programming. Got some great conversations going. A lot of people adding P2P features to their projects. A hybrid model of some sort seems to be the perfered method - either a central server acking as the broker, or the super peer like introduced by Gnutella.

Tags: [] [] [] []

PDC'05 Birds of a Feather

I voluntered to host the Birds of a Feather session for INETA. I would introduce the moderator and coordinate the reviews. It was a lot of fun, and I was planning to attend the BOF sessions anyway, although I didn't get to choose my sessions.

I also met a number of people behind INETA, including Stuart Celarier - my PacWest represitive and the guy coordinating the BOF sessions, Chris Pels - the president, Sara Faatz - the Vice President, Dave Noderer - the Treasurer, and Chris Wallace - the VP of Membership.

I hope I got everyone right.

Tags: [] []

Framework Design Guidelines: The Art of Building a Reusable Class Library

This was a fabulous session. Krzysztof Cwalina and Brad Abrams did an amazing job. Not only was the content incredibly good, but they did a fabulous job presenting it. They provided review questions, role playing, and even a lab! I will be picking up a copy of their new book Framework Design Guidelines : Conventions, Idioms, and Patterns for Reusable .NET Libraries. They spell out all the best practices for framework design.

  • If the size of the data is less then 16 bytes use a struct instead of a class.
  • You can just seal individual virtual methods instead of the whole class.
  • In .NET 2.0 you can make static types - will prevent common mistakes like having a public constructor (which comes from System.Object automatically.)
  • Use try-parse pattern when possibility of an exception in a tight loop ( page 204 of the book ).
When you are building a framework, you are building it for someone else, not you. Focus on the developer, not you. They cannot read your mind. Need to communicate to the user, documentation is good, but not the entire solution. API should be obvious. Good documentation on a bad API is like lipstick on a pig.

Communicate with consumers of an API by leaving artifacts in Types, Methods, Properties, Events, Constructors.

Communication Vocabulary

  • Namespaces
    • Organizational principle to allow consumers to:
      • Find relevant functionality quickly
      • Exclude less relevant functionality
    • Not about implementation issues
      • Security, identity, size, perf
      • A namespace can span multiple assemblies, and an assembly can span multiple namespaces.
    • "Not an advertising billboard"
      • Don't use organizational names in the namespace since it could change
  • Class
    • A conceptual model for a thing which can hold state, perform actions, etc.
    • Common API design problems
      • Grab bag types (lack of cohesion)
        • One class that does a lot of unrelated things.
    • Modeling overly abstract concepts
      • A File is simple, StreamReader is complex.
  • Struct
    • A domain specific extension of the intrinsic type system
      • Example: defining point, complex, etc.
    • Expert use: perf optimization when GC-Heap allocated objects not warranted
      • Example: an enumerator.
    • Common API design problems:
      • Overuse to avoid GC
      • Instance size over 16 btres
      • Are not immutable
  • Static Class
  • Exceptions
    • Only define exceptions that will be caught and handled differently then others.
    • Define exceptions to contain useful data
  • Enum
    • Specify values for enum's incase there is a binary change
    • Don't use "magic" constants
    • (all enums are stucts with one field - usually an int)
  • Flag Enums
    • Plural types
    • Combinable enum
    • FlagsAttribute
    • Powers of 2 instead of sequential numbering - bit masking
    • Provide common combinations
  • Constructors
    • Facility to capture the state of an instance
    • Do minimal work - don't do processes, may not be necessary - only store the state
  • Methods vs Properties
    • Expose actions or operations
    • Use properties
      • If the member is a logical backing store - it returns internal data
    • Use methods
      • If it is a conversion of types
      • If the getter could have an observable side effect
      • If order of execution is important
      • If the method might not return immediately
      • If the member returns an array
      • If the operation is expensive
  • Fields
    • Don't use - locks you into an implementation
  • Events
    • Events are "raised" not "fired" or "triggered" - that seems like an odd choice of terminology to me.
    • Use verbs - Click, Paint, etc.
    • Use strongly typed EventArgs
      • Using EventArgs allows for extensibility when new args are added it will remain backwards compatible.
  • Static Members
    • Global access
    • Not object orientated

Split some related functionality to two namespaces when part of it is only in 10% of the use cases.

  • Exceptions
    • Reuse an existing exception when possible
    • Define a new exception only when it will be handled different when caught.
    • Use separate exceptions for different errors (if will be handled differently)

Tags: [] [] [] []

PD05 First Impressions

Lots of WiFi, but the coverage is spotty if you are not in right locations – the Internet Alleys.  Part of the spotty coverage could be due to the size of the conference center.  If you didn’t bring a laptop (which it looks like everyone brought at least one) there are many kiosks setup for use.

As I mentioned earlier, there is a lot of food laid out for everyone.  Often I see the convention center workers having a snack.  

The “Big Room” is huge.  That is where we eat (or grab food and run) as well as where the Expo hall, labs, store, etc.  

Of course we get a little bag of swag and paperwork.  I must say I am VERY disappointed in the printed literature for the conference.  Sure at the pre-conference tutorial they give you a handout, but it was only about a third of the slides.  In the paperwork package they give you a guide that doesn’t list any of the breakout sessions.  Very frustrating in my opinion.  There is an insert in our badges that lists each break out session, but it lacks details, like even the speaker name, just the course name and location.

There has also been a lot of last minute moves and reschedules of courses.  Usually there is just an empty room and you have to ask someone where it was moved to.  At one point I went online, looked up the next course, walked straight there, and the course was moved.  

Monday, September 12, 2005

PDC'05 and Weight Gain

There is a lot of food available here at each break. Candy, soda, coffee, juice, water, lots of fruit, and other assorted snackage.

They keep the snacks out all the time it seems, so even if you duck out of a session then you can still eat. I can really see myself gaining some weight here.

Although all the walking may help burn that back off. It is nice to see all the fruid any other healther choices.

Tags: [] []

The Pit of Success

Brad made a reference to the The Pit of Success, which I think is a great design guide in general, beyond API's, in all design:

The Pit of Success: in stark contrast to a summit, a peak, or a journey across a desert to find victory through many trials and surprises, we want our customers to simply fall into winning practices by using our platform and frameworks. To the extent that we make it easy to get into trouble we fail.

-Rico Mariani, MS Research MindSwap Oct 2003.

Tags: [] [] []

Late, but Arrived at PDC05

I ended up not being able to coordinate the Dali Lama and PDC, so I missed the first day of PDC 2005 Pre-Conference and "What's new in C# 2.0"

Then my non-stop flight on Alaska Airlines was canceled so they put me on a Delta flight with a lay over. Then with all the usual headaches I ended up getting to the conference center right before the lunch break.

After lunch I went for the 2nd half of "Framework Design Guidelines: The Art of Building a Reusable Class Library". Sounds really interesting. They were giving out books this morning, but they ran out now.

Right before the session starts the power goes out. From talking with the guys next to me it would appear there was a terrorist threat yesterday against LA, and a few people are wondering if this is related. Most likely not.

Interestingly right when the speaker decided to go on without power the lights came back on. Guess it wasn't a terrorist attack after all.

Tags: [] []

Friday, September 09, 2005

Fun with Comments

Chuck Jazdzewski has a little article on comment toggles. I like to think I know syntax really well, but I can't remember ever noticing that trick before.

For those who don't know, Chuck J. was formally at Borland, through most of Turbo Pascal and Delphi. He actually came to Boise a while back and presented at our user group. He was in town for a class reunion from his university NNU in Nampa.

Thursday, September 08, 2005

Guide to "Competitive Programming"

A guide to Competitive Programming has been placed online. This is an interesting trend that I am watching intently.