RESTful Java with JAX-RS 2.0

In the age of APIs, it is more obvious than ever that significant part of business value of many organizations (or their products) stems from their exposed interfaces. One of the most popular architectural styles to design and build such an API is REST. RESTful web services were introduced to Java in JSR 311 and the specification got name JAX-RS. At the time of writing this review JAX-RS reached version 2.0 and 2.1 is being drafted. Realizing this I felt the need to brush up on my previous knowledge of this technology and see what it has to offer. In my search for study resources I came across an awesome book called RESTful Java with JAX-RS 2.0 by Bill Burke, software architect and developer from Red Hat with years of experience working with REST and related technologies.

Read more ›

Posted in Book reviews

How not to approach me on LinkedIn

Recently, I have been invited to connect with a lot of people on LinkedIn and most of them were headhunters, recruiters and various HR related roles. The amount of invites from these people was really appealing to my ego at first, but it began to bother me after some time. Now, most of these invites end up in the ignore pile. These people might be asking why they received no answer from me. Well, it is mostly caused by the way they approached me and the way they used to communicate with me about the position they were offering. Some of these guys are really great in what they do and how they go about doing it. However, the quality of the recruitment process varies widely and the vast majority of these people do not know how to deal with IT people (and sometimes with people in general I guess), so I ran out of patience and decided to write this article to sum up mistakes that will cause you any further interaction with me, if you intend to connect with me on LinkedIn or any other network like that. Now I present to you my list of 10 rules not to break when approaching me on LinkedIn. Read more ›

Posted in Miscellaneous Tagged with: , ,

Oracle Certified Associate and Professional, Java SE 7 Programmer

This certification was one of the first exams I was considering after I was done with my college courses regarding Java and object-oriented programming. This was a time when I started working in programming and sort of needed to improve my rather basic knowledge in this area. However, it took me almost two years to make a decision to go for it (meaning the change to Java SE 7 and also revamp of the certification path by Oracle). This had both positive and negative effects. Upsides include more recent language knowledge being tested as well as a great way to prepare for both the certification and my thesis. On the other hand, the older SCJP exam for Java 6 was split into two exams increasing the overall price and also covered far more ground because of the additions in Java 7 release.

Read more ›

Posted in Certifications Tagged with: , , ,

Beauty and strangeness of generics

Recently, I was preparing for my Oracle Certified Professional, Java SE 7 Programmer exam and I happened to encounter some rather strange-looking constructions in the realm of generics in Java. Nevertheless, I have also seen some clever and elegant pieces of code. I found these examples worth sharing not only because they can make your design choices easier and resulting code more robust and reusable, but also because some of them are quite tricky when you are not used to generics. I decided to break this post into four chapters that pretty much map my experience with generics during my studies and work experience.

Read more ›

Posted in Java Tagged with: , , ,

Working with files and directories in NIO.2

In previous articles I discussed creation (Creating files and directories) and selection (Listing and filtering directory contents) of files and directories. The last logical step to take is to explore what can we do with them and how. This is a part of the library that was redesigned in a big way. Updates in this area include guarantee of atomicity of certain operations, API improvements, performance optimization as well as introduction of proper exception hierarchy that replaced boolean returning methods from prior versions of IO library.

Read more ›

Posted in NIO.2 Tagged with: , , , , , ,