Ask HN: Tools of the trade

25 points by zuckerei ↗ HN
I know, half the year is over already. But there was no "tools of the trade" thread yet. In the past I enjoyed those and I think it's also interesting in a historical context to have them once a year.

So I rolled up my sleeves and made an account to start one :)

What are the tools that you use nowadays?

20 comments

[ 4.2 ms ] story [ 48.5 ms ] thread
Ok, let me make a start. This is what I use:

    Debian
    Apache
    MySql
    PHP
    VIM
    99designs
    Upwork
    GitHub
    webpagetest.org
    Google PagespeedInsights
    Google Analytics
(comment deleted)

  Sublime Text
  LinqPad
  VS 2012
  SQLServer 2008
  SVN
  Windows 7
Mine:

  Windows Server
  ASP.NET
  Github Desktop
  SVN
  Visual Studio
  Brackets - awesome text editor with 
    JavaScript syntax checking 
    and undefined variable checking
  Jenkins
  Octopus Deploy
  Stripe.com
  Red Gate SQL Source Control
  Keen.io - not affiliated 
    but wanted to plug since has been coolest thing recently  
    awesome, easy analytics (paid but 
    free plan has 50k events/mo and 
    we've stayed under that so far)
When my startup was <10 people, I used Vim and Git a whole heck of a lot.

Now that we're almost 140 people, I mostly use Gmail, Google Calendar, Sublime Text and Evernote, and Google Hangouts for engineering meetings. But, a lot of those people are using Vim and Git, so it's not all bad. :-)

Of course, we all use Anaconda Python.

Oh, and I read a whole lot less Hacker News.

Ubuntu VIM Git Chef / Mina Rails / Django React / jQuery Digital Ocean Freckle Asana

Various APIs including Twilio, Stripe, MusicBrainz, Amazon, Shopify.

That's most of my professional and/or serious side projects, and then I dabble in other stacks when I can. Clojure lately.

Vim Perl Bash make Go vim-go plugin Chrome Developer Tools libsass uglifyjs homebrew redis postgresql Gimp Dropbox Google Docs Google Calendar Trello Slack bitbucket.org startssl
Well, I guess I'll go from the ground up in each category.

---

For development machines, I have a company-supplied Macbook Air for work and a variety of laptops and desktops that I use for personal things. The Macbook runs OS X Yosemite. My personal machines almost invariably run GNU/Linux (I've been especially fond of Slackware lately) or OpenBSD. My primary rig has a 122-key Unicomp Model M keyboard and a Logitech M570 trackball mouse, along with two monitors (one 1680x1050, one 1440x900); my desk at work has a 2560x1440 Thunderbolt display, connected to one USB port of which are a Logitech K570 solar-powered keyboard (Mac model) and a Logitech M570 trackball mouse (I really do love these trackball mice).

My primary editor as of late is Emacs. My workflow revolves heavily around fiplr for fuzzy-searching and Magit for git repo management (on Linux / OpenBSD, at least; on OS X I use GitX).

Git is currently my VCS of choice, though this is more out of necessity (since the vast majority of the projects I work on are hosted on GitHub, be they public or private repos; I use Bitbucket somewhat as well, so I've been looking a little bit into Mercurial lately, but I've yet to really use it for real work).

My dayjob revolves around Ruby on Rails programming. As a result, common Ruby-related tools (in addition to, of course, Ruby itself) - particularly RVM and globally-installed versions of Bundler, gemr, and Rails 4 (mostly for the various generators, though I don't really use those a whole lot) - are installed on most of my machines, including the Macbook. My job is more geared toward system administration and backend programming, so I've yet to explicitly install common frontend-development tools (like Node, bower, grunt, etc.) on very many of my machines, but I do have them installed on the Macbook as a precaution.

When it comes to building personal projects, my go-to languages have been Ruby (without Rails; I'm more a Sinatra/Padrino fan) and Elixir (recently with Sugar, which I find to be much friendlier to use than Phoenix). I maintain some private Erlang and Elixir Slackbuilds to that effect in order to track the latest versions of both on my Slackware machines (the Erlang on Slackbuilds.org tends to be slow to update, and AFAIK there's no Elixir Slackbuild at all yet); I've yet to publish them, but probably will in time. I've previously used a lot of Perl in my projects, but other than CPAN, I rarely use any Perl-specific tooling.

For databases, SQLite and PostgreSQL are my go-tos; I stay clear of NoSQL databases (except perhaps CouchDB or Mnesia), since I don't feel that they offer anything compelling over Postgres for my needs.

When it comes to the minimal frontend work I do, I generally steer clear of Javascript; when I do need to delve into JS, I've found Mootools to be nice for my uses. I've been using Yahoo's "Pure" CSS framework for things like menu bars and grids, and I've been quite happy with it so far.

---

Going into servers, my software stack tends to stick to Slackware or OpenBSD. My mail server runs OpenBSD with OpenSMTPD and a mail pipeline that includes SpamAssassin, spamd, and ClamAV. Meanwhile, for web servers, I generally go with either Nginx or OpenBSD's httpd (depending on whether the server runs Slackware or OpenBSD), along with PostgreSQL and one or more language runtimes (usually Ruby, Elixir, or Perl, inclusively, as described above). I don't really use any sort of config management system (like Chef or Puppet) on my personal servers; I prefer to configure them individually, using Emacs' TRAMP to edit configuration files over SSH.

---

I do some general electronics repair, too, on my free time. I thus carry around a physical toolbox in my truck with at least basic tools and parts (screwdrivers (particularly my really nice ratcheting screwdriver with a bunch of electronics-specific bits), spare USB/ethernet/power/SATA/etc. ca...

Some of mine:

  JetBrains' WebStorm
  Node.js
  MongoDB
  Redis
  MySQL
  MyCLI
  Git
  GitLab (Hosted and Self-Hosted)
  Gulp
  FireBug
  Trello
  Slack
  CircleCI or Travis, depending on the project
  WakaTime
I'm sure I'll find some more that I missed on my own list as well.
Google Docs, OneNote, HipChat, Jira, TerminalOne, TapAnalytics
Slate

Vim

Vimium w/ Chrome

IntelliJ

Docker

Redis

MySQL

Elasticsearch

Slack

GoTo Metting

Jira

Confluence

Git

GitHub

Haskell for large things

Ruby for small things

Java to earn a living (with a bit of Ruby here and there)

(I'm currently evaluating Kotlin and Javascript as well)

.

OpenBSD on the server

Ubuntu for developing

.

Android Studio (IntelliJ) for Java

Atom with Vim Mode (and a thousand other plugins that turn it into an OS similar to how I imagine emacs) for everything else

.

Github

  terminator/iTerm
  vagrant
  travis
  tmux
  Twisted
  ELK
My tools changed quite a bit this year. I am using:

  emacs
  textmate2
  R
  python / pandas
  jupyter notebooks (python, R, julia kernels)
  c++
  Clojure
  Common Lisp
  
  linux on the server
  os x on my laptop
  ipad / prompt2 / pythonista / bluetooth keyboard
Almost all of my serious work is being done in either R or python right now, which is a big change from using more proprietary tools like SAS, Stata, and Matlab.

I think I might have been the last person on the planet to figure out that an iPad with a bluetooth keyboard in a coffee shop or library is a very productive work setup and that I do not need to lug my laptop everywhere.

We are living in a fantastic era and I just cannot believe the amazing free tools that are available for things like network analysis (NetworkX) and spatial visualization (ggmap).

I am essentially using:

  *Development*:
  URxvt-unicode
  vim on Linux
  Sublime Text 3 on Windows
  Python (and a lot of libs, mainly, requests, Flask, AutobahnPython, Twisted)
  Rust (my new shiny tool)
  C/C++ (sometimes, but I try to avoid it)
  Frontend JavaScript (It has been a long time since I've written some ES5, I write only ES6 thanks to Babel)
  Node.js
  Webpack
  React.js
  Crossbar.io
  Git + GitHub
  Zsh (prezto framework)
  Fish (on servers sometimes)
  tmux (a.k.a the productivity booster)
  virtualenvwrapper (must-have for Python & virtualenv)
  nvm (must-have for Node.js & NPM)
  rvm (must-have for Ruby)
  fasd (when cd isn't enough, j somewhere)
  
  *Fonts*:
  Monoid whenever I can.
  Source Code Pro.
  Else, whatever can do the job.
  
  *OSes*:
  Debian on Server
  Archlinux, Debian, Windows 7 on laptop (1st, fallback on others...)
  I try to use the most appropriated OS for containers (Docker)
  
  *Services*:
  PostgreSQL OR RethinkDB whenever I can. SQLite when I can't.
  Redis
  Docker (+ dockercli)
  Docker-Compose
  nginx
  
  *SaaS*:
  Slack
  Inbox
  TweetDeck
  Asana
  Hacker News (the worst one :c)
I use:

  vim on Darwin. 
  javascript es6.
  chrome canary 
  chromestatus.com
  chrome apps apis. 
  gae 
  managed vm
  docker
  gce
  python
  brain
I'm mainly focused on web apps so:

VS Online/Visual Studio, Adobe Brackets, Git

C#: IIS, ASP.NET, Node.js JavaScript: vanilla, jquery, Knockout.js

The modern browser matrix & related built-in "dev tools"