Video: Scrum in 10 Mins

Since most of us are quite familiar with SCRUM (the agile software development methodology), I thought I’ll post a quick video that my manager put up on our sharepoint site for the team. I liked it so much that I wanted to share with my blog readers. You may have already seen this video, but it never hurt to watch it again.

I wonder if we can apply SCRUM in freelance projects?

Freelancers, fire a client today.

I fired a client today. It was difficult. This was my first client I had to let go since years. But I think I took a right decision. Things weren’t so good with us and the project was going beyond what I’ve expected. I did work with the client previously on other projects and I never really enjoyed that experience. I tried hard to look for a win-win situation, bent a lot of rules, but never could find it. It was always loose-win.

Today I feel I have taken the most important step in re-structuring the way I do business and like I said, I feel good about it. I am trying to get rid of some client if:

  • The client doesn’t enjoy working with me but sticks around because either I am skillful or affordable
  • I don’t enjoy working with the client but I am sticking to him because I dont have anything else to do

When it comes to freelancing I think it all comes down to enjoying the work and not stressing yourself out. Stress is ok if you are a new comer to freelancing world. But for an established freelancer, one must always work with clients you enjoy working with.

Time to filter some of my clients 🙂

myView: iPhone will remain favorite among developers


Apple has been really mean to a lot of app developers. You can read about it here, here and here. But even then the bottom line will remain same; App developers will continue to worship iPhone with their lousy spent million dollar apps.

Although there are new app stores coming into the market from Nokia, Microsoft, Android (yeah, this ones quite old. I know), etc. the Apple App Store will remain the develooopa favoritiz. There are some good reasons to make a note of:

  • Apple will make sure iPhone stays consumer favorite. They’ve done it with Mac, iPod and iPhone is already super hot
  • Growth of iPhone will continue to prosper. Soon, Verizon will join the party. I can see things getting really big for iPhone
  • Developing for Nokie’s ovi will be a challenge for developers as there will be n-number of devices from Nokia… supporting each will be difficult
  • Microsoft will try and never find success with WM7. Microsoft has never been good with mobile. Stupid people.
  • Developing for Apple doesn’t require anything. Seriously, no money, no idea, no programming knowledge (ok, little bit), no purchasing costly IDEs)

So the bottom line still remains the same. App store dogs will continue to serve the master.
Hey, I’m one among them 😉

About myView: myViews are totally my point of view of things I see in the industry. Could be a good analysis or just stupidity.

Nitty bitty tip of the week (or month): PortableApps.com

You’ve been carrying your photos, documents, project files on a removable portable drive for sometime now. But have you ever thought about carrying the whole development environment? Image if you could carry PHP, Apache, MySQL, Perl, Java, NetBeans and Python environment in your USB Thumb Drive. So that all you have to do is, plug your USB Drive to any computer and have all the environment ready to use, code, debug, deploy etc.

PortableApps.com give you open source and free tools to take your favorite applications and/or environments in a portable drive (USB thumb, iPod, External HDD). So that if you are stuck at your friends place without your work laptop, you can just stick in this USB and get all the files, environment you every wanted?

I currently carry PHP, Apache, MySql, NetBeans, FileZilla and Subversion in my pocket and find it really easy to just plug it to either my work laptop or my friends laptop if I have to work on something urgent. I am also trying to load Visual Studio Express and MS SQL Express on my USB drive.

Nitty bitty tip of the week (or month): browsershots.org

Well how many times dint it happen that we the designers and/or developers had to test our work on different browsers for cross browser compatibility issues. It could be difficult to do so since there are quite a lot of them in different forms and versions. People still use IE6 and some nut cases have already migrated to IE8. Firefox releases a new version every other day and some grand pas’ still want to use netscape 4. Not to forget Safari. Like I said it could be difficult to test out on all these 50+ browsers.

Come in browsershots.org. A neat online tool that shows you how exactly your site looks in more than 50 web browsers with or without flash, javascript, activx, etc. You can also set the resolution of the screen you’d like to view. The premium account at browsershots.org costs about $30 a month but there is free access to guest if they can wait for 30 mins for processing the shot. The guest access could get litre annoying as you are required to extend the timer every 30 mind if you have multiple shots to view.

All in all a nitty bitty pinky tinky tool to capture those boring shots and cry about fixing the never ending cross browser compatibility issues.

A tip for clients: Use browser shots to annoy your developers on cross browser issues. Designers and developers always loose their minds when it comes to cross browser compatibility.

Update: Screw browsershots.org. Use FireFox and get this addon. You can add a lot of browsers to it. Just follow these steps:

To add more than 50 user agents, download http://techpatterns.com/downloads/firefox/useragentswitcher.xml and select “import”! (without the override option!) by Hellman658

myView: Free open source is not really free. It’s expensive!

Free Open Source is not really Free

Free Open Source is not really Free

So here’s another story that I wanted to share with fellow freelancers and my clients on how expensive so called “free” open source software can get.
This incident occurred a couple of times but only today that I realize how much expensive the open source bang wagon could be. You can call me a tube light for realizing this so late.
I worked on a Joomla 1.0.x (open source and quite an established php cms software) based project a year back for a niche community of houseboaters. We spent weeks configuring the site to make it work the way my client wanted. Adding new components, creating new components, complex customizations, design, SEO, templating, etc. etc. and it all looked good at the end. The client was very pleased and so was I for what I have created out of Joomla.

It all went fine until yesterday when the site got hacked and Google kicked it out of its search results. The traffic went down drastically leaving nothing but few thousand users. Turns out that my client wasn’t really paying attention to the growing security concerns of Joomla nor was he really interested in upgrading the scripts to the latest version. Anyways, I had to act quickly and figure out the best possible way of getting the site back on Google and make the site secure once again.
I spent one whole night researching and trying to figure out the problem.. finally I found the malicious code and removed it. You can read it here.
After getting it back on Google, our challenge was to make it secure. And the only way to do that was to upgrade to the latest version of Joomla and all the components, customizations etc.
The site has grown exponentially over the year and with so much customization, it has become quite difficult to bulk upgrade the site. Now the whole upgrade project costs almost same as getting a new site.
The point here is, although free open source software comes for free, you still need to shell out quite good amount of money to make it work the way you want. Plus, maintenance and regular monitoring is essential. This hidden cost of maintenance and upgrades could hurt your business model. So, make sure to include it.
Freelancers, a tip for you would be to explain the hidden costs to your clients and sign them for a maintenance contract!

About myView: myViews are totally my point of view of things I see in the industry. Could be a good analysis or just stupidity.

Google marked the site as malware

My client reported to me that his Joomla site has been marked as malware by Google and in Firefox and Chrome the users are alerted to avoid visiting the site. At first I assumed someone might have flagged the site as malware just to have fun or out of curiosity. But I still went ahead and did my little detective work and learned that a malicious user might actually have posted something creepy in the forums or in comments. After regorus searching through the database for scripts for hours I couldn’t come up with any. Then I researched a little more about the problem and learned that hackers are finding ways of inserting an iframe content on popular cmses like joomla, wordpress and drupal with ease. So my next step was to download the whole site on my local computer and do full directory scan for keyword “iframe”. Turns out, there where plenty of instances, most of them were pure hidden iframes to some malicious urls.

One at a time I removed them and then uploaded the files back. I then requested a review in Google Webmaster Tools and the next day… voila… the site was back normal.

The lesson I learned was to insist my clients to keep their sites up to date on software upgrades and backup daily.

At the end I felt quite happy to knock this one down.

Optimze SQL Queries for UserControls in Sitecore

sitecore-xpath

Many times we have to deal with the process of getting content from a database, then sorting it and then displaying it to the user. Recently I was given a task of optimizing a user control on the website that pulls upcoming and past events for a particular category. The way this thing was programmed was something like this:

  • Pull all the event data  irrespective of the category. More than 1000 records.
  • Put all events starting from current datetime in upcoming list
  • Put events dated prior to current date in past list
  • Grab the page category name and filter both upcoming and past lists
  • Display events in respective placeholder/view

This logic was spun across the site as the upcoming/past event controls were almost everywhere. It was taking up to 5 seconds to run this whole process for each user, thereby making it really slow when there are 1000s of users. The first thing I did to fix this is analyzed the queries using Sitecore’s built in X-Path query builder. I could clearly see that although grabbing all the events from the parent directory was taking less time than filtering out events per category. But I was certain that when we fit this filtered data into respective user controls things will be faster. Here’s what I did:

  • Modified sitecore query to grab events per field name.
    Using something like (C#): /sitecore/content/calendar events/calendars/meeting events//*[@@templatename = ‘Meeting’ and @Short Title = ‘” + Sitecore.Context.Item.Name + “‘ or @Short Title = ‘” + Sitecore.Context.Item.Name.ToUpper() + “‘]
  • Now that I have events specific to just one category. Only 10 to 20 records. I sorted them based on currentdate to see if its an upcoming or past event.
  • Display events in respective placeholder/view

This logic took less than a second to process the whole thing. Not sure why the previous designers thought about it before. So, the moral of the story is, If data is huge collectively (as in all categories here), pull only what you need. Others may argue.

myView: Open Source hobbies slowly shifting to earnings

I used to see people create open source scripts/softwares and give out for free to the community and rely on donations to make few bucks out of it. Not really a good source of income but wouldn’t hurt if you do something as a hobby and people donate you some cash when they use it. But relying on donations may not fetch you as much as it would if you sell your script for a buck or two.

The way I see it, open source hobbyists are becoming smarter in business models and instead of giving the product for free, they are charging 99 cents to 5 bucks. A silly Magento CAPTCHA module I came across sells at $4.99 and most of the scripts from the vendor are of the same price. The vendor also has a community forum for people to help each other if they fall short of handling support tickets.  With this kind of business model you (vendors or freelancers) are sure to make good profit. iPhone Apps are another good example of how people are being tempted to own an app for just 99 cents. Considering millions of downloads of each app, you will be quick to make a million.

My advice to freelancers building products in free time, sell your product for a buck or two rather than put it free.

About myView: myViews are totally my point of view of things I see in the industry. Could be a good analysis or just stupidity.

It’s all about staying connected.

logmein-ignition-iphoneLogMeIn provides easy access to your computers (with static or dynamic IP) from any other computer using nothing but just a web browser (of course, internet too). I’ve been using LogMeIn’s  free service for a while now and I really enjoy it. Especially when I am at work and need to quickly access my PC either to grab some songs or files, I find this tool really handy. I know there are other services out there but I am so happy with LogMeIn that I never felt a need to try something else.

Recently, LogMeIn came up with an ignition/app for iPhone/iPod that will allow you to do the same as with a computer. It’s currently priced $30 (probably the most expensive app on the AppStore) and its totally worth every penny. If you are a freelancer living a nomad life and own an iPhone or iPod, then I strongly recommend going for this app.

Before I end this quick review, the connection speed when using on WiFi is obviously faster than 3G. But it wont disappoint you. Unless you are living in some deserted area with bad 3G reception. I haven’t had a chance to try it on 2G iPhone.