Introducing PrintFriendly.com

May 15th, 2009 by Vamsee

Hi folks. I’m sure some of you might be wondering at my rather long absence from blogging here. The reason is partly unavailability of time, and partly was saving this announcement until everything is in reasonable shape. It has been a very interesting 6 months. I was contacted by Taylor Norrish, founder of Govit.com, to work on a simple, nifty tool to clean up web pages for printing. He was frustrated to see how much paper and ink end up getting wasted due to printing this useless/needless junk from every webpage.

Enter PrintFriendly. It’s a simple-to-use tool (but was definitely not so simple to implement, but we’ll come to that later) which cleans up a page of all needless junk like ads, background colors, fancy graphics, etc. to print the most important part, the content. Of course, it’s definitely not the first tool which does this -  PrintFriendly takes a slightly different approach from others - we tried to make the tool dead simple to understand and use, without bogging down the user with too many options. Also, we made it easily installable, by just inserting a few lines of javascript code in your site if you are a publisher, or you could use our wordpress plugin if you are a blogger. Perhaps the most convenient from the user’s perspective - a browser bookmarklet, which you can just drag into your bookmarks folder and you’re good to go. You can even generate and save a PDF copy of the cleaned up content. Do give it a try. I’d love to hear your feedback.

Regarding what went into it, there’s been plenty of effort. Javascript wasn’t my strongest suites when it comes to programming languages, but it’s certainly different now. Writing cross-browser compatible javascript bookmarklet that has so much of functionality baked in, yet tries to make it very easy for the user, did teach me a lot. In the process, I learned the strengths and weaknesses of several javascript libraries (my favorite is YUI, I have to admit - though jQuery comes pretty close), learned a ton about javascript itself, got to know so many cool projects, and in the process understood why javascript will stay at the forefront of web innovation for a long time to come.

Working with so many browsers with something as finicky as DOM behavior, and the differences between their event models, was a relevation. Needless to say, Firefox has been the easiest to work with, and IE the toughest. Chrome and Safari behave pretty much the same way, due to their being powered by the WebKit engine. While development is a joy in Firefox due to the venerable Firebug and Web Developer plugins, it was the toughest to debug on IE7. Interestingly, IE8 has a very good developer mode. Both Safari and Chrome slightly disappoint - though powered by an open-source engine, yet not having really good developer tools to test and debug. YUI’s well-documented, rock-solid libraries helped immensely in smoothing over some of these differences.

All in all, it has been a very challenging yet fun project to develop, and a huge learning opportunity on so many levels. There were ups and downs, when we were able to deploy it as the default print tool on hubpages.com, which was a great experience for us. We were excited when we got invited to interview with YCombinator, but slightly disappointed when we couldn’t make it through the interview. But work continues apace, and as we always thought and PG wished, we will continue developing the tool, as the “world needs something like this”.

We’re still working furiously on bringing out more ways of distributing the tool - I’ll definitely keep you posted about the developments. Meanwhile, go check it out, and tell us what you think. If you want a quick demo, you can test it out on this blog itself - just click on the ‘PrintFriendly’ button at the bottom of this article. You can mail in your feedback on support AT printfriendly DOT com or simply click on the feedback tab on the left side of the page. Thanks! Stay tuned for updates.

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Turn this article into a PDF!

Rails + Merb = <3

December 24th, 2008 by Vamsee

Boy, this cetainly was a surprise. I’ve been watching rather intently the recent uptick in animosity between Merb and Rails. Merb started out great, promising a stripped-down Rails and thread-safety to boot. But in the end, Merb’s claimed thread safety didn’t actually pan out, and it lacked the polish that Rails has when it comes to programmer-friendliness. Plus, with the addition of Rails ‘Metal’, it’s become very easy to chuck action controller altogether for request processing and directly hook up a resource-intensive task.

So, more and more, Rails was eating into Merb territory, and not surprisingly so. It’s the same story with products - “faster X”, “cleaner Y” and “easier Z” are always doubtful propositions in the long run because those X,Y or Z will catch up to you, and your raison d’etre is no longer there. But not just that - I found Merb and Rails are very similar in their structure, and very complementary goals. So it only makes sense that they merge.

What I would think is more interesting, or worth learning as opposed to spending time over Merb is even more bare-bones frameworks like Sinatra. It has a uncanny resemblance to Web.py, and that is a good thing. It’s not always that you start out to write an MVC web app. Recently things have been getting very interesting in the Ruby world, with Github being the center of all this spurt of innovation. Exciting times in Rubyland, as always.

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Turn this article into a PDF!

A Very Special Day

November 29th, 2008 by Vamsee

I was recently invited to give a talk on FOSS usage in the IT Industry by Prof. C N Krishnan and Dr. Srinivasan of NRC-FOSS. Now, this is one organization that I always held in great regard, so it was imperative that I accept their invitation. It was a truly memorable day. For the uninitiated, NRC-FOSS is one of the very first university-level formal organizations promoted by the Ministry of IT, Govt. of India for spreading the FOSS word. True to their mission, they have achieved phenomenal results, and early this year, it was great to see hundreds of students getting introduced to FOSS through their annual event, FossConf.in.

Folks, this is special. Because, of NRC-FOSS’ efforts, FOSS curriculum is offered as 2 electives in all of Tamilnadu engineering colleges. This is being widely copied by colleges across the country now. And today when I went to the seminar, I was astounded by the awareness of FOSS by pretty much everybody from the Profs themselves, to the Dean and even the Vice-Chancellor. Truly, it’s an inspiring effort, and NRC-FOSS is one of the few govt.-sponsored organizations which shows how much change you can bring by getting Industry and the Colleges to be stakeholders in IT education.

I was touched by the fact that many attended inspite of pouring, non-stop rain, it made it all the more worthwhile for me, as I had to brave the rains myself. I did my best to evangelize FOSS and explain what we do as part of our job. I was pleasantly surprised when one of the students followed me outside the auditorium to ask a few more questions. As you can probably see, I’m still aglow from the interaction. There’s nothing more fulfilling than being able to give back and open a few doors for the enthusiastic students.

Well done, and thank you NRC-FOSS. I don’t know how much benefit the students got out of my talk, but it certainly made me feel better about the path I’ve chosen. I’m betting at least some of them will make this country proud.

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Turn this article into a PDF!

If wishes were horses…

November 18th, 2008 by Vamsee

As it happens, I wondered if I could get to work with jQuery in a previous post. Looks like I turned lucky, and I was contacted recently to work on a javascript-heavy project. Initially we started working with jQuery, but due to the nature of the project, where in jQuery needs to live together with several other js frameworks, and Prototype being one of them, we quickly ran into conflicts.

There are several tricks to make sure jQuery doesn’t conflict with other frameworks, but none of them actually worked satisfactorily. We ended up using YUI instead because one of its’ strong points is a non-conflicting namespace. Another stroke of luck - I have been meaning to work with YUI too, but finally got the chance. A pretty tight deadline meant I had to get up to snuff with a lot of JS concepts that I understood only hazily, and it was great fun working with JS again.

JS is a very powerful language, and it’s very true that it’s a language that wears the syntax of Java, but it’s actually a kind of Lisp. It is very much like functional languages in its’ design, where functions are first class objects, of course with closures etc. Plus, YUI makes it even more fun - it has a complete set of controls which help you build very rich UIs. Also, if you’re interested in JS at all, I recommend reading YUI Blog - a veritable gold mine of JS-related info. A very enlightening blog.

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Turn this article into a PDF!