Ice Carev

1.4K posts

Ice Carev

Ice Carev

@ice_carev

Funny, lucky bright-side-of-life kinda guy. Java Web Developer who loves development,code talks and generally humanity.All views, facts and opinions are my own!

Netherlands Katılım Ekim 2016
295 Takip Edilen69 Takipçiler
thieme
thieme@thieme·
@unclebobmartin Use Codex hooks for this. We need to make our loops as deterministic as possible. Ask Codex to write the hooks for you, and there will be less LLM-related bugs.
English
1
0
0
211
Uncle Bob Martin
Uncle Bob Martin@unclebobmartin·
I've put my specifier->coder->refactorer->architect pipeline into a loop by having the architect tell the specifier to "improve something". It's already made a number of very useful improvements.
English
14
6
178
13.6K
Ice Carev retweetledi
Sama Hoole
Sama Hoole@SamaHoole·
Activist: "Beef uses an obscene amount of water. Fifteen thousand litres per kilo." Farmer: "Where did the water come from?" Activist: "What?" Farmer: "The fifteen thousand litres. Where was it before it was on the bill." Activist: "I don't know. A river?" Farmer: "The sky. About ninety-four percent of that figure is rain that fell on the field and got drunk by the grass. The cow ate the grass. The rain was on its way down whether the cow was here or not." Activist: "But it still counts as water used." Farmer: "By the grass. Which would have used it whether I farmed or moved to Spain. The cow isn't commissioning the rainfall. The rain isn't on the cow's payroll." Activist: "Then just don't have the cow." Farmer: "The rain still falls. The grass still drinks it. The water cycles back into the air anyway, just without anyone getting fed in the middle." Activist: "It's not that simple." Farmer: "It's rain, grass, cow, river. Or it's rain, grass, rot, river. Same circle, fewer dinners. Meanwhile every almond in your milk took a gallon of pumped aquifer water in California to grow. That one you might want to worry about. The rain in Wales is doing fine without your concern."
Sama Hoole tweet media
English
209
4.4K
20.6K
1.4M
Ice Carev retweetledi
Tech with Mak
Tech with Mak@techNmak·
RAG has evolved far beyond its original form. When people hear Retrieval-Augmented Generation (RAG), they often think of the classic setup: retrieve documents → feed into LLM → generate an answer. But in practice, RAG has branched into many specialized patterns, each designed to solve different challenges around accuracy, latency, compliance, and context. Here are some of the most important categories: ➤ Standard RAG - the original retrieval + generation (RAG-Sequence, RAG-Token). ➤ Graph RAG - connects LLMs with knowledge graphs for structured reasoning. ➤ Memory-Augmented RAG - external memory for long-term context. ➤ Multi-Modal RAG - retrieves across text, images, audio, video. ➤ Streaming RAG - real-time retrieval for live data (tickers, logs). ➤ ODQA RAG - open-domain QA, one of the earliest and most popular uses. ➤ Domain-Specific RAG - tailored retrieval for legal, healthcare, or finance. ➤ Hybrid RAG - combines dense + sparse retrieval for higher recall. ➤ Self-RAG - lets the model reflect and refine before final output (Meta AI, 2023). ➤ HyDE (Hypothetical Document Embeddings) - improves retrieval by first generating “mock” documents to embed. ➤ Recursive / Multi-Step RAG - multi-hop retrieval + reasoning chains. Others like Agentic RAG, Modular RAG, Knowledge-Enhanced RAG, Contextual RAG are best thought of as system design patterns, not strict categories, but useful extensions for specific use cases. The image below maps out 16 different types of RAG, their features, benefits, applications, and tooling examples. Whether you’re building production-grade assistants, domain-specific copilots, or real-time monitoring systems, the right flavor of RAG can make all the difference.
Tech with Mak tweet media
English
11
106
504
20.6K
Ice Carev retweetledi
Mr PitBull Stories
Mr PitBull Stories@MrPitbull07·
This morning, a 65 year-old man woke up in the early hours and heard thieves in his garage. He called the police. Unfortunately, the officer on the phone told him they don't have any police officers free at the moment. The guy hung up and then called again in a moment and tells the officer: - it's about these thieves in my garage. Don't bother coming anymore i’ve shot them. After literally 2 minutes, 4 police cars, Armed response, counter terrorists, ambulances turned up,..... Thieves were obviously caught. Police officers had a chat with the gentleman Officer says - " You said you shot them! " Gentlemen - " And you said you don't have a free police car " Credit: Rudes On a roll
Mr PitBull Stories tweet media
English
1.1K
20.4K
98.4K
3.4M
Ice Carev retweetledi
Prasenjit
Prasenjit@Star_Knight12·
2022 - Student 2023 - Developer 2024 - Prompt Engineer 2025 - Vibe Coder 2026 - AI Agent Babysitter 2027 - Farmer
English
228
1.4K
14.6K
709.6K
Matthew Johnson
Matthew Johnson@BitRiftTech·
@unclebobmartin I’d love to see what rules you use for your agents. I have two I put in by default in every project. One is based off clean code and the other off clean architecture. It’s been a game changer for my rules files.
English
1
0
2
72
Uncle Bob Martin
Uncle Bob Martin@unclebobmartin·
Make that three blocks. Blocking the blockheads.
English
6
1
55
6.9K
Ice Carev retweetledi
Uncle Bob Martin
Uncle Bob Martin@unclebobmartin·
I’ve been harping on the disciplines and tools for using AI lately. I find them to be a very effective approach. But I don’t want to leave you with the impression that a few simple disciplines and tools is sufficient. As the AI’s build software, you — the software engineer — need to have a good mental model of what the AI is doing. You need to apply engineering insight to correct it when it takes a path you don’t like. You have to be an active manager in the design and architecture of the system. You have to be able to “see within“ without resorting to exhaustive code reviews. You have to form suspicions about what the AI is doing, and you have to probe and experiment to verify your suspicions.
English
53
82
822
36.3K
Ice Carev retweetledi
Dr Milan Milanović
Dr Milan Milanović@milan_milanovic·
𝗟𝗮𝘄𝘀 𝗼𝗳 𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿𝗶𝗻𝗴 𝗶𝘀 𝗮 𝗯𝗶𝗴 𝘀𝘂𝗰𝗰𝗲𝘀𝘀 🚀 The launch of my book, Laws of Software Engineering, has been absolutely phenomenal. More than 500 copies were sold in the first two days. The book is today an 𝗔𝗺𝗮𝘇𝗼𝗻 𝗯𝗲𝘀𝘁𝘀𝗲𝗹𝗹𝗲𝗿 in its category. Here’s what book reviewers are saying: “A delightfully compact book infused with hard-earned lessons of wisdom. You can either spend decades discovering these laws through the scars of experience, or allow Milan to unlock their secrets in a single weekend.” — Maarten Dalmijn, Author of Driving Value with Sprint Goals “There’s a career’s worth of wisdom here. If you want a practical reference for the forces that shape software systems and teams, this is it.” — Owain Lewis, Director of Software Engineering, Oracle “It provides a catalog of effective thinking models for system design, organizational dynamics, project management, and other aspects of software engineering. It won’t make decisions for you, but will provide the clarity to make them deliberately.” — Vlad Khononov, Author of Balancing Coupling in Software Design The book has 310 pages, 63+ laws and principles every engineer, architect, and manager should know. ➡️ 𝗚𝗲𝘁 𝗶𝘁 𝗮𝘀 𝗲𝗣𝗨𝗕 𝗮𝗻𝗱 𝗣𝗗𝗙: techworldwithmilan.gumroad.com/l/lawsofsoftwa… ➡️ 𝗚𝗲𝘁 𝗶𝘁 𝗼𝗻 𝗞𝗶𝗻𝗱𝗹𝗲: amazon.com/dp/B0GXH5JYVP ➡️ 𝗣𝗮𝗽𝗲𝗿𝗯𝗮𝗰𝗸 𝗼𝗻 𝗔𝗺𝗮𝘇𝗼𝗻: amazon.com/dp/9699893680/… ➡️ 𝗛𝗮𝗿𝗱𝗰𝗼𝘃𝗲𝗿 𝗼𝗻 𝗔𝗺𝗮𝘇𝗼𝗻: amazon.com/dp/B0GXFCD1PT If you already bought it, thank you so much! An Amazon or Goodreads review, even a short one, goes a long way.
Dr Milan Milanović tweet media
English
4
18
107
5.5K
Ice Carev retweetledi
Elon Musk
Elon Musk@elonmusk·
South Africa won’t allow Starlink to be licensed, even though I was BORN THERE, simply because I am not Black! We were offered many times the opportunity to bribe our way to a license by pretending that a Black guy runs Starlink SA, but I have refused to do so on principle. Racism should not be rewarded no matter to which race it is applied. Shame on the racist politicians in South Africa. They should be shown no respect whatsoever anywhere in the world and shunned for being unashamedly RACISTS!
DogeDesigner@cb_doge

Why Elon Musk is RIGHT to fight South Africa’s racist rules blocking Starlink? Imagine this: Long ago, South Africa had very unfair laws called apartheid. They treated Black people badly and kept them from good jobs and money. When those bad laws ended, the country made new rules (called B-BBEE) to help Black people get a fair share of business. The idea was good – like a big helping hand. But now? For companies like Starlink to sell fast internet, they MUST give away 30% of their business to Black partners. Just because of skin color. Elon Musk was born in South Africa. He left as a teen to chase big dreams. Today, his company SpaceX wants to bring Starlink – super fast satellite internet – to South Africa. But the rules say no unless they give up part of the company. Elon said it right: “Starlink is not allowed because I’m not Black.” SpaceX promised to spend about $30 million (that’s 500 million rand!) to give FREE high-speed internet to 5,000 rural schools. That helps over 2.4 MILLION kids every year learn better, get jobs later, and have a brighter future. Real help for the people who need it most! Starlink already works in about 24 other African countries. Villages there now have internet for school, doctors, and business. South Africa’s villages are missing out because of these racist rules. Elon isn’t asking for special favors. He just wants fair play so Starlink can connect everyone fast. Internet = education, jobs, hope. Why hold back millions of kids over rules that pick by race and color?

English
27K
63.3K
370.7K
32.4M
Ice Carev retweetledi
Elon Musk
Elon Musk@elonmusk·
Banger 😂
Elon Musk tweet media
Indonesia
6.1K
32.5K
489.3K
54.2M
Ice Carev
Ice Carev@ice_carev·
@gutsOfDarkness8 How would the calling method handle the result ? Would it need another condition/switch to decide what to do with the result ?
English
0
0
0
65
Mahesh
Mahesh@gutsOfDarkness8·
The Java pattern that makes error handling actually enjoyable: sealed Result + pattern matching: Stop throwing exceptions for expected cases like “not found”, “invalid input”, “unauthorized”, or “out of stock”. Modern Java way: sealed interface + sealed records + exhaustive pattern matching switch. Why this is becoming the standard in clean codebases: - Compiler forces you to handle every possible outcome - No hidden RuntimeExceptions at runtime - Self-documenting return type - Much safer, easier to test and refactor
Mahesh tweet media
English
3
7
124
26.2K
Uncle Bob Martin
Uncle Bob Martin@unclebobmartin·
@erionalite I don't think it'll replace anyone. I think it will increase the demand for programmers.
English
1
0
2
215
Uncle Bob Martin
Uncle Bob Martin@unclebobmartin·
I said that the AI is a useful assistant in debugging issues like this; but you have to be very careful. They do dumb things like killing the run early because they think it takes too much time. So you have to make sure they are reporting their progress, and you have to monitor those reports to make sure they aren't burning time doing useless things.
English
20
4
112
13.6K
Focused Entropy
Focused Entropy@FocusedEntropy·
@unclebobmartin have you tried breaking it down into tiny pieces that can be built independently and then constructing a custom prompt and context for each one?
English
1
0
0
25
Uncle Bob Martin
Uncle Bob Martin@unclebobmartin·
An analogy. A software project is like an oddly shaped container that you are trying to fill with water. The shape is the required behavior, and the water is the software. Prompts and plans attempt to define the shape for the AI, but AIs have very poor long term memory, and even their short term memory is time-biased. Things you told it a minute ago just aren't as important as they were when you said them. So the shape of the container is something the AI simply cannot hold in its "mind". To hold that shape requires tests. Lots of tests. And this is why many people using AIs are trying to use TDD. But the AI can't reliably remember the rules of TDD. Those rules lose importance as the context window fills. So you have to run test coverage and direct the AI to cover all the uncovered lines. That will stabilize the shape of the container; but it leaves holes. Remember that coverage does not prove that the tests cover everything with assertions, it only proves that the tests execute the covered lines. Those holes are leaks that the AI can sneak through -- and it will. It will take advantage of any leak in the tests, and that will create undesired behaviors that are often very difficult to detect and unwind. Mutation testing is the tool that plugs those leaks. It will find every missing assertion and you can direct the AI to cover them. But mutation testing is a two edged sword. First it requires a lot of cpu time and a lot of wall time. Second, it stabilizes the shape of the container so strongly that the AI will have to work very hard when you want that shape to change. It's the old trade off. Stability and reproducability vs speed. To the extent you want the one, you can't have the other. So choose wisely.
English
22
24
203
18.6K
Ice Carev retweetledi
Andika Rachman
Andika Rachman@_andikarachman_·
This maps exactly to the agent memory problem. Context window = short-term memory with time bias. Tests = external memory that doesn't decay. Mutation testing = memory validation. The entire post is really about one thing: AI has no durable sense of intent. So you have to externalize intent into tests, and then defend those tests against the AI's tendency to route around them. The container isn't the software. The container is the intent. The water is an AI that doesn't care about your intent unless you enforce it.
English
0
1
3
448
Ice Carev
Ice Carev@ice_carev·
@itsJaimeMedina Can you maybe share a git repo with a sample starter of the approach ? I would like to give the method a try.
English
1
0
1
41
Jaime Medina
Jaime Medina@itsJaimeMedina·
Lots of talk about AI coding workflows. Not a lot of "here's exactly how I do it." I'm sharing my exact workflow for using 3 different ai agents (claude code, codex, gemini) build, challenge, and fix each other's work. Nothing fancy, just plain vanilla cli communication to ship features for @FileGrabLink , so lets break it down in this thread:
Jaime Medina tweet media
English
8
3
83
23.7K
Ice Carev retweetledi
💻☕ Richard Fichtner
💻☕ Richard Fichtner@RichardFichtner·
“Lombok is like cocaine. At first, it feels awesome, but after a while, you regret your choices.” I heard that quote at JavaOne last year. It made me laugh back then. Today, during the fireside chat with the Java architects, it came back to me. Brian Goetz, Ron Pressler, John Rose, Alex Buckley, Dan Heidinga, and Paul Sandoz were answering questions directly from the audience. I got the impression that these discussions are not about quick wins. They’re about long-term impact. One Topic was: Java Modules Why aren’t they widely used? The answer was refreshingly honest: Adoption is hard because the surrounding ecosystem isn’t where it needs to be—especially build tools. And that led to the obvious follow-up: Why doesn’t Oracle just ship a build tool with the JDK? The answer, implicitly, was just as interesting: Because their time is better spent on things only they can do. The JDK, the runtime, the language—those are areas where no one else can step in. Build tools? That’s something the community can own. Another Topic was: Streams and performance. There’s often this perception that Streams are “slow.” But the nuance matters: The performance gap shows up in specific edge cases—not in everyday code. And the design choice behind Streams was very intentional: Favor code that developers can read, understand, and maintain. For most applications, that’s the bigger win. What’s interesting is where things might go next. With Project Babylon, there’s a path to optimize these patterns further—without forcing developers to rewrite everything. Write clear code today. Let the platform get smarter underneath you over time. ...And then there’s Lombok. That quote from last year still holds up because it captures a tension many teams feel. Lombok helped fill gaps in the language. But it does so by stepping outside of it. Now that Java itself is evolving—records, pattern matching, and more—the need for those workarounds is shrinking. What stayed with me most today wasn’t a single feature. It was the way these architects think. They’re not optimizing for the next release cycle. They’re thinking in decades. We’re in good hands. #JavaOne
💻☕ Richard Fichtner tweet media
English
8
38
183
16.3K
Ice Carev retweetledi
Piotr Mińkowski
Piotr Mińkowski@piotr_minkowski·
I created my Claude Code template repo for the Spring Boot app with instructions, skills, and subagents.💡 It is desired to create an app that connects to the DB, is deployed on Kubernetes, and runs tests with Testcontainers, and some others 👉github.com/piomin/claude-…
Piotr Mińkowski tweet media
English
29
170
1.1K
125.3K