MurphyA/hacker-news huggingface dataset:
Show HN: I built a tool that grows mind maps as you explore a topic
by krishiv_piduri | 2025-04-21 11:24:39+00:00
I’ve always been curious about big, complex topics; things like quantum computing, AI ethics, or philosophy, but I’d often get stuck at the very beginning. I’d open a dozen tabs, skim Wikipedia, and still not feel like I had a good mental model of what I was even looking at.

So I built a tool to help with that. You type in any topic, and it generates a simple mind map; just a few high-level subtopics to start. Then, as you click and explore those nodes, it expands outward with more specific, connected concepts. The map grows with your curiosity.

It’s intentionally lightweight and incremental. The goal isn’t to overwhelm you with everything at once, but to help you gradually build a clearer picture and follow your own curiosity in a structured way.

I’ve been using it to explore new areas, plan research, and even prep for writing projects. If you're the kind of person who likes to "see" what they're learning, I’d love your feedback.
by Apreche | 2025-04-21 11:24:44+00:00
People get so hung up on the version number. These fools would rather use software with tons of bugs and security holes simply because the devs of that software dared to use a version number greater than 1.0.

I see the entire community gravitating towards uv because of its merits. I tried it, and I agree. I already started using it for every project. I’ve even converted older projects to it.
by diggan | 2025-04-21 11:25:18+00:00
> Don't use one of the most permissive licenses in existence

Does it matter what license you use if they actively ignore the terms in the license you did chose? MIT requires attribution, but they didn't. Why would any other terms be different? You surely could have put "You must license your project the same as the one you forked from" and they still would have ignored it, not sure what the difference would have been.
by gonzobonzo | 2025-04-21 11:25:56+00:00
> But the arguments made against it seem quite biased towards Tesla: "However, this entire test scenario is so out of left field… there is a good likelihood this same test would fool some human drivers as well"

The argument seems to be that running the test with FSD rather than Autopilot lead to much better results:

> During this test, many people noted that Mark was using Autopilot rather than FSD...Creator Kyle Paul over on X made a much better follow-up video, using both a HW3 Model Y as well as an AI4 Cybertruck. In a relatively unsurprising turn of events, the Cybertruck was successfully able to detect the wall, slowed down, and came to a stop. The Cybertruck was running FSD 13.2.8.

That seems like a valid point. Saying that you're testing Teslas self-driving car and not actually testing FSD but opting for the less advanced Autopilot feels misleading.
by Voultapher | 2025-04-21 11:27:54+00:00
There is a hormone-free option for men today https://en.wikipedia.org/wiki/Heat-based_contraception. It's not widely known but has solid science backing it up and even though the wikipedia article claims no long term studies were done, in the 1930s IIRC there was a series of tests done in India and it had men conceive healthy children after a couple of years of using this method. And there have been other long term studies suggesting the same absence of long-term effects if anyone is interested I looked them up a while ago and could go looking for the links.
by lhamil64 | 2025-04-21 11:27:55+00:00
One thing I noticed with the example `['0-9a-f']`

Doesn't this go against the "literals are enclosed in quotes" idea? In this case, you have a special character (`-`) inside a quoted string. IMO this would be more consistent: `['0'-'9''a'-'f'']`, maybe even have comma separation like `['0'-'9','a'-'f'']`. This would also allow you to include the character classes like `[d,'a'-'f'']` although that might be a little confusing if you're used to normal regex.
by snozolli | 2025-04-21 11:28:58+00:00
Ukraine is fighting to defend its land, not against an extermination campaign like Palestine

False. Russia has sought the cultural genocide of Ukraine for hundreds of years.

https://ukraineworld.org/en/articles/basics/linguicide-ukrai...

https://www.cbsnews.com/news/russian-history-of-subjugating-...

https://foreignpolicy.com/2024/04/23/russia-ukraine-cultural...

https://academic.oup.com/jicj/article/21/2/233/7197410

https://www.foreignaffairs.com/ukraine/why-russias-war-ukrai...

This is why they fire missiles at museums and libraries. This is why they steal Ukrainian children and ship them to Russia for adoption. This is why they deport Ukrainian citizens to Siberia and bring in Russians to replace them.
by ninkendo | 2025-04-21 11:29:27+00:00
Writing one correctly is pretty complicated task if you’re trying to write a simple tutorial… off the top of my head, you’d need:

( ( 25[0-5] # 250-255 | 2[0-4][0-9] # 200-249 | 1[0-9]{2} # 100-199 | [1-9][0-9] # 10-99 | [0-9] ) \. ){3} ( 25[0-5] # 250-255 | 2[0-4][0-9] # 200-249 | 1[0-9]{2} # 100-199 | [1-9][0-9] # 10-99 | [0-9] )

… but without all the nice white space and comments, unless you’re willing to discuss regex engines that let you do multi-line/commented literals like that… I think ruby does, not sure what other languages.

The problem is that expressing “an integer from 0-255” is surprisingly complicated for regex engines to express. And that’s not even accounting for IP addresses that don’t use dots (which is legal as an argument to most software that connects to an IP address), as other commenters have pointed out.
by bayindirh | 2025-04-21 11:29:36+00:00
MIT doesn't need attribution. Original BSD does, but revised and most widespread BSDs do not.

GPL/AGPL would prevented this somehow, requiring proper attribution via mandatory source code release, and allowing to track project origins. This would make it harder to label it as a "a Microsoft Product from Ground Up", and prevent Sherlocking the original application to a greater degree.

As a result, this would probably forced Microsoft to develop a new one from scratch, because they're allergic to GPL, because if they have breached GPL, they would be forced to comply, since GPL is court tested already.

So, write Free Software. Not Open Source. Esp. for your personal projects.
by kaycebasques | 2025-04-21 11:29:59+00:00
> hearing the LLM give good answers about its purpose and implementation from a completely cold read

Cold read ability for this particular tool is still an open question. As others have mentioned, a lot of the example tutorials are for very popular codebases that are probably well-represented in the language model's training data. I'm personally going to test it on my private, undocumented repos.
by keepamovin | 2025-04-21 11:30:25+00:00
Forked up the wazoo.

That said, Microsoft provides extremely generous Startup Assistance (to the tune of > 150K of Azure credits). Disclaimer: I'm not affiliated with MS but I did their program, also did the Gcloud and AWS programs back in the day. No negative comparisons, but off the top of my head the Azure program is awesome. I really enjoyed working with Azure, and it does what it says on the tin.

You can apply here: https://www.microsoft.com/en-us/startups/

Or here: https://foundershub.startups.microsoft.com/signup
by throw-qqqqq | 2025-04-21 11:30:40+00:00
Yes very seriously.

Many microcontrollers come with CAN support natively, but no PHY for instance. So CAN is available for even the cheapest MCUs, not so with Ethernet.

There is also a lot more supporting hardware required for Ethernet compared to CAN, and the price for producing a cheap Ethernet capable board is many times that of CAN.

The galvanic isolation in Ethernet (magnetics) costs about 1W idle pr port, so the power budget is also on a whole other level.

I spent the previous decade in embedded, designing both CAN and Ethernet-capable cobtrol systems for industrial applications.

Ethernet is much more expensive than CAN, but can also be much faster etc.

CAN and Ethernet normally do not compete for the same applications :)
by sightbroke | 2025-04-21 11:31:23+00:00
> Perhaps most significantly, the sodium-ion technology offers safety performance that far exceeds traditional lithium batteries. CATL demonstrated this through rigorous testing, including multi-sided compression, needle penetration, electric drill penetration, and battery sawing – all without fire or explosion

Article also says it has cold weather performance improvements.

For me at least reducing the risk of fire or explosion really nice. Sodium is obviously very accessable but not sure on other common material constraints.
by gortok | 2025-04-21 11:31:41+00:00
Define “substantial”?

What percentage of copying is “substantial”?

That’s the problem with concisely written licenses, the legal world thrives on definitions and terms of art, and when you leave something open to interpretation you invite the probability that a nefarious (or even sufficiently amoral actor like a large corporation) actor will point to the language you use and interpret it differently.

To win any argument in a court of law you must now spend time and money to win the argument. Something an open source maintainer likely doesn’t have, and since the license doesn’t specify damages, there’s no way to even write in a penalty for failure to adhere such that a court of law would consider it under contract law, and then you have to prove damages.

At least in Virginia, each party pays their own lawyers fees, even if they win. You can only collect lawyers fees when statutes allow you to, or there has been sufficient bad faith from the other side that the court uses its own power to sanction.

Oh, and let’s say you win and somehow you are able to prove damages. Now you have to spend money to collect on the judgment. That’s money you’re not getting back.

The point here is that we’ve written software licenses as contracts that assume good faith and do not punish bad actors, when we would need to treat corporations as if they are bad actors and write licenses accordingly.
by sargstuff | 2025-04-21 11:32:13+00:00
Basis for determining run-time charactaristics of program.

python based debugger / ldd / er & uml diagram generation of java program(s) dependencies! aka basis for an open source based python IDE that supports Java.

Python based eBNF for java programs. ?? extenable to other vm's ??

?? live tree-sitter / run-time environment diagrams! aka vim Object Orient manager (vOOm). extend Poke[1] to include an automated Peek GUI for java program discovery. aka spill the JavaBeans.

Synopsis of program in json ebnf format of 'java vm' byte encoding! (no ANTLR's required)

Use it to determine how non-dynamic / dynamic a java program really is.

-------------

[1] : GNU Poke : https://www.gnu.org/software/poke/
by wolvesechoes | 2025-04-21 11:33:05+00:00
Look, if your "connections" require you to engage in the social media slop, they are not worth it. If your family forces you to be on FB, your family is dysfunctional. If you have lost your friends after deleting your account, you had no friends in a first place.

Yes, we can live without social media. I know it is possible from my own experience. And when everyone has a phone and e-mail address, you can stay connected without FB or other account.

It will require more effort, but valuable things rarely come without it.
by koiueo | 2025-04-21 11:33:28+00:00
> I default to using the MIT license as it is simple and permissive

What's good about being "permissive"?

I keep hearing this argument, but I still don't understand, what's the incentive for authors of one-man projects to choose anything "permissive".

Do you enjoy your project getting forked, walled off and exploited for profit by someone who has never done you any good?

AGPLv3 still allows forking, still allows making profit (if your business model is sane). But it is at least backed by some prominent figures and organizations, and there are precedents where companies were forced to comply.
by boricj | 2025-04-21 11:33:30+00:00
In a previous job I've done some stupid tricks with regexes. Inside a MongoDB database I had documents with a version field in string form ("x.y.z") and I needed to exclude documents with a schema too old to process in my queries.

One can construct a regex that matches a number between x and y by enumerating all the digit patterns that fit the criteria. For example, the following pattern matches a number between 1 and 255: ^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$

This can be extended to match a version less than or equal to x.z.y by enumerating all the patterns across the different fields. The following pattern matches any version less than or equal to 2.14.0: ^([0-1]\.\d+\.\d+)|(2\.[0-9]\.\d+|(2\.1[0-3]\.\d+))$

Basically, I wrote a Java method that would generate a regex with all the patterns to match a version greater than or equal to a lower bound, which was then fed to MongoDB queries to exclude documents too old to process based on the version field. It was a stupid solution to a dumb problem, but it worked flawlessly.
by vitus | 2025-04-21 11:33:40+00:00
It's especially ironic given that the title of the post is "Regex Isn't Hard", and then it proceeds to make several (syntactical and logical) errors in the one real-world example.

Syntax error aside (there's an extra ] floating around), it's not even close to correct -- it'll match "999.999.999.000.999." among other things, will never match just one digit (there's a missing ?), and always insists on the trailing dot.
by asdefghyk | 2025-04-21 11:34:03+00:00
Microsoft does, it because they know they can get away with it. Its in Microsofts DNA in my opinion. The company has a long history of such practices, decades. Occasionally they meet someone who has a enough clout to hold them to account. Sometimes they have even tried to copy patented information and get away with it. ( Example Microsoft tried to steal the idea of product activation. The owner had deep pockets enough for the court case cost ~$15M and won several hundred million from Microsoft.) Also, Many companies that disclosed information to Microsoft under NDA found Microsoft developed very similar products
by fossgeller | 2025-04-21 11:34:04+00:00
Could it be possible to counter it with another ML model that browses your feed?

For example, scraping your feed and presenting to you only the content that corresponds to some pre-defined labels (with a tiny bit of randomness to spice things up).

Although how could the automatic labeling work for videos from the user-end? Hashtags would be the simplest indicators, however also easily misleading.
by eqvinox | 2025-04-21 11:35:11+00:00
It's not about bandwidth; combustion engines used to be massive EMI disasters (due to ignition coils) wrecking electronic communications in their immediate vicinity. Fibre optics are plain noise immune. Not sure how much of this is needed with high power electric motors.

They're also lighter than copper cables, which can in fact matter in a car (though changing interconnect types and topologies also fixes that.)
by skywhopper | 2025-04-21 11:35:34+00:00
Not just forked. Microsoft stole the code without attribution, violating the license terms. Truly shameful behavior. Best case, it was a single engineer who was tasked with duplicating the functionality, but chose the lazier, fraudulent route and was even too lazy to clean things up entirely. Still, MS should own up, correct the record, and make this right.
by numbers_guy | 2025-04-21 11:36:00+00:00
Since I see a lot of people commenting on this topic, I would like to offer a different perspective.

Pope JPII was for my southern European social democratic Catholic family much more polarizing than Pope Francis. Pope Francis had politics that are mainstream and not at all controversial in my part of the world. Whereas JPII was perceived as the guy who was buddies with Reagan and Bush and a general supporter of American foreign policy. To what extent that was a fair assessment, I do not want to comment, since he did try to speak against the invasion of Iraq.

None the less, it is not true that Pope Francis is more popular with non-Catholics (Reagan, Bush and most of the US were not Catholic and big supporters of JPII). It was also JPII that started the interfaith dialogue. It is also not true that Pope Francis is unpopular with Catholics.

There are Catholics all across the globe with vastly different opinions on all kinds of issues.
by martin-t | 2025-04-21 11:36:08+00:00
I wish people would seriously consider (A)GPL for their projects more often. It hasn't happened here, though has certainly happened in the past without anyone knowing - (A)GPL would make it hard for them to make a closed source "fork".

In fact, I wish an even stronger license existed which allowed the original author to dictate who can build on top of the project to avoid exactly these kinds of situations where a powerful actor completely disempowers the authors while technically following the license (I assume MS will "fix" their error by fixing the licensing information but will continue to compete with Spegel with the intent to make it irrelevant).
by cb321 | 2025-04-21 11:36:42+00:00
This is exactly how Nim is. The f-string like equivalent uses a macro called "fmt" which has a short alias "&". So you can say:

import std/strformat let world = "planet" echo &"hello {world}"

The regular expression module does a similar thing with a `re"regular expression"` syntax or std/pegs with peg"parsing expression grammar" and so on. There are probably numerous other examples.

In general, with user-defined operators and templates and macros, Nim has all kinds of Lisp-like facilities to extend the language, but with a more static focus which helps for both correctness and performance.
by tetha | 2025-04-21 11:36:44+00:00
Or you could use this in a library like sh with

sh(t"stat {some_file}")

With t-strings you could run proper escaping over the contents of `some_file` before passing it to a shell.

I'd have to take a look at the order things happen in shell, but you might even be able to increase security/foot-gun-potential a little bit here by turning this into something like `stat "$( base64 -d [base64 encoded content of some_file] )"`.
by jmull | 2025-04-21 11:36:49+00:00
You're complaining about generating code...

While I agree that's typically a bad idea, this seems to have nothing to do specifically with zig.

I get how you start with the idea that there's something deficient in zig's comptime causing this, but... what?

I also have some doubts about how commonly used free-form code generation is with zig.
by contrarian1234 | 2025-04-21 11:37:50+00:00
With no opinion one way or another on the pope.. In the modern world this is a weird criteria to judge people on. I assume like every modern politician, he doesn't write his own speeches. A quite google search seems to confirm it

https://cruxnow.com/church/2015/02/does-the-pope-write-his-o...
by Smithalicious | 2025-04-21 11:38:07+00:00
I really was on the side of being generally willing to accept new python features, but this is getting ridiculous. What an utterly pointless thing to bloat the language with. At this point my moving to clojure as my first line language of choice is only accelerating.

This is of the category "things I wouldn't want to use even for the specific hyper niche things they're intended for". What even does a "t-string" represent? Because it's clearly not a string of any kind, it's a weird kind of function call notation. The programmer sees something that looks like string formatting, but the program executes some arbitrary procedure that might not return a string whatsoever.
by heresie-dabord | 2025-04-21 11:38:25+00:00
> many of the problems in our current social media landscape could be solved by eliminating the "feed" and instead displaying posts, updates, and pictures from friends, family, and those we know in real life

You want nourishment instead of toxins! ^_^

The thing called "social media" is mostly a US export. It craves monetisation — at the expense of all else, including factual information.

What it has done to US society and public discourse is plain to see.
by steventhedev | 2025-04-21 11:38:37+00:00
I'm fond of using KaTeX for my personal blog posts. There is support for server side rendering for KaTeX (but not on GitHub pages because it necessarily opens it to arbitrary code execution - I asked).

But it notably lacks tikz support and if it can emit SVGs I'm beginning to wonder why I even use KaTeX and not something like this (beyond my personal anti-JS sentiment)
by tasuki | 2025-04-21 11:39:30+00:00
Yes, what you did is strictly more powerful than what the Python people did. And you did it 20 years ago. Well done, have an upvote. And yet, here we are in 2025 with Python popularity growing unstoppably and (approximately) no one caring about OCaml (and all the other languages better than Python). It makes me sad.
by kaycebasques | 2025-04-21 11:40:08+00:00
Your OpenSCAD experience is an important point in the productivity debates that is often not discussed. A lot of projects that were previously impossible are now feasible. 10 years ago, you might have searched the OpenSCAD docs, watched videos, felt like it was impossible to find the info you needed, and given up. Claude and similar tools have gotten me past that initial blocker many times. Finding a way to unblock 0 to 1 productivity is perhaps as important (or maybe even more important than) as enabling 1 to 10 or 1 to 100.
by znpy | 2025-04-21 11:40:29+00:00
> Spegel was published with an MIT license. Software released under an MIT license allows for forking and modifications, without any requirement to contribute these changes back.

If that's what the license says, why is the author complaining? Microsoft is complying with the license.

That's what you get for not picking the one of the license from the GPL family.

> However, I am not the first and unfortunately not the last person to come across this David versus Goliath-esque experience.

Again, this situation was completely avoidable. Stallman had foreseen this kind of situations literally forty years ago. That's why the Free Software movement exists.

Tangentially related: has anyone notice how the whole Grafana ecosystem is going strong and unaffected by forks and corporate take-overs? I'm pretty sure that the AGPL license is playing a big role into that.
by vitus | 2025-04-21 11:40:37+00:00
> For that reason, easy to read, simple regex wins over fancy, but convoluted regex.

Sure, I'd take \d+\.\d+\.\d+\.\d+ over... "((2(5[0-5]|[0-4][0-9])|1[0-9]{2}|[1-9]?[0-9])\.){3}(2(5[0-5]|[0-4][0-9])|1[0-9]{2}|[1-9]?[0-9])", assuming that I then validate the results afterwards.
by kisonecat | 2025-04-21 11:40:44+00:00
Author of TikZJax here...

I'm endlessly distracted by other things at work, but I believe this same idea could also be used to provide real-time compilation of TeX'd documents as they're typed. Simon Rubinstein-Salzedo had suggested wanting something like a real-time Overleaf to teach his classes at https://eulercircle.com/ Interrupting and resurrecting the TeX-in-the-browser would let you render a document as it is typed.