I recently received a message on FaceBook that quite literally horrified me. It said that I was using Steve McCurry’s picture of the Afghan Girl in my WordPress design and that since it was a copyright violation the least I could do was to acknowledge who the photographer is. So I immediately responded with the background: I had written a very laudatory post about a year back called Haunting Photos on this very blog, complete with references of who took the photos, where it was originally published etc, and provided links to all the original articles.
I explained that what had happened is when I provided a screenshot of Suffusion to WordPress, there was a screenshot of the original “Haunting Photos” post (which had proper crediting) and unfortunately the credit information did not appear on the screenshot. I immediately apologized and within a day got the screenshot for the theme changed on the official WordPress site. Steve understood that this was an honest mistake and appreciated the fact that I had always had the credit information on the post and gotten the image removed from the screenshot almost immediately when notified of the copyright violation. So I could breathe easy.
It has been close to two months since I released Suffusion through WordPress Themes and it has been a great ride. This has been my first open source contribution where I have had public visibility, so naturally I was apprehensive about how it would be received. But curiosity definitely outweighed apprehension and I went ahead with it. A couple of days back the theme completed 5000 downloads – not as fast as I would have liked it too, but definitely a landmark I feel good about.
The germination of the theme was an interesting story in itself. I have never liked using themes designed by others, though there are several really good themes out there. Somehow I don’t feel that my site’s design should be in determined by somebody else, hence I have always tended to render an author’s original creation indiscernible by the time I have it on my blog. I once asked my brother Koke to give his feedback regarding my previous theme and he, more out of respect for my advanced age relative to him, politely picked holes in it instead of savagely ripping it to shreds.
So I went back to the drawing board, cut out the fancy graphics and went about building “GreenLight”. The first cut of the theme was quite elegant and for people who like lightweight themes, it was a godsend. Again, with an unsolicited thumbs up from my sole critic, I decided to take the plunge. I felt that there are several hugely popular themes that offer very little in the way of functionality and I could definitely do better.
I cleaned up my theme, removed the flab wherever I could, and submitted it to WordPress. WP wouldn’t take GreenLight, so I had to change the name to Suffusion. At that point I had planned to supply variants at a later day and the name “Suffusion” was meant to be ironic in the sense that I would have every variant except a “Suffusion of Yellow” (a reference to the I Ching calculator in Douglas Adams’The Long Dark Tea-Time of the Soul. So I waited after submitting. And waited some more. By my recollection it took the theme 3 days to get approved, but there weren’t any major changes required for the approval. It was a pretty straightforward “install and do some basic configurations” theme, with few frills. In the next few days as I saw the number of downloads tapering down, I learnt a few lessons:
People prefer themes on dark colors
Ability to tag keywords to your theme makes a gigantic difference. In other words, your theme might be very light on features, but as long as those features exist on some kind of “theme options”, you have a better opportunity of scoring hits.
With the goal of achieving two objectives at the same time I set about providing an options page. I was very impressed by the number of options that the Atahualpa theme provided, but one thing I noticed on a lot of themes was that the author asked the users to “enter their own CSS”. I found this surprising, since if the user knew CSS wouldn’t he/she be tweaking a lot more than the configuration? But anyway, with a very small base of users and absolutely no pressure to deliver anything, I could focus on the task at hand.
The second release of Suffusion had a much tougher time getting approved, mainly because of my use of PHP short tags. However, once released, the downloads spiked. And so did the feedback. Users made requests for supporting a large number of new features, some of which were already on my development agenda and some others which were not. Most people commented on the configuration options being easy to use, so I was doing something right!
One of the biggest challenges of releasing software is providing support. Software itself might be bug-free and feature-rich, but users might still need help using it. As the theme kept getting downloaded more and more, I found more and more support requests coming in. For my part I have tried to be prompt about providing support by responding to queries. Of course, since queries come from across the world, there is sometimes a lag of 5-6 hours (when I am asleep) in responses. But hopefully people have found my support useful.
A word about the new feature requests. These were very interesting, because it helped me understand the perspective of the users a lot better. Things that I would feel did not matter very much would turn out to be key requirements for users. A lot of users have been very helpful in illustrating what exactly they need and some have even volunteered with snippets of code to help me. All of this has helped me become aware of a lot of things:
Features available in WordPress that I did not know about
The general issues that users of WordPress face while using a theme
Things that make themes popular
Along the way I came across a lot of plugins, I developed some widgets of my own (something I did not think I would do) and so on. I don’t charge for either the theme or for the support and yet I don’t see motivation to be an issue – people are using what I have written and I am quite happy for it.
The ride has been fun so far – let’s see where it takes me from here. For sure I know how I would do things differently for my new theme, but this journey with Open Source has been quite pleasing, to say the least!
29th October 2009: I am disabling comments on this page to discourage support requests here. Please use the Support forum to report issues and ask questions. That will create a better database for all users.
I am happy to announce that my first serious foray into themes has gotten somewhere. The theme used by my blog currently is something that I developed (as mentioned in my last post). I submitted this on the official WordPress site on Friday and it got accepted as the 917th theme on the site after some really minor mods (I wasn’t aware that I had to explicitly GPL it). So there you have it. The theme is available at http://wordpress.org/extend/themes/suffusion. The official page for this theme is on my Aquoid Themes announcements.
Feel free to shoot across bug reports, feature requests and general comments. Bouquets and brickbats will be accepted with equal grace!
After my dalliance with Gallery2 and not being really satisfied with it, I was on the lookout for a better photo management software for my website. Don’t get me wrong – Gallery2 is good, but it felt too heavy for my use, and the Smarty templates were not helping either.
After some hunting, and having considered options like Coppermine and PixelPost, I went with one of my old candidates – Zenphoto. My initial gripe about ZP was that I couldn’t customize it. However, I realized that I was being asinine about it. All I needed to do was rather than run the Dreamhost “One-Click Install”, I needed to manually unzip the files and configure the software by hand. Small fry. I had the software up and running in a matter of minutes.
I found it pretty easy to customize ZP, given that the structure is fairly intuitive. Take a look. I have almost managed to get it to work to my expectations, with a few minor UI tweaks remaining. Additionally I want to investigate using Cooliris’ PicLens for the slideshows because they are hyper-cool. I know I need to use a Media RSS file, but somehow the ones on the web that already have been developed don’t work for my version of ZP. So for the moment I am using the standard JQuery based slideshow, while I will continue to work on an appropriate Media RSS generator and a somewhat better slideshow capability.
This brings me to my next topic – my current WordPress theme. I call it Green Light and I have been using it for a couple of weeks now and I like the way it has shaped up. I am planning to release this on the official WordPress themes site. Before I do so I would like to solicit your feedback regarding things that you believe I should improve here. Comments regarding color schemes, icons, aesthetics, layouts etc are most welcome. Note that this theme doesn’t have options enabled.
Update on 30th July 2009:
I submitted the WordPress theme. Let’s see if it gets accepted. I had to rename the theme, though, because someone already had taken “Green Light”, so my theme is now called “Suffusion”.
If you are old school (which is the school I like to think I belong to) you are bound to have an old fashioned home page that predates your blog. You probably have a site map / link structure and a good enough page rank, which gives you incentive to continue to maintain your home page in addition to your blog. A problem that I faced was regarding linking of my static old pages through my blog. WordPress provides two ways to define and access such static content:
Links: Links could be external or internal. They don’t have any content associated with them within WordPress. The problem with using links is that people normally use them for a “Blogroll”, to show what other blogs they are in the habit of following. Associating pages in your domain (but not in your blog) to your Blogroll seems counterintuitive.
Pages: Pages are within the realm of your blog. You could define your page anyway that you please. At a first glance this option seems to solve the conundrum, but it really doesn’t. Read on.
There seem to be two options to take care of the linking between the static website and the dynamic blog:
Hard-code the existing links into the header / footer / sidebar of your WordPress theme. The downside to this is that if you happen to change your WordPress theme, you have to apply the same kind of hard-coding again.
You could define Pages in WordPress with the contents of your home page. This is potentially a tedious task. Additionally you stand to lose your existing links and you might have to work your way up through search engine results
I then came across a plug-in called Redirection. This plug-in is very feature-rich and the very simplest thing it lets you do is to define a source URL and a target URL to redirect to. Using this feature you can very easily set up all the links in your blog and ensure portability. Here is what you do:
Install the Redirection plug-in.
For every page in your existing site define an empty WordPress page. This is simple enough to do. Depending on which version of WordPress you are using your steps might differ slightly, but with my installation (2.8.1), here is what I do:
Click on Pages –> Add New
Fill in the details for the page The title of the page will be the name associated with the old page, the Permalink is the new link for the page, the Parent is used if you have a nested link structure and the Order is used to specify the position in the sequence of pages.
Now go to the Redirection page under Tools
Add a new Redirection The “Source URL” will have the Permalink that you created earlier. Do remember the “/” at the end of the Source URL. The “Target URL” will have the URL of your original page. Leave the “Match” and “Action” fields as they are.
That’s it – you are done. The next time someone tries to get to http://mynethome.net/blog/old-page/, the link will be forwarded to http://mynethome.net/original-page.php. If your theme, like most half-decent themes, displays Pages in the header, “Old Page” will show up there and you will be able to click on it to go outside your blog. If your theme doesn’t display pages in the header you could always use a widget on the sidebar.
I have always grappled with ways to maintain a library or reading list on my blog. I recently discovered Rob Miller’s rather excellent “Now Reading” plugin for WordPress to meet this exact requirement. The plugin lets you add books that you are currently reading, or plan to read or have already read. In addition you can add ratings and reviews. As a bonus you can also hook up your Amazon Associates ID to every book in your library, so that if somebody reaches Amazon through the book’s listing on your site and purchases the book, you get paid.
Of course, you will need to pretty it up to suit your blog template, but the results outweigh the effort. Rob provides a pretty straightforward way to handle templates, so you don’t risk running into code conflicts.
A somewhat techie article after a long time, prompted no doubt by my travails at my last client! Read on if:
You are in consulting
Your firm uses Microsoft Outlook
Your client uses Microsoft Outlook
You want to connect to two Exchange Server instances at the same time
Of course, you could read on even if none of the above applies to you.
The reasons why #4 is difficult in the above are:
You attach an Exchange Server to a profile
Only one Exchange Server can be attached to a profile
Only one profile can be opened at one point of time in Microsoft Outlook
So only one inbox can be open at one time.
Luckily the solution for this is very simple and straightforward. And you have Hammer of God’s ExtraOutlook to thank for this. Here is what you will do:
Extract the file from the Zip archive and either add the directory to your path or note the directory
Let’s say that your Exchange Servers are attached to different profiles called “My Own Company”, “My First Client”, “My Second Client” and so on. For each client create a batch file (a file with an extension .bat) with the following content ExtraOutlook.exe "C:Program FilesMicrosoft OfficeOffice12OUTLOOK.EXE" /profile "My Own Company"
Replace the part after /profile with the names of the profiles that you have. The above will work if the directory with ExtraOutlook is in your path. If it isn’t, create a batch file in the following manner: <Path to ExtraOutlook>ExtraOutlook.exe "C:Program FilesMicrosoft OfficeOffice12OUTLOOK.EXE" /profile "My Own Company"
You will have one such batch file for each instance that you want to run.
Close all open instances of Outlook
Double click the batch file to launch whichever instance of Outlook you want to connect to.
You could use some variants of the above setup too. E.g. I haven’t created batch files for my default profile. That way if I launch Outlook by itself, I get connected to my company’s Exchange Server.
After my anguished lament in my last post regarding not having enough time to blog, I had an epiphany. I felt deadlines should be worried about, but that shouldn’t really stifle other creative urges.
Why are you worrying about You-Know Who?
You should be worrying about U-No-Poo – the Constipation Sensation that’s gripping the nation!
– Advertisement for Weasley’s Wizarding Wheezes, Harry Potter and the Half-Blood Prince, J. K. Rowling.
I had been wrestling with ideas about releasing my page layout as a WP theme. Then Koke doused my aspirations with cold water, pointing out how this theme was nowhere close to acceptability. So I thought. And then I thought some more. And then I saw this really well crafted WP theme based on Vista called Inanis Glass. And then it hit me – what if I make a theme just like that for the Aqua interface, but with different flavours – Cheetah, Puma, Jaguar, Panther, Tiger and Leopard? And that started Aquoid. In due course of time I hope to have themes for all and sundry, starting with:
Often in life we come up against some interesting situations that demand more than the occasional dose of creativity. I had been going through my courses at IIT-Delhi, grinding through assignments, but really loving the programming. Every semester when I went home in the mid-semester break of a week or the end-semester break of much longer duration, I never touched books (not that I touched much of them in the hostel).
During my breaks I had written some interesting stuff:
Typefast – When I was in my first / second year, there was this game we used to play on dumb-terminals. It was called Typefast, where random words would start falling from the top of the screen to the bottom and you had to keep typing out the whole thing before it reached the bottom. In the days when I was not familiar with the keyboard this game was a big challenge. When we moved to our department’s labs we had much better computers, but unfortunately the Typefast binaries wouldn’t run. Once I got introduced to the curses library I decided to take a stab at writing my own code to do the same thing that Typefast did and I was quite successful.
Minerva – Another piece of software that I had written using curses. This was based on Panini, something that a senior (Amitabh Sinha?) had written. It used my GRE cram lists and randomly asked you to give the synonyms / antonyms of different words.
Scrabble – I had written this in Java for the Bitskreig, the ACES festival in our department. At that time I had written only the player vs. player mode, with dictionary checking built in, but I have, since then added an AI mode into it.
But I guess my biggest project was the yearbook for my batch. I had seen yearbooks for prior graduating classes. Most departments did not have one. The CS department’s graduating classes did have an online yearbook, but it was something put together by a moderator aggregating email.
We had to be better. I mean, we were supposed to be the cream of the nation and was that the best we could come up with?