Archive for the ‘new technology’ Category

When using canvas, make sure you set the width and height explicitly

Friday, August 27th, 2010

According to this explanation on stackoverflow, it appears that if you set the width and height of your canvas element in css

canvas {

    height: 20px;
    width: 20px;

}

whenever you render vectors on the canvas they will appear stretched as css only sets the container size not the canvas size. So you have to do something like this:


    var canvas = document.getElementById("canvas");
    canvas.setAttribute("width", "20);
    canvas.setAttribute("height", "20);

How. Strange.

The mobile data monopoly : what holds smartphones back from the masses.

Friday, March 19th, 2010

I have been paying a lot of attention to smart phones and expending a lot of brain power trying to gaze into their future to predict what is coming.

crystal_ball

One thing that baffled me for some time, was companies approaches to platforms. Google seems to be pursing two technologies, Android and ChromeOS similarly Nokia are doing the same with Symbian and Meego.

Why expend efforts on two seemingly similar projects and not converge them?

Well, I think the answer lies in market segmentation. At the current rate of progress, users break down into two types of categories, Tech savy and Non tech savy. Which conveniently for me is plainly clear by the difference between me and my sister. I go and seek out new technologies to use when they are still in their infancy and unrefined. She on the other hand holds back for as long as possible until the technology is mature and actually ubiquitous and useful.

Now lets move over to the iphone for a moment. Curiously they ARE NOT pursing two platforms. Again we ask why? Well, what was the underling cause of the success of the iPhone? Was it it’s amazingly slick user interface, the seamless integration of phone, media player and personal organizer or perhaps a phenomenal marketing campaign?

None of those.

The reason iPhone was such a successful product was because Apple did something very clever and forced you to have a free data package with the phone when you brought it. This meant that it was the first phone that a lot of people experienced the service of mobile internet on. Bang. Without free data, the app store and the iPhone would have been a spectacular non-event.

So still I hear you ask, why two platforms?

Well, mobile data is expensive, as much as we might wish for companies like Vodafone and O2 to disappear off the face of the planet, they are not going to. They make a large amount of money from holding the keys to these services and charging you whatever they can get away with for the privilege to use them here, overseas, anywhere. The phrase money for old rope springs to mind.

Undoubly they will die or change significantly. Their business model is old and out of date. But in the mean time, it leaves a gap.

This is a gap of technically able users who can use smart phones but who can not afford the functionality associated with mobile data. Also more significantly in this gap are users who do not have access to data, for example the billion+ people in India for whom 3g is not a possibility not from prohibitive cost but from lack of infrastructure.

Hence Google and Nokia are positioning a suitable fallback. An operating system that caters for online/offline users, users who are less likely to use mobile data, but more likely to come home and connect their phone to their home broadband powered wifi. An operating system that takes full advantage of all the services offered by smart phones that are not dependent on mobile data.

It is no co-incidence that Nokia is launching all it’s new phones with Ovi maps built in and not requiring a mobile data connection. It was quite a shock recently when my European based partner came to visit me in the UK but was unable to use Google maps on her iPhone becuase of the prohibitive cost of roaming data from her cellualr services provider. There is a large an important market place waiting to be tapped here.

So what can we do to slowly errode the control of unhelpful companies like Vodafone that painfully extract excessive amounts of money from consumers preventing innovation and more use of mobile data?

Well, I’d like to cross over back into Google land for a moment. I think someone at Google read this post on economics by Joel Spolsky the basic premise of which states that if you commoditize complimentary services to your own then your product sells more e.g. if you sell beer glasses it is in your interest to make beer as cheap as possible. This theory pretty much explains all of Google’s moves into other sectors, broadband, browser, mobile the list goes on. The more people use the internet, the more they use Google and it’s advertising. Kerrrrr ching.

So how do we commoditize mobile data in order to force the prices down? Well, we need to create viable alternatives to the networks controlled by these mega telcos. We need to create the equivilent of “open mobile data networks” based on the same principles as the internet, a collection of nodes freely passing information at no charge to the consumer.

But how? Well fortunately we already have the technology. It’s called WiFi.

Unfortunately however a few years ago, the mega telcos did a very clever thing and brought up all the hotspots. I was horrified when I went to a hotel recently where T-mobile wanted to charge me 30 euros an hour to use the wifi network. Hmmmm. That is not going to encourage the use of WiFi on smartphones.

What companies like Google and Nokia need to do is club together and create a simple WiFi router, that they give away for free, on the premise that users sacrafice a bit of their bandwidth to local wandering strangers trying to use their smartphones breaking the mobile data monopoly.

Quickstart tutorial to Mercurial and GoogleCode

Sunday, January 3rd, 2010

I love using new technology. I really do. It’s great, basic things you knew how to do with an older system, get reinvented and become no longer trivial. They become a long drawn out, painful process, that involves your blood pressure raising to that perfect level where it reduces you lifespan by a twenty minutes. Each time.

mercurial-logoSo when I switched to command line Mercurial from Tortoise GUI SVN, you can imagine my delight.

To be fair, I actually had already got command line SVN experience, so thought the transition might be somewhat simpler. It wasn’t. The commands may be very similar but the process itself is not.

code_logoFrustratingly it is actually very simple once you know the command-set to get you up and running, unfortunately no has written a basic, 123 guide to setting up a googleCode mercurial instance on windows XP. So I thought I’d be the first.

  1. Download and install Mercurial command line. Make sure to check the last check box on the installation screen along with the readme, this allows you to access Mercurial from the command line.
  2. Create your Google code project. This part’s easy, follow the steps enter the words and navigate youself to the main project screen. It helps if you already have a Google account.
  3. Now we get to the fun part. Open your command line in windows, by going to Start->run->type cmd in the input box and click ok. Or if you have style double click the short-cut you’ve created for yourself on the desktop.
  4. You’ll want to navigate to a folder where you can store your project. For the sake of this example, lets say your project is named testproject and is in the root of c:\. first back out to the root with:
    cd \
    
  5. Then make a directory to store the project in:
     mkdir testproject
  6. enter the directory
     cd testproject 
  7. Now you want to take a clone of your googlecode repository, to do this type the following command:
    hg clone https://testproject.googlecode.com/hg/ testproject
    
  8. The last parameter is the directory to copy it into on the local file system. This should result in Mercurial spewing out some output identifying that it has correctly downloaded.
  9. To check, type:
    cd testproject
    dir
    
  10. If it was successful, you’ll see a directory called “.hg”
  11. If it’s there, now you want to make your first commit. Create a text file called readme and dump it in the directory with the .hg in. To add your new files type:
    hg add *
    
  12. Next you’ll want to commit them, type:

    hg commit -m "added first file to repository"
    
  13. So you have commited your first change to the repository, but this does not mean it’s gone up to the main node on Google, it is currently just committed to your local file server. To commit the changes back up to Google’s servers, you’ll need to run the following:
    hg push
    

    This will prompt you for a user name and password, the password IS NOT YOUR DEFAULT PASSWORD. Go to your accounts hosting page to find it.

  14. Now, if your like me, i.e. LAZY, you don’t want to have to enter your username and password each friggin’ time you want to push. You want an automated way to authenticate your https googlecode push actions. The way to get around this is to open the “.hg” directory and find the file “hgrc”. Edit this in your preferred text editor. Where you see the line
  15. default = https://testproject.googlecode.com/hg
  16. change it to
  17. https://(your username here):(your password here)@testproject.googlecode.com/hg
  18. And Voila! everytime you push, it automatically skips the login and password steps.

I hope this helps, I spent sometime this weekend trawling the internet for clues as to how to do this most basic of processes but could find no simple explanation, written in a language people could understand.

smartphones move over, tablet computing is coming.

Tuesday, September 29th, 2009

I’ve been watching two interesting computing phenomenons over the last 2 years.

iphoneThe first (for me to notice) was the introduction of the iPhone, well it was hard not to when suddenly a whole raft of people who were not the usual ilk of mac fanboys become remarkably smug and started touting their new shinny touch screen devices. In a deft blow Apple succeeded in evolving mobile telephones into devices that also allowed people to read their emails and surf the internet with an experience that wasn’t akin to trying to set the time on a Rolex watch with a JCB. They pushed the technology, the economics and the social aspects of owning a mobile telephone all at once and created a phenomenal success.

The other less glamorous revolution that was going on I discovered on a trip to Spain. For the last seven years I have been going on holiday and often to choose to stay in youth hostels, a) because it is cheap b) because it allows me to glimpse what young people now think is normal (as well as allowing me to pretend to be young again). On my last trip I was surprised to see a mixture of young American and European travellers using NETBOOKS to send reassurance home to their mothers that they were NOT out getting drunk on cheap Spanish beer every night. No longer were they queuing up to use a rather battered PC connected to the internet encrusted with the detritus of hundred of people with dreadlocks and rife with spyware, no instead they had their own cheap, disposable, low powered netbooks to connect to any wifi hotspot they pleased.

This was s fundamental shift in the idea of owning a computer, making them and more importantly the internet far more accessible to the masses. This was cemented when my sister brought one. Jeff Attwood has come to a similar conclusion and you can read about it here

So what does this have to do with tablet computing?

c-motech-tablet-09-29-09Well, I believe that tablet computing is an evolution of both of these two parallel streams of computing experience. The successful tablet PC will combine the portability and screen resolution of a netbook with the interface and input devices of the iPhone. The other factors involved, like app store, 3g data access, closed environment have all be refined to a point of maturity by Apple and created a business model for anyone with the strength of character and an ounce of sense to expand upon. So lets face it tablet PC’s are going to be big.

But from my point of view, what does this mean for web development? Well, it means the standard 1024×800 screen is not dead - and as a matter of course you should be testing your web site to see how they display on these things. The interface controls from the iPhone, multi touch, and gestures are here to stay and we need to figure out how to usability test them accurately and modify them for maximum user experience. We need to asses what this hardware is capable of and how we maximize performance while including all these new features and potential edge cases. But most importantly we need to figure what people are using these devices for that they don’t get from their current experience - what can we do to really take advantage of all these key features in new and innovative ways?

Here are some links I saw on Engadget (tonight) to whet your appetite:

Omni-directional treadmill’s are soooo cool!

Thursday, February 26th, 2009

Wow, look what I just saw on engadget:

that’s soooo cool. 

a) for the gaming industry, obviously.

b) for doing that cool thing in sci-fi movies where you can experience being in another place, and meetings! Like the next stage of video conferencing! Although we need to figure out how to do decent holograms without resorting to peppers ghost tricks, as a low tech solution we could just put a peppers ghost on wheels though to fix it.

Also, think of the possibilities - using this relatively low cost device, you could allow people to visit the Taj Mahal or the empire state building. I saw one of those Paul Merton programs in India where he goes on a old jumbo jet with a load of people who want to experience flying - this will revolutionise that! It’ll be great for education!

All they need to do is figure out how to do the whole stairs thing, but that’s not a big deal.

Crikey, the future is going to be SOOO AWESOME! I have to get one of these for my office!