MurphyA/hacker-news huggingface dataset:
by NGRhodes | 2025-05-24 09:55:51+00:00
Microsoft’s vscode source code is open source (MIT-licensed), but the product available for download (Visual Studio Code) is licensed under this not-FLOSS license and contains telemetry/tracking. The VSCodium project exists so that you don’t have to download+build from source. This project includes special build scripts that clone Microsoft’s vscode repo, run the build commands, and upload the resulting binaries for you to GitHub releases. These binaries are licensed under the MIT license. Telemetry is disabled.
by erickj | 2025-05-24 09:57:16+00:00
The legality of who owns that work will depend on your work contract and your local employment law.

You very well might create something, turn around to sell it to them, and find out that your employer legally owns the copyright to the work even if you did it on your own time with your own resources.

Employment law is nuanced.

Tldr; bring your work contract and your idea to a meeting with an employment attorney and ask them who would own this work.
by BSTRhino | 2025-05-24 09:58:15+00:00
Sorry for the slow reply!

I think maybe the Twitter might be the best place to follow for blog updates: https://x.com/MadeWithEasel - I will definitely be posting about every blog there once I get there.

On the adaptive delays: I have a multiplayer game which gets about 100 players a day and it has been interesting seeing how they have all reacted to various iterations of the netcode. The overarching thing I've learned is that latency is quite psychological, it's the difference between expectation and reality that matters. In other words, high latency doesn't necessary mean an unhappy player, if they are expecting the high latency.

First though, the amount of rollback is limited to what the player's device is able to handle (there's yet another algorithm I've made for collecting statistics and estimating this!) Some devices cannot handle any rollback at all and so unfortunately sometimes rollback netcode isn't solving anything for those players. I think these are the cases where the adaptive latency is more important.

We sometimes would have games where we have 3 people from the US playing happily together, and then 15 minutes later 1 person from South Korea would join, and the latency would jump up dramatically for everyone. The US players would feel the difference and become unhappy. The simplest way to explain what Easel does now is it places the server at the weighted-average midpoint between all the players. So in this case, you can imagine that the server started in the US, and the moved 1/4 of the way towards South Korea (since 1 out of 4 players are in South Korea). I have found this to be the most fair and the key thing is the players find it to be fair. It matches how they think the latency should be apportioned and so they are okay with it.

Recently though I added a feature which splits the world up into regions (it's more complicated than it sounds because the regions flex around the players a bit, see https://easel.games/docs/learn/multiplayer/regions). By default, you only play with players near your region, but you can switch into Roaming Mode and play with people all over the world. The trick here is, when the player chooses Roaming Mode, they are explicitly choosing high latency, which changes their expectations. When they get high latency, they expect it, and so they are happy. The funny thing is, the algorithm used to automatically assign them the same high latency in these situations but players didn't like it because they didn't have the choice.
by Geo_ge | 2025-05-24 09:58:22+00:00
I went through a similar process recently while building a solar powered Raspberry-Pi based GNSS receiver.

(like the OP) I originally looked at a very low power/speed GPIO modem, but it wasn't very stable and not really suitable for what I needed.

I ended up with a SIM7600G-H-M2 4G HAT on a Raspberry Pi 3b+: https://www.waveshare.com/wiki/SIM7600G-H-M2_4G_HAT

It's a bit pricer but very capable and well documented. There is a physical switch to enable power input for the modem over a separate USB to the data connection, so the power for transmission can bypass the Pi electronics.

After fiddling with the first modem for hours, this one was working in less than 5 minutes with RNDIS: https://www.waveshare.com/wiki/Raspberry_Pi_networked_via_RN...

I noticed during testing that the 4G connection would sometimes drop and require manual intervention to reset... So I added a systemd timer to test the connection and bring the interface down/up again whenever it disconnects. No problems since then, now with two months of uptime with ~200MB upload per day :)
by chthonicdaemon | 2025-05-24 09:59:35+00:00
It sounds like you expect the collaborator to have one jupyter installation that you would pollute with the kernel. In my projects that use jupyter, I always have jupyterlab as one of the dependencies. Not sure about the naming part, since I usually just put my project in a directory named for the project, and uv uses that name for the venv, so I literally have never had to "come up with some name for the kernel".

In my case, I usually cd to the project directory, activate the associated environment, then do one of the following to work on a notebook in one of my projects, `jupyter lab`, `pycharm .`, or `code .` and go from there. In all of these cases, I get the ability to open notebooks that make use of this environment, either in the actual Jupyter lab interface, or in the tool's notebook interface (pycharm or vs code). All of these options make it pretty effortless to use the kernel associated with the environment - it's either automatically selected or it's the default in the dropdown.
by practal | 2025-05-24 10:00:04+00:00
Types for real-world semantics are fine, they are pretty much like predicates if you understand them like that.

The idea to use predicates instead of types has been tried many times; the main problem (I think) is that you still need a nice way of binding variables, and types seem the only way to do so, so you will introduce types anyway, and what is the point then? The nice thing about AL is that you can have a general variable binding mechanism without having to introduce types.
by risyachka | 2025-05-24 10:00:34+00:00
Going into trades sounds nice on paper but the salaries there were mostly always low because you need only a handful of those to saturate market needs.

Its not IT where you can create value from thin air and thus grow the market and increase need for even more professionals.

As soon as a tiny percent goes into trades (bet tons of new people already doing this) the market will be oversaturated in a few years when they finish apprenticeships.

After that it will be harder to find a job than in IT with AI around the corner.
by FL33TW00D | 2025-05-24 10:01:46+00:00
399 from YSeq seems fine for 30x coverage.

Gemini says a reasonable cost estimate from saliva to SNPs is $163.84 - $211.84 using Ultima $80 for sequencing (funny that sequencing is no longer the bottleneck on cost).

FASTQ is fine but I'd prefer BINSEQ: https://github.com/ArcInstitute/binseq. I'm writing my own pipeline from BINSEQ.
by InsideOutSanta | 2025-05-24 10:02:56+00:00
This is probably one of the most essential bits of advice you can get. Not only is it beneficial to your friends and career, but it's also beneficial for your mental health.

It's not easy, at least initially. Jealousy is an emotion that's easy to come by and hard to dismiss. It's also an emotion that makes you unhappy, so learning to feel pride and happiness instead of jealousy made my life immeasurably better. I don't care if it's reciprocal; I do it because it's right for others and it's right for me.
Ask HN: Any interest in a 5x cheaper alternative to Fly.io for containers?
by v-yanakiev | 2025-05-24 10:06:50+00:00
Motivated by recent drama regarding Fly's throttling changes (https://community.fly.io/t/predictable-processor-performance/22259), I started thinking about building an alternative to Fly.io's performance machines (no overprovisioning), which would be 5x cheaper.

https://fly.io/docs/about/pricing/

Instead of paying $0.1722/hour for a 4vcpu machine/container, you'd pay $0.03444/hour.

It'd run on Hetzner infrastructure, using Firecracker microVMs.

It'd have a minimal interface. You'd build and push a Docker image with a CLI. After that, you'd start containers / communicate with them / destroy them over REST.

Any interest?
by mindcrime | 2025-05-24 10:08:36+00:00
Yes, in the worst case scenario we wind up with basically nobody having jobs. I mean, when humanoid robots get sufficient dexterity, they can even come for the skilled trades folks as well, as far as that goes.

Look, I don't know if any of this is actually going to to come to pass or not. But it seems at least a little bit less like pure sci-fi now than it did a decade or two ago.

Anyway, if we play along with the thought experiment of asking "what happens to our society when a very large swathe of the human population is no longer needed to exchange their labor for wages?" it really leads one to wonder what kind of economic system(s) we'll have and if we'll find a way to avoid a straight up dystopian hellscape.
by raffraffraff | 2025-05-24 10:10:08+00:00
My family always had boxes of it around the place when I was growing up. Never really had much use for pain killers. But when I was in my early 20s, no money, not looking at myself, I cracked a tooth in half and it took a few days to see the dentist. It was excruciating. First thing I did, take paracetamol (our name for acetaminophen). It did absolutely nothing. The pain was like a lightning bolt from tooth to brain. After another 30 minutes, I couldn't handle it any more, went to the pharmacy and got aspirin. That worked within 20 minutes.

I have never taken acetaminophen since then. If it's a low intensity pain, then I can handle it myself. If I need actual pain relief I'll use an NSAID.

Finding out later that paracetamol dosage is super close to overdose, and how it actually kills you... That put the tin hat on it.
by fc417fc802 | 2025-05-24 10:10:41+00:00
Only someone well off could devote the necessary resources to have a garage full of antique race cars.

People who can afford a garage full of antique race cars only exist due to inequity.

What's the difference between those statements? As far as I can tell the latter includes the former while adding an implicit assumption about total available resources versus total population.

Apologies if it seems like I derailed things. Your comment was interesting but I didn't understand (still don't) the significance of the distinction you went out of your way to draw there. That said, I think the trailing remark that "only someone well-off could devote their lives to something so erratic" really hits the nail on the head. Even today you can see elements of that, for example on certain parts of youtube. People with excessive expendable income occasionally do some really impressive stuff.
by ednite | 2025-05-24 10:10:47+00:00
I think about this a lot. If you're early in your career, it must feel like you're staring at a technological fork in the road, with AI standing there ominously, waving both paths like it's the final boss in a RPG game.

Between your two options, I’d lean toward continuing to build what you’re good at and using AI as a powerful tool, unless you genuinely feel pulled toward the internals and research side.

I’ve been lucky to build a fun career in IT, where the biggest threats used to be Y2K, the dot-com bubble, and predictions that mobile phones would kill off PCs. (Spoiler: PCs are still here, and so am I.)

The real question is: what are you passionate enough about to dive into with energy and persistence? That’s what will make the learning worth it. Everything else is noise in my opinion.

If I had to start over today, I'd definitely be in the same uncertain position, but I know I'd still just pick a direction and adapt to the challenges that come with it. That’s the nature of the field.

Definitely learn the fundamentals of how these AI tools work (like understanding how AI tools process context or what transformers actually do). But don’t feel like you need to dive head-first into gradient descent to be part of the future. Focus on building real-world solutions, where AI is a tool, not the objective. And if a cheese grater gets the job done, don’t get bogged down reverse-engineering its rotational torque curves. Just grate the cheese and keep cooking.

That’s my 2 cents, shredded, not sliced.
by MaxBarraclough | 2025-05-24 10:11:20+00:00
Perhaps the Ironclad kernel [0] and SPARKNaCl? [1]

Here's a search of the Alire packages for 'spark' [2].

Merely using SPARK doesn't mean full formal verification of all correctness properties, as SPARK can be used at different 'assurance levels' from stone (no real formal verification but you restrict yourself to the SPARK subset of Ada) to platinum (full verification). [3]

[0] https://ironclad-os.org/

[1] https://github.com/rod-chapman/SPARKNaCl

[2] https://alire.ada.dev/search/?q=spark

[3] https://docs.adacore.com/spark2014-docs/html/ug/en/usage_sce...
by Brajeshwar | 2025-05-24 10:11:28+00:00
Besides all the good advices you will get here, including the legalese, a not-so-often mentioned thing will be “How good is your boss?” If your boss, the decision maker, so desires and agrees - this will be that you will work independently as a contractor and you earn better then being employed. I've seen that it is very common for contractors in UK to have their company (or Consultancy) and your company employ you thus saving on taxes. Your company gets into an agreemenet with your current employer/company and you work as the consultant/contractor.
by colinhb | 2025-05-24 10:12:23+00:00
> is a polynomial inequality in 26 variables, and the set of prime numbers is identical to the set of positive values taken on by the left-hand side as the variables a, b, …, z range over the nonnegative integers.

I hadn’t heard of this result, and my exposure to Diophantine equations is limited to precisely one seminar from undergrad, but this feels like taking von Neumann’s famous quip to its most fantastical extreme:

> With four parameters I can fit an elephant, and with five I can make him wiggle his trunk.
by mark_undoio | 2025-05-24 10:14:47+00:00
Undo (where I'm CTO) has existed for longer than RR and its real benefit is that it scales to use cases where RR (for one reason or another) isn't a fit.

Technically:

* Doesn't need hardware performance counters - runs on more CPUs and on cloud systems (where performance counters are often blocked).

* Can attach and detach at any time - means you get to record just a subset of program execution that's interesting.

* You can our ship recording tech with your application and control it by API, so you can grab crash recordings on customer systems.

* Supports programs that share memory with non-recorded processes.

* Supports direct device access (e.g. DPDK).

* Accelerated debugging features - searching with recordings using parallel processing, accelerated conditional breakpoints a few thousand times faster than native GDB.

* We provide a stable, patched fork of GDB that we're occasionally told is more stable than the default.

For many people's use cases none of these really matter - they should use RR if they're not already.

But if you need any of these things then Undo can give you time travel debugging. In practice, it's usually big software organisations that we deal with because they have development pain and the extreme requirements we can match.
by elAhmo | 2025-05-24 10:15:28+00:00
I don't really understand why would you even consider going deep if this is not something you have experience with or strong interest. Sure, it is good to know how some of the things work under the good, but you can be perfectly capable developer by reading docs and knowing how to use tools - without needing to know how to write them or how they do complex things under the hood. Take databases as example, network stack, etc.

Just because a field is popular, doesn't mean you should switch to going deep into it. But that doesn't mean you shouldn't use it - it costs a few dollars to try it out and see whether it fits your workflow. If it does, this is great and you can be more productive and focus on stuff that you can solve and LLM can't, but if it doesn't, that is fine too.
by eric-burel | 2025-05-24 10:16:27+00:00
Hi, I am working in making the term "llm developer" more popular in France and train people to this new job. We will need a bunch of them in the months/years to come to implement advanced AI systems after companies manage to properly pick and set up their AI platforms. Currently people would tend to involve data scientists into this job, but data scientists are often less versed into the software engineering aspect, eg when they work more on notebooks than web apps. The job is akin to being a web developer, so a "normal" developer but specialized in a certain field. Knowing the internals of LLMs is a big bonus, but you can start your journey with treating them as black box tools and still craft relevant solutions. You'll need to learn about running systems with databases (vector, graph, relational and nosql are all useful) and plugging multiple services together (docker, kubernetes, cloud hosting).
by mark_undoio | 2025-05-24 10:17:07+00:00
WinDbg's time travel debug is really cool and more people should know about it. I'm always a little sad that it's not (so far!) officially integrated in something like VS Code.

Before it was released publicly I believe Microsoft had been using it internally to share recordings on bug reports against massive pieces of software like Office. So it's a serious piece of tech.
by thrance | 2025-05-24 10:18:30+00:00
I like the idea of Algebraic effects but I'm a little skeptical of the amount of extra syntax.

Let's say I'm building a web server, my endpoint handler now needs to declare that it can call the database, call the s3, throw x, y and z... And same story for most of the functions it calls itself. You solved the "coloration problem" at the cost of adding a thousand colors.

Checked exceptions are the ideal error handling (imho) but no one uses them properly because it's a hassle declaring every error types a function may return. And adding an exception to a function means you need to add/handle it in many of its callers, and their callers in turn, etc.
by nivertech | 2025-05-24 10:19:37+00:00
U should be loyal to ur company and do it for free, especially that it’s such a low hanging fruit - 30 min using some AI tool

If it’s really that valuable to that company, u may get a bonus, salary increase, options grant, or a promotion

Otherwise, choose an employment arrangement where u fully compensated for yr time (and materials). Either an hourly employee or a consultant/contractor who bills hourly

Even better an engagement where u keep all the IP, and may resell to other companies/customers, but judging from ur description that’s far from being the case
by aehgwdyw | 2025-05-24 10:19:45+00:00
magnet:?xt=urn:btih:19db177fa7f13515e11c23e7c694419e875adfd8&xt=urn:btmh:1220ff0a57b459dae436d6c425721e04240aad55545a56bbfb5371d8c21ce125d7a9&dn=dataset.zst
Show HN: MCP server to connect LLM agents to any database
by raffasch123 | 2025-05-24 10:20:13+00:00
Hello everyone, my startup sadly failed, so I decided to convert it to an open source project since we actually built alot of internal tools. The result is todays release Turbular. Turbular is an MCP server under the MIT license that allows you to connect your LLM agent to any database. Additional features are: Schema normalizes: translates schemas into proper naming conventions (LLMs perform very poorly on non standard schema naming conventions) Query optimization: optimizes your LLM generated queries and renormalizes them Security: All your queries (except for Bigquery) are run with autocommit off meaning your LLM agent can not wreak havoc on your database Let me know what you think and I would be happy about any suggestions in which direction to move this project
by mark_undoio | 2025-05-24 10:21:36+00:00
GDB does:

https://sourceware.org/gdb/current/onlinedocs/gdb.html/Proce...

But it's limited. It's really cool that it's integrated by default but it doesn't scale to big applications / workloads.

RR and Undo both use GDB as a user interface, though, so any skills you have there will carry over.
by interestoo | 2025-05-24 10:23:03+00:00
I was in similar situation, at the time I was based in London working for company doing industrial control (so not software company but company using and selling software), maybe your case is different but if I was advicing to younger me I would advice to convince your departament to le me deliver this during work time or not to bother. I don't know if you have a clause in your contract that everything produced during work time or on work laptop automaticaly belongs to your employer, but even if you don't- weight if you'll get through politics to get your thing actually sold and not trialled or evaluated and then not actually rolled or simply ignored.. Anyways, good luck! Please post when all is over, I'm very curious if this was only my workplace with weird dynamics or maybe me not navigating :)
by aehgwdyw | 2025-05-24 10:23:04+00:00
magnet:?xt=urn:btih:19db177fa7f13515e11c23e7c694419e875adfd8&xt=urn:btmh:1220ff0a57b459dae436d6c425721e04240aad55545a56bbfb5371d8c21ce125d7a9&dn=dataset.zst
by bloppe | 2025-05-24 10:23:58+00:00
AI is a scientific discipline. Software development is an engineering discipline.

Do you like science? Then dive deep into LLMs. Be ready for science, though. It involves shooting a thousand shots in the dark until you discover something new. That's how science gets done. I respect it, but I personally don't love doing it.

Do you like engineering? That's when you approach a problem and can reason about a number of potential solutions, weigh the pros and cons of each, and pick one with the appropriate trade-offs. It's pretty different from science.
by drekipus | 2025-05-24 10:24:01+00:00
In the true business sense, you can see a need and fill a need.

But the thing to remember is that the other stakeholders have decided that it's not worth the investment for them. It might've upset others in meeting, but that's a temporary thing.

Especially when this is new fandangled software, they're not willing to risk the development costs just to make some front end.

You must look at yourself as another stakeholder in this business. You could ask for extra resources to build a front end and get more responsibility, but that's only if you can argue that it's worth it to the company as a whole.

Most employment contracts have some sort of line along the line of "All work you do this property of the company" anyway.

Usually the only way you can do this, is by making something on the down low and selling it to competitors
by practal | 2025-05-24 10:24:15+00:00
Saying "Curry-Howard, Curry-Howard, Curry-Howard" isn't an argument, either.

I am not saying that types cannot do this work. I am saying that to do this work you don't need types, and AL is the proof for that. Well, first-order logic is already the proof for that, but it doesn't have general binders.

Now, you are saying, whenever this work is done, it is Curry-Howard, but that is just plain wrong. Curry-Howard has a specific meaning, maybe read up on it.
by aehgwdyw | 2025-05-24 10:24:33+00:00
magnet:?xt=urn:btih:19db177fa7f13515e11c23e7c694419e875adfd8&xt=urn:btmh:1220ff0a57b459dae436d6c425721e04240aad55545a56bbfb5371d8c21ce125d7a9&dn=dataset.zst
by SillyUsername | 2025-05-24 10:25:32+00:00
Wrong. In fact downvoters are wrong too I'm guessing most are junior devs who don't want to be proven wrong. LinkedList is much faster for inserts and slow for retrieval. ArrayLists are the opposite. To the downvoters; I say try it, this is why LinkedList is in the standard library. When you find I'm right, please consider re-upvoting for the free education.