frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

UnAutomating the Economy: More Labor but at What Cost?

https://www.greshm.org/blog/unautomating-the-economy/
1•Suncho•3m ago•0 comments

Show HN: Gettorr – Stream magnet links in the browser via WebRTC (no install)

https://gettorr.com/
1•BenaouidateMed•4m ago•0 comments

Statin drugs safer than previously thought

https://www.semafor.com/article/02/06/2026/statin-drugs-safer-than-previously-thought
1•stareatgoats•6m ago•0 comments

Handy when you just want to distract yourself for a moment

https://d6.h5go.life/
1•TrendSpotterPro•8m ago•0 comments

More States Are Taking Aim at a Controversial Early Reading Method

https://www.edweek.org/teaching-learning/more-states-are-taking-aim-at-a-controversial-early-read...
1•lelanthran•9m ago•0 comments

AI will not save developer productivity

https://www.infoworld.com/article/4125409/ai-will-not-save-developer-productivity.html
1•indentit•14m ago•0 comments

How I do and don't use agents

https://twitter.com/jessfraz/status/2019975917863661760
1•tosh•20m ago•0 comments

BTDUex Safe? The Back End Withdrawal Anomalies

1•aoijfoqfw•23m ago•0 comments

Show HN: Compile-Time Vibe Coding

https://github.com/Michael-JB/vibecode
3•michaelchicory•25m ago•1 comments

Show HN: Ensemble – macOS App to Manage Claude Code Skills, MCPs, and Claude.md

https://github.com/O0000-code/Ensemble
1•IO0oI•29m ago•1 comments

PR to support XMPP channels in OpenClaw

https://github.com/openclaw/openclaw/pull/9741
1•mickael•29m ago•0 comments

Twenty: A Modern Alternative to Salesforce

https://github.com/twentyhq/twenty
1•tosh•31m ago•0 comments

Raspberry Pi: More memory-driven price rises

https://www.raspberrypi.com/news/more-memory-driven-price-rises/
1•calcifer•36m ago•0 comments

Level Up Your Gaming

https://d4.h5go.life/
1•LinkLens•40m ago•1 comments

Di.day is a movement to encourage people to ditch Big Tech

https://itsfoss.com/news/di-day-celebration/
3•MilnerRoute•42m ago•0 comments

Show HN: AI generated personal affirmations playing when your phone is locked

https://MyAffirmations.Guru
4•alaserm•42m ago•3 comments

Show HN: GTM MCP Server- Let AI Manage Your Google Tag Manager Containers

https://github.com/paolobietolini/gtm-mcp-server
1•paolobietolini•44m ago•0 comments

Launch of X (Twitter) API Pay-per-Use Pricing

https://devcommunity.x.com/t/announcing-the-launch-of-x-api-pay-per-use-pricing/256476
1•thinkingemote•44m ago•0 comments

Facebook seemingly randomly bans tons of users

https://old.reddit.com/r/facebookdisabledme/
1•dirteater_•45m ago•1 comments

Global Bird Count Event

https://www.birdcount.org/
1•downboots•46m ago•0 comments

What Is Ruliology?

https://writings.stephenwolfram.com/2026/01/what-is-ruliology/
2•soheilpro•47m ago•0 comments

Jon Stewart – One of My Favorite People – What Now? with Trevor Noah Podcast [video]

https://www.youtube.com/watch?v=44uC12g9ZVk
2•consumer451•50m ago•0 comments

P2P crypto exchange development company

1•sonniya•1h ago•0 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
2•jesperordrup•1h ago•0 comments

Write for Your Readers Even If They Are Agents

https://commonsware.com/blog/2026/02/06/write-for-your-readers-even-if-they-are-agents.html
1•ingve•1h ago•0 comments

Knowledge-Creating LLMs

https://tecunningham.github.io/posts/2026-01-29-knowledge-creating-llms.html
1•salkahfi•1h ago•0 comments

Maple Mono: Smooth your coding flow

https://font.subf.dev/en/
1•signa11•1h ago•0 comments

Sid Meier's System for Real-Time Music Composition and Synthesis

https://patents.google.com/patent/US5496962A/en
1•GaryBluto•1h ago•1 comments

Show HN: Slop News – HN front page now, but it's all slop

https://dosaygo-studio.github.io/hn-front-page-2035/slop-news
7•keepamovin•1h ago•1 comments

Show HN: Empusa – Visual debugger to catch and resume AI agent retry loops

https://github.com/justin55afdfdsf5ds45f4ds5f45ds4/EmpusaAI
1•justinlord•1h ago•0 comments
Open in hackernews

10 Years of Betting on Rust

https://tably.com/tably/10-years-of-betting-on-rust
114•K0nserv•8mo ago

Comments

zesterer•8mo ago
Accidentally clicking on anything resulting in accidental local deletions and modifications to the article is extremely irksome. Skill issue, I guess?
smokel•8mo ago
Took me a while to figure out what you meant, but apparently this blog post is hosted on Tably [1], which allows one to edit the page locally. One would expect there to be a setting to disable these features for a public post.

[1] https://tably.com/

ed_elliott_asc•8mo ago
Thanks, I was trying to figure out what sort of weird ai spam it was
mocatta•8mo ago
(OP here) You're not alone https://www.reddit.com/r/rust/comments/1l3tyvv/10_years_of_b...

Noted, and working on it! Pages are copy-on-write as most on the site are intended to be templates where that behaviour makes sense. Working on mitigating annoyances like those observed in these threads. Longstanding browser-specific issues like https://bugzilla.mozilla.org/show_bug.cgi?id=1001790 make this tricky!

lmm•8mo ago
Can you make those funny buttons that you're using to refer to other websites look less like links? It's pretty confusing when I see a blue word that underlines when I hover on it but I can't middle-click it.
SSLy•8mo ago
btw, can you make links be `<a>`?
bmacho•8mo ago
Nah, it's needlessly hostile (just look at the comments).

> Longstanding browser-specific issues .. make this tricky!

I don't think it's true, there are no browser-specific issues that stand in the way of anything that people are complaining about. Or do you have a PoC in whatever browser?

MarkSweep•8mo ago
Does a blog post really need to be contenteditable? The vast majority of people viewing the page are only going to viewing the post, not editing it.
syndeo•8mo ago
Well, I used the power for good and put a crab emoji at the end haha
veltas•8mo ago
This to teach a lesson about the perils of unnecessary mutability.
strken•8mo ago
The irritating thing for me is that their links have somehow broken the middle mouse button, so each time I want to click on one I have a few seconds of trying to remember how their specific site implemented it.
vascocosta•8mo ago
As someone who dove deep into Rust at the end of 2022, I always find it interesting to read these stories from people who went through the harder times it was back in 2015. I feel lucky to have learnt the language when it was much more developed, as it certainly made the already steep learning curve a bit more comfortable.

In a way I feel like I'm going through what is described in the article but for Zig. I guess Zig is more or less in a similar place now to where Rust was back then. Still I enjoy very much using it already.

tonyhart7•8mo ago
whenever programming language adopted into big tech (MSFT,Google etc) or Big OSS (Linux etc) is already prove its mature ecosystem

but I cant say the same to Zig because I dont see it as (big) update compared to what we have

vascocosta•8mo ago
For me the value in Zig is its simplicity as a language (in a way similar to go's simplicity) and the explicit and very fine grained control over memory allocation. On top of that, I really appreciate tagged unions and error handling. It adds enough value on top of something like C to make it worth for me.

Still wherever I need absolute code correctness and production grade quality, I use Rust, my favourite language, at the expense of more code and spending more time doing it "the right way".

throwawaymaths•8mo ago
> For me the value in Zig is its simplicity as a language

I was reading an article about rust posted here yesterday and i realized: i have no clue what is going on in this code (also i presume "templage" is a typo):

    #[derive(Debug, Default)]
    pub struct Context {
        authed: bool,
    }

    #[derive(Template)]
    #[templage = "layout.jinja"]
    struct HomeTemplate {
        ctx: Context
    };

    pub async fn home() -> impl 
    IntoResponse {
        HtmlTemplate(
            HomeTemplate { ctx: 
    Context::default() }
        ).into_response()
    }
Narew•8mo ago
I personally think that the discovery of rust API is awfully as soon as macro is involve. It's impossible to know what argument is taken by macro. For example the "simple" `println!`, without example in the docstring it's impossible to guess what are the argument even when we have an IDE that show you the implementation.
techjamie•8mo ago
Looks like a small request handler for an HTTP framework using a page written with the jinja templating engine. I'm a bit rusty (pun intended) so I can't immediately place which HTTP framework that is though.
dsff3f3f3f•8mo ago
You're correct and the HTTP framework looks like Axum.
throwawaymaths•8mo ago
i mean i got that part :). my best guess is that the async function is some sort of factory? why you would need a factory to be async i have no idea.
vascocosta•8mo ago
Yes, while macros simplify some tasks, they also make it harder to really understand the code. Well, technically they hide the code in most languages as they're metaprogramming done in a separate language.

I love Rust and do some advanced code sometimes, but very rarely have I created a macro. I still see it more or less like "magic" that "super-human" library developers master to make their life easier. Typically not my use case.

This is another advantage of Zig. As you may know, metaprogramming in Zig doesn't use any special syntax, but rather the Zig language itself. This is often known as comptime and while not necessarily easy to grasp, as you're reasoning about compile time stuff, at least it's done in pure Zig.

throwawaymaths•8mo ago
to be fair you can generate a type in zig using a function that results in kinda obscure methods etc. i do think zig devs shy away from that kind of patterm though.
cogogo•8mo ago
I know nothing about zig so just looked it up on wikipedia. Apropos of nothing it’s the first wikipedia article I’ve read that I’m convinced was written by/using an LLM.

https://en.m.wikipedia.org/wiki/Zig_(programming_language)

Hasnep•8mo ago
Having skimmed it, I had the opposite reaction, the wording is clunky in a way that I haven't seen LLMs do, it feels very human to me.

Stuff like

> Also the learning curve for Zig can be steep, especially for those unfamiliar with low-level programming concepts.

I don't think an LLM would start a sentence with "also" like that

> The small and simple syntax is an important part of the maintenance, as it is a goal of the language to allow maintainers to debug the code without having to learn the intricacies of a language they might not be familiar with.

The wording here feels like someone who's a fan of Zig taking a sentence praising Zig's design and trying to rework it into a slightly more neutral encyclopedia style.

cogogo•8mo ago
> Other challenges mentioned by the reviewers are interoperability with other languages…

This sounds exactly how llms have made comparisons for me. What reviewers?

Hasnep•8mo ago
Those points are taken from the article in the reference at the end of the sentence, it's just someone rewording a blog post.
cogogo•8mo ago
“Someone rewording a blog post” is exactly the tone of an LLM summary.
metaltyphoon•8mo ago
> value in Zig is its simplicity

IMO, there are things Zig just don’t care about, which in the surface makes it simple but its annoying and burdensome later on.

  * Manual interface implementation
  * Internals of a struct is public
  * No string types
  * anytype requires reading code
  * Error can’t carry information
  * The iteration abstraction in the std is all over the place
 * Unused declarations is compilation error
vascocosta•8mo ago
I resonate with you about interfaces and a String type. At least these two are so prevalent even on the simplest of programs to warrant some proper language and std lib support.
estebank•8mo ago
There's a strong culture of "leave things better than you found them". When a user gets confused by the tooling/language, it's not the user's fault. If you got confused, chances are that others will too, so fixing/improving things when we encounter them has unbounded benefit. Second best time to plant a tree being today and all that.

One benefit of this is that if someone tries and bounces, when they try again a year later their experience might be improved enough that they don't bounce again. For a while I was of the thought that the best piece of advice I could give someone wanting to learn Rust was "wait 6 months" :)

jvanderbot•8mo ago
This is such a great attitude. I know LLMs are becoming the new Godwin's law, but I really wish this attitude was pervasive in LLM-based tooling. "If it's not working you're prompting wrong" is all we have. But I guess "wait 6 months" still applies (except then you're "NGMI").
vascocosta•8mo ago
I very much agree with this and that's one of the reasons I keep using Zig as it is now. I try to provide feedback on what isn't very obvious to me.
noelwelsh•8mo ago
I deleted a paragraph from the post. That was unexpected. Nobody really cares about large types though, right?

I suppose if I find anything I really disagree with I can correct it, so that's a bonus.

bravesoul2•8mo ago
I rewrote it to be about Go
blacklion•8mo ago
1. This site shows links in such way, that browser doesn't show target of the link in the bottom of the window

2. I've tried to re-use tab bu typing new URL into URL bar and it doesn't work, browser re-open same page and replace URL back!

WTF?!

ninetyninenine•8mo ago
I feel rust promotes functional programming. I created a parser that would change its own state on an advance but the mutability and borrowing kind of made it hard to do it that way so I changed it so that the parser was stateless and had to return an index rather then adjust an internal index. Is it common for people to hit issues like this where the traditional pattern just doesn’t work and you have to do it a completely different way for rust?
vascocosta•8mo ago
I've experienced this. I would say it depends a lot on the complexity at hand, so for instance if it's something rather simple, you can keep track and avoid pitfalls even when doing it with a lot of mutation and imperative style. On the other hand, when complexity grows, I find myself going more functional and avoiding mutation at all cost, as obviously it avoids a lot of problems.

I would say Rust's borrow checker and lifetimes make it harder to use traditional patterns and favor a more functional approach. Obviously, sometimes doing it the functional way might be hard, for people not so used to it, but it keeps the compiler happier I would say.

IshKebab•8mo ago
Middle click doesn't work on your links btw. Oh... wait this is like some live editing view? What?
theThree•8mo ago
Async/await is the only thing prevent me from using Rust.
jvanderbot•8mo ago
It should be one of the main things bringing you to Rust, because it simplifies a lot of typical concurrency patterns.

When I started out, it felt icky and like some kind of infection that everything eventually had to be async, but that was because I didn't understand how to interact with async code. Using spawn, spawn_blocking, and futures::stream is 90% of my use case, and it makes it easy to set up "barriers" beyond which async doesn't need to spread.

mrkeen•8mo ago
I did a fair bit of Rust (only single-threaded, quite a few years ago) but it sounds like the dependency inversion principle is popping up again.

DIP, async/await, coloured-functions, io-monad. All cases where the business logic should go in one column (abstract/sync/blue/pure), and your machinery should go in the other column (concrete/async/red/io). Your logic will remain unit-testable that way, regardless of how big or small it gets.

Irritated newcomers will complain about not being able to call in the other direction. So what's a language-designer to do? Attract the largest possible user-base by not getting in the user's way - or filter out frustrated users and have fewer but better codebases out there?

jvanderbot•8mo ago
Dependency inversion does apply sometimes, but a well-designed library caps async around functions that need it - things that interact with filesystem or network, etc. Those are perfectly testable as-is. Your core business logic is still sync, if you'd like to to be. Async can call sync just fine, and sync can call async, as long as you are willing to admit that you're abstracting away a network call in a unit tests (for some reason).

The typical pattern I enjoy is:

* Sync for the logic

* Async for the job runners b/c I'd like to do other things while it's going.

* Sync or Async as required for the data wrangling (db calls, network, filesystem)

So you have essentially:

1. kick off job, returning a future, by calling an async function.

2. Job is mostly async data wrangling, followed by a sync logic block that's unit tested, followed by an async "save" if required.

3. Either wait for the future, or run the task in the background, or `.await` if you're in an async block.

I'm hand waving away the syntax, but that's the mental model. 99% of code isn't async, and the code that is isn't async for the fun of it.

vascocosta•8mo ago
I know where you're coming from. But for me it's one of the main reasons I use Rust, since it clicked for me after the initial hurdles. Contrary to the average opinion on this, I like the syntax and don't mind so much about function colouring.

Especially when using tokio I feel like my solutions work out pretty well. I also very much appreciate how they create async equivalent functions for pretty much any std function worth using. Maybe this creates a divide, but my concurrent programs feel easy to code and the performance is pretty good.

My only semi-issues are probably stuff like task cancellation, however I attribute that to skill issues on my end, rather than tokio or the way async/await is implemented in Rust.

pjc50•8mo ago
Doesn't it have it now?
vascocosta•8mo ago
It has and it's both pretty mature and extensively used. Some users have philosophical reasons against using async/await at all, so I believe that's why the user said that... The other option being the user doesn't like the way it is implemented, compared to other languages.
Arch-TK•8mo ago
I think it's great that some people don't care about the technology behind their blog and instead focus on writing, but this is taking the cake. I keep accidentally editing this blog post as I am reading it and there seems to be no easy way to stop it from happening...

edit: Oh my god, this is your product!? Please, this is a stupid gimmick. Middle click on X11 pastes the selection buffer, a critical feature for my productivity, and now when I try to open links in a new tab I end up pasting text I've selected.

bmacho•8mo ago
> Oh my god, this is your product!? Please, this is a stupid gimmick. Middle click on X11 pastes the selection buffer, a critical feature for my productivity, and now when I try to open links in a new tab I end up pasting text I've selected.

Indeed, there should be a non-editable mode.

tasuki•8mo ago
Make it a paid feature and you'll be rich beyond imagination!
Joeboy•8mo ago
It's slightly more forgivable because at least the text is supposed to be editable, but Azure tickets also have this middle-click issue. It's infuriating.
wonrax•8mo ago
I thought this was a gimmick too until I went to their landing page and it's also an editable doc. It's intentional.
weinzierl•8mo ago
That is a very positive article and it matches my experience, the only bleak outlook is:

"async has a relatively high complexity cost for us due to the 'static bound (cc), cancellation-safety, and restrictions relating to traits and dyn. These currently seem insoluble. Bifurcation between sync and async primitives and ecosystem idiosyncrasies further increase the async tax. Effects-inspired solutions seem unpromising."

"Pre-1.0 Rust had a solution: libgreen. It achieved concurrency in user-space without this bifurcation, but at significant performance, portability and maintenance cost and so was removed. With increased engineering bandwidth this may be worth revisiting. Again the language simplicity would be worth it. (One day I’ll create a PoC of zero-cost wrapping of std::{fs, net} plus fiber::{spawn, select} using generator!)"

davidhyde•8mo ago
> “async has a relatively high complexity cost for us due to the 'static bound (cc)”

I stand to be corrected but I believe that this is design choice of the Tokio async runtime and not a Rust design choice. For example, the Embassy async runtime does not have this bound but then you have to handle pinning yourself. Also, the static bound is supposed to lower the complexity cost, not raise it.