Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: What kind of programming do you do and what tools do you use every day?
21 points by econner on Aug 3, 2013 | hide | past | favorite | 26 comments
Just curious to see what some typical workflows look like.


I'm a data analyst / data application developer for a large humanitarian NGO.

What: Lots of small data analysis projects, some large web projects. All projects are in git repos or in our division's SVN. My work tends to involve ETL data flows, statistical analysis, web development and data visualisation. I'm not "full stack" as I never really play with hardware or do much systems administration. I do get to control a nice big, enterprisey Oracle data warehouse, with a few hundred users, but I've hardly played with nosql, redis, mapreduce, etc.

Most of my problems can be solved in-memory, and most of my data fits on a single disk.

How: SQL. SQL. More SQL. PL/SQL. Python (Pandas, scipy, numpy). R (these days only when I can't find a python lib). Javascript (just jquery, underscore and D3). Windows 7 while at work, Ubuntu + i3 wm at home. Edit in vim with very few plugins, everything else is done in zsh/powershell. IIS for production, Pyramid/Pylons Project for quick prototyping. A wide variety of RDBMS, but chiefly Oracle. I do lots of my templating/css in-browser using developer tools (FF, Chrome, IE9).

My typical web stack is static html and javascript, with json served up out of purpose-specific database views. No need for an MV* framework, since I'm almost never dealing with transactional data.

I also use Excel for a) doing quick data transforms b) building interactive, distributable data analysis apps in less than an hour. I'm trying to build an excel replacement with vim bindings and LISPy worksheet formulas.


My workflow is very similar. All data analysis, all the time.

Tools: Lots of SQL (MySQL). AWS Elastic MapReduce + Hive for log analysis. Python (pandas). R (ggplot2 + stat modeling - haven't fully grok'd Python's statsmodels package yet). A little bit of D3, and a lot of command line. Maybe some Flask every once in a while to prototype out a reporting web app.

I try to avoid Excel entirely because it always crashes on my MBP, but still find myself in it every so often to simply look at my dataset.


> ... but still find myself in it every so often to simply look at my dataset.

Exactly this. I could never understand why there isn't some awesome, lightweight, terminal-based tool for looking at dataframes, and doing basic manipulation.


DevOps for a public company with SaaS cloud offerings.

iTerm

ssh to machines

chef/knife - look at config/status/recipes of servers

vi - edit stuff, esp. recipes or scripts (wish I learned emacs, never have)

scripts in bash/perl/python/ruby

graphite - store data

logstash - store logs, sort logs, quantify logs, send log stats and metrics to graphite

jenkins - continuos integration, take dev code, run through tests, test deployment

postgres - tuning, fighting, debugging, profiling

redis - checking

sensu/nagios - monitoring

lots of good fun!


I do: machine learning, nlp, ocr, expert systems, big data, and systems integrations. Also do a fair amount of datacenter infrastructure, as I don't use any PaaS/SaaS.

Languages: clojure, scala, haskell, and sometimes javascript (when clojurescript won't work)

Development: vim and a command line

Heavily used OSS: incanter, redis, titan, postgres, cassandra, storm, akka, nginx, jetty, finagle, netty, bookkeeper, opencv, smartos, ansible, xen

Services: github, pingdom, google apps


Hobbyist programmer, looking to do more serious work. I do web development in django, using emacs. That and a terminal is all I need at this point.

I currently use nano during remote terminal sessions, but I'd like to become comfortable with vim sometime soon.

I also got my first Thinkpad recently, and I love it.


I have three activities with slightly different tools and workflows.

* Generic

Everything is under Subversion, my employer's VCS of choice.

Briefs usually come as Word/Excel/Powerpoint files.

Compositions usually come as messy Photoshop files that I spend too much time tidying up.

Emails are the basis of interaction between departments (we have tried other means but they all failed for one reason or another) and we use Mantis for tracking bugs.

I'm on Mac OS X.

* HTML/CSS/JS frontend dev

When I start a project, I do it with a small script that creates a standard project and puts it under version control. Once it's done, I tipically open the README in Vim, populate it with a bunch of infos on the project and a TODO list. That file is my entry point in the project:

    $ cd /path/to/project
    $ vim README
Subsequent file navigation is done from Vim itself (either with built-in commands or with CtrlP), keeping the README in its own tab.

A tags file for my CSS and JS is generated at the root of the project every time I leave insert mode for better navigation.

On the browser side, I used an "autoreload" extension for a long time and now I use tincr http://tin.cr which works very well.

Deployment is never handled by me but is a manual task done with FileZilla, :-(

I'm sorry to say that we have no internal guidelines on anything.

* "Heavy" AS3 dev (whole apps/sites)

Almost everything is done in Flash Builder (with a vim plugin called vrapper) for my new projects or on an old PC in FlashDevelop (used by two previous coworkers) for legacy projects.

I also use a little Java app called Vizzy to show debug info when the app is not run from Flash Builder.

* "Light" Flash dev (banners)

Everything is done in the Flash IDE itself.

At home, it's typical linux hackery: terminal+vim.


What: I'm not a professional programmer, but I spend a lot of my free time coding my various hair-brained money making schemes. Trading bots mostly.

How: My main development enviroment is VS 2013 on Windows 8.1. On most of my "real" projects I work with C#, though I've been experimenting with F# for that recently. For those little scripting jobs for little automation type things, I used to use Powershell. (if you haven't heard of it it's the native scripting language for Windows). Hardware-wise, I use a Lenovo U410 which I'm really been liking over the last year.


Professionally, telecom infrastructure stuff. Platform: Linux (RHEL), C++. Development tools: Emacs, git, lots of xterms.

For fun: Random hacks (Linux / OS X / Common Lisp + Emacs + SLIME), occasional 6502 hacks targeting the old NES (actually Lisp generating machine code, not traditional assembly), and some FPGA stuff on the Papilio Pro board using Verilog and the Xilinx tools. Also a couple indie games on the back burner - one in Lisp, the other in C++.


I'm doing CS at high school, but also doing some projects of my own on the side.

I use PHP for myself (I started with it because it was easy, and I don't feel like rewriting what I've already done), along with Javascript and SQL. At school I use Java.

Most of my coding is in NetBeans at the moment, though my CS course recommends some thing called BlueJ. I also use Git.


Web development. Mac, but most of my time spent in Ubuntu VM (through Fusion -- planning on installing it on metal soon) with ST3 (a lot of packages), git, hipchat and keepass/1password.

I do a lot of DevOp related work so I spend a lot of time in iTerm2/terminal on EC2 instances and rue the day that I haven't worked through Chef/Puppet (yet).


Atm i work mainly as web and mobile developer

general OS: mainly linux (debian-like for reason of compatibility with some of my hw), sometimes windows in a wm when needed

Web dev --> konsole, kate, sublimeText2, vim, intelliJIdea12 --> php (laravel, yii), javascript/jquery, python/django, html5, some css3

Mobile dev(android mainly) --> kate, androidStudio, intellijIdea12


During the day, I use Objective-C, Xcode, Clang, LLDB, Git, GitHub. During the night, I use Agda, Coq, Emacs.


I program ruby most of the time, with some sysops mixed in here and there. A smattering of other languages as the need arises. OS is Arch Linux, and I use the i3 window manager. Coding is done in Vim. ZSH & Konsole are my terminal weapons of choice after a lot of experimentation.


Web/Mobile Development

OS: Ubuntu 12.04 LTS with Win7 in VMware (For IE, Photoshop, and Office). Vagrant for local servers.

Editors: Sublime Text 3 for local and vim for anything remote. Eclipse if Android (only because Android Studio is too buggy to use).

Misc: Git for Source Control and grunt for the tedious stuff.

Whenever I do


If you haven't tried Studio since it hit 0.2, it might be worth another look. It's become much more stable and I've been able to replace Eclipse completely. I actually don't have Eclipse installed on my primary dev machine right now.


I admit I used it early on (i.e. June) and was trying to build an app with Google Maps. The problem was that I needed to understand Gradle in order to manually edit the build files. I figured I'd tough out eclipse for the next little bit, until the Gradle issues are fixed. Next time I'm fooling around with Android, I might give it another chance.


What: Student/Hobbyist (for the moment), so whatever interests me.

Languages: Ruby/Go/Haskell

How: Sublime Text/Vim/Vintageous, Virtualbox/Vagrant, Arch Linux/Debian Jessie VMs on Windows, and a variety of other programs.

Services: Github, Bitbucket, Travis-CI, DigitalOcean, etc.


- git - mate / subl - maven or sbt - sometimes (big project I'm not the architecht or for code review) intelliJ (pure scala / java project) eclipse (play2 project) - Clever Cloud deployment


Software Engineer (Web developer) OS: Windows 8 IDE: Visual Studio 2012 Stack: C#, Asp.net MVC 4, Sql Server 2012, JavaScript (jQuery, jQuery UI, Kendo UI) and Google Maps. Source control: TFS 2012


For Perl:

iTerm and TMux in integration mode.

Nano for writing code, VIM for text transformations more complicated than a simple find/replace regex.

ACK for search

For .Net:

Xamarin Studio

Nano for bash scripts

iOS:

XCode

Alcatraz - XCode plugin/package manager

OMColorSense plugin to get a color picker when creating UIColor objects


PHP Web Development, specifically with the Yii framework.

I use Sublime Text as my editor and Vagrant for my development environment. I use vim on servers. That's about it.


Web Application Development: Mac OSX -> Terminal, Sublime Text 2, Codekit and sometimes LightTable for pure frontent work.


Web Development

Language/Framework: Ruby, Rails

OS: Ubuntu 12.04 LTS

Editors: vim with Terminal (Bash), geany (sometimes)

Services: Github, Bitbucket, Digital Ocean


Student. Functional programming (OCaml + Haskell). High-performance low-latency C++. Finance.


what: enterprise data analysis - mostly where data originate in SAP. Tools: SAP GUI, SAP HANA Studio, Postgresql, Python -- with Excel at the end




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: