frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

OpenAI are quietly adopting skills, now available in ChatGPT and Codex CLI

https://simonwillison.net/2025/Dec/12/openai-skills/
164•simonw•4h ago•99 comments

macOS 26.2 enables fast AI clusters with RDMA over Thunderbolt

https://developer.apple.com/documentation/macos-release-notes/macos-26_2-release-notes#RDMA-over-...
297•guiand•6h ago•160 comments

GNU Unifont

https://unifoundry.com/unifont/index.html
168•remywang•6h ago•48 comments

Rats Play DOOM

https://ratsplaydoom.com/
203•ano-ther•7h ago•80 comments

Show HN: Tiny VM sandbox in C with apps in Rust, C and Zig

https://github.com/ringtailsoftware/uvm32
78•trj•5h ago•4 comments

Ensuring a National Policy Framework for Artificial Intelligence

https://www.whitehouse.gov/presidential-actions/2025/12/eliminating-state-law-obstruction-of-nati...
90•andsoitis•1d ago•126 comments

Show HN: I made a spreadsheet where formulas also update backwards

https://victorpoughon.github.io/bidicalc/
70•fouronnes3•1d ago•25 comments

50 years of proof assistants

https://lawrencecpaulson.github.io//2025/12/05/History_of_Proof_Assistants.html
44•baruchel•4h ago•3 comments

Capsudo: Rethinking Sudo with Object Capabilities

https://ariadne.space/2025/12/12/rethinking-sudo-with-object-capabilities.html
44•fanf2•5h ago•17 comments

So What Should We Call This – A Grue Jay?

https://cns.utexas.edu/news/research/so-what-should-we-call-grue-jay
16•surprisetalk•5d ago•10 comments

Go is portable, until it isn't

https://simpleobservability.com/blog/go-portable-until-isnt
38•khazit•5d ago•34 comments

SQLite JSON at full index speed using generated columns

https://www.dbpro.app/blog/sqlite-json-virtual-columns-indexing
322•upmostly•14h ago•102 comments

Freeing a Xiaomi humidifier from the cloud

https://0l.de/blog/2025/11/xiaomi-humidifier/
36•stv0g•21h ago•24 comments

Sick of smart TVs? Here are your best options

https://arstechnica.com/gadgets/2025/12/the-ars-technica-guide-to-dumb-tvs/
144•fleahunter•14h ago•158 comments

Security issues with electronic invoices

https://invoice.secvuln.info/
76•todsacerdoti•7h ago•45 comments

Pg_ClickHouse: A Postgres extension for querying ClickHouse

https://clickhouse.com/blog/introducing-pg_clickhouse
74•spathak•2d ago•29 comments

String theory inspires a brilliant, baffling new math proof

https://www.quantamagazine.org/string-theory-inspires-a-brilliant-baffling-new-math-proof-20251212/
117•ArmageddonIt•11h ago•118 comments

Ferrari's Formula 1 Handovers: Handovers from Surgery to Intensive Care 2008;pdf

https://gwern.net/doc/technology/2008-sower.pdf
4•bookofjoe•6d ago•0 comments

Motion (YC W20) Is Hiring Senior Staff Front End Engineers

https://jobs.ashbyhq.com/motion/715d9646-27d4-44f6-9229-61eb0380ae39
1•ethanyu94•6h ago

CM0 – A new Raspberry Pi you can't buy

https://www.jeffgeerling.com/blog/2025/cm0-new-raspberry-pi-you-cant-buy
170•speckx•12h ago•43 comments

Home Depot GitHub token exposed for a year, granted access to internal systems

https://techcrunch.com/2025/12/12/home-depot-exposed-access-to-internal-systems-for-a-year-says-r...
204•kernelrocks•9h ago•122 comments

The Checkerboard

https://99percentinvisible.org/episode/650-the-checkerboard/
15•thread_id•2h ago•3 comments

Building small Docker images faster

https://sgt.hootr.club/blog/docker-protips/
29•steinuil•17h ago•8 comments

Async DNS

https://flak.tedunangst.com/post/async-dns
102•todsacerdoti•10h ago•36 comments

C64 Maze Chomp.BAS

https://basic-code.bearblog.dev/c64-maze-chompbas/
21•ibobev•5d ago•1 comments

Bit flips: How cosmic rays grounded a fleet of aircraft

https://www.bbc.com/future/article/20251201-how-cosmic-rays-grounded-thousands-of-aircraft
57•signa11•4d ago•60 comments

Fast Median Filter over arbitrary datatypes

https://martianlantern.github.io/2025/09/median-filter-over-arbitrary-datatypes/
26•martianlantern•6d ago•2 comments

Microservices should form a polytree

https://bytesauna.com/post/microservices
113•mapehe•4d ago•102 comments

Using secondary school maths to demystify AI

https://www.raspberrypi.org/blog/secondary-school-maths-showing-that-ai-systems-dont-think/
105•zdw•11h ago•216 comments

Fedora: Open-source repository for long-term digital preservation

https://fedorarepository.org/
105•cernocky•14h ago•50 comments
Open in hackernews

Go is portable, until it isn't

https://simpleobservability.com/blog/go-portable-until-isnt
38•khazit•5d ago

Comments

necovek•5d ago
This seems to imply that Go's binaries are otherwise compatible with multiple platforms like amd64 and arm64, other than the issue with linking dynamic libraries.

I suspect that's not true either even if it might be technically possible to achieve it through some trickery (and why not risc-v, and other architectures too?).

khazit•5d ago
Of course you still need one binary per CPU architecture. But when you rely on a dynamic link, you need to build from the same architecture as the target system. At that point cross-compiling stops being reliable.
necovek•4d ago
I am complaining about the language (phrasing) used: a Python, TypeScript or Java program might be truly portable across architectures too.

Since architectures are only brought up in relation to dynamic libraries, it implied it is otherwise as portable as above languages.

With that out of the way, it seems like a small thing for the Go build system if it's already doing cross compilation (and thus has understanding of foreign architectures and executable formats). I am guessing it just hasn't been done and is not a big lift, so perhaps look into it yourself?

arccy•2h ago
they're only portable if you don't count the architecture specific runtime that you need to somehow obtain...

go doesn't require dynamic linking for C, if you can figure out the right C compiler flags you can cross compile statically linked go+c binaries as well.

swills•2h ago
I happily and reliably cross build Go code that uses CGO and generate static binaries on amd64 for arm64.
vbezhenar•2h ago
Is it some tooling issue? Why is is an issue to cross-compile programs with dynamic linking?
dekhn•1h ago
In general, cross compilers can do dynamic linking.
spijdar•1h ago
In my experience, the cross-compiler will refuse to link against shared libraries that "don't exist", which they usually don't in a cross compiler setup (e.g. cross compiling an aarch64 application that uses SDL on a ppc64le host with ppc64le SDL libraries)

The usual workaround, I think, is to use dlopen/dlsym from within the program. This is how the Nim language handles libraries in the general case: at compile time, C imports are converted into a block of dlopen/dl* calls, with compiler options for indicating some (or all) libraries should be passed to the linker instead, either for static or dynamic linking.

Alternatively I think you could "trick" the linker with a stub library just containing the symbol names it wants, but never tried that.

cxr•1h ago
It's a tooling issue. No one has done the work to make things work as smoothly as they could.

Traditionally, cross-compilers generally didn't even work the way that the Zig and Go toolchains approach it—achieving cross-compilation could be expected to be a much more trying process. The Zig folks and the Go folks broke with tradition by choosing to architect their compilers more sensibly for the 21st century, but the effects of the older convention remains.

daviddever23box•5d ago
This is an (organizational) tooling problem, not a language problem - and is no less complicated when musl libc enters the discussion.
laladrik•5d ago
The conclusion of the article says that it's not the language problem either. Under the title "So, is Go the problem?" Or do you mean something else here?
saghm•2h ago
Given that the title implies the opposite, I think it's a fair criticism. Pointing out clickbait might be tedious, but not more so than clickbait itself.
bitbasher•2h ago
Once you use CGO, portability is gone. Your binary is no longer staticly compiled.

This can happen subtley without you knowing it. If you use a function in the standard library that happens to call into a CGO function, you are no longer static.

This happens with things like os.UserHomeDir or some networking things like DNS lookups.

You can "force" go to do static compiling by disabling CGO, but that means you can't use _any_ CGO. Which may not work if you require it for certain things like sqlite.

swills•2h ago
You can definitely use CGO and still build statically, but you do need to set ldflags to include -static.
tptacek•2h ago
You can even cross-compile doing that.
swills•2h ago
Yes, indeed, I do.
ncruces•2h ago
There are at least a couple of ways to run SQLite without CGO.
tptacek•2h ago
I think the standard answer here is modernc.org/sqlite.
silverwind•1h ago
> This happens with things like os.UserHomeDir or some networking things like DNS lookups.

The docs do not mention this CGO dependency, are you sure?

https://pkg.go.dev/os#UserHomeDir

purpleidea•1h ago
I was surprised too, that I had to check the docs, so I assume the user was misinformed.
bitbasher•1h ago
Perhaps I misremembered or things changed? For instance, the os/user results in a dynamicly linked executable: https://play.golang.com/p/7QsmcjJI4H5

There are multiple standard library functions that do it.. I recall some in "net" and some in "os".

mmulet•2h ago
I ran into this issue when porting term.everything[0] from typescript to go. I had some c library dependencies that I did need to link, so I had to use cgo. My solution was to do the build process on alpine linux[1] and use static linking[2]. This way it statically links musl libc, which is much friendlier with static linking than glibc. Now, I have a static binary that runs in alpine, Debian, and even bare containers.

Since I have made the change, I have not had anyone open any issues saying they had problems running it on their machines. (Unlike when I was using AppImages, which caused much more trouble than I expected)

[0] https://github.com/mmulet/term.everything look at distribute.sh and the makefile to see how I did it.

[1]in a podman or docker container

[2] -ldflags '-extldflags "-static"'

cxr•1h ago
I didn't see anywhere in the README any disclosure that the first GIF[1] is an effect created by video editing software and not a screencapture that shows the program actually running. ("Screen images simulated" are the words usually chosen to start off the disclaimers in fine print shown at the bottom of the screen in commercials where such effects appear.)

1. <https://github.com/mmulet/term.everything/blob/main/resource...>

plufz•54m ago
Why would an open source project need to have any disclaimer? They are not selling anything.
nofriend•52m ago
Because lying is wrong even when open source projects do it.
plufz•42m ago
I think it is a big stretch calling this visual effect lying.

I don’t know if it is a cultural American thing or just difference in interpretation but I had no difficulty understanding that this was a visual effect. But in my country ads don’t come with disclaimers. Do you feel like these disclaimers are truly helpful?

cxr•4m ago
[delayed]
nebezb•5m ago
> “in commercials where such effects appear”

Good thing this isn’t a commercial then.

kccqzy•2h ago
Interesting that it uses the C API to collect journals. I would’ve thought to just invoke journalctl CLI. On platforms like macOS where the CLI doesn’t exist it’s an error when you exec, not a build time error.
ajross•1h ago
That's really not such a weird choice. The systemd library is pervasive and compatible.

The weird bit is the analysis[1], which complains that a Go binary doesn't run on Alpine Linux, a system which is explicitly and intentionally (also IMHO ridiculously, but that's editorializing) binary-incompatible with the stable Linux C ABI as it's existed for almost three decades now. It's really no more "Linux" than is Android, for the same reason, and you don't complain that your Go binaries don't run there.

[1] I'll just skip without explaination how weird it was to see the author complain that the build breaks because they can't get systemd log output on... a mac.

nunez•1h ago
You hit this real quick when trying to build container images from the scratch. Theoretically you can drop a Go binary into a blank rootfs and it will run. This works most of the time, but anything that depends on Go's Postgres client requires libpq which requires libc. Queue EFILE runtime errors after running the container.
nateb2022•1h ago
> anything that depends on Go's Postgres client requires libpq which requires libc

Try https://github.com/lib/pq

ghola2k5•1h ago
I’ve had some success using Zig for cross compiling when CGO is required.
hansvm•9m ago
That's Uber's approach, right?
jen20•5m ago
From the article:

> In the observability world, if you're building an agent for metrics and logs, you're probably writing it in Go.

I'm pretty unconvinced that this is the case unless you happen to be on the CNCF train. Personally I'd write in Rust these days, C used to be very common too.