Recent Posts

My Favourite Feature in Firefox

I think it's fair to say that I've finally settled on a browser that I enjoy using. For well over a year now, Firefox has been my browser of choice. Over the years I've used Internet Explorer (long story), Safari, Chrome and even Opera for a while. In between those I've used Firefox as well. Ditching all Google tools meant that I wanted something that had good development tools, an extensive library of add ons and a few other features that I just like as an individual. Firefox fitted the bill and I've been using it for two years straight now.

Firefox has added a number of great features of the years. Cross-platform support, continually improving security and even pinned tabs. They're all great features, but the single best feature I love about Firefox is this.

Opening tabs in the sidebar.

Expecting something else? Okay, it's not the ground breaking feature that everyone might rave about, but it's a feature that I like the most and here's why.

Ever since I seen split views in Vim, iTerm 2 and Tmux, I've seen the benefits of having multiple views open at once. Being able to switch at a glance from one file to another is a major productivity win. You can work on the part of the application that matters while having other parts of the application that you need to know in other views. You can even have your command line open in one view and your code in the other.

In Firefox a similar view can be achieved using Firefox's open in sidebar property in your bookmarks. What happens is that a second browser window will open to the left of your main window.

I spend most of my day on the web. Feedbin, Trello, Todoist and GitHub are where I spend most of my time. Siwtching between these tabs can be a pain if you require two of them open at once. Using the sidebar in Firefox though means that I can have one site open in the sidebar for taking notes or collecting information as well as allowing me to still focus on the immediate task at hand in my browser.

An understated feature of Firefox, but one that makes a productive difference to my day.

The USA Freedom Act is Passed

The Intercept summarises the recent passing of the USA Freedom Act. Good to see change happening as a result of the work of Jon Snowden, Laura Poitras and Glenn Greenwald.

The USA Freedom Act passed the House in an overwhelming, bipartisan vote three weeks ago. After hardliner Republicans lost a prolonged game of legislative chicken, the Senate gave its approval Tuesday afternoon as well, by a 67 to 32 margin. The bill officially ends 14 years of unprecedented bulk collection of domestic phone records by the NSA, replacing it with a program that requires the government to make specific requests to the phone companies.

One Small Step for NSA Reform, One Giant Leap for Congress by The Intercept

The Mailbox Effect

Kurt Harden continues to deliver life changing lessons from his own experiences.

My old communications professor, Raymond Tucker, explained the Mailbox Effect one day in class: “We, on some level or another, believe that one day we will go to the mailbox, open it, and pull out a letter which reads ‘Congratulations, your problems are solved. Because you are such a deserving person and have waited so patiently, we have enclosed a check for several million dollars and solved all of your problems. You’re welcome.’“

The Mailbox Effect by Cultural Offering

My Alternatives to Google

Ever since going Google free, I've tried a number of different services to cover my needs. In this post I'll highlight seven alternatives to Google's own products.

Search Engine - DuckDuckGo

It's been two years now since I stopped using Google for searching needs and started using DuckDuckGo. Overtime I used DuckDuckGo's bang methods to redirect search queries to Google if DuckDuckGo didn't have what I was looking for, but overtime I've had to do that less and less. I'm not sure if DuckDuckGo's search results are improving or my searching needs have lessened over time. Either way, I'll be sticking with DuckDuckGo for the foreseeable future.

Email - FastMail

This is another service that I started using two years ago and I continue to use today. FastMail's email service isn't free for those with a moderate sized email archive, but paying for a service helps ensure that it stays around for a long time. Gmail is free, but with an email client that integrated a whole bunch of other Google services, it started to feel less like an email client and more like a communication centre. Gmail's spam filtering was also once the best spam filter in the field, but I'm glad to say that FastMail's own spam filtering is great and I've no complaints.

Cloud Storage - Dropbox

I never used Google's own cloud storage product, Google Drive. I've been a user of Dropbox since it first came out. What I like the most about Dropbox though isn't its pricing, or it's synchronisation across devices. I like the fact it isn't part of something bigger. I think if Google or Microsoft were to buy Dropbox then I would have to look at another cloud storage solution. I don't like the idea of having all my Internet eggs in the one company basket.

Document Management - Pages, Numbers & Keynote

Desktop apps can be just as efficient as cloud solutions like Google Docs. In fact maybe even more. I use Pages, Numbers & Keynote for all my document needs. I usually have my MacBook with me most days when I am working so using these native apps is a no brainer. If I needed remote access to my documents to edit them I would maybe consider using something else, but for my needs this is sufficient.

Analytics - Gauges

I was a long term user of Google Analytics for various websites over the years, but after a while I simply got overwhelmed by all the metrics and stats that Google provided. My needs were simple. I wanted to see how much activity my website was getting in terms of clicks and people. At the time Gaug.es was a product of GitHub, but the service has changed hands. It's still the same service that GitHub made and nothing has changed much over the time since the handover. Gauges isn't the only alternative though, there are a number of alternatives that serve different needs.

Blogging - Heroku & Jekyll

Who says you need to replace one service with another. What about combining products? My blog has been through lots of different iterations but since 2013 I've been using Octopress which is just a nice layer over Jekyll. Recently I switched to just using Jekyll. I didn't need the extra layer of functionality that Octopress provided.

With my blog catered for I needed a host as well for it. Given my website is static, I could use Amazon's S3 storage, but I wanted to be able to extend my site with Sinatra if needed. In the past I've used Linode to host my blog, but with Heroku's recent pricing change towards cheaper dynos, I'm now hosting my blog there. It also means that when I commit my changes to GitHub, my blog is automatically deployed to Heroku.

Rolling your own blog isn't difficult to do but for those that want a simpler way to publish, there's a number of good alternatives.

Calendar - iCloud & Fantastical

Lastly it's the turn of the calendar. I used Google's calendar service a lot. Probably second in line in terms of daily use to Gmail. I use Apple's Calendar app to keep my calendar synced between my laptop and my phone, but I also use Fantastical to manage my calendar on a day to day basis.

Going Googe free is a big move if you have heavily invested your time and needs in Google's own line or products and tools. I was fortunate in that I used mostly Gmail and Google Calendar and they required minimal effort to move across. Two years later, I'm still happy with my own chosen stack of apps that are outside of Google's borders.

Batteriser Extends Your Battery Life

This is the kind of technology innovation I like to see. "Killer apps" are common as muck these days. Technology like this extends the life of your gadgets (good for people in remote areas) and reduces the amount of batteries being dumped in landfill sites.

This is where Batteriser comes in. It’s essentially a voltage booster that sucks every last drop of useable energy from ostensibly spent batteries. So, instead of using just 20 percent of all the power hidden inside of your Duracells and Energizers, Batteriser makes effective use of the remaining 80 percent.

Batteriser is a $2.50 gadget that extends disposable battery life by 800 percent
by MacWorld

It’s been a long time since I’ve had the Twitter app on my iPhone. Very impressed with it so far.

First time searching for Twitter in the App Store. Gone are the multitude of good client apps and replaced by “follow boosting” apps.

Finding that a lot of the code I’m writing for DailyMuse is to support the product rather than being code for new features.

Supporting Features in DailyMuse

In the time it's taken me to get DailyMuse up and running, I've noticed that a lot of the code that I have written for this product is code that supports the product. The amount of features that I've added or expect to add is rather minimal. Yes, there's new features arriving soon for DailyMuse like scheduling snippets on particular days and tagging snippets, but in the past few weeks I've been writing code to support the product.

This idea of supporting the product with code could be thought of as a feature, but I see features as something that directly benefits the user. As an owner of the product I also need my own features. It's these supporting features that I see as being code that supports the product.

Commmunication with users of DailyMuse is important. They could be getting their daily email every day or almost every day of the week depending on their needs. Bombarding them with additional emails on top of this to notify them of features or changes in DailyMuse isn't in their best interests.

I wanted to notify users of changes to DailyMuse, so I added the ability to add one or two lines of text after their snippet that they receive on a particular day. I've used this short messaging idea only a couple of times so far, but it's value to me by being able to bring something to the users attention is without bombarding them with more emails is important.

I've got a number of other supporting features planned for DailyMuse in the future. They'll help me to administer DailyMuse, communicate with users and help maintain DailyMuse as a product and service. New features are nice, but having a stable product that improves gradually for its users is better.

Alternatives to Google

Not only can you be Google free, but the alternatives are just as good in terms of functionality.

I suspect the ease of switching away from Google depends primarily on whether you use Gmail. I never have — it solves problems I don’t have, and I greatly prefer native IMAP email apps — so Google has never had deep integration with my data or a significant presence on my iPhone.

I didn’t set out to aggressively quit Google-everything, but once I changed my browsers’ default search engine to DuckDuckGo, that has mostly happened. The most surprising part was how easy it was for Google to mostly fall out of my life, how quickly it happened, and how little I missed it.

Why not Google?
by Marco Arment

Ideas for Better Twittering

Adam Keys has some thoughts on this. I like this in particular.

Keep a private list for high signal-to-noise follows. Good friends and people whose ideas I don’t want to miss end up here.

Ideas for Twittering Better by Adam Keys

I'm still not that much into Twitter. It serves it's purpose, but I don't follow or participate that often.

Always Be Learning From Experiences

Learning tends to come from acquiring the knowledge of topics that we're not familiar with. This is why as kids we all went to school. At a young age we have limited knowledge of how to read, write and count. Through years of education and study we eventually acquire enough knowledge to allow us to learn and understand each of these topics. We can specialise in this new found knowledge by going to college or university or moving into the workplace and getting a job.

What about what we already know?

There I was this morning setting up a new database for an application I've been working on for a client when I noticed that the application's scripts to setup the database wouldn't run due to a dependency on data in the database that was always assumed to be there. Simply put, I couldn't create the database from these scripts.

So my knowledge of the application has changed and I have learned something new. What I have learned isn't a new topic, just a tiny part of a topic I already know. My experience with the database scripts has taught me that basing the build process of the database on data that is already assumed to be there is wrong.

While we tend to seek out to learn from new topics, we forget that we can also learn from experiences. At time we might think that the knowledge we have is correct, but it's only through experiences that we find out whether it is correct or not. In this case I have raised my concerns with the client about the build scripts for the database and proposed a solution to correct it in the future.

Always be learning. Whether it's from new topics we know nothing of or by fine tuning the knowledge we have through experiences.

The Open-office Model is Killing the Workplace

I've worked in a couple of open-office layouts but nothing near having to share the same table with other colleagues.

Our new, modern Tribeca office was beautifully airy, and yet remarkably oppressive. Nothing was private. On the first day, I took my seat at the table assigned to our creative department, next to a nice woman who I suspect was an air horn in a former life. All day, there was constant shuffling, yelling, and laughing, along with loud music piped through a PA system. As an excessive water drinker, I feared my co-workers were tallying my frequent bathroom trips. At day’s end, I bid adieu to the 12 pairs of eyes I felt judging my 5:04 p.m. departure time. I beelined to the Beats store to purchase their best noise-cancelling headphones in an unmistakably visible neon blue.

Workers need privacy just as much as they need to open spaces.

The Learning Benefit of a Side Project

As I move towards building up my GitHub profile with examples of work, I realised something about my side projects. They provided the perfect place to try new things and familiarise myself with new programming languages and frameworks.

Most web developers have probably at one time or another had a side project running alongside their day job. It could be an open source web application, a framework, a library or even a product or service that provides an extra bit of income. Regardless of what it is, having a side project is one of those things that web developers usually end up doing. It's almost like a rite of passage.

Most developers are working on large applications in their day jobs. Some are more fortunate than others on the choice of technology they're working with, but there will always be developers that are not using emerging technologies or languages at their day job. It just isn't always feasible to do.

So what's a developer to do?

Well, like most developers I usually turn to a book to pick up something new. I might read five or six development books in a year. Most of the time I won't go beyond reading the book to exercise the knowledge that I've picked up. When I do though, I usually put together little scripts or programs to get familiar with the language that I've just read about. Beyond that I rarely do anything else.

The best place to exercise your new found knowledge thought is on a side project. When I hit on an idea for a side project, I'll write a little spike for idea in Sinatra or Rails and see if it's worth having around. If it is, I'll keep it and use it for my own purposes. Rarely has anything made it past this point though.

With what I have been using on a daily basis though, I'm starting to tidy these bits of code up and put them on GitHub profile. I have one little side project called ClipPress that I run on a free Heroku instance. It's just a single form that I can fill in a few details and it will create a post in my Jekyll blog on Dropbox. It then syncs back down to my MacBook where I can fix up the post and publish it.

A number of Javascript libraries like Ember, React and Backbone have recently caught my eye. In the past I haven't gone beyond the basic demos with these, but having a side project like ClipPress means that I have a working environment to try out new things. I can plug in different JavaScript frameworks to see how they work. I can write the ClipPress application in a different language or framework just to see how they compare.

The benefit of a side project is that you have a working base to build upon. Building applications from scratch can be tedious work, and making something new for the sake of learning something else means that we might not see the end result in action. With a side project though you can build on the code base you have to see the results in a working environment.

Side projects are often cited as a way of generating extra revenue and they can be that if someone is willing to pay for it, but for most of us we just want to hack something together that removes a manual step we've had to do in the past. These side projects are a great place to try something new and learn from it.

FIFA Officials Face Corruption Charges

FIFA officials are now facing corruption charges for bribery that occurred in the US and was paid through US bank accounts.

As leaders of FIFA, soccer’s global governing body, gathered for their annual meeting, more than a dozen plain-clothed Swiss law enforcement officials arrived unannounced at the Baur au Lac hotel, an elegant five-star property with views of the Alps and Lake Zurich. They went to the front desk to get keys and proceeded upstairs to the rooms.

FIFA Officials Arrested on Corruption Charges; Blatter Isn’t Among Them by The New York Times

I'm not a big football fan, but it's not good to see one of the worlds biggest sports tainted in the last few years by allegations of corruption.

I wonder if Sepp will get through this scandal unscathed?

Is the Web Defeated?

I hope not.

Technically, it’s simple. The web cannot emulate native perfectly, and it never will. Native apps talk directly to the operating system, while web apps talk to the browser, which talks to the OS. Thus there’s an extra layer web apps have to pass, and that makes them slightly slower and coarser than native apps. This problem is unsolvable.

Web vs Native: Let's Concede Defeat by Peter-Paul Koch

It's not all bad though. Peter-Paul does go on to say how web apps can still compete against native apps.

Building a Universe

No Man's Sky has high expectations. With a game universe composing of billions of planets, it is set to change the world of gaming. I for one can't wait for its release.

The universe is being built in an old two-story building, in the town of Guildford, half an hour by train from London. About a dozen people are working on it. They sit at computer terminals in three rows on the building’s first floor and, primarily by manipulating lines of code, they make mathematical rules that will determine the age and arrangement of virtual stars, the clustering of asteroid belts and moons and planets, the physics of gravity, the arc of orbits, the density and composition of atmospheres—rain, clear skies, overcast. Planets in the universe will be the size of real planets, and they will be separated from one another by light-years of digital space. A small fraction of them will support complex life.

World Without End
by The New Yorker

Black Holes & Clones

The BBC earth mini-site aims to explain what happens when you fall into a black hole.

After all, the event horizon is not like a brick wall floating in space. It's an artefact of perspective. An observer who remains outside the black hole can't see through it, but that's not your problem. As far as you're concerned there is no horizon.

Sure, if the black hole were smaller you'd have a problem. The force of gravity would be much stronger at your feet than at your head, stretching you out like a piece of spaghetti. But lucky for you this is a big one, millions of times more massive than our Sun, so the forces that might spaghettify you are feeble enough to be ignored.

The Strange Fate of a Person Falling Into a Black Hole by BBC Earth

I had to read this a couple of times to get it. Well worth the time to read though!

Switching Off CCTV

I'm on the fence about whether switching off CCTV cameras to save money is a good or a bad thing for the public. What sent alarm bells off for me though is the mention of CCTV camera being classed a counter-terrorism tool.

Last night the Police Federation said the deactivation of CCTV cameras would introduce “vulnerabilities” to counter-terrorism operations and “deny justice” to the victims of sexual offences and street violence. But civil liberties groups said there was little evidence of the cameras’ effectiveness and that councils were right to keep them under constant review.

CCTV cameras secretly being switched off by cash-strapped councils by The Independent

The use of 'terrorism' as a reason for keeping CCTV cameras switched on was a step too far though.

GitHub is not My Resume

I've been searching through various contract opportunities over the last few weeks. Client work is slowing down and I have some availability over the next few months. Might be a good idea to look around then! One common feature of each ad is that most of them have included is this:

Include a link to your GitHub profile.

For the non-developers amongst you, GitHub is a web based source code repository service where developers and organisations can keep copies of the code they are working on and have worked on. To this end, it's often referred to as a resume for developers. Not every developer has a GitHub account though (there are alternatives like BitBucket) and certainly not every developer has an active GitHub account.

Are recruiters (both agencies and companies) basing their candidate search on developers who have active GitHub accounts?

Does my GitHub account reflect the capabilities of myself as a developer?

I certainly hope not.

In the past I moved my repositories over to BitBucket to give it a try. I left my GitHub account open but there was little on it. Now, I'm back to using GitHub and I make use of it by keeping some projects I'm working on there. Most of them are private. They're ideas that I would rather keep to myself. For little projects and other stuff, I throw them up on my GitHub account as public. Not as bragging rights to my capabilities as a developer but to share my code with other developers.

If most agencies were to look at my GitHub profile at the moment and make a decision based on that alone, they would skip right over my application. The problem is though that my GitHub profile is one facet of my career as a developer. I have a good history as a developer and a variety of experience. I have a couple of recommendations on LinkedIn and an up to date CV there. I'm running my second attempt at a product with DailyMuse after I killed the failed Journalong product.

I'm certainly not a developer that lives and breathes code. Once the work day is over, I might hit the trails on the mountain bike, take my son to the golf so he can practice, or just go for a walk with the family. And that's just the tip of the iceberg. There's so many other things I do outside of work that doesn't involve writing code. Yes, I have a number of little side projects on the go. Most developers do, but they're low on my priority list.

While my career is important, it's also important to get the balance right between what you do for your career and what you do elsewhere. I do write code outside of work, but most of the time I'm doing other things like spending time with my family, riding one of my bikes or something else that isn't writing code.

GitHub isn't my resume though. It's one aspect of my resume. It's something to consider yes, but the real value in a software developer isn't the amount of code they write. It's in the way they approach problems, present solutions and communicate with others. And I think I do that rather well.