[HN Gopher] Ask HN: What are your favorite examples of elegant s... ___________________________________________________________________ Ask HN: What are your favorite examples of elegant software? design or otherwise Author : joshbochu Score : 154 points Date : 2022-05-02 02:47 UTC (20 hours ago) | bennysomething wrote: | You might like the book "beautiful code" | Sohcahtoa82 wrote: | mIRC feels elegant by today's standards. | | A full-featured IRC client for Windows that includes an entire | scripting language and yet it consumes less RAM than calc.exe. | sedeki wrote: | Hah, mIRC was a long time ago! I'm a bit nostalgic. :) | | But is it really true that vanilla mIRC consumes less RAM than | calc.exe...? | | That'd be impressive, if I could believed that! | Sohcahtoa82 wrote: | Just popped open Task Manager... | | calculator.exe is at 74 MB working set, 24 MB Memory (private | set), 50 MB Memory (shared working set), 48 MB commit size. | | mIRC.exe is at 31 MB working set, 13 MB Memory (private set), | 18 MB Memory (shared working set), 38 MB commit size. | | Doesn't matter which value you use for "How much memory does | this program use?". mIRC is smaller in all of them. | daveloyall wrote: | That's not `calc.exe`. I think windows doesn't ship with | calc.exe anymore. The fair comparison would be the last | version of mIRC that was current when the last version of | calc.exe was shipped. I don't believe that mIRC would use | less RAM than that... Certainly not when you were actually | USING it! (including reconfiguring the size of your | scrollback, for example..) | layer8 wrote: | You can still get it from https://win7games.com/#calc | (via WinAero). | jasfi wrote: | Nim. It's just so quick and easy to write high performance code. | That's why I'm writing a web framework for it, soon to be | released: https://github.com/jfilby/nexus | whoibrar wrote: | Standard Notes. | | Simple. Free. Open Source. E2E encryption. Basically, No frills. | | Their idea is to make software not with most features but the one | that stays until the next century. | | They have a great blog on this philosophy. | https://standardnotes.com/longevity | HermanMartinus wrote: | Bear Blog is simple to use, understand, with no frills or client- | side JS. https://bearblog.dev | layer8 wrote: | Self promotion is off-putting in a thread like this. | nathias wrote: | vim | throw10920 wrote: | Emacs - although there's a lot of accumulated cruft in the form | of whacky APIs and elisp functions, the _design_ of Emacs is | stunningly effective. The way that minor modes and keymaps are | composed to customize the interaction mode for each individual | buffer is clever and beautiful, to name just one thing out of | many. And, as janky as elisp is, it 's one of the few extension | languages that's actually good at its job, and the Emacs elisp | API allows you complete freedom over virtually every aspect of | the editor. Unironically, Emacs is _not_ a text editor - _it 's a | toolkit for creating text-oriented applications_. | | Forth, Lisp (Scheme, in particular - I love CL but it's the C++ | of Lisps), and Lua - three languages that take a small set of | elegant primitives and synthesize them to give you incredible | power. | | Remember the Milk is a task-tracking SaaS that is one of the few | pieces of software that I actually _like_ , which is especially | impressive given that it's proprietary. Cheap, fast, effective, | and with a UI design that continually impresses me with its mix | of intuitiveness and ergonomics. | type0 wrote: | BEAM (Erlang VM) | jdauriemma wrote: | I don't see Airtable here yet. That team managed to make | relational databases user-friendly to a consumer market without | compromising the core features a power user might expect. Hats | off to them! | Mister_Snuggles wrote: | Monument Valley and Monument Valley 2[0]. | | They're games, and relatively short/easy, but it's beautiful and | elegant. | | [0] https://www.monumentvalleygame.com/mv2 | eps wrote: | That's cheating ;) | | There is a metric ton of elegant games. It's the elegant | mundane software that is much more rare and therefore | interesting. | dustractor wrote: | Projects developed under a BDFL: blender (ton) vim (bram) and | python (guido) | _virtu wrote: | Ecto the database driver for Phoenix is probably the most amazing | piece of software I've used. Elegant dx, performant and just | enough of an abstraction on SQL. | | [1]: https://github.com/elixir-ecto/ecto | pphysch wrote: | AWK | | Match this, do that. | bajsejohannes wrote: | Redis. The interface is quickly obvious using telnet (which makes | all clients pretty obvious). The documentation is both succinct | and complete. All operations are listed with their big-O | notation. | joshbochu wrote: | Any implementation detail you could please share? | phoehne wrote: | After 50 years it doesn't seem like it, but C has managed to | survive this long because it's a solid all-round player from the | bare metal to web servers. It's simple enough that you could | probably implement a fairly capable C compiler in assembler. | tenebrisalietum wrote: | C has managed to survive this long because of: | | - Unix and its inertia | | - Licensing of Unix allowing it to proliferate to the masses | and being used for education | | - because it is simple enough that a compiler can be quickly | brought up for any new ISA that appears, as long as it looks | enough like a 70's-80's CPU architecture enough for pointers to | work. | | Elegant? No. | | - Making pointers and arrays synonymous is elegant only from | the CPU's perspective. | | - The pointer syntax sucks. | | - Casting does weird stuff sometimes. | | - Bool - how hard is it to get true and false right? | | - Everything being an operator leads to the confusion between | assignment and equality which is inelegant. It was cute in the | 70's when you had limited disk space but sucks now. | | - `void *` being used for function pointers is not elegant. | | - Threads and any notion of multiple CPUs doesn't work well | without a lot of libraries or help. | | - An elegant language would have not cared about the underlying | CPU memory model, but C had to be enhanced for 16-bit x86 | segmented memory models. | | - If you are using intrinsics or whatever to generate assembly | opcodes (e.g. vector instructions) because your language | doesn't support them, you are surpassing the limitation of your | language in an inelegant way. | | - An elegant language makes things like the IOCCC impossible. | Comevius wrote: | Those damn C preprocessor macros. You have to become a | compiler to understand C code. The elegant metaprogramming | approach is what Zig does with comptime. | t-3 wrote: | > - Bool - how hard is it to get true and false right? | | I think this is actually much more complicated than it seems | at first thought. There are a lot of different ways to | represent booleans, each with their own advantages, and then | the hardware has it's own ideas that might need to be | considered. I'm not sure that there's any way to do bool that | doesn't lead to pain somewhere. | ducktective wrote: | fzf, dmenu, dunst, curl, jq, pup | JFKKFJ wrote: | MrScruff wrote: | Sidefx Houdini | jjice wrote: | I guess my definition of elegant would be software that has | fantastic UX and just works and works so well it boggles my mind | how well it works. I'd also extended that to include a | foundational core that all other parts can be built off of. In | that case, I'd go with vim. I'm not even a huge Vim guy (use it | for notes and remote stuff, but not my primary editor), but the | concepts are simple and oh so powerful. It's just building blocks | on top of text editing. | | Pipes in Unix as a concept are also a great abstraction. A bit | dated, but still every powerful today. | | Files in Unix as well. Some people have gripes which are fair, | but the idea that a device, a file, and a socket are all accessed | via the same API is fantastic. Of course there are issues, but | it's generally worked really well for me. | f0000 wrote: | Vega-Lite and Altair | | https://vega.github.io/vega-lite/ https://altair-viz.github.io/ | spacechild1 wrote: | Lua | abcd_f wrote: | Inheritance through table extensions is truly an elegance in | the eye of beholder :-) | orhunp_ wrote: | `pass`, no cap. | | passwordstore.org | kretaceous wrote: | Vary random but these are stuff which impressed me on first try | and never let me down: | | Kitty, the terminal emulator by Kovid Goyal | | wouter, a minimal JS routing library | | espanso, a text expansion program | | KDE Connect | | Tailscale | | The last 2 together | | curl | ohiovr wrote: | curl and wget are fantastic! | throwaquestion5 wrote: | > Kitty | | Could you elaborate on what do you feel is better or makes you | more comfortable using kitty against any other random terminal? | | I also vouch for KDE Connect. Painless to use after installing. | Very convinient for file transfer | petepete wrote: | I love Kitty because it does the things I think are important | really well.. | | It's well-maintained, extremely fast, always responsive, easy | to configure, supports ligatures and IBus. | dragontamer wrote: | Stockfish -- https://github.com/official-stockfish/Stockfish | | Some of the best C++ code written. Extremely clear and concise. | Chess-AI is a bit complicated but the source-code + comments | seems to inform the programmer where all the problems are. | caraboga wrote: | NetBSD and OpenWRT. These platforms build across archs relatively | easily and their configuration interfaces are pretty transparent. | spacemanmatt wrote: | PostgreSQL | chrisweekly wrote: | https://every-layout.dev - not just the ideas it conveys, but the | site per se too. | throwawayboise wrote: | Diagram!, by Lighthouse Design, for NEXTSTEP. A drawing tool that | featured "smart links." I believe it pre-dated Visio. Later | cloned as OmniGraffle by OmniGroup. | archielc wrote: | Norton Commander - | https://en.wikipedia.org/wiki/Norton_Commander. Not sure how | elegant on the inside, but it comes from the era when software | development was not so fast paced. And the fact that it inspired | so many spin-offs (just to mention few that I personally used: | Volkov Commander, Midnight Commander, FAR Manager, and my | favourite - DOS Navigator (it had spreadsheet!)). | Gualdrapo wrote: | Regarding code elegance, OpenBSD[0] surely pride themselves in | their code correctness and how they make it clean and | understandable. | | Another example might be my favorite text editor, vis[1]. | | [0] https://www.openbsd.org/ [1] https://github.com/martanne/vis | PascLeRasc wrote: | Spotlight. Everything about it is really well-thought out. I use | it dozens of times every day to convert units or hold strings or | check the weather. | 2143 wrote: | Taskwarrior. | enriquto wrote: | gnuplot | | Being able to just plot sin(x) blew my mind. | | More seriously: cholmod | nderjung wrote: | We put a lot of effort and consideration into the architecture of | Unikraft[0][1], its elegance towards modularity and abstraction | is the reason why I joined the team to help develop it. :) | | [0]: https://unikraft.org/ | | [1]: https://github.com/unikraft/unikraft | phkahler wrote: | Solvespace (CAD) | | https://solvespace.com/index.pl | | A single executable of about 6MB with pretty significant | capability. | | The source code is pretty clean as well. | otikik wrote: | Creating a GUI Interface in Visual Basic to See If I Can Track An | IP Address | | https://www.youtube.com/watch?v=hkDD03yeLnU | saikatsg wrote: | Sublime Text | rubyist5eva wrote: | Boop.app for mac, also both Sublime Text and Sublime Merge. | biorach wrote: | Peter Norvig's 27 line spell checker | | https://norvig.com/spell-correct.html | maxmcd wrote: | Peter Norvig's python is so elegant: | https://github.com/norvig/pytudes#pytudes-index-of-jupyter-i... | DC-3 wrote: | This is nice. One interesting choice is the decision to compute | the number of observed words, N, as the default value of an | optional argument, thereby ensuring that it is only computed | once, while still limiting its scope to the function in which | it is needed. Perhaps this is a common pattern but it's one I | haven't stumbled across before. | | The short circuiting `or` chain is also pleasantly virtuosic. | Sometimes a little flashiness is tolerable when it works this | well! | madjam002 wrote: | Most recently Tailscale, I enabled it on NixOS and minutes later | had a secure VPN set up. | nabaraz wrote: | Thinkorswim by TDAmeritrade. No one else has figured out how to | lay out options (greeks, premium), charts etc. in such an | intuitive manner. | julianeon wrote: | thinkorswim, created by thinkorswim and acquired by | TDAmeritrade. | | In case someone is wondering how a staid brokerage came up with | this incredible technology: the trick is, they didn't. | JamesSwift wrote: | Uhhh well I would argue Tastyworks does it even better. But | that was built by the same team so maybe its cheating? | Aemorph wrote: | Ahrefs https://ahrefs.com/ is great seo tool that I use to | analyze my website's (https://aemorph.com) link profile, ranking, | and SEO health. | djmashko2 wrote: | Things! The todo list app. It's the most elegant app I've ever | used. feels like it just works, and I can rely on it 100%. | hulitu wrote: | Aegis/Domain OS. I would love to work again with such an OS. | m-p-3 wrote: | SQLite. It's a damn fine piece of software for small | applications. | endgame wrote: | I've heard people call it "a replacement for `fopen()`". | Similarly, I like ZeroMQ as a replacement for sockets. | andrewmcwatters wrote: | The original QSpy protocol, which then became the GameSpy | protocol, and later still made way for Valve's Master Server | protocol. | | I'm not sure what other protocols exist today for tracking a list | of servers, providing information on them, and are as up to date | as the frequency of the heartbeats from those servers, but I | suspect there are similar protocols out there, and I'm just not | familiar with them. | | Unfortunately despite how elegant the QSpy protocol is, most | modern video games no longer provide server browsers as first- | class features, eschewing them in favor of matchmaking services | or publisher provided dedicated servers. | sparker72678 wrote: | I've always liked how TaskPaper was entirely built around plain | text files. | | https://www.taskpaper.com | constantinum wrote: | Vim | | Adobe Indesign | | Monodraw | | GNUcash | | Django | | Beeminder | hatware wrote: | Frigate NVR: https://frigate.video/ | | Incredibly easy to host open source network video recorder with | object tracking and hardware acceleration support. You have to | install hardware and know what you're doing to hook things up, | but bespoke systems that do these things cost tens of thousands | for hardware/licensing alone and don't do them half as well. | j-pb wrote: | JonesFORTH | | Although one might argue it to be a case of really elegant | documentation and literate programming. | spindle wrote: | NixOS (although yes it could be even more elegant than it is) | jansc wrote: | RabbitMQ. It just works. | nope96 wrote: | https://tetr.io/ | | even on an ancient laptop, it runs smoothly. I had no idea a | javascript game could look/play this good. I've spent 100 hours | on it since I first saw it posted here on HN | ohiovr wrote: | FFMPEG is an excellent piece of software. I used it last weekend | to build an automatic video editor / titler and it only took | about 10 hours to make it work. I was going to use moviepy but | the rendering time was extreme and the memory consumption was | horrible. My 300 line python script with imagemagick and FFMPEG | produced a 30 minute long video in under 5 minutes. | cnees wrote: | MindNode is a beautiful way to lay out your thoughts, and the | graphs can be copied as bulleted lists. Alfred is an application | launcher that also lets me enter shortcuts to quickly launch | pages like my calendar and each of my team members' open PRs. I | use it dozens, if not hundreds, of times a day. With the premium | version, you also get a great clipboard manager. | phonon wrote: | Mathematica | Stampo00 wrote: | Graphviz. | | Non-trivial graphs will make it produce hard-to-read output, and | you can try fiddling with it forever to get better output. But | it's still the first thing I reach for when I have to make a | graph. | uuyi wrote: | So much this. Also I use this tool to sketch out graphs | quickly: | | https://dreampuf.github.io/GraphvizOnline/ | blenderdt wrote: | Blender. | | It's architecture, the window manager/system, the UI, how it is | built by and for the users, how the API is integrated and how | fast it is compared to other software. | rwxrwxrwx wrote: | The Apache HTTP Server and the GNU Scientific Library come to | mind. | dhash wrote: | - NXT-G, the coolest (simple) visual programming language | | - Propellerheads Reason, a sweet DAW | | - emacs, a text editor so elegant it's a real OS | | - Procreate, the nicest iOS drawing app | m-p-3 wrote: | > NXT-G | | On a similar tangent, NodeRED is also an interesting software | to build workflow-based automation visually. | spacemanmatt wrote: | A couple of my favorite programmable products from the MSDOS | years: | | Telix | | QEdit | superasn wrote: | I'd say Linux Mint. It combines everything that's good about | Ubuntu while removing things like snap. Also the design is so | much better but I feel that's a personal choice. But everything | in linux just works so well now. | | I run 4 monitors on 2560 resolution on two separate amd cards and | everything runs flawlessly. I have all the software for free and | most OSS is just as good if not better for my work (except games | and Photoshop but photopea is a good alternative for that, and it | can be easily my second nomination for this thread). | | I know linux has evolved a lot and it's the effort of millions of | volunteers which has made Linux what it is today, but for me | personally Linux Mint really combines all the great things about | linux into an amazingly elegant software. | dcminter wrote: | Hmm. I was kicking the wheels on cinnamon the other day - but | because it's not on Wayland it won't do mixed resolution | displays out of the box, so it's not really viable for me. | | A pity, as I dislike snaps and the generally dumbed down | direction of recent Gnome, so it would otherwise have been a | good fit for me. For now I'm (still) on Ubuntu though. | wrnr wrote: | https://github.com/enkimute/ganja.js/ | | Geometric algebra for any R{p,q,r} dimensional space. Has it own | custom JS to JS transpiler so the literal number "1e10" becomes a | bivector. The code is just around a thousand lines while it lets | you do amazing things like this right in the browser: | | https://enkimute.github.io/ganja.js/examples/coffeeshop.html... | c7DJTLrn wrote: | Not sure if games count as software but if they do - Factorio. I | don't play much these days but I'm still utterly stunned how a | relatively small, humble team of developers can build something | so robust and performant. Granted, I've never really tried | pushing the limits, but not once have I felt like the game is | even breaking a sweat while processing thousands of machines, | belts, and bots. It's a miracle to me. | | Their devblogs are really nicely written and you can tell they | are extremely passionate about getting things right. In my | experience that's a rarity now. | | And of course, it's a brilliantly addictive game. | Aardwolf wrote: | I've definitely pushed the limits of performance with way too | upgraded huge range artillery turrets hitting _all_ the biter | bases, but yes, very performant with large factories otherwise | :) | AnIdiotOnTheNet wrote: | > I'm still utterly stunned how a relatively small, humble team | of developers can build something so robust and performant. | | I'm not sure that, on the whole, robust and performant software | can be put together by teams much larger than that. | joshbochu wrote: | great example! | ThunderSizzle wrote: | I'll also point out that the UI for Factorio is almost among | the best. | | I'd prefer a factorio over almost another UI. | | I'm imagining a port of factorio's UI into most strategy games | would be very nice, both from a VERY zoomable map, a clear | research/progression tree. A few improvements could be made | IMHO, but it's lighyears better than TF, CS, the Chris Sawyer | set, etc. | kjeetgill wrote: | Similarly, mindustry is written in java by a single developer | freshly out of college and is incredibly performant for the | amount of moving pieces rendered at a time. Granted I'm not in | video games, maybe it's not too hard, but I thought it was | really cool. | | It's also an incredibly cool, interesting game design. If you | like Factorio + Tower Defense you should check it out. | ramesh31 wrote: | Doubly so that the game is written entirely in native C++ and | is fully cross platform compatible (mac/windows/linux) with a | tiny binary size. The responsiveness and performance of that | game even with thousands of agents onscreen has always | impressed me. | ibejoeb wrote: | If they're made of software, they count | mym1990 wrote: | Stardew Valley! I always marveled at how it was a one man team, | and everything from the graphics to the game systems seemed to | work well. I haven't seen the code base or anything, so I am not | sure if this is 'elegant', but my assumption is that for one | person to put out that kind of work, some things have to be going | right in the design. | eimrine wrote: | LISP 1.5 | Stampo00 wrote: | TiddlerWiki. | | It's not everyone's cup of tea, but given the limitations it has | decided to work within, it really is a wonder. | nikivi wrote: | Linear is nice. https://linear.app | ktusznio wrote: | Yup. I find Linear a pleasure to use after years of JIRA. | yewenjie wrote: | https://lichess.org | bytematic wrote: | Yes! Didn't think I would see it, lichess has made some | incredible architectural decisions. And also really brilliant, | consistent philosophy. | kettunen wrote: | The original MapReduce implementation by Jeff Dean and friends is | probably up there for me. Couple of hundred lines of code doing | bunch of task distribution on a very large scale is just very | impressive. | | Of course the current/latest version of it has took a life of its | own in size and complexity (but of course with performance and | reliability too) but the initial version still shines through! | [deleted] | ur-whale wrote: | blender (the finished product, can't comment on the code itself). | ibejoeb wrote: | Elegant construction and elegant use can be disjoint. For | construction, Beautiful Code is a good read on a bunch of real | specimens. | | https://www.oreilly.com/library/view/beautiful-code/97805965... | lukasb wrote: | Notational Velocity | | Very simple, instant search, and having the same UI for searching | and creating notes is genius - way fewer duplicated notes, for | one thing. | smokeyfish wrote: | Git, grep, sed, awk; many Unix utils | pyjarrett wrote: | Fossil SCM (https://fossil-scm.org/home/doc/trunk/www/index.wiki) | | It's almost like Git + Gitea, all in a single application. Code + | tickets + wiki + notes all version controlled and capable of | hosting the server itself. Also, the repo is just a SQLite | database, so backup is easy. | d08ble wrote: | Scanwatch - Fast and simple file watcher for Node | | https://www.npmjs.com/package/scanwatch | tigerlily wrote: | SolidWorks | | Altium | | Comsol | | Proprietary yes, but I've used all three over the last few years | and found them each to be very streamlined, productive, and | elegant after a fashion. | vt240 wrote: | The modern Comsol GUI is truly phenomenal, especially | considering where it was at with the 3.x versions. It's one of | the rare cases, pretty much the only one I can think of in | CAD/CAM, where the effort put into a radical GUI redesign | really paid off significantly and immediately. | contingencies wrote: | IMHO SolidWorks is terrible. Single core performance | limitation, huge disk IO, no out of box support for STEP GD&T | export, ridiculous drawing-oriented BOM export UX, half-measure | built-in RCS/VCS system, collision-prone namespace, etc. | hadrien01 wrote: | The Fork Git client is pretty much perfect (and native) on Mac | and Windows | RubberMullet wrote: | Softimage, this is was the first 3D software that I really | learned and the UI/UX was way ahead of its time. | | Macromedia Director, it was amazing how quickly you could create | an interactive standalone app or CD-ROM. | ohiovr wrote: | Lingo was a lot of fun! | pipeline_peak wrote: | SpiderMonkey, while it isn't the best performing, its code is | pretty straightforward. It also seems to be embeddable on its | own, unlike V8. | saurik wrote: | In what way do you feel V8 is not "embeddable on its own"? | pipeline_peak wrote: | Wasn't Node basically created to make V8 embedding feasible? | | Just by looking at the answer in this example, the idea of | isolates seems pretty complicated | https://stackoverflow.com/questions/67041878/how-do-i- | embed-... | saurik wrote: | That definitely isn't why Node was created... Node is a | standalone programming environment that embeds V8, it | doesn't somehow help you embed V8 in one of your projects | or make that "feasible". In fact, one of the issues with | Node for a long time was that every Node plug-in was | expected to directly use the embedding API from V8--in no | small part as it is actually a pretty easy-to-use API--and | that made the entire ecosystem lock-step on V8 API changes | (which got tied to major Node versions). | | Much later, Node added two little abstraction layer over | V8's APIs: one that is mostly done in some header files (to | deal with the occasional backwards compatibility issue) and | another which actually wraps V8; and, even then, AFAIK the | latter was mostly done to allow entirely replacing V8 with | ChakraCore. But neither of these abstractions are designed | to be used by others outside of Node's cosebase (something | I almost sort of got working once, but not really): they | don't help you embed V8... V8 is already easy to embed. | | Notably: V8's embedding API isn't particularly more | complicated than the API of any other engine: it is simply | more templated. If you sit around with SpiderMonkey, | JavaScriptCore, or even DukTape, you will find yourself | allocating machines, managing handles, converting strings, | and checking types of values. This is of course going to be | verbose, in the same way that using JNI to call into Java | is verbose, or generally accessing any embedded VM from a | language like C/C++ is verbose (and for all the same | reasons). | pddpro wrote: | I'm not sure if this has come before but for me it'd be ffmpeg. | The things it can do! | leobg wrote: | Keyboard Maestro. It's a tool for automating common tasks on a | Mac. A real programming language is certainly more elegant for | writing programs. But what I find elegant about Keyboard Maestro | is that it lets me add programming logic to any application on my | Mac, quick and dirty. | Veen wrote: | I love Keyboard Maestro's "Click on Found Image" action. | Definitely quick and dirty, but it's great for ad-hoc web page | automation when I can't be bothered to knock something up in | puppeteer etc. | leobg wrote: | Exactly! | anthk wrote: | - TCL/TK | | - CWM | | - Music On Console | | - Sfeed+sfeed_curses+xargs+wget+MOC | | - Entr | | - Mit-Scheme + Edwin + SICP. It doubles as an IMAP client. Use | Stunnel for TLS. | | - UDFClient | | - NNCP | | - S-Nail. It can be easier than Mutt. | bradwood wrote: | Scrivener: https://www.literatureandlatte.com/scrivener/overview | rkagerer wrote: | Open Hardware Monitor (OHM) | | It's written in C# and the design seemed clean and approachable | (at least a few years back when I tailored it a bit for my own | use). | | https://openhardwaremonitor.org/downloads/ | | https://github.com/openhardwaremonitor | GiovanniP wrote: | TeXmacs (www.texmacs.org), which is a finely crafted document | preparation system realizing at the same time both the structured | and the WYSIWYG paradigms. It is vastly superior to all other | document preparation systems. In particular it is superior to | both TeX (in all its variants) and to Word, under all respects: | conceptually, in the power that it affords in manipulating | documents, in the ease with which it makes it possible to write, | concentrating only on the content and yet having one's document | in front of one's eyes. | anthk wrote: | Also TeXmacs can work with Maxima _inside_ your document. | iwebdevfromhome wrote: | The things app https://culturedcode.com/things/ , even though | it's just an elegant TODO app something drove me to buy the | iPhone and Mac versions. | | Some time ago I spent a good amount of time looking for a | development stack that allowed me to just build stuff. I ended up | trying and deciding on Laravel Jetstream with InertiaJS | https://jetstream.laravel.com/2.x/stacks/inertia.html. Laravel | was easy enough already to just pick and do things, now this | solves the backend+frontend projects for me by allowing me to | just put vuejs components on top of my laravel app and jetbrains | already comes with Auth stuff setup solved. | dvh wrote: | meld | daveloyall wrote: | I've found myself using winmerge instead of meld, when I'm on a | platform that supports it... | hnxs wrote: | xcode | | haha just kidding! | heavyset_go wrote: | WireGuard | aborsy wrote: | It's this! | ur-whale wrote: | Yeah, it's definitely up there: it's one of these solutions, | when you see it, you wonder how everyone could get it so wrong | before it came around. | hnarayanan wrote: | Things, a todo system for macOS and iOS. | leobg wrote: | Alfred (Mac launcher) | lycopodiopsida wrote: | And LaunchBar - also a mac launcher! | smm11 wrote: | Circus Ponies Notebook (On OpenStep, then OS X), made my jaw | literally hit the floor when I first saw it. I didn't just think | all software had something to learn here, I thought this was the | only software anyone would ever need. | | To be fair, my job lend itself toward this at the time, the WWW | was nowhere near what it was a few years later, and everything- | tied-to-everything was miles away. But this blew my mind. | nicbou wrote: | I love utilities that quietly work, and just accept whatever | workflow I throw at them. | | OwnTracks is an app that logs your position and sends it | somewhere else. It has been running on my phone for like 2 years | without issues, and talks to a server I wrote myself. | | FolderSync syncs folders on my phone to remote storage. It's | super flexible and generally just works. The conditions for | syncing are highly configurable. I lament the lack of a similar | utility on Mac - basically an rsync+cron UI. | reyostallenberg wrote: | Maybe https://syncthing.net/ ? | flanking_pajama wrote: | Easily my choice for the OP's question. | | I have set and forgotten it for a few things here and there, | like making sure the photos I take on my phone are backed up | and available on my laptop as soon as they're on the same | network. | protomyth wrote: | The Visio that came on the sampler floppy. It was small and did | an amazing job. | | PFE back in the day. Simple macros and templates that made life | much easier in a small package. Some editors today don't even | bother with macros or have all of PFE's options. | ibiza wrote: | 4.3BSD Unix. Arguably, the first modern operating system. | | https://en.wikipedia.org/wiki/History_of_the_Berkeley_Softwa... | anthk wrote: | Check Multics and the kinda-opposite, ITS. | hulitu wrote: | Saying 4.3BSD Unix is like saying SVR4 Unix. Which | implementation ? As far as i know SunOS (4.1x) was a 4.3BSD | implementation and Solaris was a SVR4 implementation. | teddyh wrote: | IIRC, NeXTSTEP was also based on 4.3BSD. | 1vuio0pswjnm7 wrote: | tmux | [deleted] | pcurve wrote: | Always impressed with Palantir's software. | leobg wrote: | Can you give an example? I've never seen it myself. What do you | find the most impressive about it? Any links where those parts | can be seen in action? Also, what would be the closest | competitor, and in what regard are they worse? | hulitu wrote: | "Any links where those parts can be seen in action?" | | No, but when they arrest you, you see the effect :) | pcurve wrote: | I figured I'd get some downvotes mentioning PLTR here. ;-) | | GPalantir is definitely being more open with their demo now, | so there are some good ones on their youtube channel. | | You can skim through. | | https://www.youtube.com/watch?v=uF-GSj-Exms | | I'm impressed by how polished everything looks. As a person | who does UX / product design, their working software looks | better than most designer's portfolio mockups. | | I'm impressed by how fast and snappy everything works or | feels. | | I'm impressed by how rich and custom tailored their UI | component library is. | | I'm impressed by how focused and tailored their UI for job at | hand. | | I'm impressed by how every single page in their application | looks beautiful, not just a handful. | | They actually have all their React UI library published as | opensource here. https://blueprintjs.com/ | | If there's anyone from pltr reading this, good job. Your | design people are amazing. | px1999 wrote: | https://vimeo.com/488141017 there's a Gotham demo at around | 43 minutes (which is probably the most interesting looking | product they have) | throwaway_dcnt wrote: | https://vertx.io and https://lmax-exchange.github.io/disruptor/ | modinfo wrote: | Websites: HN, sourcehut. Tech: Prisma. App: Postico. | crispisulcans wrote: | A very short example: The PNPOLY algorithm | https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html | emschwartz wrote: | The Tokio async stack for Rust (https://tokio.rs). | | They did a really nice job of building thin layers up the stack | from byte buffers (bytes), to async-friendly logging (tracing), | basic IO (mio), async runtime (tokio), generic request/response | services (tower), HTTP (hyper), and a web framework (axum). | | Each of the layers are useful independent of the other layers | above, and every one is has a thoughtfully designed, pragmatic | interface. | swah wrote: | I believe I read that Tokio was a "hacky" way to add async to | Rust - similar to the solution in the Python space... - is this | not the case? | krageon wrote: | It could be an elegant, hacky solution :) | emschwartz wrote: | I think this argument refers more to Rust not having built-in | support for async from the language's v1.0 rather than the | design of the Tokio stack. That has definitely led to | unfortunate incompatibilities between libraries built for the | different runtimes. However, the Rust language team took a | super methodical approach to async support and the way that | more async-related traits are slowly being standardized | (first Futures and hopefully Stream, AsyncRead / AsyncWrite | at some point in the not too distant future) seems like a | long-term-great way of building into the language the | abstractions everyone can get behind while leaving room for | experimentation. I'm sure others would have different takes | but I'm a fan. | sodality2 wrote: | Personally I love being able to experiment on the bleeding | edge but waiting for a stable implementation, even if it | takes 3 years to reach discussion on the RFC's. There are | crates if you need it today, which operate on best- | practice, but for an official solution I accept that it may | take time for it to achieve acceptable standard library | inclusion. | sodality2 wrote: | It's not standard library, which makes some believe it is of | lesser quality (not fit for stl?). Tokio works splendidly and | I don't think it's a common belief that it's hacky. That | being said, language-wide, async is a bit less focused upon | (not in stl, trait fns cannot be async, etc) but otherwise | the integration is very good. | spogbiper wrote: | Microware OS-9. A Unix-like (..sort of) operating system that | supported multitasking, multiuser operation on an 8 bit CPU with | 64kb or less of memory back in 1979.. two years before IBM bought | a CPM clone and called it DOS. | annowiki wrote: | Scikit-Learn's api is masterfully consistent. We've taken to | using it as a source of inspiration for our own code. | sidcool wrote: | Unpopular opinion but Microsoft Excel. It's a powerhouse of | features. | hulitu wrote: | And antifeatures. Some people do not work with dates. | tinus_hn wrote: | Perhaps the elegance is more in the concept of the spreadsheet | and less in the Excel implementation of the concept. | throwawayboise wrote: | Yes, I think maybe the original VisiCalc was elegant, even if | far less featureful. It was a game-changer, one of the first | general purpose PC applications that let users do row/column | based computing without programming, and along with word | processing was the software that underpinned the explosion of | PC use in business. | pjc50 wrote: | So elegant that genes have had to be renamed to stop Excel | mutilating them. | jcparkyn wrote: | Lots of features, sure, but elegant? I've always felt like | excel was about as far as you could get from elegant, | especially once you want to do anything more than data entry | and simple charts. | | Elegant software doesn't normally need an interest group | dedicated specifically to preventing people from misusing it. | http://www.eusprig.org/ | Closi wrote: | I'm a definite 'excel-apologist' and think Excel is brilliant | and incredibly powerful when used correctly, so the below may | be biased but... | | > Elegant software doesn't normally need an interest group | dedicated specifically to preventing people from misusing it. | http://www.eusprig.org/ | | Plenty of the other software listed has user-error misuses | (For instance C is listed, and by the same standard it could | be considered responsible for more software vulnerabilities | than anything else!). | | Sure there are errors in spreadsheets, but as the alternative | is often calculating something by hand or asking similarly- | trained users to write a python scripts, I think both those | options probably create more errors. | | Looking at the 'horror stories' listed on that website: | | * The first listed is about the UK government using a version | of Excel that is over 10 years old, with an issue that would | not have happened if they updated the software. | | * The third listed is because someone ENTERED incorrect | information into a procurement spreadsheet (they copied the | specification for a standard bed in rather than a critical | care bed). | | * The fourth is user input error - they input a fund as | Dollars rather than Euros (how is this Excel's fault?) | | * The fifth and sixth talk about logic errors - one with | hard-coding a value and another with using 'cumulative | mileage totals rather than running calculations on a sample | average for vehicles'. | | I agree that spreadsheets can have issues, but most of these | can be mitigated by setting up sheets properly and I haven't | really seen a compelling replacement for a spreadsheet for | the sorts of stuff it gets used for. | | The real problem with spreadsheets is a lack of training - I | would estimate less than 20% of users know how to turn on | cell validation, less than 10% know how to write a dynamic | array formula, and less than 5% know how to use PowerQuery. | It's like asking a bunch of people to write python code, but | only 10% of users know how to write a loop, and then we are | surprised that there are issues. | | Besides, if you input a fund into a fancy financial package | with the wrong currency it will cause the same issues. | anthk wrote: | Excel crapped out bioinformatics. It's a turd. Period. | boplicity wrote: | I recently had to do a bunch of currency conversion for my | tax accounting. I had hundreds of transactions, and I needed | to set the right exchange rate for each transaction, based on | the date of the transaction. This took just a couple of | minutes to do in Excel. The solution - a simple Excel formula | that compared two rows - was indeed, extremely elegant. Excel | enables this type of elegant calculating all the time. | throwawayboise wrote: | I agree. The declarative/functional nature of spreadsheet | formulas is certainly elegant, even if you might not say | the same about Excel as an application overall. The same | could be said about other spreadsheets (e.g Google Sheets). | spacemanmatt wrote: | If the argument is feature:[something else] ratio, then I might | be able to consider it, FSVO something else, such as "UI | complexity" or "learning cost". Partly in response to sibling | posts, the PP definitely makes me think twice about why I'm | willing to call PostgreSQL elegant but pause a bit harder to | evaluate Excel. | Mathiciann wrote: | What definition of elegant are you using? | jrm4 wrote: | Syncthing, by a mile. | | As someone who very much enjoys tinkering with Linux and such, | but also likes trying to onboard other people who aren't as | techy, Syncthing is such a killer example. It's almost depressing | because I _want_ other free and open source stuff to be this | good, though I know the economics (and proprietary interference, | perhaps?) make that tough. | onehair wrote: | Syncthing is great software. But it is also great at confusing | new users | mnkmnk wrote: | The last time I used syncthing to sync files from my android | phones to my Linux server, it always somehow got stuck and | never recovered. The phone app would stop running in the | background and I would forget to rerun it and if it was started | a long time later it would get stuck and would not recover | automatically. Eventually, just stopped using it. Now I use | Google photos and it works great to backup my family's phones' | photos. | dividuum wrote: | I'm really surprised by that. I feel like Syncthing would | really benefit from a simplified user interface for its core | use case, which I imagine is "sync one folder across multiple | machines". It's really nice that they have all these additional | features and detailed information on the default dashboard, but | it can be really confusing if you cannot form a mental model of | what the software does. | sgtnoodle wrote: | I use syncthing and appreciate that it exists. It's way too | easy to accidentally all your data, though! | | I've been dragging my feet migrating a hard drive from my old | desktop to my new one for 1.5 years. This past weekend I | finally got motivated to power the old one up and wait for | syncthing to give positive indication that it's in sync with my | server. The reason that was even a concern of mine is that the | last time I used that desktop, I spent a whole weekend cleaning | up about 200 GB of renamed and duplicated "sync conflict" files | that syncthing created and then synced to my server when I | previously migrated hard drives. I wasn't sure if all the fixes | had made it to the server yet. That required writing my own | tooling to positively confirm every duplicate was bitwise | identical before deleting one or the other. | | The official documentation suggests I remove syncthing's | metadata from the drive and then add it again on the new | computer, and let it re-sync. It's a good way to check for bit- | rot I guess. At least the documentation these days suggests | marking one instance as read-only. | Sakos wrote: | I've managed to delete a folder with GBs of important data | because Syncthing has non-obvious ways of handling data. | Thankfully, I have tons of backups of everything, so it | wasn't a big deal, but since then I've been extremely | paranoid when using Syncthing to make sure it doesn't happen | again. | syntheweave wrote: | I do all my work with Syncthing in send-only folders, one | per machine. Which means that if I make changes across | machines then I always get duplicates, but the redundancy | feels natural - it's only concerning if the data size | becomes absolutely huge. | jbverschoor wrote: | Syncing is anything but elegant | jrm4 wrote: | On one hand I haven't found it all that easy, but on the | other, I think the principle of "sync is not backup" holds | pretty well. | whoibrar wrote: | i feel it's a great example of software that doesn't get in | your way. | | I would've love to write about how awesome it is but came | across this wonderful essay regarding the same titled | _"Computers as I used to love them"_ [0]. Highly checking it | out. | | [0] : https://tonsky.me/blog/syncthing/ | AlanYx wrote: | emacs, both for the elegance of its elisp-machine design and for | how good its self-documentation is. | drunner wrote: | I can't speak to the quality of the code base (I don't know go), | but as a user caddyserver is pretty great. | reiblast wrote: | I have created my blog almost a decade ago, | https://reiblast.blogspot.com/ I'd like to know any new blogging | site that is better than google? | pixelmonkey wrote: | I'm limiting my choices to open source with good explanatory | write-ups or presentations. | | Graphite for "simple" time series storage: | | https://www.aosabook.org/en/graphite.html | | HLL datatype (PFCOUNT, PFADD, PFMERGE) in Redis for counting | unique items in a set: | | http://antirez.com/news/75 | | Data structures and algorithms that make Lucene & Elasticsearch | fast (video): | | https://youtu.be/eQ-rXP-D80U | gordon_freeman wrote: | Signal - The elegance here is the "Privacy-first Design". Every | feature and code for Signal messenger is designed on collecting | as little (or no) data as possible and it is an essential tool | for folks like me who are tired of having tracking and ads | nonsense in their most-used apps. | joshbochu wrote: | yes! | xupybd wrote: | The Elm architecture. I've only used it in F# with Fable but it's | made UI programming fun again. It's robust and simple. | Xenoamorphous wrote: | VS Code | paulgb wrote: | I've been pleased by NATS (https://nats.io/). I like how it | builds its functionality on layers of abstractions, from the most | basic (pub/sub), to request/response on top of that, to key/value | and persistent streams on top of that. The CLI is simple to use | and you can learn it in an afternoon, but it's robust enough to | deploy. | dusted wrote: | Are unix pipes a software? If so, then that. | mikewarot wrote: | Turbo Vision/Turbo Pascal for MS-DOS. Borland put together one of | the best instances of an object oriented library that just | worked. The follow up with Delphi for Windows was the most | productive environment I have ever experienced, until I was | priced out of it in their pivot to "Enterprise" customers. | | Nothing since is anywhere near as productive. Lazarus is ok, but | the documentation is horrible, (almost non-existent, only doc- | strings in many cases) which makes the system far less useful. | munificent wrote: | Related: I did a lot of WinForms programming in C# when I was a | tools programmer at EA and I don't know if I've ever been as | productive as during that time. The whole API was really well | thought out, Visual Studio was fast, C# was a beautiful | language. | gwbas1c wrote: | > C# was a beautiful language | | It still is. (And Blazor is pretty cool, too.) | munificent wrote: | Yes, definitely! I put it in the past tense only because I | don't use it these days. | spacemanmatt wrote: | I cut my teeth on Borland Pascal and later launched my career | with Borland C/C++ tools. I love JetBrains these days but not | as much as I remember loving Borland! | archielc wrote: | There's Lazarus project (https://www.lazarus-ide.org/) - which | is a Delphi compatible IDE. I've used it once to build a simple | UI app, and it was a real nostalgic look back in time. Not to | mention that it was extremely simple to build the app. | rlf_dev wrote: | It's been an absolute joy toying with TV after all this years | for some TUI side-projects. | | https://github.com/magiblot/tvision | legalcorrection wrote: | I never used those older environments, but I've heard that | Windows Forms + C# captures most of the same magic. Do you | disagree? | CodesInChaos wrote: | WinForms did, it's extremely similar to Delphi's VCL. | Microsoft's even changing newer UI libraries do not. | nottorp wrote: | They stole Delphi's designer from Borland (not sure if it | had already renamed or not) and that fixed things for a | while. It didn't last though. | [deleted] | morelandjs wrote: | numpy started a science renaissance. fantastic library for what | it does. | mburee wrote: | Basically just LAPACK in Python or is that SymPy! | anthk wrote: | Thank LAPACK or BLAS for that. | jeppester wrote: | Git is the first example that comes to my mind. | | I'm aware that the concept can be difficult to grasp and that the | cli commands seem weird at first. | | Once it clicks however, it's an absolutely fantastic tool. I'm | still often amazed by what is possible with selective resets, | diffs, greps, and most impressively interactive rebases. It makes | a lot of otherwise difficult tasks much easier, and more elegant. | | Git is IMO one of the most important pieces of software made in | the last couple of decades and should be celebrated more for it. | foofoo4u wrote: | You might get a kick out of this. Tech Talk by Linus Torvalds | at Google presenting Git: | https://www.youtube.com/watch?v=4XpnKHJAok8 . He goes into his | thought process of the pains with existing version control | systems and how Git goes to address their shortcomings. ___________________________________________________________________ (page generated 2022-05-02 23:01 UTC)