Posts about working as a programmer, managing career and being passionate all the time!
As I mentioned in my previous post about Java 11 HTTP client, API comes with asynchronous method for making requests. Boom! That’s your head, it blows up.
I wanted to write an interesting piece of code so I did partially. An asynchronous website crawler! It isn’t very useful though, I don’t think Google engineers will be interested even if it makes lovely fart sounds, which it doesn’t.
TLDR; I don’t find this method very useful for things like crawling websites, especially there is no single point of data exchange, however it looks very useful for not sequence-sensitive activities. The call itself is simple enough to understand and apply to your codebase though.
Here it is: the shiny
HttpClient::sendAsyncmethod! This time I am going to crawl my girlfriend’s blog about having cats at home, which I guess it’s worth to check out if you have a nasty fur ball already or going to have one. It’s polish language only, but for God sake, can’t you use Google translator? I am writing this blog with its help all the time. You’re welcome :).
There are a lot of crap flying around about the Bitcoin. Is it going to crush down? Is it worthless? Why did prices go down? Hell I know! Maybe people just found out “cryptocurrency” doesn’t mean “privacy” and all history of transactions are public and it’s matter of time to find out who did which transaction? Who knows… Don’t even ask me these questions, Bitcoin is a nice introduction to the thriving market of numbers aka fintech. But, what I care the most is the technology behind.
I am fine with BTC “distributed” database (blockchain, probably only cats haven’t heard about “blockchain”). Each node currently stores about 20G of transactions. It’s the same gigantic ledger for every one. Well it’s not the redundancy I would normally approve but whatever - it’s about money. “Storing money has to be expensive” - said banker.
Regardless to the market problems, do you know how your Bitcoin node connects to other nodes? I did not.
Meet Andrew - a software engineer. He is doing a lot of software engineering crap. Everyone likes him. He was a rockstar here and there. Recently, he took over the old project some other people abroad were working on for a few years. Everyone was saying that this project is a nightmare and people were quitting job because of it, but not Andrew. He was the right guy here.
— Shite, how shitty is this shitty code?! So much, so much, nananana - he was silently singing all the time reading that code. His behaviour wasn’t impressive, but people kept thinking he is a genius. Every weirdo has to be one. Unless not. Anyway, he hated that code, which had many nested ifs, not enough code coverage and, which was the worst thing in the Universe, integration tests that took ages every single time someone tried to run it.
Once he asked his manager to throw away the codebase. He would re-write it again. It would be better, shiny code that he and everyone else will understand. No doubts to it. His superior agreed, considering Andrew’s fame in the office, to get rid of the entire codebase and re-do the analysis phase, apparently missed or done in two minutes.
That was the moment everything was getting so funny and scary.
Software engineering accepts playing with other’s code. I struggled for a while before started doing it. I was doing it wrong though. It isn’t just the software your competition is writing. It is about all software products at all!
Now I am relaxing with Witcher 3 on my Xbox and that’s actually is fun. Don’t try to bother me, I am working now, fool!
— Oi, manager! I need a raise!
— Do you? Ok, fine. But you know what? I need a race horse; can you buy me one?
— I see no reason…
— Well, yeah, me too.
Three years ago I wasn’t sure I am ready for remote work. Is it really as cool as some people describe?
It turns out it is!
I am sharing the 5 most important things every remote software engineer needs: seniority, trust, proactivity, security and writing. These are based on my personal, 3 years long experience of working from home for big companies and doing it well. This article is not meant to scare you about transitioning from office-based to remote work however it describes downsides of this form of software engineering.
I was preparing to write a small analysis of my first Code Kata exercise, created a run script for it and:
It wasn’t versioned yet!
So essentially I have overwritten the entire file I was working on yesterday! That was 15 minutes of work, but recreate the same code without afterthoughts I have done already in my would be almost impossible!
I was pissed off. My gf was like “you have to write it once again, not a big deal”. I googled “how to undelete a file in linux”. It wasn’t a recipe that I was looking for - it was only about files that were just removed, not overwritten.
There is a solution though.
Have you ever thought why people are using Vim at work? The answer is easy: for money, of course!
How come? Well, this is pretty simple. Now I am going to connect all of the dots for you.
Spring is not the only solution for building web-based applications. There are few alternatives to functions it’s delivering.
Spring is a heart of many web (but not only) projects. Most programmers are like “start.spring.io is the only place where I kick off every project”. Telling them they could work without it will end up with bruises and a loose tooth.
But it’s not about why Spring is wrong. Is there any alternative to it? Why we love it so much that nothing is good enough to use? Maciej Próchniak presented yesterday at Confitura conference few alternatives to the most used framework in the Web world. It is not a surprise since Maciej is a big fan of OSGi and he mentioned it multiple times in previous talks. I was really looking forward to his talk this year and I wasn’t disappointed at all.
The short answer is yes and no. But why is that?
There is the essence that cannot be automated in any way. It is a specific part of human nature: the intention. On the other hand, there are few things endangered.
Agencies. They are everywhere. If you have a Linkedin account you know exactly what I am talking about. My incoming box reminds me of Monty Python’s sketch. I get plenty offers daily. Usually they are about working for companies that are looking for specific client and project, lol.
The existence of agencies is not bad at all. In fact, they might be really good places to work, allowing specialist to do what he or she love to and securing job position even for a years with many end-customers. In that case margin agency earns is completely fair for both sides (worker and agency).
What is the bad agency then? How is it happening that people are unhappy with job they have got? I can generalise few things that I have experienced already. I hope that after reading this small blog post you would be able to recognise patterns below and reject bad offers. Most of senior developers are already familiar with these, although this might save years of shame for inexperienced programmers. Wish you nice reading! :)
subscribe via RSS