what is listening on the given port check connectivity of remote host (on given port) DNS lookup with dig (Domain Information Groper)
Read moreNext step in the journey
I got this book from my manager, when I got “promoted” (unexpectedly, as these things tend to happen) from a senior developer to a team lead of a small team. I felt as if it was written precisely for me. And I recommend it to anyone who finds themselves in a similar position – it […]
Read moreStrangler pattern
When you need to migrate an old application into new technology, create a facade which routes requests. You can now migrate small parts of your old app and direct your clients into migrated parts once they are ready, but keep the whole app working and coherent. It is transparent for you clients whether they are […]
Read moreDeployment scenarios
Blue/green deployment – when deploying a new version of your application prepare and run all environment including your app without external access. You can then test it and if everything works fine – switch access to the new environment (disable the old version). Canary deployment – release the new version of your app to a […]
Read moreFree embedded map API for web
Google Maps Alternative Ever since Google stopped offering free embedded map service, Open Street Map project continues on gaining popularity as one truly independent and free platform for cartography and geolocation data. Thanks to the user-generated content model (like Wikipedia) and Open Data Commons Open Database Licencing it is crazy accurate and can be used […]
Read moreGoldilocks conditons
In general, it means just the perfect conditions for a certain event to happen. Not too much, not too little – just as the porridge that Goldilocks tasted was not too hot and not too cold, in story of Three Bears. Goldilocks conditions are primarily used in context of life creation on the Earth, as […]
Read moreLongAdder as a coarse-grained concurrency alternative to AtomicInteger
AtomicInteger uses compare-and-swap (CAS) processor instruction to update the counter. It works great, until under high contention it doesn’t run into a spin lock, as the operation is retried in infinite loop, until it succeeds. Java8 LongAdder does not try to compete for accessing the value to increment, but instead – saves the value in […]
Read moreVisual composition
The visual design of an app is more than a superficial layer: good design guides the user by communicating purpose and priority. Space If the shape is positioned centrally, the space will appear neutral, balanced and a little sterile. Moving the shape off-centre creates tension, adding interest for the viewer and encouraging further exploration. When […]
Read moreCSS Naming – BEM – Block Element Modifier
The BEM approach ensures that everyone who participates in the development of a website works with a single codebase and speaks the same language. Using proper naming will prepare you for the changes in design of the website. Block Encapsulates a standalone entity that is meaningful on its own. Element Parts of a block and […]
Read moreWhat are reference types in Java – strong, weak, soft, phantom reference
Apart from the strong reference, the one used when you create a variable inside a function, Java allows for different types of reference. They can be used to tune memory management and garbage collection of temporary living objects, like cached objects or sessions. Stron reference Strong reference is created by assigning it to an object. […]
Read more