MurphyA/hacker-news huggingface dataset:
by systems | 2025-04-01 13:54:11+00:00
The problem with F#, Clojure and Elixir (hosted languages)

For F# , you need some basic C# knowledge For Clojure, you need some basic Java knowledge For Elixir, you need some basic Erlang knowledge

I like all 3 languages but usually each vm have a primary language, and each hosted language eventually become hosted on that primary language not the vm

I understand that for many task simple, to medium complexity, you might not need that, but it seem as you try to be more advanced you hit the wall of having to learn you host vm primary language
by ath3nd | 2025-04-01 13:54:14+00:00
> you'll realize you are being systematically robbed by taxes that end up eating 70% of your income

Where does the water from your tap come from?

Where did you or your children go to study?

Did you make your own road, that you use to go to work?

Do you have a pension built up?

Do you fight your own fires and fight your own crime?
by dmix | 2025-04-01 13:54:41+00:00
I was replying to your comment about the state of frontend, not OP about using AI, just like the other replies you got.

Anyone admitting in public they use LLM output straight up without careful thought wouldn't get hired by me. But at the same time not everyone is building useful tools that people use... or is a professional.

But still in general I agree the sentiment of any backend dev who avoids modern frontend. The frontend world is the one who created this problem and continues doubling down on JS/React-everything and isolating frontends from backends, for little benefit besides minor DX gains (aka benefiting only the frontend dev, not the product or users).
by dcow | 2025-04-01 13:54:43+00:00
I wonder if this will result in a reconsideration of the runtime abstraction boundary itself. Right now the runtime umbrella also includes the way you build native menus and work with the system tray. So if you wanted to swap out runtimes, there's a fair chance it isn't trivial because you have Menu<Wry> in various places. The other option is to make all your code generic on runtime like tauri's but that's confusing and cumbersome in my experience because all your code has to become generic with constraints that are not documented or explained anywhere (essentially library implementation details). Would be nice to see a "web render runtime" and a separate "native UI runtime", or see the menu system abstraction revamped.
by neonsunset | 2025-04-01 13:55:11+00:00
F# is a statically typed language with gradual typing and full type inference.

Given

let hello value = printfn "%A" value hello "world" hello 2

The binding "hello" has "'a -> unit" signature where 'a is a generic argument it accepts because the "printfn" binding with a given format specifier is generalized the same way and an unconstrained 'T (here 'a) is the most narrow type inferred for "hello".
by jfengel | 2025-04-01 13:55:13+00:00
The entire point of an AFJ is that they don't know it's a joke. As the name says, the goal is to "fool" them. They don't know it's a "silly April Fool's email".

Designing an AFJ is tricky, and the larger your audience the trickier it gets. Your friends know you're a jokester; they figure it out almost immediately. When you send it out to a bunch of people you don't know, somebody is going to forget the date and assume you're serious -- because it's supposed to look serious.

Further, if it looks like something that might be a problem they have to solve, somebody is going to start solving that problem immediately. You don't know what's going on in their day -- if they've already got six crises going, they're not going to "take a joke" well.

The wider your audience, the more obvious you have to be. Knowing how to deliver a joke is also an important life skill -- as is learning not to blame your failure on the target.
Show HN: Spatial audio demo in Rust using AudioNimbus/Steam Audio
by mxncmr | 2025-04-01 13:55:34+00:00
A few weeks ago, I introduced AudioNimbus [1], a Rust wrapper for Valve’s Steam Audio, bringing immersive spatial audio to Rust projects.

To demonstrate its potential, I've created an interactive demo [2] where you can walk around different levels and experience it in action, including:

- HRTF rendering for precise directional sound

- Physical occlusion (dynamic muffling of sound through walls)

- Reflections & reverb

Video walkthrough: https://www.youtube.com/watch?v=zlhW1maG0Is

AudioNimbus is MIT/Apache-2.0 licensed. Reach out if you build something with it!

[1] https://github.com/MaxenceMaire/audionimbus [2] https://github.com/MaxenceMaire/audionimbus-demo
by diggan | 2025-04-01 13:55:50+00:00
> Local media reported that three people died in the incident that’s likely to spark scrutiny over the smart driving software deployed in many of today’s cars.

How come these things are "scrutinized" afterwards instead of before? Governments are severely dragging their feet behind their backs and should clearly outlaw and force certification of these "smart" systems before they're deployed, not afterwards.

Bananas how we're letting these companies use public roads with real humans as testing grounds for driver assistance software.
by red-iron-pine | 2025-04-01 13:56:03+00:00
isn't the TCO for those engineers also something like 400k each? not talking Principle Big-Dick Super-Staff Engineer, but like mid-level.

Netflix was famous for that, too -- no RSUs, just straight cash, and we'll fire you if we think you can't deliver.

100s of devs would essentially be their entire, company-wide, operating budget; it's gotta be like 10-15 people tops on these things.
by qwezxcrty | 2025-04-01 13:56:35+00:00
I miss OriginPro in my undergrad when we had campus licenses for, before moving to matplotlib for data visualization. matplotlib is simply too disappointing for making publication quality figures. The most recently encountered problem is how to plot with a broken x-axis, which is one of the most basic need in physical science but requires a non-trivial amount of hacking to get with matplotlib.

Open source tool or not, I don't care at all as I get the science right. I have already enough frustration dealing with my samples, so I simply want the least frustration from the software I use to plot.
by debugnik | 2025-04-01 13:56:56+00:00
Yes mixing is just like with VB.NET.

When mixing, you often write business logic as self-contained F# libraries with a C#-friendly API; and use C# to integrate them with whatever imperative, reflection-heavy and DI-heavy frameworks .NET is promoting the current year, since those are filled with interop edge cases for F# anyway.

You really want to avoid a language sandwich though (e.g. C#/F#/C#), because you'll keep wishing to remove the middle layer. Sadly, the addition of source generators make this mistake even more appealing.
by aredox | 2025-04-01 13:57:20+00:00
It is not easy to compare as there are lots of confounding variables - self-driving is not activated at random or all the time, but typically on highways, which are less accident-prone.

They are also deactivated in difficult conditions such as bad weather which are also hard for human drivers. You can imagine a future with all cars are equipped with a self-driving system that always "passes the buck" to a human when conditions degrade - of course the system will have less accidents than humans! The statistics will even show human drivers being worse than before the advent of self-driving!
by viraptor | 2025-04-01 13:57:27+00:00
There's a few I'm not going to link, but warn about them instead. They're often in the "lies, damned lies" category.

For example comparing self driving to average accidents often misses: non self driving cars having worse equipment (lack of collision warning, adaptive cruise control, etc.), comparison to all roads (self driving is activated mostly on known, well mapped areas and open highways), unknown accounting for self driving status (Teslas try to give back control just before the crash), and many other issues.

Unless some actually independent third party runs the numbers with a lot of explanations about the methodology, I'm ignoring them.
by palata | 2025-04-01 13:57:29+00:00
I haven't seen such a guide, unfortunately :-).

I consider hosting a system or service trivial ("just run the service and open its port to the public Internet"). Then the first question is: what if the service gets compromised (that seems like the most likely attack vector, right?)? Probably it should be sandboxed. Maybe in a container (not running as root inside the container, because I understand it makes it a lot easier to escape), better if it is in a VM (using Xen maybe?). What about jails?

Now say the services are running in VMs, and the "VM manager" (I don't know how to call it, I mean e.g. dom0 for Xen) is only accessible from my own IP (ideally over a VPN if it's running in a VPS, or just through the LAN if running at home?), the next question is: what happens if one of the services gets compromised? I assume the attacker can then compromise the VM, so now what are the risks for me? I probably should never ssh as a user and then login as root from there, because if it's compromised the attacker can probably read my password? Say I only ever login through ssh, either as root directly or as the user (but never promoting myself to root from the user), what could be vectors that would allow an attacker to compromise my host machine?

I listened to a lot of "Darknet Diaries" episodes, and the pentesters always say "I got in, and then moved laterally". So I'm super scared about that: if I run a service exposed to the Internet, I assume it may get compromised someday (though I'll do my best to protect it and keep it up-to-date). But then when it gets compromised, how can I prevent those "lateral moves"? I have no idea, as in "I don't know what I don't know".

All that to say, I would love to find a book or blog posts that explain those things. Tutorials I see usually teach how to run a service in docker and don't really talk about security.
by jerf | 2025-04-01 13:57:47+00:00
One of my Core Memories when it comes to science, science education, and education in general was in my high school physics class, where we had to do an experiment to determine the gravitational acceleration of Earth. This was done via the following mechanism: Roll a ball off of a standard classroom table. Use a 1990s wristwatch's stopwatch mechanism to start the clock when the ball rolls of the table. Stop the stopwatch when the ball hits the floor.

Anyone who has ever had a wristwatch of similar tech should know how hard it is to get anything like precision out of those things. It's a millimeter sized button with a millimeter depth of press and could easily need half a second of jabbing at it to get it to trigger. It's for measuring your mile times in minutes, not fractions of a second fall times.

Naturally, our data was total, utter crap. Any sensible analysis would have error bars that, if you treat the problem linearly, would have put 0 and negative numbers within our error bars. I dutifully crunched the numbers and determined that the gravitational constant was something like 6.8m/s^2 and turned it in.

Naturally, I got a failing grade, because that's not particularly close, and no matter how many times you are solemnly assured otherwise, you are never graded on whether you did your best and honestly report what you observe. From grade school on, you are graded on whether or not the grading authority likes the results you got. You might hope that there comes some point in your career where that stops being the case, but as near as I can tell, it literally never does. Right on up to professorships, this is how science really works.

The lesson is taught early and often. It often sort of baffles me when other people are baffled at how often this happens in science, because it more-or-less always happens. Science proceeds despite this, not because of it.

(But jerf, my teacher... Yes, you had a wonderful teacher who didn't only give you an A for the equivalent but called you out in class for your honesty and I dunno, flunked everyone who claimed they got the supposed "correct" answer to three significant digits because that was impossible. There are a few shining lights in the field and I would never dream of denying that. Now tell me how that idealism worked for you going forward the next several years.)
by a2128 | 2025-04-01 13:58:10+00:00
LLMs are not a third party source of information, they're prediction engines with known hallucination behaviors. If they're faced with a difficult or impossible challenge (e.g. if the user fails to provide a diff, or fail to provide anything to compare against), and if there is only one type of answer in its training data (there is very little text on the internet that's positive about a TOS change), the most likely outcome is that it'll just make something up that's similar to that type of answer. Yes sometimes they'll realize and ask for more info or maybe call out to a tool to make a diff, but it all depends on the user's setup and settings and the state of RNG that day
by guhidalg | 2025-04-01 13:58:20+00:00
I don't know if there's a name for it but essentially F# is where the language designers can push the boundaries and try extremely new things that 99% of users will not want or need, but eventually some of them are such good ideas that they feed back into C#.

Maybe that's just research, and I'm glad that Microsoft hasn't killed F# (I do work there, but I don't write F# at work.)
by Nelkins | 2025-04-01 13:58:27+00:00
It's statically typed and inferred.

With regards to your example, the print/printfn (equivalent of Write/WriteLine) functions are a bit funny in F#. They don't actually take bound string values directly. You need to specify the type (which could be a string, a number, obj, etc)

https://learn.microsoft.com/en-us/dotnet/fsharp/language-ref...
by Akronymus | 2025-04-01 13:58:42+00:00
As someone who quite likes f#: It seems like a chicken and egg problem, not many companies doing f# because not many devs know it and not many devs learning it because not many companies are doing it.

I certainly wish I were doing f# professionally, but I only ever found 1 job listing for it, and that was in vienna while I am located like 200km away from it :(

Speaking of elm: I really like elmish for the frontend, when I need to make a dynamic page in the first place. Maybe that could be to your interest? (It transpiles to react under the hood via fable, which you can webpack into a drop in bundle. But I digress)
by yusefnapora | 2025-04-01 13:58:55+00:00
I think it makes sense if you think of Tauri as a "view layer" for rust apps. If you're building a rust GUI app using something like Dioxus, I could easily see wanting to bundle a cross-platform renderer with consistent "quirks", vs having to adapt your frontend to work with all the platform web views.

It has trade offs in terms of memory usage and binary size, but Electron has already conditioned users to expect every todo and chat app to be 500mb on disk and use a gigabyte of ram at idle. In other words, if Electron would make sense for your project, but you want to use rust, this seems like a good fit.
by robertlagrant | 2025-04-01 13:59:04+00:00
> There should be no billionaires.

These moral judgements aren't great ways to make economic decisions. A billionaire can just be someone who owns a lot of shares in a company that's currently valuable. A company's value (in this sense) is just the total number of shares multiplied by the last share sale price.

It doesn't mean they have a billion dollars in cash. The billions don't even exist. They're just a value based on the last transaction value of the company's share dealing.
by FinnLobsien | 2025-04-01 13:59:19+00:00
The question is how much that first-mover advantage still means. I guess with video games and movies (Doom and Ghibli), there's a massive difference between telling ChatGPT to make your selfie look like Ghibli.

But for illustrators and graphic artists? What's now keeping me from downloading an illustrator's portfolio and telling ChatGPT to make me something in that style, but for my company?

Is there still value in that illustrator pioneering her unique style? It used to be a client magnet, now a good portfolio might take your potential clients away.

I guess the other side of this is that the more a style/idea/media spreads, the more comesw back to the original creator, but I'm doubtful this is true in AI.
by Gravityloss | 2025-04-01 13:59:23+00:00
There's a lot of variance in golf courses and golf cultures and players. At worst it's really bad, at best it's really good.

Maybe there could be a coordination method to only play with blades and persimmons. Then you could mark it in when reporting your score for handicap calculation. That's the make-it-or-break-it decision. If there's a way to get recognition or compensation for playing with worse equipment, then people might do it.

Shorter courses could also be more interesting this way. Then you would have more places to play closer by, eliminating travel etc.

There's some precedent already. Drivers have limitations and most manufacturers are under them (ie just at the limit for things like moment of inertia) but drivers that are outside regulations are available to buy online. Also horizontal distance metering is allowed in competition, but not vertical distance. Most rangefinders have a visible external switch to disable vertical distance. One could expand from those two places where we by regulation already use sub-optimal equipment.
by frankzander | 2025-04-01 13:59:27+00:00
Infact it isn't the style which has been copyright infringed but the original works which had been fed into the Neuronal networks in order to learn how to produce such works. There is no consent from the authors. I'm not a fighter copyright but if someone makes money from someone others work than the author should be compensated. The AI industry is standing on the shoulders of giants and make a lot of money. If the authors had been asked beforehand if their works could be use to train NN than I'm sure this whole AI blubble is has burst long time ago.
by hocuspocus | 2025-04-01 13:59:29+00:00
It's never been a better time to try Scala if you're interested in the FP side. It's still very much "not opinionated" but the community and ecosystem have benefited from a certain convergence and given up on the "better Java" front which is served by Kotlin more adequately. Of course you can still consume any Java library when needed but it's best to avoid it if possible. Today you can pick between several ecosystems:

- Typelevel libraries: modern and more welcoming take on ScalaZ ideas, rich and mature, extensible libraries that are written in "tagless final" style.

- ZIO: concrete "super monad" with 3 type parameters, shuns the Haskell baggage and category theory lingo but pretty much the same concepts, compile-time autowiring dependency injection, a bit less mature.

- Kyo: new effects system on the block, pushing Scala 3's type system to the limit to stack effects using an "auto-flattening" monad (sorry if I butchered the description).

- Li Haoyi's own ecosystem that sticks to the standard library and JVM built-in mechanisms whenever possible, focused on Python style expressiveness, only more functional and with stronger types.

- I'd skip Akka/Pekko libraries but it's still an interesting piece of software if you need actor based, stateful cluster sharding.

Martin Odersky and the LAMP are focused on "capabilities" and we should eventually see something like direct-style algebraic effects, or like Kyo but without monads.

Also we have much better build systems than before (Scala-CLI, Mill, sbt has improved a lot too), binary backwards compatibility since Scala 3, and a very capable LSP backend if you don't like IntelliJ IDEA.
by foobarian | 2025-04-01 13:59:52+00:00
The problem is the accident distribution is really skewed, with a small fraction of drivers contributing most accidents. That means the majority drive a lot better than average, and would likely not put up with a regression in accident rates from what might be a "better than average" system but still not as good as human. I know I wouldn't, I pay attention, never had an accident in 30 years, tried a few FSD implementations including Tesla's and they scared the bejesus out of me.
by ssivark | 2025-04-01 13:59:56+00:00
Why is it a jab at physics? It's honest and beautiful -- I imagine this is exactly what an experience on the cutting edge of experiment is like! :D

Making this measurement (an ancient discovery) with latest equipment is easy, but imagine what it might have been like for the people who actually discovered this property of germanium. Our tools/probes cannot advance much faster than our understanding of a (related) subject -- we are constantly inventing/improvising tools using cutting edge scientific knowledge from a related field.
by troyvit | 2025-04-01 14:00:37+00:00
> An extra 100-200KB compressed is a ~100ms one time cost once in a while for the majority of my users, and ~1s for 95%+ of users. At that point I'm going to optimize for developer productivity

Is that 100ms on fiber? Cable? 5G? 4G?

Is that for the first button? Or each button? And what happens when you next need to manage dates as objects? Do you pull down dayjs or do you wrangle it yourself? What other libraries do you need to add? How's build speed? How much time to the linters take as they cascade through all that code? How are your Next.js (a pretty standard companion to react) version updates going? Keeping up with security alerts?

I'm biased against React because I manage a team trained in classic web design who now have to manage a giant React codebase and learn its special way of doing things, and it's a slog.

Agencies are going to keep building with React because they can get 90% of a project done in no time flat, and they don't have to deal with the infra challenges after they get their check. Small clients like us will continue to fall for it and slowly grind to a halt as the infrastructure pulls the team to a standstill.
by Akronymus | 2025-04-01 14:01:14+00:00
along with what jcmontx said: F# is structured bottom from top. As in you can't reference something that is later defined earlier. I find that naturally leads to getting a decent enough structure "for free" because it forces you to have your basic functionality early on and build on that later.

That also, IMO, makes untangling/splitting up parts of the codebase easier as well.
by indoordin0saur | 2025-04-01 14:01:59+00:00
You're entirely right. The person you're responding to doesn't sound like a senior engineer so much as a grouchy old engineer who is burned out. Of course, you can get bad clients but expecting them to know exactly what specs they want every time is unreasonable in most situations, particularly if they don't have the technical knowledge of the systems you work in.
by nudpiedo | 2025-04-01 14:02:04+00:00
Same as many, I had wonderful experience with F# in the past, I would use it again if:

- fable would 100% detach from dotnet - keeps up yo the LLM rush, specially vibe coding on cursor

Last LLM experience it generated obsolete grammar (not much but a bit).

Such la gauges are key for vibe coding experience and modeling.
by 8s2ngy | 2025-04-01 14:02:26+00:00
I understand your perspective. I like to view niche languages as a medium for learning. For instance, I enjoy using Rust in my personal projects—even if many of these projects may never be released—because the lessons on immutability, functional programming constructs, and trait-oriented programming significantly enhance my day-to-day work. Therefore, I believe that learning niche languages, even in the absence of a robust job market, is worthwhile.