Technology

Publishing to GitHub from Visual Studio

Those who follow me on Twitter (@markwilsonit) may be aware that I’m attempting to learn some C# skills in my spare time (what little of that I have).  It’s not my first foray into coding – I have a Computer Studies degree and, in my youth I wrote code in a variety of languages (BASIC, C, Turbo Pascal, Modula-2, 68000 assembler, COBOL, Visual Basic, C++ and probably some others too) but aside from a little bit of C++ on the Arduino and the odd bit of PowerShell, I haven’t done much in the last 20 years.  As my career moves further towards management I’m increasingly convinced it’s technology I enjoy though – and I’m seriously considering a move from infrastructure to software…

Anyway…

I’ve been following a Pluralsight C# course from Scott Allen (@ode2code) and, part way through, Scott uses System.Speech to demonstrate adding references to assemblies.  I had a play, adapting something I’d written earlier to talk to me as well as output to the console – nothing grand – just a bit of fun.  After showing it to my sons, the eldest (who is 9), described it as “epic” (which I understand is pretty good) and I tweeted, only to be amused by a reply which suggested the same library had caused hilarity in Duncan Smart (@DuncanSmart)’s household:

Small world, eh!

I followed the link to Duncan’s code and thought “Hmm… GitHub… I use that for my Arduino code… I wonder if…” – and yes, Visual Studio can publish to GitHub too.  It took some work to suss it out though, so here’s what I did (following advice on StackOverflow)…

  1. In Visual Studio, select File then Add to Source Control (which creates a local Git repository)
  2. On GitHub, create a new reposotory (but don’t initialise it with a README – Visual Studio wants an empty repository.
  3. Copy the HTTPS URI for the new repo, then go back to Visual Studio, open Team Explorer, select Home then Unsynced Commits and enter the GitHub URL before clicking Publish.
  4. You may find that you have to commit the changes locally first, which in my case required creating a local username and supplying an email address.
  5. After committing, the solution should be visible on GitHub.

For reference, I was using Visual Studio Express 2013 for Windows Desktop.

Technology

Short takes: text editing; Windows Phone; and recovering deleted images…

More snippets from the life of a geek playing at being a manager in the IT industry…

Replacing text with a carriage return/line feed in Windows Notepad

It’s a long story but I needed to find out how many people are in our department, at a level above me.  My manager is on holiday, so I couldn’t ask him. Instead, I drafted an email to the whole department, expanded the distribution list and then counted the names…

Of course I didn’t quite do it like that… I pasted the list into a text file (which I thought I’d import to Excel as a CSV and then count the number of rows). That didn’t work out (I got 111 columns instead and I lost count shortly after AA, AB, AC, etc.) so I tried replacing the “; ” with line feeds in Notepad. Notepad can’t do that, but Word canCtrl+H will open the find and replace dialogue and using ^p as the string for the replacement will insert a new paragraph mark. 111 replacements were made (hence 111 names).

Changing the voicemail number on my Windows Phone

One of the issues with my iPhone is that I can’t change the voicemail number from 901 (O2 – the network my phone thinks it’s on) to 443 (Giffgaff – the MVNO that my account is actually with).  I’ve jailbroken and hacked around with config files but it doesn’t work on iOS 7.0.4.

Thankfully, my Nokia Lumia 625 (running Windows Phone 8) is a little more flexible.  When new, it asked me what the voicemail number I needed was.  In the absence of any information from my service provider (EE), I googled and found information that suggested it was +447953222222. My IT department later suggested I should use +447973100123 and changing it is as simple as hitting the ... in the phone app and entering settings, then changing the voicemail number.  As my messages are still intact, I guess that both numbers actually end up in the same location…

Turning off Twitter’s lock screen updates on Windows Phone

Talking of Windows Phone, when I installed the Twitter app it asked if I wanted to see selected tweets on my lock screen.  It seemed like a good idea at first, until I realised I couldn’t actually click on them.  Turning off the Twitter lock screen updates was difficult to hunt down – it’s not set via the Twitter app settings but in the lock screen settings, as Jamie Thomson (@jamiet) and Craig Hawker (@craighawker) highlighted to me.  Thanks guys.

Recovering deleted images from a camera flash drive

Of course, any of us who work in IT know that we automatically get to provide a family IT support service.  I shouldn’t complain because, after my parents in-law paid for someone to do some work on their PC I was horrified to see that he had removed Microsoft Security Essentials and added AVG (which I had removed because it kept nagging to upgrade to a paid version), installed a load of unnecessary software (Defraggler, Firefox, etc.).  My “keep it simple, stupid” approach to septuagenarian IT had been destroyed by someone who wanted to inflict his way of computing on others.

Anyway, back to the point…

…My Mother in-law was disappointed to find she was missing some images on her digital camera.  She swears the camera did it by itself (I suggest it was user error) but, critically, no new pictures had been taken since.  Following advice from PC Advisor, I used a free application called Recuva to restore the deleted files on the memory card (ironically, from the same software company that creates Defraggler, the tool I said was unnecessary a little earlier).  It was beautifully simple, although I was unable to get Windows to recognise the camera as a drive (it does depend on the camera) and had to mess around with card readers instead.

Motoring

Stuck door lock on Mk5 Volkswagen Golf

My wife’s ’08 registration Volkswagen Golf (Mk5) refused to unlock the rear passenger door earlier this week.  After trying various combinations of keyfobs, inside door locks, locking and unlocking, I hit the ‘net and found a multitude of articles with various bits of advice – usually resulting in trying to remove door trims and expensive garage bills.  I did find one post on the Mk5 Golf GTI forum that looked hopeful though (even though ours is a Match not a GTI!) and decided it was worth a try:

“You do need two people.

One operates the central lock switch on the drivers door while the other tries to open the passenger door. You try and open the door at the same time as it tries to unlock.

Can take ages.”

I tried this a few times with the outside handle (I could hear the lock “clunking” but the door still wouldn’t open) then I tried with the inside handle a couple of times and – hey presto, an open door!  I think the mechanism could do with some grease (not sure what sort), but seems to be working at the moment.

Internet search saves Mark a couple of hundred quid at the local Volkswagen dealer…

Technology

Fighting with formulae in Excel

Excel. Love it, or hate it, there are few of us in white collar jobs who don’t have to grapple with it from time to time and, earlier this evening, after OneNote had yet again decided that syncing shared notebooks via our ageing SharePoint platform as not going to work, I needed to come up with a new way of storing actions and decisions for the management team I’m one member of.

I would have liked to create a SharePoint task list but I don’t have the necessary permissions, or the inclination to find out who can give me them (and then to justify why I need to do this). Which led me back to the tool upon which so many business processes are built: Excel.

On the way, I grappled with some formulae, so I decided to knock up some notes for the next time this happens – or the next person who needs to do something similar…

Nested IFs, SEARCHes and ISERRORs

My Excel workbook is simple: two tabs (“Decisions” and “Actions”).  The Decisions tab looks after itself: three columns with a date, a decision, and the rationale behind it.  Actions is a little more complex (read over-engineered).  I have date, status, action, owner, target date, and notes. Then I want the status to be auto-populated based on the notes (If the notes say complete, then status is “Completed”; if the notes include the word cancelled then the status is “Cancelled”, otherwise the status is “Open”).

This was the first challenge.  Excel doesn’t have an ELSE in its IF function, but you can nest IFs as follows:

IF(logical_test, [value_if_true], (IF(logical_test, [value_if_true], [value_if_false]))

(or use one of the LOOKUP functions).  I combined this with the SEARCH function to look for instances of the word “Cancelled” in the notes and everything was working well with results returned for a match on “Complete”, or an instance of “Cancelled” but then the catch all value if false always returned a #VALUE! error.

As SEARCH will always return #VALUE! if the search string is not present, I started to look for workarounds.  Some googling told me that I need to test for an error condition with the ISERROR function but that didn’t seem to solve the issue. So I reversed the logic – check for the error first andthen take action accordingly:

=IF(F2="Complete", "Completed", IF(ISERROR(SEARCH("Cancelled",F2))=TRUE,"Open", IF(SEARCH("Cancelled",F2), "Cancelled")))

It may be easier to understand this in some form of pseudocode:

IF cellvalue="Complete"
{
status = "Completed"
}
ELSE
{
IF cellvalue doesn't contain "Cancelled"
{
status = "Open"
}
ELSE
{
IF cellvalue contains "Cancelled"
{
status = "Cancelled"
}
}
}

Conditional formatting based on cell contents

The next thing I wanted to do was to format each item in the action list according to it’s status and/or date. I wanted to colour completed actions grey; mark cancelled actions as grey and strikethrough the font, then add a red/amber/green status on open actions according to the target date. Conditional formatting did the trick here but I wasn’t sure how to highlight a row based on the contents of one cell in the row.

I found the answer on the HowToGeek site and key to this is not worrying that the reference to the cell used to test the logic is a single cell – Excel is smart enough to work out that you need the same column on the next row when evaluating the condition there.

So, I ended up with six rules, three of which use the TODAY function to evaluate whether the task is overdue or not (or due today):

Formula Format
=$B2="Cancelled" AaBbCcYyZz
=$B2="Completed" AaBbCcYyZz
=$E2="" No format set
=$E2<TODAY() AaBbCcYyZz
=$E2=TODAY() AaBbCcYyZz
=$E2>TODAY() AaBbCcYyZz

It may all be a bit OTT, but I for one work in a very visual manner – I need documents to show me something, not just rely on reading the text.  Hopefully this will work out to be a useful tool for us…

Motoring Technology

Short takes: managing Bluetooth devices in a Volkswagen; seating Micro SD cards in a Hudl

In an attempt to close some tabs in my browser and transfer some notes to blog form, another “short takes” post…

Deleting paired Bluetooth devices from a Volkswagen MFD

The advice is for a 2012 Passatt but it worked for my Tiguan and probably for a Golf, etc. too (there’s a maximum of 4 connected devices – although only one can be active at any one time):

  1. “Go to the Phone on the center information panel
  2. Go to Users and you will the the phone names
  3. Scroll to the phone you want to remove
  4. Push the OK button on the steering wheel
  5. You will be offered some options, scroll down to Delete and hit OK”

Incidentally, Know Your VW is a useful site (although it is intended for the North American market).

Patience required inserting a Micro SD card in a Tesco Hudl

After buying my Tesco Hudl a few weeks ago, I decided to get a memory card to expand the on board capacity (e.g. cary more music/video with me).  Of course, Tesco is the last place I want to buy accessories like that and I picked up twice the capacity for half the price (or something like that) at MyMemory.co.uk.

The problem came when I wanted to insert the card into the Hudl.  For a while I seriously thought I had a faulty tablet that would need to be returned (a bit of a shame after getting it just how I wanted it, including rooting and customising…) – I kept on pushing the card in but it would spring straight out again.  It turns out that the Hudl’s card slot is very deeply recessed and some long nails (or even a knife) might be needed to push it in far enough and get it to stay in place!

 

 

Exercise Technology

Short takes: special cyclists’ edition

As this post goes out, my beloved Bianchi C2c Via Nirone 7 should have just emerged from the workshop after its first service.  Strava says I’ve ridden it for around 1200km and, as I rack up some miles in my training for several events this year (London-Paris in June, Wakefield to Manchester over Holme Moss in July, and the Ride London-Surrey 100 in August), it seems a good to point to take it back to Epic Cycles to give it a once over…

I’ve also got a few open tabs in my browser with cycling-related bits and pieces I mean to blog about… so here’s a special cycling-themed “short takes” blog post…

Editing GPX files

Every now and again, it’s bound to happen… you forget to stop the cycle computer/app on the smartphone and the resulting GPS eXchaneg format (GPX) file has a block in the middle where you were waiting for your mates to arrive/sitting in a coffee shop/whatever.  Then there are times when the GPS goes haywire and thinks you did 87.8kph down a hill, or when it just straightlines a corner. In those instances, you might want to edit the file.

Thankfully, GPX files are not binary – they are just another XML schema – and the OpenStreetMaps Wiki has advice for editing GPX files in a text editor.  Hack around to your hearts content, then upload to your social sharing site of choice.

Searching for bike serial numbers

We’re off to Centre Parcs later this year, and I needed to provide details of our bikes (useful for insurance purposes too).  Once again, I was searching for the serial number for my mountain bike and, once again, it was eluding me so, whilst it’s unlikely to apply to everyone who reads this blog, here’s the link to Trek’s advice on where to find your bike’s serial number.

 

Technology

Time for another #MKGN

Woah… where did the last three months go?  It’s Milton Keynes Geek Night (@MKGeekNight) again tomorrow and I haven’t blogged about the last one yet (for that matter I can’t find my notes – in Evernote, OneNote, Keep, or anywhere else).  It’s a good job I don’t rely on this blogging lark for a living…

Luckily, the MKGN team have details of past talks on the website and the audio was recorded for posterity too.  As always, all of the speakers were great – but I particularly enjoyed hearing Christian Payne (@documentally), who I’ve followed for a while on Twitter, gave a really engaging talk about Storymaking.

So, who’s talking this time around?  Keynotes are from:

  • Andrew Clarke (@Malarkey) on the (I imagine somewhat provocatively titled) subject of “take your stinking paws off my design you damn dirty developers”.
  • Relly Annett-Baker (@RellyAB) on “future perfect tense: creating good content for an impefect web” (I think Relly has been promised before – so looking forward to hearing her at MKGN #8).

Then, there are 5 minute talks from:

  • Jeremy Taylor (@jdt_me), talking about “distributing the future more evenly, with JavaScript”.
  • James Bavington (@jamesbavington), on the topic of “knowing you know nothing”.

And, whether you’ve attended MK Geek Night in person, or enjoyed the recorded talks on Soundcloud, maybe you’ll consider voting for MKGN as “Grassroots event of the year” in the .Net Awards 2014?

Right… now lets hope Virgin Trains get me back from Manchester in time…

Waffle and randomness

The importance of good communications for project success

Once or twice a month, I travel to Manchester for work.  I usually get around by tram (Metrolink) when I’m there – there’s a stop close to our office and its convenient for travel to/from my hotel and the railway station.

Manchester’s tram system is being upgraded at the moment and, last week, I was amused by posters asking passengers to “bear with us whilst we make Victoria posh”:

As much as my southern sensibilities (actually, I’m from the East Midlands) cringe at the idea of “making something posh”, in fairness to Metrolink, they do have a great series of communications around their project (and whoever is responsible clearly has a sense of humour). One of my favourites is reproduced below:

“Dear [customers]
It can be fast.
It can be slow.
You can measure it in feet, inches, weeks, months and years.
And, occasionally, in leaps and bounds.
It’s going to take a little time.
And a lot of hard work.
But, rest assured, it is moving forwards.
Creating something better for us all.
So thank you for your patience.
And while our network is undergoing this transformation, we’ll keep you up-to-date with information.”

I like that poem, and I started to think about other applications for its use… something to consider for my next IT transformation project, perhaps – because good communications are vital to project success (and so many updates that I see are just dull walls of words).

Technology Waffle and randomness

Fixing the Apple iOS SSL bug on a jailbroken iPhone, without upgrading

My iPhone (4S) is jailbroken.  I won’t go into the details of how I did it as it changes with every release but I currently run iOS 7.0.4 and I used the Evasi0n method. Unfortunately, Apple has a pretty shocking bug in that version of iOS which means SSL transactions are not secure.

I didn’t want to go to the hassle of upgrading the OS, then jailbreaking again and, luckily, there is a workaround for fixing the iOS SSL issue on jailbroken iPhones without updating to iOS 7.0.6 (or 6.1.6) – although by the time I get this post written, 7.1 may well have hit the streets…

  1. Launch Cydia
  2. Switch to the Manage page, then select Sources
  3. Add Ryan Petrich’s repo (URL is http://rpetri.ch/repo)
  4. Go back to Manage and select Sources
  5. Search for SSLPatch and install as usual
  6. Restart SpringBoard when prompted

To test the patch (before and after), use the Goto Fail Apple SSL bug test site.

Technology

Removing Tesco customisations from my Hudl

Just over a week ago, I bought a Tesco Hudl. It was an impulse purchase but the reviews were good considering the low price point (Gizmodo, Engadget) and that £119 price tag meant the risk to me as a consumer was low (considering what I paid for an iPad 4 years ago, which admittedly is a premium device but has hardly stood the test of time…).

After a couple of days I knew I’d made the right decision – I’ve been disappointed with Android on my phone but on a tablet it’s really usable (the Hudl uses Android 4.2.2 JellyBean) – and Tesco have provided an almost stock distribution. Even so, there are some “customisations” – a few apps and widgets to try and encourage more Tesco shopping, and a [T] launcher button in the bottom-left corner of the screen.  The apps and widgets are easy enough to move out of sight, but I really wanted to lose the Tesco Launcher [T]…

Rooting the tablet

Step one is to “root” the operating system – i.e. to give myself full access to all of the files and folders on the device.  Paul O’Brien (@paulobrien) has a great post on his MoDaCo forum on rooting the Hudl.

I fired up my Linux netbook (it still has some uses!), downloaded the ROMraid archive for the version of the Hudl software my device was running (JDQ39.20131016.200812) and extracted it but running sudo ./flashroot.hudl.linux.sh returned command not found.

After scratching my head for a few minutes I realised I also needed to chmod 755 flashroot.hudl.linux.sh to make it executable.  I tried the script again but this time the response was cannot execute binary file – it seems that the version of rkflashtool.linux included in the ROM download was for 64-bit Linux and my netbook only has a 32-bit installation.

Plan B

Being a good geek, I have a pile of media waiting to be “sorted out” including some Linux live CDs, so I fired that up on another PC and this time managed to flash the Hudl (I used an Ubuntu 13.10 live CD – CentOS 5.5 refused to play).  If you’re having trouble getting the device into the right state, then check out Matt Foot (aka @glossywhite)’s advice on MoDaCo:

  1. Turn Hudl off.
  2. Connect via USB to PC.
  3. Hold down Volume Up (+), push the reset button for one sec (recessed hole with gold dot in it) and continue holding the Volume Up button.
  4. To check that this has put the Hudl in flashing mode, and to verify that it isn’t merely in charging mode, release Volume Up after around 10 seconds and tap once on the power button; if you see a battery, it has failed, so try again.

I found that the Live CD didn’t want to execute anything from a USB stick or local hard disk in the PC (Windows file systems), so I copied the following files to /home/ubuntu:

flashroot.hudl.linux.sh
rkflashtool-linux
system.backup.img

I also chmodded and to make them executable, then ran sudo ./flashroot.hudl.linux.sh

At this point, I saw lots of lines like:

rkflashtool: info: writing flash memory at offset 0x00000000

(up to 0x00341fe0) and then:

rkflashtool: info: rkflashtool v5.1
rkflashtool: info: Detected RK3188…
rkflashtool: info: interface claimed
rkflashtool: info: rebooting device…

The device then restarted in charging mode, and I powered it up as usual. Paul’s instructions say to install SuperSU from the Google Play Store but it seemed to be installed already; however I did update it.

Removing Tesco customisations

As I mentioned at the top of the post, the Hudl comes with a Tesco Launcher icon in the bottom-left of the screen and is also pre-loaded with a number of apps for Tesco services. Paul O’Brien has posted one method of removing the Tesco Launcher [T] but I decided to use a variation of Mr Akufu’s method, with Paul’s hacked SystemUI.apk file (which can be used with the JDQ39.20131016.200812 firmware):

  1. Extract SystemUI.apk from SystemUI.hudl.zip.
  2. Using your method of choice, transfer the file to your device – I used Dropbox, and then selected the option to Export, then Save to SD card (Internal Storage) but others have suggested Bluetooth, or ADB.
  3. Install Rooted SSH/SFTP Daemon from the Google Play store and start it.
  4. Connect using your SSH client of choice (I used PuTTY) over a Wi-Fi connection to the Hudl.
  5. Login as root, with password abc123
  6. Issue the following commands:
    su
    mount -o remount,rw /system
    cp /system/app/SystemUI.apk SystemUI.mybackup.apk (I didn’t do this but it would have been sensible…)
    cp /storage/emulated/legacy/SystemUI.apk /system/app/SystemUI.apk
  7. After this, the Hudl should reboot.
  8. Following restart, the Tesco button should be gone – use Root Uninstaller to disable (not remove) the Hudl Updates package.

If you want to go further, there’s another MoDaCo post that talks about removing all of the Tesco application packages… and more information on which Android packages are safe to remove at Android Central.

%d bloggers like this: