Koding

I’ve been messing around a bit with Koding. Koding combines a real time message board, a linux vm (I think it’s an lxc container or something very similar), a surprisingly good terminal emulator (no 256-color though), and a equally surprisingly passable text editor (ACE). None of what Koding provides I would consider best in breed, but the combination has some potential. Also, all of my complaints with the applications provided are fixable. If you don’t like their tools you can always ssh into your vm (read the faq on this, it’s non obvious)

I’ve also started a Koding section to house tutorials/other random musings.

The Good

The community has a ton of potential. There are a few regulars and everything is fairly cordial. I’ve been in and caused some interesting conversations. The hybrid between a message board and IRC is interesting.

Setup was stupid easy. Create your account, click develop, click the tiny terminal icon on your vm and you have a command line. Full root access to an ubuntu container.

Shockingly good text editor. I could do work in it if I needed to. It would drive me a bit bonkers, but I could get it done. Which is saying a ton.

SSH access. This solves the editor problem. I can edit locally and use something like the truly excellent Sublime SFTP package to keep everything synchronized (or unison/rsync).

They don’t try to be a webhost. Your VM turns itself off after you’ve been idle for ~20 minutes or so. They’re not going to get killed hosting content. They’re focused on the dev environment.

The not as Good

The activity stream that drives the community side of things. I think the midpoint between a message board and IRC has some serious potential. It has some usability issues.

  1. Refresh isn’t reliable. Sometimes have to reload to update the stream. The notifications widget is almost totally broken as far as I can tell. It works sometimes, but doesn’t seem to consistently let me know when someone has replied or commented in a thread I’m active on.
  2. No Search. Cool conversation from a few days ago? Want to reference it? Scroll!
  3. Awkward group/channel interface, it works, but not super well. Switching between groups is two clicks and a scroll. (should be a primary action imo) No way to see a feed of multiple groups that I can find (i.e. only show me posts in my groups).

The signal to noise ratio. It’s starting to get a bit better, which is awesome, but there’s still TONS of duplicate content. Same few questions about ssh and FTP. Tons and tons of firstposts (which are all pretty much identical due to the way the tutorial is structured). Lots of “How do I learn X?”. None of this is bad per-se. People are curious, they want to learn new things, which is fantastic. However, if I have a few minutes a day to stop in, answer a question, and move on, I’m less likely to keep coming back unless there is something I want to answer. I’ll post links to the SSH faq, links to good google searches on a given topic etc. But that’s only going to last for so long.

The terminal doesn’t have a workable 256-color mode. I know it’s petty, but I like my colors! Colors work!

The networking is odd. Everything seems to run through a proxy so you have to play some games with encrypted traffic. I’m not sure SSL will work at all from your vm.

Note: https works for you vm, I am mainly referring to setting up your own services that use SSL.

Anyway, Koding is pretty cool. I haven’t regretted the time I’ve spent writing about it or messing around with it. I’m curious to see where they are a year from now.

launchers everywhere

I’m a huge fan of launchers like quicksilver, alfred, spotlight, launchbar, etc. I’ve been using one since I got my first mac. I’m currently using launchbar (which will likely end up being another post). If you’ve ever used one, you know how nice it is to avoid using the mouse occasionally.

While I used various launchers constantly, I had never run into one baked into an application. Enter SublimeText. Wow. The command palette is awesome. No more hunting through menus or trying to remember a few dozen keyboard shortcuts. ⌘-shift-p brings up the command palette. Start typing what you want to do and hit enter.

Rather than hunting through menus or trying to map shortcuts, I just type what I want to do, and most of the time it works. What would be extra neat, is if applications could publish their keywords to a system wide launcher. The system wide launcher would be aware of what has focus and provide access to those keywords.

slate

I don’t know that it always makes me more efficient, but I do like to see how much of my day to day computer usage can be done completely with the keyboard. One thing that has always vexed me a bit is managing window layouts.

I played with moom for a while, and really liked it in general, but I wanted something with a little more oomph. I ran into Slate and started playing around with it. The barrier to entry is fairly high (config is purely a text file) but it’s not terrible if you’re used to config files.

I’ve got a particular window layout I like to use when I’m writing code. I’m also not particularly careful about maintaining the window position (I move things around as my focus shifts). What I wanted was some way to easily reset back to my preferred window layout. So, I used slate to map cmd-ctrl-a to:

  • launch Sublimetext
  • launch iTerm
  • launch SourceTree,
  • Move iTerm to the left, full height
  • Move Sublimetext to the right, full height
  • Move SourceTree to the left most area on my 2nd monitor.

You can see a video of slate in action below.

So, no matter how much I move stuff around, cmd-ctrl-a will snap everything back (launching it as needed) to where I want it.

Here is a link to my slate.conf. Enjoy.

fonts

Occasionally I like to try new fonts.

I ran into a neat comparison at slant.co of various mono-spaced fonts for programming. Since I like to try new things I figured I’d give “Source Code Pro” a shot. I ended up downloading the OTF files from here which made the install a bit easier. To install:

  1. Download the OTF files
  2. Unzip the fonts
  3. Launch the Font Book application
  4. Drag the otf files into font book

Now you should be able to use the font. It works well as a terminal font, but I prefer it for editing.

Configuring Sublimetext2

In order to activate your new font in SublimeText2 add the following to your user config (adjust font_size to your liking)

"font_face": "Source Code Pro",
"font_size": 14

prezto

I like to tinker with my working environment. I like to check out alternate window managers, new shells, launchers, editors, etc. Most of the time it’s something to do that requires a little bit of brainpower, but is mostly mindless. It’s kinda nice to screw around with stuff without any real goal other than learning something new.

I had been using Robby Russel’s excellent zsh environment Oh my zsh for about a year. After running into the myriad of dotfiles projects on gitHub I decided to give it a shot and roll my own. So I poked around to see if there were alternatives to OMZ, not because there was anything wrong with it, but because I like to tinker. I ran into prezto and really liked it. Prezto appears to have started as a reaction to OMZ’s kitchen sink approach. It’s very well organized, fairly few modules, and only an handful of themes. It has excellent out of the box autocomplete (hosts out of known-hosts for ssh, the autocomplete is nicely categorized, etc). Solid OSX support (the macports module and gnu modules work very well together), and is pretty quick overall.

I ported and extended a theme I wrote for OMZ to prezto. You can grab it from here, and I issued a pull request to the main repoitory. The prompt should show everything you’d need to know about what’s going on with your git repository.