Here in Italy people started to share this figure claiming that this is the diagram of the 5G chip that has been inserted in the covid vaccine.
In reality it is the electric circuit of a guitar pedal and I believe that putting it in the covid vaccine has been an excellent idea💡
When I was young I was a very bad programmer.
But after decades of gaining experiences at work and attempts to learn stuff the hard way, I'm finally no longer young.
Blockchain exists since 15 years now. It is no longer possible to say that it is an immature technology and we're still experimenting with it. Show me a compelling use case for it or please let's finally admit that it is a waste of time, energy and money and move forward.
There's a simple O(1) algorithm to check if a number is prime that works in 95%+ cases.
Of course this is a joke, but it also comes with an important lesson: when estimating the probability of something never forget to take count of the base rate
Unpopular opinion: this book is almost 30 years old and in all honesty didn't age very well. If you own a copy do yourself a favor: bury it deeply in your bookshelf and forget about it forever.
The 3 most dangerous humans in the world are a back-end developer designing a GUI, a front-end developer writing a SQL query and, as obvious consequence, anybody defining himself a full-stack developer.
I graduated in Computer Science in late 90s
When I studied DBs there was no Big Data
When I studied Distributed Systems there was no Cloud
When I studied AI there was no deep learning
When I studied Networking there was no wifi
Learn the fundamentals the rest will change anyway
In my opinion the general availability of virtual threads made 21 the most disruptive and innovative Java release since 8...
... and still people seem to focus on stuff like this 👇
Sometimes I really don't understand developers 🤷
Developer: I'd need a couple of weeks to refactor the big mess we have and fill our technical debt before we move forward
Manager: that's impossible I can give you no more than 1 or 2 days, otherwise we will miss the next deadline
Developer: ok, done
You can optimise for low latency.
You can optimise for high throughput.
You can optimise for memory occupation.
However 90% of times the most precious thing you should optimise for is maintainability.
Unpopular opinion: ALL software development methodologies have been invented by people who, not having a clue on how software is developed in the real world, decided to make money telling to the ones who actually do the job how to do it.
"Was it that simple? It took you 2 minutes to find the solution and you just googled it"
"Not that simple. It took me 20 years to learn the right thing to google"
Applying the KISS principle also implies doing "boring" stuff instead of blindly following the coolest trends of the moment.
Do monoliths unless you don't need microservices for a good reason.
Use synchronous code unless you don't need async or reactive for a good reason.
Is there any other industry like open source software, where free users behave and have demands and expectations as if they were paying customers, also making money out of someone else's work, without giving absolutely anything in exchange?
Honest question: if you could magically add a type system to a significant code base written with a dynamic programming language, how many bug will you uncover?
Your friendly reminder that a prototype is a throw away experiment, a proof of concept intended to demonstrate the feasibility of an idea, not something that is meant to be evolved till reaching production.
#Lombok
is the perfect demonstration that the simple fact that is technically possible to do something neither implies that is a good idea nor represents a good enough reason to actually do it.
Tips for
#Java
API
- Choose method names carefully
- Add convenience method sparingly
- Avoid long arguments lists (esp same type args)
- For args types favor interfaces over classes
- Use overloading judiciously
- Return empty Collections or Optionals, not nulls
- Write javadocs
Dear
@IBM
let's make a deal:
- leave my code open
- don't tread on my
@RedHat
culture
and most important
- don't try to turn this 60 hrs/week enthusiast developer into a sad 40 hrs/week badge user and spreadsheet filler
and we will be friends for long long time
A clear symptom that your software is overengineered is that writing a simple test requires 200 lines of mocks and 3 lines of logic. And then you're unsure if your test actually verified anything or just injected the result.
If your unit tests look like this take a step back.
I'm tired of seeing this book constantly listed among the books that every sw dev must read.
To me it's made 90% of utterly trivial advices and 10% of blatant mistakes (best functions have 0 args 🤦).
Evidently I'm missing something. If you liked this book can you explain why?
Tell me one reason, one single reason, why you are not running your Java code on the latest available JDK.
Tell me one reason, one single reason, why you are not upgrading your JDK version IN PRODUCTION every 6 months.
Customer: "do you think we should use solution A or B?"
Me: "I STRONGLY suggest A for reasons x, y and z"
Customer: "ok, thanks a lot"
... a few weeks/months later ...
Customer: "we decided to go with B, but surprisingly is not working, can you help us with it?"
#mylife
I'm not a so good developer, but I did a smart move in my career and I keep doing it every time is possible: I always try to surround myself with people better than me.
This tweet is to thank my old and new colleagues from whom I learned a lot and I keep learning every day.
Things you should NOT do when reporting a bug:
1. Using a stack trace as only issue description, without any clue of how to reproduce it
2. Saying how urgent your problem is and that the human civilization as we know it will be destroyed if it won't be solved in next 30 minutes
"one week ago you said that you needed 2 days to implement that feature"
"true, but it was harder than I expected, I need a bit more time"
"ok, how much?"
"2 days will be enough"
#estimation
Successful software teams are made of (a small number of) individuals who:
- are passionate
- are committed
- take responsibilities
- share knowledge
- aren't afraid of making mistakes
- recognize others' merits
All methodologies are poor replacements for lack of these skills.
I finished in 4 days something that I estimated to take 4 weeks. Either I am a great developer or I suck at estimations.
...
Or estimations are totally useless.
Scientists create Typescript, a fake type system built on top of the worst possible dynamic language, that could be an alternative to a properly statically typed language 🤔
I always disliked Lombok, but now I really don't see why keeping using it at all. Tell me one single valid reason why you should use it with modern Java.