HNHacker News
TopNewBestAskShowJobs

salmo

966 karma · joined January 7, 2017

submissionscomments
salmo··on Tauri – Electron alternative written in Rust
I wouldn’t be shocked to see MS abandon Word or Facebook (erm Meta) abandon Facebook in the same sense Google would abandon Chrome.

Sure, some piece of software will have that name, but it won’t be aggressively developed like MS abandoned IE a few times.

I also won’t be shocked if Word or Facebook are like Edge where it’s a new different thing with an old name.

salmo··on Ask HN: What are you going to use instead of Docker Desktop for macOS?
I’ve just been using minikube. I can just build containers with it or mock up a k8s deployment. Instructions to configure local docker or podman to use it are simple.

With the hyperkit backend it’s pretty similar, just with extra bells and whistles and nothing in the taskbar.

I keep things pretty simple, so there may be cases it doesn’t cover.

If so, then I’d just use a VM. I still use Vagrant a lot for testing non-container stuff. It could be handy there to set up an environment that actually matches your prod setup.

salmo··on Poll: Which FAANG is the most likely to decline in the years ahead?
The biggest problem for me is that my local cable company is the cheapest/best internet provider. So, no, it's not cheaper for me than cable. Internet without cable is almost the cost of the "bundle". (it's evil) I just have cable on 1 of 4 TVs, but still.

Also you can't get most streaming content on cable, or the sports content I get on cable without 4 streaming services (ESPN+, Peacock, Paramount+ & Hulu).

So I've got a cable package w/ sports + a couple streaming services. Sometimes I'll pick one up for a month or 2 and drop it just for something I want to see. Sometimes I rent something from Amazon.

It's just a mess.

But the search is pretty easy. My Rokus, Amazon sticks, or even cable box search fine for me.

salmo··on You shouldn't parse the output of ls(1)
Some of these are why I bail for a “real language” in many seemingly simple scenarios.

As soon as I care about datetimes, it’s just easier to use stat() and a proper datetime API.

I can treat filenames as byte arrays and translate to Unicode or let the language do it for me.

In dire circumstances, find … -print0 | xargs -0 second_script is usually my fallback, but that has pitfalls as well.

Go has been a blessing there for me, not having to rely on a runtime across diverse hosts. But that’s a preference and doesn’t help on old kernels w/o epoll().

So many battle scars from inconsistency in Bash and GNU utilities over the years, especially on Unixes’ bundled versions (Solaris, etc) or supporting GNU, BSD, SysV, and HP-UX in the same script. Used to deploy a ksh88(ish) on all for SOME consistency.

Luckily now I’m not supporting anything but Linux anymore. When I can’t Go, then I just hijack some tool’s bundled Ruby (eg Puppet), Python, etc when I have to handle that and stick to the standard library.

I am too lazy to C these days like I used to. I’m usually dealing with an emergency (looking at you log4j) and don’t have the cycles to cover the gotchas there.

salmo··on A Culture Problem in Arch Linux
It's a shame, but seems so common to the whole of the internet these days.

Arch seemed goofy to me. But FreeBSD is pretty terrible on my laptop and I like that very small base that I add what I need on to, and not the "all the things for beginners". I've enjoyed my past 6 or so months with it.

I've normally used Debian personally for Linux for the past 15 years, but wanted to try something new.

It probably is a good way to learn that's a big step easier than Linux-from-scratch (which is a fun exercise if you have time). And it's a good way to keep a very up-to-date Linux system.

But I do have the advantage of just needing the Arch-specific tips: mostly understanding pacman and yay. I've been doing this a long time, I pick the tools I like, and I already know how to configure them (or where to look to remember).

But honestly, it'd be rough if you don't have Unix/Linux experience. Getting the hardware working, learning all the vocabulary, etc. before you can even really use anything is rough, unless you have a lot of time and patience. Especially if you're expecting a Mac or Windows desktop experience.

I could see a lot of users moving from Ubuntu, Fedora, Mint, etc. down to something less batteries-included, though.

salmo··on Ask HN: Please recommend a router without need for a cloud account
I messed with OpenWRT on consumer gear for years. I hated the hardware. So many had "all the features" (802.11 coolest, gigabit NICs), but didn't have enough actual compute power/memory to get the performance out of them, or the NICs were "gigabit". OpenWRT works, but turned into a hobby in itself and I just don't have the patience for that anymore.

Since 2017 I've run pfSense and love it. Originally started on a fanless x86 machine with good NICs (until it eventually committed suicide), and now run an actual NetGate appliance. The appliance is even nicer to me, since FreeBSD/ARM isn't a likely drive-by target for a 0-day.

No cloud. Real OS, good feature set, regular updates, great performance.

Unfortunately I haven't found an access point I love without cloud accounts. Running Uniquiti APs now. I do like that they hand off devices between each other well, push IoT to 2.4Ghz and real stuff to 5GHz, etc. I'd never run their router exposed to the internet, but.. yeah.

salmo··on Now DuckDuckGo is building its own desktop browser
And Firefox was refreshingly light before it. All browsers are doomed to bloat or remain niche.
salmo··on Ask HN: Why is building Windows apps so complicated?
I don't know if it's the case anymore, but that's been the state of windows installers for a long time. Usually the easy-to-download one was tiny and just phoned home for the real bits. And that wasn't just Microsoft's own stuff, but even things like Java and whatever.

Usually you had to dig a bit and could find an "offline installer". Sometimes an "alternate downloads" link is on the initial download page, sometimes you have to good to find a deeper link on the vendor's site.

I always did that just to keep from needlessly reaching out to the internet X times when updating X machines.

And of course, make sure you're getting it from the vendor and not some sketchy download site.

salmo··on FerretDB: A truly open-source MongoDB alternative
They wouldn't be... until they go under.

Then the vultures will be happy to shake folks down to pay for the licensed version or a law suit. Merit doesn't really matter, they have a claim and fighting it will cost you. They'll just bank on you preferring to pay for the license.

They may not go after the mom and pops, but they'll hit every Fortune 1000 (and probably whether they use MongoDB or not).

salmo··on Ubiquiti developer charged with extortion, causing 2020 “breach”
They’ve pretty much broken that in practice since the last major firmware update.

I just only turn my controller on when I’m working now and occasionally have to re-adopt.

And alternatives likely have similar issues. It’s what naturally occurs when small businesses get large, and especially when companies go from embedded to SaaS development.

salmo··on Ubiquiti developer charged with extortion, causing 2020 “breach”
The problem is that they set a bar there. There is a gulf between consumer and enterprise APs that is full of only Unifi-esque gear. “Cloud management” is an OOB requirement and primary use case for SOHO gear these days. It’s a fleet management issue, just wish it could be done with proper config management and not phoning home. But they’re selling to small shops doing IT for 10s of law firms or doctor’s offices.

I’d never use Ubiquiti’s switches, routers, etc. There are great alternatives there. But when I went to replace my APs earlier this year I still could not find anything less shady that still did what I needed.

Is there an alternative that does PoE w/ multiple APs that hand-off well? And decent hardware…

TP-Link has a similar offering but with similar problems.

OpenWRT on [consumer gear] is not an answer here. More effort goes into the plastic than the hardware. Never dealing with cheap NICs, bad SoCs, inadequate memory, garbage drivers, etc. again.

salmo··on New and improved Linux Random Number Generator ready for testing
This is something that has frustrated me for years. There has been no interest in modernizing the Linux PRNG really ever. This article doesn't go into more depth so I don't know if it's just tacking on more entropy sources and algorithm support or a real modernization.

Windows, MacOS, every BSD, Solaris, etc. have moved past the (blocking) /dev/random vs /dev/urandom to more mathematically sound solutions. (Seriously, measuring entropy?) But Torvalds, Ts'o, etc. have blocked, belittled, or ignored any movement there.

It's crazy that the OS that runs all the things essentially has a roll-your-own-crypto PRNG at its core rather than relying on actual experts for that.

Unfortunately, it's "good enough" to not HAVE to change. Use /dev/random sparingly to seed your own PRNG, change your Java config to use /dev/urandom, or (shudder) use rngd to make it seed itself.

At least once a year I hit some COTS product that craps itself under load blocking on /dev/random on a VM, causing an outage. Yes, it's a "worked on my laptop" problem, but an unnecessary rake to leave out in the garden.

salmo··on Low Cost Banana Pi BPI-R2 Pro 5-Port Gigabit Ethernet Router Board
I did this for a few years in a genero small router passively cooled form factor PC from China. Celeron with discrete Intel NICs. Ran PfSense.

Worked great until it died a few months back. Now it’s less expensive to just buy the equivalent Netgate appliance. It’s been great.

salmo··on Low Cost Banana Pi BPI-R2 Pro 5-Port Gigabit Ethernet Router Board
It won’t help with switching, but it is good for routing/fw + running real software.

I just run a Netgate appliance for that plus something less flaky than OpenWRT.

I also wonder what actual speeds you can get out of these NICs. So many cheap gigabit NICs aren’t really up to the task. And I’d guess that the switch plane runs at 1 gigabit total here.

salmo··on One Bad Apple
Oooooh. That makes sense.
salmo··on Apple says photos in iCloud will be checked by child abuse detection system
Wow. This could be messed up for attorneys, DCS, social workers, etc. They allude more to child pornography, but I hope it doesn't extend to physical abuse.

Those photos are usually taken on phones by spouses, doctors, schools, etc. to be passed to the above on their phone for evidence for a DNN or similar case.

Glad my kids have aged out of baby bath photos.

And those poor people who I know are going to have to provide an auditing safeguard. I hope they take care of their mental health.

salmo··on El Carro: Run Oracle Databases on Kubernetes
Oh my goodness, this is an awful idea. Oracle just runs hosted Exadata for OCI last I checked.

RAC requires shared block storage and L2 private network. Cloud SDNs and storage require gross hacks with horrible performance consequences. Even “modern” virtualization is painful, but can work.

Oracle isn’t going to fix all the bare-metal spaghetti assumptions in their clustered DB stack, and has been pretty clear about that.

This could be useful for throwaway dev/test environments. Or maybe for apps that aren’t performance intensive or critical that are in “maintenance mode” and folks want to lift-and-shift. But they’ll probably spend more time on that than fixing/replacing/retiring the app. And all will require smaller data sets than what I see with big company legacy systems.

And typically those systems are using Oracle to access data populated by another system, which makes me die a little inside.

Pretty clearly a play to get big companies into GCP contracts, more than anything real.

It’s to sell to execs who want to do the cool thing without paying to fix the old thing. ahem Thomas Kurian cough.

salmo··on Ask HN: Why Poetry did not become a mainstream package manager for Python?
I use Pipenv now for applications that I’m not publishing to PyPI. I like the workflow better, and find it to be much less buggy. Pipenv is not really involved in package building, though.

For libraries and OpenSource that I’m building actual packages for, Poetry seems nicer to me than setup.py. I’m trying it out now with one, partly to adopt the newer pyproject.toml thing.

Packaging has always been kind of an ever changing mess in Python vs newer ecosystems, and I don’t see an end to that.

I’d just do what works best for you.

Also, the general opinionated aggressiveness of the maintainer/project is a little off putting to me. Its a little weird in the community.

Normally projects don’t dog other projects on their page. Often they cite alternatives with maybe a statement on how the philosophies vary.

But that’s just my opinion and experience. I’m sure others differ.

salmo··on Textual: a Python text user interface with Rich as the renderer
I haven't done a TUI since using curses, which is appropriately named.

I do have some scripts used by non-developers, who can do things on the command line, but only by wrote. This would be really great for that vs having to build out a web-based thing.

This looks like DOS-based UIs, but so much nicer. I just never even considered that a possibility.

It looks like it's aiming for a very usable API, I'll try to follow its progress.

salmo··on PHP has been removed in macOS Monterey
I'll also make the inflammatory statement that people should just use sed and awk in shell scripts and leave Perl for when they really want to write Perl.

It is weird to me the number of times 90's Linux Distros used Perl for things that are easy in awk, awk for things that are easy with cut, and other commands for things that are easy with POSIX shell baked-in facilities. I guess I'm just a shell snob.

salmo··on PHP has been removed in macOS Monterey
Totally agree. I think anyone developing with these tools would too. It's not as annoying as say, RedHat, but out of date "system" versions are just obnoxious.

I don't know if any "native" apps have leveraged them, though. That would be the real risk of disruption.

Also, as someone who never uses PHP, I'd really rather not have it on my machine. Scripting languages are a pretty big attack surface, even if it's just to pivot after initial compromise. I'd rather not have one there that's not being used.

salmo··on Nuitka: a Python compiler written in Python
I don't love the guy or anything. But you're pulling pieces together from different contexts over almost 10 years to tell your story.

The quote was about a presentation in 2013, not the project as it is now. Guido's complaint is mostly that they were equating "compiled" with "performance" and were not rigorous in backing that up. The presenters may have been young. But I'd have made the same complaint. The blog thing was just snarky.

That was a period of time when he has admitted he wasn't doing so well as a human being and this is pretty low on the snark-meter compared to other BDFLs.

The project page as it is today says very little about performance 'wins' as I read today. In fact, it points out losses, in the same vein as the RedHat issue with Python linked to libpython posted the other day here. Their point doesn't seem to be "make your code go faster", but as an easier mechanism of distribution for some cases.

I'm not getting the "his" shot. I haven't seem him take credit for the work, just that headlines do because journalists are lazy. I may have missed something.

But the MS team's activities today are things he would have dismissed years ago. He's learned and changed his mind. If he was completely consistent with himself from 2013, I'd think he wasn't that bright. (I'll never understand those kinds of arguments about politicians)

You're drawing a line from criticism of a 2013 paper, through his current career, to a malicious intent or conspiracy. That's a lot more defamatory than a valid (but a little rude) critique. You're attacking a person's character, not their work output.

salmo··on GitHub – nushell/nushell: A new type of shell
That's not entirely weird to me.

For the longest time bash was in various states of disrepair on different Unixes. I could make it segfault pretty easily.

I wrote scripts that had to run across Linux, BSD, HP-UX, Solaris, and AIX at the time. So we relied on a ksh88 implementation on each. Whether it was AT&T, mksh, or pdksh, it was fine. Couldn't rely on 93isms, but basically anything POSIX was cool.

I used ksh93 interactively for the longest time. But then Linuxes stopped testing interactive use w/ their packages and it became unusable (looking at you RedHat). So I used bash interactively but still wrote those ksh scripts.

These days, I use zsh locally on MacOS and BSD, but mostly write bash scripts for those and Linux. I still stick to the POSIX habits I have for portability. But the variances are so less. The only one that annoys me is the "does sed -i do in-place" game.

I don't think my interactive shell and target scripting shell have ever matched 1:1 in feature set. And what I slap together interactively or for 1-off script, I would never do for a "real" script. And that's a thing that bugs me with a lot of shell scripts I see in the wild.

A "real" script should make very little assumptions, fail safely, be low on resource utilization to not risk impacting a business workload, and be maintainable. I write everything real like it might be run thousands of times accross thousands of hosts. Even when I didn't intend for it to be, I've caught it in the wild because someone borrowed what I did.

I do love shellcheck, because it teaches our newer folks good habits and they're used to that kind of feedback in other languages. It catches so many things that make me cringe. It's not perfect, of course, but pretty great.

When I started out, I worked 9-6 and the Unix sages in my group worked later hours. So they'd walk through my work on the RCS host and I'd come into the morning with a critique in my email. If I didn't understand, I could hit their desk after lunch and they would patiently explain to me. I love them for it, but it is nice to have tools without a 24-hour feedback loop.

salmo··on Ask HN: How did an adult ADHD diagnosis help you?
I got a diagnosis when I was in college (inattentive type, definitely not hyperactive). It was a bit of a rollercoaster for me.

I also have anxiety and disthymeia, so meds were complicated. Stimulants send my anxiety out of control. Ultimately, I'm unmedicated for the ADHD, now.

It's been 20 years, and I'll admit, I fear any major med changes, because it can be ~1 year to get it all worked out.

I would say, make sure you are working with a psychiatrist who specializes in ADHD and a psychologist who will partner with them to aid your treatment. Their experience is key and can save you a lot of time struggling with meds, I wish I did that from day 1. I originally started with a PCP and then psychologist + PCP and really struggled from bad treatment advice.

I was "smart enough" for it to not seriously impact me until later in college. I would dive into 1 class and neglect the rest.

But my career is pretty tolerant of it. In some ways it is an asset. I have developed a ton of coping mechanisms to compensate, and have also learned to build in time to let myself go. It took me a while time to "forgive myself" for needing that, but a good therapist who also had ADHD helped me.

Taking sensory breaks is really important for me. Shifting to working from home meant I had to learn when I should take breaks from notification overload. I only allow my calendar to notify me then. I do benefit from working with people who really know me and help support.

I also cannot track time internally (I do not know if that is common or not). So making sure to schedule things like lunch has been important. It's easy for me to get lost.

My wife is also amazingly supportive. We complement each other very well and have for years. We are very communicative and that has helped a lot.

I'm sad that my one of my daughters is struggling is struggling with it early in school. School in general is just so incompatible. I can sympathize in many ways with the "inattentive" aspects, but she is also hyperactive which is foreign to me.

salmo··on Show HN: macOS HNReader Application
Really nice to see "native" and not electron :). Very clean looking.

One suggestion would be to do thumbnails like Octal on iOS, but that may just be a personal preference.

I'll try to remember to check back later, when you're ready to `brew`.

Also based on threads here, nice to see you're using this an an opportunity for feedback.

Well done!

salmo··on Gooey: Turn almost any Python command line program into a GUI application
This brings me back to the late 90's when folks were writing Tcl/Tk (or whatever/Tk) wrappers for seemingly every CLI.

That was silly, but this makes sense for 1-offs. You write an internal CLI, realize the userbase isn't technical enough for it, and strap a GUI to it.

I've hit that plenty with things I made for an ops team that eventually got shifted to more BA/PM-types. I've usually turned them into a web-app, but it's a lot of lifting and a "thick client" approach would be nice.

I am spoiled, though, with Click, and don't ever want to go back to argparse, though. I'll keep an eye on it, though.

salmo··on The Elephant at WWDC
I don’t think any tool fixes that, as you alluded to.

I think a great example of this is the difference in docs between OSS Python projects.

Most include the auto generated Sphinx (or whatever) docs, with usually just a README level veneer. I quickly end up needing to wander the code. I swear any OAuth2 client library is fated into falling into this.

The great ones include a “quick start”, overall philosophy/architecture, sections on each sub component, common examples of “advanced usage”, and then the generated API docs (and source code). They let you dig deeper as you learn more, and hit more complicated requirements in your project. Click, requests, Flask, etc. are great examples of this to me.

Sphinx and other tools can be leveraged for all of that. But it does have to be written and maintained.

And not having access to the source (internally or externally) kills me for app dependencies. Sometimes I need to look just to understand the doc or see if I’m making a mistake or there’s a bug. Not trying to get into OSS philosophy, just the practical part for me.

Even the official Python docs can stink in places. The subprocess module replaces X, Y, and Z to be “simpler”, but if you want to know the method args, go read the docs on the thing it “replaces.”

I love “native” apps on my mac, and pay for quite a few. But I’d never try to make one. Even XCode is befuddling to me. It’s not an IDE, it’s an opaque RAD that makes me nostalgic for early 90’s Delphi.

salmo··on Zero downtime Postgres migration, done right
Well, this and

1) the illusion of "support" 2) OSS-fearing companies' love of indemnification

salmo··on Vivaldi 4.0
It’s weird how this cycles. Firebird/Firefox was originally an amazingly light browser (discounting some niche Linux ones that embedded Gecko).

Then it got huge, and Chrome was amazing. And it seemed impossible for FF to be able to work out the technical debt.

Now Chrome often makes the fan kick in on my MBP and Firefox is lighter again in CPU and memory.

I think Safari is probably best in this regard on this machine, but I just don’t enjoy using it. Not sure why. Maybe I’m old and it’s just change.

Sadly, I did hit my first work website that only worked in Chrome this week. No FF, no Safari.

salmo··on ST3000DM001
Yep. We had maybe 60 of these. I think 2GB, but can’t remember for sure. We were all Compaq desktops and servers (Toshiba laptops for sales) but much smaller so no clout.

We bought some drives to rotate while we waited for RMAs, but the ones we got back failed too, so we just ended up keeping a stack of drives ready to swap.

They sat next to the spare dongles for the PCMCIA Ethernet cards, that the sales folks would inevitably break by tilting the laptop on it to get at a piece of paper on their desk.

That was a fun time being a small IT shop playing with WinNT and early Linux. We did everything from writing internal apps to running Ethernet.

3 guys in a glorified closet using post-its as our ticketing/user story system. Very IT Crowd.

← PreviousPage 7 of 10Next →