Archive for the ‘Internet’ Category

N900: first impressions

Saturday, December 19th, 2009

This post is part 2 of a three part series. You may also be interested in:
Part 1: N900: the tale of the indestructible box
Part 3: N900: a phone for hackers? (coming soon…)

After conquering the indestructible box and charging the N900 I decided to have a quick play. I watched the getting started video which I found to be both beautifully smooth, showing off the high definition of the N900 screen immediately, and somewhat slow content-wise.

G1 (top), N900 (left), iPhone 3GS (right)

The N900 is similar in width and height to the iPhone but is much greater in depth at 1.8cm – just a millimetre deeper than the G1. This is not surprising due to it’s hard keyboard and more advanced hardware.

G1 (back), N900 (left), iPhone 3GS (right)

The first thing that struck me about the N900 (other than how high definition the hands were in the famous Nokia splash video!) was how much force it required to press on the screen. The iPhone (my current primary phone because I develop iPhone fitness apps) only requires the lightest of touches; whilst the Android G1 (my wife’s phone) requires a bit more. I later discovered the reason for this heavier interface was probably the stylus (which I discovered accidentally while interrogating the outside of the device), which is great to use – reminds me of my old iPaqs only much much higher resolution and more responsive!

I noticed that every time I touched the screen firmly enough the phone would do a very small vibration in the way of haptic feedback. This would be good if it weren’t for the fact that it does it every time, and not only the times when your touch actually triggers an action (opening a menu, etc) – this is becoming more annoying than useful.

Because of the devices HD screen I found it quite hard to be exact with my touches (my thumbs must be almost 200 pixels wide on that screen!) though the interface deals with this well by using large touch areas. After failing at playing Marbles (a pre-installed game with small touch areas) for a minute or so I quickly learned where the device thought my presses were and the device became even easier to use. (Sure this would have been much easier with a stylus but I hadn’t discovered that yet!)

The web browser is a pleasure to use, though it appears to support in page Flash which I personally hate – especially on a small screen mobile device. I went to YouTube to see how it handles and “very well” was the answer. The device supports the double tap to zoom in to a region of text paradigm of Safari on the iPhone though it obviously lacks the multi-touch pinch and zoom.

N900 vs G1

Pressing play on a YouTube video, I wished to turn the volume up and so I pressed the volume rocker on the outside of the phone. This surprisingly zoomed the web page (very smoothly!) but not the volume – a useful feature but definitely not what I had expected. I attempted to change the volume using the YouTube Flash control but could not drag the slider up as my fingers were too fat and dragging scrolled the page. (I hadn’t discovered the stylus at this time but have since attempted with they stylus with the same result.) To change the volume I had to click the web page, click the “toggle fullscreen” button at the bottom right, the status icons at the top and then drag the volume slider. Not too hard, but certainly more effort than just using the volume rocker – the video would play on a good few seconds more before you can change the volume and get back to it. Perhaps there’s a better way of doing it, but this is a “first impressions” post so I feel I should stick to first impressions!

One very cool feature of the N900 is how blazingly fast the screen lock/unlock is. There’s a sprung switch on the right side of the phone which when you flick it will lock or unlock the screen seemingly instantly (no slider here!). If you prefer the iPhone style slider then you can press the power button at the top of the phone and use the slider there, though I much prefer the flick button on the side.

N900 lock screen switch (left) and kickstand.

I like the stand on the back of the phone – this would be immensely useful when you’re trying to watch a film on the train on the way back from London (rather than constructing a stand with your backpack, wallet and other accessories like I do for my iPhone…). The stand is fairly sturdy and definitely supports the phone well, though it does rock a bit when you use the stylus at the top right of the screen (not really the stands intention to be fair!).

I know virtually nothing about photography, but to me the camera seems to be a decent quality 5MP phone camera with a fairly decent flash. Coming from a 3MP iPhone with no flash the difference is astounding. The N900′s sheer performance is very visible here – as you move the phone around you can clearly see the surroundings – there is no massive blurring like when you wobble the iPhone’s camera. The photos themselves come out quite well, though there is still minor blurring due to handshake – but no where near the magnitude of the blurring on the iPhone. I bet a “bar code scanner” application on the N900 would be far faster and more accurate than any I have used on the iPhone or Android!

N900-YouTube Windowed

Connecting the device to my WiFi network was painless and intuitive. The major widgets (menu button [top left], fullscreen button [bottom right], close button [top right], status tray [top, right of menu button]) are well laid out and application switching (and closing [Symbian: I'm talking to you]!) is simple and intuitive.

N900 - Home Screen N900 - Running Applications N900 - Applications Home N900 - Applications More

Opening applications could do with some work – the menu first opens and shows you 15 icons (standard icons like Contacts, Phone, Web, Email, Conversations), with a More button at the bottom right. Pressing More is how you get to your other apps – games, utilities, etc. Unfortunately these apps appear ordered by the time they were installed and not separated into folders, and there is no obviously intuitive way to organise them. In fact I have yet to find out how to organise them through exploring the device – I will search the internet later.

N900 (top left), G1 (top right), iPhone 3GS (bottom)

That’s the end of my first impressions… When I discovered the X Terminal application I got immediately a lot more excited as I am by nature a hacker. Read on…

This post is part 2 of a three part series. You may also be interested in:
Part 1: N900: the tale of the indestructible box
Part 3: N900: a phone for hackers? (coming soon…)

Reblog this post [with Zemanta]
Bookmark and Share

N900: the tale of the indestructible box

Saturday, December 19th, 2009

This post is part 1 of a 3 part series. You may also be interested in:
Part 2: N900: first impressions
Part 3: N900: a phone for hackers? (coming soon…)

A week ago I was contacted by Lydia of WOMWorld.com/nokia who asked me if I would be interested in receiving an indestructible box. I was told that she found me via my twitter profile and felt it would appeal to my passions. After confirming the email was not spam I replied, intrigued, “yes please” and sent her my address.

Package Arrives

Yesterday it arrived. I opened the door to a delivery man who offered me a large cardboard box. Jof had suggested to me that it would likely be an N900 (which I had heard a little about but had not had time to look into) so I was expecting a small package. Surprised I was when the box the man handed me was so large and heavy – 35x35x35cm and 7.5kg!

Nokia Box

I took it indoors and opened it, to find a large package, cold to the touch, wrapped up in brown parcel paper and surrounded by polystyrene balls. Unwrapping this (and making a hell of a mess with the styrofoam balls which attempted to mirror the snow outside onto my living room floor) unveiled a 25x25x25cm black shiny box with a Nokia logo on top, a hinge and a small USB mini-B socket barely visible on one side. It was obvious that the top would open… but how?

I wanted to attempt to hack it right away, but two things stopped me: firstly, I should be working; and secondly the box was wet with condensation from the sudden contrast with the cold outside. I went back to work.

A hour and a half later I got temporarily stumped with a programming problem and decided to attempt to hack the box.

My first step was to see what happened when I plugged it in to the USB. I booted into Ubuntu 9.10, ran dmesg -c to clear all the kernel messages, plugged it in, waited a few seconds, and ran dmesg again to see just the new logs:

[  314.544034] usb 6-2: new full speed USB device using uhci_hcd and address 2
[  314.747104] usb 6-2: configuration #1 chosen from 1 choice
[  314.811722] usbcore: registered new interface driver usbserial
[  314.811734] USB Serial support registered for generic
[  314.811764] usbcore: registered new interface driver usbserial_generic
[  314.811766] usbserial: USB Serial Driver core
[  314.823161] USB Serial support registered for FTDI USB Serial Device
[  314.823263] ftdi_sio 6-2:1.0: FTDI USB Serial Device converter detected
[  314.823283] usb 6-2: Detected FT232RL
[  314.823285] usb 6-2: Number of endpoints 2
[  314.823287] usb 6-2: Endpoint 1 MaxPacketSize 64
[  314.823289] usb 6-2: Endpoint 2 MaxPacketSize 64
[  314.823291] usb 6-2: Setting MaxPacketSize 64
[  314.825064] usb 6-2: FTDI USB Serial Device converter now attached to ttyUSB0
[  314.825077] usbcore: registered new interface driver ftdi_sio
[  314.825079] ftdi_sio: v1.5.0:USB FTDI Serial Converters Driver

I spotted the /dev/ttyUSB0 and instantly thought “minicom.” It took me a while to refamiliarise myself with the program and get it to connect, but soon I had fiddled with the speed settings (reduced it to just 9600baud from 115200) and was greeted the following output on my screen:

  _   _  ___  _  _____    _
 | \ | |/ _ \| |/ /_ _|  / \
 |  \| | | | | ' / | |  / _ \
 | |\  | |_| | . \ | | / ___ \
 |_| \_|\___/|_|\_\___/_/   \_\
 *******************************
    W3lc0m3 t0 n0k14 h4x0rb0x!
 *******************************                                               

 ? - displays help dialog                                                      

$-nokia h4x0rb0x->

Unfortunately I could not type into minicom. I experimented with the speed and parity settings some more (as they had helped before) but no use. Finally I disabled hardware flow control and voilà I could type. Then it was simply a case of typing “?” to find out what commands were available:

$-nokia h4x0rb0x-> ?
Available commands:                                                            

 ? - prints this help dialog                                                    

 connecting <argument> - opens box                                              

$-nokia h4x0rb0x->

And guessing what the argument to the nokia connecting command was…

$-nokia h4x0rb0x-> connecting people                                            

Initiation complete.                                                            

Start Connecting.                                                               

$-nokia h4x0rb0x->
The Box Opens

Hardly a challenge! A nice clichéd progress bar appeared for a few seconds and then *click* the lid popped open a little. I opened it fully and was pleased to see that they had even included dry ice to maximise theatrics, with the N900 packed safely waiting to be admired.

Nokia Winnings

They really put a lot of thought into this! I delved deeper and here are all of my winnings:

That’s: an N900 with accessories plus a butane soldering iron, sports band, cake, and a little fox figurine.

The box itself was powered by a Roboduino Nano (which I intend to repurpose later… not sure what as yet) hooked up to a solenoid:

Internals of the indestructible box

UPDATE: Techcrunch have a video of the opening – check it out!

Continue reading:
Part 2: N900: first impressions
Part 3: N900: a phone for hackers? (coming soon…)

Reblog this post [with Zemanta]
Bookmark and Share

1984? More like 2084…

Saturday, April 4th, 2009
Cover of "Little Brother"
Cover of Little Brother

… but we’re still getting closer.

The message contained in my previous post on the understated threat to internet freedoms is something I feel very strongly about – we must maintain net neutrality. Take that away and we are taking away the means to communicate freely and openly (and partially anonymously, if we know how), and to verify the information we are fed by the media, and find out the stories that the government is trying to “hush up” (were it to do such a thing…). Not to mention making friends and having fun with people who don’t reside in our own country! Besides it’s not like those who want to won’t be able to bypass the filters (look at China), but in doing so, in just trying to get information that their government doesn’t want them to have (no matter how trivial or inoffensive it may be), those people would be breaking the law and thus could be locked away and hence silenced.

With all the recent laws it has been passing, I’m beginning to think that our government wants us all to be criminals so that it can, if it needs to, control and/or silence people, one at a time, and make us live in constant fear of disobeying them, even if we don’t agree with their policies. Do we really want to live in a world where everyone is the same, as dictated by law? We are not just losing our freedom, we are giving it away. Chunk by chunk. We must stop it before it is too late.

Here is a quote from the Cory Doctorow short story “The Things That Make Me Weak And Strange Get Engineered Away” (available here for free: http://www.tor.com/index.php?option=com_content&view=story&id=2993):

“Here’s the thing,” Randy said. “The system isn’t going to go away, no matter what we do. The Securitat’s here forever. We’ve treated everyone like a criminal for too long now—everyone’s really a criminal now. If we dismantled tomorrow, there’d be chaos, bombings, murder sprees. We’re not going anywhere.”

The Securitat are a kind of Big Brother organization like that in the book 1984. The signs are there that our own government is heading that way – for example, terror “suspects” can be held for long periods of time with no evidence. Sure, it sounds like the government is protecting us, but that law could be used against you or me if we were doing something that the government didn’t want us to (e.g. exercising free speech against the government or some of it’s activities).

We must protect our freedoms, we must maintain a method of communications that cannot be controlled/watched over by the government, otherwise what means to we have to prevent something like 1984, or the world in “Little Brother” (another free Doctorow book: http://craphound.com/littlebrother/ ), from coming to pass?

I urge you all to read 1984 and/or Little Brother and then think about the freedoms that we are giving away year on year, and whether we will ever get them back. Both books are available free online (legally) – I recommend you download the eBook reader “Stanza” and read them through that.

Reblog this post [with Zemanta]
Bookmark and Share

Understated threat to Internet freedoms – this time from the EU

Saturday, April 4th, 2009
Digital rights landscape
Image via Wikipedia

This post is a copy and paste from this group on facebook related to the laws that the EU is trying to push through the courts to remove our online freedoms. Please read it:

(more…)

Bookmark and Share

SVN Hint: Automatically removing manually deleted files from SVN

Friday, February 6th, 2009
Bash
Image via Wikipedia

When deleting files in a working copy of an SVN repository you should do it on the command line: svn rm [filename]. If, however, you don’t do this (e.g. delete through a gui, or just do “rm” without the “svn“) then SVN gets confused, and puts a “!” in it’s status before all the deleted files. If you svn update, all the files will be recovered, rendering all your time spent deleting them wasted. Really you should use svn rm, but if it’s already too late for that, you can use this bash fragment to delete the files from SVN:

svn status | grep "^\!" | sed 's/^\! *//g' | xargs svn rm

This command does a status command, finds all lines starting with “!“, and then extracts the filename and runs it through “svn rm” – really deleting the file.

Caveats:

  1. Manually deleted files are not the only things that makes svn use “!” – so beware of this! Ensure you do really want to delete all those files!
  2. This works for filenames which are all_one-word/without/any.spaces but I am not sure if it will work or not for filenames with spaces in.
  3. Use at your own risk. The code is simple enough so you should be able to grok what it does.

Enjoy!

Reblog this post [with Zemanta]
Bookmark and Share

New Year: Get Fit With GymFu!

Tuesday, January 6th, 2009
PushupFu Demo

PushupFu Demo

I had intended to get fit (and thin) before my wedding last August, however that never happened. And before I knew it it was Christmas, with all that loverly food. I’m not stupid enough to try and diet over the Christmas period! Instead, I thought, what else is the New Year for if not improving ones health?

My business partner Jof and myself had been working on a fitness app for the iPhone, PushupFu, for a couple of months and we finally uploaded it to Apple on 23rd December. In a very generous gesture from Apple, the app was released on 1st January (or 31st December, depending where you live!) – a full week earlier than we were expecting. I find that the app definitely motivates me to do pushups when users challenge me, plus I also intend to complete the training course (should be done by May) – when I can do 100 pushups I will really feel fit! (Currently I’m still only able to do single figures, but I have only just started!)

So, if you feel you need to get a bit more toned this year, why not give it a go by visiting http://www.GymFu.com/ ? At time of writing we have 5 reviews in the App Store, all are 5 stars, so give it a go! Check out our other reviews below:

Reblog this post [with Zemanta]
Bookmark and Share

Ever Wondered How Many Firefox Tabs You Have Open?

Tuesday, September 9th, 2008
Mozilla Firefox IconImage via Wikipedia

To find out, open Tools > Error Console, and copy and paste this lump of javascript into the “code” box and press enter:
javascript:var w=Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator).getEnumerator('navigator:browser'),t=0;while(w.hasMoreElements())t+=w.getNext().document.getElementById("content").mTabs.length;alert("You have "+t+" tabs open");
I’ve just closed 48 tabs, and found that there was still loads of tabs open (and I didn’t want to continue counting) so I wrote this code (inspired by Open Tab Count firefox extension) and found I had 77 still open! For those of you who’s mental arithmetic is poor, that’s a total of 125 tabs! And firefox 3 still runs really smoothly with little delay when changing tabs, and my system is using less than 2 GB of it’s available 4GB of RAM. Now, I think that’s pretty impressive, and would like to see Google Chrome compete with that with it’s one-process-per-tab design! (If only FF3s JS was as fast…)

Whilst I am talking about browsers, I feel I should moan that Flash 10 for GNU/Linux is still really unstable, I have to restart firefox a couple of times a day because it’s audio gets corrupted or it stops working and just displays a white box in firefox. If only I could restart flash without restarting firefox… Can I do that?

Reblog this post [with Zemanta]
Bookmark and Share

MythWeb Aspect Ratio

Sunday, April 13th, 2008
The MythTV menu (default blue theme)Image via Wikipedia

It has bothered me a little for a while that the MythWeb (part of the fantastic MythTV package for Linux) aspect ratio is hard-coded to 4:3. Most of the TV that I watch (received over Freeview (DVB-T) in the UK) is in 16:9, so watching it back on 4:3 is a bit of a pain. Thus I was motivated to change the hard coding to 16:9. The process is quite simple:

  1. Modify line 102 of mythweb/modules/stream/handler.pl – change “3/4” to “9/16“.
  2. Modify lines 35 and 37 of mythweb/modules/mythweb/tmpl/default/set_flvplayer.php – change “3/4” to “9/16” and “4:3” to “16:9” respectively.
  3. Modify line 505 of mythweb/modules/tv/tmpl/default/detail.php – change “3/4” to “9/16“.
  4. Optional: I also added to the end of line 165 of mythweb/modules/stream/handler.pl (which detailed the ${width}x$height) – adding
    .' -aspect '.shell_escape("16:9")

    (make sure you get the fullstop at the beginning!), though I am not sure if this modification is necessary or even beneficial!

There is a minor bug now where the player does not show the control bar at the bottom properly initially, but a click on the preview picture solves this.

I’m currently working on modifications to stream the video in 3gp format to my mobile (a Nokia 6120 Classic), however this seems a lot harder as I have to implement a RTSP server, and have to re-encode all jobs in advance (by using a MythTV User Job) which is not quite what I am after. There is a page about it in the MythTV wiki. I wonder if I can find a cunning way around it…

If this helps you, please let me know in the comments!

Bookmark and Share

Moving Blog Software – Serendipity to WordPress

Thursday, April 3rd, 2008
Screenshot WordPressImage from Wikipedia

I moved my blog (in fact my entire website!) over to WordPress a couple of days ago. The move was not without it’s challenges – for a start I remembered WordPress likes to have a well defined hostname, and I didn’t want any downtime. To get around this, I placed an entry in my /etc/hosts file for www.benjiegillam.com, pointing to the new domain, this way I could set up the new WordPress blog privately (no-one else would know where it was) under the correct domain name, whilst still having access to the old blog to copy content over from.

My first issue was how to transfer the posts from the old blog to the new. I acheived this by doing a few minor hacks to serendipity, and using the export function (where you can export all posts as an RSS feed). To do this, I had to disable the “extended body” feature (i.e. make sure it was output as part of the feed), as explained in solution, part 1, here. Make sure your browser is not caching at this stage!

Once I had acquired the RSS file, I then had to convert it into a format that wordpress would understand. I cheated and wrote a very bad PHP file, here:

<?php //Import the feed $rss = file_get_contents('s9y.rss'); //Opening <![CDATA[s $rss = str_replace("<content:encoded>","<content:encoded><![CDATA[",$rss); //Closing ]]>s $rss = str_replace("</content:encoded>","]]></content:encoded>",$rss); //Now replace all newline characters with a " " (this will BREAK any preformatted tags, but will stop wordpress putting <br />s everywhere $rss = str_replace(array("\n","\r")," ",$rss); //Finally remove all the htmlentities from the file and output to STDOUT, which you can then redirect to a file echo html_entity_decode($rss,ENT_COMPAT,'UTF-8'); // I called this as convert_s9y_rss.php > wordpress.rss Download this code: /code/convert_s9y_rss.phps

I then used WordPress' RSS importer to import the posts (no comments, unfortunately). I then copied all of the uploaded files into the same file structure on the new site. The next thing to do was to go back through and edit all the posts and update their links. Only joking, I really couldn't be bothered to do that! Instead, I made a folder called "serendipity" in the webroot (all of my posts were /serendipity/archives/... previously), and placed in it the following two files:

RewriteEngine On #Direct *EVERYTHING* to the index.php file RewriteRule .* index.php [L] Download this code: /code/s9y_htaccess

<?php //What URI was I accessed as? $uri = $_SERVER['REQUEST_URI']; //Remove everything except the last section $uri = explode("/",$uri); $uri = array_pop($uri); //Convert to lower case (as in WordPress) $uri = strtolower($uri); //Remove the post id from the beginning of the post $uri = explode("-",$uri); array_shift($uri); $uri = implode("-",$uri); //Remove the extension (.html) $uri = explode(".",$uri); array_pop($uri); $uri = implode(".",$uri); // Now send a 301 Moved Permanently and the new location header("Location: /$uri",TRUE,301); exit(); Download this code: /code/s9y_index.phps

These caused all posts links to be re-written to a guess at the page name, and thankfully WordPress was clever enough to work out what was meant. I am not sure if it worked for all posts, but it did for all that I tested.

I hope this helps someone, if so leave me a comment (please! I lost all my old comments in the move!).

Bookmark and Share

Blog Friends update

Monday, November 26th, 2007

Sorry I haven’t written a post for ages! I thought I had better keep you up to date with Blog Friends – we have (finally!) released version 1 beta (Blog Friends v1 Beta), which is (according to subversion) revision 816 of Blog Friends! We have had a lot of positive feedback on the new release, but also a lot of confusion over the new features and the perceived "lack of control" (you can find lots of the options, such as how many posts to put in each section of your profile box, on the settings page). After reading all of the comments from our users we found that a common complaint was that of finding "strangers" in their Facebook profile boxes. We quickly made some simple changes to get these strangers out, and are currently working on doing a much improved profile box, incorporating a lot of the ideas we have gained from users feedback. You can see a preview of this new profile box here, and we would appreciate your comments on it – we read every piece of Blog Friends feedback we can get our hands on!

On a finishing note, you can read a great post by Allan Cockerill on Blog Friends and the Blog Friends Blog here. It is worth noting that we intend to use the Blog Friends Blog as a place to keep our users updated with changes, and also a place for feedback, so if you have opinions on the posts there, please tell us through the comments! (Even if someone has already said what you were going to say, there is no harm reiterating it!)

Bookmark and Share