Math isn't just about numbers - it's about finding complex patterns in our world.
And there are many ways that you can apply mathematical concepts in programming, beyond what you might've learned in school.
In this guide, Tiago discusses the architecture of math – and how you can use it in your code.
https://t.co/mH2DFQBGXy
Don't waste 2 years learning to build LLMs like Claude & ChatGPT.
Stanford just dropped a 2 hour course on how to build LLMs from scratch.
• 00:00 - LLM tokenization
• 25:44 - how LLMs decode user prompts
• 35:40 - training pipeline of LLMs
• 1:16:47 - LLM architecture from scratch
Anthropic pays $750,000/year to engineers who understand this exact knowledge of LLMs.
Bookmark this & give 2 hours today, no matter what. Then read the article below.
I think one thing that is under appreciated in the Linux Kernel community is that it was not an anti-business community in any way, shape of form. Linus in particular always seemed to have a very pro-business stance.
It was clear that if you tried to use business reasons to argue for technical decisions you would be shamed. No "I need this in by Monday because I committed to management" -> Shame. But by and large, most people I met, with very few exceptions, were always happy to see more businesses being built with Linux, and see them thriving and succeeding.
I surely met exceptions to this, but they were very few. Unfathomable to me that those accusations of "you should be living on donations" would even happen.
Good post. It’s refreshing to see people being candid, whether you agree with Andrew or not.
I’ve been saying this for a couple of years now: Zig has, by far, the highest quality of “average open-source projects”, especially in systems engineering. Its defaults push developers toward being more deliberate and thoughtful.
I still mostly write C/C++ (with CUDA, ASM, & rock-n-roll ofc). After decades, they feel like my native language, and I’ve probably fooled myself into thinking I know where all the biggest landmines are buried 😅🤦♂️ But if you’re starting almost any new systems project and haven’t tried Zig yet, you probably should.
I use Rust a lot too - it’s easily my second most-used language ahead of Python, but personally I think rewriting Bun in Rust was the wrong call.
Wishing both Jarred and Andrew all the best! We can probably all learn something from each other 🤗
𝗠𝗼𝘀𝘁 𝗲𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝘀 𝗿𝗲𝗮𝗰𝗵 𝗳𝗼𝗿 𝗽𝗲𝘀𝘀𝗶𝗺𝗶𝘀𝘁𝗶𝗰 𝗹𝗼𝗰𝗸𝗶𝗻𝗴 𝗯𝘆 𝗱𝗲𝗳𝗮𝘂𝗹𝘁. 𝗙𝗼𝗿 𝗿𝗲𝗮𝗱-𝗵𝗲𝗮𝘃𝘆 𝘀𝘆𝘀𝘁𝗲𝗺𝘀, 𝘁𝗵𝗮𝘁 𝗶𝘀 𝘂𝘀𝘂𝗮𝗹𝗹𝘆 𝘁𝗵𝗲 𝘄𝗿𝗼𝗻𝗴 𝗰𝗮𝗹𝗹
Alice and Peter both read account #1 at balance 50. Each withdraws 20. Without protection, the second write lands on stale data. One withdrawal vanishes, and the balance shows 30 when it should show 10.
Two strategies stop this, and they make opposite bets.
1. 𝗢𝗽𝘁𝗶𝗺𝗶𝘀𝘁𝗶𝗰 𝗹𝗼𝗰𝗸��𝗻𝗴 𝗯𝗲𝘁𝘀 𝗰𝗼𝗻𝗳𝗹𝗶𝗰𝘁𝘀 𝗮𝗿𝗲 𝗿𝗮𝗿𝗲
Nobody takes a lock. Each row carries a version number. Peter writes first, the balance drops to 30, and the version goes from 1 to 2.
When Alice writes with version 1, the database rejects her because the version moved underneath her. She re-reads, gets version 2, and retries.
JPA and Hibernate handle this with the @Version annotation.
2. 𝗣𝗲𝘀𝘀𝗶𝗺𝗶𝘀𝘁𝗶𝗰 𝗹𝗼𝗰𝗸𝗶𝗻𝗴 𝗯𝗲𝘁𝘀 𝗰𝗼𝗻𝗳𝗹𝗶𝗰𝘁𝘀 𝗮𝗿𝗲 𝗹𝗶𝗸𝗲𝗹𝘆
The first writer locks the row. Alice requests account #1 and the database locks it for her. Peter tries to edit and waits, blocked, until she commits.
The lock releases, and Peter reads the fresh balance of 30. In SQL that is SELECT ... FOR UPDATE.
The cost differs. Optimistic locking is cheap when writes rarely collide, but every conflict throws away work and forces a retry. Pessimistic locking guarantees the write, but it holds a lock, so others wait and we risk deadlocks under load.
Pick by contention. Optimistic locking fits read-heavy systems where two people rarely touch the same row, like editing a profile or a product listing. Pessimistic locking fits the cases where collisions are common and a retry costs you, like seat booking or moving money between accounts.
Most lost-update bugs trace back to the wrong bet for the traffic.
yea, the real reason is back when Java was created there was no package registry like npm or crates or anything like that, so in order to prevent collisions they made you use a domain you owned and reverse it. So forrestknight(.)github(.)io (domain) becomes io/github/forrestknight (directories).
And like XPilot said, Maven added src/main/java on top. `src` splits source code from build output on the same dir level like target, docs, and project files. `main` splits shipping code from `test` (you see the test directory at the same level as `main` directory in the image). and `java` is to split the Java code from other things like `resources` (which you can also see in the image) or anything else like there could be `kotlin` directory on that same level, or `groovy` or web assets.
And Maven buitl this convention so that every project was the same, which means tooling didn't need any configuration to adapt to different java projects. This helps devs hop into a new projecft and know where everything is, too. It's actually really nice, if like me, you're hopping into a bunch of different java projects auditing them or just exploring. And Gradle just adopted the same thing.
The little girl, Amna Abu Awad..
His head was crushed by the rubble of the building that collapsed after Israeli planes bombed his house. Amna lost her life along with her family members.
The image of journalist Mujahid Bani Muflih encapsulates the reality of the Israeli prison system, which has become a tool of slow and direct killing of Palestinian prisoners.
Bani Muflih, a journalist with Ultra Palestine,
Creator of Sqlite on pull requests: "You say, oh, it's free. No. It's not free. What you're doing is asking me ... to maintain it for you, to to document it for you, to test it for you, to maintain it for you for the next 25 years. That's not free." Yep.
Wise words from a wiser man than me. I've told people for the past decade and I have recent posts on here saying the same: the merge button is the easy part. Its the decade+ (Richard says 25 years) that follows where you've accepted the transfer of maintenance thats hard.