Work

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+

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+

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+

SEO, Twitter, and Shortened Links – Benefits?

SEO, Twitter, Social Networking and Shortened Links – Of Benefit?

As I relaunch this site, the impending new dotUK site (Anyone got a ’round tuit’ and a tardis to spare!) am looking at ways of promoting them better, getting more work, and ultimately money in my pocket.  Equally in current economic climes, especially up here in the North East, I’m not the only one.  We all want more business, we want more money, but where to we spend it to make it.  SEO unfortunately is not a small investment, it takes a lot of time, a lot of research, education, changes in practive, and potentially more money invested in Marketing and PR to reap the benefits.  I’m hoping to find the middle ground to allow people to ‘self promote’, and ‘self SEO’.

Social Networking, Blogs, Facebook, and in particular Twitter are where we all are, I’m normally some way behind the bandwagon, but Twit I do, and am aiming to use it more, and encourage my clients too.  Not a month ago I told a friend I wouldn’t use Twitter to promote dotUK, it didn’t feel ‘Commerically’ right, not the correct appearance.  Am sucking that one up, dotUK is on Twitter.  Why? and get to the point because this has nothing to do with the title, why I came here, or even saving people in the North East money on SEO.

Ok, well, we promote, especially to smaller business where money has to be well spent and see good investment, our CMS (Content Management System) so they can self populate and manage their sites.  Within this we have added the ability for them to automatically update a Twitter account (Which in turn can feed Facebook and pretty much anywhere else), creating external, short, sweet, keyword heavy external links to their content.  Self SEO, cheap, just needs some setup and some education.  The cost to do this for a client on our CMS system can be a as little as £50, once.

So, the point.  Twitter limits you to 140 characters, less if you allow room for retweets (double bonus!), so we offer the use of bit.ly the url shortener, this is fully automated and gives you a bit more room to play with, but the question, and the title, do url shorteners give you the full SEO benbefit of external links.  In the main they do 301 redirects so yes, any Pagerank inheritance is kept, this is good, but of course any keywords in the url (you are making human friendly url names as best practive aren’t you?) are lost, so benefit from that is gone (much benefit?), and the human factor is gone too, will people click your link when they have no idea what sort of trip it will take them on.  Time will tell on this one I guess, I see no harm, PR (Pagerank) should be kept, and opinions are split on the rest.  Do you have any thoughts?

This posting is the personal opinion of Andy Flisher, and should be considered the thoughts, opinion and ramblings of one man, and one man alone.

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+