Resources: What I Know and Use.
We all have the tools and resources that we like to use. Usually these are preferences we develop over the years through trial and error. One thing that I’ve found quite handy is looking at what other people use and trying those tools. Certain tools are much more popular than others and there’s usually a reason for this. With so many options it can be quite overwhelming to someone just starting out. Recently my GF began her coding journey and was asking me about various tools. With this in mind I thought it would be good to make a page on my blog where I can list the tools and resources that I like, and then readers can contribute via the comments any ideas or suggestions they might have. My plan is to keep this list updated to reflect changes in what I’m using, and to add things as I discover them. For example, I spent many hours setting up my command line by using Google and winging it. Had I known about the Command Line Power User video series I could have saved myself a lot of time. So peruse my list, see if anything jumps out at you, and please contribute to this list via the comments. I’m always looking for new resources to improve my life as a code monkey.
OS X: (Tweaks, plugins, apps)
Bartender: Organize your menu bar apps. I don’t like a cluttered menubar and this app lets me organize it just how I want. Some apps are hidden, available through the Bartender icon, and other apps are just arranged in the order I prefer. Sounds so simple but once I tried it via a free trial, I was hooked and had to buy it.
Battery Time Remaining: It does exactly what you would expect. Rather than just showing the battery percentage it gives you an estimate of how much time you have left. Is it accurate? I dunno. It depends on what you are doing currently. If you’re using a lot of CPU the time will drop faster than you would expect. But in general it gives you a rough idea and I find that to be very useful. It’s also only $1.99 and worth every penny IMO.
gfxCardStatus: gfxCardStatus is an unobtrusive menu bar app for OS X that allows MacBook Pro users to see which apps are affecting their battery life by using the more power-hungry graphics. I use this simply to lock my laptop to the internal graphics card unless I have need for the beefier card. If you have a MacBook Pro with two graphics cards, install this app. It’s free, it works really well, and it gives you greater control over your graphics. For example, Chrome is known for switching to the power hungry graphics card when it doesn’t need to. This allows you to prevent that, conserving precious battery life. And did I mention it’s free?
TotalSpaces: My brief summary can’t do this app justice. Basically it gives you multiple spaces to work with. Apps can be assigned to particular spaces. Mine is setup so a three finger swipe switches me between spaces and I have my IDE in one, my browser in another, Messages and Spotify sharing one, and iTerm2 and anything else opened in a fourth space. But it does so much more than just that.
TotalFinder: I use this primarily to run split screen in Finder. It does a lot more than that, but that’s the main feature I use. Oh, it also can make sure folders are displayed first. For some reason mine weren’t showing first and when I installed TotalFinder that issue was solved.
BetterTouchTool: If you have a magic mouse or trackpad you need this! BetterTouchTool is a great, feature packed FREE app that allows you to configure many gestures for your Magic Mouse, Macbook Trackpad and Magic Trackpad. It also allows you to configure actions for keyboard shortcuts, normal mice and the Apple Remote. It also adds window snapping which is something I use often. Drag a window to the right or left edge of the screen and the app goes to 50% on that side. Drag it to the top most edge and it goes full-screen. Not OS X full-screen mind you, but the normal standard 100% of the screen type of full-screen.
GIT: (Distributed Version Control - USE THIS!!!)
Git Immersion: GIT Immersion is a guided tour that walks through the fundamentals of GIT, inspired by the premise that to know a thing is to do it.
hub: hub is a command-line wrapper for git that makes you better at GitHub.
Command Line: (Fear not, the command line is your friend.)
iTerm2: iTerm2 is a terminal emulator for OS X that does amazing things. iTerm2 brings the terminal into the modern age with features you never knew you always wanted.
OhMyZSH: You’re terminal never felt this good before. Oh-My-Zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout… “Oh My ZSH!”
OhMyZSH Plugins: These are the plugins I currently use.
- bundler: Enables aliases to Bundler.
- git: Adds a lot of git aliases ( gx e.g. gd - git diff) and functions for pulling and for dealing with the current branch.
- git-extras: Support for git-extras completion. Pressing tab after the various commands should autofill authors, branches and tags depending on context.
- per-directory-history: tracks previous command history both per current directory and globally, with the ability to switch between them on the fly, bound to ctrl-g.
- rails3: aliases for common Rails commands. Works fine with Rails 4.
- wd (warp directory): lets you jump to custom directories in zsh, without using cd. Why? Because cd seems inefficient when the folder is frequently visited or has a long path.
- z: Tracks your most used directories, based on ‘frecency’. After a short learning phase, z will take you to the most ‘frecent’ directory that matches ALL of the regexes given on the command line.
Command Line Power User: A video series for web developers on learning a modern command line workflow with ZSH, Z and related tools.
Command Line Crash Course: This is a mini-book that teaches you Unix or Windows command line skills. Unlike the “Learn The Hard Way” series, this crash course is designed to get you mostly capable in a few hours to a few days.
Editors: (Text editors for code monkeys.)
Sublime: The text editor you’ll fall in love with. Well I haven’t. Don’t get me wrong, I like Sublime. It’s a very good editor but love is much too strong of a word. It may become love one day but at this point we aren’t even exclusive. This is by far the most popular text editor for OS X and there are packages for damn near anything you could want. Super extensible, very easy to configure, and all that jazz. Plus it’s rock solid, fast, never crashes, etc. Not sure why I don’t use it more. Possibly because I just prefer an IDE, but it’s odd because Sublime does pretty much everything I do in my IDE.
TextMate: TextMate used to be the gold standard for editors on OS X but then it quit getting updated. Then version 2 was talked about and it went open source. Now, a couple years later, version 2 is still coming and the beta version has been usable as your main editor for quite some time. This is the editor that started the snippet bundle explosion. Type a few characters, hit the tab key, and like magic you suddenly have a whole bunch of code staring back at you. You’ll notice in a lot of other editors the mention of support for TMBundles. This is the TM they are talking about. There are bundles for nearly everything and it’s trivial to add your own snippets or create your own bundles. Bundles can contain code snippets, commands, or many other things. Very powerful. But its time has come and went and I doubt it will regain the throne. I tend to use this exclusively when I need to edit a file or two but not open a whole project.
Mou Markdown editor for developers. Here’s the thing, I don’t even like this app but I use it because I haven’t had the time to find anything better. So if you’re working with Markdown and need a lightweight Markdown editor, Mou gets the job done. But it’s not very fast, likes to freeze for a bit sometimes, and just I dunno. It’s mediocre. Granted I’m on the 0.87 beta version… and as I write this 1.0 hasn’t been released yet so maybe it will get better.Edit (05/19/2015): I found something better! See MacDown below.MacDown Being frustrated with Mou and knowing there must be something better out there somewhere I decided it was time to switch. A quick Google search turned up MacDown and it’s everything that Mou should be. From the first time you open it, it just feels better. It feels like a native Mac app and it’s fast. Mou wasn’t lacking in features that I wanted so I can’t say for certain that MacDown has features you won’t find in Mou but it’s going to be my new workhorse now. Even though it’s relatively new and in development for less than a year it feels polished and ready for daily use. I’m very impressed thus far. It also has great themes. I’ll have to see if I can load my blog’s styles into it. Would be nice to see the preview window show me how my posts are actually going to look. So if you are needing to write/edit Markdown text on a Mac, grab MacDown and you’ll be quite pleased. And it’s both free and open source.
IDE’s: (Integrated Development Environments)
- Anything from JetBrains! (JetBrains has an awesome offer for students where you get any of their tools free for a year. This is exactly how drug dealers market their products. They give you a taste knowing full well that once you’ve tried any of their products, you’ll never leave. Note that as long as you are still a student, you can get a new license for each product when the year is up.)
- RubyMine: The Most Intelligent Ruby and Rails IDE. I dunno if their tag line holds true, I’ve not used every IDE out there, but I have tried a few and I really like this one. If you want more than just a simple text editor, for Ruby and Rails you likely won’t find a better one. It’s also quite popular in the Rails community for those like myself who prefer an IDE.
- Webstorm: Same as RubyMine but for web development. They also have a version specific to PHP. This is a more lightweight version of IDEA I guess. I originally started using this instead of RubyMine when I got into doing some JS but then switched to IDEA as it had additional features. Unfortunately I can’t remember what those features were.
- IntelliJ Idea: The big daddy. It’s a full blown IDE that has plugins for everything Rubymine and other IDE’s do. I use this for everything except Ruby and Rails, preferring to switch to Rubymine for those. But this, I’m told, can do it all. Switched to this from Webstorm for some specific feature(s) but can’t recall what that was.
Knowledge: Tutorials, Schools, Bootcamps, Mind Melds, Etc.:
- Coming Soon
Books:
- Coming Soon
Podcasts:
- Adventures in Angular: A weekly show dedicated to the AngularJS framework.
- Angular Air: Angular Air is a live video podcast all about Angular hosted by egghead.io instructor Kent C. Dodds.
- CodeNewbie: Stories from people on their coding journey.
- Design vs Dev: A podcast about web development from the different perspectives of designers and developers.
- Ruby Rogues: Ruby Rogues is a weekly panel discussion about programming. Ruby and technologies like Rails are what we have in common, but the discussions cover parts of the Ruby ecosystem, gems (libraries) as well as programming practices, tools, and careers.
- RubySteps Podcast: Ruby developers, from newbies to veterans, share their stories about how they’re making remarkable careers for themselves doing what they love - programming Ruby!
- Start Here: Web Development: Podcast about web development.
- Start Here: Ruby on Rails: Podcast about Ruby on Rails development.