The lost and found art of touch typing
I remember being rather frustrated the first time I tried a mechanical typewriter. It took ages to find the right letter, then push on the key with quite a bit of effort, and get a tiny imprint on the blank page with each noisy strike.
I can't remember when I first tried typing on a computer keyboard. Doing it with any regularity started when I was about ten, and my mum brought home a borrowed work Pravetz-16 for the summer holidays. The experience was even more frustrating because now there were mountains of text I *wanted* to input (long listings of Basic programs at first) yet progress was glacial.
It is hard to imagine a time when the qwerty layout hadn't been burned into my muscle memory. Like all self-taught computer geeks, typing was a funny mixture of using two or three fingers, flying all over the keyboard. It was only much later, once my typing speed had picked up tremendously, that I realized I need to make a consciouss effort to change or risk permanent injury. Typing tutorial time well spent. I transitioned to touch typing, eliminated wrist movement almost completely, and reduced my error rate significantly.
I realized yesterday that I am back at the same point with my iPad -- sometimes using just two fingers, other times more using something closer to touch typing but only using three or maybe four fingers. And not just me, plenty of others I’ve observed have invented their own technique. It works surprisingly well considering the “keys” are projected onto a glass screen with zero tactile feedback.
So this got me thinking -- will there be a time when we look back to this early period of learning a new input method? Will the software/touch keyboards enable more innovation than the qwerty layout now that they're not baked into hardware? Or is touch typing proper going to become a rare and arcane skill, known only to a subset of computing users, akin to long haul truck driving today? Replaced by pointing, touching, voice, eye and movement tracking? Can't wait to find out.
Marco Arment nails tablets
In his Kindle Fire review, Marco absolutely nails what makes the iPad great:
A tablet is a tough sell. It’s too big for your pocket, so you won’t always have it available like a phone. It’s too small to have rich and precise input methods like keyboards and mice, and its power and size constraints prevent it from using advanced PC-class hardware, so it’s probably not going to replace your laptop. It’s just one more gadget to charge, encase, carry (sometimes), care for, and update. And it’s one more expenditure that can easily be cut and done without, especially in an economic depression.
“Tablets” weren’t a category that anyone needed to give a damn about until the iPad. It was a massive hit not because it managed to remove any of the problems inherent to tablets, but because it was so delightful, fun, and pleasant to use that anyone who tried their friend’s iPad for a few minutes needed to have one of their own.
Hard to explain to anyone who hasn't lived with an iPad for a little while. (I tend to think a few minutes are not enough for everyone.) Spec-obsessed hardcore PC geeks excepted, of course
Why some sites require the www prefix while others work just fine without it
Ever wondered why some web sites work if you type their name without the www. prefix, while others give you odd error messages and sometimes even result in the wrong page displaying? This is why.
It all starts with DNS, the Domain Name System. When you type a name in the address bar of a web browser it takes the server name and posts a query to your nearest DNS server. So for instance the URL http://example.com/somepage will result in a DNS query for example.com.
At this point, depending on how the domain was registered, the DNS will either respond with an IP address for example.com, or with a "not found" DNS reply. If there is no IP address record for the name you the browser will display a standard error page telling you that it cannot find such a site.
If the DNS responds back with an IP address, then the browser will attempt to connect and send an HTTP request to it. Here is where things tend to go wrong. HTTP supports a feature called virtual hosting where multiple web sites can be served by the same web server, using just one IP address. In order to distinguish between different sites living on the same server the browser sends an HTTP header indicating which site it wants to talk to. If the web server is not configured to correctly match up your request to a specific website hosted on it, it might return a default page (ISPs and large hosting providers tend to do that) or just serve the wrong website altogether.
If you are a webmaster and for whatever reason you wish to only have your website available when accessed using a www. prefix, you should ensure that your domain name does not have an A record. Most registrars will insert one by default when you first register a domain and so you need to remove it; only add an A record pointing to your web server against the www entry. That's it, now no one will be able to access your site without typing out the full name.
Most people will probably prefer to help their visitors out by allowing access via a shortened name as well. In order for this to work, you need to:
Make sure there is a correct A record against the base domain name
In DNS terms, this is called the @ record - the root of the specific DNS zone. So if your web server has an IP address of 192.168.0.1 the DNS zone should contain the following records:
@ A 192.168.0.1
www A 192.168.0.1
Make sure your virtual hosts are correctly defined
If you are using the popular Apache httpd web server you can use the ServerAlias directive to specify any number of alternative names to your site:
<VirtualHost *:80>
ServerName www.example.com
ServerAlias example.com w3.example.com
ServerAdmin webmaster@example.com
DocumentRoot /var/www/example.com
</VirtualHost>
Bonus: make sure your web server is set up to serve a default error page if it doesn't recognize the virtual host requested
What happens if someone mistakenly point a DNS name to your web server? In Apache, the first virtual host is the default one and if no server name or alias matches the request, that is what will get served. So if you are hosting multiple virtual hosts on your server, make sure the first virtual host you define points to a page containing some meaningful message stating that the site is not yet up.
Optional: rewrite the URLs to redirect visitors to your preferred domain name
If you would prefer your visitors to use one specific name for your site - e.g. for marketing reasons - you can use the following configuration to redirect those using the alternative name:
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / http://example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example.com
</VirtualHost>
In this case you should remove www.example.com from the aliases.
Bottom line: make sure that whatever DNS records you do have are also configured in your web server. And unless you have a good reason not to, you should probably add the short domain name as a valid alternative.
Stop Buzzing me!
Google has rolled out Buzz to much discussion - reactions vary from "can't be bothered, turned it off" to "this is the new Twitbook killer". Here are some very unstructured thoughts on the subject.
Let me start with an observation on the two biggest players in this space. Twitter and Facebook are diametrically opposite in the way that their social links work - Twitter is asymmetrical where following someone has no implication for them. Befriending someone on Facebook on the other hand is a symmetrical relationship. (Facebook has tried to augment this, quite successfully, with the Pages feature.) These core properties also dictate the experience: Twitter serves up small slices of chatter and subscribers see updates fairly close in time to them being published. Facebook on the other hand personalizes your news feed and prioritizes items based on your past activity. (You can also choose to view the latest news from all your Facebook friends from a couple of iterations ago - see a pattern here?)
Buzz's major downside for me at the moment is that the popular posts tend to stay at the top, even if I'm not that interested in them. If you contrast to the above paragraph, you'll see how it fits right in the middle - you get a public conversation with the "buzzing" items floating up to the top. Google will probably tweak the post prioritization over time to get the signal-to-noise ratio lower (I would like a button to mute specific items for starters. Edit: ah, it's right there in the little triangle menu - silly me).
Jason Calacanis writes that "Facebook just lost half its value". I'm not convinced of that - for one, Facebook has iterated on their UI much more and is very good at catering to the use cases that people want from it, IMHO. Another is privacy concerns - for all the gaffes, Facebook does actually have working privacy controls. Google has a lot of catching up to do in pure features here. That is, if they even want to go there. My guess is that they'll stay out in the open like Twitter and sidestep the issue. Simple example: I would upload photos to Facebook that will never see Flickr or Google's Picasa data centres.
I also think that it's Twitter that may have lost half its value - in the 24h that I've had Buzz in my Gmail, I've seen much more potential to strike up a conversation in public on Buzz than I have on Twitter, which in turn tends to be quite impersonal until you have built something of a following. If Google provides an API with open access, Buzz could really become the centre of one's online universe. One potential killer feature (for technogeeks anyway) would be to aggregate ad-hoc social interactions such as comments on blog posts and forum posts from all over the internet. Blogger is already supported, all that's needed is push support in Disqus and vBulletin/phpBB . The challenge here will probably be minimizing noise - think Facebook app spam.
Related - Buzz from the corporate network. How many companies block access to the likes of Facebook? I'd guess quite a few, especially once you reach a certain size. Gmail on the other hand is often permanently open in a browser right next to the corporate Exchange mailbox. Short term advantage to Buzz here, but how long before the network policy declares it an enemy? Gmail is already on the borderline as it is with the embedded Google Talk feature.
I have turned Buzz off for the time being but I will keep revisiting it. I would have much preferred a standalone page which I can visit. As it stands, I find it very distracting in my Gmail. At the same time, I think that over time it will become a very useful tool. I suspect it will eat more into my Twitter usage than Facebook. And I should imagine that Buzz will really hit its stride once mobile support is rolled out.
Developers, developers, developers
Yes, what else, I'm referring to the infamous Steve Ballmer going crazy on stage scene. Bruce Eckel recently wrote in a blog post:
He's right, developers are important. And if you only go to Microsoft conferences, it looks like all developers are using Windows. But if you go to any other developer conference, everyone is using Macs.
Which got me thinking, WTF is up with the Windows command prompt? If there's one thing developers need, it's a solid command line interface which lets them manipulate OS primitives with the minimum of fuss. So why do I find myself installing Cygwin and puttycyg on every Windows machine that I need to get some work done with? Maybe I'm just a *nix die-hard who's too stubborn to learn something new but it works great, for the most part (what's wrong is the subject of another rant altogether).
Some will probably say that PowerShell is meant to be the answer but I disagree. It may be nice for scripted rolling out of patches and performing other sysadmin-type tasks en masse but c'mon, who wants to use that as their shell? Even if you were willing to dig deeper and learn the arcane syntax, you're still stuck in the same old DOS box "terminal" that the regular cmd.exe runs in. Even trivial operations like resizing the window or copy & paste are a misson. A Google search for "Those who don't understand UNIX are condemned to reinvent it, poorly" returns a similar rant about PowerShell as one of the top results so clearly I'm not the only one frustrated by it. It all sounds very good on paper what with the pipes on steroids and .NET integration but it somehow fails to provide a shell replacement.
Are all Windows developers hopelessly stuck somewhere deep inside the Visual Studio GUI? (The ones that haven't migrated to the Mac yet, anyway?)