Reminder about Paul’s Classics

It’s nothing new, but a reminder of brilliant and completely unbiased overview of MapServer by Paul Ramsey. If you haven’t enjoy it yet, do it now!

MapServer is not for lazy people! lazy people, you may leave now!

And, it’s not a bug, it’s a feature!

Steven’s comment made me to re-think the sentence above and generalise it to the one below:

Free and Open Source Software is not for lazy people!

Although, I’m aware of the fact for many it may sound like a platitude, but it still applies.

Portability poem

Meaning of PortabilityNumber of OSGeo stack software written by C/C++ camp have to run on Microsoft Windows systems. I think I wouldn’t be dead wrong if said that most of hackers from OSGeo Community work on Unix systems (Linux, Mac OS X) but there is large number of users who work on Windows.

Conclusion? Portability. Google is bursting at the seams of the essays about how to write portable code in C or C++ language. I’d add a little poem to the collection.

Principles of Portability

  • Obey the standards, because they are not just dumb rules.
  • Make a list of compilers that must be supported. Learn about their differences.
  • If possible, use GCC 4+ and Visual C++ 7.1+.
  • Using old compilers? If possible, use C89 but avoid C99.
  • Prefer GCC 4.3 and Visual C++ 8.0+, so you get C++0x support. C++0x “brings C++ more in line with the C99″ – Wikipedia, so portability is much easier.
  • Write code in C or in C++, but do not write both at the same time.
  • Avoid (direct) use of C POSIX Library.
  • Never ever disable any warnings compiler throw. Fix them.
  • Be pedantic. Compile in highest strict mode possible.
  • If possible, do not use compiler-specific features.
  • Do not make platform/architecture specific assumptions about memory addressing, memory layout, etc.
  • First understand why, then cast the hack.
  • Personal preferences are evil. Make decisions based on reasoning.
  • (Re)Use good code that already exist. Boost C++ Libraries won’t bite you!
  • KIMS (Keep it modular, stupid) and let modules to loose coupling but keep cohesion in architecture, design as well as in development cycle (releases, inter-modular dependencies).

I go commando

Arnold Schwarzeneger as CommandoNo, I haven’t got a call-up to army. Actually, I run away from my country just in time in December 2008 :-) . However, a few months later Minister of National Defence of Poland announced good news and I hope to not to be executed by firing squad for desertion when I visit my family in Poland some time in future ;-)

Going Commando is about stopping using the mouse as one of the quickest ways to increase your productivity on the computer. I always knew that! I always believed using mouse is a waste of time and it’s worthwhile effort to let the mouses out and stick the fingers to keyboard as the first step to coding faster.

By the way, I’ve just reminded myself that this is not the first time I do commando. A few or more years ago, while reading Ed Yourdon‘s book Death March, I realised: I am a commando coder: I’m drinking jars of coffee and I’m staying 1.5 to 2 shifts at work. Now, I understand that the military approach was necessary and very natural because a start-up without commandos has nothing to sell and if there are no commandos left in a company, there is no innovation ;-) However, I’m glad I’m no longer drinking jars of coffee as this approach is less efficient; it results in poorer code that actually takes longer to produce.

Hmm, I’ve just discovered I have pretty strong military background :-)

Iterators Must Go!

I’ve already announced the brilliant and provocative presentation given by Andrei Alexandrescu titled Iterators Must Go!.

Here is video of Andrei’s keynote digged to boostcon.blip.tv:

It may seem this is a C++ oriented presentation, but in fact it’s more related to software design, design patterns and idioms, interface oriented design, programming by contract and…shortly, it’s really worthwhile to watch, during lunchtime of course ;-), and enjoy!

OSGeo Credit Card?

The Linux Foundation Visa Platinum Rewards Card CardPartnner has just introduced The Linux Foundation Visa Platinum card available in frame of affinity credit card scheme. The Linux card will earn the Foundation $50 when it?s activated and money will go to community technical events and travel for open source community members to technical events.

How about an OSGeo Credit Card?

What about comprehensive national health care programs?

What about solid and real ethical OSGeo Pension? – if I may ask.

French breakfast at Google

French company sues Google over its Maps service

Google is looking to establish a monopoly in the mapping market.

Dear French guys, it seems you have woken up in the middle of the night and with one of hand in a chamberpot. Or you’ve just came back from long journey to Mars what would explain the disorientation and the fact you’ve overlooked the growing monopoly, which many see as having acquired too much power, too fast, without the wisdom to use that power responsibly.

In case you haven’t caught it yet: searching, mapping, e-mailing, multimedia & broadcasting, blogging & micro-bloging, documents, chats and business talks (many companies use Google Talk for communication, so Google has, and crackers may have too, fairly easy access to their business secrets), science & research (probably the highest density of PhD owners is in Google offices, but not in any university on the planet), storage of personal and sensitive information (medical records, health profiles, personality profiles, …), be or not to be (what’s not in Google it has never ever existed), <your favourite stuff goes here> All these belong to the Giant.

Vampires give interviews only in the movie. In real life, they suck the blood of the living.

Guys, give it up. Take your golden parachute. Relax. Book a flight to one of the sunny islands. Buy new shorts and live good life running a surf shop :-)