Feb 21

Following my recent thoughts about 80:20 rule I was looking for some online productivity tips and found that there are actually many clever companies online. At this presentation Juan from MindValley shares his interesting 4 step execution process:

  • 1st find leverage points - what are 5, 6 most important things
  • focus on these important leverage points
  • simplify as much as you can (KISS? :)
  • take massive action

Last week I started to work on semestr.cz, a portal for university students to share papers online and I split the features to four sets - user registration, user account, document feeds and relationships. These are four main important things. How much time I spent developing it? Document feeds - two days, user account - one day. User registration and user relationships needs to be developed. If this will work out, it will be my fastest developed portal in history. Though it took 10 days to set-up regioninfo.eu. This one will be done in one week of working time. I find it amazing what you can do with today’s technology if you choose right approach.

All the web development stuff is less and less about development and more and more about design and management.

Feb 16

There is a huge difference between IT person a developer and a business person a developer. A developer (IT educated, computer science etc…) lives in models, math, algorithms, develops and writes a lot of “perfect” code, right to the specification! He uses first, second, third framework on top of one another. He does things because they are supposed to be done that way…

A business person, a developer educated on a business school has completely different approach, he is lazy to write a lot of code. He uses just one framework. He plans, he analyses and than he writes 80% less of the code than computer science person. Instead of doing things “the supposed way” he challenges dogmas and finds different approach.

I know some IT people, they talk bullshit. I can not stand some of them. You meet such a geek and he will tell you how exciting that piece of code is. I know some business people, they are right to the core. How to do it the most efficient and easiest way, how to do less. Well it saves money doesn’t it? They will tell you how exiting is that they manage to set-up e-shop in a few days, how exciting is the outcome and how much they saved that way.

What is the fundamental difference? Business people even though they may not know the Pareto principle they employ it and behave by it naturally. That is that 20% of causes results in 80% of effects roughly.  So business educated developers focus on those 20% of functionality to develop which provides the highest 80% value. Computer science educated developers focus on 100% and they waste 80% of their attention to unimportant bullshit providing just 20% of value.

The drawback? You never get 100% from a business educated developer. The benefit? You get what will fulfill most of your needs, costs less and it is highly manageable in the future.

Did you get it? Big advice to all computer science developers: Your work will suck unless you focus on those 20% providing 80% of outcome. And advice for you? Why do you need 100% anyway. I am sure you will be much better off with a business educated web developer than with a computer science developer, because they can provide that cumulative magic.

Now when I told you golden rule of business educated developers, I am going to kill you :).

I am happy business minded web developer and if you need agile web development you can still hire me.

Jan 04

Last few weeks I am doing a lot of programming and I am getting sick of constantly writing array(…) to make an array. This is the data type which I use probably the most. From database result sets to function parameters. And you have to write this array word every time again and again. Boring and waste of time and keystrokes.

What PHP needs? It needs simple way to define an array - [like, this, way]. Simple squared brackets should be enough. It is done similarly in Ruby and despite I stopped using it, this is the think I really miss.

Sep 08

It was made in 2001. Now is 2008 but still it is in use by many. Around 30% of all the people visiting my sites use IE6. It is crappy, it lacks proper support for web site standards and it is hard to make all the latest web sites compatible with this old crappy browser. From now on, I end up support for Internet Explorer 6. This means that all the new web sites developed, and existing Clever Leap services updated, will no longer be tested for Internet Explorer 6. This will enable us to keep focused on quality of the service rather than solving compatibility issues for 7 years old browser used by people who slept.

The time has come and it is good to update all that old browsers. I understand however that it is hard to get Internet Explorer 7 on old machines running windows 98. But there are even better and more secure alternatives like Firefox and Opera which run on windows 98. Opera is excellent browser for the old machine and still supports latest web standards. So there is no excuse why not to upgrade to the latest browser or different one.

Good bye Internet Explorer 6, you were pain in the ass for about two years. Now we are going to develop even better web sites and application worth the year 2008.

Aug 15

Here is something I learned recently from the web site of dConstruct - user experience design conference. Their web site has one example of how not to design for user experience, especially if your users are keen on using bookmarks and services alike - which most people do trust me.

I was just thinking that I need to go out between people again, someday, somewhere. Attending conference is great to meet like minded people and learn something new at the same time. As I was running through my Del.icio.us bookmarks I end up at dConstruct page and “Sold Out” popped just into my mind before I realized that the page is for 2007. What? I wanted to go. Ok something has to be wrong. Off course it was for 2007 and my bookmark 2007.dconstruct.org was wrong. I rewritten the URL for 2008… and luckily found what I was looking for. It took me quite a while to realize that the page was out of date.

Here is the hassle. Dconstruct web site always moves you to sub-domain and if you bookmark such a page, your bookmark is referring to old conference a year later. I consider this broken. I think that you should promote your actual content at your top domain. This way if people bookmark your pages, they get link to your main domain and always actual content. Even if they return one year later. Move the archive of your old content to sub-domains, that’s fine, but keep the actual content at the main domain.

By letting people bookmark your top domain you will always serve them up to date landing page. It will not only avoid confusion but you will also create better user experience.

May 11

I came across interesting article discussing 7 tips for designing and maintaining a large site. When it comes to growing web site, maintainability is probably the biggest issue. That’s why it is good to keep straight focus on it right from the beginning. Article nicely discusses various techniques from the development point of view. There are however few interesting facts I would like to share from the web site management point of view.

From this side it is very important to have the right content management system. CMS should allow you to easily add new pages, new content and update it when needed. CMS should handle various types of content e.g. texts, pictures, products etc. But most important is extendibility. It should be easy to add new type of content onto your site. Ability of CMS to manage site’s content should not be limited to type of the content you already have. It should be easy to add another format if needed. (e.g. you want to add new kind of product with completely different features as those you already have). “typevista” for example uses plug-and-play content models, system which makes it is easy to create new model if needed.

Second, design for scalability is important. Even if you have good CMS, pay attention to right information architecture and site structure. It is crucial to know where new pages will go, how they will interact and relate to other pages and what is the role of content on these pages.

There are many more things on my mind, but I will leave them for now so you don’t get overwhelmed. If you feel a bit technician read the above mentioned article ;).

Apr 08

Whatever web based application you will be working with you will almost certainly need to generate image thumbnails on-the-fly. We were dealing with this issue when we start to develop our own content management system few years ago. Users willing to publish pictures on the web will almost always upload their pictures from digital camera. Those are however high-resolution photos not very suitable for web. You need to scale them down to appropriate size. But how?

There are two ways to do it. One is to automatically scale picture when user uploads it or upload original picture and scale it down when the picture is displayed. I like the last option, because it gives you freedom of use. You can link to original high-resolution version or you can scale it down to whatever size you like.

Creating thumbnail is easy as creating link to an image e.g. /thumb/images/photo.jpg?w=150&h=150 . Yes you can specify width and height of image directly in the link and script will give you picture of appropriate size.

I was working with this approach over years in PHP. Now I created similar thumbnail generator in Ruby on Rails.

Download RoR thumbnail generator here.

The Ruby on Rails version works as good as PHP one in our CMS. It supports JPG, PNG and GIF pictures. It is just single controller with easy three steps install. It has cache build in so all the scaled down pictures are saved for later use which saves future processing time and promptly delivers resized picture.

If you have online gallery, picture library or any other place where you need to scale down pictures feel free to use RoR thumbnail generator.

I will be also happy to hear about any suggestions or improvements.