Sublime Text Plugins

I use several plugins every day in Sublime Text 3 that I’ve grown very used to having, and now find I couldn’t work without them. I last updated this post on April 21, 2016.

Code formatting is also nice sometimes, these are great for that:

And if you’re using languages not natively supported by Sublime, here are some great packages:

I use the Soda Dark theme, installable via Package Control, with a modified Monokai color scheme that increases the contrast.

Here’s my User Preferences file, with the parts requiring custom packages removed:

    "auto_complete_commit_on_tab": true,
    "auto_find_in_selection": true,
    "auto_match_enabled": true,
    "copy_with_empty_selection": true,
    "default_line_ending": "unix",
    "ensure_newline_at_eof_on_save": true,
    "font_face": "Menlo",
    "font_options": [
    "font_size": 9,
    "highlight_line": true,
    "highlight_modified_tabs": true,
    "ignored_packages": [
    "save_on_focus_lost": true,
    "shift_tab_unindent": true,
    "show_encoding": true,
    "show_full_path": true,
    "trim_trailing_white_space_on_save": true,
    "word_wrap": true

This used to, but no longer includes my absolute favorite code font, ProFont, designed to be incredibly readable at small sizes. Use ProFontIIx if you’re on Mac, it’s beautiful. I’ve since switched to Menlo, because I’m working longer days and can’t focus on tiny text that long anymore :(

Also note the save_on_focus_lost option, which does exactly what it says it will.

I also have custom hotkeys for SublimeGit commands, which I have bound to G-keys on my Logitech keyboards, as well as re-bindings of Ctrl+Tab and Ctrl+Shift+Tab that make more sense to me.

Windows keymap:

    { "keys": ["ctrl+,"], "command": "open_file", "args": {"file": "$packages/User/Preferences.sublime-settings"} },
    { "keys": ["ctrl+alt+p"], "command": "prompt_select_workspace" },
    { "keys": ["ctrl+k", "ctrl+m"], "command": "toggle_minimap" },
    { "keys": ["ctrl+tab"], "command": "next_view" },
    { "keys": ["ctrl+shift+tab"], "command": "prev_view" },

    { "keys": ["ctrl+shift+g", "l"], "command": "git_pull" },
    { "keys": ["ctrl+shift+g", "p"], "command": "git_push" },
    { "keys": ["ctrl+shift+g", "a"], "command": "git_add_current_file" },
    { "keys": ["ctrl+shift+g", "s"], "command": "git_status" }

OS X keymap, including adjustments to Home and End keys:

    { "keys": ["super+k", "super+m"], "command": "toggle_minimap" },
    { "keys": ["super+tab"], "command": "next_view" },
    { "keys": ["super+shift+tab"], "command": "prev_view" },

    { "keys": ["super+shift+g", "l"], "command": "git_pull" },
    { "keys": ["super+shift+g", "p"], "command": "git_push" },
    { "keys": ["super+shift+g", "a"], "command": "git_add_current_file" },
    { "keys": ["super+shift+g", "s"], "command": "git_status" },

    { "keys": ["home"], "command": "move_to", "args": {"to": "bol"} },
    { "keys": ["end"], "command": "move_to", "args": {"to": "eol"} },
    { "keys": ["shift+end"], "command": "move_to", "args": {"to": "eol", "extend": true} },
    { "keys": ["shift+home"], "command": "move_to", "args": {"to": "bol", "extend": true } },
    { "keys": ["super+home"], "command": "move_to", "args": {"to": "bof"} },
    { "keys": ["super+end"], "command": "move_to", "args": {"to": "eof"} },
    { "keys": ["super+shift+home"], "command": "move_to", "args": {"to": "bof", "extend": true} },
    { "keys": ["super+shift+end"], "command": "move_to", "args": {"to": "eof", "extend": true} }

Programming described accurately

The human brain isn’t particularly good at basic logic and now there’s a whole career in doing nothing but really, really complex logic

You immerse yourself in a world of total meaninglessness where all that matters is a little series of numbers bent into a giant labyrinth of symbols and a different series of numbers or a picture of a kitten came out the other end.

Source: Programming Sucks, an essay on the amazing Still Drinking website by Peter Welch.

Fire TV Fun

The Amazon Fire TV is an amazing device. The current app selection might be disappointing, but with a little effort you can get just about any Android app working beautifully on a Fire TV, and some apps designed for tablets feel like they were truly made to be on a TV.

This is basically my guide to everything Fire TV.

The first thing to note is that the Fire TV is compatible with most USB keyboard and mice, but only has a single USB port, so it’s best to have a keyboard and mouse that use a single wireless dongle. The Logitech unifying ones work great for me.

Keyboard/Mouse Usage

The mouse has a pretty simple function, acting as a pointer to use apps as if you had a touch screen, with the primary mouse button acting as a tap/drag. The scroll wheel also works well in most applications, and is particularly nice in web browsers.

The keyboard works pretty much as you’d expect, with a few important things to note:

Don’t touch the volume keys. If you do, you might need to install a volume control app with ADB to get your sound back.

Installing Apps

Unlike a Chromecast, Apple TV, or Roku, the Fire TV is left very open, with ADB over the local network easily enabled from Settings. ADB allows you to access the filesystem and install applications from APK packages, which can be extracted from other Android devices or found the app developer’s website.

Install ADB and add it to your path, there are tons of guides for this, so I won’t detail it here. Next, find your Fire TV’s IP address in Settings > System > About > Network. You can then connect to your Fire TV by running the following commands:

Applications installed through ADB won’t be shown on the launcher, but are accessible through Settings > Applications.

These are the apps I’ve tried that work well:

Awesome apps that work all right, but have some broken features:

I also tried installing the stock Play Store app, but it has a lot of other requirements that I wasn’t willing to take the time to find. When launching the app without those requirements, it crashes, then causes the Fire TV to do a hard reboot. Not exactly usable. :P


A photo of my Fire TV running CPU-Z, showing some system specs: CPU-Z Photo

My personal favorite App on my Fire TV so far, Microsoft Remote Desktop: Microsoft Remote Desktop Amazingly, the keyboard works almost seamlessly on Remote Desktop, and as long as your LAN is fast enough, it works great for streaming media that isn’t supported another way.

Once the Fire TV is a bit easier to root, I’ll probably write a thorough guide on that, and the things you can do after rooting, because seriously these things are just awesome.

If I’m missing something or something is incorrect, please let me know, I’m @alanaktion on Twitter.

IT Bread - Day 2

Our bread yesterday was good, but we’d messed up a bit on the recipe. Today’s was amazing.

IT Bread

We made bread! THRIVE Country White Dough Mix and a bread maker resulted in happiness.

PHP Insanity

It was a cold day, Gustav arrived for his first day at work clutching his laptop and some books on the Zend framework. His past nights had been disturbed by the ‘Tetris effect’, lines of pure code produced by his unconscious mind in his sleep, dropping down, one atop the other, leaving him in somewhat of a half awake, half asleep state throughout the nights. His world view was formed through code, indeed giving him great insight, yet leaving him somewhat distant from those around him.

He was starting to question his sanity. A formidable PHP Zend coder, instead of taking rest in its conventional sense, his mind would be occupied with thoughts on RESTful services, instead of using soap in the bath, he would be comparing SOAP with RESTful services. He took a single bite on a pear, the only food he had eaten in two weeks, and instantly started thinkng of PEAR and PECL extensions. Instead of eating, he would usually be coding, his natural hunger instinct shut off from the deep levels of focus that he sustained during coding sessions. Am I human? he asked himself one day, clearly feeling that his very existence had merged with the technology with which he was engaged on a day to day basis.

His family life remained intact, a bright wife who understood his predicament serving as a buffer between his internal world and the world around him. Even when talking with her, his mind would drift onto coding, sometimes so much so, that he lost awareness of her very presence.

As he calmly, as if programmed, walked through the porte-cochère leading to the entrance of the office, he felt totally in control, as if on a mission to take charge of his young colleagues and guide them in the right direction on the greenfield LAMP platform-build that he was to be in charge of. He knew that this would be no easy feat, but felt reassured that he would be able to get on with producing a large amount of the purest code himself, whilst overseeing the 4 strong team of fastidious developers that already worked at the company, rather than being a mere hands off development manager.

As he arrived at his desk, he was astounded by the office environment, a wondrous place, void of unnecessary ornementation, fine desks sculpted from burr walnut. A minimalistic, clutter free environment seemed exactly what young Gustav needed to allow his coding to flourish. The air was as clean, a distant memory pervaded his mind, reminding him of the clean childhod air of the Matterhorn foothills in which he was raised. He mused on the brilliance of the architecture holding him, a hybrid blend of Le Corbusier and Ahrends Burton Koralek he decided….. indeed he had many other interests in addition to his coding…….


Web Performance Tricks

This CSS one-liner will speed up any website instantly!

img {display: none !important;}

For an even bigger speed boost, add this!

* {background-image: none !important;}

Apparently this is Ghost

I’m trying out a Ghost blog again, despite being opposed to using Node.js for a static web site solution… at least nginx is proxying it for me :P

Cubik Network App Update

I’ve released a new version of the Cubik Network Android application, with several minor fixes and a couple new features.

Check it out at

T-Mobile Adventures

Several months ago, I purchased a like-new Galaxy S4 on, a well-known, reasonably safe used mobile device site. The phone works perfectly, and I continued to use it on T-Mobile without any trouble for around 5 months. Then, seemingly for no reason, my connection to T-Mobile disappeared. I tried everything to get it back, from toggling Airplane mode, running a factory reset, and even installing alternate operating systems, but nothing worked. So I went to T-Mobile. I was informed that my phone had been purchased on a contract, and that it had been permanently blacklisted on their network. It had worked perfectly for several months, and I had no way of contacting the original owner, who used fake info when selling it to the person I bought it from, but they said they couldn’t remove it from the blacklist. This would be just fine if they had blacklisted it right when the first or second payment on the contract was missed, but T-Mobile waited until over 6 months after the missed payments began before taking any action, by which time the phone had already been passed on to a new owner, twice. This left me with a perfectly functioning, yet useless, high-end phone. I was able to get the phone unlocked and working on AT&T, but with it never able to work on T-Mobile’s network again, the value had been greatly reduced. I’ve since purchased a new phone, and will never deal with a phone contract or used device again, because it’s just not worth it.

TL;DR: T-Mobile is crap, used phones are too.