HNHacker News
TopNewBestAskShowJobs

mcronce

1,005 karma · joined March 31, 2020

submissionscomments
mcronce··on Turning my Framework laptop into a tiny desktop
The Gitlab microservices run Gitlab; the Harbor microservice runs Harbor. ntfy and Nextcloud are their own services, and coredns serves DNS to the network. The MySQL backup processes are for small apps I host for myself and for a friend's bar.
mcronce··on Turning my Framework laptop into a tiny desktop
I've got one in use (it was my father-in-law's desktop PC when he was still alive) as a node in my k8s cluster. It's currently got a couple of Gitlab's microservices, one of Harbor's microservices, ntfy, Nextcloud, coredns, and a couple ephemeral MySQL backup processes running.
mcronce··on Customers report missing deposits from Wells Fargo bank accounts
How they still have customers is also beyond me. They're awful to deal with.
mcronce··on Nuked-MD-FPGA – Emulating Sega Mega Drive chipset using decapped chips photos
I can't speak to the Genesis specifically, but in general software emulation introduces tiny inaccuracies, in the form of missed inputs (because of things like context switches - it's important to note that, while these old consoles were hilariously slow compared with modern hardware, they were single-threaded), slightly incorrect emulation speed, things like that.

For most people, myself included, this doesn't matter at all.

For people looking for an extremely "pure" original experience, this is the closest you can get to original hardware - which is getting both more expensive and lower quality with time.

For the competitive speedrunning scene, incorrect emulation speed is a non-starter in some categories, and dropped inputs are a huge problem when they happen.

mcronce··on SMS traffic pumping fraud
TOTP is a standard; if your vendor supports it, that _is_ them agreeing on something.
mcronce··on Damaging results of mandated return to the office: it’s worse than we thought
I will say that, personally, I miss the office sometimes. If I had a 45 minute (per direction) or shorter commute I'd say my perfect world would be getting together in an office with my immediate team 1-2 times a week. It's just so much easier to have thoughtful discussion in person than via teleconferencing; I also, selfishly, enjoy the social aspect.

The other side of the coin is that solo work - e.g. slinging code - is a lot easier to get done at home with fewer distractions.

All that said, if my choice is between the extremes of mandatory RTA and full-time WFH, I pick full-time WFH ten times out of ten.

mcronce··on Rust Absolutely Positively Sucks [video]
* Sum types, and with them, exhaustive match checks

* Immutability by default, including a warning for unnecessary mutability

* Usable documentation even when the library author wrote none

* Extremely low-friction testing, including fuzzing

To name a few.

Racing to get an HTTP service that starts but doesn't do anything you want it to do correctly isn't really useful; in my experience, that's the only advantage e.g. Python, Go, etc really give you over Rust.

mcronce··on Rust Absolutely Positively Sucks [video]
This is predicted on the assumption that the only benefit of Rust over mainstream GC languages is performance, which is false.
mcronce··on The world’s largest wind turbine has been switched on
Although I'm glad it's not reality, the imagery of a massive wind turbine whizzing around at 420 RPM is pretty amusing
mcronce··on Alcohol without the hangover – scientists are finding ways
> The (main) problem with alcohol-free 'beer'/'wine'/etc. isn't the lack of drunkenness feeling?

That depends on your goals. I like to catch a buzz once in a while but the majority of the time I'm drinking is because I really love the flavor of my favorite cocktails and the quality would be very poor as mocktails.

Using a Mai Tai as an example, of I could get a couple 0ABV rums, I could sub clarified orange juice for the orange liqueur and probably have something pretty good with no booze in it. I'd be quite happy with that.

mcronce··on Coroutines for Go
I'm guessing it was downvoted for mentioning Rust ¯\_(ツ)_/¯

For sure - it's a little terse, just to demonstrate the various cases

  async fn do_something_async() {
    nonblocking_sync_call();
    tokio::task::spawn_blocking(blocking_sync_call()).await;
    async_std::task::spawn_blocking(blocking_sync_call()).await;
    async_call().await;
  }

  fn do_something_sync() {
    nonblocking_sync_call();
    blocking_sync_call();
    futures::executor::block_on(async_call());
  }
There is _a bit_ of ceremony required to bridge the two, but it's pretty minimal.

If you want to know more about any of that, happy to explain or provide links for further reading

mcronce··on Tesla created secret team to suppress thousands of driving range complaints
Either that or you're limited by revs - in other words, there's enough net torque that, in the highest gear, the engine is running at redline before wind resistance stops you accelerating.

You don't see that much these days, though, as having your highest gear that short is just leaving fuel economy on the table on the highway. If you can pick up speed going uphill without changing down at least one gear, you're wasting fuel to pumping losses on flats/downhill.

mcronce··on Coroutines for Go
Not sure about in Python, but in Rust, you can easily bridge sync and async code. The function coloring problem is, at least in that case, grossly overstated.
mcronce··on Zoom fatigue unpacked
You woke up and chose violence
mcronce··on Spotting and avoiding heap fragmentation in Rust applications
Not OP, but I've tried it in a handful of projects and haven't seen a measurable improvement to performance, memory utilization, or heap fragmentation. That said, it's easy to try out different allocators; I recommend giving it a shot for your specific workload, because IME they tend to perform very differently in different applications.
mcronce··on Spotting and avoiding heap fragmentation in Rust applications
I agree that there could have been a more satisfying conclusion, but it is worth noting that jemalloc isn't a panacea. I've seen issues similar to Svix in both Rust and C++ applications that were heavy on ephemeral allocations, and have fixed it by doing all of the following, depending on the specific process:

  * Switching from libc malloc to jemalloc
  * Switching from libc malloc to tcmalloc (dating myself a little bit)
  * Switching from libc malloc to mimalloc
  * Switching from jemalloc to mimalloc
  * Switching from jemalloc to libc malloc
  * Switching from mimalloc to jemalloc
Possibly others; I only want to list cases I'm 100% certain of.

Heap fragmentation is just a reality of some allocation patterns without a GC runtime.

One certainly can (and, in some cases, should) make their application more allocator-friendly, but - aside from some often-low-hanging fruit - this is a time-intensive process involving a bit of, for lack of a better word, arcane knowledge (I should inline all my fields and allocate on the stack as much as possible, right? Yes, well, except ...)

If you already have a halfway decent benchmark suite or workload generator, which you'll want for other purposes anyway, it's often a lot quicker to just try a few other allocators and select the one that handles your workload best.

mcronce··on Rust's Poor Composability
Also,

  let res = iterator.iter().map(|x| x.foo()).collect::<Result<Vec<_>, _>>()?;
mcronce··on “Inside-out Wankel” rotary engine delivers 5X the power of a diesel
If you ignore units, sure.
mcronce··on “Inside-out Wankel” rotary engine delivers 5X the power of a diesel
Torque to power is just (torque * RPM) / (some constant depending on the units inolved). With ft-lbs and horsepower, that constant is 5252; with N-m and kW, it's 9549. The only thing that changes is the constant.
mcronce··on “Inside-out Wankel” rotary engine delivers 5X the power of a diesel
Simplifying things in this comment a fair amount, but...

Extracting more power is, most commonly, a matter of burning more fuel, which requires more oxygen. This increases combustion chamber pressure, which drives the piston down with more force; that force is converted to rotational torque and ultimately drives the wheels harder, pushing the vehicle forward faster.

More oxygen can be added in any number of ways; less restrictive intake/exhaust parts, larger valves, cams that are more optimized for whatever load/engine speed you want to produce peak power (or are more optimized for output than, say, economy or emissions), supercharger, turbocharger.

Adding fuel is more straightforward: A higher capacity pump and/or bigger injectors/carbs.

You can also switch to pistons that will compress the air/fuel charge more. This also increases combustion chamber pressure.

You can also run the engine at a higher speed, which will often warrant different cams, stronger valve springs, etc. May also require bottom end uprated components that can handle that task (connecting rods, pistons, bearings, crankshaft).

On the subject of bottom end components, depending on how much you increase cylinder pressure, you may need to upgrade those.

You can also increase output power by reducing losses - a lighter flywheel is a common example with enthusiasts.

Every single one of these involves a trade-off. A lighter flywheel impacts drivability; removing intake/exhaust restrictions and adding forced induction components will both make more noise; etc.

mcronce··on “Inside-out Wankel” rotary engine delivers 5X the power of a diesel
Typical Otto cycle 4-stroke piston engines do two rotations for a single cycle. Wankels are more complicated; each rotor face acts as a separate combustion chamber and all four strokes happen in a single rotation. It looks like the situation is similar with LiquidPiston's implementation.
mcronce··on NYPD is refusing to comply with NYC’s new surveillance tech laws
TIL there's a name for that. I guess it makes sense that there would be, I just had no idea.

Anecdotally speaking I've seen them in Pennsylvania and Maryland, but super uncommonly.

mcronce··on NYPD is refusing to comply with NYC’s new surveillance tech laws
A well-intentioned version of this is just having a couple of the overhead lights on - not strobing, and not running red lights.
mcronce··on There's something off about LED bulbs
> if you do know what it is you can't shop for it if it's not on the spec sheet

This drives me absolutely insane. When we were shopping for a TV for the living room a few years ago I wanted a 120Hz display. Finding one was a pain in the ass because all anybody wanted to list in marketing material was the backlight strobe rate; you had to dig and dig to find the panel rate.

No, I don't care that you can flash the backlight at a thousand Hz, I want an actual panel that's well synchronized with 24FPS content, and I don't want to spend hours of research to figure out which displays have one.

mcronce··on Rust Is a Scalable Language
> I didn't know what data (types) were passed around when looking at parts of the code, so I had to look were the data structures were created, adapted and passed along to actually know more (or just debug it)

It's even better when all those data structures are just dicts, because it's too cumbersome to make serializable classes, so good luck figuring out what fields are in which.

mcronce··on Sex worker-led payment platform shuts down after being cut off by processor
NHTSA stats show increased traffic fatalities following the time change every year
mcronce··on Hyundai promises to keep buttons in cars
The other day my mom was at our house, parked next to me. She got in her car to leave at the same time I did. I pulled out my phone and put on some music - noting that it was weird that I needed to do anything at all, typically it just resumes playing as soon as it connects to Bluetooth.

But I didn't get any audio. That's weird. Until she drove away and the music started playing through my phone's speaker a few seconds later, and I realized that it connected to the wrong head unit.

mcronce··on Bitwarden PINs can be brute-forced
I agree with you. Short PINs are for preventing well-intentioned people from accidentally using the wrong account (which I do consider quite valuable, for the record) - not for keeping bad actors out.
mcronce··on Reddit has been down for more than an hour
Write a Medium article about your color preferences and link it. You might even make a few cents!
mcronce··on Getting Past “Ampersand-Driven Development” in Rust
I'm with you. Getting something working is a lot quicker when the "cargo check; fix errors; cargo check" loop catches the vast majority of your bugs than building a container image, uploading it to staging, and finding the magical combination of inputs that triggers that code path.
← PreviousPage 4 of 12Next →