MurphyA/hacker-news huggingface dataset:
Xray: A full-behavior-chain anti-malware system built in Go by a student
by tangtian | 2025-05-17 10:04:21+00:00
Hi HN,

I'm Tang Tian, a first-year economics student from a non-CS background, currently self-learning Go, OS concepts, and cybersecurity. Over the past weeks, I built Xray, an anti-malware and behavior tracing system from scratch, entirely in Go.

Xray compares your current system with a reference ISO, monitors real-time filesystem and process activity, detects suspicious behavior, automatically eliminates threats, and outputs a full behavior graph as a .dot file (Graphviz-ready).

Highlights:

Behavior chain detection (not signature-based)

Monitors full system with fsnotify + process tracing

Compares live system to boot ISO for anomaly detection

Auto-kills malicious behaviors in real time

Outputs behavior chain in .dot format (JSON/LOG planned)

Lightweight: compiled binary is only ~3MB

Written completely from scratch by a solo student

GitHub: https://github.com/lixiasky/X-ray There’s also a screenshot folder showing how it runs, and a personal note in the README.

This is open-source with a permissive license (MIT-style). Feel free to fork and build your own version—just please keep a credit line in the README: “First version by Xia Lixia.”

I hope someone finds this useful or fun to hack on. Feedback is welcome, and thank you for reading!
by dns_snek | 2025-05-17 10:04:23+00:00
Buyer beware - There's a mountain of products on the market that are advertised as "open source" which lures many of us in, but many of those products have poor quality hardware.

My heuristic for anything operating at mains voltages is "If I can find a product that looks just like this on Temu/Aliexpress, I'm not buying it". They're probably white label products sourced from the same factories and suffer from the same quality issues.

Relays found in smart plugs are often sketchy in my experience. About half of the ones I bought or set up for others make unsettling noises that made me worried about poor electrical connections and risk of fire. I only have two Shelly plugs but those don't suffer from these issues.
by josefx | 2025-05-17 10:04:33+00:00
It is "mostly" backwards compatible. Applets and everything related to them where dropped. A few interface dependencies where changed to improve modularity of the runtime. Widely used hacks like sun.misc.unsafe are getting replaced with official APIs and locked down. Development of some Java EE packages has been taken over by a third party, so they are no longer packaged within the java namespace. To name just a few of the bigger examples.
by oliviergg | 2025-05-17 10:06:11+00:00
I have trouble understanding the level of criticism about MCPs. As I understand it, it's just a tool that allows an LLM to communicate with other tools.

People often talk about web APIs, but we should also consider the integration of local tools. For me, the integration is mind-blowing.

When I tried the Playwright MCP integration [0][1] a few months ago, I really felt that after giving computers the ability to speak or communicate, we had now given them arms. I still get goosebumps thinking about it.

[0]https://youtu.be/3NWy_sxD3Vc [1]https://github.com/microsoft/playwright-mcp [EDIT]
by firesteelrain | 2025-05-17 10:06:13+00:00
This really should be regulated by the Federal Government level (FTC, NIST, etc) to ensure uniformity and some of California’s laws could be used as a model. Since AI represents a strategic economic and security frontier, putting a ban on states laws would allow the technology to innovate freely without having to navigate a patchwork of state laws. Finally, GOP actually favors limited government and deregulation so this doesn’t conflict with States rights concerns brought up in this thread.

One thing to note is that this may also be a way to block progressive policies before they end up in the Federal government. Putting a ten year ban would effectively do that.
by julianpye | 2025-05-17 10:06:22+00:00
That’s totally valid. I think the film either resonates deeply or not at all, and both responses are completely legitimate. I can absolutely see how it could feel pretentious drivel to some. I assume for me it directly evokes emotions of my childhood (catholic upbringing by a loving mother). I also really appreciate you being happy for me. That's true empathy.
by raffraffraff | 2025-05-17 10:08:24+00:00
Does the hub requirement matter that much though? I mean if you want truly peer to peer, then yeah, but if you're already using Home Assistant you can plug a cheap ZigBee usb dongle into that.

So the bit I'm missing: how do you control them purely over WiFi? Do you run software on your phone that can control the target? Eg: app talks directly to the device over your network, instead of via a browser + Home Assistant running on a Pi. I can't think of any examples of a product that works this way without being cloud enabled (IE: there is a hub but you don't own it)
by masklinn | 2025-05-17 10:09:52+00:00
Destructors require deterministic cleanup, which advanced GCs can't do (and really don't want to either from an efficiency perspective). Languages with advanced GCs have "finalizers" called during collection which are thus extremely unreliable (and full of subtle footguns), and are normally only used as a last resort solution for native resources (FFI wrappers).

Hence many either had or ended up growing means of lexical (scope-based) resource cleanup whether,

- HoF-based (smalltalk, haskell, ruby)

- dedicated scope / value hook (python[1], C#, Java)

- callback registration (go, swift)

[1]: Python originally used destructors thanks to a refcounting GC, but the combination of alternate non-refcounted implementations, refcount cycles, and resources like locks not having guards (and not wanting to add those with no clear utility) led to the introduction of context managers
by dengolius | 2025-05-17 10:10:40+00:00
My friend uses self-hosted open-source software to monitor all his home IoT devices[1] and copies important information to the cloud. I'm using StarFive VisionFive 2 to host my database for monitoring, but also have a copy of the data of a chip hetzner arm vps, as well as hosting backups on the two different clouds. I know users who are running[2] for years to monitor Solar panels, lawn watering and vegetable garden watering.

My question is: is it really convenient to use only SaaS now if there is always the possibility of losing your data? I am referring to the case described in the article.

[1]: https://vrutkovs.eu/posts/home-infra/ [2]: https://github.com/VictoriaMetrics-Community/homeassistant-a...

PS: I'm working at VictoriaMetrics company
by diziet_sma | 2025-05-17 10:10:50+00:00
There have been many attempts to make a Python JIT that is compatible with CPython to various levels of success. However the larger reason is that the gains from removing the GIL far exceeds the gains from a JIT.

If you're writing performance sensitive python code, the "hot" code is likely already in a C-extension, such as Numpy. So there is negligible benefit to running the code with a JIT.
by FunnyLookinHat | 2025-05-17 10:11:48+00:00
> Server authors working on large systems likely already have an OAuth 2.0 API.

I think this biases towards sufficiently large engineering organizations where OAuth 2.0 was identified as necessary for some part of their requirements. In most organizations, they're still using `x-<orgname>-token` headers and the like to do auth.

I'm not sure that there's a better / easier way to do Auth with this use case, but it does present a signficant hurdle to adoption for those who have an API (even one ready for JSON-RPC!) that is practically ready to be exposed via MCP.
by paganel | 2025-05-17 10:12:14+00:00
> It is absolutely the greatest golden age in programming ever

It depends, because you now have to pay in order to be able to compete against other programmers who're also using AI tools, it wasn't like that in what I'd call the true "golden age", basically the '90s - early part of the 2000s, when the internet was already a thing and one could put together something very cool with just a "basic" text editor.
by bonoboTP | 2025-05-17 10:12:43+00:00
Is it better to be introduced to tons of painters vs fewer but in more detail? Or being told about a painter by someone in person vs by an algorithm?

In the 90s you only had certain songs if you knew someone who had it on cassette and you borrowed it and put it on your mixtape. Throughout the interaction, you also got initiated deeper into the culture of that thing in person.

I also notice that families rarely sit together nowadays to look through vacation photos. The pictures are taken, but people either don't have time to sort them and curate them. When film had a price, you only took fewer ones but it was more intentional. Then the fact that you only saw the picture once you were back at home, generated excitement that you could share and relive candid moments. Now people upload stuff on Instagram but it's intended to a generic audience, much unlike browsing through an album on the couch.
by kentich | 2025-05-17 10:13:40+00:00
The French revolutionary calendar inspired this idea. But the French went too far IMO by introducing not just a 10-day week calendar but also decimal time, that's why, I think, this idea didn't take off. They also kept those weird month names they came up with.

Well, I don't strictly live by this calendar, but I try. I've made the app to make it easier for me to do this.
by elktown | 2025-05-17 10:14:25+00:00
The price was created by Sweden's central bank, not the Nobel foundation. It's true that it's now considered a Nobel prize proper for most, but that's not to say that it originally wasn't the economics field leeching on the scientific prestige of Nobel. To be honest, it feels pretty on-brand for it. And fwiw, in Swedish, it's almost always clearly distinguished with a "in memory of Nobel" or similar in the surrounding context.
by masklinn | 2025-05-17 10:15:29+00:00
> Anyway, I didn't say it was "inferior to defer", I said that it seemed more error-prone than RAII in languages like Rust and C++.

It is, but RAII really isn't an option if you have an advanced GC, as it is lifetime-based and requires deterministic destruction of individual objects, and much of the performance of an advanced GC comes from not doing that.

Most GC'd language have some sort of finalizers (so does javascript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) but those are unreliable and often have subtle footguns when used for cleanup.
by TeMPOraL | 2025-05-17 10:16:57+00:00
you be all like, "eloquence is a faux pas; directness is rude; a fifth-grade vocabulary is welcoming". Then the internet be like, "yo, pretentious much?", and then they be like "eloquence is some rascist victorian shit-e", and then be like, "directness is privileged and oppressive", and then be like, "your educated vocabulary is, like, so rich and neurotypical"

then you be all like, "but! but! that's not what i mean", and then they be like, "ok boomer" and then they be sharing tiktoks of yo red face on red dit(!) and img2img you into Wojak memes

--

Couldn't resist. I feel like you feel, and I'm saddened by the fact that there seems to be no way to hold any quality standards in modern society. Yes, standards of writing and speech and culture are arbitrary, but it's valuable to have them; meanwhile, we live in times where you can't require anything of people, because there's always someone ready to argue the expectations are unfair or malicious, and there's no culturally valid counterargument to that.
by cyphax | 2025-05-17 10:19:52+00:00
If you type "login" at the ha> prompt, you'll get a root shell.

This is something I also had to accept about HA. It runs in a VM in my case so it worked out-of-the-box, but you don't just ssh to it after installing it, and the ha> prompt is just a bit different. So far, it hasn't been in the way, although it occasionally takes time to find out how to do things.

It's very flexible though, and apart from devices in your house there are many outside sources of data to use, like weather data, sun elevation or trash pickup dates. The HA app on your phone gives you many sensors usable in a flow. The time spent on it usually results in something worthy of that time, in my experience.
by benoau | 2025-05-17 10:21:37+00:00
It’s taken six years since the EU investigated, leading to the DMA which took time to write then had a lengthy lead-in before it came into effect and the 1.8 billion anti-steering fine was incurred. Compliance is still “pending”, with contrived fees and scare walls and hardware restrictions against the EU’s wishes.

And in that time there was the 2020 congressional investigation in the US and failed attempt at similar laws. Later this year the DOJ antitrust stemming from this investigation will finally commence.

In 2021 the steering terms were ruled illegal in the US and it took three years to bounce back from the Supreme Court then another year for Apple’s noncompliance contempt to be measured.

Part of their noncompliance has been dragging things out to the extent the judge recently made sure their ruling applied immediately, and delivered it before Apple even finished debating which amongst 10,000s of pages of evidence documents to provide or suppress.

In that time the EU and DOJ have gone after Meta, Alphabet, Amazon and Microsoft extensively too.
by jaas | 2025-05-17 10:22:25+00:00
I think what you're quoting says what I was saying - assembly with some C around it, wrapped in a Rust API. At least for the "select" (read: most important) algorithms. The details of the C/asm boundary in aws-lc are hard to summarize.

Ideally the C would eventually move to Rust, but I think aws-lc needs to work in many contexts where a Rust toolchain is not available so it might be a while.

Graviola is an interesting option under development, in part because it gets rid of the C:

https://github.com/ctz/graviola
by masklinn | 2025-05-17 10:22:55+00:00
It's similar, but more inspired by C#'s "using declaration", an evolution of the using blocks, which are the C# version of try-with-resource: `using` declarations don't introduce their own block / scope.

The original proposal references all of Python's context manager, Java's try-with-resource, and C#'s using statement and declaration: https://github.com/tc39/proposal-explicit-resource-managemen...
by lhl | 2025-05-17 10:23:03+00:00
Well I've seen some other writeups like https://atadistance.net/2020/06/13/transit-gate-evolution-wh... that have also been referenced on HN. Discussions like https://news.ycombinator.com/item?id=38694411 and others that are probably easy to search for.

While some people have a reflexive dislike for AI output, I've done maybe a hundred o3 Deep Research queries now and found the reports to be generally high quality as well sourced as most human generated ones. I shared this one since I think it was a particularly interesting review the various systems around the world (I've personally used all those transit turnstiles personally and am generally familiar w/ RFID/NFC/EMV systems and didn't spot anything egregious).

(I find Deep Research reports to on average be high signal to noise than most of the human tokens being output on sites like HN for example.)
by TeMPOraL | 2025-05-17 10:24:23+00:00
Thanks. I've started digging into Aider's features I've been ignoring so far, we'll see how this goes.

And yes, I've been using gemini for the past month or two - ever since gemini-2.5-pro came out and topped the Aider benchmark. It's good, but it sure does comment excessively, including in places like quoted scripts, where those comments are a syntax error...

I've tried the current top combo from Aider's benchmarks last night - that is, o3 (high) architect + GPT-4.1 editor. It's refreshingly concise, generates much smaller diffs, but man does it burn through money - a factor 16x relative to gemini-2.5-pro-preview-05-06. Not sure if it's worth it.
by Propelloni | 2025-05-17 10:24:38+00:00
An acquaintance used to work airport security and he told me they asked to unlock/power up etc. electronic devices such as phones, laptops or SLR to check if they are real electronic devices. Apparently they were -- maybe are -- afraid of EDs that looked like electronics on the scanners.

Not completely groundless, even if I could think of more than one way to construct a device, e.g. laptop, that boots up and still explodes, but hey.
by SilverSlash | 2025-05-17 10:25:03+00:00
I noticed a similar effect on me in regards to critical thinking when I'm coding. My default response when faced with any coding problem now is to use an LLM.

But it gets even worse. Last year I'd get just an initial solution from an LLM and then reason about it myself. Now even that is too much work and I instead ask the same question to multiple LLMs and draw consensus from their results, skipping/easing even that second step of thinking.

Energy takes the path of least resistance. Thinking requires energy. So are our brains learning to off-load thinking/reasoning to LLMs whenever possible?
by mattmanser | 2025-05-17 10:25:19+00:00
Yeah, as someone else has pointed out it's C# inspired, this is a C# example:

public void AMethod() { //some code using var stream = thing.GetStream(); //some other code var x = thing.ReadToEnd(); //file will be automatically disposed as this is the last time file is used //some more code not using file } //any error means file will be disposed if initialized

You can still do the wrap if you need more fine grained control, or do anything else in the finally.

You can even nest them like this:

using var conn = new SqlConnection(connString); using var cmd = new SqlCommand(cmd); conn.Open(); cmd.ExecuteSql();

Edit: hadn't read the whole article, the javascript version is pretty good!
by TeMPOraL | 2025-05-17 10:30:09+00:00
Yeah, if places like RAND or Xerox PARC or the OG Skunkworks, or even Manhattan Project and Apollo Program taught us, is that you cannot let engineers and domain experts run the show, because if you do, they start doing some world-upending shit like putting GUIs on the Moon, or building nukes, or supersonic jets, or inventing new materials that violate the natural order of things, or they generally just rock the boat too much, continuously disrupting the corporate and political pecking order.

Nah, you have to put them in hamster wheels so they keep generating steady value for the shareholders, and put those in open plan offices so they get too mentally exhausted and distracted to try and change things. Throw in free cheese during good economy to keep them happy, but that's strictly optional.
by Gathering6678 | 2025-05-17 10:30:59+00:00
My experience is to just take it easy: it's okay to scrub, use soap, etc. Just don't leave it wet: always dry it thoroughly after washing, and don't use a dishwasher. I even cooked some acidic food in it and it was fine: you probably shouldn't be making tomato stew in it, though. The irony taste would ruin the dish.
by Madmallard | 2025-05-17 10:31:44+00:00
Agree

They can't do anything elaborate or interesting for me beyond literal tiny pet project proof of concepts. They could potentially help me uncover a bug, explain some code, or implement a small feature.

As soon as the complexity of the feature goes up either in its side-effects, dependencies, or the customization of the details of the feature, they are quite unhelpful. I doubt even one senior engineer at a large company is using LLMs for major feature updates in codebases that have a lot of moving parts and significant complexity and many LOC.
by legulere | 2025-05-17 10:33:55+00:00
It’s still difficult to get right in cases where you hold a disposable as a member. Its not obvious if disposables passed in also get disposed and what’s right depends on the situation (think a string based TextWriter getting passed in a byte-based Stream) and you will need to handle double disposes.

Further C# has destructors that get used as a last resort effort on native resources like file descriptors.
by sigotirandolas | 2025-05-17 10:33:58+00:00
> This analysis ensures that FixrLeak skips functions where resources are passed as parameters, returned, or stored in fields, as these resources often outlive the function’s scope.

> FixrLeak delivers precise, reliable fixes while leaving more complex cases for advanced analysis at the caller level.

In other words, this will only fix trivial leaks, which are best seen as a language design issue and can be fixed by RAII, reference counting, etc.

It won't fix the more insidious leaks like `UNBOUNDED_QUEUE.add(item)` that are more likely to pass through code review in the first place.
by Spivak | 2025-05-17 10:36:50+00:00
One could make that argument, except that until the Trump administration the US government has made no distinction between sex and gender when it comes to sex markers. A transgender woman is a transexual woman is legally female. They have explicitly allowed updating passports and had a process of providing documentation from courts and doctors to prove that one has transitioned. So no one obtained anything erroneously or fraudulently and in fact were very upfront about it.

Where it gets awkward for everyone involved is when you have a trans woman say who is recognized female on her birth certificate and by her state now coming in conflict with a federal government that suddenly doesn't respect that. Where it gets even awkwarder-r is more trans people pass than people assume and it would cause more issues to have their chromosomal sex listed on their ID than not. If my friend who is a trans woman walked into the men's bathroom they would be like, "hey lady this is the men's."
by PaulKeeble | 2025-05-17 10:39:26+00:00
Despite the somewhat clickbait title this is quite interesting on technology preferences and the path to what makes us happy and productive.

The idea that our preferences in technology are driven by our path of learning seems relatively self evident, those that started with C/C++ verses Smalltalk verses Java verses Python as their first language likely have a very different perspective on the various trade offs of these languages. Given we don't usually learn every language and certainly not to a deep extent few have deep experiences in all the possibilities to grok the differences in practice on similar projects.

"I need the right project and the right team to function well"

I really resonate with this, in the right environment I seem vastly more productive. I have a significant preference for low levels of control and oversight and in those environments I can take actions quickly with less discussion and often get to better answers quicker, but I hate not being able to do that and it impacts my performance disproportionately. Its one of those preferences for culture that seems vital to how I want to work and impacts productivity a great deal. Asking permission or high rigour for potentially "extra" work just grinds my gears!
by swat535 | 2025-05-17 10:39:40+00:00
Let's say AI writes perfect, bug free code. Then what?

Suppose we grant the most optimistic scenario: AI generates flawless, production-ready code. No bugs, no regressions, no tech debt. Code is no longer written, it’s summoned.

Cool. But.. now what?

Who writes the requirements? Product managers typing prompts into a text box? CEOs dragging Figma elements and calling it shipped?

How does that scale? Who maintains the systems those prompts create? Other LLMs? And who maintains them? More AI?

It turtles all the way down, a recursive stack of AI maintaining AI, until we’re effectively simulating full stack human engineers in digital form.

At some point, aren't we just reinventing ourselves.. in Python?