DEV Community

Discussion on: What apps, software, or tools do you use and why?

Collapse
 
jacoby profile image
Dave Jacoby

Ubuntu: I am a Linux guy, preferring command line stuff, and there are some very personal things about Ubuntu/Unity that I prefer, including how it implements Notify-OSD so I can use it to notify me of events I care about, and how I can use Upstart to tell if the screen is locked or not, so I can send notifications to my phone if I'm not there.

Perl: I am willing to try other languages if that's what the idea is built in, if it's easier to do a task in that language or if you just can't use anything else. I do a lot of JavaScript for that last reason, and for some things related to Google Calendars and FitBit, I found it easier to work in Python than anything else. But for most thing, I have built enough that I can tie all the things I want to do together using Perl, and my mind's pseudocode has always exported near-executable Perl.

Bash: I started out as a tcsh user, because that was what was default on the Solaris machines at the time, but having the same syntax between your shell and your shell scripts is good.

Reply: A friend used a Python REPL as his primary shell. I don't know how, and I don't really want to do that, but on occasion, being able to type some code and get your short-term answer is good. Reply is Perl's REPL.

Chrome: I use Firefox for diagnostic purposes and occasionally play with some new ones, but my daily driver is Chrome. My main thing is common bookmarks and history between all browsers, so I can look up things I saw on my phone when I get back to the office.

Session Buddy: A Chrome plugin that saves your tabs, because one too many times, a Chrome crash took my n open windows with m open tabs each down.

Dropbox: The "cool" thing I do is have my bin, lib and dev directories in Dropbox, so I have my same commands (mostly) on every machine which has a shell, which actually includes my Windows computers.

Pushover: This ties back to Perl and Ubuntu, because Perl is how I send the notifications, and if I'm not at my desk, I use Pushover to get them to my phone.

JuiceSSH with Hacker Keyboard: Trying to do Linux stuff on a phone or tablet sucks, but having a good SSH client and a keyboard that works like a desktop keyboard, with all the special characters you need to do all your Linux stuff, like using esc to get out of write mode in vim, is crucial.

Twitter: For some things, it's accountability. I send FitBit stats and my daily coffee intake to Twitter. I'm the computer guy in a biology lab, and I'm a developer in a campus full of admins, so Twitter is also my Slack/IRC, where I can pick up info and ask questions about topics I need to understand but have no way to find in my normal social circles.

3-D Printed Fixes to my Desktop: Using ASCII to describe, most keyboards and trackpads are set to go like this / but really should point like this \. I printed a few things so my trackpad and keyboard point the way that's best for my wrist, but still remember, wrist rests are bad for you; keep them arched, like a piano teacher would yell at you about.

Standing Desk: I've done so just over four years. As coder/admin/helpdesk in my lab, my job is to stay here, so my daily steps is embarrassingly low, but I maintain decent leg tone by standing all day. It works for me.

curl and jq: These are new additions to my workflow. We're working with a new third-party API at work, and if I work out how the API works (and doesn't) with curl rather than Perl, that makes the commands I send to their help desk more transferable. Once I know I can do a thing, I enshrine it in my language of choice.

Spotify on Linux, plus DBus: I can pause, play and skip to the next via command-line tools, allowing me to pause when people come to bother me without having to go to the far virtual desktop. Also,

Virtual Desktops: So I can segregate my projects.

git and github: Surprisingly, mostly for side projects and things not directly connected to my work, because our workflow was built to actively hinder before the widespread use of version control. But I keep side projects in it, because it's good and useful, and someday...

Teensy, and...: I use an IOGear KVM to switch between my two desktop computers, Windows 10 and Linux. (I don't use the V part.) I also use a Logitech Unifying Desktop to cut down on the number of wires on my desk. But my keyboard won't talk to my KVM, so I use a Teensy microcontroller in a Staples "Easy" button to send the keystroke I need to switch to Windows, mostly for Admin functions.

Baby Mirror: The mirror-on-a-mount that parents of infants put up so they can check on their children while driving. I put it up so, when people walk into my area, I can see them.

White Board: GTD tells us to use external memory, and for me, my to-do and repeated tasks go on the board so I don't have to always keep them in mind, and back-burner items don't go down the memory hole, like the clown in Inside Out.