frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Nobody knows how to build with AI yet

https://worksonmymachine.substack.com/p/nobody-knows-how-to-build-with-ai
58•Stwerner•51m ago•24 comments

Known Bad Email Clients

https://www.emailprivacytester.com/badClients
21•mike-cardwell•37m ago•13 comments

Linux and Secure Boot certificate expiration

https://lwn.net/SubscriberLink/1029767/43b62a7a7408c2a9/
92•todsacerdoti•8h ago•41 comments

My Self-Hosting Setup

https://codecaptured.com/blog/my-ultimate-self-hosting-setup/
409•mirdaki•13h ago•150 comments

Fstrings.wtf

https://fstrings.wtf/
252•darkamaul•5h ago•69 comments

Hyatt Hotels are using algorithmic Rest “smoking detectors”

https://twitter.com/_ZachGriff/status/1945959030851035223
390•RebeccaTheDev•12h ago•220 comments

Babies made using three people's DNA are born free of mitochondrial disease

https://www.bbc.com/news/articles/cn8179z199vo
97•1659447091•2d ago•48 comments

Valve confirms credit card companies pressured it to delist certain adult games

https://www.pcgamer.com/software/platforms/valve-confirms-credit-card-companies-pressured-it-to-delist-certain-adult-games-from-steam/
730•freedomben•1d ago•707 comments

OpenAI claims Gold-medal performance at IMO 2025

https://twitter.com/alexwei_/status/1946477742855532918
164•Davidzheng•7h ago•247 comments

Pimping My Casio: Part Deux

https://blog.jgc.org/2025/07/pimping-my-casio-part-deux.html
111•r4um•8h ago•30 comments

A 14kb page can load much faster than a 15kb page (2022)

https://endtimes.dev/why-your-website-should-be-under-14kb-in-size/
337•truxs•8h ago•229 comments

Piramidal (YC W24) Is Hiring a Full Stack Engineer

https://www.ycombinator.com/companies/piramidal/jobs/JfeI3uE-full-stack-engineer
1•dsacellarius•4h ago

I avoid using LLMs as a publisher and writer

https://lifehacky.net/prompt-0b953c089b44
134•tombarys•5h ago•82 comments

What is the richest country in 2025?

https://www.economist.com/graphic-detail/2025/07/18/what-is-the-richest-country-in-the-world-in-2025
14•RestlessMind•50m ago•5 comments

YouTube No Translation

https://addons.mozilla.org/en-US/firefox/addon/youtube-no-translation/
118•thefox•8h ago•56 comments

Advertising without signal: The rise of the grifter equilibrium

https://www.gojiberries.io/advertising-without-signal-whe-amazon-ads-confuse-more-than-they-clarify/
133•neehao•14h ago•57 comments

How to write Rust in the Linux kernel: part 3

https://lwn.net/SubscriberLink/1026694/3413f4b43c862629/
232•chmaynard•18h ago•17 comments

Asynchrony is not concurrency

https://kristoff.it/blog/asynchrony-is-not-concurrency/
276•kristoff_it•21h ago•197 comments

Meta says it won’t sign Europe AI agreement, calling it an overreach

https://www.cnbc.com/2025/07/18/meta-europe-ai-code.html
289•rntn•22h ago•390 comments

Astronomers use colors of trans-Neptunian objects to track ancient stellar flyby

https://phys.org/news/2025-07-astronomers-trans-neptunian-track-ancient.html
12•bikenaga•3d ago•4 comments

N78 band 5G NR recordings

https://destevez.net/2025/07/n78-band-5g-nr-recordings/
13•Nokinside•2d ago•0 comments

A CarFax for Used PCs: Hewlett Packard wants to give old laptops new life

https://spectrum.ieee.org/carfax-used-pcs
22•miles•3d ago•20 comments

Debcraft – Easiest way to modify and build Debian packages

https://optimizedbyotto.com/post/debcraft-easy-debian-packaging/
71•pabs3•16h ago•22 comments

An exponential improvement for Ramsey lower bounds

https://arxiv.org/abs/2507.12926
18•IdealeZahlen•7h ago•1 comments

Mr Browser – Macintosh Repository file downloader that runs directly on 68k Macs

https://www.macintoshrepository.org/44146-mr-browser
80•zdw•16h ago•19 comments

Bun adds pnpm-style isolated installation mode

https://github.com/oven-sh/bun/pull/20440
97•nateb2022•15h ago•15 comments

Zig Interface Revisited

https://williamw520.github.io/2025/07/13/zig-interface-revisited.html
10•ww520•2d ago•1 comments

Broadcom to discontinue free Bitnami Helm charts

https://github.com/bitnami/charts/issues/35164
202•mmoogle•21h ago•108 comments

Silence Is a Commons by Ivan Illich (1983)

http://www.davidtinapple.com/illich/1983_silence_commons.html
178•entaloneralie•19h ago•45 comments

Zig's New Writer

https://www.openmymind.net/Zigs-New-Writer/
90•Bogdanp•2d ago•13 comments
Open in hackernews

C# Language Design Meeting for June 30th, 2025

https://github.com/dotnet/csharplang/blob/main/meetings/2025/LDM-2025-06-30.md
40•jasonthorsness•4d ago

Comments

jasonthorsness•4d ago
I always enjoy reading the language design committee notes (this is the latest one). C# has the most open and collaborative development process I am aware of. Do any other languages progress like this?
tester756•5h ago
Probably they're the only one among mainstream languages

And somehow C# has the most sane programming ecosystem

mdhb•5h ago
Dart is also absolutely fantastic in this regard.

https://github.com/dart-lang/language

https://github.com/orgs/dart-lang/projects/90/views/1

sakesun•3h ago
Python, Kotlin
legobmw99•3h ago
The python PEP process is fairly open, most of the discussion ends up happening on public facing boards. I don’t think they have regularly scheduled meetings to consolidate decisions, though
monocularvision•2h ago
Swift
brainzap•2h ago
Go has a repo with all discussions. the discussion about the package file format (go.mod) is very inspiring
jeswin•5h ago
C# is a fantastic language, and with NativeAOT it can become a real alterntive to Go. It "can"; but most likely it won't.

The problem with C# is that its design decisions won't attract any new users who are considering or using Go (or in some cases Rust). That's a consequence perhaps of listening to its users, who are mostly Windows-based and have rigid preferences. And then on the other hand, C# goes on to introduce excellent functional-style abilities - while at the same time handicapping them in some way.

Recently, on one of their GH issues I was arguing that it's a good idea to reduce typing and allow namespace inference from directory structures/paths - given that most projects already have them in sync (and it can be done in a non-breaking way). In general, I felt that the community feels that it should be solved with "IDE features". Pushing these into an IDE is the Windows way of doing things.

To win in Unix land, C# needs to be editable in a plain text editor. It requires succinctness. But with the current community, I'm afraid they'll never figure this out.

rjbwork•5h ago
>But with the current community, I'm afraid they'll never figure this out.

I hope that remains the case. File structure inferred namespacing to save one line per file seems like a ridiculous breaking change. If you're looking for succinctness to the level that something like that matters in your line/character count, use Perl or something.

If you're looking for something like scripting without a lot of fanfare, just look at https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-...

glimshe•5h ago
I never understood people who advocate radical succinctness so typing a program is optimal when most programming time is spent in reading documentation and debugging.
jeswin•3h ago
It's not radical succintness. I just like to write pure functions. C# embraces many fp idioms, but in the end makes it hard to use them without a lot of ceremony.

So what I see is a very capable language, with generics far ahead of golang, but a pain to write because I need to nest them inside namespaces and classes. If you take the HN crowd for instance (which is what a lot of startups are like), nobody wants to write Java-style OOP. C# can simplify it quite a bit (retaining full backward compat), but likely won't.

tyleo•4h ago
Agreed with this. I happen to work on some Unity projects that do not have namespace and file structure in sync. Unity makes this more likely to some extent.

Features like this just cause more unexpected and surprising things to happen.

I always tell folks I work with to have a “reader bias” when writing code. People bend backwards to add fancy reflection and magic to automatically save 3 lines of code then spend days of headache debugging it when it causes a problem.

jeswin•3h ago
> ridiculous breaking change

Not at all. This can be done without breaking code. The important part isn't typing the namespace - rather, the freedom to move files around without having to change namespaces.

Even if it were something like:

  auto namespace; // for example
it's good enough. Allows me to move directories around, without having to depend on an IDE to keep namespaces in sync. IDEs anyway can only take a good guess at this, if namespace doesn't match the dir name.

> just look at https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-...

I am not looking for a scripting solution. C# is a misfit for it. I want all of C#, with terseness and not forcing OOP.

zvrba•2h ago
> Allows me to move directories around, without having to depend on an IDE to keep namespaces in sync.

So... without and IDE, you'd move code around, let the NS be changed due to being placed in a different directory structure, and then fix namespaces on use-sites manually?

> I want all of C#, with terseness and not forcing OOP.

C# does not force OOP on you. You can have a single namespace, single static partial class and spread its members across as many files as you want. So the "ceremony" consists of the following snippet _per file_

    namespace NS;
    static partial class C {
        // Your methods here
    }
zvrba•4h ago
> Pushing these into an IDE is the Windows way of doing things.

s/Windows/modern/

> To win in Unix land, C# needs to be editable in a plain text editor.

I guess hard-core unix users still use sticks and stones to make fire.

jeswin•3h ago
I just want to focus on writing functions. Here's a trivial example.

I would like:

  // math/adder.cs
  public static add(int x, int y) : int {
    return x + y;
  }
Instead of:

  // math/adder.cs
  namespace math {
    class adder {
      public static add(int x, int y) : int {
        return x + y;
      }
    }
  }
Both are callable as:

  math.adder.add(10, 20);
politician•2h ago
Consider:

    // math/adder.cs
    package math;

    …code…
metaltyphoon•2h ago
I agree with the first example. I wish C# could do “free” floating functions which just lives in the namespace itself. Your second example could do with the extra namespace indentation by doing

namespace math;

tester756•2h ago
But why?

Having to use class/struct instead of free floating funcs tries to force some hierarchy, architecture, etc

Which eventually makes the code better *globally*

jeswin•1h ago
I was arguing that the hierarchy is already in your path. The explicit namespace (and even the class name) is redundant if what you want are mostly functions.

Currently, you're forced to define the hierarchy in the directory structure, and then again with namespaces. There should be a way to opt out of this.

tester756•1h ago
Ok, I see

As of now you can opt out of physical hierarchy (file patches)

I think logical hierarchy is better because you avoid stupid things like moving file to other folder causing compilation errors.

I've witnessed too much of such issues in C++/cmake world to want it.

zvrba•2h ago
C# allows file-level namespaces so you can write

    namespace Math;

    static class Adder {
      public static int Add(...) { ... }
    }

(one nesting level less). Next, elsewhere you can write

    namespace Whatever;
    using static Math.Adder;

    class CC {
      void M() {
        var z = Add(10, 20); // no NS qualification needed due to using static above
      }
    }

Java enforces directory structure to reflect package names, and this feature is not universally popular.
claytongulick•2h ago
Just Linux (not counting other *nix) has a ~63% server market share. [1]

That's a lot of sticks and stones.

[1] https://en.m.wikipedia.org/wiki/Usage_share_of_operating_sys...

speed_spread•2h ago
Server != Dev Workstation
uticus•4h ago
> Pushing these into an IDE is the Windows way of doing things.

I used to think in this idealistic way - if I can't reasonably use the language in VIM (without plugins of course!) the language is flawed, etc.

Lately I've come to embrace the viewpoint that a mixture of language features and great editor support are what enable productivity and creativity.

fsloth•4h ago
Great tooling is 50% of what makes C# and F# so damn good. For the love of god don’t write C# in a text-editor. The live debugger gives you over 80% of what people gush about in lisp-interactivity - a live program environment you can poke and introspect.

Being able to observe a live program in a debugger is so much more powerfull technique. I know there are people out there who can architect anyhting from first principles and deduction - but unless you are really strong it that way live IDE wins.

CharlieDigital•4h ago
Hard disagree on path based namespace inference.

It's a pain to couple these two and you end up with giant stacks of `import`s in "modern" JS.

When you reorganize files, now references need to be updated in many places. The editor slows to a crawl as the files are updated and the LSP has to process the changes.

Big yikes. I hate it in TS/JS because its a paper cut that doesn't need to exist. Namespaces make refactoring organization structure way less jarring and at least I do that very frequently in certain lifecycles of code.

jeswin•3h ago
> When you reorganize files, now references need to be updated in many places.

This is exactly why directory based namespaces are a good idea.

Otherwise:

1. You refactor. But namespaces which were formerly in sync with dir structure, but now aren't because you decided to move directories around to manage code better.

2. You don't refactor because it's a lot of work.

> I hate it in TS/JS

It's not only JS/TS. Python, Go, Rust ....

C#'s approach here is redundant, and due to copying whatever Java was doing.

metaltyphoon•3h ago
> It's not only JS/TS. Python, Go, Rust

Rust allows you to move modules around without you changing using.

jeswin•2h ago
When you write 'mod foo;' in a Rust file (say, main.rs), Rust will look for the source code for the module named foo in one of two places: a file named foo.rs in the same directory as the file declaring the module, or a folder named foo/ with a file named mod.rs inside it.

That's great. Something like this is what C# can also aim for, while retaining full backward compatibility.

metaltyphoon•2h ago
This would break every codebase in C# where a file lives in a folder where it is NOT in sync with the file system.
jeswin•2h ago
This can be opt in, and not break any existing code.
logicchains•4h ago
C# will never attract Go users because async is much less pleasant to use than goroutines. I've never met anyone who'd used both extensively and preferred async. CSP is a theoretically cleaner and easier to reason about approach to concurrency.
metaltyphoon•2h ago
This is just a preference. CSP in Go has its warts too, such as idiosyncrasies with channels.
Thaxll•4h ago
It will never be an alternative to Go because the language itself is already 10x more complicated with tons of changes / feature each releases.

I was using net core 6 years ago, 6 years is not much but the code from back then does not compile anymore and the ecosystem changed a lot.

metaltyphoon•3h ago
> the code from back then does not compile

Are you to share the code? C# 1 code still compiles today, so I don’t understand this statement at all.

patates•1h ago
not the author but perhaps because of the .net core transition? all code will obviously compile with the framework they are coded for but a significant migration was necessary to switch to core.
viraptor•4h ago
> To win in Unix land, C# needs to be editable in a plain text editor.

What do you mean? It's editable in plaintext already. See what "dotnet new" generates.

le-mark•3h ago
> To win in Unix land, C# needs to be editable in a plain text editor.

This isn’t a C# issue, it’s dynamic vs static typing issue. You can edit C# in any text editor (obviously) but you don’t get all benefits a good IDE gives you. Statically typed languages in general allow IDEs to provide a wealth of benefits that make writing and maintaining code much easier. With the IDE one can be much more productive.

This is also possible for dynamically typed languages but in practice they’re not at the same level.

So yeah write your little dynamically typed language scripts in vim. The first thing I’m doing for a large C++ project is put it in an IDE. Not to build it but to explore it and understand it, ymmv

metaltyphoon•3h ago
> given that most projects already have them in sync

What makes you think this? I’d wager that most C# code is not open source.

bob1029•4h ago
I like the type parameter inference from constraints proposal.

I've been adopting these new approaches into my code gradually over time by way of intellisense suggestions. Sometimes I'll see the little ... in front and think "what the hell, let's see". If it looks ugly, it's easy enough to back out. Some things took a while to grow on me.

So far the only newish thing I haven't preferred much is the range operator syntax [0]. Every time I accept that one its a quick revert to the more verbose indexing operators.

[0] https://github.com/dotnet/csharplang/discussions/198

louthy•2h ago
As the author of language-ext [1] (functional programming library for C#) -- these suggestions are a big "YES!!!!!" from me. I assume they're doing the first one due to the way they're using static interfaces like traits (which is what I also do to support Functor, Applicative, Monad, etc. traits). Being able to refine the type-checker based on constraints would be a huuuge win. Although, I'd prefer higher-kinds :)

The second one has been a big ballache when using pattern-matching. I think the leading `.` on the patterns isn't pretty, but I'd take it over handwriting the full type name every time.

[1] https://github.com/louthy/language-ext/

ctenb•1h ago
Sorry to go tangential, I was reading your blog posts following the link from your post. The monoid example is possible without static interface methods: you could use the new() constraint and have the empty constructor act as identity element. Kudos on the posts, very nice to read.
louthy•1h ago
True! (Although that requires an allocation)

The technique works best for encoding higher-kinded traits and, as you say, Monoid doesn’t need any of that, but it was an easy way to introduce the ideas.