Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Examples of reliable software you enjoy using
247 points by gtirloni on June 28, 2016 | hide | past | web | favorite | 650 comments
There is so much broken software out there that sometimes it can feel a bit overwhelming and depressing if you have been 'yak shaving' for hours/days/months on end.

It's not rare to forget what you were doing after layers are layers of workarounds and fixes you have to do before actually doing the thing you wanted in the first place.

I'm wondering if people would have examples of good software they enjoy using and trust them to work properly so others can have some hope or feel better about it overall.

A similar question was asked 8 years ago ("What software makes you happy?" -- https://news.ycombinator.com/item?id=128714) but I would like to focus on the reliability aspect of software.

Python. To a lesser extent, vim and tmux. ssh/scp.

I used to think bash was on that list... it seems relatively responsive and predictable. I use it all the time.

But then I realized how often bash has weird issues -- like completion hanging, or inexplicable inability to complete (this could be due to the distro though). Or it just seems easy to get it in a bad state by hitting the wrong keys, or dumping a binary file to the terminal.

And recently I have been looking through the bash source code, and it's a bit horrifying. The reliability is done by brute force of special cases over decades, not by good design.

I like the semantics of the shell language, in that it lets me get things done fast. But I don't like the syntax or the implementation I happen to use. bash is pretty complete, but not well implemented.

Agree with the list and bash. I switched to fish because of this and never looked back.

Although tmux isn't perfect when there's a lot of scrolling output on account of it being a terminal multiplexer, the only decent replacement I've found is terminator, which is a terminal emulator. But I hate the terminator key bindings, and it doesn't have a option for screen/tmux style shortcuts.

What's wrong with tmux scrollbar buffers?

Nothing. However because tmux is a terminal emulator running in a single terminal, the whole thing can freeze with loads of output if you don't rate limit [1]. My understanding (and experience) is that terminator emulates several terminals, so one pane freezing doesn't affect the others. I still prefer tmux, but I do find the different approaches interesting.

[1] https://superuser.com/questions/417556/is-there-any-way-to-p...

The Python installation called WinPython has worked flawlessly for me, as have the Python environments on both x86 and ARM Linux.

My own programs written in Python... not so lucky. ;-)


VLC. There have been so many times I thought "man it would be great if there were this crazy hypothetical feature in my media player" only to find out it's like a stable long-established feature that's a keypress away from activation after a quick google search or glance at a dropdown menu.

VLC has the same problem as Chrome vs. Safari for me on OS X: It's not color correct, ignores monitor color profiles and colors look washed out in direct comparison to QuickTime. I'm guessing many people are not aware of that on their Macs.

At least Chromium seems finally to work on this after more than 5 years https://bugs.chromium.org/p/chromium/issues/detail?id=44872

I wished I do not need to switch to QuickTime or Safari to have correct bright colors for enjoying videos & images :/

Chrome has color problems? I am curious about this. Can you point me to more specifics?

look at the linked chrome bug link. But you can also see it yourself. Open an image you know very well on both Chrome and Safari and compare side by side. I can even see it on opening http://imgur.com in Chrome and Safari and comparing the results. I recognize it the most on skin tones. Chrome is washed out a little and in Safari it looks nice. You can see it even more on videos. Go to the same minute/second and compare Chrome and Safari.

I don't find any difference.

Or for folks like me: I just want to play my video files no fuss, no muss. Something other major media players seem to have more trouble with than they should. But not VLC! 100% of the time it works every time!

Doesn't matter what filetype it is...it just runs them all, instantly, like magic. I have never missed Windows Media Player for even a moment.

"Doesn't matter what filetype it is...it just runs them all, instantly, like magic."

Does it play DVD ISO files ?

Can you use the menus, etc. ?

Just curious ... XBMC back in 2004 could do this (navigate and use DVD menus in a DVD ISO) but then that feature actually went away in the following years, never to return ...

> Does it play DVD ISO files ? Can you use the menus, etc. ?

Those are semi-loaded questions. It can and does play .vob files, which is enough if you actually just want to watch the video, which is VLC's primary use case.

It is not a full media manager with additional functionality.

It does play DVD ISO files. Just drag and drop them in, hit play.

The question you should be asking is, "does it properly ignore DVD menus?"

The question you should be asking is "can it find its way around DRM?"

When I play some bought DVDs with VLC the DRM stops the DVD getting to the menu stage (on Linux especially) and I need the menu to change the language for my children who don't always want English[1]. Skipping the menu doesn't let me change the language, and not using the skip-menu option means the DVD won't play. Disney are not alone in this, but are the guilty party that comes to mind.

1. Even better when the nordic regional edition of a film has something crazy like Finnish as the default language, and English isn't there at all, but my children want the voices in Norwegian. So skipping menus goes straight to the film in language that doesn't even make sense to Finns. Thanks DVD producers, there isn't enough frustration in my life but with your help and my money we're reaching levels close to 100%.

I was usually able to switch the language by right-clicking, there's a submenu that lets you select which audio stream (i.e. which language) you want to listen to.

antisthenes notwithstanding, VLC does play DVD .iso files and you can use the menus.

Wow - that's fantastic. Thanks.

Yes, with mouse, keyboard, or remote.

You are right. I found vlc in 2006 and never looked back.

On my low end machine VLC struggles with H265, where KMP doesn't. (But I still strongly prefer VLC for everything else.)

Another mention for MPC, and I ended up switching to it for everything, after searching alternatives because VLC was stuttering with some h265. It displays everything I've ever thrown at it with no fuss and has some neat features like single keypress to search for subtitles for the current video.

Have you tried MPC-HC? I haven't put it up to the test with KMP, but I do know it beats VLC for H265 playback.

All these players use the same code, you know. Here it is:


I'd be pretty surprised if there was a major difference between them. Maybe some bugs in the rendering path, or one player isn't doing threads properly?

They should run the same in theory - but they don't in practice. It is typically more noticeable on older hardware, on my current rig I probably wouldn't be able to tell the difference. Maybe that's changed in more recent versions, but I no longer have my older rig to do comparison tests.

Also what gcb0 said is true as well - but not everyone needs subtitles for their videos. My 'expertise' in media player selection is based on getting the absolute best quality playback for my anime.

My primary reasons for switching from VLC were not due to efficiency - but due to shadow being washed out and the NVidia color issues. Both "fixable" in that you can "improve them" but not quite "remove them entirely". (Both issues are easily Google-able as well)

There are many, many, many image comparisons between VLC and MPC-HC (and sometimes MPV for Linux). The one thing in common is that MPC and MPV both look very similar while VLC always has a washed out look and occasionally faulty colors (by default). Unfortunately, many people are terrible at screenshotting the exact same frame but even from similar frames one can pretty easily spot the differences between VLC and MPC-HC.

Example of the shadow/color differences:

Side-by-side w/ CPU usage difference: http://i.imgur.com/xJnrS2f.jpg

http://screenshotcomparison.com/comparison/176895 (excuse the distortion, I was 1px off on my cropping)


Some people prefer the washed-out look finding it more aesthetically pleasing. That's fine and I'm cool with that, long as I don't need to watch anything with them. Many people also "don't give a shit" because they'd never know the difference without seeing the side-by-side or comparison of the frame. That's fine too - but not something I personally agree with. :) I prefer better quality even if I have to looking for it.

This definitely falls under "bugs in the rendering path". In this case the question isn't which one looks better, but which one the media author intended.

Your two culprits are that someone's YUV->RGB math forgot that Y needs to be expanded from 16-235 to 0-255 - possible but really surprising! - or that one player implements gamma correction and the other doesn't.

Gamma correction might look nice, but it can't be called correct unless you've profiled your monitor, set the brightness level, not changed your ambient lighting levels, and turned off all the nonsense LCD options like "contrast".

BTW, the only rendering bug I ever expect to see is the difference between Rec.601 and Rec.709 colorspace, which just kind of makes green colors look different. So this is pretty extreme!

>In this case the question isn't which one looks better, but which one the media author intended.

That's typically my argument, but others simply "don't care" how the author intended, they want what looks better to them. Which is fine - as long as I'm not watching it with them. Because I actually do care how the author intended something to be seen.

not really. they have some particular demuxers, and renderers.

e.g. you can get better color output and better subtitle features on mpc-hc

I love VLC, but I had to switch to MPC-HC. It performs a lot better, it can play full HD MP4 videos on my weak laptop without any issues, whereas VLC struggles, skips frames, and is basically unusable.

I have the opposite experience. Font rendering in Chinese seldom work, and dragging the slider of a large MP4 or MKV video results in noticeable lag. I have since abandoned it.

Not to mention the color balance is noticeably off for Nvidia graphics cards - and no amount of trying to rebalance them ever quite gets it "right". I also prefer my video player to let me know if a video file is corrupted rather than attempt to play it anyways. I find that to be a bug, not a feature.

What do you use now?

mpv for OS X/Linux PotPlayer for Windows

I generally use VLC by default, but I've found that it frequently stutters in decoding files mounted via sshfs, particularly when I use the scrub bar. I'm guessing that's because sshfs introduces some latency on seeks that upsets the decoders, but other video players don't have the same problem.

So, just anecdotally, VLC isn't perfect, but I'd agree that it's generally quite close.

The file access module allows you to modify the buffer - change it to something very large and let it sit for a bit after hitting play.

I switched to SMPlayer because of the integration with OpenSubtitles.


In case you didn't know, there's an option in VLC to download subtitles based on the hash of the video.

That sounds amazing, from where are the subs sourced?

https://github.com/exebetche/vlsub downloads subs from opensubtitles.org.

I wanted to install this extension earlier this week, only to discover that it was already installed. This is with VLC 2.2.3 on OS X.

Search by hash has been working well for me so far.

I agree, except :s/VLC/mpv/

On the Mac I'm far happier with MPlayerX: http://mplayerx.org/

It's UI is optimised for playing video (example: if your window is not fullscreen, but playing it will stay in front). It has smoother playback than vlc, I can actually skip by seconds with my cursors etc.

How does it compare to mpv?

I like VLC, but I can't upgrade past version 2.1.5 because the 2.2.x release has broken WMV support (it stutters on many WMV files).

Lol, wmv? There's a name I have not heard in ages.

> There have been so many times I thought "man it would be great if there were this crazy hypothetical feature in my media player" only to find out it's like a stable long-established feature

I just want simultaneous display of multiple subtitle tracks. :(

I like having VLC around but as a day-to-day music player I find it uncomfortable. I have been looking for iTunes alternatives for normal mp3 listening and so far I really like the simplicity and purpose-built nature of qmmp and a bunch of playlist files.

Why would you use it as a music player? It can play the files but it's not a meant to be a music player.

for somethings mplayer just works out of box, where it doesn't for vlc, e.g. :

curl http://blah/blah/some/hidden/network/stream | mplayer -

which I've seen fails on vlc

git is so reliable that I forget that reliability used to be a problem in version control (I've had to reconstruct CVS and Subversion repositories that got corrupted via various bugs and quirks of the system). It's also pretty fast.

SQLite is an automatic, and easy, answer. It almost goes without saying at this point, I guess.

vim is everywhere. I like knowing I can always run it no matter where I am or what server/VM I'm logged into. That knowledge provides comfort.

go. I don't actually love the language, but the solidity of it and it's ecosystem is really nice. Everything around go has a patina of workmanship about it; not in a corporate "professional" sense, but more like a well-made wood plane or something.

Perl. Again, I don't entirely love the language, but the incredible backward compatibility (we have ~20 year old code that still runs unmodified!), the rarity of bugs (especially given how big the surface area of a huge language like Perl is), and the overall culture of testing, leads to a pretty nice experience. I feel like I can count on it, even if I might get grumpy at some of the quirks.

Python, for different reasons from Perl. I can come back to Python after years away and find that it's maybe even a simpler (but not less powerful) Python than I used a decade ago. I just poked at Python 3 for the first time a few weeks ago, and found it immediately readable and intuitive. The language is more reliably "Pythonic" every year.

OpenSSH. Always works. Always trustworthy.

Google Inbox. I want to host my own mail (and do, for my business), but nothing is as good as Inbox.

git is such a great example for OP. It's become so ingrained in my workflow that I forget it's there. It really is a perfect application.


I've had a heap of issues with not receiving notifications for emails that were miscategorised.. or just never popped up on my phone... I check gmail on my desktop every few days just to see if I missed something.

Now, y'all have me paranoid that I'm missing mail. I don't think I have been...buy maybe so.

And, now that you mention it, GMail is faster, and I can chew through mail at a much, much faster pace. But, the smarts built into Inbox means I can safely ignore a lot more mail (about half ends up in Promos and Finance and Social categories; all ignorable until I'm looking for something specific or expecting something), which is maybe a worthwhile tradeoff. I don't have to go as fast if I only have half as much mail to think about.

I have that constant feeling of missing something with google inbox, with sufficient keyboard short cut expertise, on a good day I could handle 300-400 mails in gmail, and feel productive. With Inbox, many of those mails are well hidden, and even if I can safely discard whole bunch of mail at the same time, there were couple of instance that made me go back to gmail.

Ugh, I know the feeling. Also, the web app is sometimes slow as hell (collapsing bundles, marking items as done etc) without any particular reason. At least, I presume that having ~5 emails in the inbox wouldn't be so difficult to handle.

The Android app is consistently buggy for me. Typing jumps around when my keyboard corrects a word, and I've never been able to attach a photo to an email (no troubles with the Gmail app).

> Perl ... the overall culture of testing

and documentation!

I remember stumbling across cpan years ago and being blown away (this was way before github or even google code IIRC) that there was so much code I obtain and use, freely, just off the internets.

Of course I had no idea how Perl worked, so it looked like someone stuck a bunch of symbols in their nose and mouth then sneezed, but would've been amazing if I had spent a bit of effort.

Postgresql. Such a marvel of reliability and good design. All features just logically and consistently work with each other.

From the perspective of a GIS professional, I would add the PostGIS extension for PostgreSQL. The depth of spatial analysis options in PostGIS combined with the reliability and performance of PostgreSQL make a great combination. Throw in the cost savings compared to running MS SQL Server/Oracle + ESRI ArcGIS Server and I'm not sure why more GIS shops don't make the switch (Fear of FOSS, the command line, or having to assemble your own solution?).

I'm not sure why more GIS shops don't make the switch

As another GIS professional I've found that the answer to this question in roughly 100% of the cases is that they have some important application (either third party or in house) that doesn't trivially talk with PostGIS and they don't see the cost saving once they've factored in all the migration costs. So vendor lock-in basically.

And the documentation is good too! (And that means that it's good, not like most software with "good documentation" where "good" means that it has reasonable feature coverage.)

I actually find the documentation to be awful. Take the installation guide:



PostgreSQL tells you "If you are installing a pre-packaged distribution, such as an RPM or Debian package, ignore this chapter and read the packager's instructions instead" whereas MongoDB actually lists specific instructions for each platform (including distro).

It's similar all the way through. They tell you "why" something was done but not necessarily "how" to get something done. And the manual format with chapters simply isn't suited for the web. There is fantastic content there. It just needs someone with a UX hat to structure it in a way to make it easier to use.

I find the documentation very structured, accessible and complete.

The chapter format might not be the most modern way of presenting it, but the actual page-layout is good and i'm coming from google most of the time anyway.

I don't know what you mean by that the "how" isn't there?

I don't feel those links serve your point. They illustrate the difference between good and "good", in the sense I meant in my comment, to me.

Agree with this. I will regularly write queries plugging together all sorts of odd features in odd ways and it'll just run, run fast, and give me the results I want. Totally amazing.

Some bad software is fractally bad and you can't explain why it's bad because every part of it, at every level, is bad.

I find that Postgres is fractally good in a similar way.

This is what I was going to put! Agreed!

It's so oraclish an ingresish in the way it treats the command line monkeys...

This is actually the first time I've seen POSTGRES referred to as named for being post-Ingres. This wiki page is full of quite interesting tidbits of history on DB research, thanks.

Great interview with Stonebraker from 2013: http://www.se-radio.net/2013/12/episode-199-michael-stonebra...

What do you mean?

Windows: "Everything" (that's the name). A lightweight, fast and advanced (if you want it) file search engine.

Linux: Most tools of course, as they are made with the Unix philosophy, but these days I'm most surprised by print drivers for Linux. Where in Windows the printer is always magically offline or slow, from Linux I can print and scan very reliably.

Vim is also worth learning, it makes editing much more... relaxed I guess. No longer have to move your mouse to the arrow keys or even the mouse/touchpad to scroll or select. It also helps that it exists on nearly every Unix system you'll ever connect to.

And finally I recently discovered LaTeX, which could be described as markdown on steroids. A little more difficult to get into, but it's easy to create professional documents and have a plain text source (which works nicely with git and other unix tools). If you have trouble getting started in LaTeX, ask me (comment here or see my profile), I also didn't know how to get started for a while.

Edit: Another Windows tool is Notepad++. I have not seen the likes in Linux when it comes to robustness. It has all the basics you need for handling any sort of file that involves manual editing, binary or plain text. If there is no binary editor available for your file of choice, or if you just want to have a quick peak, Notepad++ will do just fine. Beware of really huge files, although I have seen it handle some big things on low RAM machines too.

> Vim is also worth learning, it makes editing much more... relaxed I guess. No longer have to move your mouse to the arrow keys or even the mouse/touchpad to scroll or select. It also helps that it exists on nearly every Unix system you'll ever connect to.

People often talk about the speed of use, but this is (IMO) a result of its efficiency. I liked your use of the word 'relaxed', I'd add: slow down your actions so you have time to think about what you're doing, almost like narrating your actions.

Vim has a grammar that works well when spoken. Learn Vim's way of saying the action you're performing, then learn the relevant keys, adding them to your vocabulary. If a sentence makes sense in your head, try it and it'll probably work as expected. Say you started with:

"delete 3 words" == d3w

"yank to the end of the line" == y$

From this you could assume these valid:

"delete to the end of the line" == d$

"yank 5 words" == y5w

It takes time, but it builds up when you add a word to your vocab here and there, when you have a concrete use for it. (often one you'll remember from the 'wow, that was cool' moment when you first see it in action)

Some more examples:

"delete inside quotes" == di"

"select all of the block" == va{

FWIW, I used to use Notepad++ back around 2005 and it was a piece of crap stability-wise. Frequent crashes, and not-infrequent UI glitches like syntax highlighting just stopping working.

This isn't a reflection on its state now, but I'm trying to make the point that good software takes time. They've had 13 years to clean it up now, and evidently it's gotten a lot better. But that's worth remembering when judging the crap software that's come out in the last couple years.

Linux printing also used to absolutely suck, so much that CUPS was generally synonymous with the hassles you (used to) need to go through to do practical work with a Linux system. Ubuntu has been an absolute godsend in terms of getting a stable, productive Linux desktop working.

Seriously, if Ubuntu were a single piece of software, it would top my charts. I don't even use it regularly anymore except on my work Desktop (I run Arch linux on all my personal machines) but the sheer level of "Just Works(tm)" is mind boggling. It quite handily picks up my weird wireless cards and video devices without fuss, and I haven't managed to fully break an Ubuntu installation (mostly dealing with nVidia back in the day, when it was less magical to get working) in a way that I couldn't easily revert.

I realize a lot of that is riding on the Debian team, but Canonical has done some fantastic work just testing the thing out on such a wide variety of configurations. It's the distribution I recommend to any of my friends looking to try Linux out for the first time.

I recommend Debian for similar reasons. It might not be as magical as Ubuntu but it still works out-of-box for a variety of common hardware and is built on a great free as in free philosophy.

I use Notepad++ all the time and I've never had any problems at all. Granted, I don't use many of its features, I mostly just edit plain text. Its select by columns feature is useful though.

I don't enjoy using software that's difficult to learn or use, which most of your examples seem to be. (I haven't used "Everything", so I might be wrong about that one.)

Notepad++ used to cheese me off in a previous job where I was basically forced to use it because it couldn't even draw drop-down menus correctly. Ugh. Terrible UI.

"Everything" really is that simple. Point it at some folders and go.

Folders? It's extremely quick to index whole drives, so I'd just let it do just that.

True. That is what is does by default, and does it well.

If we're talking windows software, since moving on I really really miss Irfanview, it's ridiculous for how long it's been actively developed by one person. It's featherweight, does its job admirably and has a myriad of advanced options when - and only when you need them.

If you've any latex pointers I'd appreciate it :)

I used latex to write a paper for the first time last week, and while i thoroughly enjoyed it, i'm fairly confident there were lots of things I could've done better.

IME, the most important key to Latex is setting up your environment so you can have a fast turnaround time between writing some markup and seeing what it looks like (essentially, getting a "Latex REPL"). There are a bunch of different ways to do this, you'll have to pick what's best for you. On Macs I tend to use Sublime Text (substitute with your editor of choice) with a macro to invoke pdfTeX; on Windows I use TeXstudio which has live preview support. There are other ways; do whatever's best for you.

The second most important thing I've found for latex is setting up macros. In TextExpander/AHK I have several dozen Latex macros set up, like

  \tbl3 => \begin{tabular}{ l | c | r }
             a & b & c \\
With a bunch of variants for different styles (full borders, etc.), column numbers, etc. Once your macros have become muscle memory, writing Latex speeds up considerably.

On Linux, I do the following:

  while inotifywait *.tex; do sleep 0.2 && pdflatex main.tex && killall -HUP mupdf; done
This will, when a .tex file is written, wait a moment until all disk IO is done, then run pdflatex and trigger a reload in my PDF viewer (some also do that automatically when the .pdf file is changed).

The only annoyance is that big .tex files (esp. Beamer presentations) may take long to compile, which interrupts the flow. But in that case, it helps to distribute the sources into multiple files and to comment out the source files that are not needed at the moment.

inotifywait is fantastic, used it lots of times. Good idea to use it for TeX too!

For emacs users I strongly recommend whizzytex + advi (at least if you find advi in your repos; it's somewhat painful to build advi on your own.) Almost as good is emacs + auctex - the first C-c C-c compiles the file, the second brings the document up in a dvi previewer with the page "flipped" to whatever you are working on. Both setups allow inverse search - click somewhere in the dvi viewer and your emacs cursor is moved to the corresponding source location.

Yeah, that makes sense. I'll make sure to do that. It was kind of time-consuming typing out the couple tables I did add.

I used latexmk which watches file(s) for changes and rebuilds with pdflatex. It was nice, but made my laptop run real hot, and inotify never really works very well.

Which ST plugin do you use?

Not OP, but I've had good experiences with La​Te​XTools[1].

[1]: https://packagecontrol.io/packages/LaTeXTools

Use makefiles and git with LaTeX. Use \input{} to structure large documents as a main file that includes smaller ones. Keep all your BibTeX citations in one large .bib file (under git) and symlink it into the current directory for every new document; it makes bibliographies so much easier.

PDFLaTeX makes it incredibly easy to keep all your graphics in PDF files; it makes them so much nicer to deal with. Inkscape is great for making vector graphics for use in LaTex; keep the source code of the graphics in SVG but save as PDF for LaTeX to use (tell Inkscape to export only the drawing to PDF, not the whole page, and you'll never have to crop or resize your graphics ever again).

Finally, use a modern TeX like XeTeX that directly understands Unicode characters and TrueType fonts.

Oooh, I like the .bib idea. I might steal it and use it for select things---I decided it'd be a good idea to go back (sorta) and finish my BS, so creating one for each class might be a very good idea.

Import as .pdf not .svg? Got it. It was tricky fiddling with percentages and stuff to get the .svg to fit properly (and look decent).

Thanks! I'll look into XeTex.

I second git and Make, but I'm not sure I agree with the single .bib file thing. That works if you're writing a lot of documents on the same subject that use many of the same sources, but that's a very specific use case.

IMHO the best TeX tutorials on the internet are written by some Helpdesk guy on his blog:


I'm not affiliated in any way with that site but the pedagogy is very approachable. Also it helps to use a site like WriteLatex.com or ShareLatex.com to do the hard setting up part when you're just starting out.

Edit: I see he is no longer a helpdesk guy, and his blog's tagline is (unfortunately) no longer "I will not fix your computer."

That looks great, thank you for sharing!

The only LaTeX link you'll need: https://tobi.oetiker.ch/lshort/lshort.pdf

I've recently discovered Quiver. Mac only, but open file format spec (if you are feeling particularly energetic). But it certainly is the nicest thing I've found for doing LaTeX.

I've written two papers in it now, so I'm not a grandmaster yet either. If you managed what you wanted to do and enjoyed it, you probably know as much as me.

I'm not sure there is really a wrong way to use it. If you google every little thing to find a good solution (not manually inserting and formatting references for example), I don't think there is too much to be done better. At least, to my beginner's eyes it doesn't seem like it.

I'm pretty weak at LaTeX but if you haven't used macros and rerender-on-write I'd strongly recommend it

The latter is something i achieved with sleep_until_modified.sh and a shell loop. Pretty rudimentary but functionally equivalent to modern webdev reload-on-write behavior. HUGELY beneficial to my learning latex syntax and behavior and formatting nuances

Many resources have been suggested, but not the guide written by the creator of TeX and computer science legend Donald Knuth: http://www.ctex.org/documents/shredder/src/texbook.pdf

Adding to the list of editors: LyX is a great cross-platform editor that I've used. https://www.lyx.org/

Use TeXstudio to write your documents. It is an IDE with autocompletion and contextual help and an integrated viewer. Made writing LaTeX so much easier, as it also has wizards to generate repeating boilerplate. I love Latex, especially mathematical notations are a breeze.

I would recommend trying www.writelatex.com.

Does anyone know how everything work? Does it hook into the NTFS filesystem with special apis? The indexing is insanely fast. I wonder how they make it happen.

It reads the NTFS Master File Table (MFT) which contains records for all files and folders. It only does this the first time it runs (or when you manually tell it to rebuild the index). It also uses the NTFS USN journal [1] in order to update changes to its index so that it doesn't need to read the MFT and rebuild the index every time it runs.

[1] https://msdn.microsoft.com/en-us/library/windows/desktop/aa3...

It's actually really ironic that it's so much faster than Windows' own search.

Vim departs from the reliability camp once you start adding a bunch of plugins. But as a raw editor, yes -- it's solid.

Then you're using the wrong plugins. I have about 12 here and can't recall any stability problems.

Reliability != stability (in this context).

I can reliably ssh into pretty much any server and use default vim. I cannot rely on a given plugin to be installed on the server. The more you customize vim, the less universal your knowledge of vim becomes. It's not a big deal to learn some plugins, but it is worth bringing up if people are talking about the ubiquity of it.

Thanks for the tip about "Everything". Tried it for the first time now and, oh boy my life just changed. This is incredible! I'd like to see that quick ASCII search implemented into Windows. The included webserver is also fantastic.

> Edit: Another Windows tool is Notepad++. I have not seen the likes in Linux when it comes to robustness.

It couldn't even open a 1.2 GB text file when I tried it yesterday. On a 32GB system. Seriously?

It's been a while since I last used it, but I thought it could handle files that big. At least on systems with 2GB ram or so, it would open files of hundreds of megabytes just fine. Not sure I ever tried anything over a gigabyte, but I might have.

Latex does not belong on the list. I have not been using it as long as many, but it does not meet OP's description at all. It's entire premise is to put the focus on writing, but at that it fails miserably.

Left to over 30 years of growth outside of its intended use case, LaTeX proper does nothing you would need it to, and the packages that you use with it are horribly fragmented. Maybe Latex is good at the things it sets out to implement, but those things aren't what I or anyone else uses it for (creating publication-quality documents). So in considering latex we are forced to also consider the environment of libraries it exists in.

LaTeX brings all the problems you had in the Windows 2000 era of programming into document creation. All your favorites like misleading compiler messages, dependency hell, choosing a compiler, knowing whether or not you have run the compiler enough times to produce a final document (!!!), bad compile environments, inconsistent naming, inconsistent syntax for passing parameters to library calls (!!!), GOTOs.

There is no way to write semantic latex for most documents where you would need it. Here's a fun project: find a way to reference the same footnote or endnote multiple times throughout a document in a way consistent with how you reference anything else (that is, using \label and \ref). Some arcane technicality in the way the counter is set up prevents you from doing this. Instead, you have to create your own global counter, write a function to maintain it, then use this function in lieu of LaTeX's implementation of footnotes.

Every time I want to do anything other than add words to my document, I have to think about whether I want to use Latex's meager facilities, facilities that I had to write, or facilities that someone else invented, then worry about all the quirks in them. If I want to add a table to my document, I need to decide whether it should be a `tabular', `tabular* ' `tabularx', `align', `array', `eqnarray', or `matrix'. Someone has told me once that one of these is very bad and should be avoided unless absolutely necessary, although he didn't tell me why, and I don't remember which one. If I want to make a cell span two columns, I have to remember whether that is the `multicols' package, or the `multicolumn' package. If my table gets too big, I now have to hard-code a split myself, or repeat the entire process and convert my table to a `longtable'. I hope I don't have to wrap anything in a `minipage'.

It baffles me that thinking about these things is prerequisite to creating a document.

The attitude that 'LaTeX is easy' is perpetrated loudly by people that haven't had to use LaTeX very much. It is only tentatively saved by the comprehensive (sometimes, if you're lucky, even readable) documentation of all its quirks.

I am not going to stop using Latex, but no one will ever get me to say that it's easy.

I fully understand where you're coming from. Its syntax is weird at times and everything has to be magically done with yet another package, very few things seem to be built in.

On the other hand, I don't know another environment that makes it as easy as LaTeX makes it. Markdown is easier but far from powerful enough; HTML is nowhere near as easy and just not really made for it; and WYSIWYG editors just suck as a whole. LaTeX seemed to me as everything I was looking for, even if the syntax and methods are from the eighties.

Additionally, enough people use it that support is also not an issue. There are almost certainly other languages that do a similar job in a modern way, but the thing is, my girlfriend studies math and she can read/write these documents too. The network effect works in LaTeX' favor here.

When I just want a quick peek at a binary file on Linux I use `hexdump -C filename | less`.

Sure there are hex converters and editors for Linux, but Notepad++ is a text editor that handles binary as if it were just another text file. For example if you try in Vim to edit binary files beyond very simple edits, it'll usually corrupt them. And from `hd file.bin | less` you can't edit them.

For hexdump, I could never remember which switch gives me the format that I want to see. I'm now using xxd, which comes with vim and has nice defaults.

Alfred (https://www.alfredapp.com)

Alfred is absolutely the most game-changing app I've ever been introduced to. I only use it for finding files, searching, opening a page by direct URL, defining words, calculator, translation (via Google), launching apps, and quickly jumping to apps that are already open. It's probably saved me hundreds of hours in clicking around, etc.

I've never purchased the paid version (been using since 2011), but I support them by searching Amazon (results are via affiliate link) when I buy things.

+1 for Alfred. Must have. A few workflows i use:

- FastDiff (quickly diff selected finder files) - Hash - https://github.com/BigLuck/alfred2-hash - Menu Bar Search - https://github.com/ctwise/alfred-workflows/tree/master/menu-... - Recent Items - http://www.alfredforum.com/topic/713-recent-items-42-for-alf... - Strip clipboard text formatting - https://github.com/notDavid/alfred-workflow-stripClipboardFo... - Transmit - https://github.com/ramiroaraujo/alfred-transmit-workflow - Tunnelblick - Synonyms - https://github.com/notDavid/alfred-workflow-synonyms

Just fyi, Shift + Option + Command + V pastes unformatted text.

i don't have that many fingers

agreed. i bet even Mozart would have difficulties positioning his fingers like this ;-) Of course you could also assign another shortcut to this with BetterTouchTool or something.

use a decent OS. I can do it with middle click.

In what way is a middle click dependent on the OS? And in what way is moving your hand away from the keyboard to click a mouse better than simply hitting a key combo?

The OS does decide what to do upon middle-click. In X11 (which handles input events and actions on most desktop Linuxes), middle-click pastes text selection.

Shift+Insert is the keyboad equivalent of middle-click, BTW. Apple (or the ecosystem) doesn't have a monopoly on keyboard shortcuts; in fact, it has been my experience that Apple UIs focus on touchpad usage too much, to the point of completely ignoring and skipping keyboard shortcut support.

By far my favorite Alfred integration is with Dash, the offline documentation viewer: https://kapeli.com/dash

I have an Alfred workflow with a hotkey of COMMAND+OPTION+CTRL+P that searches Dash. I then type whatever it is that I'm searching for and Alfred displays the likely matches sorted by the docset preference order in Dash. It makes me feel psychic and I can't imagine working without it now.

It's the first feature I show people who ask, "Why use Alfred instead of Spotlight?"

Just installed Dash and it's awesome! Thanks

There's a Windows version called Zeal that's great if you're not on OSX.

I've installed Alfred before but just kept using Spotlight. I never saw why it amazes so many people.

What does it do that Spotlight can't?

there is a lot of features in Alfred, but my absolute favorite is the workflows [1]

I use Alfred workflow with dash [2], so i can type "go fmt.Println" into alfred, and jump straight to the man-page.

I also use Alfred workflow with SnippetsLab [3], to open my personal notes in a similar fashion.

    1: https://www.alfredapp.com/help/workflows/
    2: https://kapeli.com/dash
Dash is also an absolutely wonderful app, for having all your coding docs on-the-go. Since I am often without internet access, Dash lets me continue working. It even has offline stack exchange if that rocks your boat.

    3: https://www.renfei.org/snippets-lab/
SnippetsLab provides a very much awesome way of organizing all your snippets of code / notes, etc.

This way of navigating means I have to use the trackpad pretty infrequently.

My only complaint about these tools, is that I'm stuck in Windows at work :-(

For another software I use daily and can no longer live without, it would be tmux.

Would you mind sharing your Alfred dash workflow?

Edit: Found it. For those interested, you need the Alfred Powerpack and Dash installed. Go to Dash Preferences -> Integration & click 'Alfred'.

It isn't so annoyingly stupid like Spotlight. For months, I open a single file called TODO.TXT via Spotlight. I enter T..O..D.. and select TODO.TXT from the list. I don't search for anything else with Spotlight that begins with TOD or even TO. But Spotlight for whatever reason decides that for every second or third search attempt, it must show me an entirely different file than the one I opened a thousand times by pressing exactly these letters.

It is hard for me to grasp how in 2016 a piece of software can be so ignorant to such a simple behavior.

But: It took me a few attempts to start using Alfred. I personally only use it to open files and programs and to search in files. The default behavior with pressing space twice is very annoying if you want to open text files. So I tweaked the settings a bit and now it works for me:

Default Results:

    Essentials: - all unchecked but *Applications*.
    Extras: only check: Folders, Text Files, Documents, Images.
Search within files by starting your search with the word in like "in FOOBAR".

That's what works for me and replaced Spotlight.

I prefer using Spotlight from the command line: https://gist.github.com/senderista/1246300

I use the paste manager A LOT. But that might be only in the paid version.

Ditto. Can't function without the clipboard history.

It can be "taught" to do things. If you want to open something with 1-2 letters you can just repeat yourself a few times (2-4?) and it will learn and remember. Spotlight just does not do this.

That is strange, Spotlight seems to do this for me. I rarely have to type more than 1-2 characters. YMMV.

See my comment above. For me it seems more accurate.

+1 for Alfred. I have Spotlight completely disabled/hidden because Alfred is just faster and more full-featured.

The paid version is totally worth it for how much time it saves me. I also really enjoy the theming and file management features (which are paid only).

I tried Alfred and thought it kind of redundant until one day my sizable collection of PDFs flooded Spotlight's indexer, and I couldn't find any of my apps via Spotlight's search.

Alfred's indexer is superior to Spotlight's, and is much saner in what it prioritizes for viewing over what it doesn't.

I activate Alfred with my caps-lock key. That way spotlight is still in the usual place. It take a key-mapping app called Seil to make it work, but it's really great.

Sometimes I think Chromebooks stole my idea. :p


I use CTRL CTRL, and I have my command and control keys switched, so it's really CMD CMD on the left corner of my keyboard, which is very convenient, but caps lock is a great idea also.

I only use Seil/Karabiner for re-mapping caps lock but they have been pretty reliable for me :).

About the only Alfred feature I use is multiple item clipboard, and that alone is worth the price of the license for me. I'm going to dig into the other uses that folks have suggested here.

I currently use Launchbar, does anyone have any good examples of where Alfred might be better?

What are some Alfred workflows that you'd recommend?

see my comment above for alfred workflow tips

Ah, only runs on Apple OS's, not Windows. bummer.

Total Commander. I've been using it since the first versions that came out for Windows 3.1 and it provided a smooth Windows transition from Norton Commander for DOS.

The changelog goes back all the way to 2002, but it's been there for waaay longer. ( http://ghisler.com/whatsnew.htm )

I hope he continues to make a healthy income from it. It's litterally the best piece of shareware in the world in my eyes, that i've happily bought a license for.

Super Awesome Footnote: I just found out that you can still get the version 6.5, which is every bit as stable as v8.51a, built for Windows 3.1 : http://www.ghisler.com/wcmd16.htm

I've tried the total commander but never got used to it. I used to run norton commander and norton utilities on dos back in the day, and these days I'm still reaching for midnight commander [1] pretty regular when moving files around on my media server and such.

    apt-get install mc
1: https://en.wikipedia.org/wiki/Midnight_Commander

I've seen this program come up a few times in the last couple of years - but every time I look at it I can't see a use case that sticks out. I've looked through the FAQ and installed it and I just can't seem to get why I'd use that opposed to Windows Explorer, 7Zip, and WinSCP.

Can you share why you find it useful? Thanks!

I guess it only becomes a real power tool if you learn to navigate and harness the power of the 2 side-by-side panels by keyboard.

Long story short, let me sum up some of my favorite features:

    - Tab to switch between panels
    - Navigate with arrow keys through the files list 
      (very handy if you have it on 'brief' view, especially since you can walk 
      through whole directories with left/right arrow until you hit the '..')
    - CTRL + F1/ CTRL+F2 to select drive for the left or right panel
    - Using any type of packer (zip,arj,7z, etc) as a directory by just hitting 
      enter on it to see the files inside, view them, extract, add and remove
    - CTRL + Pagedown to navigate even into some packaged files that aren't 
      normally accessible as folders (like .msi)
    - F-Keys with a clear indicator at the bottom to move and copy files, insert 
      to select and move to the next file
    - F3 for an all you can eat file viewer that can switch to different view modes
      like HEX by pressing 1,2,3,4 and doesn't bork on large files
    - F4 launches your favorite editor
    - Hit space on a directory to compute the full size recursively 
    - ALT+F7 for find-in-files and fast file search
    - The most powerful multi-rename tool you could ever wish for in the file menu
    - Built-In FTP Client (CTRL + F) with a favorite list, queue list 
      and resume from queue list.
    - Download any random file (with resume and queue) using CTRL+N (HTTP/FTP)
    - Plugin support to enhance the thing with stuff like SFTP/FTPS support, 
      which you can open from the 'network' drive
    - Background copy for most operations (in it's own thread, and with pause)
    - Double click the file path at the top of the panel for a popup hotlist where
      you can add favorite jump-to spots
    - CTRL + Arrow key opposite to the current panel opens the folder under the 
      cursor in the opposite panel
    - CTRL + UP arrow on a folder opens it in a new tab (which you can even lock to
      persist them or have handy nav points)
    - Numpad + to select files in a folder according to a wildcard
    - Numpad * inverts currrent selection or selects all
    - Pack some files using CTRL + F5 on a selection
There's just so much goodness that this list could go on and on for way too long. Double Commander comes close on Linux, but there's no thing like TotalCMD for me when i'm on Windows.

Just out of interest, what are your thoughts on Directory Opus?


I've not used Total Commander or Directory Opus much, but I figured DOpus was something you might be interested in.

I have no thoughts on DOpus other than: it looks horrible GUI-wise

Absolutely a must-use software. Been using it since 2006, never went back to Windows Explorer.

Stuff I use daily: - extremely quick copy pasting and moving between two folders - filter by extension - dir bookmarks - extremely quick compressing - easy and simple enough file diffs - command line from every folder - fast navigation using smart search of file in current dir - pretty good search within folder - viewer for text files(useful when need to read the last couple of lines from 10GB log file)

It is somewhat more/easier configurable than mc or FAR. I know you can get dozens of plugins for all these actions but totalcmd has the right amount of stuff I need and is not bloated. Been using it for almost 15 years.

I hate the Windows explorer, but WinScp is not bad. Bunch of windows are hard to work with and even slow when moving files.

It has tabs, which is great for development and quickly jumping between directories in the same window.


The two panels allows me to quickly switch also in different contexts. Lots of handy hotkeys are available.

Two __girls__ windows at the same time! What more could you want.

Total Commander is an essential Windows tool.

TC ultima prime is a package with lots of useful Windows apps like Notepad++ included http://tcup.eu

My dual-panel, multi-tabbed file manager of choice has been the free Multi Commander: http://multicommander.com/

Clover is a simple tabbed file explorer that I use daily. It's great for easy access to frequently used folders, and makes it a breeze to move/copy files. Found at http://ejie.me/.

Sublime Text

Files auto save, so a crash, or even accidental close will not cause you to lose anything. Also handles massive files, which is nice. On top of being a nice, very configurable code editor,

Second vote for this.

This is hands-down the best and most reliable piece of software I've encountered. It's insanely flexible (hello, org mode!), and it is pretty much where I live at work.

Almost never fails me. And if a job changes or a work policy changes and I have to switch from Windows to Mac to Linux or whatever, it makes no difference. I clone a repo with my settings and packages, and I'm pretty much done. Maybe change the path to my repls or node, but for the most part, I can be up and running on a new machine and ready to dev in a few minutes.

Absolutely love this, and never have stability problems.

I like sublime text too. but the most recent update seems to have an issue. sometimes when opening a file on linux, I won't see any content rendered unless I resize the sublime text window.

I have that issue with some other apps as well. It's particularly noticeable for me with Terminal windows, which will lose their contents if I drag them to another monitor. I'm not entirely sure that's Sublime Text, I think it might be something between the window manager and the GPU drivers.

Same problem here, I had to switch back to the previous version because of it. Using ubuntu Gnome 16.04.

+1 for Sublime Text. It's one of those things that just works smoothly.

Ancestry.com, both its web app and iPhone app. This is a little different than most other responses in the thread, but I'm absolutely astounded how smoothly it works -- sure, you end up with some weird entries (husband/wife get tagged as the opposite in a marriage record or something), but the more I use Ancestry the more I'm convinced it's the best piece of software I've ever used. I'd break down my amazement into a few categories:

--Discovery. The search function has some weird responses sometimes, but I'm astounded how frequently the "Hints" feature finds documents about relatives that I'd never have found on my own. Ancestry's search has a huge understanding of which names might be mixed up with others -- I once found a census record from the late 19th century that had both a husband AND wife's name incorrectly tagged, but Ancestry found it anyway.

--Intuitive interface. After some initial confusion on the mobile app, it's been smooth sailing. Not only can you pull facts out of documents and attach them to relatives, but Ancestry preserves the "citations" so you can go back and figure out, "hm, how do I know so-and-so's birthday?" or "which facts did I already pull out of this record?" You can also link one record to multiple people in one action.

--An unimaginably broad corpus of documents. This one isn't really the software, I guess, but the amount of data Ancestry has access to is unbelievable. I figured out my great-grandmother had a child as a teenager (with a man who was not my great-grandfather) that nobody in my family ever talked about. I found the full text of a 300-year-old will from my sixth great-grandfather while I was sitting on my toilet.

Anyway, it's good.

Synergy. It's a keyboard and mouse sharing client/server application that runs on every platform I use.

I don't know if better alternatives exist because it has just been rock-solid for the last 12 years that I've been using it. I've used it in multi-monitor and machine desktop setups (e.g. an Apple laptop paired with a Windows desktop and linux desktop for enterprisey cubicle development), as well as to let me drive my gaming and media PC from my couch using an Apple laptop.

I was a bit bummed that the pricing model went from free-as-in-beer to free-as-in-speech, but couldn't be happier to pay $10 for a lifetime license.

I feel it belongs in this thread because even when I've neglected to upgrade various machines, or upgraded OSs on machines with the application installed, it just continues to hum along. I can count on one hand the number of times I've had to deal with any problems in any capacity.

Eh, maybe it's gotten better since the last time I used it, but I found it to be pretty unreliable.

Agreed. I started using it recently, after previously using x2x, and I keep hitting https://github.com/symless/synergy/issues/9 :(

Interestingly, I switched from synergy to a self-made ssh+x2x wrapper. Two reasons:

1. Ease of install; and 2. Backwards compatibility (Ubuntu 14.04's synergy just couldn't work with Arch's)

I try Synergy every year or so. Depending on how my home setup is. Sometimes I'm wanting a lot of machines, then I want to consolidate. Then I go back to more, etc.

I've never found it to be reliable in any configuration. I've bought it at least a couple of times on different accounts. Love the idea, and when it works, it is fantastic. But I can't say that it is reliable at all.

I just purchased this recently (having used it ages ago) to drive a second computer on my desk.

My problem is that once the guest machine goes to sleep, I can't seem to wake it via Synergy. Is this expected behavior? I have WoL enabled, so theoretically I should be able to just move my mouse over to the sleeping monitor to wake it up.

Unless synergy has explicit support for WoL (it didn't last time I used it, but it's been years), it won't just work.

You'd need to patch the synergy server to send a WoL magic packet[1] to wake up the client whenever it sends a message that might hit a client that's asleep. (some systems might support something other than the standard magic packet, but I don't know of anything else that works consistently cross platform.) Might also need to look at making sure the client connection comes back up clean and have some delay to make sure it's ready to receive whatever message started the process, and doesn't timeout while waking up.

[1] https://en.wikipedia.org/wiki/Wake-on-LAN#Magic_packet

Darn, that's what I was worried about.

I wouldn't have anticipated it, but this is an critical feature for me. Without WoL, I need to have a mouse/keyboard attached to the guest machine, which completely defeats the purpose of using Synergy.

If you just need to be able to wake it up manually, use something like etherwake to send the wakeup packet. It's not integrated w/ synergy, but is the WoL equivalent of "wiggle the mouse and wake it up."

IntelliJ Idea is head and shoulders better than many other IDEs, particularly Eclipse in the reliability department.

Many of their products are. I'm constantly amazed at how well PyCharm is developed, just yesterday saw how well they support git submodules for projects and synchronous commits.

I'm not a big fan of IDEs, but IntelliJ is really good. I just hate how heavy it is.

Use eclipse for a while, you won't think intellij is heavy anymore after that.

Ha, I just had this experience recently. It's amazing how quickly I got fed up with Eclipse, and how much it made me appreciate IntelliJ after I switched.

I second you on that. I only started using IntelliJ when I started heavy Java development. IntelliJ and its sister tools are a great help if you don't have the time to get into the nuances of whatever language you're using.

Care to give some examples how? For me, Eclipse has remained very stable. Maybe we are using them for different languages and/or things.

I worked with Eclipse for a few years and found it was a constant source of stress, refusing to stay synchronized with maven, crashing, having to restart it, etc.

TL;DR +1 for IntelliJ

I was hating maven, until I started using IntelliJ. I don't remember ever Eclipse going to zero error count on a maven project whereas the project would just compile if maven was used outside of Eclipse.

IntelliJ just works. FTW it has Eclipse key-mappings as well.

"A UI error has occurred trying to display a UI error" or something equally unhelpful.

When eclipse gave me that error message I immediately wrote it off as useful software.

Also it is dog slow compared to intellij

When I used it for Java, I often would have to use the menu option to restart. Seriously .. a menu option to restart???

The stability wasn't as bad as the slowness. Also, OSGI seems to be a philosophy or cult. Things are just generally complex and bloated.

Android Studio, based closely on IntelliJ, has this menu item on the OSX version:

File | Invalidate Caches / Restart ...

IntelliJ lets you do a lot more from the keyboard. It's suggestions for code completion are very useful. It's amazing to see the code almost writing itself, several times faster than you can type!

It even has a plugin that will tell you the key commands for any feature you use more than 3 times.

Oh! Link please?

i think its called 'key promoter'

I had some issues when I used eclipse, especially back in 2009 when I was forced to use perforce.

It is nice but I don't think I would call it reliable. There are crashes, it took quite some time for stuff like column editing to stop corrupting the files etc. I think they are even less stable than a recent Visual Studio (ah the good stable days of 2008 are long gone)

I wound up using java for a couple of courses at uni... mainly for the networking library. I used to just compile it via the command line because Netbeans and Eclipse pissed me off too much.

I was never much of an IDE guy but I've been using and seriously enjoying PHPStorm and RubyMine lately.

it has plenty of warts, it's great but I wouldn't say it's reliable.

Firefox. And it has been for years, I remember when I downloaded a zip file with the Phoenix browser, you had to manually enable flash, and even with such an early version, it was magic. If I remember correctly, it even had tabs.

Then the add-ons and extensions, which enabled you to do something entirelly different or bring back an old behaviour. I still use oldbar since the «awesome bar» might be too awesome for me. Also, the tabs groups, if you are like me, a hoarder of to-read articles, and leaving things for later, you can have a clean slate without losing those tabs.

And if you want to look behind the scenes, you have about:config in which you can bring behind some of the old features.

And it's everything open source! I know Firefox has suffered a lot because it's seen as slow, but I open Firefox once a day and never have complained about it.

This might sound nuts, but if you're using LabVIEW to control National Instruments hardware, and you don't write bad code, you've got a surprisingly fast and powerful system available at your hands. You can measure, drive, control, whatever verb for whatever piece of equipment you're using, with surprising speed, accuracy, and reliability.

It's a pretty expensive stack for doing some pretty particular weird stuff but I kind of love using it. I would at least say that the prices for the hardware aren't too much higher than the competition, and the software side is way way better than the competition. I have never met a person not employed by NI who liked NI software AND equipment as much as I do. Honestly, I don't think I've ever talked to someone who used it the way I do, though...

Swear I wasn't paid to write this. Figured people might have written this stuff off a long time ago and I wanted to toss some respect its way.

Goodness gracious, I love LabVIEW. It's so gratifying to be able to watch the data flow from VI to VI, checking what arguments are passed. I used it for FIRST Robotics, and writing code with LabVIEW was a dream compared to its hobbled Java-1.3-like counterpart.

Interfaces are great, in terms of putting together "75% tools" (ones that aren't perfect or polished, but get the job done). Being able to pull all sorts of data from an active robot and relay it to the users in an easy-to-design interface was awesome.

I still wish there were a good open-source version of some parts of LabVIEW.

(I also was not paid to write this. I just loved the dev environment. I never looked at data quite the same way again.)

LabVIEW was my first programming gig, back in high school. For the unfamiliar, it's a data-flow programming environment designed to drive data acquisition hardware. The programming interface is almost entirely graphical, in which you draw something between schematics and a block diagram; the usage interface looks not unlike laboratory equipment.

I always loved how it made such difficult things so easy, while other languages' "simple" matters like loops required mental gymnastics. It's a great tool for its job.

My personal experience: yes to the NI hardware, but no to LabView. I used LabView during my graduate work and as someone who came from a traditional programming background, I struggled with it. More recently (almost a decade later) I had the opportunity to migrate a LabView project to Measurement Studio (NI's .NET libraries for interfacing with their H/W) and it was night and day. The NI stack works as it should and it is so much more manageable with C#.

Beyond Compare. An amazing/cheap file comparison tool. - http://www.scootersoftware.com

What's particularly great about this comparison tool is how fast and efficient is can asynchronously compare and synchronize large sets of remote files whether it be SMB, FTP, SSH/SFTP. You can also compare archives to folders and the custom viewers for comparing things like images are a nice bonus.

I had forgotten about this tool, and having worked mostly on Apple hardware for the last 5 years didn't realize they had a macOS version. But when I used it on Windows, it was phenomenal.

It's SFTP support in the late 90's was perfect. I had to add this to wine so I can continue to use it on Linux and OS X.

There's a Native Linux version!

Came here to say this. It's an amazing tool. Set it as your git difftool and it will change your life. I switched to Mac about 8 years ago and ran it in Wine for a long long time until they finally released a Mac version. Their diff algorithm is so damn perfect no other diff tool compares, and I've tried SOO MANY. It lives up to its name. It's an amazing tool that's crossed platforms with me, and I'd rather give up my left hand.

Interesting tool... I personally use Kaleidoscope (Mac only) and I really like it: http://www.kaleidoscopeapp.com

That's one piece of software that has almost everything right.

It's a very good tool.

Meld is the equivalent under Linux.

Meld is not even close to BeyondCompare. I would also say kdiff3 is better when looking at all my Python merge conflicts in the past. Nevertheless BeyondCompare is on another level when looking at extensibility.

Meld has an osx app now too. It's solid.

The Linux kernel! It runs just about everywhere from dishwasher to modem to thermostat to PC to mainframe. One size fits all? Well, not if you want to optimize to the last bit, but within a very wide spectrum it actually does.

Apache server. I know it is not a hip choice, but I've used it for more than 15 years to serve static and dynamic websites. I've changed tech stacks from perl to php to python used different data bases and Apache always just worked.

Same and I've used it for a similar period, I look at alternatives but since apache has never let me down, is ridiculously stable and I know it well I've simply never seen a reason to leave.

I was in this camp for a long time until I tried to get mod_deflate and mod_socache_memcache to play nice together and the wheels came off. Moved to Varnish (fronted by HAproxy) and could not be happier!

As a MS stack dev:

Chocolatey (https://chocolatey.org/)

VsVim for Visual Studio (https://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3...)

Everything (https://www.voidtools.com/)

Wox (http://www.getwox.com/)

and of course PowerShell

Mhhh, VsVim is probably the worst implementation of Vim in an IDE in my opinion.

Vrapper for Eclipse, does the job, the Vim plugin in Intellij sucks as well but still better than VsVim.

The Xcode version is ok.

Few versions ago, there was that nasty bug in VsVim where it would throw an exception if you save an unedited file ...

Hands-down winner for me is Radio Tray. Simple, works as advertised, and it's running pretty much 100% of the time my computer is on. It has never crashed. Very lightweight too, and the config file is simple enough that a quick glance at it in a text editor is all you need to make customizations faster than using the GUI preferences.

A very close second is the ext4 filesystem, but I don't know if this qualifies as software. I've done all kind of stupid things when formatting or unplugging drives and have never lost data. Full-disk encryption on everything and never a problem. SO reliable. I was doing a full backup to two separate drives at once, one external and one SATA internal. The power went out and I wasn't using a UPS. When the power came back on, everything was still fine but I was worried about data corruption so I plugged in yet another, my last good external drive with a known good copy of everything to compare against. Then the power went out again! I didn't even shout or curse, that's how mad I was. No data loss though, everything resumed from mid-backup and happily continued.

RabbitMQ. It just works. We're operating with in the normal use case for it. We turn it on, transfer 50k or so messages a day, then forget about. The memory is fairly low, CPU is low and constant. The connections for month or year long clients stay open.

I'm actually a fan of rabbitMQ generally, but I'm not sure I'd put it in the category of notoriously reliable software. It can throw away acknowledged writes (afaik https://aphyr.com/posts/315-jepsen-rabbitmq has still not been fully fixed).

50k messages/day is pretty low throughout and under that load it should plod through just fine.

Under much higher loads than that (10's - 100's millions of messages day) I've seen it die in a pretty ungraceful manner. At that scale, Kafka is a good candidate.

Under those high loads I've seen every single MQ fall over like a house of cards. At lighter loads you can get the job done with other tools that scale but with a little bit more pain. Leaves me super skeptical about them on the whole.

We push on the order of ~a billion messages / day into one of our Kafka clusters without having too much scaling difficulty.

Indeed. We have completely replaced all queues with Kafka. In fact, I'm not sure what it would take for us to even try anything else at this point.

We process at least 30 million messages a day with sidekiq and had to start sharding message queues for different purposes. At some point it's not worth trying to optimize the messaging.

In my experience, RabbitMQ is close to the opposite of reliable.

When I think of reliability, I think of Postgres: it works well, and it's hard to make it not work reliably. With RabbitMQ, it's hard to make it work reliably.

We had to use a message queueing system for school, they recommended some Oracle thing. Other systems were allowed though, and most of the people chose RabbitMQ.

Can confirm, it's extremely easy to make Python, Java and PHP talk to each other. I haven't found anything it can't do yet, and it's not hogging resources either.

We poked RabbitMQ, Gearman, SQS, a few others, and never got the reliability we demanded. To be fair, we're handling in the order of 50 million messages a day.

Ended up just writing a simple file system based queue in Golang and it's working spectacularly. Just let the SSD do the work. Couple hundred loc all told. We rarely crack 10-15% cpu and memory use sits statically at around 30mb.

I've gone through a few things too, eventually settled on Redis.

Would be interested in seeing your queue, if it were public?

I'd love to make it public, might be a while with company politics being what they are. We have a bad habit of not even sharing with other parts of the company.

50K is nothing to talk about, really. Over a workday, that's like 2 a second. Even at 5x that much, it's enough for many uncached random hard disk IOs per message.

1Password on Mac - phenomenal UX, all around joy to use

Not as pleased with the Windows version, but it's serviceable

Starting from the top, I think you're the first person to mention user experience.

Man, this topic has done nothing but remind me how far I am outside the "software development mainstream". Vim? Git? Are there seriously that many developers who enjoy using such unusable software?

Good UX for power-user tools is different from good UX for casual-user tools.

Vim is highly usable as a power-user tool. Its logical and has a few primitives that can easily be chained and built-up into larger features.

The difference between vim and, say, Notepad++ as "programmer's editors" is that one is easy to start with, but you soon reach a limiting level of competence, beyond which your tools cannot take you. With vim, this does not happen, at least not for a very long time. Such tools are indeed hard to learn, but, properly used, they amplify your skills far beyond what you can do with "consumer-grade" software.

A child with a keyboard that has prerecorded music on it has much more fun with it than they would with a grand piano. And that's perfectly fine! However, if you're a professional pianist, you're going to want to go the Steinway route, even though it takes decades of practice to really make sense on one.

(Perhaps violins would make more sense as an example?)

I never got my head around using Vim rather than an IDE, but I can say I genuinely enjoy git. It's very easy to get a lot of value out of it without needing to learn the esoteric details by just keeping to a simple workflow planned out by someone who understands it better. Of course, it was the first version tracking system I'd worked with, so I have nothing to compare it to. It just made me incredibly happy after working on a very large system with no version tracking beyond a boatload of comments referencing a date and ticket/project.

I guess different strokes.

For me, Git is the worst software I've been compelled to use since Lotus Notes. I think it's terrible. I would never use it if I didn't absolutely have to as a condition of employment.

Interesting. I wonder if it's a usage difference. A hammer can be a terrible tool if you try to put in screws with it. It works best when the workflow is designed around it and the user only needs to remember a handful of commands to do specific tasks.

> Git?

It's relative to other VCS systems in this case.

> Vim?

As a primary editor, I get the dislike and confusion from non-power users, but for a command line editor, it's just so much better than anything else.

Yep. vim, git, and spacemacs are among some of the major tools I use and generally enjoy using them.

I generally like 1pw but haven't forgiven them for not yet fixing the opvault security hole on android. Must be about a year now. Raised it with support when a big Android update came along a few months back. "Subscribe to 1pw for families" was their suggestion.

I'm actively looking at alternatives now.

Absolutely. I used LastPass for a long time when it first came out. Then I tried Dashlane to see if it sucked less (it does in some ways, but still sucks). 1Password is a joy to use compared to those two.

I want to like 1Password, I really do. But it just fails to auto-recognize too many login pages for sites I visit frequently. And having to manually click the Chrome extension and pick the login credentials is pretty annoying.

It's unfortunate that their browser extensions were an infrequently-upgraded, bloated mess (or at least they were before I stopped using it)

Their browser extensions are my favorite part of it! If you haven't used it in a while, you have missed a _lot_ of updates.

Well, that and I am no longer on Mac. Still running the Windows version, though... maybe I'll try them again

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