HN user

theamk

9,450 karma
Posts30
Comments3,883
View on HN
en.wikipedia.org 4mo ago

Blackbird (Wind-Powered Vehicle)

theamk
1pts0
www.experimental-history.com 4mo ago

It's weird to have a skull full of poison

theamk
6pts1
artificesecurity.com 6mo ago

Physical pentester story: Bypassing Bank Security (Part 1)

theamk
3pts0
alpr.watch 7mo ago

alpr.watch

theamk
915pts443
news.ycombinator.com 7mo ago

Ask HN: A software to track errors and group into root causes?

theamk
1pts5
phys.org 10mo ago

Themis (European Reusable Rocket) is assembled on launch pad

theamk
113pts104
support.google.com 11mo ago

YouTube rolls out age estimation model in US to detect people under 18

theamk
3pts0
github.com 1y ago

Low Cost, High Speed Data Acquisition over HDMI

theamk
4pts1
www.theregister.com 1y ago

Judge wants lawyer fined $15K for using AI slop in filing

theamk
7pts4
ieeexplore.ieee.org 1y ago

The origins of 60-Hz as a power frequency (1997)

theamk
171pts251
www.space.com 1y ago

Asteroid Ryugu sample got 'rapidly colonized' by Earth bacteria

theamk
6pts1
fedoraproject.org 2y ago

Fedora proposes retiring Python 2.7

theamk
3pts0
www.bigmessowires.com 2y ago

A Tale of Three Bidirectional Level Shifters (2022)

theamk
2pts0
www.openwall.com 2y ago

Glibc Buffer Overflow in Iconv

theamk
185pts103
www.msn.com 2y ago

Toyota Made a Bet on Tech. Things Went Wrong Fast

theamk
1pts0
planetwild.com 2y ago

We’re Reviving a Poisoned River

theamk
1pts0
www.atlasobscura.com 3y ago

A Deadly Camping Trip Revealed an Arms Race Between Snakes and Newts

theamk
1pts0
<ahref="bugreport.cgi 4y ago

Debian Dropping Chromium

theamk
2pts2
www.openreach.com 5y ago

Second-hand TV wipes out broadband for entire village (2020)

theamk
2pts0
0x0.st 5y ago

Last Moments of Old Freenode

theamk
5pts0
meta.stackexchange.com 5y ago

StackExchange Amazon links are rewritten to add affiliate codes (2009)

theamk
3pts0
tomscii.sig7.se 5y ago

Zutty is the best X terminal emulator you have never heard of

theamk
7pts0
olimex.wordpress.com 6y ago

Bye-Bye Mastodon, our account on Fosstodon.org was deleted yesterday

theamk
6pts1
github.com 6y ago

Dan Luu's collection of debugging stories

theamk
29pts1
www.jefftk.com 7y ago

Adventures in upstreaming: submitting patch to sourcehut

theamk
1pts0
ed-thelen.org 7y ago

Programming Konrad Zuse’s Z3 (PDF, 1997)

theamk
2pts0
tavianator.com 7y ago

BFS – “find” replacement which does breadth-first search (2016)

theamk
5pts1
utcc.utoronto.ca 7y ago

ZFS's GPL-incompatibility and the Linux kernel

theamk
2pts0
lambdastack.io 8y ago

AWS S3 VS On-Premises (2017)

theamk
3pts0
www.technologyreview.com 9y ago

AOSP for cars: Baidu will release its self-driving platform known as “Apollo”

theamk
3pts0

instead of pointing me to 2K lines file, can you answer the question directly?

if I add a gigabyte of photos and then close the lid of my laptop, who is storing those? Do I choose specific nodes I trust, or is it assigned randomly? How much do I need to pay them for this? What if they turn off the server, do I lose all the data?

you are really not reading jameskilton's comment, are you?

the internet is already decentralized. "Anyone can hook up a computer to the Internet and others can immediately access it". This means: cloud - don't need it, platforms - don't care, app store - why would a webpage need it.

This leaves domain names, cert authorities and search. Decentralized alternative s for all of those exist already, and frankly they are much better than your project.

despite having "OS" in the name, it has nothing to do with operating systems.

It's a local node.js app you run, which connects to their own mesh network, and somehow fetches the user data from the P2P mesh.

The P2P mesh is supposed to be uniform, "No masters, no workers, no special hardware" - but later in the README, they mention (1) users paying for storage and bandwidth (2) other users hosting the servers at their home using two different hardware classes. So it seems there is a pretty clear client/server distinction - even if the code is identical, the functions are not.

It is not clear how the data is stored - if I add a gigabyte of photos and then close the lid of my laptop, who is storing those? Do I choose specific nodes I trust, or is it assigned randomly? How much so I need to pay them for this? What if they turn off the server, do I lose all the data?

There is your usual "your identity is your keypair" deal, this time they recommend a USB stick for this, created from 24-word keyphrase. The good news is it makes the backup easy. The bad news is anytime you leave it unattended, someone else could copy your keys.

Just like with all other distributed systems of this sort, if you either lose your key (and have no backups), or someone else steals it, you lose control of your account forever and there is no way to recover.

There is its own cryptocurrency (of course!), which you can use to buy "Compute time, Storage, Streaming, Content from creators".

There is AI support of course, you can get paid for providing hardware which can run AI, and you can pay to run your queries on someone else's machines.

I have no doubt that Windows internals are at least as complex as Linux internals. Actually they are likely much more complex - all that backward compatibility won't shrink the API surface or make it easier to program.

But are they "advanced", in the sense of "to make progress or improve"?

Take filesystems for example... Linux has zfs (this one actually came from Solaris, but the latest versions come from ZfsOnLinux), btrfs, bcachefs was pretty cool if not for all that drama. What about Windows? It has NTFS and ReFS, the latter is for enterprise segments only, and is less capable than ZFS. Don't get me wrong, I am sure that ReFS is very complex - it has many lines of code and managing it is hard, it's just it has less features than zfs.

So if you love filesystems, and want to make a difference there, which OS should you work with? Linux, or some sort of BSD.. anything but Windows.

Now, what about networking? I've read about some marketing blurbs about Windows networking features that could mean something innovative. Unfortunately that was it - marketing blurbs. No technical designs, packet formats, no blog posts... You have to go to Linux/BSD for this.

Maybe security? There is a lot of information about Windows security, because it is such a popular target. But what about active defenses? Kernel hardening, sandboxing, lightweight VMs, etc...? This all originated outside of Windows.

Now, I am happy to admit that Windows is a very complex system, and that Microsoft did a great job polishing everything and presenting it to user. Microsoft is also great at taking an experimental systems and getting them in front of everyone (all that GUI hardening comes to mind).

But if you are interested in progress of operating systems and adjacent things, the projects which advance state of the art and introduce ideas no one has implemented before... Don't look at Windows.

As common with AI-based commit message generators, this does not answer any of the interesting questions:

- Why was this project started?

- How is is it different from alternatives which do the same?

- What is development focused on? (and no, "making the best product" does not count. Is is "easiest UI for new users"? Or "experimenting with next.js"? Or "highly customized for my own use case"?)

advanced work != advanced tools

You can have basic and not very user friendly tool, and work on very advanced topics, such as new forms of networking, innovative database, cool filesystem or storage devices, etc...

Or you can be an advanced windows developer with very nice tools, and yet work on something utterly mundane, like an internal app which tracks time off in your company, schedules delivery of parts, or provides a (granted, very nice and polished) UI to the backend database server which runs Linux.

In my experience, most of the advanced work is done on Linux nowadays. Just look at HN front page - how many posts are Windows-only and are not "new UI over existing library/service"?

For external events, like code update or new publish, sure. But the author talks about scheduled events - it's harder to think of good examples here.

(because with scheduled events, if you missed deadline once, there is a good chance that restarting with exactly the same deadline will miss again, and again, and you will never finish. Better do "prefer old" and at least have _some_ finished data)

The title of the post is "Tokio/Rayon Trap" - those are two very well known Rust libraries.

(in case you missed it, authors mention them later and explain what they do: "Use Tokio for I/O, and send CPU-bound work to a dedicated thread pool like Rayon.")

Authors have whole section ("The Work-Stealing Myth") on Erlang.

Author's proposed solution ("Project Tina") is a new programming language written in Odin.

How on earth do you read this all and start talking about Javascript problems instead?

I think the the second part was kinda obvious? The moment I read this:

If you’re anything like me, you would probably have said Parallel Spawn, Prefer New, and Wait are perhaps defensible, whereas Prefer Old feels weird/backward.

it was pretty obvious I was not anything like him. My intuitive answers are pretty different.

- Parallel Spawn is useful, but it's orthogonal to the rest. Even if you have 4 workers, you'll still have to worry about hitting concurrency limit once you have enough jobs. What is it even doing in this list?

- Wait is very useful for non-scheduled tasks: if user uploaded 100 files to process, you better process them all. Sometimes you need limit, sometimes you do not (let them queue for a while until devops notices and either allocate more workers or clear them and has some harsh words with consumer).

For scheduled tasks, "Wait" seems much less useful. I can come up with a reason but they are all somewhat convoluted - perhaps you are hitting 3rd-party service, and it has a quota, so you've decided to use scheduler to avoid hitting ratelimits?

- "Prefer Old" is normally the best way. You repack takes 3-8 hours, so you set your timer to "every 1 hours, skip if running already" and you can be sure that your job finishes and the next one will start.

- "Prefer New" seems almost useless. You've already spent all this effort doing the job, why are you cancelling it and throwing away the results? If you want to add a timeout, add a timeout, preferably to specific operation. For example, if there job starts by fetching data, and this fetch can be super slow, use 'Prefer Old' and put a timeout on the fetch part. This way your job won't be interrupted if the fetch just finally succeed minutes before next scheduled interval hit.

Oh, and re "If the Prefer Old semantics are not offered, you can’t really emulate them using the two primitives of regular scheduling and limiting concurrency." - you totally can. Set concurrency to 2, and add as a first thing: "fetch the list of jobs running; if there is anyone except me, exit right away".

Really, not that tricky at all.

Don't your kids go anywhere by themselves? Or do they stay at home / only get ferried by the parents?

A bus-tracking app on my phone completely changed how I interact with public transit, and made it significantly better. I remember waiting for the bus when I was 14, and I would not wish this to anyone.

A maps app is great when you are going to less-familiar places - either into the big city, or into large parks (although not every kid is ready to be hiking in the parks before 16)

I spent all of my childhood with a (large and ugly) digital camera on my belt. Phone is much smaller, and for the kind of pictures I was taking, the lower quality does not matter that much.

Sure that had to justify it, people were writing all sorts of posts about how Bun was no longer trusted since it was rewritten with Rust.

Bun's post was explanation of that process that was (IMHO) pretty reassuring in that the new version of Bun is not 100% garbage.

(Now in the ideal case that post would be released before, or at the same time as, rust-based source code on github... Then there would be much less drama)

The research is good - range tracking is something that ever verification model should do.

But reading words "Arduino" and "safety critical" in the same sentence jars me every time. Yes, Arduino ecosystem is large, and it is very easy to get started with it. But it's precisely for this reason it's full of awful quality code and bad practices. Most of the libraries have no error checking, no data validation and use APIs which will happily provide invalid data.

Or, in shorter words: "I don't care, stop wasting my time"

I get those kinds of question all the time ("I like A more but C is the fastest; what do you think?"), but when I don't care or don't know, I prefer to say this directly:

"I am not very familiar with this area of the code, so I can't really answer"

"I'd need to do some research for that, but sadly I am pretty busy. But I like simple solutions, it would be nice to do this without yet another microservice of possible"

Just saying "Ask Claude" seems pretty rude.

Why would you even want to do that?”

I dunno, man, it’s the job I was given. Do you know or not?

That's pretty sad to hear, and that's the hardest thing about working with junior engineers (or nowadays, with LLMs). Someone made a wrong assumption that a thing is possible, gave the wrong instructions, or simply phrased things badly, and now that person (or LLM) is trying to solve the impossible task instead of exploring the alternative approaches.

If it's LLM, the solution is simple. For a human, I usually bypass them and go to their senior directly: "Hey, did you task jagged-chiesel to transmogricate the frobnicator? This is a pretty complex task and our transmogricators are not trally desinged to work on frobs. What was the task you were trying to solve? Perhaps it's time to look into fizz-buzzing instead?"

(Or alternatively, if I am feeling tired that day, I will simply say that I don't know rather than engage. Because working on complex tasks with someone with "I dunno, man, it’s the job I was given" attitude is an exercise in frustration and will likely increase amount of tech debt too)

That featur is opt-in: someone had to check a checkbox somewhere to enable it.

And yeah, that how the businesses work: you opt-in to feature, then you start paying for it. Sometimes the latter part is delayed, in which case it's a good style to send heads-up email about it. Nothing unusual or scammy about it.

GitHub Code Quality is available for organization-owned repositories on GitHub Team and GitHub Enterprise Cloud plans.

Both of those are paid plans, so the billing information available. As the message says, this email is not for individual user, but rather for github org admin. I guess someone made the poster an admin, they are receiving admin-only messages and are freaking out now?

access to this data is being limited to a repository's own admins and collaborators.

Sounds fine to me? Why would a random third-party need to know which repos do I star, and who stars my repos?

2nd paragraph of blogpost:

A hash of all files is checked against known hashes on sum.golang.org to prevent tags from being replaced, and it uses a proxy to prevent repos from being left-pad’d.

there is no need for 3rd party hosts to stay online. It's the best combination of de-centralized and centralized approaches.

Re pre-buiild packages: Python makes a difference between source and binary wheels. This approach is obviously for source wheels only.

Super naive tweet, there is not even a picture of the drive inside, not an output from smartctl or something.

Seagate makes multiple lines of of HDD drives - which one is inside? Is it the same line of drives that's in Seagate-branded external drive or not?

LoRa is 3-4 kilobytes/second, slower than a dial-up modem. And there are duty cycle limits too. This is ideal for text messages and occasional telemetry. But 'full-on SSH session'? or even worse, 'Git history, issue tracking, release distribution'? That sounds like a really bad fit.

A single person pulling a single git repo may easily occupy multiple LoRa channels for hours. That sounds like a horrible idea. Some things simply should not be unified. The low-bandwidth world and high-bandwidth worlds have completely separate protocols and do not belong together.

There are not that many novel things to do,

I am currently work on embedded / low-level / devtools and there are tons of novel things to do. Perhaps the "programming" skills are not needed as much, but demand for "engineering" is as high as ever.

Maybe it's the case in web dev? TFA shows that the number of "web developers" is decreasing strongly.