A list of things you may possibly need, but maybe not (2013 edition)

Bla, bla, bla, introductory paragraph. This is usually the place where I tell you a story, or make some generalizing statements about the nature of the universe, but for some reason I can’t be bothered to do any of that today. Which is why I’m making a list post. This is going to be one of those posts where I list a bunch of things, link to them and you can click them and enjoy… Or not.

Is this going to be an end of the year list of some sort? No. Actually, maybe yes. Why not. Might as well do one, since everyone else is. Then I can take it, change like two things and repost it next year for fun and “profit”. Or not. I’ll probably re-write it from scratch, like a bloggering try-hard that I am.

Here is some cool stuff you probably need on one of your computers:

Windows

  • Powershell – if you are going to be using Windows, you should probably look into Powershell, if only briefly. It is more or less the only native way to script windows and it provides much more utility and flexibility than the spartan and limited default shell. I wrote about it earlier this year. If you do use it I highly recommend also checking out the following:

    • PSGet – is an apt-get like utility for installing Powershell modules.

    • posh-git – gives you a custom prompt if you are inside of a git repository indicating the status. In other words it does the same thing as my bash prompt.

  • Cygwin probably does not need introduction, but in case you have been living under a rock for the last few decades, it brings full-blown POSIX stack to Windows. It is great for everything, except Windows administration. When it comes to system internals Cygwin has always been, and always will be a 2nd class citizen. Hence my Powershell suggestion above.

    If you are using Cygwin, I also recommend:

    • MinTTY – which is a great drop-in replacement for the standard windows terminal. Most cygwin repositories have it available as a package, so just make sure you select it when you install it.

    • ConEmu – is another terminal replacement you may want to look into if MinTTY is a bit to bare bones for you (or if you want both ANSI and Windows color codes working in single terminal). ConEmu has all kinds of bells and whistles, including a tabbed interface that lets you run different shell in each tab (so you can have cmd.exe in one, Powershell in the second and Cygwin in third tab).

    • apt-cyg – is exactly what you think it is: apt-get like tool for Cygwin. It lets you install packages from the command line without having to launch the setup wizard every time. As I’m writing this, the script has a nasty unpatched bug, but fortunately it is super easy to fix it.

  • Luke’s Setup Assistant has become my go-to tool for downloading other tools. If there is some software that does not require installation, and ships as a stand-alone utility that does something worthwhile, there is probably a button for it somewhere on Setup Assistant. Among other things, it gives you easy, one-click access to most common Sysinternals and NirSoft tools and things like ComboFix. And yes – it is open source now. I previously hosted it in a private repo on BitBucket (mostly because code is messy) but because they turned out to be jerks, I re-hosted to Github and opened it up.

  • Chocolatey – you have probably noticed the pattern in this list. A lot of the things are “like apt-get for platform x”. Command line package/dependency managers are generally a great thing. Wouldn’t it be nice if there was an actual apt-get like package manager for Windows? Oh, wait – there already is one. What a coincidence. It’s not perfect, but it is functional which is more than could be said about it’s predecessors. In fact it is robust enough that we now have BoxStarter which is a service that lets you build silent Chocolatey install scripts for bootstrapping new windows installs (both real and virtual).

  • Ninite is a low effort way to batch-install and update freeware and free software applications. You just pick which applications you want, and they get installed in the background with no annoying prompts. The list of supported applications is small and aggressively curated but it includes some of my all time favorites:

  • ICOFx – every once in a while you will need to create a new icon, or extract a *.ico file from a windows executable. For those occasion ICOFx is in-disposable.

  • Pandoc is my go-to tool for converting Markdown documents into… Well, non-markdown documents. It can do just about any format. You may want to create some handy context menu options to make conversions easier.

  • MikTex – is actually a Pandoc dependency if you want to be able to generate PDF files so you probably want it. For that, and of course for compiling LaTex files. For that however, ProText might be a better option since it installs a whole Tex suite along with PS and DVI viewers you might need.

  • MapKeyboard – I mentioned this tool back when we discussed the useless keyboard keys. It is by far the easiest and hassle free utility to re-map keys on Windows.

  • Synergy is a virtual KVM that lets you use one keyboard and mouse on multiple computers. It is far from being perfect, but it is by far the easiest and cheapest (eg. free) way to do this sort of thing.

Mac

Seeing how I’ve been a mac user for like 3 years now, it’s probably time to include some Mac-centric apps on these sort of lists. Most of the software I use these days is platform independent (for obvious reasons) but sometimes there are useful apps that make life on a specific platform easier and more convenient. Here are a few such Mac apps:

  • Caffeine lives in the toolbar, and temporarily suspends the screen saver and screen dimming features. I personally like my MacBook to lock the screen after 5 minutes of idling both for privacy and to save battery. This is obviously less than desirable when you are for example watching a movie. Caffeine lets me toggle that behavior off whenever I expect to be idling a lot with a single click.

  • Alfred is one of those launcher/search type things. I like it because it seems to work rather well for my needs and lets me bypass the goddamn Finder sometimes.

  • MiddleClick registers three-finger tap as a middle click. I find this way more convenient than Cmd+Click because it requires only one hand.

  • MagicPrefs – I have a Magic Mouse, and this lets me configure extra gestures – like, for example a genuine middle click.

  • iTerm2 – is a drop-in iTerm replacement with more features. Chief reason I use it? Because it can be easily Solarized.

  • Trasmission is a tiny, sleek BitTorrent client. It is a bit like uTorrent before it got shitty, but with a native UI that does not stick out like a sore thumb.

  • Divvy – I saw this tool being used during a programming demo at one point and immediately downloaded it. It kinda works like Win+arrows combo in Windows 7, but lets you define the screen regions to which the window is going to snap. So you can define shortcuts that will automatically re-size the current window any which way, or do it on the fly by dragging an area across the little grid.

  • Easy Search in Chrome – not really an app, but a tip for former Firefox users whose muscle memory still associates Cmd+K with search. This is how you enable this shortcut in Mac version of Chrome.

  • Skitch is a nifty screenshot taking / annotation tool. If you can, use the 1.x version which actually was focused on putting arrows and circles on screenshots and saving them. The 2.x version seems to be more concerned with trying to make sure you are logged into your EverNote account and/or trying to get you to connect all of your social media accounts to it for social graph mining reasons and stuff.

  • Homebrew lets you install all the Unix, POSIX and GNU goodness on your mac. Some people prefer MacPorts or Fink but Homebrew is easy to use and non-destructive (it does not overwrite system binaries with GNU versions for example). Nevertheless using a Mac without one of these is like using a bicycle without pedals and gears and any of the stuff that makes it a bicycle rather than a foot powered scooter.

Linux

All the Mac apps on my lists save one were GUI driven. All the apps on this list, save one, will be command line. Does that say something about Mac and Linux? Or just about the way I use them? In fact, most of these will work not only in Linux but also on a Mac or Windows (under Cygwin).

  • HTOP is a replacement for top with colors and configuration.

  • The Silver Searcher is a better command line search tool. It is intended to replace grep and ack and is much faster than either of them.

  • Gnome Flashback also known as gnome-session-fallback or gnome-panel. A must have for Ubuntu users, because Unity sucks.

  • Tmux is a replacement for screen but with better handling of scripts and better configuration options. This is pretty much the first thing I always launch when I log into a remote box, because if I get disconnected I can always re-attach the session afterwards.

  • Corkscrew is an interesting little utility that lets you tunnel any kind of traffic over a HTTP proxy. I used it to ssh out of places where the firewall only allowed outbound traffic on ports 80 and 433. Probably not the most secure way to ssh, but it worked when I needed it.

  • EPM makes creating installable packages really easy. If you have a stand-alone app with little to no dependencies you can write a single config file and roll up a deb, rpm and dmg bundle in like a minute. It’s super useful.

  • Image Magic best way to resize, rescale, compress, convert or corrupt your images on the command line. You know how you sometimes need to make your favicon.png in like seven different sizes because, iPhone? This is what I usually use to rescale them. I think I have a script somewhere that takes a big image and produces a correctly named rescaled versions that make iDevices happy.

  • DavFS2 lets you mount a WebDav directory and treat it like a regular file system. It probably doesn’t seem like much, but I use it all the time these days to manage this blog.

iPhone / iPad

I figured excluding mobile platform from this list would be silly seeing how we all spend more and more time using handheld devices.

  • Paper – these days drawing/painting and Photoshopping are two rather distinct skills that are rarely taught together, but seem to be inexplicably intertwined. If you want to publish your work online you might want to actually start working in digital format rather than digitizing your analog output. But if you give an artist a Wacom tablet and a copy of Photoshop they probably won’t have a faintest clue what to do with it. Conversely if you give them an iPad with Paper, and a Pencil they can probably start sketching things almost immediately, and their analog techniques (like finger smudging, mixing paints, etc..) will mostly translate to this digital medium. I usually rail against needless sekumorphism but I think Paper is an example where it makes absolute sense. It recreates the experience of sketching on a paper pad quite well.

  • Photoshop Touch – is for those occasions when paper is not enough. The app is somewhat limited in what it can do, but I did successfully do things to images (cropping, recoloring, minor edits, etc) with it. That said I’m told that if you want to create digital art Procreate is actually a far superior product as evidenced in that insane Morgan Freeman time lapse portrait video.

  • Remote Desktop Lite is a Windows RDP client. If you maintain (more like babysit) a Windows box of any sort, this thing is great. You can go to lunch without actually taking your eyes from really slowly crawling progress bars or what not.

  • iSSH is an ssh client for your phone. Granted, it works best with an iPad, a keyboard. Which is how I use it most of the time.

  • Stratospherix File Browser is a network share browser. That’s what it is, that’s what it does. I typically use it to watch movies of my GoFlex Home NAS.

  • JotNot Scanner Pro is one of my favorite apps of all time. It is basically an analog document digitizer. You use it to take a photo of a piece of paper, JotNot filters it a bit to clean it up and spits out a PDF (or another format). You can do multiple page documents if you want, or photograph sections of a large sheet and stitch them together as pages. And it will upload it directly into your Dropbox if you ask it nicely. Never leave home without it.

  • Calca – I wrote about it in my calculator post so I’m not going to repeat it here, but I really dig the approach they are doing. It is a really neat app.

  • Pebble is not necessarily an app but an accessory. Sill, I love it. The latest version of the iOS app finally worked out all the Notification Center bugs, so any and all apps can now push notifications to your phone. The app ecosystem is not there yet, though I hear an “app store” kind of thing is coming and Yelp, ForSquare and GoPro all are supposedly working on dedicated Pebble apps. Granted, the hardware is rather limited (tiny e-ink screen and limited button input) so likely there will never be anything mind-blowing on it but… I like having extension of the phone on my wrist, and it is nice to wear a watch again (I haven’t been wearing a watch in years).

Cloud

Cloud is a thing now. As we become more mobile things need to be accessible from more than one place, and we become less tied to a single piece of hardware. This is both good (as everything is becoming platform agnostic) and bad (because, privacy).

  • Dropbox is currently my favorite cloud service. IMHO it has the best concept and architecture. I love the fact that my data lives primarily in the local folders, the cloud being just the sync / history management point. I like the way the desktop app sort of just stays out of the way in all of it’s various platform specific incarnations as opposed to, say the equivalent Google app that always feels like it’s just a hastily thrown together connector to the web interface. Hence Dropbox is where I put most of the stuff I need to be synced between all my computers.

  • GDrive has always felt like an inferior service to Dropbox, because it grew out of a web based only service and it shows. That’s however also one of it’s strong points. Typically what I keep in GDrive are Google Docs that can be edited via browser (often collaboratively with other people) from anywhere at any time. It just works.

  • BTSync is something I started using very recently. Its cloud sync without a cloud, so to speak and as such it works about as well as you would expect it: kinda like Dropbox but without a nice web interface, and without reliability. When I’m at home all my computers sync up without any problems, but as soon as I leave and find myself behind any kind of a firewall the whole thing breaks. Dropbox and GDrive will happily sync up with the cloud even if the only ports that are open in both directions are 80 and 433. BTSync seems to need the full complement of torrent related UDP ports to be open to do anything. If you don’t have firewall issues however it is a neat option for privacy and control reasons.

  • ShareLaTex is essentially Google Docs for LaTex. You might remember that once upon a time I reviewed a service called ScribTex. This service merged with / became ShareLaTex and is now much improved and much more functional. This is probably the best way to actually learn and practice LaTex without actually installing it on your computer.

  • Markdown Journal – this might be a little bit of shameless self promotion, but I’ve come to rely on this tool a lot over the past year. It is a personal journal tool that lets you write entries in Markdown, and then saves them to your Dropbox. I wrote it in March and I have been hard-core dog-fooding it since then. Bunch of bugs have been fixed, some nifty features (like the post viewer and local storage auto-save) were added. It will continue to grow as I keep using it to jot down quick notes, links and things I want to remember later. The service doesn’t currently have a search feature (I’m kinda concerned with privacy implications of indexing your files) but since the journal files probably live on your hard drive anyway, they will get indexed by your desktop search tool. Or, if you want you can use my custom Markdown Journal search script.

  • Fiddles – I’ve noticed I have been using fiddles more and more lately. Not necessarily for sharing, but for testing silly ideas. Arguably opening a browser and creating a JSFiddle test seems like less work than setting up a HTML/CSS/JS test in a text editor. Especially if it’s a throw-away type of thing you are not going to expand into anything later. More specifically:

  • Digital Ocean – I’m actually a Linode user and I’m really happy with their service (it is really worth the price guys) but Digital Ocean offers something rather different – really cheep and disposable virtual machines built on the fly. Not only that, but they have a full blown API for creating and tearing down said droplets programatically, and they provide their own Vagrant images to the users. So if your app is hosted on a droplet, you can clone yourself an identical droplet and run it under Vagrant on your desktop.

Programming

I code in PHP for work, but typically go with Ruby for fun projects because PHP is all kinds of cray and I don’t want to deal with that crap on my free time. Also I noticed that while I don’t really code much in Node, the Node community has created some of the best things ever that impacted the way I work.

  • Composer – I discovered it late last year, and I must admit that it make my work slightly more sane than it would have been otherwise. If you haven’t used it, it is a dependency manager for PHP. It kinda works like Gem or NPM just, you know weird and lopsided because, PHP, but it is great to finally have such a thing.

  • CodeCeption is a PHP testing framework. It lets you do end-to-end, unit, acceptance and functional testing with a really readable syntax. For unit testing it actually wraps around PHPUnit so you can more or less just drop all your existing PHPUnit tests into a folder and have them run alongside your acceptance and functional tests which is really nice.

  • Vagrant – I wrote about it multiple times this year. It is a tool that lets you easily create virtual machines. For example, I use it to bootstrap a perfect LAMP box every time. But if you have more sophisticated needs than me you can roll your own by generating a custom Puppet manifest with PuPHPet or Cheff cookbook with Rove.io service.

  • Jekyll – I discovered Jekyll a little under two years ago, and I remember that back then to set up a website you pretty much had to go through a whole ritual. Which was one of the reasons why I created Sample Jekyll Site – so that I wouldn’t have to do that shit ever again. Nowadays all you need to do is to type in jekyll new whatever and a decent looking site pops right out. Oh, and yes – Jekyll is a static site pre-processor. You write some basic markup (for headers and footers), then write content in markdown, compile it and upload resulting HTML. You do this, as opposed to using server-side includes to attach layout bearing headers and footers to your pages at run time.

  • Sinatra is my go-to Ruby web framework. I always viewed Rails as a sort of heavy duty framework that has everything you need, and also 7 kitchen sinks just in case. Sinatra on the other hand is bare bones and lean. It seems a perfect fit for small, single file, few-hundred line apps like Markdown Journal or dontspoil.us.

  • Bundler is a dependency management tool for Ruby. I first discovered it when working on Markdown Journal and now I don’t even know how I worked without it.

  • Bower is a dependency manager for web… Stuff. It lets you ship a file with your website that says it depends on this particular version of jQuery, this version of Underscore and that version of Handlebars (or Bootstrap or whatever). Then you can just do bower install and all the appropriate things get installed in bower_components/ folder. Added bonus: you don’t need to commit all the auxiliary files (like jQuery scripts and css) to your repository because they can be re-downloaded at any time.

  • Grunt is the build tool for web applications. As build tools go it can be configured to do just about anything. I use it to lint (using JSHint), minify (using UglifyJS), concatenate my code, validate the shit out of my HTML and run QUnit tests from the command line. I honestly don’t know how people did any this stuff before Grunt (hint: probably they didn’t).

  • Yeoman is basically Grunt + Bower + a scaffolding engine that binds everything together. It is basically a tool for setting up your environment in a hassle free way. For example, the other day I bootstrapped an AngularJS in like five seconds, complete with all the boilerplate HTML and JS garbage, basic Gruntfile and a set of unit tests. And this was the first time I have actually done anything with that framework. It’s a tool designed to cut the time between when you get an idea, and when you can actually start writing real code down to zero.

Vim

Vim is not a text editor. Vim is a way of life. Also here are some plugins:

  • Pathogen is a plugin manager. There are many like it, but this one is mine. I prefer it because it is simple. It’s primary concern is keeping plugin files together in manageable folders and leaves things like installing, upgrading and deleting them up to me. I actually wrote a lengthy post on how I set up my environment so there is no point repeating it here. I admit that it is not the simplest way of doing things. Plugins like Vundle and NeoBundle make installing and removing plugins much easier but I prefer to keep it basic. Especially since the aforementioned plugins need native scripts and/or binaries whereas my setup just depends on VimL and Git.

  • Solarized is not a plugin. It is a way of life. It’s a color scheme and it goes on everything. Terminals, editors. Everything. You wouldn’t understand but one day you will become one of us.

  • Emmet is not a plugin. It’s a way of life. It is actually swiftly becoming one of my favorite things. It basically lets you use shorthand instead of HTML and then will expand said shorthand when you hit tab. You can look at some examples of the syntax to get a general idea of how it works. Emmet is actually a thing that exists beyond vim. You can get it as a plugin for SublimeText, Eclipse, TextMate and many other things. It’s actually built into JSFiddle and PHPStorm. Hell, there is even a WordPress Plugin. Seriously, check it out because it is awesome.

  • Tabular is not a plugin, it is… Actually, it’s a plugin. It lets you align your code based on a pattern/regular expression. Very nice for indenting big blocks of declarations or function calls.

  • Unite provides a unified interface for browsing/searching for files, switching buffers, managing registers and bunch of other things. I can honestly say this plugin has replaced NERDTree and any/all buffer management plugins for me.

  • AutoClose closes parentheses, brackets and braces for you automatically. You type in ( and it automatically appends ) behind the cursor – much in the same way most modern IDE’s do it.

  • Signature – when you mark a line, it puts the symbol in the left margin to remind you that you marked it. It also provides easy bindings for adding, removing and clearing all marks from the document.

This is my list. There are many like it… Oh wait, I already used that joke. This list was supposed to be low effort post, but it turned out to be really long and really work intensive somehow. I need to learn how to slack off better. Like, for example I could ask you guys what your favorite software-like things were this year and you can write this whole thing for me in the comments. In fact, lets do exactly that to make this post even better.

This entry was posted in technology. Bookmark the permalink.



6 Responses to A list of things you may possibly need, but maybe not (2013 edition)

  1. switchnode UNITED STATES Safari Mac OS says:

    I’m still using µTorrent and Quicksilver; I didn’t see anything special in Transmission and I’d never heard of Alfred. Is there something I should know that would make me switch?

    Reply  |  Quote
  2. Robert UNITED STATES Safari Mac OS says:

    Typo in the Ninite link (htpp).

    On the Mac, you might check out Hazel and Keyboard Maestro. Hazel watches folders and runs rules on the files that appear in them. Keyboard Maestro is a powerful macro tool, with a huge variety of triggers and actions. For example, you can have your Mac run certain things when it connects to a particular wifi network.

    Reply  |  Quote
  3. ac Mozilla Firefox Windows says:

    You are referencing the apt-cyg official page, but why don’t you read it ?
    At that page, author of the apt-cyg is recommending to use the fork in the github.
    You should know that your proposal is not enough to fix problems.

    Reply  |  Quote
  4. Luke Maciak UNITED STATES Mozilla Firefox Windows Terminalist says:

    @ switchnode:

    The latest versions of µTorrent are add-supported and closed sourced. I think qTorrent is a fork based on µTorrent’s last free version but on a Mac Transmission is just a little bit sleeker and faster (at least was when I first installed it).

    Alfred is very similar to Quicksilver but it actually learns your preferences and prioritizes results over time so you can find things quicker.

    I guess in both cases it is a matter of preference.

    @ Robert:

    Thanks! Those are pretty neat. :D

    @ ac:

    Oh, I thought the fork was unofficial so I figured I’d link to the official page. When I installed and “fixed” my version the github link was not on the front page yet. I shall amend that.

    Reply  |  Quote
  5. Arturas LITHUANIA Mozilla Firefox Mac OS says:

    For Mac users where is a nice alternative for Divvy called Slate. Though it requires some time to set up, the end result will be worth it.

    P.S. Thanks for The Silver Searcher it will definitely safe me some time :)

    Reply  |  Quote
  6. TopperH ITALY Google Chrome Linux says:

    It’s incredible how your list is similar to mine (especially in linux and vim enviroments), anyway something I figured out in 2013 and can’t live without anymore is mosh.

    It’s a ssh replacement that plays nicely with roaming, weak wifi connections and has some nice prediction. I don’t even remember how my life was when I switched network and had to reopen my ssh shells and reattach the tmux/screen seesions!

    Worth a try!

    Reply  |  Quote

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>