by kornel@synkre.com | Nov 21, 2021 | Programming Tips
When we build applications that need to present complex numeric information to users, it’s inevitable that sooner of later we will have to find a way to show graphs of that information to the user. There are many graphing libraries, but they often look bad and...
by kornel@synkre.com | Dec 14, 2019 | Programming Tips
Is bcrypt the best password hashing algorithm? Bcrypt was designed as an improvement to the Blowfish password hashing algorithm, specifically to reduce the likelihood of 1) brute force attacks and 2) rainbow table attacks becoming successful. It adds an additional...
by kornel@synkre.com | Oct 4, 2019 | Programming Tips
Time and time again, I have to create a REST service for an application somewhere. I admit that its a bit hard to remember the signatures. So I end up having to look up many of the pieces in the docs every single time. I am putting this out for anyone (including me)...
by kornel@synkre.com | Aug 13, 2019 | Programming Tips
The Cake Pattern is a set of conventions surrounding the use of self type annotations in Scala to do dependency injection. Unlike many other languages, Scala does directly support dependency injection simply by using its built in features. They are very similar to...
by kornel@synkre.com | Jul 25, 2019 | Programming Tips
What are the benefits of lock free non-blocking code? Traditional Java programming uses mutex locks to give mutually exclusive access to resources. How can immutables and snapshots be used to write code without these locks. What libraries exist that provide algorithms...
by kornel@synkre.com | Jul 25, 2019 | Programming Tips
The Java Virtual Machine (JDK) has a number of techniques to allow us to work safely with data in multi-treaded applications: We can declare a variable volatile, we can synchronize, explicitly define and use a lock from java.util.concurrent.locks, or use one of the...