Podcast recommendations ...
... by Curtis McHale.
Web developer with a preference for Ruby on Rails
... by Curtis McHale.
With the release of the new Swift language for Mac developers, I am now interested in trying out app development for iOS and OS X. With thousands of apps out there though, is there room for new apps?
The App Store is five years old this year. Since it started its life as a platform for the distribution of apps to iOS devices, we've seen a few big hits in terms of well executed apps over the years. I don't think there is one true killer app that has made the App Store what it is, but over time there has definitely been a number of niche apps that have been popular with a particular group of people.
People talk about the simple ideas that took the App Store by storm like Angry Birds, Flight Control and others. Yes, they seem simple ideas, but there is still a fair amount of work involved in building and shipping an app. I'm not expecting to publish a game changing app right away, but I do want to start building my experience in the world of app development.
At the start of the week Apple unveiled a new programming language for developers who want to build apps for iOS devices or Macs. It's called Swift. As someone who has made a number of false starts on iOS development over the last couple of years, I welcome the new language. In the past I have looked at Objective-C which was the only true language to use to build iOS apps. When I seen its syntax I was always turned off by it. With time I could learn about the language, but just as I was starting out I always ended up trashing the idea. With the new Swift programming language though I think I'm ready now to start building apps for iOS and the Mac.
Now the tricky part. An idea. Are there any good ideas for apps left? I've been pondering on this for a couple of days now and it's led me to a number of sources for ideas for new apps.
There are many apps out there that simply try to make something easier to do. I haven't came across many that I thought did this well, but there are thousands that started out this way. The problem with starting an app from this view is that it's only easier from your angle. Yes, there will be others that will share the same view, but will there be enough people who share your view to warrant building the easier app?
The Internet is a vast source of information and services. Everyday new services are added for people to use and many of them start with basic web sites to get going. When Twitter started, a developer in the UK seen an opportunity to make interacting with Twitter easier for people. The Twitter user interface was a single timeline that everyone followed, but seeing your messages or mentions meant changing screens. TweetDeck was born and it became an instant success with it's better interface to using Twitter.
Making a better shop window to a particular service is hard work and is probably out of my reach in terms of skills. It means designing something better, and while I might be able to put together well crafted web page, the thought of trying to create a better interface for a particular service sounds like a rather daunting task.
It would also need to be a service that I use on a frequent basis, but seeing as most of the services I use already have good to excellent apps that let me interact with them, then the challenge to make a better interface is that much harder.
Perhaps the easiest source of making an app comes from scratching your own itch. If making thousands of dollars isn't your end goal when making an app, then this is where to start. Building an app that serves a purpose for yourself and gives you the experience to build better apps in the future.
An iOS/OS X client for Journalong is something I've had in mind for a year now, but there's always been obstacles in the way. Now with a growing interest in Swift, I might just have the motivation to start building something.
I'm never going to produce the next killer app, but perhaps shipping something that serves my own purpose first is enough of a step on the road to building more apps in the future.
I finally got round to reading this over the weekend. Matt makes a fine case for using tools that force you to think before you act.
There’s a ritualistic quality to these objects, but that’s not why I love them. I use them to slow myself down. To introduce just enough friction that I’m compelled to pause. We don’t pause enough anymore. We don’t give ourselves time to think.
— Thinking slowly by Matt Gemmell
I keep just eight apps on the home screen of my iPhone. They're the essential eight, the eight apps I use on a daily basis. I keep it down to eight apps so that when I open my phone and go to my home screen, it's easier to find the apps that matter. Having just the eight apps I need on my home screen means I'm not spending time looking for my app or even being distracted by other apps. I unlock my phone, open the first screen (if it's not already on that), read, write, schedule or manage using one of my apps on this screen and then put my phone down. Your own selection of apps might vary according to what you need but here's my eight:
And here's how they look on screen:

The first four apps are probably typical on many phones. Task management, scheduling, an RSS reader and a social network client. In each case of reading and writing I have two apps for the different reading and writing that I do.
I use the Kindle app mainly for reading on the go. Maybe catchup on a chapter from the book I'm reading if I find myself with a few minutes to kill. The Instapaper app is also there for reading. Anything like a blog post or online article that I've saved to read later.
The same goes for the writing apps. I use one for working on blog posts and other documents while I use Pop mainly as a scratchpad for ideas or something I just want to jot down.
These are the eight apps that I use on a daily basis. There are apps on the other screens I have but these aren't apps I use daily. The second screen is apps that I use mostly day to day. These include apps like Sunlit, Path and Day One while there are also apps relating to my career, such as HipChat, Linode, Cloud66 and Trello. The screen that follows on from this is Apple's own apps that I use from time to time and lastly there's another screen with apps that I never use. You might think that's a lot of screens but to be honest I rarely visit the third screen and the second screen maybe gets opened once a day for something specific.
I also employ a fixed number of apps for my homescreen. If I want to bring another app in, I have to remove one to make space for it. I have rarely had to do this since I started using this format. I have made a number of app changes on this screen over time, but that's to reflect apps that were not working for me and needed to be replaced. Perhaps the most frequently changed app on this screen is the long form writing app. Previously I have tried Drafts, Plaintext, Plaintext 2 and Byword. Having tried a number of these apps and finding shortcomings in all of them, I'm glad that Editorial was finally released for the iPhone.
I've experimented with just four apps as well as having twelve apps on the screen, but having eight is for the right amount of apps I need in front of me at any given time.
For those interested in the Menu Bar at the bottom of the iPhone's screen, I stick to Apple's own offerings for communicating. These are Messages, Phone, Mail and Safari. I've tried different apps on this section of the screen as well but it's hard to beat Apple's own apps for doing these things.
I've tried in the past to get the number of apps down on my phone, but it gets more difficult when you find you start doing more things on the go. Clearing out my home screen means that I have at least one screen on my phone, more importantly the first one, that doesn't give me too many choices in the apps that I can use. Other apps are just a swipe away but I'm too lazy to even do that half the time. Limiting yourself and the choices you can make is a great way to stay focused.
... for your notebook.
I'm a big fan of Patrick Rhone's Dash/Plus system, but whatever suits yourself works.
For most of my career I've worked on a number of applications, systems, websites and other software projects. The majority of this software has been business critical software. When working on software like this, you have to keep in mind that you're delivering value with the software and in turn the business. This might be a retailer, a service provider or some other business. While it's easy to see the value you are providing, sometimes it's hard to see the value that this company provides to others.
In the last couple of weeks though I've been working on a project for a client that has some real rewards and benefits. It's a website that provides speech therapy exercises to kids. Parents login for their kids who in turn carry out a series of exercises assigned by their therapist. Once done, the kids fill out a little assessment form and their done. It's clear to see that this will have some real long term benefits for those that will use the website.
Another reason I can see the benefits in this is that my nephew who is turning three this year, has had trouble in the past with his speech. Due to problems with his hearing, his speech didn't come as it does with other kids his age. He ended up becoming more and more fustrated as a result of having difficulties in communicating with his family. After the problem with his hearing was identified and resolved, he was referred to a speech therapist and we've started to see real progress in his speech. It's amazing to watch the results.
With my nephew in mind, it's a real pleasure to work on software that will be used to benefits others. It's such rewarding work.
Essential lists for life from Cultural Offering.
Thanks Kurt.
Curtis McHale knows his tried and tested from his new hotness. You should too.
Sicne I started using DuckDuckGo as my primary search engine last year, I've had to content myself with what was an aging look and feel to their search results. While Google and Yahoo were charging ahead with redesigned search result listings, DuckDuckGo was falling behind. Thankfully though DuckDuckGo recently upgraded their search page.
The new user interface itself is a welcome upgrade to the old one interface. With tabs for images, videos and products, searches become much more useful depending on your search term and the search listings themselves are easy to scan. There is also a section with more details about your search term if it's a person, company, product or brand name.
Not only does the new user interface work well on desktops and laptops, but it's mobile friendly as well. I've frequently use it now on my iPhone rather than the suggested search engines that Apple includes. Without jailbreaking my phone though, there's no way to make DuckDuckGo your default search engine on the iPhone. I'm hoping that this will be an option in the future.
The next step I hope is that DuckDuckGo updates their iOS app with ability to do searches there and pass the results into Safari. There might be restrictions on this, but it's what I would like to see.
I'm glad to see that DuckDuckGo are keeping their search engine modern and relevant. It might just be a change of look to the search engine, but sometimes that's all that is needed.
At long last I managed to finish The Second World War which has been holding up my reading list for the last few months. Here's a few reviews of what I've been reading over the last few months.
Checklists are often skipped over as an aid to problem solving. They shouldn't be. They provide a quick step plan to narrowing down a search or criteria to identify a problem.
This week was one of those week's where I was caught out with a problem. In debugging an application, I couldn't work out why the plugin I installed and setup wasn't being called in a screen. Despite changing what I thought was the correct screen, nothing was happening. It turns out I was in fact updating the wrong screen. A simple mistake to make in most applications but here the application is slightly different.
This application I am referring to is in fact a content management system. It contains a number of different layouts depending on the type of site that you want. This means that there are hundreds of files that make up the user-interface to the application. There is a default file representing each particular screen and then there is a screen for each different type of site that can override the default screen if we need it. This means that there are hundreds of files representing the different screens in this application. Some are similar and as a result, ensuring you are updating the correct screen is important.
So where does the checklist fit in then? Well as I was debugging the application on a particular type of site, following through a number of steps would have ensured that I was in fact debugging the correct screen. Thinking of each item on the checklist as a way of narrowing down the problem allows you to eliminate easy to find problems, eventually narrowing down you scope to the actual problem you were having.
I've since started putting together a number of checklists for identifying such problems. I've done a number of debugging sessions like this where I missed a step in identifying the actual issue and instead spent a few hours going down the wrong path. It's time that I don't want to waste in the future. I'd rather identify the problem quickly, fix it and crack on with something else.
Not surprising that George RR Martin writes his Song of Ice & Fire books on a disconnected DOS machine. With that amount of plot lines, character deaths and surprises he can't afford distractions. It does raise another question though, how many assumptions does your computer make about what you do?
I watched the clip of George RR Martin on Conan admitting that he used an old DOS PC that isn't connected to the internet to write his series of books, A Song of Ice & Fire. Martin and Conan have a laugh about it on the clip, but Martin makes a good point about the computers of today. They do so much for you, but are they doing too much?
When I was a software developer working with Microsoft's .NET framework, I wrote all of my applications in a programming environment that did some of the work for you. It's called a integrated development environment or IDE for short. What sets an IDE apart from a regular text editor like Sublime Text or Vim, is that the IDE is more than just a text editor. It's an environment tailored towards a specific set of languages or frameworks. It has features and shortcuts built-in that are there to help you write software applications.
One of the reasons that Microsoft's Visual Studio environment is used by so many developers working with Microsoft's .NET framework is that it does some of the work for you. When you create a file for your project, it will include a template of a class or module with boilerplate code included, or if you're building a website it will include a basic layout on a new HTML file. It does lots of little things like this because it's been built to assist the programmer as much as it can.
Having worked with IDE's like Visual Studio for a number of years it's easy to the see benefits in the amount of code you can write in a typical work day. I wasn't happy with this though. Too many of the small decisions were being taken out of my hands and assumptions were made by Visual Studio that I would need everything that it generated for me. Over time I gradullay tailored the templates and snippets that Visual Studio included by default so that Visual Studio wasn't making as many big assumptions about what I need. Not everyone does this though.
This is what Martin makes a point of when he is writing. He doesn't want an opinionated machine that makes suggestions for him, he wants a machine that just does as it's told. In this case if he makes a spelling mistake it won't suggest the right spelling to him, if he writes a new word that the computer can't find in a dictionary it won't suggest an alternative word that it thinks the writer was supposed to type. It takes the words that Martin types in and that's it. That's probably all that a lot of writers want. A chance to write without distractions and suggestions and other changes that the computer thinks we need.
I use a text editor with a few plugins that automate work for me as a programmer. As a rule I use packages and libraries that only make a minimal number of assumptions about what I need when I am writing code. Yes, I have snippets to create new classes, modules and methods, but they don't assume I need anything more than the declaration of the object in question. I want to make the decision about the structure of a new class or a new method when I'm writing my code. If the computer does it and it's wrong, I end up having to make a correction and then continue with work.
It's good to see that Martin is proof that the latest devices or apps are not what you need to make an idea a reality. Focusing on computer speed, productivity tools and other factors may not make you work any faster than if you had older equipment and tools. It's about using those tools correctly and removing distractions and barriers that make you productive. Every day I face my laptop and get notifications of new emails, app updates, test updates, and all manner of alerts telling me to shift my focus from what I am doing. I should turn these off or at least par them back to only the necessary alerts that I need to do my job.
Computers, tablets, phones and even washing machines, dish washers other home appliances are all made to make assumptions about what we want. These aren't always the right assumptions and we often find ourselves making daily micro adjustments to get the desired result. By ensuring that the devices and apps we use make minimal assumptions about what we do, it allows us to do things our way. And doing things our own way is better than adhering having to constantly fine tune the ways of others to get what we want.
... without VC's, funding, rock star programmers or a hip office.
It can only be Nicholas Bate.
Graham Obree and Chris Boardman have both had their Hour Record times re-instated into the record books thanks to simpler regulations that determine the equipment cyclists can use to break the hour record.
I had that 'new bike itch' again, but despite the advances in lighter materials and better suspension, I'm still a hardtail die hard at heart.
I went out on my first mountain bike ride in a few months this week. It was great fun, I'm hoping to get out a lot more often now that I have more time and family life has settled down again. Our youngest is finally sleeping a lot better thanks to his new inhalers, my freelance career is steady and my bike came out the shop with a few much needed upgrades a few months ago. My bike is an On-One Inbred steel hardtail with mid-travel suspenion at the front. Steel has been a favourite of mine since I got my first mountain bike as a kid, a Kona Fire Mountain. I love the feel you get on the trail as you're riding. I have tried a couple of aluminium frames in the past but you can feel the harshness of these frames as you're riding. Every bump on the trails is transferred through the frame to you. When it gets bumpy you can feel it.
I've also tried a couple of 'hardcore hardtails' for more aggressive riding in the last few years. These bikes are great for downhilling, jumps, and bigger drops than your typical mountain bike could handle. Those days are long past me though. Hefting such weight about on the trail can take it's toll. I'm reaching my late thirties now and I don't have the stamina I had when I was younger, so when I want to get out and ride, I just want to ride. Which is why I eventually settled on the bike I did, a plain hardtail trail bike.
After talking to a friend about his new full-suspension bike, I got that 'new bike itch' again. So last night at 2am while our youngest was demolishing a bottle of milk, I started browsing for full-suspension bikes on my iPhone.
Having never owned a full-suspension bike, I've nothing to compare a hardtail to in terms of riding, but for the purist like me I think that they're more suited to more extreme trails. They have their advantages when setup correctly, even with the extra weight they carry (which is becoming less and less of an issue), they allow for faster lines absorbing all those bumps and roots in the trails that other bikes may opt to avoid. I'm not going to get into a debate with the rest of the mountain biking community over hardtails versus full-suspension, for me I do prefer a well built hardtail.
After 30 minutes of browsing the many online bike stores, one thing was clear to me. Full-suspension bikes are more expensive than their hardtail counterparts, but even aiming at the £1000 point there are few full-suspension bikes that would win me over. I'll admit it would be hard to get a decent full-suspension bike at this price point, going higher would definitely open up more options, but I couldn't realistically pay anymore than £2000 for a mountain bike. If I had a budget of £1500 I would definitely buy a hardtail every time. The simplicity of the setup is what sells it for me. A bike that you can simply ride anywhere. Yes it might not handle the more extreme trails in the Alps, or even the black routes at the trails centres across Scotland, but it will handle the 90% of my riding needs. Also at this point you can push the boat out to getting yourself a better than average bike in terms of components.
The new bike itch is still there largely in part to the changing sizes in wheels that bikes are available in. I think the 650B size will eventually become the more popular wheel size in general with a minority number of bikes coming in the 29" size.
I'm not ready to buy anything just yet, but when the time comes, I will definitely be looking towards the hardtail market again for a new bike. It's a proven design that has lasted for decades and hopefully will last for many more to come.

via Cycle EXIF
Communication is important when establishing a relationship with a potential client. It can be won or lost in just a couple of minutes.
We have an area in our front garden that is shaded for most of the day and the soil is terrible for growing anything in. For the last five years we've covered the ground with tarpaulin and gravel just to make it more presentable. It still looks bare though so I called a couple of landscape gardeners to come out and give me quotes to put a rock garden in to make the front of the house a lot nicer to look at.
The first landscape gardener that came out had a professional looking website with examples of his team's work. I started to explain the situation and what I had in mind. He agreed with everything I suggested and I mean everything. There were no suggestions or ideas from him not even a question about plants, colour of stone or anything else for that matter. The price he gave us was cheap but then he didn't give me the impression that there would be anything eye-catching about what he would produce. His lack of discussion didn't boost my confidence either.
The second landscape gardener arrived a few days later. I actually got his number from a neighbour and he's done a number of gardens in and around the area so it's easy to see his work. I told him my idea for the front and what suggestions he had. After taking a couple of minutes to look at the ground he said that he could do what I asked but he made a number of suggestions that would make the rock garden more natural looking as well as ensuring that the plants would grow with the right amount of drainage under them. The conversation went on for about 15 minutes until we both agreed what I was looking after. He couldn't give a price there and then as he said he would need to do some price checking to get the best deal. A week later and he called with a quote that was more than the first quote we got but still within our budget.
The second was different though. Conversation, engagement, sharing ideas and collaborating. He explained the options that I had, possible problems with solutions and even made a number of suggestions to improve the rock garden. This is why I will be going with the second landscape gardener. It was clear from our conversation that he had the knowledge and he explained exactly what he had in mind.
It was all in the communication. It was two way and simple. It's worth remembering that when talking to potential clients about project work to be honest and helpful in that first conversation. When other factors don't come into it, it might just hinge on that first conversation.
Tolerance is something that many of us were able to exercise before the Internet, now though it seems that tolerance has been cast aside and replaced with knee jerk reactions.
It's amazing how much lower our tolerance levels are as citizens of the Internet. As soon as something is wrong, the stage is set for an outpouring of protest. It could be thousands, hundreds or even one person reacting to an incident that otherwise would be considered harmless. With the option to broadcast our opinions though, we have become a generation of Internet users who are quick to scorn those who we consider to have done us wrong. I've already read a couple of these type of posts this morning and it's just gone past 11am.
Take for example the post I read this morning. A person complaining they are getting spammed from the service that they pay for. There's lots of ways to interpret this. Is it spam? Did they sign up to their 'marketing' list?
The person's response was to stop using the service and encourage others to follow. Have we become so intolerant that we're happy to jump from one service to another just because we got a marketing email from a company whose product we use? Okay, I agree the email may in fact be classed as spam and unwanted, but is it so bad that we should stop using the service altogether?
I've faced a number of situations in the last few months where I questioned the actions of a service provider I use.
The first case was Github's initial handling of a delicate situation involving one of their CEO's and a now ex-employee (they eventually followed up with a better response). Rather than going into the whole story, I just thought Github initially handled the situation wrongly. I wasn't happy with the way it was going. I wanted to take some action. Did I stop using Github? No. I did however downgrade my account and it continues to run on their free account.
Could I stop using Github altogether? No I can't and the reason why is that a number of my clients use Github so I still need to be able collaborate with them on Github and that means keeping my account. From an incident that I wasn't happy with, I was able to take some action without causing disruption to my workflow and clients. Since then I've found a nice alternative to Github called BitBucket. Sure BitBucket might do something bad in the future but I haven't completely discounted Github.
The second case was the appointment of Condoleezza Rice as a new member of the board for Dropbox. Now I've been a happy customer of Dropbox for a number of years now and yes I questioned the appointment but I just simply couldn't afford the time to spend looking for alternative cloud storage service that done everything I need it to. Also I like using Dropbox. I like using it alot. Am I really going give myself disruption by moving to another cloud storage provider?
Tolerating the decision in the long term with an eye to reviewing it in the future was the best solution I had. Compared to the first case, this isn't such a bad incident. Sure the new board member has a background in American politics that many might question, but it's not like Dropbox are just handing the keys over to someone else.
In both cases I questioned the actions of the service. Yes, the first reaction of many in each case is to stop using the service entirely, but then what happens when a similar action happens down the line with another service provider? Do I stop using them and move onto the next available service I can get? Hardly ideal given that I would eventually run out of adequate service providers to use and I would eventually end up with a tools and apps that at best meet half my needs. That's not what I want.
It’s amazing what prompts people to stop using a service or app. Even the smallest amount of inconvenience now seems to make people want to switch to something else. In the Internet world this is an initially easy thing to do, but in the real world it's not so simple.
There's a supermarket chain in the UK that has become something of a superpower in the amount of land it owns. This supermarket chain bought land in the centre of our town with plans to put a store there, however it has since put the plans on hold and now there's an eyesore of derelict land sitting unused in the centre of town. Hardly a benefit to the town. I choose to largely not shop at this chain now, but it's not always ideal. If I need something urgent then I wouldn't be against using the chain to purchase the goods that I need. Most of the time though I choose to shop elsewhere.
Back to the digital landscape that is the Internet though, and while you could move from one app to another there comes a point where you look back and think that the service you got from a provider wasn't so bad. When it comes to supermarkets, I choose to shop elsewhere when I can but it's not always ideal. Could you honestly say that you will stop using a specific service forever? I don't think I could.
If your level of tolerance is so low that you're prepared to switch from one service to another then eventually you're going to run out of options and have to consider one of those services that you couldn't tolerate in the past. Rather than letting knee jerk reactions guide your decisions why not be more tolerable of the mistakes that services make. They're run by humans therefore they're prone to the same mistakes that everyone makes. You just have to decide if that mistake has consequences that affect you or others. So what, they took a feature away or they had some downtime. Big deal, as long they are not harming yourself or others then where's the problem?
... Kurt Harden.
Here's the first:
- Grab them by the … whatever will get their attention. Memo? Invert that triangle. “Start at the last page” as a client recently told me. “Our new product line is selling very well, with penetration in existing clients of 30% after the first year. But the _____ line is failing…” A paper? Get the most interesting quotation you can find, and place it right before the start of your paper. It’s okay, the person reading your paper wants to enjoy themselves. You will be rewarded for making the experience interesting.
— So you have to write a report/paper/memo by Cultural Offering
... thinking slowly.
Nicholas Bate once again with advice on becoming wealthy
Hint: It's not about working your ass off.
The desire and willingness to create things that genuinely help people is the only business plan and personal brand you need. With this, you can get started today. No fancy website or business cards needed.
— My Personal Brand by Patrick Rhone
No mention of domain names, icons, or even social networks. It just takes the need to create and help others.