Archive for the 'Internet' Category

Blog posts or essays?

Between my work, traveling back to home and frequent power cuts, my blogging hasn’t been very regular recently. I haven’t been suffering from any sort of writer’s block, in fact I have a list of about 7-8 topics that I’d like to write about. However there has been one thing that has kept bothering me for quite some time: the size of my postings. I’ve been trying to use this blog as a way to tell the world about the things that I learn and discover as I pursue my career as a computer science student. However many of the things that I deal with daily and which I think about are quite complex and takes long discussion to get everything together. At the same time I would like to be able to post new things everyday or at least every alternate day. Often these two things don’t really go together add being an avid reader myself, I understand that it can be very trying to read something long on a topic like computer science. Hence the question: do I write small compact blog posts on a regular basis, or do I write longer essay-style posts where I can talk at length about the topic?

I’ve been looking at some of my favorite technology oriented bloggers to possible solutions to my dilemma. My favorite bloggers is Steve Yegge, who without fail writes long, sometimes rambling, but always interesting essays on an approximately bimonthly basis. While I find his essays thoroughly entertaining, they are a bit too big for something that I would want to write. More importantly, I certainly want to post more regularly than twice a month. Paul Graham’s essays are somewhat shorter, but are also published at a similar frequencies. Again, brilliant, but not quite what I’m aiming for.

Perhaps the closest to what I’m acheiving would be Jeff Atwood’s Coding Horror. Atwood posts regularly (almost everyday) and his posts are of a good length, long enough to make you feel a sense of actually reading something worthwhile, while being short enough that you don’t need to set apart an entire hour to go through them. Though occasionally he does err on the side of excess, they are nowhere as long as Yegge’s posts.

Of course, length isn’t a separate consideration in itself. It’s closely tied to the content of what I write. Recently I’ve been writing more from a software engineering standpoint, though I would like to write posts of a slightly more theoretical nature (especially since I’m getting increasingly interested in compilers and programming languages). While I’m willing to accept that such topics might require slightly lengthier posts, I really don’t want to turn my posts into mini-theses.

Long blog posts also mean longer time investments on my part, something that is a very important consideration because of the heavy course load I plan on taking. Perhaps the best way for me to decide the issue is to think about how much time I would be willing to invest on a daily basis. On average a blog post right now takes me about 40 minutes to one hour to write. I think that it is a good amount of time for me to spend write now. Considering my typing speed, that translates to about 1000 thousands, even considering looking up pertinent links and confirming information. 1000 words might be pushing it a bit, (that’s about one average sized college paper), but much less would probably be too small for me to clearly say everything. 800 to 1000 words seems like a decent size from what I’ve been reading. I think a good idea would be to to have a number of sections which are more or less self-contained in terms of content.

I’m going to trying to work on trying to control my size and structure. However at the same time, my primary concern will be content, so even if I need to write longer or shorter posts to give a coherent, well paced account of everything I need to say, so be it. I’m sure my readers read other tech blogs, so any comments as to what you prefer would be good very much appreciated.

Cloud Computing: coming full circle

Google Operating System has a recent article about a presentation made by Google China’s President Dr.Kai-Fu Lee on cloud computing. Cloud computing is what is gradually making Google a powerful force on the planet. The idea is to reduce a user’s dependence on any one computer or device. All data and applications are stored “in the Cloud”, so to speak. Everything is backed on multiple servers and is easily accessible from an Internet connected device. This means that you can use your data and the applications to manipulate that data from almost anywhere in the world (anywhere that has a decently fast internet connection at least). It’s an extremely powerful idea, which has numerous benefits both for the users and for whoever supplies your software.

As the user, the most obvious benefit is that you can access (your often very important) data from a lot of various places. Also important is that you can take advantage of the massive amount of powerful hardware and computing resources that are available in the cloud. You no longer need a 3Ghz processor with 4GB of RAM just to edit that letter to your boss, you just need enough power to run a modern browser and handle a fast internet connection. The results of having so much power is of course obvious right now: any web-based search is much faster than any desktop search due to much more hardware and powerful algorithms to take advantage of that hardware (Google’s MapReduce comes to mind). For the company providing the cloud services the advantages are just as attractive. There aren’t a dozen different versions to support with all the related compatibility issues. Once bugs are tracked down and fixed, the patches can be rolled out without having to bother the user. Google has being using in this in the gradual upgrades to Gmail and Google Documents and has been working quite well. For every piece of software that the user sees there is a lot more that is carefully hidden away. When you’re running a cloud, you have control over the what the user sees as well as what is behind the scenes. With some care you can make sure that both the software systems remain essentially separate but still work well together (unless you don’t control the cloud software, but that’s a different matter entirely).

Cloud computing seems to be the wave of the future, and with ubiquitous broadband, I think this will be a very efficient way of utilizing powerful computing resources. At the same time, cloud computing reminds me of the old days of time sharing computing (which I was born far too late to be a part of). Data and software was in a large mainframe (later minicomputers) either at a company’s computer headquarters or a college campus. To access them users could log from a remote terminal, sometimes dialing in over the phone lines. Of course in those days, users shared processor time and memory on just one computer and data transfer speeds were slow, even for the plain text that went around. But the user’s data and applications were still centrally located, accessible uniformly from any terminal connected to the system.

How different is this from today’s cloud computing? Well, very. Data speeds are higher. Communication is available not just for connected terminals but for any internet connected device, and there is far more computing power available for users. But the core concepts are nevertheless, essentially the same: data located in one place, but uniformly accessible from multiple separate locations. In many ways it’s like the saber-tooth: a design that has appeared many times throughout evolution exactly because it is a good design. Cloud computing too is a good design, which is going to stay with us for a long time to come.

Finally some real work

I’ve been enjoying college life so much for the last two months that blogging was completely out of my mind. But now that the excitement has died down a bit, I think it’s time that I did started blogging regularly. Though I’ve always been interested in computers and I’ve always loved programming, I never really had the chance to any real work. Sure I’ve done work for CS courses and tried my hand at making a personal website, but nothing really serious.

However that’s changed, as a direct result of coming to college. One of the projects for one of my classes is to make a web biography of an alumnus of our college who went on to win a Nobel Prize. As it turns out, I’m the only one in the class (including the professor) who has even the faintest idea of how to go about setting up a website. So I get to be de facto webmaster. I only started really playing around with HTML and CSS earlier this year, so it’s good to have a real project to work on. Though I don’t intend to be a web designer for a living, it is one of those skills that every self-respecting computer scientist should possess. The project is still in the early stages, but I already have a template designed, and I’ve asked for space on the college servers to put it up and do proper testing. I’ll post a link here once it’s online.

Secondly, I’ve started working with a professor who is the Director of Institutional Research. Part of my job involves routinely searching the websites of other colleges for all sorts of information. Of course, Google is my friend, but manually pointing Google to websites and typing in search terms is dull,  repetitive work, the sort of work that we have computers to do. So I need someway to search all those websites and see the results in one go. I had initially thought about using a Python program to query Google and then process the result into something readable. Unfortunately the only way to query the Google engine, is by using JavaScript, preferably embedded in a web page. This means that I can either attempt to create my own search engine using Python, or learn JavaScript to build upon Google. Both of them would have been quite challenging and would have taught be a lot, but I decided to learn JavaScript. I wasn’t quite sure if I was up to the task of writing a proper search algorithm and though I certainly could have learnt what I needed to, that isn’t an investment I feel like making right now. And since we’re now living in the age of Web 2.0 and AJAX goodness, JavaScript would be a good skill to pick.

Two new projects and quite a bit to learn. And my normal classes along with that. Throw blogging regularly into the mix and things might get nasty, but I’m ready for it. I promised myself that I would get the most out of my college years and it makes sense to start early. See you all tomorrow.

Contests for bloggers

One of the best things about blogs is that you can actively participate and contribute in the happenings of the blogosphere instead of just being a passive consumer. Here are some contests for bloggers with some pretty neat prizes.

For all you music fans out there who have been wanting a portable mp3 player but for whatever reason haven’t got one yet, Ms. Danielle is giving away a free 30GB Microsoft Zune to one lucky blogger. MsDanielle’s  blog site has articles on a wide variety of topics including blogging tips, making money from blogs as well as random stuff like adopting a needy pet.

In case you were thinking about getting yourself a new monitor, you might just win one. You’ve probably heard of John Chow at John Chow dot com, who gives lots of advice on  making money online and now he’s also giving away a brand new 24″ wide screen LCD monitor by LG Electronics. The contest is being sponsored by BlueFur, a company who enjoys hosting Canada (as well as other parts of the world).

All you have to do is write a post about each contest and link to the sites. You’ll find more details on the contest pages. Have fun and see if Lady Luck is on your side.

What Silverlight Means For You

If you keep tabs on the world of web 2.0, then you’ll have heard something about Microsoft’s newest offering, Silverlight. Silverlight is an outstanding piece of technical wizardry, with even long time Microsoft critics admitting that it is a very good product. But while the technical people and the application developers may be very happy about it, what does Silverlight mean from the tech-savvy web 2.0 user who isn’t a developer, but simply a user? Right now, not much. However, given time and sustained interest in the new platform, it could mean a lot. Let’s take a look at what might come of Silverlight.

More Variety

When first announced, it sounded like Silverlight was being poised as a direct competitor to Adobe’s popular Flash technology. But the latest announcement (the one that has garnered the most interest) has made it clear that Silverlight is not quite so simple. The Silverlight plugin (which weighs in at a mere 4MB) will contain a version of Microsoft’s .NET Common Language Runtime. The CLR allows programs written in a number of popular languages like JavaScript, C#, Python and Ruby to be run directly in the browser itself. While this gives developers a large choice in how to implement their web apps, it means that users can expect to see a new generation of even richer, more feature packed applications delivered right in the browsers. It also frees users from having to understand what plugins or virtual machines are required for their selected web app and developers no longer have to bother with maintaining a plugin in addition to their web app, Silverlight does the worrying for them.

Speed

One of the major benefits for end users will be the greater responsiveness that Silverlight will allow for Internet based applications. The recent demonstrations have shown than Silverlight can run JavaScript apps many times faster than native browser implementations. No more waiting around for long periods of time for the applications to load before you can start using it. Heavy duty applications like online web suites, image editors or publication tools similar to Yahoo! Pipes will most benefit from the vast speed increase, but some of the improvement will trickle down to even the smallest pieces of JavaScript. Silverlight applications will also be able to access and alter the basic structure (the DOMs) of the web pages that they will use as interfaces. This means that users can expect far richer, more interactive programs where the program will be able to keep track of any changes made and react accordingly.

Better Multimedia

Flash is currently the most popular technology on the market when it comes to developing streaming media via a browser. But Silverlight promises to do all that Flash can do and much more. Silverlight will allow distribution of video at very high quality (720p or high definition) and will also allow native full screen viewing (as opposed to the current alternative of a maximized browser window). What might eventually make Silverlight a better option than Flash are the new web services that Microsoft is building around Silverlight (and currently distributing full of cost). A service called Silverlight already allows users to store their content and Silverlight based web programs on Microsoft’s servers. If Microsoft handles this properly, we might soon see a large number of new multimedia sites springing up offering richer multimedia and data services and overall better usability for the end user.

While Silverlight currently seems more like a developer tool than an end-user must-have, that might change very soon. Silverlight has a lot to offer for developers, especially those who have been struggling for a long time to consolidate disparate technologies like JavaScript, XML and Flash to make robust web products. Of course, Adobe will stand to lose a lot if Silverlight eclipses Flash, but Adobe already has a firm grounding in the market, which it will be trying to consolidate with the growth of rich web 2.0. In the middle of all this will fall the various web-startups who are currently using AJAX alone, but might easily be outclassed if newer start-ups start using Silverlight vigorously.

Gmail extra

I’ve talked about using Gmail for more than just plain email a number times. but most of the time, I’ve mainly talked about using external tools to make Gmail do things that aren’t related to it’s functionality as a mail client (such as using it as a feed reader or as online storage space). But Gmail is an outstanding e-mail tool, and so today I’m going to focus on Gmail’s email functionality to do a number of useful things.

Many of the tips that I’m going to give you will make use of plus addressing and labelling. Plus addressing gives you multiple email addresses for the price of one. Any mail sent to an address of the form somebody+something@gmail.com will go to somebody@gmail.com. You can replace the “something” part with anything that you like as long as it does not contain a space or @ symbol. Instead of a + you can also use a dot.Gmail also allows you to assign labels to emails, and you can set up filters to automatically assign labels to certain label based on numerous criteria.
Now that we have the basics covered, here goes:

1. Separate email from Mailing lists, newsletters etc.
This is perhaps the most obvious use of plus addressing. Give each of your newsletters, mail lists or other services a different plus address (or give different groups different addresses). Then set up a filter based on the To: field to give incoming mail a label, star them or archive them directly.
Strictly speaking, you don’t need plus addressing, you could apply a label based on Subject or From, but if whoever is mailing you changes either of these, your filters won’t work anymore.

2. Maintain a journal or diary
Create a contact with +journal or +diary as part of your email ID. Then set up a filter for all mail sent to this address to skip the inbox and to labelled as Journal or Diary. Then just email your daily entries to this address. All your entries are in one place, sorted by date, searchable and as secure as the rest of your important email. The only downside of a diary like this is that you can’t edit previous entries, though you can add to them (by keeping the same Subject) and Gmail’s thread view lets you see all additions together.

3. Create a personal database
Get the Gmail toolbar and whenever you find something on the net that you would like to keep for future reference, use the send to Gmail function to email it off to a personal plus addressing and use filters to keep these little pieces of data from cluttering your inbox. All your saved information is easily searchable and you can easily forward it to anyone else who might be interested.

4. Manage your time and keep a to-do list
Once again send yourself email to a personal plus address. The subject line contains brief info on whatever it is that you want to get done and the message body can be packed with details. Labels can be used for projects and for contexts (where something is done) and since a message can have multiple labels, you can find your tasks whether you’re looking for all tasks related to a project or to a context. You can star tasks that require immediate attention or are very important and Gmail’s starred view will give you a neat list of things to do next.
Gmail can be used very effectively as part of a Getting Things Done system and if you are a GTD user, the GTD Inbox firefox extensions might come in handy.

5. Post to your blog
A number of blog services (including Blogger) allow you to send email to a specific email address and the content of the email gets posted as a blog post. How much success you have with this will depend on how good your service’s implementation of this feature is. Blogger works pretty well. I am unsure as to how WordPress performs, but the hosted version at WordPress.com does not support this feature.

If you can think of any other new ways to use email, let me know and I’ll add them to this post.

The Point of Spam

Fellow WordPress.com blogger Lorelle recently put up a post regarding spam on blogs, especially in the comments. Her post not only talked about spam but also about how it’s countered, especially on WordPress blogs. Most WordPress blogs, especially here on WordPress.com use a system called Akismet. However since Akismet is a web-based service, it can go down, and should it do so for a long time, many blogs accross the world would be inundated by thousands of spam comments. Lorelle also gives a few alternatives to Akismet that bloggers might want to try out.

Lorelle’s post reminded me about something that I’ve been thinking about for a while: what is the point of spam? Originally, you could put spam in the same category as leaflets in the mailbox, promotional phone calls and door to door salesmen. However nowadays the things my spam tries to sell me are things no sane person would actually consider buying over the internet (Viagra for $2.88 a pill anybody?) Of course there are the occassional smart ones (Windows Vista Ultimate for $20 would interest a lot of people), but seriously, most people already know about all these sorts of things to fall for them. But what really iritates me the most is spam that is composed of random words or sentenced put together for no reason whatsoever. They don’t try to sell anything and don’t have any links to click or attachments to open. Perhaps that’s the reason why they get through my otherwise impressive Gmail spam filter. I suppose this might be some sort of “sniffer spam” just to check out if the email address actually exists, but I wander what’s supposed to happen after they find out that my email does exist.

Then there are the “will you keep an insanely large amount of money in your bank account for me”. Made famous by Nigerian spammers, these claim to be from underage people in war torn African nations, whose parents are dead and now they have chosen you out of some 6 billion+ people on the planet, to keep their cash safe for a while. And of course, you get a fair bit to make your trouble worthwhile. This was quite popular for a while and apparently a number of people fell for it (and ended up losing a lot money after giving away account details). But like the viagra tablets, most people know about this now and I think that it’s about time that these spammers stopped (or at least came up with something new). Unfortunately this type of spam still gets through my spam filter every once in a while, probably due to the fact that to a computer it would look like any other long email.

Of course, there is still some spam that is not irritating, but downright malicious. The first thing that comes to mind are ones carrying malicious software. However a good spam filter and anti-virus software should keep most of these at bay. Far more dangerous and harder to stop are the “phishing emails”. Essentially they look like proper business email from bona fide sources (mostly a bank or major credit card). They tell you that something is wrong with your account and that you need to log on and fix it. They give you a link to a login page that looks perfectly agreeable. Only problem is that the whole thing is a fake, the login page is decided to gather your information so that your passwords and PINs can be safely copied and used to extract every cent that you have in your account. What’s the giveaway? The page you’re whisked away to will have an unusual or extremely long URL, not the one you usually use to log in. I haved yet received one of these, but my mother received one from someone claiming to be a popular online payment system. Luckily she never makes online payments so she promptly deleted it.

Much of the spam that you get will be simply irritating and time consuming. Make sure you have a good spam filter set up, and if it isn’t working as it should, it might be time for a change or an upgrade. If you use Windows, make sure you have a good anti-virus. AVG has a good free offering and I’ve never had problems with it. But if you have virus problems regularly, investing in a paid software would be a wise choice. Unfortunately, much of the phishing and other fraudulent spam can get through filters. The only defense for the moment is good old commonsense. Emails from your banks or credit cards will generally have graphical banners and contact details. Most such companies will never actually ask for your details online and even if they do, they will almost certainly point you to your default login page. Even if you are fairly certain regarding authenticity, you might want to call up the help line and ask a company representative if the email is real. And never, ever agree to keep someone else’s money, no matter how large or small the amount or how much they offer you. And any email telling you that you’ve won a 7-digit amount of money, is most certainly false, especially is they repeatedly emphasis that you should keep absolutely quiet about it. Most spam may be pointless, but that doesn’t mean you should let your guard down

Google Notebook Upgrade

I’m going to be starting college soon and when I do, I’m quite certain that Google Notebook will be one a vital research tool. As a result, I’m quite interested in any updates or changes that happen to the service. Google Notebook recently got a facelift, and I like the changes. It looks sleeker, more streamlined and web 2.0-ish and seems to borrow some elements from the Google Docs UI. The major functionality upgrade comes in the form of basic text formatting tools right at the top of your screen, making it simpler to add quick notes with some simple formatting. You can also alphabettically organize your notebooks and add maps to them. All in all, a good upgrade.

I’ve always considered Google Notebook’s UI to be sleeker with fewer frills than the Clipmarks UI, and this recent upgrade makes me love it all the more. Of course, I’m still waiting for Zoho Notebook to be released, becuase it looks like it will be one hell of a show-stealer. And for all you fellow Google lovers out there, April 1 is just around the corner so keep your feed readers and browsers listening for Google’s customary April Fool’s Day joke.

Firefox Extensions I Couldn’t Live Without

One of the major things that makes Firefox a great browser is the vibrant community of extension developers that have grown up around it that makes a growing number of little programs that makes your browsing experience that much better. There are over two thousand extensions on the official site and they can supply your browser with a feed reader, blogging client, FTP client, music controller and a host of other tools. Here’s a list of my favorite extensions:

1. Del.icio.us Bookmarks

Since I move between computers and operating systems rather frequently, it’s good to have my bookmarks somewhere where I can always get at them. Del.icio.us lets me store and organize my bookmarks online and this extension brings the service into the browser. It lets you save bookmarks along with tags and comments also creates a toolbar and menu allowing direct access to your bookmarks, without having to visit their site.

2. DownloadThemAll

This is a download manager which makes the default download manager look like something out of the stone age. Not only is the interface much nicer, it packs a punch under the hood. You can download all the links on a page with a click (hence the name), pause and restart downloads, set priorities and queues and setup filters for different filetypes. And if you’re on a slow connection, you also get a significant speed boost.

3. Greasemonkey

Take back the web with this masterpiece of an extension. It lets you use pieces of code (mainly JavaScript) to alter the way various websites work. You can write scripts to club together various internet services, gather data from various sites and put them together or simply just change the look and feel of your favorite sites to suite your tastes. There are a number of scripts available at Userscripts.org and you’re sure to find something that you can put to good use.

4. GSpace

Turns your 2.8 GB Gmail inbox into an online file storage solution. It looks and acts like an FTP client, letting you upload and download files in bulk, rename them and put them into folders. Once you have this up and running you’ll probably never want another way to store files online again. This one of the few extensions to have actually been bought by a large company, in this case, FON, who plan to use it as part of their wireless storage technology.

5. FireFTP

While GSpace may look like an FTP client, this is one. It’s a full-featured FTP client with message logging and support for multiple FTP accounts. There’s also a handy little feature where you can right click on a file and “View it on the Web”. Handy if you’re a web developer and can’t remember what that oddly named file is supposed to do. And for those of you worried about security, there is support for SSL encryption, so you can rest assured that your data is safe.

While these are the ones that I currently use the most, there are a lot more useful ones out there. You might want to check out my Superfox Series for some more cool extensions (and web services) that will make your life easier.

Web Feeds for Beginners

Feeds are one of the core technologies driving web 2.0. Here’s a quick guide to what they are, what they do and how you can use them.

 

Feeds provide a convenient way to deliver content to your audience and at the same time keep track of just how big an audience you have. Feeds are best used for anything that changes, or gets updated fairly regularly. Of course, blogs and traditional news services are the first things that come to mind, but feeds are also good for sending your growing photo album to your friends or keeping others informed about what’s the latest album you’ve heard.

So just how do you turn something that’s regularly changed into a feed? You need a program that will periodically check whatever it is that gets changed often and then record those changes in an XML file. This file has to be in a proper feed format, the most common formats are Atom and RSS. It’s this XML file that you pass around when you tell others about your feed. Most blogging software and some wiki software does this automatically for you, but there are probably some things that you can change (like whether readers see all or a part of a post).

But that’s not all there is to feeds. If you’ve ever tried to open a feed URL in a browser you’ll know that the result isn’t pretty. Strictly speaking, XML is human-readable because it’s just plain text. But as a human, it’s hard to understand anything because there’s a lot of weird markup in the way. XML was designed to be a primarily machine-parseable language, i.e., computer programs will have an easier time reading it. So, to view the information in a feed properly, you need a feed reader. There are a bunch to choose from, including both desktop and online versions. Personally I use Google Reader and highly recommend it. No matter which one you use, they all perform the same general task: read a feed’s XML file and display the content as something you and I can understand.

Initially feeds were limited to just take, but now you can put almost anything you want into a feed including images, audio and video. Because feeds are basically pure data it’s easy to manipulate and republish the result as a new feed. Feedburner does a good job of collecting and redistributing feeds, so that even if you move servers or URLs, your readers can just use the same Feedburner feed. Tools like Feedblendr and FeedDigest allow you to combine multiple feeds into one and the new Yahoo! Pipes gives you a lot of power to selectively fetch information from feeds and other sources, apply filters and other little touches and publish your creation as a packaged feed. In case you have a webpage of regularly updated information but don’t know how to turn it into a feed, there are a number of free tools that will do it for you. You can also turn your feeds into other forms of data. FeedBurner and FeedDigest give you a piece of JavaScript that will make your feed look like part of another page. And for users who prefer email over feeds, FeedBlitz will turn any feed into a “daily digest” email of whatever’s new. (I recently added this feature for this blog.)

Using the numerous free tools and services online, you can accomplish a lot with feeds and the best thing is that your audience can just keep using the same feedreader they always used and not worry about how you do what you do.

Next Page »