5 essential tools for a developer

January 16th, 2009

The following list is based on what I use at work.

  1. Quick launcher: Mostly, this is taken care by the Windows Run command. But with Vista, the search option in the Start Menu makes life a lot more easier. For people still stuck with XP (thats me at work), Launchy is the way to go. 
     
  2. An On-desktop todo list: No matter how sophisticated  your task management software is, you would still like a small gadget which sits on your desktop and shows you your tasks in hand. I like and use doomi.
     
  3. Something better than notepad: Apart from your IDE, you would like to have a better scrap container.  Notepad does an excellent job, but not enough. My personal choice is Notepad++, but I have seen people swear by TextPad. I usually use these editors for temporary copy/paste and search & replace. 
     
  4.  An explorer replacement: Windows explorer is a nice file browser. But when it comes to complicated file/folder tasks, it falls short in many departments. I usually end up copying a lot of stuff, at frequent intervals, from my workspace folder to my local server’s exoploded archive. And so I absolutely need a dual pane file browser. Apart from this, filtering files while copying/moving helps a lot as well. My tool of choice - xplorer2
     
  5. Firefox for Firebug: Firebug is totally indispensable. It definitely is the holy grail of web development. For me, this is the sole reason why I still use Firefox at work. And also the main reason why I still find it difficult to move to other browsers. 

Apart from these, I also use an alternate shell called LiteStep at work as well. It gives me four very important features in one single go:

  1. A Quick Launcher via LSXCommand.
  2. A virtual windows manager
  3. Customizable hotkeys
  4. Lots and lots of deskspace and ofcourse much cooler themes. ;) 

admin lists ,

jQuery grows older…

January 15th, 2009

… and celebrates it with a brand new release. :)

jQuery is now 3 years old and is already living the life of a rock star!. Within a small span of time, it has become one of the most used JavaScript library/framework. If web development is your cup of tea, then jQuery is like… well… the tea itself. ;)

The new release (1.3) comes with major performance improvements across many of its core features as well as adding some cool new event based features. Here are some of the highlights:

  • A brand new selector engine, aptly named - Sizzle!
  • Live Events: Apply events to elements even before they are rendered!
  • jQuery Event and HTML Injection Rewrite: SPEED! more SPEED! :D

There are many other small and big enhancements, you can get the complete list here. The good thing is that upgrading should not cause any major issues. The new jQuery is already available on Google’s edge servers @ http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js

I am off to check whether my plugin works fine with this release or not. ;)

admin scripts

Touch screen coolness*

January 11th, 2009

I was looking around at all the CES goodness* when I came across this new Microsoft Surface like touch enabled interface. There is so much awesomeness* in this thing that I will let this video do all the talking:

This new device comes from a company called PQLabs and the basic (read cheapest)  version is a 30 inch LCD which costs around 2400 USD. Which means if I think about getting this, I need to fork out more than a hundred thousand rupees! Still way cheaper than the M$ surface table.

The future for touch screen devices looks bright indeed. My only concern with playing Warcraft III (or any application, for that matter) with my hands is that it will tire me down a lot quicker than the standard keyboard/mouse combo. I guess these things will find a place somewhere.

* - ignore the overuse of -ness words. :)

admin cool tools , , , ,

Let clerk dogs find you a movie tonight

January 10th, 2009

How many times have you said to a friend that if you liked this movie, then you will love that movie? I for sure have recommended movies to my friends in such a way. Actually, it always is a chain reaction. I don’t know how would I ever come across movies like Shawshank Redemption, Seven Samurai, etc etc unless somebody thought that I would probably like them. The keyword here is “recommendation”.

We have already seen how successful recommendations can be. Then I came across this new site called clerkdogs. Its a movie/tv show recommendation site. So, if you type in the name of a movie that you like, it will find you other movies which people think you would like.

To test it out I did some random testing. The results are as following:

* Clerkdogs is currently in beta and they say only crime and suspense movies will be matched the best *

So how did it fare? The results are pretty darn good. I was looking for a TV Series which is similar/as good as Prison Break. It gave me OzOz is rated 9.3 at IMDB, which is a really high score. The recent blockbuster, Slumdog Millionaire gave me very accurate results as well. Monsoon Wedding and Salaam Bombay are movies that you may enjoy if you like Slumdog. I have no clue about how Millions fit into the picture though. Similary, Saw was matched prefectly as well. I searched a bit more and found a TV series called Twin Peaks (9.5/10 on IMDB) when I search for Lost.

The good thing about this site is that it is powered by humans and not some automated algorithm running in the background. Stuart Skorman, Founder, CEO and former video store clerk says this on the site’s about page:

…our database is made up of literally hundreds of thousands of individual recommendations from dozens of former video store clerks.  Our former clerks, who understand why customers like movies, have analyzed all the characteristics of movies to create a database that is much richer and deeper than the collaborative filtering engines.  Our system was designed to allow customers to interact with our database and to take control of their movie selection experience…
Overall I loved the site. It gave me a whole lot more to look forward to. One feature, which I think is a bit far fetched, would be to see the site extend to support Bollywood movies as well. ;)

admin new cool website , ,

Me like checklists, Me like checkvist

January 10th, 2009

We all have checklists and I know a few who swear by them.

No matter how good(or bad?) my memory is, somehow I always forget to pack those soap strips before I leave town. 

Today, I came across this new service at checkvist.com. It lets you create, edit and maintain checklists, not to mention share them as well. I signed up and was immediately blown away by its totally innovative yet simplistic approach to maintaing checklists. It has a basic tree based checklist system, but the killer feature is how easy it is to create and edit your checklist - all with the help of just your keyboard! They do allow standard mouse based - click and edit - click and save stuff, but the keyboard navigation is amazing.

Keyboards get work done faster than a mouse - That is a well established fact. And this service makes creating checklists as simple as editing a document. I tried it out by creating my going-out-of-town checklist and this is what I came up with in 5 minutes. Click on the image to see it in its full size.

checkvist.com checklist

It has all the features that you would expect from such a service. Sharing by invitation, import and export checklist to and from various formats, yada yada.

I will try this out at work once and if it satisfies all my requirements, I am sure this will boost productivity as well. Go ahead and try it out at www.checkvist.com.

admin new cool website

Google Chrome turns the heat on!

January 10th, 2009

Google has started working on the next version of its browser - Chrome. Rather, they have already updated the latest dev build with many features that had kept me away from Chrome all this while.

Personally, I think Chrome is a superior browser to any other offering in the market - even better than my all time favorite Opera. The browser is incredibly smooth to use, the UI is extremely polished and innovative and not to mention the speed it works at.

But the lack of basic stuff like auto-scroll, bookmark synchronization, auto-complete, etc made me stick to Opera/Firefox. The latest build however has made me “make the move”. Here are some of the highlights:

  1. Form Autocomplete. Google Chrome remembers what you’ve typed into fields on web pages.
  2. Full-page zoom. Previously, page zoom (Ctrl++ or Ctrl+-) increased or decreased only the text on a page. Zoom now scales everything on the page together, so pages look correct at different zoom levels.
  3. Autoscroll. Many users have asked for this and (thanks to our WebKit update), we now offer autoscrolling. Middle-click (click the mousewheel on most mice) on a page to turn on autoscroll, then move the mouse to scroll the page in any direction.
  4. Docking dragged tabs. When you drag a tab to certain positions on the monitor, a docking icon will appear.  Release the mouse over the docking icon to have the tab snap to the docking position instead of being dropped at the same size as the original window.
  5. Import bookmarks from Google Bookmarks. The [Wrench menu] > Import bookmarks & settings… option now has a Google Toolbar option to import Google Bookmarks.
  6. Use different browser profiles. You can start a new browser window that uses a different profile (different bookmarks, history, cookies, etc.). Use [Wrench menu] > New window in profile.
  7. Experimental user script support (similar to Greasemonkey). You can add a –enable-user-scripts flag to your Google Chrome shortcut to enable user scripts.

Now thats a lot! and to add to that, the points mentioned above are not all of them! Read teh complete changelist here.

If you are wondering how to update your current chrome build to the latest dev build. Checkout this cool little tool - chrome channel chooser. Switch the channel and then use Chrome’s auto-update feature.

 

Get the latest dev builds

Get the latest dev builds

 

 

Now lets see how long can this new build keep me to Chrome. I am sure I will start missing my extensions. ;)

admin software ,

jQuery track changes plugin updated

December 31st, 2008

Just fixed a small issue with the plugin which was causing it to fail on Internet Explorer. Thanks to all of you who pointed that out. ;)
Download and Demo on the jQuery page.

admin scripts

Learning the Web

August 28th, 2008

What would you do, if you are asked to teach someone Web Development? JavaScript, HTML and all. I recently faced such a situation and thought it would be nice to share what I came up with.

  1. Start with w3schools
    • HTML -> DOM -> CSS -> JavaScript

    There is no better place to begin than w3schools. I used it myself, and I still go there every now and then to reference something or the other. The tutorials are designed for the absolute beginners and explain every section in just the right way. It’s the first place I recommend anybody to start with who wants to learn about web development. Considering that web development in today’s world is not as vanilla as it used to be - I would begin with the following on w3schools:

    HTML is again the most obvious. Knowing the DOM is next as you will probably be using it the most in JavaScript. CSS is critical to know because most web 2.0/AJAX stuff requires you to manipulate CSS via JavaScript.

    One thing to remember here is not to do any assignments other than the ones present on w3schools. Even looking at any assignments beforehand will make you think about them and you may end up skipping some topics, which can come back to haunt you later. Trust me on this one.

  2. Create a website

    Yeah. There is no better way to learn than to start experiencing. So, I would recommend you make a simple site. Nothing fancy. A simple, 2 column  website with links on the left and content on the right - and do this using only CSS and HTML. No JavaScript should be used here and don’t use tables for layouts. :)

  3. Mod the website with JavaScript

    Make the links on the left fade in and fade out. This will enable you understand CSS manipulation and JavaScript timeout features. From this point onwards everything in the site should be added via JavaScript. Creating almost every single HTML element in the page using JavaScript will enable a good hold on DOM parsing, attaching events, etc.

  4. Get the Holy Grail

    Time has come to get the holy grail of web development. Install Mozilla Firefox followed by Firebug. Open up the website you just created and use Firebug’s inspect tool to inspect your HTML code. Put a breakpoint in your JavaScript code and see how the DOM looks. Use watch expression to check out how JavaScript behaves.Firebug is probably the best way to understand what you learnt in Step 1, 2 and 3. It will provide you with details of how the DOM looks like, how JavaScript behaves and what objects contain which attributes and properties.

  5. Back to w3schools

    Go back and learn the AJAX tutorial. Understand how it works across browsers. Use Firebug to see how request are made in the background and how the response comes back. Here you may slow down and also look at how HTTP headers look like. If you want to indulge deeper, you may as well read more about them.

  6. Convert your website into an AJAX powerhouse

    Whatever you designed in step 3, should now be AJAX-ified. Convert all link clicks to load content on the right pane using AJAX. No page refreshes and show a proper loading icon when an AJAX request is made.

  7. JSON

    This may not be an absolute requirement, but I would say you learn it right now. JSON is the preferred response type in most AJAX calls, so understanding how it looks and behaves is extremely important from a long term perspective.Convert your AJAX responses from Step 6 to return JSON objects. Parse them and show your content. modify your content to have multiple headings and paragraphs.

  8. More Assignments
    • Create a fluid three column layout with a header and footer - which works across all browsers.
    • Put some links in the left panel, the right panel and the footer.
    • Create navigation controls in the left panel using unordered lists and CSS.
    • Use JavaScript Timeouts and CSS to animate the navigation panel.
    • Make all clicks on the navigation panel load complex data through AJAX and JSON.
    • A search box at the top of the navigation panel should filter the links in the panel, as you type.
    • Clicking any links in the footer should open a popup inside the same page - positioned dead center of the page. Turn the background gray. - ala Lightbox type effect. No popup windows.
    • Clicking any link on the right panel should open actual popup windows.
    • Try loading content from a different domain using AJAX calls (Cross Domain Issues and Scripting).

    This is the time I would really start doing some hardcore coding. I usually ask people to extend on what they have already done.

  9. Pick up a JavaScript library

    The last thing is to pick up a JavaScript library, if you are allowed to ;). In my case the requirement was of jQuery (thankfully). Check it out and then redo all the previous steps using the Javascript library/framework.

As of now, I don’t know how effective this would be to get somebody started with. I will keep updating this post, each time I think that I shouldn’t have done that. ;)

admin know-how

Simple twist to the unobtrusive anti-spam technique

August 25th, 2008

Update: As Alex mentioned in the comments, the following approach that I have mentioned is actually obtrusive. :)

I was going through this excellent blog post explaining a simple way to avoid bot based spamming.

Well the idea is relatively simple: Add CSS-hidden fields that a user won’t see, but a spam-bot will fill. Then using php check if they were filled, and if they were: block the spammer!

The idea by itself is good, but then I thought that it won’t be very hard for bots to filter out such hidden fields. As a matter of fact, input fields which are hidden or even those which have negative margins are not all that difficult to detect and skip.

Then I thought, instead of hiding the field, it will be difficult for a bot to skip/filter a field which sounds very authentic, is actually visible, but should validate to not hold a value? A user would read the label and understand that he/she is not supposed to enter anything in this field, but a bot would go ahead and fill out the field.

So a basic form would look something like this:

Name: Email Id: Please do not enter anything in this field:

admin scripts , , ,

Tools for the developer on steroids: Super fast launchers

August 18th, 2008
This post is for Windows users only.

I absolutely love those auto-completing, always-remembering launcher applications. I have been using them for ages now. It has also made its way into Vista’s start menu, but there is so much more that a launcher should do.

The first launcher application that I used, and still do is LSXCommand. Its a module for the alternative windows shell called LiteStep. I will not write about it here because it requires you to ditch your windows look and feel and switch to LiteStep. So, when I did not have that option, I started my search for an alternative windows only application which is fast, simple, takes really less real estate and well - does the job.

I came across Launchy, used it for quite some time, and its great. It even made me an alt+space junkie. Launchy indexes the start menu, or any other folder I want, with whatever extensions I want as well.

Launchy

It looks amazing, has a lot of skins available and we have the option to add custom commands. After using it for a while, I realized that Start Menu indexing is something that I hardy used. It kinda makes Launchy eat more resources while most of my work was around my custom defined commands.

As always when I started getting bored of Launchy, I started my search again and came across SlickRun. An even more lightweight launcher which is a lot similar to LSXCommand.

SlickRun

It does everything that other launchers do, but does not index any folders - which is precisely what I was looking for. Custom commands can be added as MagicWords, which can take parameters for dynamic content as well. I configured it to my alt+space hot key, added all my magic words and have never since looked for another launcher.

So, if you prefer the keyboard over the mouse, and are constantly using the Vista Start Menu or the good old Windows Run option, give one of these launchers a shot. You will absolutely love it! :)
Next up: Organize your files with a better file manager.

admin software , , ,