Dd5ae1bc5f22e91a5ba2afade4d6eaa3?s=70x70

offfcincy

For the third year in a row, Cincinnati was proud host to OFFF. OFFF Cincinnati “ …features some of the world’s biggest names and brightest minds exploring design and technology at this moment - including coders, illustrators and motion graphic designers.”

OFFF delivered on that promise and more. Each person had worked intimately with technology, but had also put their own spin on it. The presentations ranged from cerebral art talks to informational ones, inspiring me to do more in different ways, like Brooklyn Beta. A few stuck out to me in particular.

1. Know 90%, Learn 10%

Yuko Shimizu was a wonderful way to kick off the day. Bubbly and full of vigor, you could tell Yuko was just happy to be doing what she loved: illustrating. She worked in the corporate world for 11 years before going back to school to learn to be an illustrator. She took a risk to do what she loves, the way she knows how to, and it’s paying off for her. Her tips and tricks on illustration can be applied to software design very easily. The thing that stuck with me is to start a task knowing how you will complete 90% of it, but leave 10% up to something new to learn. I often feel this way with my designs, knowing how I can implement most things, but leaving a small area up to me to figure out.

2. Go the Extra Mile, It Pays Off

This was a pretty damn technical talk. Luckily it was on something I do everyday: the process of web design. Anton Repponen, a visual designer, and Irene Pereyra, a user experience designer, had a ton of inspiring things to say. I scribbled out 2 pages of notes just soaking in how they work. Although I thoroughly enjoyed the whole presentation, the thing that stuck with me is their enthusiasm towards their clients, and being excited enough to go the extra mile. For their work on Wacom, the two were so inspired by the stories people create with their products, they filmed a short piece with a friend. Top executives loved it so much, they were sent to Japan to do a segment with the CEO. They went the extra mile because they were inspired by a business, and that inspiration led to the creation of one awesome site.

3. A Curious Culture Leads to New Business

David Mikula is now an art director, but his path there was nothing normal. Starting as a hacker in his teens, he redirected his energy towards some seriously inventive projects that used technology to create human interactions. One of the coolest things from him was Stanley the Piano. Digital Kitchen, his former employer, was given some space at a Seattle street fair. They came up with the concept of a player piano that takes requests via Twitter. It didn’t stop there. Stanley had a personality, and spoke with people through a TV. It got a ton of press, for a relatively small investment money wise, and lead to a huge uptick in work for Digital Kitchen. I love how thinking out of the box and creating something silly really paid off.

Conclusion

My favorite part of OFFF was that we got to bring these awesome people to Cincinnati. They got to share their knowledge with us, see our city, and all I had to pay for a ticket and a bus ride downtown. Each speaker was inspiring in their own way. Their interaction with technology in different ways inspires me to approach my computer with a different mindset.

Have you attended an OFFF event? Did you have an awesome experience like I did?

Dc3b90db3b0e67a6986fe3fd1c9ef1c8?s=70x70

tmux is a terminal multiplexer: it enables a number of terminals to be created, accessed, and controlled from a single screen. tmux may be detached from a screen and continue running in the background, then later reattached.

tmux manpage

When I first heard of tmux I just assumed it was a beefed up version of screen. I had used screen many years ago in order to keep an IRC client logged in even if I was not connected to my shell. At the time I didn’t see much benefit in adding a tool like this to my development environment.

For a long time I heard developers singing the praise of vim and tmux. Hearing about the release of iTerm2 2.0 and it’s integration with tmux sparked my interest in tmux and vim once again. I still don’t know exactly how iTerm2 and tmux integrate, but I’m really happy with my workflow with vim and tmux.

I have been using vim+tmux together for a couple of weeks now and there’s no looking back. If you’re willing to invest a little bit of time to set things up, you’ll quickly make up the time with your streamlined workflow.

Prerequisites

brew install tmux
brew install macvim --override-system-vim

Download and install iTerm2 (optional)

Out of the Box

Below are some of the most basic commands for interacting with tmux.

Create a session

The first thing you’ll want to do after installing tmux is create a session.

$ tmux new -s gaslight-blog

Detach session

You can detach from the session at any point by pressing:

Ctrl-b d

Attach session

You can attach to the session from the command line with:

$ tmux attach -t gaslight-blog

Split horizontally

You no longer have to be dependent on your terminal application to create split panes.

Ctrl-b %

Split vertically

Ctrl-b "

Pane Navigation

Keybinding Action
Ctrl-b ↑Up
Ctrl-b ↓Down
Ctrl-b ←Left
Ctrl-b →Right

tmux.conf

I ran into numerous issues when starting out with vim, tmux, iterm2, and mac os. My tmux.conf is pretty slim and well documented at the moment and I recommend you check it out.

vim workflow

The main reason that I continue to use tmux is the great integration that can be achieved with vim+tmux. Prior to using tmux I used MacVim, but if you’re going to use vim and tmux together you’ll need to use terminal vim.

vim-tmux-navigator

Perhaps my favorite feature about using vim and tmux together is vim-tmux-navigator. This plugin allows you to treat vim and tmux as one a unified session, with the ability to seamlessly navigate between vim splits and tmux panes.

Keybinding Action
Ctrl-lright
Ctrl-kup
Ctrl-jdown
Ctrl-hleft

This assumes you’re already navigating your vim splits like a sane person using these bindings by adding this setting to your .vimrc:

nnoremap <c-j> <c-w>j
nnoremap <c-k> <c-w>k
nnoremap <c-h> <c-w>h
nnoremap <c-l> <c-w>l

rspec.vim + tslime.vim

One thing that I missed when I was transitioning from emacs to vim was rspec-mode. I quickly discovered rspec.vim which allows you to run specs from within your editor.

I didn’t spend too much time working with rspec.vim before I was frustrated by the default behavior which blocks the entire vim process. This is no fault of rspec.vim, rather it is more of an issue with vim. Thankfully rspec.vim has a lot of flexibility for generating custom commands and you can easily integrate with Dispatch or tslime.vim. I am currently using tslime.vim using the instructions here and it seems to be working well.

vim-like copy and paste

I am still learning the ins and outs of copy and paste while using vim and tmux together. If you’re willing to give up using the mouse for selection this article provides instructions on getting copy and paste setup very similar to vim.

colors

When I first started vim inside of tmux the colors were not correct. After searching I found that I needed to add this to my tmux.conf:

set -g default-terminal "screen-256color"

I also had to make sure that iTerm2 was reporting the terminal type as xterm-256color.

References

This article was made possible with the help of many other articles:

http://blog.sanctum.geek.nz/reloading-tmux-config/
https://wiki.archlinux.org/index.php/tmux
http://robots.thoughtbot.com/a-tmux-crash-course
https://coderwall.com/p/j9wnfw
http://robots.thoughtbot.com/tmux-copy-paste-on-os-x-a-better-future
http://www.dayid.org/os/notes/tm.html
https://github.com/altercation/solarized/issues/159#issuecomment-5566892
http://stackoverflow.com/questions/10158508/lose-vim-colorscheme-in-tmux-mode

718dad0c347f01108bfd008bc0a5b4f5?s=70x70

This week I began a six week stint as a teacher at DevBootCamp Chicago. I’ve long been interested in the topic of how we can make it possible for more people to enter the field of software development. I got a chance to meet a DBC graduate, Tyler Shipe, when he came to Gaslight Coffee a few months back. I was very impressed by Tyler and what he had to say about the DBC program. I already knew Dave Hoover and a good number of teachers, so the next time I was in Chicago I arranged to visit. This got me even more intrigued, and after talking with my family and business partners I asked Dave if he would be interested in having me come teach for a few weeks over the summer. And here I am.

My first week has interesting, fun, overwhelming, and exciting. The DBC program is split into 3-week chunks called Phases, and I’m teaching Phase 2. At Phase 2, the students have had 3 weeks of command line ruby programming experience and we throw them into the deep end of web development using. They’re learning sinatra, HTTP, and how the web works all at once. It’s a crazy amount to throw at students all at once and the students are understandably a bit overwhelmed. But I’ve been very impressed with how well they are keeping up and getting the challenge assignments done each day.

A typical DBC day consists of an hour-long lecture each morning and most of the rest of the day is spent working on “challenges”, or little programming assignments. The pace is really intense. I often find myself wondering if I would be able to make through the program as a student. The challenges are almost always done in pairs, and the Friday challenges are larger assignments done in teams of 4. This gives DBC a vibe that’s much more like a real development team than a classroom setting. There’s a constant buzz of activity as students work with and teach one another. This is further enhanced by having multiple “cohorts” of students in different Phases at the same time. This means that Phase 3 students are helping Phase 2 students. There’s also any number of recent graduates that are coming and spending time as TAs while they commence their job search. Seeing the students work together is definitely the highlight of my time here so far.

I’m about to get in my car and make the trek back to Cincinnati for the weekend. Next week I’ll talk more about some of the unique practices of DBC that focus on software developers as people. That aspect of the program might be what I’m most excited about.