Tuesday 9 December 2014

The Buzzphrase Generator -Javascript

The Buzzphrase Generator

This buzzphrase generator is still in development and is for savvy management and sales people to use to bamboozle potential clients

The Buzzphrase

Thursday 4 December 2014

Ubuntu 14.04 LTS Installation Guide for Chromebook C720

Installing Ubuntu on an Acer Chromebook is a great way to gain more control over your laptop and run some custom software in an unrestricted environment. Fortunately it is possible to switch out ChromeOS entirely for Ubuntu which, in my own opinion makes for a great personal operating system to use.

Installation Guide

  1. Firstly, review the hardware required for this guide.
  2. Next you will want to create a recovery disk
  3. Now that you have your recovery disk, proceed to enable developer mode
  4. At this stage, if you've already experimented and have chrubuntu, there's a good chance you don't have the space to download and install a linux distribution. follow the recovery guide to restore your chromebook to default. If you need to do this you will need to enable developer mode after you have followed the recovery guide.
  5. Once developer mode is enabled you can proceed to download your preferred version of Ubuntu
  6. Once you have downloaded your preferred version of Ubuntu you will need to prepare a USB disk to make it into an Ubuntu Installation disk. You can do this by following the Ubuntu USB preparation guide

Hardware Required

  • 1 x 4GiB+ or greater USB Thumb Drive or SD Memory Card for creating a Chrome recovery USB
  • 1 x 2GiB or greater Memory Card for creating an Ubuntu installation media disk

Software Requirements

Below are various distributions of Ubuntu that have been customized by a gentelman named Hugh Greenburg for use specifically on the Acer C720 Chromebook. Any of these you wish to install on your chromebook, personally I'm partial to Xubuntu as the desktop environment XFCE (XFACE as I like to call it) looks fantastic and is very fast and lightweight.

The full list of available Ubuntu and a few other variants of linux are listed at distroshare however the most commonly used ones I have listed below

Chromebook Recovery USB Preparation


First up, we're going to want a way to get your chromebook up and running if there is a catastrophic failure.
  1. Load ChromeOS as you normally would and login.
  2. Once your chromebook is logged in, get the Chromebook Recovery Utility provided free of charge by google.
  3. Install the Chromebook Recovery Utility as an App in Chrome
  4. Launch the newly installed Recovery Utility from chrome apps, click on Get Started


  5. On the next screen choose 'Select a model from a list'


  6. Choose Acer and Acer Chromebook C720 as this is your model.
  7. On the next screen you will be asked to insert your USB or SD card, Insert the 4GiB (or bigger) USB Thumbdrive or SD Memory card into the appropriate port on your chromebook. Wait approximately 30 seconds to give ChromeOS time to recognise and automatically mount your memory stick so that it is available to the Recovery Utility, in practice the Recovery Utility should detect that you have inserted the USB stick within a few seconds.


  8. In the example above you can see that it has detected a 7.7GB flash drive. Select Continue.



  9. You will be presented with this screen. This is your last opportunity to save the files from the memory stick elsewhere, such as googledrive for safe keeping. Once you click 'Create now' the memory stick will be erased and the ChromeOS restore image written onto the stick. Once you are happy to proceed, click 'Create now'


  10. Once the process has completed choose 'Done'

Enable Developer Mode

The purpose of this section is to set up your Chromebook to boot into Developer Mode so that access to the underlying Linux distribution can be gained. Once access to the underlying operating system is gained ChromeOS can be modified and we can proceed to obliterate any remnants of ChromeOS on the Chromebook

  1. Boot into recovery mode
  2. Press and hold the Ctrl key and press d
  3. Allow your chromebook to restart, it will inform you OS Verification is off.
  4. Press and hold the Ctrl key and press d
  5. ChromeOS will inform you it is preparing system for Developer Mode. This may take some time so be patient

Enable Recovery Mode

This section describes how to boot into recovery mode. Recovery mode can be used to restore your chromebook to factory defaults using a recovery disk

Recovery mode is also used to enable Developer mode.

  • Make sure you Chromebook is powered on, if it isn't already then proceed to power it on and log in as usual
  • Once logged in press and hold the Esc and Refresh keys and whilst holding them down press the power button
  • The Chromebook will restart and inform you that Chrome OS is missing or damaged. Don't worry it isn't, this is a standard message and this is Recovery Mode
  • Enable Legacy Bios & USB Booting

    If you have not already, you will need to follow the steps to enable developer mode and then proceed to perform the following instructions

    1. Make sure that your Chromebook is switched off, then power it on
    2. Once you reach the login screen, log in to Chromeos as normal
    3. When you have logged in, press and hold the Ctrl key and Alt key at the same time and press the t key whilst still holding down ctrl and alt
    4. The Window that pops up is the ChromeOS Shell - Chrosh for short, clever huh? Type shell and press return
    5. Switch to an elevated BASH shell by entering the command sudo su. This command switches the user to the chronos account in the shell, by default there is no password for the chronos account. Please take care to enter commands correctly in this prompt as you can seriously damage the operating system - fortunately for us we have a restore disk created earlier should any mistakes be made. If you have not prepared one please proceed to prepare a Recovery Disk
    6. Type or paste the following command without the quotes "crossystem dev_boot_usb=1 dev_boot_legacy=1" and press return. This command puts your Chromebook into a Legacy BIOS mode and also allows it to boot from USB media
    7. Close Chrome
    8. Restart your Chromebook and Legacy BIOS and USB booting will be enabled

    Ubuntu USB Preparation Guide

    Presuming that you have followed the installation guide to this point, you should have your chosen copy of Ubuntu downloaded to your chromebook. Before continuing, plug in the USB stick or SD card you wish to use as the USB installation media

    1. Navigate to Apps and then Files
    2. Highlight your downloaded distribution and right click on it, choose the rename option
    3. You will notice the file name change to blue to indicate it is being edited, type "ubuntu" without the quotes and press enter
    4. Open the chrome shell by pressing and holding Ctrl + Alt + t
    5. Type shell and press return
    6. Type sudo su and press return
    7. When prompted for the password, hit enter and press return
    8. Type the following command find / -name 'ubuntu.iso'
    9. You should see a few results, it's likely the one you want is /home/chronos/user/Downloads/ubuntu.iso however if yours is different write the path down
    10. The next step is to find out what the physical address of the USB disk you will be using as the installation media. Type fdisk -l and press return
    11. You should have several drives listed in your terminal. The important information to take note of is the Device Boot field. Under this you should see information like /dev/sda1
    12. /dev/sda1 is the Chromebooks built in solid state drive, ignore this and look for one such as /dev/sdb1, It should have the system labelled as W95 FAT32. This indicates that it is your memory card, although it may also be of type ntfs-3g
    13. Take note of the Device that is your memory card, you will need this for the next step
    14. Caution, be extremely careful with this command, do not get it wrong The command is a composite of the values you recorded in step 9 and 12 the command is "dd if=step9FilePath of=step12FilePath" without the quotes therefore using the examples above the command would be dd if=/home/chronos/user/Downloads/ubuntu.iso of=/dev/sdb1
    15. The command will not appear to have done anything if it is working, it takes a while and there is no progress indicator. When it is done it will tell you it has copied the files

    Recovery Guide

    1. First, if not done already, enable recovery mode
    2. Now that you're sitting at the "Chrome OS is missing or damaged" screen you need to pop your recovery disk that you made using the recovery disk preparation section of this guide into the chromebook
    3. Chrome OS will automatically install

    Sunday 24 August 2014

    Evolus Pencil UI Mockup Tool - Metro Icon Pack

    Recently I've discovered the Pencil project for designing and mocking up GUI interfaces.I've found that it is quite excellent for mocking up interfaces and it's also multi-platform.

    Sadly though it's a little lacking in the Icon department out of the box. I recently discovered the excellent Modern UI Icons project created by Austin Andrews. As Pencil uses SVG (scalable Vector Graphics) for it's controls and the Modern Metro UI icons back also uses SVG, I decided to convert the Modern Metro UI icons pack into something that Pencil can understand.

    There are over 1000 metro like icons in the modern metro ui icon pack and it is licensed under a fairly nice cc based license. You can download the pencil icon pack here

    Tuesday 27 May 2014

    WPF Dynamic Controls

    Well recently, actually specifically today I've had a requirement for the ability to dynamically add controls to a Window in a wpf project. The first thing I did naturally was to google the problem, I figure there's no point reinventing the wheel and all that, but it turns out there aren't any hard and fast guides to achieve the ability to dynamically add custom controls to a wpf project.

    Anyway I decided to rectify this by creating a ListView in my WPF Window, and settings its item source to a collection of custom controls, it turns out this worked exactly as I hoped.

    The Window with no dynamic controls added to it looks as below
    Window with no dynamic controls added




















    And it looks like this with a couple of custom controls added to it



















    To achieve this I created a UserControl xaml form called DynamicControl, added a Label, ComboBox and TextBox as the base control to be added to the ListView, the XAML markup for this is below.
     <UserControl x:Class="DynamicControlTest.DynamicControl"  
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"   
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"   
            mc:Ignorable="d" >  
       <Grid>  
         <Label Content="Label" HorizontalAlignment="Left" VerticalAlignment="Top" RenderTransformOrigin="-0.132,0"/>  
         <ComboBox HorizontalAlignment="Left" Margin="43,0,0,0" VerticalAlignment="Top" Width="77" Height="26"/>  
         <TextBox HorizontalAlignment="Left" Height="26" Margin="135,0,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>  
       </Grid>  
     </UserControl>  
    

    The XAML markup for the MainWindow view is very simple, it contains two buttons and a ListView, I've styled the ListView to have no borders and to hide the column headers to make it appear as if the dynamic controls are being added directly onto the Window as opposed to a control in the Window.

    The xaml markup for MainWindow.xaml is below
     <Window  
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
         xmlns:local="clr-namespace:DynamicControlTest" x:Class="DynamicControlTest.MainWindow"  
         Title="MainWindow" Height="350" Width="525">  
       <Grid>  
         <ListView Name="listView" HorizontalAlignment="Stretch" Margin="10,35,10,10" VerticalAlignment="Stretch" BorderThickness="0" >  
           <ListView.Resources>  
             <Style x:Key="lvheaders" TargetType="{x:Type GridViewColumnHeader}">  
               <Setter Property="Visibility" Value="Collapsed" />  
             </Style>  
           </ListView.Resources>  
           <ListView.View>  
             <GridView AllowsColumnReorder="False" ColumnHeaderContainerStyle="{StaticResource lvheaders}">  
               <GridViewColumn/>  
             </GridView>  
           </ListView.View>  
         </ListView>  
         <Button Click="Button_Click" Content="Add Control" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75"/>  
         <Button Click="Button_Click_1" Content="Remove Control" HorizontalAlignment="Left" Margin="407,10,0,0" VerticalAlignment="Top" Width="100"/>  
       </Grid>  
     </Window>  
    

    And finally the code behind that allows a user to add or remove items/controls dynamically to the window
     using System.Collections.ObjectModel;  
     using System.Windows;  
     namespace DynamicControlTest  
     {  
       /// <summary>  
       /// Interaction logic for MainWindow.xaml  
       /// </summary>  
       public partial class MainWindow : Window  
       {  
         ObservableCollection<DynamicControl> dynamicControls = new ObservableCollection<DynamicControl>();  
         public MainWindow()  
         {  
           InitializeComponent();  
           listView.ItemsSource = dynamicControls;  
         }  
         private void Button_Click(object sender, RoutedEventArgs e)  
         {  
           dynamicControls.Add(new DynamicControl());  
         }  
         private void Button_Click_1(object sender, RoutedEventArgs e)  
         {  
           DynamicControl[] dca = new DynamicControl[listView.SelectedItems.Count];  
           listView.SelectedItems.CopyTo(dca,0);  
           if(dca != null && dca.Length > 0)  
           {  
             for (int i = 0; i < dca.Length; i++)  
             {  
               dynamicControls.Remove((DynamicControl)dca[i]);  
             }  
           }  
         }  
       }  
     }  
    

    And that's all there is too it. As you can see I create an ObservableCollection called dynamicControls that stores objects of the type DynamicControl. I set the ListViews ItemsSource to this ObservableCollection so that the view can track changes and reflect these on the interface. When you add a new control all you need to do is add a new DynamicControl item to the dynamicControls ObservableCollection.
    I do very much the same to remove items, but as I wish to allow multiple items to be selected I create a DynamicControl array, copy the contents of the ObservableCollection to it, then I iterate over the array and call the ObservableCollection Remove function to remove each selected DynamicControl from the ObservableCollection. Hopefully this will help you in creating your own Dynamic Control lists.

    Saturday 20 April 2013

    Mobile gaming isn't the future

    Mobile gaming isn't the future

    There's a trend at the minute that people seem to think Mobile gaming on platforms like Android and iOS are the future for video gaming. Most critics and indeed, many people within the industry seem to believe that gaming on the P.C and  games consoles is going to or is on the decline due to mobile taking dominance. Many people think console and P.C gaming is already on the decline and past its prime.

    I think people are over estimating gaming on mobile platforms. It is true that more people own smart phones now that are capable of playing casual titles than the number of people who own games consoles. The thing is games on smart phones are usually quite casual. Take for example Angry Birds... Angry Birds is quite a fun game and I've sunk a few hours into it during the commute to and from work. But there's the thing, I do it when I have a spare moment in the day. I don't really bother with casual Android gaming that much when I'm at home. Mobile gaming isn't going to stomp dedicated gaming machines and P.C's flat and leave them in the dust for the simple reason that mobile gaming is a fairly casual experience.

    If I want to play Crysis, Dark Souls, Supreme Commander, ArmA3 or the like It's just not going to happen on a mobile platform. It has to be on a P.C or Console. Playing these sorts of games isn't a casual experience and casual devices usually aren't powerful enough or intuitive enough to use with a reasonable control scheme for those game genres. FPS games control schemes handle extremely poorly on mobile phones, they handle reasonably well on consoles and absolutely brilliantly on a P.C. Therein lies an interesting point, AAA titles, many of which are FPS titles won't make it to mobile platform.

    TLDR? Mobile gaming is part of the future of gaming, not the be all and end all.

    Thursday 12 July 2012

    Ouya - Probably not what it seems

    In the last 48 hours a new Kickstarter campaign has been launched to promote the future launch of a home games console called Ouya. The Ouya is purported to be ready for launch and to go on sale in March of 2013 which all sounds excellent. However I watched the video and something just didn't quite sit right with me, it seems the video is geared to generate hype by using buzzwords, have a look for yourself!

    First of all the reason they give for developing Ouya seems HIGHLY suspect if viewed in a critical manner. The Ouya page on kickstarter states that there's a brain drain of creative people moving away from console development to the Android platform. This is not true at all, Microsofts Xbox Live is highly supportive of creative people and has a very large section dedicated to indie games. You can pick up a large number of really cool indie games if you own an Xbox console. So the reason to develop a new console that's friendly to develop for seems... off somehow. Especially considering current gen console manufacturers are friendly toward indie development.


    Ouya claims developers MUST make all games free to play in some way shape or form, so that they can use the phrase "All games on Ouya are free to play". They completely ignore the fact that free to play is a very specific business model, a completely legitimate model I actually think is good for developer and gamer alike. Making a game and providing a demo of it does not make it free to play however. This is Ouya trying to use buzzwords to their advantage.

    Except not really. If it's a demo it's free to play... Honest!


    OUYA is supposed to be friendly toward indie developers, yet indie developers MUST use OUYA's propriety store system to sell their games, and pay Ouya a 30% cut of the sales - which is astronomical if you consider that Google offer the same, but provide access to ALL android devices, this doesn't sound like opening the games console up for development if you ask me, it's closer to locking development of your android title specifically to one device. I have developed for Android in the past and the SDK is completely free to use, OUYA states that the SDK will be included on all of their consoles, much in the same way that it is on ALL ANDROID DEVICES ALREADY. This isn't revolutionising. This is the same as plugging your android tablet into the T.V by HDMI and connecting a bluetooth control pad to it, which I can do right now.


    Let us also consider that OUYA purports to have a selling point of $99. Consider that the hardware inside it is quite advanced, a Tegra3 quad core system isn't cheap. If we look at the raspberry pi, an Open Source hardware project that uses a single core Broadcom SoC at 700MHz with 256MB Ram, and no internal storage by default, oh and it has no chassis... and that it costs $35... Raspberry Pi is sold very VERY close to the manufacture cost as the Raspberry Pi foundation is a charity.


    How is it that Ouya is going to sell for $99 with the hardware that it has;1GB DDR3, Tegra 3 chipset quadcore 1.5GHz CPU, 8GB internal storage, Wifi, Bluetooth and HDMI? It seems highly suspect to me.


    Additionally they say that they support hackers gaining access to the system. That's great in some ways, seeing linux on such a high speed system would be great at that cost (if that's even possible which I highly doubt)... But then as piracy is already rife on Android, why would I dedicate time developing games for the OUYA when my software can easily be stolen from the platform? It stinks of suspicious to me.


    Another major issue is the lack of support for the current Android eco-system. they state themselves:


    "Because OUYA is based on Android, any app developer could publish their Android app to OUYA. " 


    If they supported the Google Play store, all Android apps and games would be available instantly on their console. Why would you /need/ to "publish" to Ouya?


    Additionally I have seen mention to two games they /may/ have on release. This doesn't seem like a stellar launch catalog if you ask me...


    Developers have to pay them a dollar shy of $700 ($699) to gain access to early development consoles, yet they state the SDK will ship with all consoles. This doesn't encourage me as a developer to develop for their system to give them a day one release title.


    Another major issue I have is this from their kickstarter campaign:


    And if you’re international, we want your help too…gaming is global, and we will get you OUYA. We still have a lot to figure out in regards to rights and countries, but it can be done. Look what we've accomplished already! 


    All I've seen that they've accomplished so far in the video is that they've made a controller from wood, shown a store that looks suspiciously like Microsofts Metro U.I with a grey skin and talked a LOT of marketing buzzwords without backing up what they're saying.


    Microsoft Xbox Metro U.I

    Ouya U.I Can you spot the difference?


    On the controller....
    We are designing the controller to be a love letter to console gaming. It will have everything you've learned to love: fast buttons, triggers, laser-precise analog sticks, a D-Pad – and it will have a touchpad for any games making the trek from mobile or tablet to the TV. It'll be just the right weight. We are working with select developers to play-test the controller through development.  We call it 'the Stradivarius of controllers,' and we hope developers will be inspired to take gameplay to a new level with it.


    They haven't shown a photograph of its final design, if I took a picture of half a control pad to an investor when asking for investment, they'd laugh me out of the room. The same goes for this. Also on another note, they're essentially putting a clever marketing spin on this controller; it'll essentially be a REGULAR control pad is what they're saying, with a touch pad.


    Here's our controller, can we has money plix? Where's the other half? This is it!



    My final thought to leave you with is this: If these people approached a large investor, would they secure investment? The answer is no. Hence the kickstarter, this isn't likely to be an attractive business proposal. If you developed video games would you want to release your games on a fundamentally insecure platform?


    From the video:
    "We'll have all the game genres you love! Shooters, Platformers and Rpgs, we'll have games from major game publishers and indies too!"


    All I could think in my mind when she said that was this:



    Sunday 20 November 2011

    Car Insurance - Unaffordable for new Drivers

    As many of you probably know, car insurance has always been one of those things that is a bit of a pain but is a requirement to drive. It's like a toasted sandwich maker - you'll be wandering around the gadget section of a big store and you'll see a toasted sandwich maker and you think to yourself "Yes! this is the answer to all of my dinner problems!" you then swap a lovely crisp (or mangled) tenner for a toastie maker and you're off!

    Just like your car insurance documents, the toasted sandwich maker will inevitably end up in the dank recesses of some cupboard and not emerge for 26 years, until it's really needed which is probably going to be never.

    Unlike a toasted sandwich maker however, car insurance is needed if you want to actually own and drive a car. Think of it if you will as like hiring a body guard when you visit a dangerous country in Africa. Sure you could try and skip out on hiring a body guard but then, you're likely to get mugged, kidnapped and paraded around on television much like in Big Brother, except you might actually get shot in the face. You have to buy car insurance or the police will come around your house and kick your door in, this is inconvenient as it may interrupt your thoughts as you're debating with yourself as to whether you should make a toasted sandwich.

    This brings me to my real point here though, new drivers are charged exorbitant sums of money to even consider driving a car, I'm talking sums close to the value of David Camerons pay cheque, or at least the final 4 digits of it.
    I went on the internet today and found that as a new driver I will be charged the lovely sum of £2400 ($ 3,778 for the Americans here) if I decide to buy a 1.3 litre engined, Suzuki Swift GLX 5 door hatchback with 58,000 miles on the clock. Let me put that into perspective, that's like going out and purchasing 240 toasted sandwich makers. The only difference is you probably have room in your desk drawer for the insurance papers, assuming of course your insurance policy isn't the height of Mount Everest. I suspect the insurance papers will be closer to the height of 240 toasted sandwich makers stacked on end however.

    So a 24 year old newly minted driver can't afford insurance for a car worth £450 (For the Americans here that's $700) "So what?" I hear you say! Well it's not just newly minted motorists who are facing these exorbitant fees, it's also Joe Bloggs and wife who have lived at ye olde village lane for the last 35 years. People who have never had an accident, never claimed on insurance and are responsible motorists are suffering this as much as new drivers, hm.

    A typical twenty something driver will more than likely be a student, and if not is quite likely to be just starting out in the career world or job hunt, so this puts them immediately at the point in life where they're quite likely going to need to drive to get to a job. This is an issue as most people in this age bracket are economically disadvantaged or will be if they have to fork out thousands for insurance.

    Buying a second hand car isn't really an issue, a second hand car can be acquired from the tin'ternet for about £500 to £1000 which is about $800 to $1600 respectively. A student can forego their typical alcohol allowance to get a cheap runabout car for next to nothing, a person out of work can save £20 a week from their job seekers allowance and potentially buy a cheap car within about 5 to 6 months. All is well in the world I hear some people thinking! Well that's not quite right...

    To insure such a vehicle you're going to need to pay very close to five times what the vehicle is actually worth. So let me get this straight, do the insurance companies believe that new drivers will completely destroy their car FIVE times in a year?! Is that even possible? I suppose it is if you keep welding it back together after it's been smashed to smithereens. I know, I know, insurance is primarily to protect other peoples assets, if a new driver gets the brake pedal confused with the gas pedal and plows through someones Gazebo the insurance will cough up. The issue according to those in insurance is that people are driving without insurance which is driving the cost of it up, although I can see circular logic here; if people can't afford insurance but need to drive, they'll drive without it.

    Insurance companies are assuring us that their prices are going up to match the dramatic rise in insurance claims that have been occurring in the last year or so. I can understand that, but considering that they're claiming record profits such as here I think it's safe to say this isn't really the case.

    If something isn't done soon, there will be record numbers of jobless twenty something graduates who can't get jobs because they can't physically commute to job interviews and/or their places of work.
    Maybe we'll get lucky enough that we'll only need to buy a more realistic 90 or 100 toasted sandwich makers a year instead? Who knows!

    Monday 24 October 2011

    Augmented Sensory Perception

    I'm not really sure about what it is most people who actually ever bother to read this blog do, but as you can probably gather from this blogs title, it's about tech. And so with this in mind I shall discuss my current university project which also happens to be my thesis subject material and is tech related.

    Currently there is a gigantic variety of differing technologies which are aimed at aiding people by providing the user with additional information about the environment around them. I see this revolution in portable information to be an incredibly good thing, for one I can't even begin to say how many times google maps has helped me out when I've been lost. I'd just whip out my smartphone and load googlemaps, tell it to find me and then input my destination and away I went.

    Solutions like google maps, G.P.S and what not are all brilliant, but all have one or two snags. For one google maps and G.P.S technologies in general rely on static information being true, for example google maps may display that the nearest bank is two blocks away but when you arrive you discover it's been knocked down and a starbucks built over the top. My point here is that a lot of technologies can't give real-time information about the environment at large around the user, and those that can tend to rely on providing the user the information via audio or visual cues.

    My project, Augmented Sensory Perception is meant to partially address this issue by providing people with VibroTactile feedback directly proportionate to the physical distance between a person, and physical objects around them.

    Ultrasonic VibroTactile Belt
    As can be seen in my rough sketch, VibroTactile units will be attached to a belt, these units will transmit short bursts of ultrasonic sound much in the same way that dolphins or bats do to 'see'. The unit will calculate the distance between the sensor and the object that the sound has bounced off of, as is normal in echo location. The unit will supply the wearer with vibrational feedback on the belt at differing intensities according to the distance between the wearer and the physical object.

    It is using vibrational feedback that this technology is different to many existing technologies. Specifically this kind of setup can aid visually impaired individuals to navigate the world at large by providing vibrotactile feedback to give them a better understanding of their proximity to objects within range of the ultrasonic sensors. The main issue that visually impaired users have with most existing technologies is that the existing tech specifically relies on the second most prevelant human sense - hearing. As visually impaired users rely on their sense of hearing to perform tasks that most would use their sense of sight to perform, it seems counter intuitive to use the sense of hearing for assistive technologies as they will tie the visually impaired users most prevalent sense.

    Having established that VibroTactile feedback can be beneficial to users who are visually impaired, this same technology can also be adapted to be used in vehicles. Whilst it is not uncommon to find vehicles that use ultrasonic sensors to aid the driver by providing auditory and visual alerts on a screen when the vehicle is getting dangerously close to solid objects, it IS unusual to provide the driver with VibroTactile information with regards to the proximity of objects around. It would not be difficult to modify a car seat and seatbelt to provide vibrotactile feedback according to objects around the vehicle.

    My project therefore does not target one specific group of potential users, but rather the project is to design, develop, build and implement an abstract technology that can be adapted to various applications.

    I have designed a rough schematic for part of the system, the ultrasonic array, micro controller for the array and a way of interfacing the sensor and microcontroller to a P.C (or another embedded system).

    I'll be updating this blog with my progress as I go, It is my intention to keep the entire project open source and all schematics and hardware I design will eventually be released under an unrestrictive license for others to expand upon and use in their own research.

    Friday 21 October 2011

    Steve Jobs Claimed that Android was a blatant ripoff of Apple products

    As the title says, the late Steve Jobs declared that the Android O.S was a 'stolen' idea from Apple.
    I refute the claim that Android is a stolen Apple concept. Read the following excerpt from this BBC article.


    "Steve Jobs said he wanted to destroy Android and would spend all of Apple's money and his dying breath if that is what it took to do so.
    The full extent of his animosity towards Google's mobile operating system is revealed in a forthcoming authorised biography.
    Mr Jobs told author Walter Isaacson that he viewed Android's similarity to iOS as "grand theft".

    Now I fully understand that if Android was a rip off of Apple iOS (iPhone OS) then yes, he had every right to have such animosity toward the Android O.S on smartphones. The truth however is exactly the opposite of this. To those of you who not aware, Android, Inc was the name of the original company developing the operating system and began it's work in 2003. Yes 2003 - that's 4 years before Apple announced the iPhone. To put it into perspective, google acquired Android, Inc in 2005.

    I believe this alone is quite enough to show that Android took an independent route during its development. Indeed the way the O.S works and looks is intuitively designed for a mobile device BUT is nothing original, similar to Apple's iOS.

    Both developers noticed that many users of home computers keep all of their files, software shortcuts etc... on their desktop as it makes it much easier to access quickly. The idea that Apple 'invented' the iOS software selection menu is stupid. All they did is take what p.c/mac/linux users have been using for years and modified it to work on a phone. I don't believe Apple, Google, Microsoft or indeed ANY company can argue that they hold patents on the 'desktop shortcut' and as that's all iOS and google use, I truly believe that Apple claiming that Android is 'stolen' technology is absurd, rather both are simply extensions of existing mechanisms.

    The tech industry doesn't reinvent the wheel for each new technology - rather the tech industry modifies the wheels original concept to different purposes. After all you wouldn't use a tractor wheel on a bus for example. The same is true for software technologies.

    Apple is behaving like a spoiled child that can't have its own way. If Apple truly want to compete in the Android sector of the market, they need to lay off the frivolous court cases and develop a budget iPhone model to compete in the same price bracket as Android phones.

    Tuesday 18 October 2011

    Adobe Flash Player 10.3 for Sony Ericsson Xperia X8

    With all of the current android handsets on the market these days it can really be quite confusing choosing one. In the low to mid-range it's quite difficult to find a specific handset that gives the most functionality for the least amount of money. And for many the tipping factor can be something as simple as "Does it support flash player?"

    I myself am a Sony Ericsson Xperia X8 user, the X8 is a great little android phone and the one thing that really got on my nerves with it is the lack of any real flash support. Sometimes I want to browse the web and view 4oD which to those of you that aren't British is a youtube channel streaming British T.V shows. Unfortunately my handset lacked  any real support for adobe flash player and the one 'hacked' flash that was available was absolutely terrible. That is until now!

    A fellow who goes by the alias Paul1989 over at the XDA forums (a forum dedicated to android modification located here) kindly gave me permission to link to his original thread that provides a handy .apk file that brings a fully functional, stable and most importantly - smooth port of adobe flash 10.3 to the Xperia X8.

    Paul has spent a good amount of his free time developing this and if you like it, feel free to donate to his paypal; or leave him a thanks - you can find his paypal here if you feel he deserves a donation. You can view the original thread here and download the appropriate .apk file paul1989@xda_flash_player.10.3.apk from his thread. Additionally Paul has provided a BBC iPlayer .apk for U.K users to watch iPlayer on their android handsets.... good stuff!