HN user

davidhyde

2,805 karma

Curious software developer

Posts0
Comments556
View on HN
No posts found.
We mourn our craft 6 months ago

My take on the difference between now and then is “effort”. All those things mentioned above are now effortless but the door to “effort” remains open as it always has been. Take the first point for example. Those little black boxes of AI can be significantly demystified by, for example, watching a bunch of videos (https://karpathy.ai/zero-to-hero.html) and spending at least 40 hours of hard cognitive effort learning about it yourself. We used to purchase software or write it ourselves before it became effortless to get it for free in exchange for ads and then a subscription when we grew tired of ads or were tricked into bait and switch. You can also argue that it has never been easier to write your own software than it is today.

Hostile operating systems. Take the effort to switch to Linux.

Undocumented hardware, well there is far more open source hardware out there today and back in the day it was fun to reverse engineer hardware, now we just expect it to be open because we couldn’t be bothered to put in the effort anymore.

Effort gives me agency. I really like learning new things and so agentic LLMs don’t make me feel hopeless.

TSMC Risk 6 months ago

“I would ban the sale of semiconductor manufacturing equipment to Chinese fabs”.

Ahem, ASML, who makes the manufacturing equipment for TSMC is a Dutch company, not a US one.

I wonder if this is the same reason why Microsoft's Remote SSH plugin on VS Code is so flaky even with a decent internet connection. Every couple of months I try to give it another go and give up due to the poor keyboard latency I inevitably experience. And the slow reconnects whenever I glance away from my computer monitor briefly. This is on a fiber connection with a 20ms ping to the remote machine.

JPEG XL Test Page 6 months ago

Works with Waterfox on macOS but curiously not Firefox. I wonder if their search deal with Google included keeping the image.jxl.enabled setting off.

Yes and yes. I make open source software because I fundamentally enjoy the act of learning something new and then applying that knowledge by making something. I publish it for the ego boost only. I am equally likely to be irritated by contributions than to be excited by them. My day job contributions are up for scrutiny but the personal projects I publish on github are my island, my sovereign ground. As exciting as PR interest is, sometimes I don’t really want someone to paint over my painting. It’s mine after all. I obviously don’t speak for all open source contributors but I don’t want compensation. If someone wants to fork my work and turn it into a community then they are free to do so as a result of my licensing choice. If the first few contributions I receive are pleasant and someone takes over then that is great too. My point is that not all creators are aggregators. Leave us alone and stop complaining. We gave it away for free after all.

Thanks for the links. To the limit of my influence I try to protect my team from distractions, be fluid about methodology (constant agile churn can be depressing), limit the toxicity of pull requests, and to spend as much time with them as I can. A happy team is a productive team. Oh and I try not to work with leaders who obsess over Gantt charts. To me estimates are more about trust and respect rather than metrics and velocity. It has to be the right kind of company though.

< “Those often require estimates in much the same way they're required from Star Trek's engineers: so the people with main character syndrome have something to dramatically ignore or override to prove their dominance over the NPCs and material reality.”

This is so good.

“ After heating the swatches to simulate aging, they treated the samples for 10 minutes, by soaking them in a hydrogen peroxide solution or exposing them to the blue LED or UV light. The blue light reduced the yellow stain substantially more than hydrogen peroxide or UV exposure. In fact, UV exposure generated some new yellow-colored compounds.”

They did test with UV light. The sun is broadband (it will have both blue light and uv light) so it works to a degree. The insight is that uv generates some new yellow coloured compounds and only using blue light prevents this.

Retry Loop Retry 11 months ago

Here are some more points to consider.

1. Allowing user initiated early retry exit. Nothing is stopping some other developer from wrapping your function-with-retries in their own retry-able function. And then another developer even further removed from the details to wrap that one again. Now you have n pow 3 retries and you have services timing out after an hour instead of milliseconds or seconds. Remember that your function-with-retries can just look like a slower flakey function to them. Perhaps exposing the retry variables in the api is the answer, perhaps not.

2. Code readability and debug-ability. Wrapping a piece of work in a function pointer and giving it a generic name like “action” increases cognitive load and makes the codebase slower to read. This is especially true if the contents of the action is so far up the boilerplate chain that the developer has already forgotten what it does. This is a part of the codebase that will be read to troubleshoot the failure so it helps if it is self describing.

3. In my experience, retries are often added when the failure mode is not well understood or as a quick hack to get things over the line. However, we sometimes cannot control what we call so they are an also valid mechanism to use under certain circumstances.

Loved the write up, well done to the author. I get the same feeling building stuff with freecad and then printing it. Feels like there is no limit to what can be done. After going through the growing pains of designing stuff that was just poor and difficult to print I’m now confident enough to send it to be printed by jlcpcb or pcbway. And when they tell me to accept the risk of a failed print then I think, “I feel your pain, good luck”. So far I have never gotten a failed print back. Maybe a little warped but way better than my attempts. If I never have to use my large resin printer ever again I will be happy.

On the pcb front, I dread going through those final steps in the pcb ordering process. No matter how many parts I preorder, there is always something that is unavailable. So much churn in component availability.

The consensus appears to be that this is theft but it’s worth considering that it could also be many other things. It could be paperwork mixup with the purchase of a legitimate plane. The previous owner could have had his plane sold without him knowing about it (identity theft). There could be all sorts of reasons. The fact that the alleged is not hiding this newly acquired plane is a little strange to me.

This one time, traveling through Asia, a simple merchant transaction triggered a fraud alarm on my card. The default for my bank at the time was to cancel my card automatically. This was before the days where cards could become unblocked. I had to travel to another city to pick up a new card in 10 working ways. This was a Mastercard credit card. I thought I was smart traveling with both a mastercard and a Visa card. Well, the Visa card was automatically cancelled too. Due to the same event. No cards for me to use to get to that city and I had to resort to a dodgy western union transfer to move forward. Also, try booking a flight with cash, it’s not fun.

My point is that the basket that eggs are put in is not always clear in hindsight. I wasn’t even aware that Mastercard and visa shared fraud alerts and that they were automatically linked.

The author’s article is not about backups, it’s about accountability.

This problem is (so far) solved by the editions feature. Breaking changes can be made to the language without splitting the ecosystem (like python 2 vs 3).

https://doc.rust-lang.org/edition-guide/editions/index.html

Rust has a 6 week release cycle and a big complaint is that the language isn’t changing quickly enough so there is pushback from both ends to take into account here. My take is that there are only hard problems still to be solved given that that they need to be solved in a zero cost way.

Bluetooth LE which most smartphones support today is quite a bit different from Bluetooth classic. It typically runs at 1 or 2 Mbps and can trade bandwidth for error correction to get some impressive range. For example, this guy got 1.6 miles at 8dbm transmission power. https://devzone.nordicsemi.com/nordic/nordic-blog/b/blog/pos...

The audio codec on ble is more modern too.

“You can't even hear a ok quality music further than 20 metres away” That smells like the SBC codec running on Bluetooth classic to me. Very different tech.

“ While testing was conducted at 60 FPS, the response times even fall short of this low bar, with 16.67 ms being the slowest response time required for the pixels to refresh between frames”

Well it’s actually 16.66 ms (1000 / 60). You can’t round up. A render loop that takes just a fraction more than the absolute minimum above would neck down to 30fps.

“ Unlike pesticides or other chemical control methods that mosquitoes can develop resistance to, this method uses the mosquitoes’ own biology to deliver the control agent.”

I don’t understand why mosquitos can develop resistance to chemicals but not a fungal infection, regardless of the delivery method. Can Raymond shed some light on this?

“async has a relatively high complexity cost for us due to the 'static bound (cc)”

I stand to be corrected but I believe that this is design choice of the Tokio async runtime and not a Rust design choice. For example, the Embassy async runtime does not have this bound but then you have to handle pinning yourself. Also, the static bound is supposed to lower the complexity cost, not raise it.

From the photos, there appears to be more than one sensor on the device which may be used to tell which direction the large object is coming from. Unless you were cycling backwards or mounted the device the wrong way around you shouldn't have any stationary cars passing you. Just a guess though.

This is an excellent read. I was expecting a Rust rant but was instead treated to a very well thought out article about how to write more defensive code in Rust. Highly recommended.