I have been at two conferences very recently. The first one was a Devoxx conference in Belgium, the other one was GoTo Berlin 2017. Both were quite interesting and had some great speakers. But being a spectator, I was noticing some things which help give great talks… and which don’t. So, what are some do’s and don’ts that I could name?
Colin Firth is perfect in every role – image taken from Giphy https://gph.is/1qj4GjG
There’s a lot of utility Java libraries that many projects use as a matter of fact. However, some developers still either remain blissfully unaware that they exists, or “do not want to include too many unnecessary dependencies”, or just don’t know the extent of the APIs that are already included and can be used – but alas, remain untouched. So, what are our options? Continue reading
In our company, no one knows how much others are paid. It was the same in my previous company. I once disclosed my salary accidentally in a previous company, when I gave my application for a US visa to other colleagues as an example of how to fill in the forms. I didn’t think of somehow covering out the salary field. In truth, I forgot about that field at all. So, everyone knew how much I earned, but I still didn’t know that about anyone else. Continue reading
This article is a very simple example of a working asynchronous REST application, made with Spring Boot + Java 8. Spring Boot makes developing web applications almost ridiculously easy, but to simplify the task even more, I took an example from Spring repository called rest-service , forked it to my own repository and changed it for my purposes to create two applications: a client and a server.
Our server app will be a simple REST web service that will query GitHub to get some user data and return it. Our client app will also be a REST web service… that will query the first app! Continue reading
Do you remember Andrew Ng?
I am going to remind you anyway.
Six years ago University of Stanford launched three online software courses called Artificial Intelligence, Machine Learning and Introduction to Databases. (I registered for ML and DB then). The courses were so successful that it allowed Andrew Ng and another Stanford professor, Daphne Koller, launch Coursera a little while later and start all the MOOC craziness. (Now of course it is a huge online learning platform, together with Udemy, EDX, Codecademy, Egghead.io etc., but it was the pioneer in online education).
So. This is a very quick post just to say that Andrew Ng is back with a whole new specialization called Deep Learning. Unfortunately the first session is already started, but you can always just audit the curse or wait for the next session.
(It is not Andrew Ng but it is the video that explains that rockstars are different for everyone. And Andrew Ng is definitely a rockstar.)
Recently JetBrains conducted an extended survey about the developers ecosystem, that is, what languages/frameworks the developers are using, in which companies they work (by size), what is the demographical situation etc. The survey obviously mainly covers the users of JetBrains products, so it is not the whole dev ecosystem, but it is interesting still.
Such surveys usually help to understand which technologies are currently on the rise and which maybe deserve more attention that you gave them. This survey, however, lacks a few things. First, dynamics: it doesn’t have any previous results. How can you see the trends if you don’t have anything to compare with the current figures? Second, I for one would be really interested to see what is the dynamics for the JVM languages has been – it is obvious for example that Kotlin is actively promoted by JetBrains, it was seen in a previous annual report for the 2016. But how does it affect Java? What happens with Clojure and Scala in the meantime? etc.
However, there’s still a lot of info in that report, and there are some key takeaways. Continue reading
OK, this is actually not about the winter, which as we all know has already come. It is about Spring Retry, a small Spring Framework library that allows us to add retry functionality to any task that should be retryable.
There’s a very good tutorial here, explaining how the simple retry and recovery is set up. It explains very well how to add a spring-retry dependency, use @Retryable and @Recover annotation and use RetryTemplate with simple policies. What I’d like to linger on is a slightly more complicated case when we actually want to apply different retry behavior based on the type of the exception. This makes sense because we might know that some exceptions are recoverable and some are not, and therefore it doesn’t make too much sense to try and recover from them. For that, there is a specific retry strategy implementation which is called ExceptionClassifierRetryPolicy, which is used with the Spring RetryTemplate.