PyTorch on Apple M1 MAX GPUs with SHARK – faster than TensorFlow-Metal
A AMD oferece soluções de computação adaptativa e de alto desempenho de liderança para promover IA de data center, PCs com IA, dispositivos de borda inteligentes, jogos e muito mais.
Backend for Front-end
In the good old days, applications were simple. A browser sent a request to a webapp endpoint; the latter fetched data from a database and returned the response. The rise of mobile clients and integrations with other apps upset this simplicity. I want to discuss one solution to handle the complexity in this post. The…
Hashing is not encryption
Encryption, encoding, and hashing are three related but distinct concepts. It’s important for you to understand all three.
A small Stripe fraud story
A story post about the time a Stripe account I used years ago had thousands of pounds worth of unexpected payments flood in.
I'm making a Typescript type-checker in Rust
TLDR; I'm making a Typescript type-checker in Rust. Right now it supports a smaller subset of the type-system and exists as a fun side-project, but the end goal is a compilation tool we can use to make Typescript compilation go brrrr...
PostgreSQL 15: Stats Collector Gone? What’s New?
Yes, the stats collector is gone from PostgreSQL 15, but there's lots of new exciting features to talk about!
Don't Write a Programming Language
It will chew you up and spit you out, and you'll not even complain. I often start new projects at the beginning of the year, around Dec...
Building software to last forever
How Bear is going to live a long and healthy life
Updating the most influential book of the BASIC era
In a way, these two books are responsible for my entire professional career. With early computers, you didn’t boot up to a fancy schmancy desktop, or a screen full of apps you could easily poke and prod with your finger. No, those computers booted up to the command line.
Accounting for developers part III – building a lending marketplace
In this final part of our Accounting for Developers series, we explore the ins and outs of building a ledger to power a lending marketplace product.
Falsehoods programmers believe about undefined behavior
All kinds of reasonable-sounding beliefs about undefined behavior are wrong. Let's go through them.
Justice Clarence Thomas uncovered a seven-year-old bug in my program (2013)
Franklin Chen's personal website and blog
Go's Concurrency Examples in Java 19
There is no way for your operating system to know exactly how much stack space a thread will need so it allocates an amount on the order of around a kilobyte initially and then around a megabyte once the thread starts to be used. You only have around a bakers dozen gigabytes of RAM, so you can only have give or take…
Favor real dependencies for unit testing
Which dependencies should be present in your code base? This article suggests an answer to that question.
Optimizing compilers reload vector constants needlessly
Modern processors have powerful vector instructions which allow you to load several values at once, and operate (in one instruction) on all these values. Similarly, they allow you to have vector constants. Thus if you wanted to add some integer (say 10001) to all integers in a large array, you might first load a…
SwiftUI for Mac 2022
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist
Write Like You Code
Similarities between good writing and good code.
Color.js Released
It has taken Lea and I far too long – there is always something more that really should be added, always some conversion that really needs an authoritive set of data to validate our code against – but we finally decided, time to actually release Color.js .
Meson Build System 1.0
The prefix kwarg that most compiler check functions support now accepts an array in addition to a string. The elements of the array will be concatenated separated by a newline.
C++20 coroutines: “The bug is in the C++ standard, not GCC.” (2020)
Anubis could not load its JavaScript. The server may be overloaded. Please reload the page to try again.
SQLite in Go, with and Without Cgo
Most people use the mattn/go-sqlite3 package to interact with SQLite in Go. This package uses cgo and bundles the SQLite C amalgamation files with the Go source.
PAGNIs: Probably Are Gonna Need Its (2021)
Luke Page has a great post up with his list of YAGNI exceptions. YAGNI—You Ain’t Gonna Need It—is a rule that says you shouldn’t add a feature just because it …
How to Learn Nix
Five years ago, I migrated my VPS from Arch Linux to NixOS. I had no idea what I was doing. I had never used Nix before. I thought I could figure it out. Five years later, I’m still running NixOS. And I still have no idea how it works.
Hardening attack surfaces with formally proven binary format parsers
With an eye toward performance, interoperability, or legacy concerns, low-level system software often must parse binary encoded data formats. Few tools are available for this task, especially since the formats involve a mixture of arithmetic and data dependence, beyond what can be handled by typical parser generators…
Beginner's guide to error handling in Rust
Easy to follow guide using practical examples