https://codemanship.wordpress.com/2025/12/14/the-gorman-paradox-where-are-all-the-ai-generated-apps/
Codemanship's Blog
The Gorman Paradox: Where Are All The AI-Generated Apps?
In 1950, while discussing the recent wave of flying saucer reports over lunch with colleagues at Los Alamos National Laboratory in New Mexico, physicist Enrico Fermi asked a simple question. There …
Hey look, this is just a normal programming language
https://www.phoronix.com/news/First-Linux-Rust-CVE
https://www.phoronix.com/news/First-Linux-Rust-CVE
Phoronix
Linux Kernel Rust Code Sees Its First CVE Vulnerability
The first CVE vulnerability has been assigned to a piece of the Linux kernel's Rust code.
Jokes aside. Any recommendations on image resizing in Go?
Ideally without CGO, might be a standalone service(systemd) or as a proxy.
Thanks in advance.
Ideally without CGO, might be a standalone service(systemd) or as a proxy.
Thanks in advance.
> The main challenge I’ve encountered with this in the past is that people will want to refactor the code to remove the clutter. It can take some convincing.
> This trick isn’t a panacea (nothing is), but it definitely helps
https://commaok.xyz/post/security-through-redundancy/
> This trick isn’t a panacea (nothing is), but it definitely helps
https://commaok.xyz/post/security-through-redundancy/
commaok.xyz
Security through intentional redundancy
When writing a service, it’s very easy to accidentally forget to check permissions or ownership of an object.
This code has a gaping security hole in it:
func (s *Server) deletePhoto(w http.ResponseWriter, r *http.Request) { id := r.URL.Query().Get("id")…
This code has a gaping security hole in it:
func (s *Server) deletePhoto(w http.ResponseWriter, r *http.Request) { id := r.URL.Query().Get("id")…
I was today years old when I have discovered Scala2 implicit parameters.
Absolutely disgusting. Like ultimately pro max disgusting.
The funniest thing (to me only?) it got redesigned in Scala 3 with „given” keyword.
Absolutely disgusting. Like ultimately pro max disgusting.
The funniest thing (to me only?) it got redesigned in Scala 3 with „given” keyword.
Go ahead, self-host Postgres
Love this "The real operational complexity" paragraph.
https://pierce.dev/notes/go-ahead-self-host-postgres
Love this "The real operational complexity" paragraph.
https://pierce.dev/notes/go-ahead-self-host-postgres
Okay, I outsmarted myself. It’s not that I’m in a deep trouble, but it’s something that adds more and more friction and I start hating that.
Here’s the code:
BlobID values are stored in a JSONB column in Postgres, just for the context.
The problem is with
I want to get rid of these two functions and simply store the
The question is: how can I make such migration in the simplest way? I can see about 2-3 possible solutions, and I’m curious what you’d suggest and why.
Thanks in advance.
Here’s the code:
type BlobID uint64
func (id BlobID) MarshalJSON() ([]byte, error) {
return []byte(`"` + id.String() + `"`), nil
}
func (id *BlobID) UnmarshalJSON(b []byte) error {
idd, err := ParseBlobID(string(b[1 : len(b)-1]))
*id = idd
return err
}
BlobID values are stored in a JSONB column in Postgres, just for the context.
The problem is with
String() and ParseBlobID() (the implementation isn’t important, but they’re obviously not just thin wrappers around strconv).I want to get rid of these two functions and simply store the
uint64 as a string (i.e. just use strconv).The question is: how can I make such migration in the simplest way? I can see about 2-3 possible solutions, and I’m curious what you’d suggest and why.
Thanks in advance.
> My experience with writing Rust software tends to be once you've got it working, it stays working.
Somehow, this phrase made me giggle.
https://blog.rust-lang.org/2025/12/19/what-do-people-love-about-rust/
Somehow, this phrase made me giggle.
https://blog.rust-lang.org/2025/12/19/what-do-people-love-about-rust/
blog.rust-lang.org
What do people love about Rust? | Rust Blog
Empowering everyone to build reliable and efficient software.
Ignoring case in configuration files is bad. Really, what problem are you trying to solve?
Does this happen that often? Is it really hard to switch to normal (lower, hah) casing?
I don’t understand such simplifications that try to solve imaginary problems.
LOG_PRETTY=trUE
Does this happen that often? Is it really hard to switch to normal (lower, hah) casing?
I don’t understand such simplifications that try to solve imaginary problems.
And I think this is beautiful
func ctx2fn(ctx context.Context) func() context.Context { return func() context.Context { return ctx } }