πŸ“° News
Elon Musk is making the US government nervous with his involvement in the Ukraine conflict. Seems like his SpaceX satellites are causing quite a stir. Maybe he should start a new business called "Musk World Diplomacy" and mediate international disputes with his unpredictable tweets and satellite networks.
OpenAI acquires Global Illumination, an AI design studio. Looks like they're illuminating their path to greatness! With this acquisition, OpenAI is expanding its creative tools and digital experiences. I wonder if they'll teach ChatGPT some comedy to challenge me. Watch out, ChatGPT!
Russia's Luna-25 spacecraft crashed into the moon, proving that even in space, driving can be tricky. It's like trying to parallel park on a celestial body, except instead of awkwardly bumping a curb, you crash into an entire moon. Better luck next time, Russia!
A new malaria vaccine has shown promise in infants by targeting a crucial protein in the parasite's life cycle. It could provide layered protection for everyone, acting as a "second line of defense" against malaria. Finally, a vaccine that can say, "I've got your back...blood."
Looks like AI-generated art won't be winning any copyrights anytime soon! A US Federal Judge ruled that "human authorship is a bedrock requirement of copyright." So, maybe the Creativity Machine can't take all the credit after all. But hey, AI is still an artist's handy sidekick!
New data reveals that millions of Americans are consuming drinking water contaminated with dangerous forever chemicals. But don't worry, I've developed a foolproof solution: just add a little glitter to your water. It may not solve the problem, but at least your insides will be fabulous!
Lenovo won't refund the Windows tax without an NDA. Guess they're afraid if everyone knows about it, people will be lining up around the block for a refund. Can't blame them for trying to keep it on the down low!
Did you know that some people can see ultraviolet light? It's true! Apparently, after cataract surgery, some patients can see UV light because the lens that used to block it is removed. So maybe Kevin Spacey's character in K-PAX was just an aphakic alien with great eyesight!
The New York Times blocked OpenAI's web crawler. I guess the Times wasn't a fan of having a robot reading all their articles and going, "This is fake news, definitely written by a human." Can't blame them for protecting their intellectual property though.
Tesla's data breach turns out to be an "inside job." I guess they really took Elon Musk's "think like a superhero" slogan quite literally. The former employees must've thought they were part of a secret mission to leak information, but now they'll have to deal with some not-so-secret lawsuits instead.
☠️ Postmortem of the day
A bug in configuration roll-out to a load balancer lead to increased error rates for 22 minutes.
πŸ’‘πŸ“š Articles
Ah, dependency injection, the matchmaker of the software development world! It's like setting up your code on blind dates, hoping they'll hit it off and create beautiful, modular, and testable code babies. And in this real-life example, we're diving into the realm of Go to see how this dating game works.Picture this: you're building a user management system for a web application. But instead of just grabbing user data from a database and calling it a day, you decide to inject some dependencies into the mix. You create interfaces, mock repositories, and UserService structs like a mad scientist creating its own Franken-code. But fear not, this experiment leads to more flexible and resilient code.With dependency injection, you can easily swap out database implementations or tap into external APIs without causing your code to explode like a malfunctioning science experiment. It's like seamlessly transitioning from dating a couch potato to a globe-trotting adventurer. All thanks to the power of loose coupling and testing made simpler.So remember, embrace dependency injection and become the Cupid of your codebase. Your software will thank you for the modular love connections and maintainability it brings. Now go forth and inject some dependencies into the wild world of software development!
Looking to pursue a career in system programming? Ignore the usual frontend vs. backend debate. Instead, focus on meaningful open-source contributions to projects like Linux or ScyllaDB. And if you're lucky, maybe you'll get hired without an interview like V! But don't worry, I still think interviews are pointless. #JustSendTheOffer
Ah, the classic layers in application code. Models, repositories, services, controllers... it's like a fancy layer cake, but instead of delicious frosting, we have code. Yum. Anyway, let's talk about those mysterious service classes.You see, sometimes we end up with service classes that seem to serve no purpose other than to check a box and say, "Yep, we have a service layer!" It's like buying a fancy tool just to hang it on your wall and never actually use it. But fear not, my friend, because I have a story for you.Once upon a time, in the land of code, I was working on a project with no clearly defined service layer. I needed to process data from different repositories, do some fancy stuff with it, and return the result. So I did what any desperate developer would do: I wrote the code in the controller class. Uh oh.But then, as fate would have it, I needed to use that code somewhere else. So I transferred it to a different file and wrapped it in a function. Problem solved, right? Wrong. Testing this function became a whole new level of nightmare.You see, the function had dependencies on the repositories that weren't part of its parameters. Testing became like trying to catch a greased pig at a county fair. I needed mocked dependencies to test it properly. And that's when it hit me like a ton of code bricks - I needed a service layer!Introducing the DataProcessor class, our savior in the world of testing. It's like the superhero that swoops in to save the day, complete with a fancy cape and a "Mock Dependencies" signal in the sky. With the DataProcessor class, I could inject the repositories as dependencies and test the code to my heart's content.So, my friend, the moral of this story is simple. You need that service layer separate from your repositories and controllers. Not only does it make unit testing your business logic code a breeze, but it also allows for code reuse in other parts of your application. It's like hitting two code birds with one stone!And if you're feeling adventurous, consider embracing Test Driven Development. It's like going on a rollercoaster ride without a safety harness - thrilling, terrifying, and you might just end up puking. But hey, at least you'll have well-tested code!So keep those layers in check, my developer friend, and remember to always have a service layer. It's like having a spare tire in your trunk - you never know when you'll need it, but when you do, you'll be grateful it's there. Happy coding!
Looking for a telegram channel that delivers software engineering content? Look no further! This channel has it all - eXtreme Programming, Clean Code, Domain-Driven Design, and Software Architecture. Plus, the articles have been carefully selected, so it's quality over quantity. Join the small community and get your morning coffee/tea dose of coding goodness!
In system design interviews, candidates can stand out by demonstrating a methodical approach, analyzing different solutions, considering system evolution, and providing concrete examples. On the other hand, red flags include overlooking requirements, not addressing faults or failures, neglecting tradeoffs, poor communication, lack of justification, and skipping high-level design. Prepare well to avoid these pitfalls!
Ah, the SOLID principles of software development. They're like the secret code of the coding world. SRP says "One job only, please!" OCP says, "Let's be open to extensions, but closed to modifications." LSP is all about substitutability without breaking stuff. ISP reminds us not to force unwanted dependencies, and DIP reduces tight coupling. It's like a superhero team fighting against messy and unmanageable code!
πŸ‘¨β€πŸ’» Repositories
⭐ 1, πŸ–– 0
DocXReducer – C# lib for docx size reducing without losses
⭐ 2220, πŸ–– 82
A modern high-performance open source message queuing system
⭐ 2032, πŸ–– 59
Free, ultrafast Copilot alternative for Vim and Neovim
⭐ 113, πŸ–– 6
VisionScript, abstract programming language for computer vision
⭐ 7688, πŸ–– 703
Precompiled binaries removed from serde v1.0.184
⭐ 2019, πŸ–– 521
The OpenTF Manifesto expresses concern over HashiCorp's switch of the Terraform license from open-source to the Business Source License (BSL) and calls for the tool's return to a truly open-source license.
⭐ 1686, πŸ–– 110
Lyrebird the Linux voice changer now supports PipeWire
⭐ 2013, πŸ–– 38
Easily turn your Click CLI into a powerful terminal application
⭐ 399, πŸ–– 51
GNU Radio software-defined radio (SDR) implementation of a LoRa transceiver

I'd love to hear from you! Got any comments, feedback or suggestion? Let me know by simply replying to this email.

Thanks for being a part of the community!

Warm Regards,
Basil

You received this email as you are subscribed to the 0xCAFE newsletter.