30 March 2007

Getting people to switch to Firefox

I have been doing my share of the ‘good work’ by introducing people to Firefox, and the world of extensions, themes and more convenient browsing. It’s not ‘as’ exciting as getting people to switch to an Apple :P, but it feels good to see a fellow person give up Internet Explorer forever, and you hope that this is another chain of switches you startedYou know how these things with non–savvy people go. You tell one, and they find it really cool. Then next day it becomes a small talk topic (sometimes to just show them as being more cool than the others :P).

I looked in at MarketShare today at the browser trends, and Firefox’s share has grown to 14% from February last year. This is really good considering how many peopleBy people, throughout this post, I mean non techies. there are. Also, Firefox is a change–over browser, not a default one. Taking all those into consideration, 14% is a very positive number. Firefox 3.0 is not far away either, with features filled up to the brim (always a darling with new adopters). Mozilla and extension–ers make our job easier everyday! :)

Browser share for February 2007

Another reason why the share of IE is high is because mods like Avant and Maxthon build on the shell, and add a lot of features that Firefox and Opera have. This removes the incentive of ‘new’ features to make the switch. I wish there was a way to see what share of IE users actually use the bare naked IE. That would sure wipe the smile off a lot Microsoft faces.

My most recent experience of getting someone to switch was a few weeks back. Though it was initially a resounding ‘No!’ to start with, the mention of the words ‘better security’ and 'no spyware’ opened a door. I then went ahead to show little features like search suggests, search by name (I skipped the part that it exists in IE as well) and finally threw in the kahuna of extensions and themes. It sold rather well :P This was my second or third time handling a non–techie actually, and I learnt a few things on how to make the 'sale'.

I guess IE really has become extremely familiar to people. But atleast we’ve progressed away from calling IE the Internet. But Firefox’s clean and simple initial interface (compared to IE’s row full of buttons) does land in a good impression. IE sits well also because people don’t want to go to the hassle of having more than one application to do the same thing. They use the ‘why use Photoshop when we have Paint’ logic. It takes someone to ‘show’ them that Firefox is better. I don’t think there are many people who switch all by themselves. Also, once switched, they aren’t many who go looking for features. They use the brute force ways from IE on the new browser, until you show them that there is a better way to do it.

I know from my statistics that majority of my viewers use Firefox (even Apple viewers). That may have something to do with the fact that IE refuses to load up my search box, and stops midway. In the past I used to worry about that, and try to fix my templates to at least render (somehow) in IE. I guess it would increase my readership, but I doubt it’ll be a significant rise. My feed readership is 3 times my daily page views. So as long as the feed reader renders properly in IE, my posts will reach everyone :)

There is of course not a shadow of a doubt that IE can never be better than Firefox, or any other alternative browser. The underlying code, and it being closed to any kind of extensibility (easily codeable by people) will see to that. That is also the reason Opera is sitting at less than 1%. Closed doesn’t work that well, especially if you’re closed to suggestions as well.


26 March 2007

Twittering away!

If you have looked around my blog lately, you’d have noticed the ‘Aditya is…’ widget that I added to the right. I recently took it out, because I gave the updates a new purpose, but no points for guessing that it was powered by the latest fad on the Internet and what is being termed as ‘micro–blogging’ – Twitter. Twitter tries to answer the basic question … or actually, let’s ‘you’ answer the basic question, ‘What are you doing right now?’. But of course, used creatively, Twitter can be an amazing service which is accessible from something you carry around all the time. Your cell phone!

Staying connected

This is probably the best way to stay connected with a lot of people at the same time since mobile phones and IM. A single update to your Twitter, will fire off multiple messages to all those who follow you (on Twitter) with that update. I admit to not using Twitter to it’s ultimate potential. But that’s only because I cannot use it with my cell phone since the number to send a text message to is an international number for me (Twitter is based in UK). Regardless of this, I have tried to get my phone activated, but it hasn’t workedA mail to Twitter support also has reached to no particular end. This is something bad, since customer support should be the best thing about a site which has so many users..

But I have seen people updating from their phones, and I can imagine what a convenience it would be. The concept of constantly updating statuses was first introduced (to me) by Facebook. It has a nice module at the top right of the home page, which you can use to change your status. It gets reflected on all your friends’ mini–feeds. People have been using Twitter to keep friends and family updated on their latest trips and travels. The top bloggers (with the likes of names ending with Arrington and Malik on the bandwagon) used Twitter to keep their readers constantly updated throughout their run of SXSW '07.

Twitter isn’t a new thing however. There have been others like it, like Dodgeball. But for some reason, Twitter has really caught on like a wildfire on the Internet. With widgets and extensions getting into the play as well, staying connected was never so simple (and addictive!) :)

Bye bye to privacy

One thing that Twitter doesn’t have an option for is to remove people from your follower’s list. This can give a whole new meaning to the word ‘stalking’. That’s why, and this applies mostly to non–adults using this service, one should be careful when posting updates, and should use discretion while revealing current location, or what they’re doing. We’ve had enough of MySpace news about all this.

So, while this is an amazing service, it still has flaws. The lack of good customer support is one of them. Now, I want to see how far this actually goes to begin bringing people closer together, and trying to answer the basic question that you try to answer about your friends and family, ‘What are you doing right now?'!

Add me to your friends, and see what I’m upto the whole day :P
Happy twittering :)

Further

RIP Twitter (2007-2007)
Why is Twitter so slow
The post–its of blogging
Three innovative ways to use Twitter


23 March 2007

Time for new friends to reveal themselves!

Shutdown day!

Update: I have opened up the comments for the next 24 hours, and cleared away the moderation. Which means your comments will show up without any intervention from me as soon as you post them. I hope to not get spammed ;) This is because I am going to be taking part in Shutdown Day (24 March), so my computer will be off for the next 24 hoursYou will get to read my experience next week when I return!. The first day of de–lurking hasn’t been that satisfying … let’s see if tomorrow does the trick? Cheers!


From last year, when my blog surfaced, to today … my readership has gone from 18 to 270. Now that’s a freakin’ huge jump! :) I’m very thankful to all the people who come everyday to read whatever I have to babble about, but there are many more who like to stick around in their feed readers, quietly read a new post, and not say anything about it. I know some posts are too random to comment on, but surely you can leave something on some? ;)

Who are you?

So now, I’m going to take some time off to let you, my prized readers, show yourself. You might not have joined in the discussion about anything, but that doesn’t mean I don’t want to know who you are :) Through hacks, opinions, reviews, suggestions and what not, there are so many different people who come here, and for many more reasons …

The term given to this process is de-lurking. ‘Lurkers’ are those who come around for a visit, but don’t leave any comments because it’s already been said, or they don’t have anything to add. Now, I know that it’s not the celebrated ‘de–lurking’ dayI plan to make this a regular feature of the blog however, and from next time, it’ll be on the designated day!, but let’s do the opposite of that this time around … It’s ‘de–lurking’ time! :D

It could be a simple “Hi”, or an elaborate “Hello”! It could be in English, or any language you’re comfortable with. It doesn’t really matter. I just want to get a good idea of who the people are who actually take time out to read what I write. I’ll try and not add my two cents in the comments and break the flow. Leave your name, a brief introduction about yourself, and how you bumped in here––apart from anything else you might want to say––in your comment. Since there are about 270 subscribers, I hope to see atleast 70–75% of that number of comments. Let’s see how many people come out of their closets by coming Monday. I promise to release another hack if you manage to hit those numbers!

So! Show yourself! :) Let’s see who you all really are!


22 March 2007

Not another library!

Today I bumped into FrogJS. It’s another photo gallery ‘unobtrusive Javascript’ library, which can be used by people to make a Javascript driven animated photo gallery on their pages. My question is simple. Do we really need another one?

The whole list

There are enough libraries out in the field today. Prototype being the more famous and widely used one. Then there are the other players like mootools, SimpleJS and jQuery. These extend Javascript as a language. Individual libraries which add effects and other bling bling to your pages include moo.fx, which uses mootools as it’s base and script.aculo.us with Prototype for it’s base. Then for picture management there is the very famous Lightbox JS with Prototype as it’s base, and script.aculo.us for effects, and now FrogJS using the same. Phew! See what I mean?

It is not a question of which one is better, or faster, or smaller, or easier. It’s based on what ‘use’ you have of a library. There are many (and I emphasize) things in Prototype that go completely unused by people, but they still prefer to use it because it has a ‘few’ functions that help them get the job done faster. It makes more sense to just copy them out, or write your own (like I do). Otherwise, take time to analyse and learn what each library has to offer, and then use them as per your requirement. Don’t go for one because everyone is using it. Pretty much all the libraries offer the same things. ‘mootools’ actually makes things faster because it’s so small, so many people should look at that if they don’t have too many hardcore OOP uses in their scripts. If you do, Prototype is probably the way to go since it has some pretty amazing classes and objects handling.

I went skipping on from Particletree to a nice extension of Prototype, which contains even more teensy weensy functions which we all want and use, albeit with longer drawn out codes. For example, functions to work with cookies and such. It extends an already jam–packed and very useful library! :)

SimpleJS seems like a good deal for very basic use, with small file sizes and independence from any other framework. But it doesn’t offer anything too big, which someone working with a library might be looking for. jQuery on the other hand seems very interesting, with small (compressed) file size and seemingly lot of uses. I’m definitely going to look more into that one. I want to move away from Prototype, but my ‘Search Suggest’ requires script.aculo.us, which uses Prototype. Together, they add about 60–70 Kbs to every page. There is not much difference in time due to caching, but it’s still a heavy deal.

Pick and choose

There seems to be no real perfect choice, or quite a balanced on either. I think libraries can truly be a great addition to your arsenal, but only if you know how to make full use of them. That can always take time, and you need to stick with one to get to know it properly. I’ve used Prototype ever since it came out, in some form or the other, and I still don’t know all it’s uses. So you can imagine how big it can be. I might as well stick to it, because a few of the things I use on my blog need it anyway, and it’s filled to the brim with all the functions one will ever need.

What do you think about the libraries out there? And which do you think is better than the rest?


20 March 2007

Apollo: Java re-invented #

I had a few other posts waiting to be posted, but this news just deserves priority! When I first heard of Apollo, I wasn’t so excited as a lot of people have been. I was more of the thought that since Adobe just likes to do things their way, no matter what, Apollo will be nothing but a fancier version of Java. I’m glad to say, that reading everything post release, I was right … for the most part.

The similarities end at the ‘cross–OS runtime’, because Apollo aims to become what Java couldn’t. Apollo is going to take what we already know, leverage it to the OS, and hand the controls back into our hands. What this simply means is that, everything you could do with the Internet, is now available for you to do with your own computer. I had written about seamless integration of offline and online applications. Keeping that in mind, this seems like just the thing I was looking for! :)

Why the Java analogy?

For those who don’t know, Sun Microsystems developed Java as a higher level language, which aimed to be completely object–oriented (it does this freakin’ well!), cross–platform and relatively easier to work with compared with lower level C++/C and the likes. But there was a problem. Working with Java meant learning a whole new language. Those familiar, will know that Java’s (only?) failing is its monstrous syntax linessystem.out.write just to write ‘Hi’ on the screen? Don’t get me started on higher functions!. I’m no expert though, and while it is the most popular programming language today, I think it can be seriously improved upon.

This is where Apollo will succeed, since it works by using existing web languages and technologiesHTML, Javascript, CSS, Flex, AJAX and ActionScript (non–web). PHP isn’t supported, and no plans have been revealed yet to do so. I guess one will have to use AS to bridge that gap should the need arise. I don’t know about Flex, so I guess that could be useful too!, and let’s you write applications using them. Web languages have been under heavy use since the Web 2.0 boom, and there are ‘many’ people who know it and use it in everyday life, with more and more beginning to join in the fray. If nothing more, a simple HTML interface to a Javascript backend, with Apollo’s stream controls should be able to help in developing simple and task specific applications. I can sense a Textmate for windows :)

Restricted freedom

This will, however, not be for newbies, surely. You’ll need to be adept at using existing technologies to be able to get your hands dirty with Apollo. You’ll have to be familiar with the basics of a how compilers and memory based languages work. But I think Adobe would have life much easier for everyone. So much so, that the first application that comes to mind is a ‘desktop dashboard’ of your Blogger. It could be synchronised whenever you’d go online, but for the times you were offline, changes could be saved locally, and then using the Blogger ATOM API, upload all the changes to your account. This might be one of the most uncreative uses of this however … :P So you can imagine the possibilities.

So, while Apollo looks and feels amazing, a true analysis can only come when people start to use it and get a feel for it themselves. But mark my words. This is going to be big. So big that next generation applications will be made off Apollo type frameworks. And yes, Apollo is surely going to generate some spinoffs and libraries. But ultimately, if application development becomes easier, why not? :)

Further Reading

Introducing Apollo
Apollo Developer FAQ
Apollo just launched, so go build something


19 March 2007

Search your blog from Firefox

A hack to start this lovely week off! Well, not a hack really. You can call this a Native Blog Search for Firefox, without the AJAX :P Steve’s post about adding microformats in your blog gave me the idea (a little late though) about ways in which we can integrate our blogs with Firefox. The various new features in 2.0 make playing around with them a lot of fun :)

Firefox 2.0 supports Open Search, and when detected, it automatically highlights the search box button, and from the drop down list, you can add the newly discovered search. You would have seen it on Wikipedia, or Live.com … and now here, on this page!

You want it?

Add this one itsy bitsy line to your <head> area:

<link href='http://phpplay.ning.com/Open Search/openSearch.php?blogurl=blog_url&name=blog_name&icon=url_to_icon' rel='search' title='blog_name' type='application/opensearchdescription+xml'/>

Replace the parts in green with the respective details. Note that the blog URL has to be just your blog URL, without the trailing slash. For eg: http://lastword.blogspot.com—nothing more.

After note

While this is a cool thing to have, and gives your readers a faster way to search your blog for anything they want, there is a stupid side effect of this. Searching through this won’t add to your Search Suggest pool. This makes the Search Suggest slightly useless, but hey! I’m all for options :P I plan to fix this in the future though. Will give me something to do when I really don’t have anything else ;)

Search away! :P


18 March 2007

Jscripts down. Repeat 'JScripts down!'

If you’ve been coming around the page in the past few days (and I know you have, yay! for stats), you’d have noticed rather strange behaviour on the page’s part. Dates don’t show, the TOC on the left doesn’t work. My Twitter status isn’t working, and nor is the post list at the bottom. Not to mention my search.

This is because Stephen’s Jscripts has gone offline. What’s strange in that, you ask? Well, the strange bit is, he didn’t take it offline. It seems like Ning goofed up somewhere. I haven’t seen or heard anything of the same from others either on Google or the various discussion forums. My own applications are running pretty healthy, so I don’t know what the problem is.

JScripts is taking a break

I’ve alerted Steve to this, and he has fired off an urgent mail to Ning to get this problem resolved as soon as possible. Ning Blog mentions an outage tonight for maintenance. I hope they solve this little glitch, and bring my poor little blog back to life!

Sorry for the inconvenience!


Update: Steve points out the Ning problem being addressed, and has come up with a (temporary?) solution. If possible, donate some funds so that he can upgrade his Ning account to Pro, which will enable more applications, bandwidth and storage.

I’ve temporarily switched over from JScripts to my Googlepages account. This is so that atleast the page looks normal again.


16 March 2007

Manage your uploaded photos

As posted on Blogger Buzz and noted by Phydeaux3, Google has now finished the merging of Blogger photos, and Picasa Web Albums. That is just the base of the story however. If you start to look into it a little more closely, you'll see how much this helps our case, and why we love Blogger/Google so much!

My 'Last Word' Picasa Web Album

All those pictures!

The first thing to notice is that every blog of yours automatically gets its own album. The album is populated with all the pictures you've uploaded using that blog. This offers a perfect interface to add more pictures, find and reuse old pictures, see what all you don't need anymore and (wait for it...) delete pictures! Yes! We all know that the space offered by Blogger isn't unlimited. If you look to the right, you'll see a '1GB (and growing)' message. Now, since it doesn't mention individual blogs, we have reason to believe that your Google account itself gives you a 1GB to store your pictures, all your blogs combined. That's not a lot of space if you think about having big blogs. Hence the ability to delete pictures becomes more important.

The next important thing, as already noted, is the pictures JSON feed. You can get a URL to 'all' your pictures via. a tasty JSON feed, which can be used to show them as a widget in your sidebar, or anywhere you see fit. This is not really helpful for a blog like mine, but if you do maintain a photo-blog, then you'll see how this comes into play. Won't it be nice to show a bunch of family pictures from your photo-blog on your main blog? :)

Those are the Blogger specific Picasa goodies. If you see their What's new page, you'll see that they've added features that is slowly moving them closer to Flickr. But I don't think they have the 'it' factor yet, with Flickr offering unlimited storage (with just a bandwidth restriction 100MB/mo, which is hard to reach anyway) -- Edit: As Phydeaux3 points out, Flickr does put a restriction, which slipped my mind. But it still offers many more features than Picasa. However this sure is a move in the right direction.

Getting things together

It's becoming more and more obvious that Google is working nice and hard to integrate their various features into each other, which can move to serve a few immediately visible purposes. The blatant first one being 'visibility'. By integrating services, they're increasing exposure to all their services. You remember how Blogger shows a Google Docs integration notice when you publish? Like this:

Google Docs Notice

They know that Blogger is now one of their most widely used services after GMail (or maybe the other way around), and even GMail has those top row 'corner bookmarks' thingies. So it's becoming more and more obvious what they're upto now. But hey, I'm not complaining. All this is making life much more convenient for all of us, and the only thing which I can see that's remaining to be integrated with Blogger is Measuremap (if they ever get around to doing that). They recently integrated GTalk with their personalized homepage as well, so it's an all round effort.

This is some mighty good development! :) Let's see how far and deep this goes...


14 March 2007

Links (14 March '07)

  • Crazy 3D Menu: This page and menu on it is absolutely 'cool'! The links all point to downloading applications and songs, but it's more fun to move your mouse all over the place and see the menu react! Good stuff :)
  • MiniAJAX.com: A page listing some great AJAX demos, and links to the originating sites, so that you can put them in your pages. A good page to bookmark!
  • Snipshot: Adobe are trying to make a Photoshop for the web. The industry isn't very responsive to that right now, but if you want a free, simple and good image editor online, try Snipshot! You don't need any plug-ins to work with it (as far as I know)!
  • 2007 Saleen/Parnelli Jones Limited Edition Mustang: A beautiful car, made even more irresistible! You have to check this one out :)
  • Mac Google: I only wish the original Google would be like this...
  • DivShare: Share unlimited amount of files, with as many people as you like. I have no clue how DivShare sustains themselves, but this service is absolutely awesome for storing, backing and sharing files!
  • Apple Vs. Microsoft: The Last Word on the war between Apple and Microsoft!


11 March 2007

You wanted suggest, you got suggest! #

I'm going to start off this week with a teeny weeny bang. Let's make this a little dramatic (it's by no means a small thing):

After I released the Native Blog Search, there was a lean period where I was playing around with extending it. It was a good thing, ofcourse, to have your results show up in your page without any hassles of page reloading! But, I also wanted to know what exactly people were looking for on my blog when they came. This served a simple single purpose. To see what people liked to read. It was then that my mind shifted to Google Suggest and how it worked. I didn't do as much research behind it's working as Deepak did, but I guessed out a pretty simple technique which would work under any circumstance. I needed a database to store my data, but I didn't know how to code for a database back then. So I used simple file-handling techniques. It was rather messy, but it got the job done.

However, very recently, I learnt how to work with the Ning Content Store (thanks to Steve for putting up with me on this), and though the process got started by a completely different hack, the requests to release 'this' particular hack was at the back of my mind all the time. So I didn't waste much time (ported it over 6 hours) getting things into place.

As with things like this, there is always the issue of security. I've come up with a rather secure 'token' system (according to me), but it still can be broken through quite easily. The next most secure thing to do is to get a Ning account if you want to use this as safely as possible, but I guessed you wouldn't need 'that' much security for simple search terms :P So, with all that history and working, let's get down to actually implementing this little devil of a hack :)

Getchyo' token!

The first thing to do is to get your security token. It'll be used for every transfer of data, and keeping things separate. Start by going to the page, and follow the instructions.

It'll tell you if the password you've used is already under use. If it isn't, you've got the hard part over :P Remember, there is no easy way to hide this token. It isn't such a big deal, but if you're rather possessive about your search queries, you might as well try and alter the way you add in your token in your page script. Add the following lines to your head area:

<script src='http://jscripts.ning.com/id/3229487?minify'></script>
<script src='http://aditya.vm.googlepages.com/scriptaculous.js?load=effects,controls'></script>
<script src='http://aditya.vm.googlepages.com/searchsuggests.js'></script>
<script>
token = 'insert_token_here';
blogname = 'insert_blog_name';
</script>

Replace the red 'inserttokenhere' text with the alphanumeric token string which you got in from the application. The second variable holds the URL name of your blog. For eg: 'lastword' for this blog. So, now that you have all the required scripts in place, you'll have to modify your code for the search box. If you use my Native Blog Search, then you'll have to change the ID in the main function to cath the value (for the search) from the ID of search-query if it is not set to that. Otherwise, find your the code for your search box, and replace it with this:

<form id="query" action="javascript:submitSearch()" class="search-form">
<input id="search-submit" value="Search" onclick="javascript:submitSearch()" type="submit"/><input id="search-query" autocomplete="off" accesskey="S" name="search-query" size="25" type="text"/>
<div id="nss_options" class="nss_options"></div>
</form>

<div id='nss_options' class='nss_options'></div>
<script>
new_script('http://phpplay.ning.com/getByTags.php?xn_auth=no&token='+token+'&callback=add_val');
check_post_data();
</script>

The DIV is the element which will get filled up with the results whenever you start typing. You can switch the tags' positioning around to get the required look, but don't change the significant attributes like the id or onclick. This is pretty much all you have to do. You can style your suggestions ofcourse. These are the definitions you can put in your <style> area:

.nss_options { } /* the container DIV */
.nss_options ul{ } /* the actual list of suggestions */
.nss_options ul li{ } /* each list element */
.nss_options ul li strong { } /* The matched highlight part */
.selected{ } /* The selected suggestion */

That's it! If everything went well, you should be able to start searching :) Your results will only show up after your first search ofcourse, but you'll see your list getting nice and populated in a few days if there are many people using the search box on your page.

After notes

I'm again going to bring up the lack of security of your search terms. I can see them, because I own the application. No-one else can see them, unless they use your token to catch your search terms. But they'll be effectively populating 'your' search terms, so it makes no sense for them. But who knows what whim catches who :P

Secondly, the code I've provided right now has a buggy way of removing terms which don't return any results. I plan to work up a better method soon. It'll be updated in the main include however, so you don't need to worry about updating your scripts.

Since this hack is hosted up at Ning, your search terms appearing is completely based on their uptime. They should not be going down anytime soon, and as per what has been discovered (if it's true), their downtime shouldn't affect output from the applications. But either way, they'll be back up in less than 24 hours, so your suggestions will show up again soon! :)

Needless to say, this hack uses the oh-so-heavy Prototype.js library. I've minified it however, which should shave off about 10-12 kbs. It also uses Script.aculo.us, but since I'm loading only two files from it, it comes to very small file size. Totally, it should be around 60-65 Kbs added to your page size. Moo.fx doesn't have an auto-completer built in, and people have developed ones for it which I don't really like. I am eyeing the one developed and demo-ed at brandspankingnew, and plan to eventually move to it. But at the moment, this serves the purpose really well, and I've been testing it for over half a year now :) Quite reliable!

Credits

Ah! Credits ... This is going to be the first one I'm going to write actual 'credits' out for :P Here's the list:

  • Stephen - Always the helper. He literally taught me how to work with the content store, and about 70% of the PHP I know at the moment. So, this release would have been close to impossible without his help. Thanks mate!
  • All my viewers - I actually had lost all interest in releasing this hack, as I've stated in some blog's comments. But thanks to interest still being shown in it by bleet like Deepak, and the initial burst of requests from people who liked it, I couldn't 'not' have ported it! So thanks a bunch guys!
  • Avatar - as usual, without whom I'd never have really started hacking mainstream! :)

So yea, that's the list (small as it is), and I hope you enjoy a trouble free search suggest experience. If you have any problems, the first thing to do would be to shoot an e-mail off to me with your token / password. If you've forgotten your token, send me your passphrase and I'll send you your token! Anything else, should be addressed in the comments as usual, since I want everyone to benefit from each other's doubts. I've also added a 'digg' button at the top (as seems the latest trend), but only for this post. I'm not submitting this myself, and want 'you' to submit it if you feel it's worth it :)

Also, this hack (like all others on this blog) is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 2.5 License.


09 March 2007

Hacks for the heck of it

The new Blogger brought a lot of new features. We (the bleet) were a little worried about the future of hacks, and how Blogger's features would make a lot of past hacks useless, and make future hackery difficult. Now that I look back these past 2-3 months that I've been following the new Blogger, hacks for it, and the new generation of hackers, I must say I'm a wee bit disappointed at the situation, and that our fears have come true to some extent.

No longer can I see a Commentosphere, or one to use or extend my favourite hack, the Native Blog Search. One of the best hacks (and I shall call it one), and one of the very few I sincerely revere as a 'hack', has been 'Neo', the complete blog hack by Ramani. There was serious dedication, and work behind it. Not to mention the idea. And 'those' are the qualities that actually make a hack, a 'hack'.

Scripts to clean your room

A lot of hacks today are mere 20 line functions that work on a feed from Blogger, and print out all it's contents. My hacks suffer from this lack of innovation as well, with possibly only the Custom Dates script being something I'd like to call a proper hack. All the asynchronous post and labels loading, fancy pants recent comments or posts, are pretty much commonplace. There isn't anything new, something that would make someone sit back and actually appreciate the work, wonder in awe at the work behind the script.

It isn't the lack of skills, but ideas that I believe should be blamed. That said, I come full circle back to the point I had made back when Blogger went into beta. It'll soon become not what you can code, but what you can think. Coding is just a small aspect of a hack. Coming up with the concept, the design, the functioning, everything, takes a lot more effort than typing out syntax. A hack I'm working on at the moment is seriously taxing my reserves, and with college, it just gets harder. In the end, if it sees the light of day, it'll be worth it though. I can say it's on the same lines as the 'revolutionary categorising hack' that Avatar had revealed to everyone (back when Bloggeratto existed :P). I hope to break my monotony with that!

A little boring

As Avatar rightly said, Bloggeratto went off the stage at a particularly right time, because the entire Blogger scene seems to have been lulled into silence. When was the last time you saw something big pop out on radar that got the community buzzing? More than half a year ago! Isn't that bad? There is nothing worse than having a stagnant community. Here I am enjoying Blogger being ranked the topmost blogging platform, and there Wordpress is celebrating the onset of version 2.1 of their platform, with more improvements.

I have discussed these views with people in the past, and they've agreed that the concept of a 'hack' has somewhere gotten lost. What we come up these days are simply mods (or some other term Avatar came up with :P), where we take an existing source, and just modify it to show something different. It has reached a point where hacks are mere plugins, that people keep adding to their blog to change something or show something. They don't 'do' something, or not something really worthwhile anyway. Also, all the services which were offering JSON(P) feeds, are now also offering widgets for one-click addition into Blogger. This severely reduces things that non-creative hackers can achieve.

We need to 'create' a source, not just use one. Every one of the great hacks in the past has either created the source, or used an existing source in a way no-one thought of using it. We need to look at information from a different angle, look for data where it is least expectedFor example, did you know that the expanding of posts in your 'Manage posts' section is done via AJAX, and that Blogger has makes a call for that? What if one wrote a PHP script to catch that call's data, and use that for something like Asynchronous posts?. Build functionality not ordinarily or easily available. We need to Put the freezer at the bottom!

The target users shouldn't necessarily be complete newbies who don't know a thing about code. One's code should surprise long time coders into thinking thoughts on the lines of 'Why didn't I think of this?' or 'That's fantastic! This is something I could really use!' And it's not hard to do if you keep your eyes open. I always try to get the method, the way of thinking, or the idea out if I'm not making a hack. By doing that I hope that someone else will catch on, and using my idea come up with a hack for it, or better.

So stop re-inventing the wheel, or even trying to change it's shape. Try and invent a new rim, or an axle! :P The community, I'm sure, is looking out for something absolutely fresh!


07 March 2007

Google Reader list custom widget

Edit: Big 'oops'! If it didn't work for you before, try the new code :) Also, updated the order of codes. The widget changes markup to be XHTML (phssh) standard, which doesn't work well for any code going in them :( See the updated implementation.


Golden Summer style

I was looking at the Google Reader widget which shows your reading list from a particular label. It's quite a useful little widget, which doesn't need any work from you, is automatically updated, and gives a good idea of what's keeping you interested! But there is one tiny problem, and it's one I have with a lot of Google services. It simply looks terrible!

Doing it my way!

To overcome that little glitch, I went ahead and wrote my own little script to create your custom Google Reader reading list widget, one that can be styled, and modified to show more content that what the current Reader widget shows. I really didn't have anything worthwhile to do last Sunday afternoon, so I thought of writing this :P I will explain every aspect of the parts (and it's commented) which you can change, so that you can have a proper widget which does what 'you' want it to do! :)

Add the following to your <head> area:

<script src='http://jscripts.ning.com/id/3484647' type='text/javascript'/>
<script>//<![CDATA[
userID = 'user_no_here';//your GReader ID number you can get from the original reader widget
readerLabel = 'web-2.0';//the label
count = 5;//how many posts?
showSummary = 1;//1 for yes, 0 for no
showCredits = 1;//show the 'by so-so' line, 1 for yes
window.addEventListener('load',function(){new_script('http://www.google.com/reader/public/javascript/user/'+userID+'/label/'+encodeURIComponent(readerLabel)+'?n='+count+'&callback=makeWidget');},true);
//]]></script>

The following is the style template for the different elements in the widget. I've commented as to what is what. Change them to suit your blog's template:

#ReadingList { /* The container of the whole widget content */
 border:1px dotted #BDB76B;
 padding: 10px;
 width: 200px;
}

div.block { /* Individual items are held in one block each */
 border-bottom:1px dotted whitesmoke;
 padding-bottom:5px;
 margin-bottom:5px;
}

a.title { /* Title of the item */
 font-size: 8pt;
 font-family: Verdana;
 text-decoration: none;
 color: #BDB76B;
 }

a.title:hover {
 color: Orange;
 border-bottom:1px solid #EEE8AA;
}

div.summary { /* Summary of the item (in case you want one) */
 color: Khaki;
 font-size:7.5pt;
 font-family: Arial;
}

div.byline { /* Credits/By line of the item */
 margin-top:5px;
 color: #EEE8AA;
 font-size: 7pt;
 text-align:right;
 font-family: Tahoma;
}

Make a new HTML widget in whichever section you want to add the reading list, and copy paste the following lines as the content:

<div id='ReadingList'>
</div>

That's it! You're done! :) I still haven't been able to wrap my head around the One Click Widget thingy. It seems a little painful to set up if you ask me actually, so I am not bothering. I hope my instructions are clear enough :) You can actually try and overwrite the styles of the original Google widget too if you don't want to go through setting up my version, but you won't get the customisability of showing names and summaries.

The original Google Reading List follows this heirarchyA '.' means class, and '#' means id. The symbols are what you'll use to style them in your <style>.:

  • div#readerpublishermodule0.reader-publisher-module
    • h3 (for the title)
      • ul
      • li (each li holds one item)
        • a.i (title of the item)
        • div.s (byline text, contains another link)

If you'd like to see more content/or something I missed out in the custom reading list, leave a comment and I shall look into it! Go ahead, take your pick! :)


05 March 2007

Feed resets and other annoyances

Just a glitch

My feed subscribers would have seen a random reset, with the top three posts showing up as new today. It was not a FeedBurner error, or something you did. The thing is that I'm trying to work out a few things to add a little more information to my feed (considering how there are so many subscribers), so that people don't lose out on the blog info even if they just follow the feed. I am working with Stephen to get a few Feedflares up and running, and also other RSS goodies if I can throw them in while doing all this.

For all the trouble, I promise to thank you all for putting up with my indulgences with a tasty new hack. So in the end, it is all going to be very well worth it :) Sorry for all the stupidity, and thank you for seeing them through!

Cheers!


03 March 2007

The best indicator of visibility

As The Last Word heads to become more popular with readers, I can't help but question whether a link to a certain post is better, or comments on that post are a better indication of it's visibility. There are posts which have a high number of comments and links, so it's quite obvious that people have liked them. However, what about the one which has the scale tipping towards either?

My live hits yesterday

Either argument

Links surely have huge benefits, because that's how Google has trained the Internet to function. The more links incoming to your page, the higher that page rises in search results. Even Technorati decides the rank of a blog based on the inbound links to it's posts. This sure does show that the post is being read (since links are from other posts by people) and it ensures the post remains visible (by raising it in ranking). So this 'should' be the perfect indicator!

Comments, on the other hand mean that people are actually taking interest in the post, and have something to add to the content. That means they find the content useful to them. It also gives an idea of how many people viewed the page on the 'page', and not glimpsed through it in their reader.

Comparing the two, links seem to have the upper hand when it comes to indicating how visible the post has been, and how much it'll be so in the future. Atleast to me it does. But how many people are there out there who might take a subject from one of my posts, and write about it themselves, without a link coming back here? I don't know, since there is no way of tracking posts like that. And my heart still wrenches when there are no comments on any one of my posts :(

Your verdict

I still like to follow my statistics to get an idea about popular posts and pages on the blog, since there doesn't seem to be any other accurate way to get that little but vital piece of information.

How do 'you' judge the same regarding posts on your blog? Or do you think I've missed some points in either argument?


01 March 2007

Add captions to images

Edit: Updated to check for a class="capt" instead of rel. This is to stay in regard with well markup-ness. Thanks to Steve for the tip!


This is one of those things which is so common, you wonder why it isn't there natively in HTML and CSS. An image without a caption is almost code without comments, not very informative.

So I've written a quick piece of code to help you do that. I have it implemented here, and I'd like to see you (my beloved reader) use it! :) Just follow the instructions below, and read carefully, because it adds a few functionalities to a normal image tag.

Just a line

This being another one of my 'easy addition' scripts, you just need to add in a simple line:

<script src='http://jscripts.ning.com/id/3459063?minify' type='text/javascript'></script>

To style image and captions, use this default template, and modify it to your liking:

.image_container {/* contains image and caption */
 background-color: #C0C0C0;
 border: 1px solid gray;
 font-family: Verdana, sans-serif;
 padding: 5px;
 margin:5px;
 float:left;
}

.image_container img{/* the image */
 border:1px solid gray;
}

.image_container span {/* the caption */
 color: white;
 display: block;
 font-size:7pt;
 font-weight:bold;
 margin: 5px 0px 0px;
}

That is all it takes to get the captions created :)

Usage

Caption previewThe usage is pretty simple. Write your image tags like you would normally, and add an attribute class='capt', so that the script can recognise that it needs to captionize that tag. The text for the caption itself will go in an alt attribute.

So, a sample tag which could get captionized would be:

<img src='http://www.google.com/logos/valentine07.gif' class='capt' alt='I love Google!'/>

If you don't add the alt attribute, it'll still captionize it, but without a caption (it'll surround it with a Silver background and add borders).

Another cool thing (one I threw in for fun) that you can do is add an optional align attribute. It can take two values, 'left' or 'right', which will decide which way your image goes. It basically floats it to the direction specified. Makes for some quick styling. If you leave it empty, it'll use your container's default float property if you have one. Here's a demo page putting everything together.

This script will not affect your images in previous posts, because they won't have the captionizing attribute, so it'll leave them alone. Will save you the worry of your previous post's images going awry!

That's basically it. Make your images look better! :)