Writing on Tablets Tech stuff from @yeltzland

Plan for DaysLeft app

I’m currently in-between contracts, so as promised last week I’m going to try developing a new app in Swift "in the open" and see how we get on.

My idea is to write a simple app that basically counts down how many days left until a certain date. This was inspired by the fact that in my last contract I used a spreadsheet to count down how much I had left to go (it wasn’t that bad really!)

I wanted something simple enough that could be completed in a few days - even though I know very little Swift before starting - and could be extended into an Apple Watch app.

Now there are hundreds of similar apps out there in the app store already, so this isn’t going to be groundbreaking in any way, but hopefully when it’s done it’ll find a small audience.

One-Page Plan

Before starting coding, obviously I want to do a little planning.

I’m very much a believer in doing just enough planning to get started along the right path, and if I had a test team enough information for them to understand what the app should do (but no more).

I’ve finally broken into my Evernote Moleskin notebook to sketch out a mini-design for the main app, and used the Evernote Scannable app to snap a picture:

DaysLeft Plan

Beautiful or what?

More usefully, I’m tracking the actual tasks in a Trello board which you should be able to see if you’re interested.

The initial tasks on the backlog - in probable order of development - are:

  • Code to handle settings in iCloud
  • Settings view to handle input etc.
  • Simple main page to show days left
  • Unit tests for calculations
  • Daily notifications
  • Today screen widget
  • Watch extension
  • Main page animations

Next steps

Start coding!

Apps Count The Days Left

An update, and a plan

It’s clearly been a while since I updated my blog here, so I thought I’d give a quick update, and then share my plan for getting me to share a bit more regularly what I’m up to.

Since my last post (6 months ago!) I’ve shipped my second iOS app - and Instagram client focusing on location called Pixagogo. I learnt a hell of a lot making it, and we have regular users from all around the world enjoying a different way of enjoying Instagram pictures.

We’ve also shipped several updates to our Daily Optimiser app, and now it’s a paid app we have a small band of regular and hopefully happy users.

Unfortunately my fledgling business isn’t bringing in enough money to pay the bills yet, so for the last few months I’ve been contracting at Sage in Newcastle working on a confidential project doing financial website stuff (which is as much as I can and want to say).

The plan

While we ponder our next major app, I want to keep learning by building things. So my plan is to build an app in the open where I can do the following things:

  • Build something in Swift
  • Something simple that I can ship in a few hours work
  • Use the WatchKit SDK for something that might work on the Apple Watch when it ships
  • Share the code on Github
  • Blog about what I’m learning along the way

I have an idea what I’m going to do, and hopefully will start working on this during the next week.

If that’s true, there should be a new post here a bit sooner than the last interval :(

Personal Apps

My Next Challenge

So I’ve left Microsoft/Bing once again (lost count how many times I’ve come and gone).

My contract had expired at the end of June, and I think it’s time to do something away from search for a while. I’m currently looking for contract work where I can be more flexible in my location - which I guess means working at home for most of the time.

Over the last few months I’ve been working hard on the all-new iPad version of Daily Optimiser app. I’ve learnt a hell of a lot about iOS development in the process, and am really proud of what we’ve built. Checkout the website for full details of what the app does.

It should be in the App Store within days (assuming it passes the review process), but if you want to be a beta tester for this or future versions, drop me an email and I’ll set you up.

Now I have a bit more time I’m hoping to blog a lot more about what I’m learning along the way. We will see as I’ve said that before :)


Consolidating Old Blog Posts

I’ve been thinking for a while I have too many blogs I’ve created over time, so I decided to try and consolidate them in just a couple of places.

This blog seemed the most sensible place to hold my “technical” blog posts, and the real challenge was to pull in some pretty old posts going back to 2005(!) from my old MSDN Blog.

The Jekyll RSS importer did a reasonable job of getting the “newest” 15 posts, but they weren’t the fill articles, so a major copy and paste job entailed to get everything working.

A couple of things I noticed when going through these old posts are:

  • Old HTML editors based on IE Trident are terrible - some of the saved HTML was truly horrendous
  • I’ve hated the Visual Studio unit test runner for ages, and it’s still not any better

One of the earliest posts about XML namespaces is still getting comments on MSDN every so often, and is surprisingly the most useful thing I’ve ever written.

Anyway, it makes me happy that all these posts are now in one place and in HTML and Markdown files, so I can easily port them whenever I want in the future.

Blogging Visual Studio

Total Remote Working

I’m now doing almost all of my computing remotely (and “device independently”), so I thought I’d share what I’ve done and a few roadblocks I had to avoid along the way.

Accessing my Mac remotely

My first attempt to access my Mac Mini from outside my home was via VNC and the built-in screen sharing (plus No-IP and opening up a few ports on my router). This worked just about OK, but all of the VNC clients I found were all a bit useless.

Now I’ve switched to using LogMeIn, which has proved pretty good so far. There is a nice native client on my iPad, plus a Chrome extension for access on any PC.

Windows VM on Azure

One of the excuses I used to buy my new iPad Mini was to save me taking both a Kindle and my personal PC laptop on the road.

However I still need PC access for a few ASP.Net sites I do the odd bit of work on now and again, so I’ve setup a Windows VM on Azure using the credits I get from my MSDN subscription.

It’s running Windows Server 2008 so setting it up with everything I needed was a little fiddly …

Setting up Google Drive on an Azure VM

I keep a backup of my business documents and a few Excel spreadsheets on Google Drive, so need access to them via a PC. However I just couldn’t get the Google Drive Windows client working on the Win2K8 VM.

The solution was found in this discussion group, where it turns out you need to install the x86 Microsoft Visual C++ 2008 SP1 Redistributable Package - even though the servers are amd64 machines for the Google Drive client to work

Access on 64 bit machine via IIS

One of my really old sites still uses an Access database to hold the data (yes I know!), but it turns out there are no native 64 bit drivers for Access.

As explained on this page, the solution is to set the Application Pool to enable 32-bit applications, and all is right in this old fashioned world!

Doing everything in the cloud?

I’m pretty happy with almost always using my small but high-resolution iPad Mini to do the odd bit of development when away from home. The iOS Remote Desktop client is truly excellent (as is the MacOS one), and the times when I’m opening up my Windows laptop are less and less.

I’m thinking off possibly getting a small bluetooth keyboard - as extended typing on the the screen is pretty painful - but other than that it’s working surprisingly well.

Storing most of my data across a combination of DropBox, Google Drive and SkyDrive, code in Git at BitBucket and Github, and any odd notes in Evernote, really means I can now be pretty platform agnostic for most tasks, both on where the work is being done and the screen I’m viewing it on.

Remote Working LogMeIn Azure