Roberto Cortez

Published: 74 articles

JNation – The Java Conference in Portugal

posted by Roberto Cortez on

For some time, I had a wish that I could organize a Java conference in Portugal. Well, that finally happened in 19th June 2018, with the first edition ever of JNation, which is also the first Java Conference in Portugal.

JNation 2018

I was already talking about doing the conference a couple of years ago, but only this year it was possible.

The Beginning

JNation Birth
I think the entire idea started when I went to my first now defunct JavaOne conference. If I recall correctly, it was the year of 2012. I’ve never been to a conference before and I felt overwhelmed by the size and organization behind it.

Another thing that impressed me was the community around it. Everyone was so kind and eager to help. It really motivated me to also join the community and try to help other developers.

In Portugal, the Java community was not particularly strong. So, I was not even sure that there was a demand for a Java conference in Portugal. A strong community had to be built first. The PT.JUG was the only JUG available in Portugal, but most of their sessions required me to travel for 4 hours to attend the sessions. To build the community, we also required more local JUG’s.

To that end, I’ve created the Coimbra JUG. Slowly another community was being built. Shortly after, two other JUGs were created in Portugal: Beira JUG and Porto JUG.

The Coimbra JUG

Since its inception in late 2013, the Coimbra JUG grew to more than 400 members. During this time, it organized more than 20 meetups with international speakers from companies like Oracle, Redhat, Hazelcast or Zeroturnaround. Overall, these meetups gathered more than 700 attendees from all over the country.

It became clear that there was a demand for content, a place where developers could meet other developers and learn with each other. The conference dream could become a reality.

alphaCoimbra

alphaCoimbra is a local non profit organization, created by local entrepreneurs with the intent to implement activities aiming to make Coimbra one of the most innovative and vibrant medium-size cities in Europe.

They were also looking to organize a technology conference in Coimbra, not necessarily about Java. Still, both the Coimbra JUG and alphaCoimbra started to work together to make this a reality.

JNation Conference

And the rest is history!

Well, it was not that simple. We were able to gather a great team that worked hard to make this happen.

Our initial idea was to make something simple. One day, a single track for 200 developers. Things quickly escalated in a positive way. The response was massive! We quickly sold out the first 200 seats, and speakers were contacting us to come. We had to increase the event capacity several times until we reached 450 developers and we added a second track to accommodate more sessions and speakers.

JNation Conference

We sold out! And we had plenty of other developers in a waiting list to join. Unfortunately, we had to make the hard decision to cap the conference size. The venue was not the issue. We just had to completely rethink the entire event if we wanted to increase the capacity even more, so we preferred to go on a safer route.

In the end, we came up with the following numbers:

  • 450+ attendees (yes a few sneaked in above the 450 limit)
  • 14 speakers
  • 30 volunteers
  • 2 tracks
  • 14 sessions
  • 20 sponsors
  • 13 supporters

We cannot be more proud and happy for a first run. On the other hand, this really sets the bar very high for future editions, so we hope we can keep going and make this event a success.

Check out the Opening Keynote video:

All the sessions were recorded and are available for free on JNation Youtube channel.

JNation Thank You

A HUGE Thank you to everyone that got involved in the conference: attendees, sponsors, speakers, volunteers, partners and of course the team! Cya next year!

Yes, Java helped me name Lucas

posted by Roberto Cortez on
tags: ,

LucasHaving a child is one of the most memorable moment you can experience. Parents have a huge responsibility with this new life and it starts right away when they have to choose the name. Our name is something that we keep for life (most of the times), so it needs some careful consideration. With literally thousands of names to choose from, how about using some Java technology to help us?

Yes, I wrote a small Java application to help me choose my baby name!

Requirements

First of all, we have to define some rules!

Basic Rules

  • A short name (but not too short)
  • In the first half of the alphabet
  • Without special characters

A short name, so it easy to call him. In the first half of the alphabet, because in Portugal we have this stupid rule where kids get seated in the classrooms in alphabetic order, so letters in the end of the alphabet get to sit in the end of the room! And finally, a name without special characters (we have a few in Portugal), to be easier for foreign people to use.

Advanced Rules

  • Exists in at least three languages (Portuguese, Spanish and English)
  • Sounds and Writes the same in all three languages

To cover the fact that I was born in a Spanish speaking country, that we live in Portugal and English for the globalization.

Constraints

There are also some constraints. In Portugal, you cannot use any name you want. You need to pick the name from an approved list of names. Of course, this is a comprehensive list of names that covers all common names. It is mostly used to avoid giving a stupid name to your kid. If your curious about it, check the list here.

Implementation

Basic Rules are Easy

After grabbing the data in the file and use some Java 8 Streams:

(Yes, I’m lazy with regular expressions)

Advanced Rules are more Interesting

Beider-Morse Phonetic Matching

When searching for a way to determine if a word or a name exists in another language and sounds the same, I came across with the Beider-Morse Phonetic Matching.

The main objective of Beider-Morse Phonetic Matching consists in recognizing that two words are written in a different way actually can be phonetically equivalent, that is, they both can sound alike. But unlike soundex methods, the “sounds-alike” test is based not only on the spelling but on linguistic properties of various languages.

How?
It tries to guess the language of the word following specific language rules and then calculates a phonetic value for that word. For instance:

  • tsch, final mann and witz are specifically German
  • final and initial cs and zs are necessarily Hungarian
  • cz, cy, initial rz and wl, final cki, letters ś, ł and ż can be only Polish

And then a phonetic value is calculated:

OriginalPhonetic ValueExample
tztsFitzgerald
cscircle
cckssuccess,accent
gh(g|f|w)burgh|tough|bough
knnknight
mcmakMcDonald

 

The Commons Coded project has an implementation of the Beider-Morse Phonetic Matching algorithm. Try it out and play with it.

Rosette API

The Rosette API is a Text Analysis Toolkit, that provides multiple services to perform text analysis. They also have a Name Translation service with a REST endpoint that you can use to feed in names and the desired language and return the right translation with a confidence score. Their API is useful to double check results obtained with the Beider-Morse Phonetic Matching.

They have fantastic support, providing libraries to integrate with their API’s in multiple languages and also a lot of samples you can use. Check their Github repo here.

behindthename.com

The Behind the Name website provided with the etymology and history of first names, plus a comprehensive list of names and what languages do they exist. On top of that, they also provide an API to check that information, so you can use it to triple check the results from Beider-Morse Phonetic Matching and the Rosette API.

Lucas Behind the Name

Adding it all Together

Lets just add this to our previous Java 8 Streams filter:

Final Results

After all, rules are applied and filtered the initial list, only 2 names remained. One is the obvious Lucas and the other was David. So, both these names exist, are written and are pronounced in the same way for Portuguese, English, and Spanish.

Proof it works?

Well, now I’ve just go to any random Starbucks and something with the name Lucas and confirm that they got it right. So far so good!

Lucas Proof

If you find this interesting, I even published the code in a Github repo. Check it out.

Note for Lucas: Lucas if you read this when your older, please excuse me for having such a geeky father.

Coimbra JUG – Just Enough App Server

posted by Roberto Cortez on

The Fifteen Meeting of Coimbra JUG was about Application Servers. For a long time, developers complain about Application Servers. Developers find them heavyweight and the current trend is to develop lightweight, isolated and contained services. Most call this approach Microservices. In my opinion, there is not a 100% accepted definition of what a Microservice is, but this is another story. Anyway, are Application Servers prepared to answer the new demands? António Gonçalves has the answer in is new session. Have a look and decide for yourself:

Just Enough App Server

Are Websphere or Weblogic appropriate for your project? Too big” ? Do Jetty or Tomcat actually meet your needs? Too “small”?

Neither too big nor too small. What you need is “just enough app server” to support only the subset of APIs and services your application needs.

In this session I will make an inventory of Java EE application servers (Weblogic, Websphere, JBoss, GlassFish), Profile Web (Tomee, Payara, Siwpass) and Servlets (Tomcat, Jetty, Undertow). If Microservices is want you want, I will introduce other modular solutions such as WildFly Swarm, KumuluzEE, Spring Boot or Dropwizard. I will talk about performance, war, executable jar, monitoring, management, optimization, use cases and some personal feedback… all this by showing code and executing several types of applications (from the simplest to more complex) in several kinds of containers … and maybe even on a Raspberry Pi.

Video (in Portuguese)

Of if you prefer an English version check it out here:
Just Enough App Server (English)

Slides

In the end, we would like to thank Praxis and KWAN for sponsoring the event with the venue, food and drinks for everyone! Remember to check out KWAN Calculadora Salarial.

Coimbra JUG Meeting 15

Thank you very much for your support! And of course, the awesome number of attendees that participated in the event.

Java Tip of the Week #10 – NetBeans

posted by Roberto Cortez on

After my video from last week, about IntelliJ, I was approached by Geertjan Wielenga from the NetBeans teams about doing the same for NetBeans.

I’ve used NetBeans very briefly around 2006 or 2007, can’t remember exactly, so I’m not the best person to talk about it. Geertjan was kind enough to collaborate with my Java Tip of the Week and make a video with me while going through some of the NetBeans features. I was also very happy to have my first guest speaker in my videos.

I have to say that I was very surprised with NetBeans. I would definitely keep an eye on it and maybe use it for some stuff. Just watch the video and decide for yourself:

Do we have someone that wants to make an Eclipse one to complete the set? I’ll be happy to do it.

In the meanwhile, emember to follow my Youtube channel for faster updates!

Leave a comment if you enjoyed it, if not leave one as well!

Java Tip of the Week #9 – IntelliJ IDEA

posted by Roberto Cortez on

It’s not secret that my favourite IDE is IntelliJ IDEA. You have already seen me using it in my previous videos, so it was just a matter of time to bring it as a topic. Here it is! Not trying to convince anyone to change or to start an IDE flame war. It’s enough already with the Java EE vs Spring wars.

Anyway, in a bit longer than 5 minutes this time, I went through some of the features that I use the most in IntelliJ, on Navigation and Code Generation.

Here is the video:

Here are also some other posts I’ve wrote about IntelliJ:

Remember to follow my Youtube channel for faster updates!

Leave a comment if you enjoyed it, if not leave one as well!