Fast Software, the Best Software (2019)
craigmod.com
craigmod.com
Well, with the encumbrance of it living in a terminal window, but I also live in the terminal window even on MacOS, so its a feature not a bug.
Point is, I wouldn't have this to say about it if iStatMenu had just been a little more discrete about its loading times ..
When it comes to navigating (except public transit), hiking, and route building, Organic Maps[1] is very good. OSM data and offline-first is the way forward for detailed and _fast_ map experience.
For cycling route building I have to mention BRouter[2], which allows you to write a custom cost function that is used to tweak your route preferences.
"The data is better than Google maps, it just needs a better routing algorithm" should be catnip to a certain class of OS dev. If it's really true, I'll take a crack at it myself!
At least, not exactly.
At its best, the OSM data puts Google to _shame_. Super-fine resolution and details, nuances of street layout precisely correct, mountains of meticulously-maintained metadata that makes manifold niche geospatial apps possible.
Alas, in any given area, OSM is only as good as the union of the publicly-provided street data and the obsessiveness of the area's mappers.
Most towns in central PA, for example, have no street address listed for hundreds of buildings.
I've made many small contributions to help, and really enjoy doing so, but someone looking for driving directions needs to be able to whip out their phone and slap in an address / business name and have it Just Work.
You can't reliably count on OSM for that.
I wind up falling back from OsmAnd to Gmaps probably every fifth drive.
It's a network effect thing - if enough people used an OSM client and opted into sharing anonymized location data, you might be able to get somewhere with it.
In practice, I think it'd have the same problem as the core map data - surprisingly good data in places with a lot of adopters, and nothing at all in places without.
That said, though, the traffic data is pretty secondary - a good, open routing engine would be lovely to have, and will slowly become more relevant as the map expand and fills out.
Also, I think suspense is an anti-pattern now. We've all been conditioned to groan every time we see suspense animations because it means the website must be slow. It's better to just have a little circling loader or just freeze.
The interface without animations feels snappier even if sometimes it takes a second to load. I disable any and all animations in software that I can - particularly in Android (via developer settings) and Linux (i3+vim vs something like KDE+VScode).
I regularly use a website in which a submit button does not change state in any way. It is indistinguishable from the click having gone to /dev/null. And the completion of the action takes a copule of seconds.
It's literally, "no response ... few seconds ... oh, done!"
If the button simply responded in the usual way, like 3d poppin in and out effect, it would be better. The UI can change state also to show some "wait ..." text.
These are examples of animations, just not progressive/persistent.
In the good old days, you'd have the request sent by that button reveal a small, transient status bar showing the target URL at the bottom, plus the "Refresh" button in the browser toolbar would change to "Stop" instead; both effects lasted for the duration of the network roundtrip. It was enough of an indicator, and since it was not controlled by the website, it wouldn't break or lie to you.
It felt like I was racing. Type the whole message before the screen updates? Check.
I miss AOL sometimes.
How is that even possible, especially with modern hardware? Like you'd almost have to build the file explorer around like a sqlite-based message queue with a 1500ms poll interval to get performance characteristics like this. Absolutely insane feats of architecture astronautism are no doubt required for this to happen.
I was wondering how bad a sign it was when the decline in performance between Windows 95 and Windows 98 was detectable in many ways, but nobody was complaining because it was not always noticeable on PCs that were 3 years newer. You had to figure Microsoft developers had way better PCs than that, and didn't have any clue at all.
Turns out my suspicions were correct, it was the insidiously ignored ramp-up to exponential amounts of sluggishness as time marches on.
You know, like a snail without a shell :(
https://www.techpowerup.com/forums/threads/microsofts-window...
And yes, it sucks,
https://github.com/microsoft/microsoft-ui-xaml/discussions/1...
At least your description matches some the pain I get using NFS + lf.
Like the vanilla file explorer experience is way worse than anything I've come to expect with stuff like CIFS and SMB.
In that sense, when a terminal (running on a desktop environment) in Linux is faster than Windows Explorer, it's a shame. When a big file explorer like Dolphin drives circles around native file explorer of Windows, that's a big ole embarrassment.
Then came the rewrite to adopt WinUI elements, and WinRT as well,.....
Now I know better and don't use that thing as a daily driver for... 20 years now? :D
I've been using computers for decades, and have used dozens of paid products, but not a single paid option stuck with me forever, while tons of open-source tools are literally irreplaceable - and not because I'm just used to them, but specifically because they give me control to customize them just the way I need.
wanders a bit around the premature optimization history, but later has
>Nowadays almost all development is for things that are not necessary. Pretty much all modern development is for things that are entertainment....The difference between things that are necessary and entertainment is that you will wait however long it takes to do the necessary thing
in the reductive view of the article everything that is not necessary is termed entertainment.
But I have noticed this. I often drop useful things because it just isn't worth it to wait. So the argument really is, in today's world, speed is almost always the most important factor anything accessed through the computer can have.
I’m making browser games and my core idea is that they must be fast as hell and light as hell. Such that they can run on a potato!
Unfortunately this means cutting non essential animations lol.
And testing on throttled devices (low end mobile) and respecting thermal throttling
A recent win for me for performance was:
- 8192 simultaneous entities on screen path finding, checking reward functions, making strategy decisions with zero frame drops
- sub millisecond average frame Time (more like sub 0.5ms) with 256 entities on screen (logic and rendering)
- “compressing” game replays from 100KB naive to 1KB
Esp. known from Microsoft, Adobe, Google. Should be added to the Antipatterns repo
The fun part is that when your employer _does_ care about software optimization, few people are actually good at it and your skills are more exclusive :-)
Suddenly they are very aware of the costs of inefficient software.
Even when that software is widely used so the few milliseconds add up to thousands of hours in collective time savings. 'We don't pay for user's time, only your's', is the attitude. Again 'irrational'.
I wonder what OP's thinks of IDEs like VSCode. Would they see it as heavy and not great because it's Electron-based? But I find IDEs convenient.
Definitely much more responsive than VS Code.
Like a programmers day or sysadmin day.
That is a special celebration of fast software. To celebrate one should find faster alternative to some of his usual tools, try to switch and spread the word. Or maybe avoid opening Jira for a day at $job.
A good WYSIWYG editor will run circles around the fastest text editor. Even if WYSIWYG is a bit slower to open.
It would be preferable for software to be more focused and faster over time, but that doesn't attract people to it.
If it is fast because it is optimized, then that does not align with correctness, because optimizing something that works only adds risk.
Similar thing is happening with web sites. Lately I've done "view page source" on eg. news sites I visit. Common pattern:
100s of KB html, loads & loads of meta tags, then a mountain of CSS junk, embedded scripts etc, and at the very end: maybe 3..5 paragraphs of text (a few dozen words each) with actual content. That's not counting images, video or external scripts, stylesheets, fonts etc. Oh and images not from the actual subject discussed, but 'random' sample illustration from an image library.
Ok sure, you want to add some meta-tags to html documents. You want a page to look good, and run a couple of scripts. But do you need a MB+ of that to provide a few KB of text to your visitors?
NO YOU DON'T. >95% of that is non-essential crap that shouldn't be there in the 1st place.
There's little doubt in my mind that (most) software development works the same way. Bad incentives -> crappy software.
BTW, the title should say "(2019)".
If you want to do foo. You don't need framework bar to load baz or call home to qux.
That's all added complexity that isn't inherent to the task.
So we aren't talking about not doing bar. We are talking about not doing all the other things that aren't for the benefit of the user.
I should probably work again on getting that down some :)