Archive for the 'Software' Category

QR codes rock, strictly personal tablets don’t

August 16th, 2011 | Category: Hardware, Software

Although I am aware of (and use) wonderful services like Read It Later, Springpad, Evernote and the ability to send myself links through various means such as mail, Twitter, Facebook updates or the old “typing what I read”, I find that shooting a QR code beats all of the above for ease of use and speed. Here’s the situation: I like to read ezines (web magazines, whatever you like to call them) on a tablet. In my case, I read them using Pulse on the Xoom. Sometimes I find something worth sharing, but here’s the problem: my wife and I share the tablet, so it’s not configured to use either of our social network logins.
Read more

No comments — tags: , , , , .

Virtualbox running PostgreSQL

July 22nd, 2011 | Category: Open Source, Software

If like to keep the PC I use for development as clean as possible, to reduce the odds of “other installed stuff” influencing whatever I’m writing. Whenever I need to install some kind of server-type software on it, I prefer to use small virtual machines to install them in. Like a sandbox running the server, which I can just start and access from the host machine whenever I need it. Another big advantage of this approach is that it allows me to just copy the entire virtual machine to another machine and run the server there, for example on a colleague’s machine. Below are some tips on getting the open source database server PostgreSQL running on a virtual machine, accessible from the host (or any other machine on your network).
Read more

No comments — tags: , .

Rant: welcome to 2011, not unlike 2001

July 17th, 2011 | Category: Music, Software

Remember how mediaplayers were really primitive back in the day? How they always had trouble keeping your music properly sorted and display the right metadata for whatever format you preferred? I bet you do because nothing changed, really. (Yes, I know, “RAEG” right?)

When I drop my properly standardized ID3-ed MP3’s and FLACs into my player, I get all sorts of interesting effects. And before you start, we’re talking about my own CD’s here. Ripped to FLAC for playback on my media center and MP3-encoded for convenient use on my smartphone and other devices. Depending on where you live, that may be illegal or borderline illegal, but where I live, it’s legal - at least at the time of writing. At the worst, we could be having a discussion about the legality of mp3-encoding.
Read more

No comments — tags: , , .

Two admins and a security hole

May 14th, 2011 | Category: Software

If you’re like me and you trust your wife to be the other admin on your desktop PC running Windows, you may have a serious security hole. I didn’t realize until recently, but if you’re logged in to Windows 7, or Windows Vista for that matter, and you’re an administrator, you get to change all users passwords, including the passwords of other admins without exception.

Now, if you try to change the password for your own account, you have to enter the old password before you can change it into a new one. But here’s the thing: for other users, even admins, there’s no such requirement. Of course it makes sense that you don’t have to enter their old password, how would you even know? But it doesn’t require you to enter your own either.
Read more

No comments — tags: , .

Fight flames with Unix and Firefox

October 25th, 2010 | Category: Open Source, Uncategorized

Thanks to my colleague, who went tripping around Andalusia in the south of Spain and spotted several of these fire extinguishers. Finding the Firefox alone would have been awesome, but the Unix one takes the cake. Between these and the ubiquitous “Bimbo”-brand bread (which is originally Mexican), the Spanish seem to have a knack for branding that raises some eyebrows and lifts some corners of mouths in Anglophone countries.

Firefox fire extinguisher Unix fire extinguisher

No comments — tags: , , , .

Geordi and Picard prefer Android

October 05th, 2010 | Category: Software

If you’re still on the fence on which smartphone OS you prefer, maybe this will swing you towards Google’s Android:

Geordi Laforge and Jean-Luc Picard prefer smart Android

Geordi Laforge and Jean-Luc Picard are talking on a phone, conveniently housed in the innards of the popular android Data. (Note how I didn’t mention their respective ranks, to avoid coming across as too much of a geek - or worse: a Trekkie)

The shot is from “Phantasms“, an episode (#158) of the TV-series “Star Trek: The Next Generation”. And in case you’re wondering: no, I did not shop the phone in myself, it’s the actual shot from the series. And yes, the lousy shopwork with the mismatched placement of the phone is in the series as well. In the scene itself it doesn’t show as much, since there’s another shot of Picard talking inbetween.

1 comment — tags: , , .

Getting out of Redirect Hell

September 24th, 2010 | Category: Software

Recently, many redirect services have been popping up. From my perspective, it seemed to start out with the success of TinyURL.com which saw a lot of use in newsgroups, instant messaging and e-mail. The main advantage at the time was the prevention of problems with clients and servers adding linebreaks to long URLs posted verbatim, breaking the links in the process. With the advent of microblogging and Twitter in particular, TinyURL got more popular and other services started popping up like the popular Bit.ly.

Now, people are voicing concern about Redirect Hell, since services have started creating redirections to redirection services. How does this work? Well, a service like Bit.ly is fairly simple. It allows you to enter an arbitrary URL. It quickly checks if it has seen it before and tells you its short version for it, if it has. If it hasn’t, it generates a new and unique short URL - often a random arrangement of characters like http://bit.ly/d30KsT, which happens to link to this page. Whenever anyone clicks a shortened link, their browser tries to get them that page (starting with bit.ly) and the Bit.ly service just tells the browser the original address, sending the browser there instead (this is called redirection).

If this ‘original address’ is yet another service like Bit.ly - say TinyURL - it will tell the browser what it thinks the original address was and send it there, i.e. redirect it again. Try this one http://bit.ly/cST1h0; did you enjoy the confusing page inbetween? Now Twitter plans on adding another service on top, changing all links to links starting with t.co. So, you could end up clicking a t.co link, getting sent to a bit.ly address, then getting sent to a tinyurl.com address and finally ending up at the lolcats.com address you were interested in.

Now I am wondering: what is stopping a service like t.co from resolving all known redirectors like bit.ly themselves and directly redirecting the user to the non-redirecting result page?

Instead of the user going down the t.co >> bit.ly >> tinyurl.com >> lolcats chain, Twitter could do that in it’s own spare time and update the initial t.co >> bit.ly link to t.co >> lolcats. They would still get all the information they want (i.e. “how many people link to what” and “how many people clicked this link”) and their users get snappy performance. As a bonus, the full redirect chain only happens once. Everyone we care about wins.

I can see how bit.ly c.s. wouldn’t be amused about getting cut out of the loop, but there’s really no stopping it. Unless of course they fight back and block any requests from known t.co ip ranges, but there’s ways around that too…

4 comments — tags: , .

Settings in the hash part of a URL

February 11th, 2010 | Category: Music, Open Source, Software

The use of Javascript to add interactive components to websites has become commonplace. Whether you use jQuery, Mootools, Yahoo UI or any of the other popular JS libraries to enhance the user interface, AJAX really helps to add fluid interaction driven by server side data, without requiring the entire page to reload. (or AJAJ if you like JSON like I do, let’s just say the ‘X’ stands for ‘any structured data format’)

If you’re serious about accessibility, you’ll also keep the WCAG in mind. One of  its requirements is that you should never hide content behind a technology with limited availability. So, no information presented in a Flash application if you don’t offer a non-Flash alternative. Strict supporters of such guidelines take it one step further and demand that all functionality, even the features you add for convenience or plain bling, is essentially available if most of the supporting technology is turned off.

The reasoning goes a little like this: a website is there to perform a function or provide information. If people want it to look nice, they can have CSS. If they want interaction and save time on page reloads, they can have Javascript. If there is something that absolutely requires more than a webbrowser has to offers (at the time), you can consider writing a Flash application. Video used to be such an application, but HTML 5 promises to change that

The Problem

One part of the interface that’s commonly forgotten in all this is the URL. Of course the WCAG give you some guidelines on how URLs should be formatted, but compared to web pages, that’s like only covering HTML and CSS and forgetting about scripting.

The URL is an important part of the user interface. Some people use it to identify what it is they are looking at. Some of those may even modify the URL as a shortcut to reaching a specific place on the website. The URL is also what all browsers use to create bookmarks and what some add-ons and plug-ins use to get information about what the user is looking at.

But for (very good) security reasons, you have little or no control over the URL from JavaScript, at least not without a round-trip to the server, reloadig the entire webpage. An example of a security reason is that a user should not be fooled into thinking they are looking at ‘paypal.com’ when they are actually looking at ‘iscamyou.net’.

Still, having no control over the URL means that the user is limited to bookmarking the page that they originally visited. Any changes you make to the page through JavaScript interaction won’t be reflected in the URL.

The Solution?

You could notify the server of change on the client using AJAX. But this will only work if the user returns using the same browser, or when they are logged in somehow. Since many people use multiple computers or browsers sharing bookmarks using applications like Xmarks, this doesn’t really work. It’s also no good if you want to share a bookmark with a friend, since the saved information won’t be available to them.

There is one part of a URL that you are allowed to modify using JavaScript, the hash. This the very last part of a URL: protocol://user:password@domain/path?query#hash. For example ‘#/two/four’ in http://grismar.net/hashjs/#/two/four. The problem with this approach is that the hash string is not sent to the server when the browser sends a request.

So, although you can save some information in the URL, allowing you to bookmark it and allowing plug-ins and add-ons to detect a change, it still won’t allow the server to determine what to send you.

The Clincher

The final piece her is to use JavaScript to read the hash right after loading the page and making needed updates (including getting any needed information from the server through AJAX) based on the hash.

Of course you should limit any information in the hash to changes you’re willing to limit to JavaScript-enabled users only. So, for anyone taking the WCAG seriously, this means cosmetic changes or changes in usability that simply require the use of JavaScript to work (animation, dynamic changes, etc.)

I ran into a good use case where I needed this when helping design a search interface for the Nationaal Archief (National Archives) of the Netherlands. Here, the need arose to search in many collections of information at once, while presenting the results in separate areas of the user interface. Some users prefer not to see specific collections and closing one of the results will allow more space for the rest of the results.

From a usability perspective, users might expect to ‘bookmark’ the state of the application as well as the query they had just run. But users also wanted to be able to change the configuration without having to reload the page after every change.

You can see a simplified example of that result here and just view the source (XHTML+CSS+JavaScript) and feel free to use it. The example uses jQuery, but of course this is not required to employ the technique. You can download a copy of jQuery from http://jquery.com.

No comments — tags: , , , .

Get a virtual Linux box on your Windows PC

May 04th, 2009 | Category: Open Source, Software

Some colleagues were asking, so I figured more people might want to know: how to get a working Linux box without breaking your Windows PC. To play with, to run some software you can only get on Linux or maybe even to run some virtual server programs.

Here’s how, using Ubuntu as a distribution (it’ll work for others too):

  • Get Linux
    Download disk image with your favourite Linux bootable distribution. Right now, for Ubuntu, getting the Ubuntu 8.10 stable edition .iso file worked for me, the 9.04 is about to be released as a stable version too.
  • Get VirtualBox
    Download the latest binary of VirtualBox. The VirtualBox 2.2.2 setup for Windows works fine for me.
  • Install VirtualBox
    Using default options, install VirtualBox. You can install it in the default location, since you will be able to put the virtual machines in any folder you like.
  • Create the virtual machine
    In VirtualBox, create a new virtual server. Default settings work fine, but you can tweak the amount of memory and diskspace to your liking. It does need a virtual hard disk, to install Linux on. Create the virtual hard disk where you have sufficient space to contain all the files you want to put on the virtual server.
  • Attach the Linux disk image
    In VirtualBox, point the virtual CD-rom drive to the .iso file with your Linux distro. Once you start the virtual machine, its cd-drive will have this disk loaded and will attempt to boot from it.
  • Start the virtual machine
    The virtual machine will boot using the CD-rom image. If you have the Ubuntu distribution, it will ask you what language you want to use and then offer you the option of booting Ubuntu without installing it. Instead, you can tell it to install Ubuntu, which will install it to the disk image you created.
  • Install Linux
    Follow the instructions of the installer for your Linux distribution. Most of the choices will be straightforward, Google is your friend if they are not.
    Note: if your mouse gets ’stuck’ in the VirtualBox window, you can free it by hitting the right control button.
  • Install Guest Additions
    VirtualBox offers a set of tools for Windows and Linux guest operating systems. Note: the guest operating system is the OS in the virtual machine. The host OS is the OS of the PC you installed VirtualBox on. To install the guest additions, shutdown the virtual server, download the guest additions for your version of VirtualBox and attach that .iso image file to the virtual CD-drive. Then start your virtual machine and start the appropriate installer from the CD-drive.
    Alternatively, select ‘Devices - Install Guest Additions’ when your virtual machine is running, to do it automatically. But if this doesn’t work, you will be able to do it yourself.
  • Reboot and you’re done!
    Just reboot the virtual machine once more and you’re done! With the most recent guest additions, you’ll be able to seamlessly use the virtual Linux box, running in a window on your desktop. It will even support reading from your real CD-rom drive, floppy drives and USB devices and it will use whatever network connection is available in the host OS.

Of course, if all you wanted to do is run Linux applications on the Windows desktop and you already have a Linux server running somewhere, you could go the way of installing Cygwin and using its X-Server to show applications that run on the remote Linx server. But that’s another blog post ;-).

No comments — tags: , .

Get that champagne ready to go

February 13th, 2009 | Category: Hardware, Software

Tonight, at 0:31:30 (23:31:30 PM UTC Feb 13 2009) it will be 1234567890 unit time. In case you’re not as much of a nerd as I am: unix timestamps are used in many database systems around the world to record date/time combinations. In this system, time is counted as the number of seconds that has passed since the start of 1970. Put on the clock tonight and keep that bottle ready to pop!

Sadly, leap seconds are ignored, so since we have counted 24 leap seconds since the start, you might want to leave the cork on until 0:31:54. I’m sure many of my colleagues at the National Archives - used to think about decades and centuries instead of seconds - can see the humour of of a system that won’t work beyond 1970 (or rather 1901) and will be useless starting January 19 2038…

Epoch fail!
Epoch fail!
No comments — tags: , , .

Next Page »