Uses This

1288 interviews since 2009

A picture of Nelson Minar

Nelson Minar

Software engineer

in developer, linux, windows

Who are you, and what do you do?

I'm a software engineer, these days more of a gentleman programmer. I work on a variety of projects and am interested in maps, open data, and data visualization. I tend to follow technologies that allow you to quickly build amazing things; mapping reached that inflection point a few years ago. These days I'm getting up to speed on machine learning; it's amazing how easy it is to bash together a workmanlike learning system. I'm probably best known for my work on web services like the Google AdWords API. The most recent public thing I released is Wanderings, a lightweight location tracker for creating a personal record of where you've been.

What hardware do you use?

I sit in front of Windows machines. Generic Intel desktop with a fancy gamer GPU and a single big 3440x1440 monitor that supports G-Sync for nice variable framerate display. For a laptop I have a 2017 Razer Blade, also a gamer system. I like gaming and the GPU doubles as a machine learning platform. Also gamer hardware seems like higher quality fit-and-finish.

I used to use Macs but gave up on them a couple of years ago when macOS kept getting worse. PC hardware is definitely not as nice as Apple hardware, even the Razer Blade is a poor second to the best older MacBook Pros. End of the day all I care about is if it runs a web browser and pretty much anything can do that; Leonard Lin's use of Chromebooks caught my attention.

A lot of my real work takes place on Linux boxes running Ubuntu. I have a couple of headless servers at home and a leased bare metal server in a data center in Kansas City. I've got an iPhone in my pocket and an iPad that mostly just runs the Kindle app. Home entertainment runs off of Sonos and a Roku running Plex. I use Ubiquiti networking gear including a really elaborate fixed wireless setup to deal with rural geography.

And what software?

A web browser is what's front-and-center 90% of the time I'm working. I mostly use Firefox, switched from Chrome when Quantum came out. 1Password is essential for managing logins. I rely on uBlock Origin and Privacy Badger to remove unwanted crap from web pages. Once I quit working on ads at Google I became zealous about blockers. The intrusions and malware shoveled into our web browsers now is unconscionable.

I have a few UI customizations that are essential to me. One is to bind Caps Lock to search Google via an AutoHotkey script. Now that big fat key on the home row does something useful; copy some text and hit Caps Lock and boom, up pops a browser window. I also use Hain for launching programs, I type Win-Space and the first few letters of the program name and it launches. I miss Alfred for doing this on macOS, it is really lovely.

One of the ways I make Windows work for me is I run Ubuntu in it via the Windows Subsystem for Linux. WSL is an amazing accomplishment by Microsoft. It's a full Linux kernel API emulator that runs actual Linux binaries under the Windows kernel. Some things like filesystems are a bit wonky but in general I have a fully working Ubuntu environment for my Windows box.

When I'm writing code I use Sublime Text 2 with minimal customizations. I really just want a simple editor; back in the 90s I was a big emacs nerd but now think its tty interface, awkward keys, and overcustomizability are all damaging throwbacks to a bad old era before humane user interfaces. Sublime Text 2 is fine and looks nice. I use Simplenote for quick notes where I don't want to think about where the file is saved and mg when I need a tty editor in Linux.

I mostly program in Python 3 and seem to be using pandas a lot for data processing. I'm also a huge fan of Jupyter Notebooks, they are revolutionary for sharing data science computation. (Check out Observable if you do JavaScript).

Most of my map work is custom code backed by PostGIS. GeoJSON.io is great for sharing geodata on a web page map and occasionally I bust out QGIS for a desktop app. My visualizations are usually in JavaScript using Leaflet or Mapbox GL JS.

Slack is my social media of choice, although of course I'm on Twitter and Facebook too. A few Discord servers too; Discord is marketed as Slack for gamers but it works fine for other communities too. I spend a lot of time on MetaFilter and Reddit, that's how I keep up with new stuff. Also belong.io.

For publishing I still run an old school blog using the ancient Perl engine Blosxom. But I write much more sloppily and prolifically on my secret work blog which is hosted at wordpress.com. I also run a blog of interesting links which is a Pinboard account published in various forms, notably a Twitter feed.

What would be your dream setup?

The most important problem to solve in consumer Internet right now is secure logins. Passwords are a terrible form of authentication. A password agent like 1Password or LastPass helps but they are clumsy kludges. "Guess which HTML form element is a password and fake a keyboard paste to fill a random string from a third party program"; is that really the best login system we can imagine? Of course not. Also it terrifies me how tiny those two companies are that literally hold the keys to everyone's kingdoms; I assume they've both been compromised. It's a great shame OpenID and Mozilla Persona failed, they had excellent technical solutions for authentication. I was about ready to say "fuck it" and let Facebook manage all my logins but given how untrustworthy they've turned out to be that's clearly not reasonable. I've thought about starting a product company for authentication but it's not really a technical problem, it's a business strategy problem. And it's a business with an enormous liability risk attached to it.

I also wish thin client cloud computing would become a reality. I spend far too much time thinking about where my data is or where various programs I use are installed or configured. (Shout out to FreeFileSync, a good interactive tool for shuttling files around.) Can't all my stuff just be in the cloud already? The gaming world has kind of solved that with various cloud gaming services. You'd think the latency and bandwidth requirements would make gaming the worst candidate for a remote UI but it actually seems to work (although I don't use it). I'd love the same thing for my desktop environment. There's ways to kludge it together but I don't know anyone who works that way 24/7.

I'm looking forward to the 1990s dream of ubiquitous computing becoming a reality. I don't have much in the way of smart home devices and the ones I do are garbage. But some day I'm going to be able to talk to the thin air and express my intent and a beautiful display will hover in front of my face to show me what I asked for. We still have a long way to go on voice recognition and inference for that, not to mention projection technology.