Uncategorized

London 2012 – Torch Relay Stockton on Tees

The London 2012 Torch Relay in Stockton on Tees, the relay hit the North East, and Stockton on Tees on 17th June 2012, here’s our view down Greens Lane, near Ian Ramsey School

BTServer causing high CPU utilization (When wake from Sleep)

Symptoms are that your Mac wakes from sleep and CPU usage spikes to 100%, Activity Monitor show’s it the BTServer process using it all and you have to quit it.  This happens, 100% reproducible, when you’ve used the iOS Simulator at some point since the last reboot.

This isn’t a perfect solution, in fact it’s ruddy useless of the iPhone / iPad app you’re developing uses Bluetooth, but if it doesn’t then you can get away without BTServer, so we disable it.

Thanks to ‘Frankie’ via the Apple Support Forums

 

Re: BTServer causing high CPU utilization

Mar 4, 2012 5:51 AM (in response to Ryan Homer)

I have the same issue. My mac is 10.6.8 and I’m using XCode 4.2.

 

Just try:

 

Go to the Macintosh HD > Developer > Platforms > iPhoneSimulator.platform > Developer > SDKs > iPhoneSimulator5.0.sdk > System > Library > LaunchDaemons directory and then open the plist file from there. Locate the “Disabled” key and change its value from “NO” to “YES”.

You need to change permission in the file and also its parent folder in order to save the new permission of plist file before modifying in XCode.

 

Hope this help.

 

Frankie

via BTServer causing high CPU utilization: Apple Support Communities.

Andy Flisher is a Software Developer based in the North East of England specialising in cross platform development. Mobile Development experience includes Windows Phone, Android, and iPhone Apps. Desktop Software Development includes bespoke Windows, Linux, and Mac Applications. Web Development Skills include PHP, Perl, Python, ASP (Classic and .NET) – Andy Flisher on Google+

Instant Messaging on Multiple Devices

Instant Messaging on Multiple Devices – struggling to believe this problem hasn’t been solved properly yet

Redesign Instant Messaging Platforms to be Used on Multiple Devices

POSTED AT JANUARY 29, 2011 // TECHNOLOGY

 

Most of the people who care about it have a smartphone and a data plan. They get their emails on the phone, browse the web and often also use instant messaging.

 

Software like Google Talk, Yahoo!Messenger, or Skype now exists for almost all devices and operating system: Windows, OS X, iPads, iPhones, Blackberry, Android, …

 

But what happens when you use it on multiple devices at the same time? Maybe you are on your PC, then get pulled in a meeting and bring your ipad, and then go out for a coffee and have your cellphone with you. Sounds familiar?

 

Today, either the platform sends the messages to all the devices or just to the last one from which you logged in. Annoying in both cases. It’s time to change.

 

The IM software should be written so that it knows what you are using. For example, as long as you type or use the mouse one can assume you are using the PC. If you start touching the ipad and not the PC, then switch to that. If the phone detect movements (GPS?) and there is no activity on the other devices, switch to that.

 

In addition, the chat logs should be kept on the sever, so that whatever device you use you always have them with you.

 

Privacy problems you say? Not really. You just need to encrypt the messages that you send and receive and use the same key on your devices, so that they can encode/decode them locally and on the server there is just and indecipherable series of characters. The Off-The-Record plugin, available for Audium and Pidgin, does just that.

 

It is not that hard. Who will get there first? A new startup or the IM companies?

 

via Redesign Instant Messaging Platforms to be Used on Multiple Devices.

Convert a Version 7 vmdk Disk to Version 4

This post is to highlight how you can convert a Version 7 vmdk disk to version 4.  Basically the background is that since Vsphere 4.0 the default Virtual Machine Hardware Version is version 7, under Esx or Esxi 3.5 it was virual machine version 5 (I think versions 5 and 6 are under VMWare workstation), so if you have any need to take a virtual machine from 4.0 / 4.1 / 5.0 etc backwards to a 3.5 host you’re (by default), knackered.
The easiest solution by the way is to use VMware convert, point at source and destination and it will sort it out, but sometimes this isn’t an option.  In my case I had the vmdk file (the small 1kb descriptor file and the 20GB *-flat.vmdk disk image it references), and nothing else.  Except that I knew my source was a version 7 vmware disk image.   I had copied the vmdk image files to the esxi 3.5 host but on creating a new virtual machine it basically pretended it couldn’t see the disk image, browsing the datastore to add the virtual disk showed nothing, no clue it even existed.  As always, this is what I did, take a backup first, your fault if you screw it up, etc, etc.

Using vi, or any other text editor, open up the vmdk file (the small one, *NOT* the big one), eg in my case I had;

/vmfs/volumes/49b13e24-6619f880-49fd-00151798cc79/Linuxx64 # ls -hlat
-rw------- 1 root root 20.0G Jan 9 16:11 Linux x64 Clone-flat.vmdk
-rw------- 1 root root 486 Jan 9 16:09 Linux x64 Clone.vmdk
drwxr-xr-t 1 root root 2.9k Jan 9 15:58 ..
drwxr-xr-x 1 root root 560 Jan 9 15:45 .
/vmfs/volumes/49b13e24-6619f880-49fd-00151798cc79/Linuxx64 #

It’s the highlighted orange one we want, the *-flat.vmsk is the actual disk image data.  Once opened you will have something like;

# Disk DescriptorFile
version=3
CID=7d8e12e8
parentCID=ffffffff
createType="vmfs"
# Extent description
RW 524288000 VMFS "Linux x64 Clone-flat.vmdk"
# The Disk Data Base
#DDB
ddb.toolsVersion = "7458"
ddb.adapterType = "lsilogic"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "255"
ddb.geometry.cylinders = "32635"
ddb.uuid = "60 00 C2 93 7a c9 31 2b-8d 11 61 d1 30 66 5c 41"
ddb.virtualHWVersion = "7"

Note the highlighted values simply change to;

# Disk DescriptorFile
version=1
CID=7d8e12e8
parentCID=ffffffff
createType="vmfs"
# Extent description
RW 524288000 VMFS "Linux x64 Clone-flat.vmdk"
# The Disk Data Base
#DDB
ddb.toolsVersion = "7458"
ddb.adapterType = "lsilogic"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "255"
ddb.geometry.cylinders = "32635"
ddb.uuid = "60 00 C2 93 7a c9 31 2b-8d 11 61 d1 30 66 5c 41"
ddb.virtualHWVersion = "4"

That simple, honest, edit in a text file and you’d done.  If you try and and this to Virtual Machine under Esx or Esxi 3.5 it will now see the vmdk and work just fine, in my case at least

Andy Flisher is a Software Developer based in the North East of England specialising in cross platform development. Mobile Development experience includes Windows Phone, Android, and iPhone Apps. Desktop Software Development includes bespoke Windows, Linux, and Mac Applications. Web Development Skills include PHP, Perl, Python, ASP (Classic and .NET) – Andy Flisher on Google+

Buffalo Terastation Raid Recovery (PPC) under Linux (i386)

Buffalo Terastation Raid Recovery (PPC) under Linux (i386)

First off, a caveat, the data I had on my Terastation was not life or death, if this had failed the world would not have ended, in fact this had sat for 6 months un-attempted, that’s how un-important it was. Getting the data back was a ‘nice to have’, so this is not a safe or guaranteed process. If in doubt investigate using dd to backup partitions before atttempting – Don’t blame me! – But in essence Buffalo Terastation raid recovery is possible using an i386 generation donor box.

So, history, I had a Buffalo Terastation (model TS-1.0GL/R5) which is a Power PC (PPC) based NAS, fitted with 4x 250GB Western Digital drives. It went Pop 🙁

In my case it was configured to use all the drives as one large pot, although that’s not really important, underlying I knew it was basically software raid (mdraid) and the XFS file system.

First attempt was using a Centos 6 (32bit) box I had to hand, guess what, no XFS support under 32 bit, try again. So I used the Openfiler 2.3 install CD I had (intention was to present the recovered data as a NAS again – but never quite got that far). Importantly Openfiler supports XFS and software raid, and is in essence a minimised Linux distro with a web front end.

Once booted up (hasten to add boot / OS drive was another drive, I’ve literally added the Terastation drives as additional SATA drives and done nothing with them), I ran fdisk on the first Terastation drive and saw;

fdisk /dev/sda: 250.0 GB, 250059350016 bytes
 255 heads, 63 sectors/track, 30401 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
 /dev/sda1 1 48 385528+ 83 Linux
 /dev/sda2 49 65 136552+ 82 Linux swap / Solaris
 /dev/sda3 66 30378 243481141 83 Linux
 /dev/sda4 30378 30401 192779 83 Linux

Which was promising, in fact all 4 drives had identical partition structures. The first partition (/dev/sda1) is actually a raw xfs partition and is the / partition of the Terastation if you want to be nosy.

/dev/sda2 is swap, if I’m honest I have no idea what /dev/sda4 is (/boot maybe? I didn’t look), but /dev/sda3 (and /dev/sdb3, /dev/sdc3, and /dev/sds3 are the big ones with my data, and the software raid). There was lots of poking, prodding, reading, giving up as a lost cause at this point. I’m more than comfortable hacking about in Linux, it’s part of my day job, but Software Raid and mdadm are not my regular toys, and whilst a Mac fan my indoctrination didn’t come till the Intel days, so am not a Power PC expert. But, end result was discovering that in essence a software raid array, created on a PPC (Big Endian) device was not going to ‘appear’ under an i386 Linux (Little Endian) appliance, so give up … or google a little more.

At this point mdadm –examine was seeing nothing, there was no hint of a software raid, it might as well have been not there, but I knew it was. Turns out that you can change the byte order (Big Endian vs Little Endian – google it if you want), you need to do this on all components of the array, so basically;

 mdadm -A /dev/md0 --update=byteorder /dev/sda3
 mdadm -A /dev/md0 --update=byteorder /dev/sdb3
 mdadm -A /dev/md0 --update=byteorder /dev/sdc3
 mdadm -A /dev/md0 --update=byteorder /dev/sdd3

At this point we can ask mdadm to have a look, and you should get something similar to;

mdadm --examine /dev/sdb3
 /dev/sdb3:
 Magic : a92b4efc
 Version : 00.90.02
 UUID : 39b220be:f9b75e99:849a28e5:f10c758f
 Creation Time : Sat Aug 29 11:09:31 2009
 Raid Level : linear
 Raid Devices : 4
 Total Devices : 4
 Preferred Minor : 1
Update Time : Sun Mar 6 17:05:45 2011
 State : active
 Active Devices : 4
 Working Devices : 4
 Failed Devices : 0
 Spare Devices : 0
 Checksum : f8cc653a - correct
 Events : 0.8
Rounding : 64K
Number Major Minor RaidDevice State
 this 3 8 51 3 active sync /dev/sdd3
 0 0 8 3 0 active sync /dev/sda3
 1 1 8 19 1 active sync /dev/sdb3
 2 2 8 35 2 active sync /dev/sdc3
 3 3 8 51 3 active sync /dev/sdd3

Bingo, we’re now acknowledging the raid array components, so stich back together with;

mdadm --assemble /dev/md0 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3
 mdadm: /dev/md0 has been started with 4 drives.

Then give it somewhere to mount (but read only for now, to be safe);

mkdir /mount/md0
 mount -o ro -t xfs /dev/md0 /mount/md0
 mount: /dev/md0: can't read superblock

Cock 🙁 At this point you may be laughing and busy copying off your data, but not for me. Am not an XFS filesystem expert, but some more googling suggested some options, and lots of warnings that this may further corrupt your data remember, I wasn’t too concerned if it ended badly, so you’ve been warned, at least twice!

xfs_repair /dev/md0
 Phase 1 - find and verify superblock...
 Phase 2 - using internal log
 - zero log...
 ERROR: The filesystem has valuable metadata changes in a log which needs to
 be replayed. Mount the filesystem to replay the log, and unmount it before
 re-running xfs_repair. If you are unable to mount the filesystem, then use
 the -L option to destroy the log and attempt a repair.
 Note that destroying the log may cause corruption -- please attempt a mount
 of the filesystem before doing this.

You have now been warned three times! Pressing on …

xfs_repair -L /dev/md0

… followed by similar output to above, confirming that the log had been zapped and recreated, but nothing else fatal, then to be sure;

xfs_check /dev/md0

Again nothing, so, try again;

mount -o ro -t xfs /dev/md0 /mount/md0

Bingo!

Openfiler saw the software raid array we’ve just re-created, but I’m assuming that because it relies mostly on LVM volume groups on top of physical disks / arrays it couldn’t do anything for me with an array of existing data, so I just fired up an SFTP client and copied everything off.

Hope this helps, please heed my warnings if your data is critical, but then if it were critical you’d have a backup, right?

Andy Flisher is a Software Developer based in the North East of England specialising in cross platform development. Mobile Development experience includes Windows Phone, Android, and iPhone Apps. Desktop Software Development includes bespoke Windows, Linux, and Mac Applications. Web Development Skills include PHP, Perl, Python, ASP (Classic and .NET) – Andy Flisher on Google+

I Found This Useful: Error message in OSX Console – Cant create kext cache under / – owner not root

Error message in OSX Console – Cant create kext cache under / – owner not root

I was getting an error in the console:

com.apple.kextd[10]: Cant create kext cache under / - owner not root

This can be fixed by doing the following command:

sudo chown root:admin /

Note, you will almost certainly be prompted for a password, normally this is your Mac login password, but it may be a specific user with Administrator privileges’ password you need to enter

via I Found This Useful: Error message in OSX Console – Cant create kext cache under / – owner not root.

Andy Flisher is a Software Developer based in the North East of England specialising in cross platform development. Mobile Development experience includes Windows Phone, Android, and iPhone Apps. Desktop Software Development includes bespoke Windows, Linux, and Mac Applications. Web Development Skills include PHP, Perl, Python, ASP (Classic and .NET) – Andy Flisher on Google+

Monitor Wi-Fi with Lion’s hidden tool | Macworld

Monitor Wi-Fi with Lion’s hidden tool 

by Lex Friedman, Macworld.com   Sep 5, 2011 2:00 pm

Hints reader nathanator11 discovered that Lion includes a handy app that provides all sorts of diagnostic information surrounding your wireless network. Much of the information the software generates gets pretty technical, but even Wi-Fi novices may find some of the details that the utility aggregates useful.

Wi-Fi Diagnostics is tucked away in the /System/Library/CoreServices folder. To get there, I pressed Shift-Command-G in the Finder (the equivalent of going to the Go menu and choosing Go to Folder), and then typed in the /System/Library/CoreServices path and pressed Return. Once in the folder, I found Wi-Fi Diagnostics and double-clicked it. Alternatively, you could launch the Terminal and type open “/System/Library/CoreServices/Wi-Fi Diagnostics.app”, and then press Return.

However you find and launch it, Wi-Fi Diagnostics gives you four options: Monitor Performance (which shows you signal strength, noise level, transmit power, and data rate); Record Events (which can keep a log of network happenings); Capture Raw Frames (which records everything coming and going on your Mac’s wireless connection); and Turn on Debug Logs.

 

 

If you’re at all interested in what’s going on with your Mac’s Wi-Fi connection or your wireless network, Wi-Fi Diagnostics is freely included with your copy of Lion, and you can’t break anything by poking around the app—so enjoy!

via Monitor Wi-Fi with Lion’s hidden tool | Networking & Wireless | Mac OS X Hints | Macworld.

Andy Flisher is a Software Developer based in the North East of England specialising in cross platform development. Mobile Development experience includes Windows Phone, Android, and iPhone Apps. Desktop Software Development includes bespoke Windows, Linux, and Mac Applications. Web Development Skills include PHP, Perl, Python, ASP (Classic and .NET) – Andy Flisher on Google+

Avoid Bristol Cameras

Avoid Bristol Cameras

Update 27/11/11

I note that the returns page has now removed the non-existent / functional email address I refer to below, so *something* has fed back and been achieved – not that anyone has been in touch to get any more detail, ask for a right of reply, or work out what they could have done to be better. I also note that googling for ‘Bristol Cameras’ brings this page in at number two, so hopefully at least I’m helping you guys make an informed purchasing decision

I have deliberately left this a month from complaining (ranting?) at Bristol Cameras to give them every opportunity to fix, resolve, and generally be better, but they haven’t. As of now if you’re thinking of buying a new digital camera or accessories online then Bristol Cameras may not be for you, avoid Bristol Cameras.
Background, I was in the market for a decent wrist strap and a spare battery for my Canon G12, not surprisingly I wanted the best deal, so a Googling I went. The end result was with me at Bristol Cameras website where they had listed (not specifically claiming in stock) what I wanted, adding in carriage was a fair price, and my background checks showed no horror stories (till now?) and they seemed legit. This was the 10th May 2011.

I received my order confirmation email from a ‘no-reply@’ address (not unusual) and got on with life.

On the 16th May I had heard and recieved nothing and wanted to query the ETA, spotting the email address I went hunting over at the Bristol Cameras website, nothing obvious, the contact us page was empty other than an 0844 number and snail mail, but thankfully the Bristol Cameras returns page (http://www.bristolcameras…) offered me shop@bristolcameras.co.uk so an email was sent asking for an update. Edit: Image removed as host where image lived no longer exists, thank you Skitch / Evernote!The next day I got an email back stating that the wrist strap was out of stock. Knowing that I would have to purchase elsewhere (and incur another shipping charge) I replied asking them to cancel the entire order as I didn’t want to split with another vendor and loose money.

They ignored this email, shipped the battery, and charged me for it anyway. Now, I have no idea if they have *ever* read or replied to any of my emails, certainly none ever bounced back, and seems a co-incidence that I got the out of stock email a day after I contacted them.

I didn’t complain, assumed they had mis-interpreted my email and just cancelled the out of stock element.

On the 21st June I got another email with an order up date, wrist strap still out of stock 🙁 Annoyed, I pinged another email back to shop@bristolcameras.co.uk making it quite clear I did not want the wrist strap and to cancel the remaining order.

All quiet until the 7th July, Good News! The wrist strap is in stock and will be shipped shortly, **not amused**. Especially as it’s gone 5pm when I read this and they could have shipped already, no choice but premium rate 0844 with an impressive ire on me.

Which gets worse, they don’t answer, well their phone system does, but a human doesn’t, so I’m on hold and paying for it. Looking at the Bristol Cameras contact page doesn’t help, ‘the shop’ is open till 5, ‘mail order’ till 5.30′ there’s only one mind, the 0844 one. At this point I’m still paying, so I google some more for alternative numbers and dial them all on my mobile (still on hold on land line), but at this point it’s gone 5.30 so assuming all gone home, not that their phone system seems to know, it’s still suggesting someone will answer, at 5pm. I’m pretty sure the won’t, and after half an hour hang up, spin off a vitriolic email, and wait till morning.

In fact I wait till late morning to give them a chance to respond, they don’t, so I call (at 5pm again). To sum up, they don’t care, no apology, only a grumble that an email address is actually published on their own site, that apparently is a mistake! They are an E-commerce trader and actually admit to not wanting to communicate electronically? Daft thing is I’ve given them a month and it’s still there 🙁 But then the key revenue stream for Bristol Cameras seems to be from 0844 call share, and you guessed it, no apology for a phone system that keeps you on hold even when there’s no one to pick up, probably disappointed that I didn’t hang on longer.
This isn’t the worst case of Customer Service ever, but it’s bad and it’s a sad fact that these days people only seem to learn the hard way once we the disgruntled consumer start shouting, hence am typing. Bristol Cameras clearly have no respect for their customers, 0844 only and no published (working) email address just doesn’t cut the mustard for an online trader, it’s against all best practice. So if you where thinking of placing an order with Bristol Cameras then don’t, in my opinion Avoid Bristol Cameras
Rant Over

iOS 5 Beta 2 has bricked my iPhone – Updated

Updated 28/6/2011 – See below for a solution to avoid bricking in the first place

And I’ve just bricked my pants, thankfully I think as I type (gives me something to do as I wait the process out), there is a solution.

I was already running iOS 5 on a non jailbroken iPhone 4, legit route (am a registered developer so downloaded and updated via xcode etc), all good, got to the ‘Waiting for Iphone’ message, and stayed there.  So I waited, and waited, but nothing.

Screen was black, so went to power on, and nothing, holding down power and home button, nothing, not a glimmer, one dead iphone.  Bricked.

On a whim I killed Xcode and fired up iTunes, and a glimmer of hope, a dialogue box appears, we have detected in restore mode, still nothing on the screen, no connect to itunes diagrams, but still, who am I to argue, if you can see my iphone I’ll work with it.

Clicking through the process it offered me iOS 4.3 as the last ‘released’ version, so I cancelled out, Alt+Clicked the Restore button and browsed to the v5 beta 2 .ipsw file, and waited, and am still waiting, but it’s restoring and as I type there’s an Apple logo and a progress bar on the screen so something’s alive.

Looking about I did find this link (Apple Dev forums so needs a Dev logon I think) Iphone 3gs dead after IOS 5 beta2 update which pretty much echoes my process, and I can verify the success now as iTunes is offering to restore from backup, and the phone is showing the new activation screen.

Phew, I think, and thanks Apple, that was seamless.

Caveat: Apple warn you not to install Developer releases on your primary / sole device, but I know best, blah, blah, yes, all my fault if it goes wrong I know 🙁

 

Update:  Have installed iOS 5 Beta 2 on 3 Devices now, first two I did normally via Xcode and both showed bricked symptomks of an entirely black screen and lifeless after Xcode finished restoring.  Thankfully both came back to life by re-restoring through iTunes as per above.

The third I’ve learnt from (only 2 failures to learn, I’m getting there!), plugged device into Xcode and clicked the ‘Use for Development’ link in Organiser (it was a new device and UUID so necessary) and let it install the debug symbols etc.  And then quit out, into iTunes and immediately Alt+Clicked Restore, browsed to the firmware and off we go, basically bypassing the wasted and aborted Xcode restore process.  All good, and straight into the new Activation process after a reboot.

Andy Flisher is a Software Developer based in the North East of England specialising in cross platform development. Mobile Development experience includes Windows Phone, Android, and iPhone Apps. Desktop Software Development includes bespoke Windows, Linux, and Mac Applications. Web Development Skills include PHP, Perl, Python, ASP (Classic and .NET) – Andy Flisher on Google+

No funding in the North East, at least not for websites

I’m a web developer, in the North East, my customers (rightly) want to pay as little as possible, so funding and grants is a popular question. ‘Can I get funding towards my website’, and the answer is, am not allowed to talk about it. It’s like Fight Club, ‘The First rule of Website Funding is …’
Ok slight distortion of the truth, but today have been threatened with suspension from the North East England Service Providers Register (NEESPR – You all know what that is right?) because I used the word ‘funding’ on our website. Apparently it was against the rules and not allowed, ok, it’s been removed, but after much discussion as to why, and what the alternative information we could offer was (there isn’t any) it’s just not allowed. We basically cannot even say that if you are interested in funding we’ll direct you to the correct people, at least not on our website – And there’s no route to feedback how unhelpful this is to the end client, it’s the rules, do it.

Most people have heard of Business Link, and the key phrase is ‘Business Link Funding’, and to be a provider for a project that is funded by Business Link (the funding isn’t actually from Business Link, it’s from a range of fund sources co-ordinated by the Investment Centre) the provider must be listed on the NEESPR (I have been in it’s various guises for about 10 years now), you get vetted, show references, and obey the rules etc (which is why we removed the word funding). The rules state that all we can say is ‘As listed on the North East England Service Providers Register (NEESPR) so I asked if we could link to their site if visitors wanted information on funding, we can, but because the NEESPR don’t provide funding, there is actually no mention of funding their either.

So, what to do? I get that they have to monitor the unscrupulous, but we’ve never even bent the rules on this topic, it’s always frustrated me that I can’t offer clients any real information on web site funding, I can but guess at the eligibility criteria, the funding rates available, all from feedback from previous clients, I’m not really allowed to even guess in a face to face, just direct them to Business Link. This doesn’t help me as if not careful it looks like I’m being dis-interested or not trying to help my clients, when in reality I want to help, I want to make the funding process as informed and as simple as possible, but I can’t. ‘Go talk to Business Link’ as good as it gets, and that’s face to face. Now, I can’t even offer a link to Business Link on our website because we’re honestly not allowed to use the word funding, cannot even allude to whether funding is even available.

There will be no funding on our website. I cannot help but think this is not useful to Joe Public, this is not in their best interest, and it certainly doesn’t help me help my clients 🙁

As of writing a Google UK search for website funding north east returns 466,000 results, mostly my competition. Let’s see if the rules are evenly applied

Andy Flisher is a Software Developer based in the North East of England specialising in cross platform development. Mobile Development experience includes Windows Phone, Android, and iPhone Apps. Desktop Software Development includes bespoke Windows, Linux, and Mac Applications. Web Development Skills include PHP, Perl, Python, ASP (Classic and .NET) – Andy Flisher on Google+