Software Update, what are the priorities?

UpdatesSoftware updates are increasingly becoming the vogue. It almost seems like each week there is an update for the operating system, software or services running on your computer or mobile devices. For someone who uses computers every day for work software updates are one of my biggest pet hates.

Starting up a piece of software to find a dialog box insisting upon allowing it to update itself to the most recent release are intensely annoying. I started the application for a reason to perform a task or check information, time is precious but it instead insists that I wait for several minutes whilst it downloads then installs the updates. In the meantime time is ticking away, including my patience.

The worst of the worst is Microsoft Windows Update, I use Windows 7 though I’ve had this problem with all older versions too. The default setting is to download and install updates automatically, it will also restart your computer automatically too. So all those important documents and website you painstakingly found and had open on your computer, or that download which had been going on for the last hour due to a slow internet connection are all gone in the time it takes to get a cup of tea. Instead you get a new shiny icon appearing on your desktop for a piece of software you never use, or ever needed. This has in the past cost me dearly and set me back several hours whilst I refound or had to reset up the computer.

At the end of the day a computer, mobile or other devices are a tool for the user. The user is king and their data is important. A lot of automatic update software seems to forget that, instead putting the focus on getting the task or the update software completed, taking the user out of the loop and putting the user at an inconvenience.

I would love it it software development companies would take a leaf out of the book of companies like Google. Google Chrome is constantly being kept up to date, but I never know when this is happening. The Chrome updater puts the user at the centre, performing updates when it will inconvenience the user least.

I think it’s about time software puts the user back in the driving seat, realise that software is merely a tool and that data is important.

Raspberry Pi my initial impression

I’ve been watching Raspberry Pi for the last year and I’ve been interested in getting one for a while. Today was my first day with the Raspberry Pi so I thought I would share my initial impressions. I bought the Raspberry Pi from RS and as expected due to demand I had quite a long wait between ordering the board and final delivery.

I ordered the board to include a power supply, blank SD card (they were out of stock of the other SD cards) and HDMI cable. I went to the Raspberry Pi website and followed the instructions to get the SD card setup and the board booting. Although I’m a professional in computers and work to bring up operating systems on hardware I decided to look at this from the point of of a novice. I think if I were a novice setting up the card I would be a bit frightened, the instructions in my view seemed fairly technical and I had to go to several places to get the image and the image downloader, it wasn’t all in once place as I would have expected.

I booted up the Debian image to be presented with the black screen console asking for a password. Panic!! If I were a novice this is like a massive wall standing before you, where do you turn? A lot of people reading this may say oh but you just read the FAQ/Wiki/documentation but to a complete technophobe who is trying something new this is a bit scary. To eBay it goes!

I got the user name and password and typed them in, oh look another command prompt! Searching around finally typed in ‘xstart’ and booted into a fairly dull, uninspiring terminal style environment. All in all at this point I wasn’t very inspired, and after a long days work decided to give up.

Some time later I decided to try and tackle it a bit further and instead see if I could get XBMC using Raspbmc to work. Well of to the downloads section finding a big banner warning you off as the feature wasn’t ready for release, didn’t work, but for some reason was there anyway. From a website design point of view if you know a feature on your website doesn’t work don’t put it there. People have a lot to do and tend to scan through websites looking for the information they want. If you give them the option to click a button which gives them want they want they’ll press it. Truth be told I didn’t read the banner, so I went ahead ran the installer and it didn’t work. As I said if the option is there expect it to be pressed.

Also what I don’t like about the Linux community is that it is seems very negative full of people who think they’re clever and who will flame at you as soon you ask a simple question. This tends to put me off Linux ‘a lot’ and why I tend to steer clear of it, so the comment ‘We on the forums are sick and tired of people complaining that the installed was stopped at “Install will continue from here”’ didn’t put me in a good mood as quite simply the option shouldn’t yet be available.

Overall I haven’t had a good experience, and I still haven’t seen anything which would inspire me to recommend it to anyone. To give the Raspberry Pi teams their due this is still very early days, and there is a ‘long way’ to go before it’s ready to be put in the hands of school children or technophobe parent buying one for there child.

Bamboo touch and pen graphics tablet

I’ve taken the plunge and bought myself a Wacom Bamboo Touch and Pen graphics tablet (CTH-470). The conclusion, it’s amazing!

The Bamboo tablet was very easy to install and came with lots of tutorials talking over all the main features of the graphics tablet. After about half an hour the graphics tablet is very intuitive and I found I didn’t want to put it down.

Over Christmas I was bought Photoshop Elements 10 – you can get some fantastic deals on Photoshop Elements so it’s worth looking out for them. Photoshop Elements isn’t quite Photoshop but for someone just starting out with digital illustration or photo editing it’s perfect and well worth the price. I’ve used Photoshop demos before so the user interface wasn’t too much of a shock.

One of the main draws which the tablet has for me over using a notepad and pen is that I like to learn by tracing. Using the tablet it’s really easy to upload an image, add an overlay over the top and start tracing the image. It’s quite good to quickly get the feel of shapes and much easier if you make a mistake than paper (you can just hit the undo button rather than scrabbling for the rubber). Though I’m sure many purist artists would say that it’s cheating and that I’m missing vital lessons by taking this route, in my defence I’ve tried this route before and keep on getting dishearted and giving up, so this is just a different approach to encourage me by trying it a different way.

Over the next few weeks I’m planning on learning how to use the tablet and improve my drawing. I’ve even come up with a new ideas for a slightly different art related blog, so stay tuned for how I get on.

Bluestacks, Android app player

Bluestacks is an Android app player for Windows, enabling your apps to break free from your phone onto your desktop. As anyone who has ever tried to use the Android device emulator will know being able to run apps on your PC has been until now very slow and pretty much unusable. Bluestacks changes that by giving you the same level of performance on the desktop as you would expect on an embedded handheld device.

I installed Bluestacks as soon as it was released, and so far I have been pretty impressed. Currently Bluestacks will only install on a Windows 7 PC however Bluestacks reports that support for older operating systems are coming soon. If you install the Bluestacks Cloud Connect service the Blustacks infrastructure will automatically synchronise the apps installed on your phone to your PC. At the moment not all apps are support, such as premium apps such as the ever popular Angry Birds. For these premium apps you will need the currently unreleased Bluestacks Pro.

Bluestacks also comes with the Android Debug Bridge (ADB) which is used by Android developers to debug, test and configure Android apps and the Android device. This is pretty useful, though it was quite a shock the first time as I hadn’t noticed that the Eclipse debugger had connected to Bluestacks instead of my Android device, which resulted in me trying to work out what was wrong with my development handset. If you want to debug Android apps using Bluestacks you can really easily bring up the Bluestacks Android handset using the following command, which is now a shortcut on my desktop.

"C:Program Files (x86)BlueStacksHD-Frontend.exe" Android

Doing a bit of testing and using the API Demos which comes with the Android Development Kit showed that there are some problems still with Bluestacks such as some APIs not all the working, and some minor points like the mouse scroll wheel scroll is back to front. The Bluestacks team have made a very good job of their on-line community, being very quick to respond to users suggestions and bug reports.

Other than that Bluestacks is pretty awesome, I’ve not yet really put it through its paces but I’ll certainly be looking forward to Bluestacks Pro to come out. Just hope that the price is right.

You can download Bluestacks from bluestacks.com

Back to Android

I’m working on some graphics intense Android applications, one for a product I hope to launch early next year and another one of work. Unfortunately I can’t talk about either project, though what I can say is that both products are unique in the Android market place. Watch this space to find out when these products are going to market and for more information. It’ll be worth the wait believe me.

I am programming in Java (no need to go native yet), I learnt to program in Java during my masters degree and used it for 5+ years so I am not having any problems there. Android I’m discovering is quite a nice framework to program, it is very well documented with lots of books and demonstrations online so it is very easy to locate information and solve problems. I also found downloading the Android source code a great help too, especially when there is some specialised piece of functionality that you need to code and you’d like to have a peak under the hood to find out how to works.

So far I’m finding the hardest thing to cope with is the Android Emulator, which has both its pros and cons. The pros of the Android Emulator is that I can go to any and all versions of Android and test out my application, I can change features about the handset, and easily change the screen resolution. The cons of the Android emulator is that it is very slow, this is something that I don’t entirely understand yet. I’m coding on an Intel Core i7 at work and an Intel Core i5 at home, both machines are pretty powerful but the emulator is still very slow, oddly enough the CPU use is also quite low so I don’t understand the poor performance, unless I’m missing something. The emulators poor performance though is in many ways also a pro, my HTC Desire S has a pretty powerful 1GHz core and powerful GPU, whereas some devices that are likely to run my software (such as an HTC Wildfire) will have lower end chips without all the power, so it’s quite interesting running metrics over the emulator and seeing where I could improve my code.

Being someone who has been working on embedded systems for well over 6 years I have a pretty firm desire for anything I device to be low CPU & low memory intense. It’s quite interesting playing around with the Android APIs and trying out different methods of performing the same task whilst also keeping the under experience smooth. There are so many ways of doing anything.

A bit about my app. As I’ve said the app is pretty graphics intensive but is designed to appeal to both children and adults. Currently I’ve got a rough sketch of the user interface, and recently been investigating the requirements and flow of the application. A lot of people have said that most Android applications are low quality which is the main criticism of Android. I hope that my app will not be one of them, I’m putting in a lot of upfront thought and design into the application. I hope this week to have turned my rough drawings into user interface mock ups by the end of the week, and also hopefully start coding it soon. As always I’m following the old adage “Design is King”.

So far so good. Both projects are progressing well, and I hope to have both projects out of the door soon.

Wonders of the humble £1 shop

Pound CoinsThe UK has seen a seen a large rise in £1 shops, where you’ve guessed it everything costs £1. My recent acquisitions include an 5-in-1 card reader, 4 port USB hub and some phone styluses (for artwork apps), totally a whapping £3. If I went to a high street shop (or even online) I would be looking at a total of more than £10 for something of similar specifications. What is also amazing is that the items are of reasonable quality and should certainly last a good amount of time. The styluses for example are perfect for what I needed them for, easy to use & hold, and much better quality than some styluses I’d previously bought for £5 elsewhere.

So if you want some computer accessories I do recommend trying out the £1 shops, you may be surprised what you come out with.

BootStrap from Twitter

Today I heard about Bootstrap from Twitter and decided to take a look. Bootstrap is a collection of HTML & CSS conventions and was developed by Twitter as a single conventions library. Bootstrap is pure CSS and HTML which has been tested and works on all modern web-browsers. It is very well documented with some great examples. I’m amazed at how little code can be written which achieves very powerful results. The examplehero.html page alone gives a good basic example of using the library to rapidly create well designed, well structured feature rich designs. The docsindex.html page though is amazing and really demonstrates the simplicity and power of the Bootstrap library.

Another tool is Less also from Twitter which is a powerful style sheet language which extends CSS. Less is basically CSS with the addition of global variables and nested styles, two things which are most definitely missing from CSS in my mind. You can then run the .less file through the Less tool and it will generate the CSS for you (my preferred option), or include the .less file and it’ll generate the CSS from the on the fly. Less is certainly something to be looked at by anyone doing web development as it massively simplifies the task of editing and getting right your CSS files.

Using Bootstrap for only a couple of minutes and taking a look though the code has already taught me a lot. I’m certainly going to go back over my implementation and reimplement several things. Less is a pretty great tool too.

Web technologies market trends

The current market trend is in web-technology and creating web-based applications. A large number of companies are moving their traditionally based desktop applications to the internet written in HTML, Javascript and CSS. The great advantage to this is that webapps run anywhere a user has a browser and an internet connection. This includes access from your home PC, tablet, laptop, mobile phone and internet enabled TV. This is great as users can simply sign up to a service, log-in and and start using the software. Almost gone are the days of having to download, install, set-up, maintain and upgrade the software. Instead the software in on a server maintained by its creators & you simply have to sign up and log-in.

Another great advantage to web-technologies is that HTML, Javascript and CSS run anywhere on any platform supporting the latest web-standards. It doesn’t matter if you are running on Linux, Windows, Mac, Chrome OS if you have a browser it’ll work anywhere. This is one of the founding principles of Google Chrome OS, where the user doesn’t need a platform where they can install software, instead needing an internet connection and a little storage to save files and webapps in offline mode.

Another great advantage to webapps is that it’s easy to “try before you buy”, you can login and try the demo or a low function version of the software, if you want more functionality you can subscribe to the the service, if you don’t want it any more then just stop the subscription.

This does have a few draw backs, traditionally when you buy, download and install you have a copy of the software, forever. So it the company goes bust, the licensing model changes or support is stopped you still have the software on your computer and you are free to use and reuse it. Webapps though don’t have this luxury, if the company goes bust, the licensing model prices you out of the market, changes to Terms and Conditions or the server goes down then you simply don’t have access any more.

Webapps also have other trade-offs. The biggest problem for webapps is speed. Web-applications are written using interpreted code, this means that the web-browser reads the code using a language close to what a human can understand. Typically desktop PC software is written in a programming language and compiled to something understandable by the computer, in the computers native language (hence native code). For interpreted code the web-browser has to read the code, work out what each instruction means and convert it to a form that it understands each time the software is run. This does provide a bit of a performance and memory cost. Many modern browsers are though very good at doing this task, desktop computers are becoming increasingly powerful, so most users day to day don’t notice the performance bottlenecks. It’s mainly when you have complex data-processing tasks, or where you have embedded devices which don’t have the performance processing capabilities that these problems are observed.

Webapps though can be stored and used on devices. For example HTML 5 now introduces offline mode so if you loose internet connection the webapp is cached in your browser, and your files and settings re-synchronised with the web when you reconnect.

Many phone App developers have seen the advantage of using web-technologies. Products such as PhoneGap enable developers to create their application in HTML, CSS and Javascript and have these packaged up as native or near-native packages which can be sold in AppStores and Market places, without ever needing to access the internet again. This is a great advantage as by writing the software using these technologies the application can be written once and deployed to a wide variety of devices types.

The future is certainly bright for the web and all those who can see opportunities to harness its advantages and capabilities.

Android development, my first steps

After several years with my beloved Sony Ericsson K800i I recently decided that technology had moved far enough and it was time to enter the 21st century and buy myself an HTC Desire S. The HTC Desire is great, the Android user experience is great and it’s after a little bit of playing around and learning the features and quirks pretty nice to use. Unsurprisingly within a few hours I already had some ideas for projects that I could do on the HTC Desire and hopefully at one time or another get onto the Android Market place.

I used the Java programming language during my Masters degree and I also have some experience using it in industry, so I’m pretty comfortable with it. I was also pleased to see that the IDE of choice for Android development is Eclipse. After designing and creating a paint plug-in (with layer, blend modes, tools, effects support and even able to load Photoshop files) for Eclipse during my dissertation I’m quite comfortable with the Eclipse IDE and its way of doing things.

First thing first was to run through the tutorials. I started off with the tutorials at android.com, but found that although a pretty good way to start programming that they didn’t really have much on using the 2D functionality, also I like to sit in the park at lunchtime so a book, a notepad and a pen are ideal. Also when you are designing an application being well away from a computer is the best approach, but more about that at another time. I took a look at the forums and Amazon and finally found the book Hello, Android: Introducing Google’s Mobile Development Platform by Ed Burnett. Hello, Android is a pretty good and well written book in my opinion. After the first few chapters you are pretty much ready to get up and running on Android and producing some pretty good applications. It is also good if you are like me a little rusty on Java or using the Eclipse IDE and just need a few polite reminders to kick start those brain cells.

Well I’m pretty much nearly finished on the Sudoku example from the book and several tutorials on android.com. Generally I find Android development pretty nice. It’s great how you can design the User Experience in a clear and well defined XML schema. The architecture appears pretty good too and it’s fairly straight forward to create well designed, clear and scalable user interface designs. The SDK is well defined and it’s fairly straight forward to find what you need, or a tutorial on the internet to help you out. The Eclipse tools are also quite handy and after a little searching around you can find lots of time saving features. I would also add that if you are serious about developing for Android use a real Android phone, although helpful at some times the emulator is painfully slow even on an Intel Core i7, I would love to see the Android team put more effort into optimising and accelerating the emulator to be more like a real device.

So all in all pretty impressed. I’ll let you know how I get on further down the line.