November 16, 2009

The computer keyboard, whose layout was inherited from the typewriter, has not changed much since the launch of the IBM-PC. There are however some unusual options, if you want to complicate the act of data-entry on your PC.

October 29, 2009

October 28, 2009

Net Neutrality is the principle that an ISP should not restrict access to any legal content. For instance an ISP throttling bandwidth for connections to Google, but allowing full bandwidth access to Bing would be a violation of Net Neutrality It is discussed at length in this Wikipedia article.

The arguments for and against can seem somewhat arcane. Here is a graphic that shows what it might look like if the Telcos win their fight against Net Neutrality and impose a Cable TV like pricing structure.

October 27, 2009

So long Vista, you were not the nightmare of legend, at least not on my new high end desktop, but you shall not be missed. Windows 7 brings with it several UI improvements, most particularly with the task bar which now is almost on a par with the OS X dock. The Aero Peek facilities are a useful way to see the contents of other windows.

The upgrade from Vista was painless and took less than two hours. It left my default browser alone, but did reactivate UAC. It also warned me that one application was not compatible and that I should uninstall. The application was iTunes. The warning is incorrect and iTunes works just fine, apart from an odd duplication of taskbar icons. A cheetah cannot change its spots, especially when confronted by a Snow Leopard

July 29, 2009

In Ruby method names ending with an exclamation mark are considered “dangerous” as they change the object on which the method is invoked.

I ran into a problem using one of these dangerous methods last night. I wanted to ensure that strings that I was handling were uppercase. There are two methods in Ruby that do this: upcase and upcase! I attempted to use the latter option. It worked on my first tests, but it failed when I passed a string that was already in uppercase and the string was changed to nil (empty string). This behaviour is explicitly documented, but I had missed that detail. Using the regular method, s=s.upcase works as I required, so it was a simple fix. However, this is an annoying difference in behaviour between the two method and seems to be counter- intuitive.

July 26, 2009

I have used LAST.FM and the US only Pandora, both of which create playlists of streamed music based on artists and/or songs that you select. Today, via a website called similarsites.com I found Grooveshark. This provides a more flexible solution, allowing you to play specific songs, assemble a playlist of selected songs, as well as having software selected music. It combines the software and manual selection, by providing a list of similar songs. You can then add any of these songs to your list.

For instance, variables are dynamically typed as illustrated by the following snippet of code:

myVar = 4 print myVar.class myVar = “Four” print myVar.class

This code will print Fixnum and then String, indicating that the variable changed class depending on the assigned value.

Classes are never closed, you can add methods to them at any point.

class MyClass def sum(a,b) return(a+b) end end

myObject=MyClass.new print myObject.sum(1,4)

class MyClass def product(a,b) return (a*b) end end

print myObject.product(2,4)

This code will print 5 and then 8

myObject is created from MyClass at a point at which the only method in the class is sum. A new method is added to the class and the existing object is able to to use that method even though it did not exist at the time of its creation.

Even system classes can have methods added or overridden. Changing the behaviour of existing classes, known as Monkey Patching, is an interesting, but very dangerous technique; like the bottle of tequila and loaded gun of this post’s title. It can be useful if it adds functionality to existing classes, providing a string comparison that returns a number expressing a percentage confidence that two strings were intended to be equal. This allows the user to key Califonia and for the program to accept that this was probably intended to be California. It can also be used to change existing methods in classes; having the equality comparison return true for 2+2=5 is only useful in the world of 1984, but being able to fix a problem in a supplied Ruby library is clearly invaluable.

July 17, 2009

Books should consist of pages made from paper. Even though I am a geek of the highest order, I have not bought nor considered the purchase of Kindle, Amazon’s electronic book reader. Since I enjoy reading books in the bath, an expensive piece of electronics that would not do well vanishing into the bubbles does not seem a good idea. Today comes an even more persuasive reason for avoiding this device. Amazon, at the publishers behest, removed purchased copies of two books from Kindles across the US. They did credit the victims of this theft, but I would not be happy if Barnes and Nobles took the book I was reading from my bedside table and left a few crumpled notes in exchange. The problem is that that you do not purchase Kindle books, you merely lease them at the whim of the publisher. The final irony in this tale is that the books removed as if they had never existed were Orwell’s Animal Farm and 1984. These books can be purchased from all good bookstores and from Amazon.

June 17, 2009

Today Apple released a new version of the Operating System for the iPhone. The update went smoothly, though download speed was low; maybe there were a few others wanting the software. There are some features that require newer hardware, but most of the major advances work on my first gen handset.

The most useful feature is one that should have been there from the start; at last copy and paste is available.

There is a new voice memo application. It seems to work well, but there were plenty of 3rd party apps that provided the same facility.

Email can now be edited in landscape mode, which makes the keyboard easier to use.

There is a great new search facility, that will look through music, email, notes, and applications. The search can be bound to a double press of the home button and is a right flick from the initial screen. The search facility might help with launching an app that is buried somewhere on the third or fourth screen.