I can’t believe this is my fifth year in review post! I have to admit when I first wrote one at the end of 2012 it felt a bit self indulgent, but fast forward to the end of 2016 and it’s great to be able to look back at what’s happened in each year, and how things have changed. Writing one is also a great chance to take a moment to reflect on the year I’ve had. Continue Reading…
- Monetise Harriet & Violet
- Break 100 on a golf round
- Create something new
- Reduce the todo list!
- Run parkruns semi regularly
- Disconnect more
- Consolidate personal sites
- Grow Michelle's sites and business
- Get better at golf
- Paleo diet fulltime
- Instagrate 2.0 with improved free version
- Wild Moors and Tors Challenge 2016
2015 was a busy year! Having a new son meant I didn’t have chance to set any goals for the year, just keep things ticking over. Continue Reading…
Things are a little busy at the moment, so here is the abridged version:
Since I made the jump to full time freelancing at the start of 2013 I have had to become more aware of how I manage my time.
My first piece of regular work was for Dev7studios, working from home as Gilbert is based in the north of Scotland. Working remotely for someone you have only ever chatted to on Skype comes with the underlying need for honesty around hours tracked and billed. I had recently moved my accounting online with FreeAgent and was able to make full use of its time tracking for projects coupled with the excellent Slips for Mac from Rareloop. This meant I could literally start a timer before working on Dev7studios work and record exactly how long I took.
When I started working for Outlandish on multiple projects within a larger team, I quickly realised that time tracking against projects needed to be accurate and consistent. They use YouTrack for issue tracking and project management, so time needs to be recorded against tasks in there. Outlandish are going through a period of rapid growth and are facing the challenges that scaling brings, especially around efficiency, productivity and time management. They are also a very transparent company and discussions were happening the other day in the office around these challenges that prompted me to reflect on time management for my own business. This has been on my mind recently as I signed up for RescueTime to track my screen time to monitor productivity.
Last night I wrote a large to-do list on Trello for the myriad of projects I needed to work on today. As I started today it occurred to me that I don’t actually track time on any of my own projects. As I don’t bill myself I just have never thought to do so, which of course is totally crazy. I spend around 10-30 minutes a day on plugin support but never record it. When I work on plugin development it is totally untracked. When it comes to sales and earning metrics I have everything to hand, but I am missing the important time tracking to really be able to add real insight to my plugin business.
This all changed today when I created a client for myself in FreeAgent and added all my active projects and tasks to record time against. This had the added benefit of allowing me to work in smaller chunks of time on different things. An hour of coding here, an hour of design there as well as chunks of business development. It has been without doubt one of my most productive days and I am excited by a new routine that will enable better business insight and hopefully increased productivity.
How do you manage your time? What tools or methods do you use?
As Christmas was coming up and family were searching for presents to get me, I thought it was the perfect time to get a Pi and some extra kit for it. Here’s what Santa got me:
- Raspberry Pi Model B
- Micro USB Power Supply
- SanDisk 4GB SD Card
- Raspberry Pi User Guide
- Edimax Wireless Nano USB Adapter
After the initial excitement of Christmas day died down and the hectic New Year set in I couldn’t find any spare time to set it up. I was also hesitating until I had decided on a use for it. I wanted to find a useful and / or cool job for it. I toyed with the idea of recreating Oscar from the video, I didn’t need a media center and as much as I would love to use it to power a robot, it didn’t seem likely.
The Problem to Solve
I have had a fairly decent HP printer for a few years now, that works well but is just a little too old to have been fitted with wireless support. This has always presented a hassle of having to move our laptops to plug it in when we want to print and does not support AirPrint from our iPhones or iPad. It always seemed completely wasteful to ditch the printer for a newer wifi one, so we persevered until this morning when the idea came to me. Use the Raspberry Pi as a print server.
A brief google on the subject showed this was a popular use for the Pi and there seemed to be plenty of tutorials on the subject. Great, my Sunday project was on!
Setting up the Raspberry Pi
Before I could start thinking about the print server I had to get my Pi and equipment unboxed and setup. I had read a lot about installing the New Out Of Box Software (NOOBS) on my SD card, but decided on just installing the Raspbian OS on the card.
Preparing the SD Card
Here are the steps I followed using this tutorial:
- Download Raspbian wheezy
- Format SD card
- Unmount SD card
- Flash SD with Raspbian image(this can take a few minutes)
- Eject SD and insert into Pi
Turning it on
I then connected my monitor via HDMI, my USB keyboard and mouse via a dongle (to leave a USB slot free for the Wi-Fi adapter) and then the micro USB power cable which turns on the machine.
When the Pi had finished booting I was shown the Raspberry Pi Software Configuration Tool screen, where I expanded the file system and set the boot to go to the desktop.
I then plugged in the Wi-Fi adapter and configured it via the Wi-Fi config icon on the desktop but I could have followed this in the terminal.
Connecting Remotely with SSH
Once the Pi was connected to my router I could connect remotely to it with my Macbook via SSH in the terminal with this command and entering the password for Raspberry Pi when prompted:
ssh 192.168.1.x -l pi
I generally connect to machines, without entering passwords, with SSH keys and so I used this command from this tutorial:
cat ~/.ssh/id_rsa.pub | ssh email@example.com "mkdir .ssh;cat >> .ssh/authorized_keys"
I also like to give aliases to my SSH connections, so I added this to my
Host pi HostName 192.168.1.x User pi IdentityFile ~/.ssh/id_rsa
The Print Server
Now down to business. Here are the steps I followed using this tutorial:
- Update packages
- Install required packages
- Configure CUPS
- Connect printer to the Pi and configure with CUPS
- Print test page via CUPS admin
- Print tests from Macbook and various iOS devices.
- Getting Started with Raspberry Pi: Installing Raspbian
- Raspberry Pi – Installing the Edimax EW-7811Un USB WiFi Adapter (WiFiPi)
- Logging into a Rasberry Pi using Public/Private Keys
- Configuring the Raspberry Pi as an AirPrint Server
- Wireless Printing/AirPrint Server via the Raspberry Pi
This all went surprisingly without a hitch and it is great to have wireless printing in the house with the added bonus of now being able to print from our iOS devices.
Have you got a Raspberry Pi? What are you using it for?
If you build and sell software then there is no escaping the need to support your product. Even open source software that is built for free with no expectations of use creates an overhead of issues and support. Dealing with users and their issues has been something I have been grappling with ever since I released my first free WordPress plugin back in 2012 and it has been a love/hate relationship ever since.
I used to get excited about receiving emails from users, even though they had issues, because people were actually using my plugin. It quickly got to the stage where every email and new bug made me feel personally responsible for the issue and I would stress about it until I could get it fixed. Having the support purely via email with that account on my iPhone meant i was effectively on call at all hours of the day. I would receive an email late at night and immediately jump on the computer to respond and fix. I would spot an email about a bug on a saturday morning and it would put me in a bad mood for the rest of the day because I hated the idea something I had built wasn’t perfect.
As much as it got me down and became a chore I firmly believe that support is a necessary part of software. You aren’t just building for yourself so support identifies problems and potential ideas and features you haven’t thought of. It can inform documentation and FAQs to try and taper support over time. I can understand how many people just don’t want to do it and perhaps outsource. But there is mileage in being a developer who answers support. You are best placed to answer more detailed points about the software and can immediately recognise when an issue is a bug and log it for a future fix.
A Good Workman is Helped by His Tools
I later moved the support from email to a bbPress forum on my WordPress site. This helped organise my approach a bit more and at least made common issues visible to users in an effort to reduce new questions.
As much as I love WordPress and think bbPress is a great plugin, I just couldn’t get along with it for providing support. I was constantly battling spam and had issues editing posting code in replies. There were just far too many clicks involved to work though replying to new issues.
It wasn’t until I started regularly helping out with the support for Dev7studios that I realised there were other solutions dedicated to making support simpler and easier to get on top of. They were using a product called Sirportly as a ticketing system that runs off emails but with a intuitive administration area and support discussions driven from email conversations that are made public. I couldn’t believe how nice it felt responding to a ticket, moving to the next one, resolving them and moving on. I was also pleasantly surprised to find out that the company behind Sirportly is the small but gifted aTech Media based in a Poole, Dorset where I used to live and work. I was sold and almost immediately signed up for my own support and migrated my bbPress forums across to the new system.
A More Positive Approach
After reading a post from Dev7studios founder Gilbert Pellegrom, I was relieved to hear other people have had the same issues with support and have felt the slump in motivation. The post gave some good advice in the form of Gilbert’s new approach; do support early in the morning, every morning. Spending an hour when you are fresh means you can get it out of the way before starting ‘real’ work but it also stops you from reacting throughout the day and firefighting issues. It also means that all tickets are answered within 24 hours.
I have been doing this since I moved to Sirportly and my early morning routine is now firmly in place with a strong coffee to tackle the support for my plugins and then for Dev7studios. How do you handle support and what tools do you use?
The last quarter of 2013 saw me write more online and I got a taste for it. I have decided to increase the amount I write in 2014 and hopefully add writing to my income stream as a freelancer.
So who’s kicking off the new year with a photo project?
— RickNunn (@RickNunn) January 3, 2014
I saw him tweet this the other day and it inspired me to translate that to my blogging goals. I had also been following closely the awesome Blogging for Benjamin project within the WooThemes team, that saw a month of daily posts from the likes of Coen Jacobs, Mike Jolley and Patrick Rauland. This project yielded some great posts and was inspirational to follow.
So to give myself that little push to keep writing all year I am setting myself the target of a post a week for the next year. It is certainly not a hard target and I hope to write more than one a week, but it gives me some structure that should help stabilise my motivation.
Posts will be on various topics from WordPress, software development, fitness, and freelancing and will be posted here, polevaultweb, Dev7studios, FitPlan.it, and any blogs as guest posts. Like Blogging for Benjamin posts will need to be more than 300 words and can be scheduled for the future but not back dated.
To ease into the project this will count as my first post – week 1 and I will be updating this post with each article as it happens. If you do read the posts or follow this project I hope you enjoy it and I hope I can complete the project and come out of the year a better and more motivated writer.
- Week 1 - 52 Week Blogging Project
- Week 2 - Why I Changed My Code Editor
- Week 3 - Adding Code Customisations in WordPress the Right Way
- Week 4 - My Toolset
- Week 5 - Software Support is Hard
- Week 6 - WordPress in Its Own Directory & Cookies
- Week 7 - Introducing Instagrate Pro: Automatically Post Instagram Images to Your WordPress Site
- Week 8 - My Go-To WordPress Plugins
- Week 9 - Back to Basics
- Week 10 - Building Useful WordPress Plugins
- Week 11 - Open Source at Dev7studios
- Week 12 - 5 Ways to Synchronise WordPress Uploads Across Environments
- Week 13 - Setting up My Raspberry Pi as a Print Server with AirPrint Support
- Week 14 - Using Trello For Everything
- Week 15 - Developing For Ninja Forms
- Week 16 - Will WordPress be a Plugin Business Killer?
- Week 17 - File Uploads Gets Cloud Storage Integration
- Week 18 - Welcome WP App Store
- Week 19 - Harriet & Violet – One Year Old
- Week 20 - Pricing Models for WordPress Plugins
- Week 21 - Marketing WP App Store
- Week 22 - Better Time Management
- Week 23 - A New Look
- Week 24 - 3 Plugins That Changed How I Develop for WordPress
- Week 25 - ACF PRO and the Great Backward Compatibility Debate
- Week 26 - Workflow Automation for WP App Store
- Week 27 - Why I am excited about Themosis Framework
- Build an app with Laravel
- 52 week blogging project
- Play sport again
- Complete Skyrim
- Build something useful with my Raspberry Pi
- Improve on Instagrate's success and build up more documentation
- Improve on static bike cycling
- Build extensions for and contribute to other WordPress plugins
- Read PHP The Right Way http://www.phptherightway.com/