Use standards

Use standards

No, you guessed wrong. This will not be the nth post about W3C standards.

Well, maybe one paragraph: while I know the use of W3C standards is favourable, the usability of your project/application should be your number one priority. Not adherence to a standard which would render your application unusable for (a part of) your audience. Every once in a while people tend to forget this. Of course no one will argue that W3C standards actually are a blessing.

But, this post is mainly about 2 simple standards:

  • The ISO 639 standard for representing languages. Please use “en” or “fr” in your database, routing, scripts,… . It is unbelievable how many times people pick something like “FR” or “F”.
    Next time, consult the ISO 639-1 list.
  • The ISO 3166 standard for representing countries. Same case: please use “US”, “FR” or “BE” or use the ISO 3166-1 list.

Additionally, use the Unicode CLDR list when working with locale’s (e.g. nl_BE).

Standards in general provide a major productivity benefit: you do not have to lose time discussing, implementing, mapping,… other peoples personal preferences (whether or not their choice can be motivated).

This also applies to coding standards/guidelines. We have probably all had (or will have) discussions about them once in our life because there are no “official” ones as far as I know. Specifically about PHP: please (yes, I am on my knees right now) use one of the major ones that are already available: e.g. Zend Framework (my preference because it is or will become the industry standard), PEAR or … . Do not create your own flavour (I do not have to explain why this does not make sense).

A hot topic at your company, project or team? Have a look at Weble Subversion hosting: you can force a list of predefined guidelines/standards by a mouse click. This will prevent SVN users from committing their code if it does not comply and, in such a case, an overview of the deviations will be displayed.

Cleanup – fase 2: move to Google Apps

Google Apps

After getting rid of my Windows Live address, I started to move my domain e-mail to Google Apps (GMail).

Before I moved to Google, my domain e-mail (strictlyphp.com/strictlyphp.be) was handled by my hosting company and I also maintained the e-mail address my ISP provided and the GMail account I checked once in a while.

This has certainly wasted many hours in the past.

Google Apps to the rescue: you create an account, add your domains, point your MX records to Google “et voila”. After everything is set up, you can access your e-mail just like a regular GMail account. This means that you can set up POP3 or IMAP access from within your preferred e-mail client and you can set up your account to fetch messages from external accounts (the ISP account and the regular GMail account I already had in my case).

I had only one difficulty actually: the choice between POP3 and IMAP. I first picked IMAP but I soon realised this was not the optimal choice if you process many messages and maintain many folders. Because it is a synchronization protocol, it is not optimal for offline usage and is of course slower than an offline storage (which is the case for POP3). POP3 on the other hand is not ideal for multiple clients or multiple locations, but you at least don’t need to be connected to search your mailbox.

Because I fetch mail from my laptop, desktop and mobile, the Google Apps mailbox is configured to keep a copy of each message which is unnecessary and can become rather large. There seems to be no solution though: a setup with the setting “leave a copy on server” while fetching e-mail doesn’t work with Google.

Like you may have noticed, you can also not merge your existing regular GMail account with Google Apps and I wouldn’t recommend deleting it either, since the Apps accounts aren’t fully compatible with all Google services which you currently access with your GMail account.

If you doubt about Google Apps in terms of e-mail, maybe the other applications can convince you: Calendar, Mobile, Contacts,… Possible downtime may be the only drawback, but the Premium account (50 USD per year per user) with a 99.9% uptime guarantee provides an answer.

Cleanup – fase 1: Windows Live Messenger

In an attempt to simplify things, I’ve eliminated my Hotmail address (which I mainly used for Windows Live Messenger) and created a new Live account based on my Gmail address.

Since I have used the Hotmail address for more than 10 years, it’s a bit of an emotional moment. Bear with me.

But, back to business. If I didn’t add you already, feel free to add my new me: sam.hauglustaine(at)gmail.com.

In case you switch Windows Live Messenger accounts often: it’s possible to import and export contacts.

Up next: link my MX records to Gmail and use it as my single inbox.

Measure your workspace

Ever wondered what the ideal heights and distances of your workspace are?

Try out the Ergotron Workspace Planner in inches or in centimeters: just enter your height en adjust your chair, desk or screen as required.

More about optimizing your workspace on Lifehacker.

Upgrade PDT 1.0.3 to 2.0

PHP Development Tools (PDT) for Eclipse makes me feel uncomfortable. I start to doubt myself because I cannot seem to find the intended way to upgrade to a new version.

Eclipse in general is such an well structured IDE: it has so many advanced features to increase your productivity (yes, I just saw a presentation by Mik Kersten about Mylyn). But for some reason, while using PDT 1.0.3, I cannot find a way to upgrade to a new version from within Eclipse. Using the update manager I mean. Isn’t that the most logical place to look?

Also, I wasn’t able to find one decent post about someone explaining how to do this. Because of that, I’m in doubt with myself: am I to stupid to see this or is it really not possible. I cannot imagine the latter is true so…

In the end I just downloaded the PDT 2.0 all-in-one package and unpacked it over my previous installation and everything seems to work fine. Maybe this is the only way to upgrade to a new version? No, never mind, this can’t be true.

What to read in the economic crisis

No one doubts that learning something new is a good way to increase job security, productivity and overall happiness.

But in these tough economic times, it’s one of the mayor things people tend to spend time and money on. At least online:

traffic for online degrees during economic crisis

The graph above shows the traffic boosts some online universities have been getting over the last months (although you may not be able to see it, ashford.edu has also doubled their traffic in the last months with an estimate of about 200.000 visitors).

If an online degree doesn’t sound appealing to you, simply reading a book can bring the same benefits.

Some suggestions:

upgrade your life

pragmatic version control using git

pro javascript techniques

The 4-Hour Workweek

I hope to order and read these this year. (Although I don’t know about the last one yet: it’s not the book I would usually read, but Andy pointed me to its site and the user story is just so funny.)

Be more productive with todo-lists

Some may already do this, whether on paper, in Excel or online, but creating todo-lists is a great way to focus on what you have to do (first) and use your brain for other tasks than remembering your agenda.

Actually, it is no replacement for an agenda. Todo-lists are the small task lists you would also write on paper, like grocery lists. You can keep writing them on paper but since we’re in the digital era, there are great replacements. One of them is the free Ta-da Lists from 37 Signals. Another well-known is Remember The Milk. But even the “famous-all-round-application” Excel does the trick for many.

The key to improve your productivity is to write everything down you need to do. This makes sure you don’t need to remember each single thing and gives you the possibility to handle task by task.

Certainly when working on projects (of any kind), you will have a todo-list for each of them. In development environments a bug-tracker partially takes care of this, but in numerous situations you’ll need to use todo-lists separately.

The basic rule you have to live by in creating successful lists, is this: split up your todo’s in as many small tasks as possible. Then take care of them one by one at the appropriate time. When using one of the mentioned online tools, you can mark them completed and they will disappear from your list (which gives some kind of satisfaction).

And don’t feel awkward if you start to create lists of lists. This is perfectly normal and provides you with a global overview while still having small tasks at the bottom level.

I believe the use of todo-lists is part of the methodology “Getting Things Done” (or GTD). I have not really thoroughly read anything about GTD, but I assume it is a useful practice (for some more than others, like with everything).

Related post on Enso.

PHP development training

Yesterday I gave a PHP enterprise development introduction to the nice people at zap all people about the various tools available to be more productive, produce better results and have more PHP fun.

While I don’t like to call it “enterprise” development because anyone can work this way (In most projects for my clients I am the only developer), enterprises are of course obliged to work in a more structured way.

The topics we discussed were:

  • Local development (with WAMPSERVER, on Windows in this case)
  • Debugging with Xdebug
  • Eclipse IDE (PDT and others)
  • Subversion
  • mod_rewrite
  • Zend Framework (& OO best practices)
  • Unicode (UTF-8)
  • ORM (although we were out of time by then)

There are probably numerous other tools and standards that could improve PHP projects, so I of course don’t state this is the perfect list. In my humble opinion, working with an environment similar to this one could give awesome results (especially in a team, but again, also as a single developer).

Something I didn’t mention was a useful bugtracker. Although, for my own projects, I prefer a simple todo-list. Maybe that’s something for a future session.

Any other suggestions to the list are highly appreciated.

Eyedropper

Ever wondered what color that one pixel on your screen is?

While you also have great FireFox alternatives, Instant Eyedropper lets you select a pixel anywhere on your desktop by magnifying a 5 pixels square underneath your cursor.
Of course it also copies the selected color’s hex value to your clipboard when you release your mouse.

It saves me a lot of time!

Cut back on blogs

I followed about 40 blogs until today. It does not take much to realize that causes me to loose a lot of time, especially on a larger period of time.

Be more productive tip #2: press the delete button on some of the blogs you’re following.

Evaluate if they provide information (as in useful information) to you and clearly delete the ones that aren’t. Also, low volume is not a reason to keep them: they will just draw your attention one way or another.

Cut back to less than 20. That seems reasonable, no?

Some I deleted:

  • Scott Hanselman’s Computer Zen
    Although I like Scott’s writing style a lot, .NET is not my cup of tea anymore.
  • Ibuildings Blog
    They post to little useful information (for me, as a developer).
  • Small Business Trends
    This was a difficult one. While I really enjoyed reading their posts, it did not contain enough information for me.
  • Xaprb
    I just don’t use MySQL in a way Baron blogs about it and realized I probably never will.
  • Lifehacker
    You just need too much time to follow all of their posts! Very nice posts though.
  • Signal vs. Noise
    This was another difficult one. I love their style but like they say themselves: focus!
  • SEOmoz Daily SEO Blog
    Very painful. I also love their style but for various reasons this blog isn’t useful enough for me.
  • Redo The Web
    I will probably never use Symfony anyway.
  • Eric Bergen
    Just had to cut some more. Sorry Eric!
  • Chris Shiflett
    Sorry Chris!

Please note that this represents my opinion about these blogs and the effect on my work. They probably are appropriate to someone else.