Monday, October 06, 2014

10+ years on the Red Pill

I've started writing this blog entry in April 2014 when I received by post the item in the picture, along with a "Congratulations on your ten-year anniversary with Red Hat!" note. As it is common in our work I've got distracted by the immediate needs of yet another JBoss EAP product release, so I've left the blog post in a draft state (and basically forgot about it), only to rediscover it on a Sunday night, six month later.

I guess, it's now or never: a quick recount of how it all started.

Time flies and this has been the longest period in my life working on any single project: the JBoss Application Server recently renamed to WildFly and also known by its commercial counterpart the Red Hat JBoss Enterprise Application Platform (EAP). Even my older daughter is less than ten years old; in fact, both my daughters belong to the Professional OpenSource era of my life, grown up probably thinking it is perfectly normal to come back from school and find your dad at home, locked in a room in front of his computer, working strange hours and having conference calls at 11pm with his geek colleagues.

My involvement with the JBoss Application Server project has been a long one. I have been a heavy user of JBoss since v2.2 around 2001. I was always fascinated by the technology behind JBoss and I received great pleasure in analyzing the code, understanding how the system works, rip out the parts that were of interest to me and extend them to work in different ways than the software was originally intended for.

That was part of the magic of OpenSource software: the code was out there and it was the ultimate truth. If you had a good grasp of programming and the will and persistence to dig deeper, you could learn more things than any Computer Science course could ever teach you. And you didn't have to physically be at California or Seattle to take part in this technological party: you could do it from your bedroom at some distant and less privileged part of our planet where computer-wannabe-geeks wouldn't normally get a chance to work on something truly advanced. Working for a popular opensource project was like getting a chance to work for NASA from home. Or at least, it felt like this.

And it wasn't just the technology, it was also the people behind it. Tech geniuses of the likes of Adrian Brock and Scott Stark and (angry) Bill Burke and Gavin King and many others. People who's intellect you'd come to appreciate through their code and designs. And of course, visionaries, leaders and marketing geniuses, like Marc Fleury; the guy who lead the JBoss effort and could make everything seem possible. Undoubtedly JBoss Rock Stars, all of them.

I guess the turning point for me came in the summer of 2003. I had followed closely JBoss developments for a good two years and back in my previous company we had used JBoss to base our own products and create an advanced service provision platform for telcos. Then, in June 2003 I was fortunate enough to attend a JBoss training in Amsterdam with instructors (guess who?), Sacha Labourey and Juha Lindfors, both of them serial entrepreneurs and good friends by now.

Sacha, the restless Swiss with the French accent, director of JBoss Europe (and EJB Clustering guy at the time, who moved on later on to start Cloudbees), and Juha from Finland (#1 employee of Marc if I recall, and now founder of OpenRemote) with his slow pace and a perfect command of the English language acting as director of training. At the time JBoss Ltd. was basically a bunch of people so everyone was a director of some sort. But there was a common theme among them: extremely sharp and intelligent, both in business and technology. They knew exactly what they were doing and they seemed to be onto something, something big.

At the training I realized that I knew this "JBoss stuff" a lot better than I had thought of. Certainly more than the other trainees and in one or two areas that I had previously delved into, I was probably at least as good as the instructors themselves. I have already had an active role in the JBoss community as a user, but not so much as a code contributor. In any case, we have barely had the time to do our day job, so who would actually consider spending their nights at home to contribute code, for free?

Nevertheless, the training was a blast and I've managed to even contribute a bug fix before the class was over. At which point the thought naturally occurred to me: this stuff is way cooler than anything else I've seen. And those guys are way smarter than anyone else I've known. Should I try to become a code contributor. Do I actually have what it takes to be one of them?

The following months I've set about to find out. I would come back home after work and I would try to make code contributions. Given the limited spare time after the usual 10h work day with the long commute times and the slow 14.4Kbps modem line, things weren't exactly easy. But I still remember the day after Scott Stark gave me CVS write-access to the code repository and I was about to check-in a good chunk of code. Adrenaline was high as I pressed the Enter key that very first time. The code was in the repository for hundreds of eyes to see.

It's a common misunderstanding that opensource projects written by volunteers is of inferior quality. In an ordinary corporate environment it's very easy to write bad code that no-one but you will ever see, except maybe for that poor guy that will have to maintain it a few years down the road. But in the opensource universe, chances are that at least some people will see your code, often people more capable than you. And many more will actually test it. If it's crap, they are going to tell you right in your face. So you better double and triple check the code you've produced before you commit. And if you manage to break the testsuite or the built be prepared for some swift and harsh reaction.

The summer passed, and the fall, too. It was the time where things started becoming serious for JBoss.com that transformed itself from a training and consultancy shop selling development support, to JBoss Inc. with the aspiration of becoming a scalable business who's main revenue stream would be selling production support for the JEMS product line. JBoss received $10M of venture capital and that meant it could expand more aggressively and start hiring people. I.e. hiring the best from the existing pool of volunteer contributors (a strategy that we still follow in Red Hat, BTW).

So February came and it was another ordinary Thursday in the office. Most people were gone by 5pm and I was working late, as usual when I received the following email in my mailbox. That was one of the two reasons that made that day unforgettable.

-----Original Message-----
From: Marc Fleury
Sent: Thursday, 12 February 2004 6:22 pm
Subject: JBoss employment
 

Hello dimitris,
You seem fairly motivated, what is your professional situation today?
Are you open to discuss possibilities with JBoss EU? I think you may be
a fit for "professional open source".
Regards
marcf

 
Marc Fleury himself had just offered me the red pill. That was a common phrase in JBoss speak who often borrowed concepts from the Matrix series. It meant leaving the ordinary world of proprietary software development to enter the magic world of opensource software; and make a living out of it. Nothing would be the same after taking the red pill which signified the point of no return. Or alternatively, you could take the blue pill and forget all about it, be normal like everyone else.

Was I dreaming? It took me exactly 9 minutes to reply to Marc that I am very-very much interested but we obviously had to discuss in detail before I could make up my mind and commit to anything. For a moment I'd felt I had just entered "The Matrix" until the phone suddenly rang and brought me back to reality. As if they were calling me from the mother ship Nebuchadnezzar :

Home: "Are you crazy to still be at the office at that time? Take a look outside your window!"

So I looked outside the window and lo and behold, there was snow; actually a lot of it. That's the 2nd reason that day will remain unforgettable. The most unusual and heavy snowstorm in decades had just hit Athens and I was one of the last people in the office, 57 km away from home, far away from civilization, me and my Honda Transalp 600cc. I put on my gear quickly and rushed out in the snowstorm. I was hopping I could manage to get away before it was too late.

Apparently, that was a bad idea as I ended up heading right into the storm which only got worse. We had about a record 40 cm of snow in less than an hour. I took the 3-lane ring road that goes around Athens but after about 9 km I just couldn't drive anymore. I was knee-deep into the snow, the motorbike had very little grip and I couldn't see a thing through the helmet. There were almost no cars around, and if there were any, they most probably wouldn't see me either, I had to stop.

I found refuge under a bridge where I left the bike and started to evaluate my options. The roads where completely blocked, there was not a living soul around and the battery of my mobile phone was dead. I was almost laughing with myself about the situation: I had just got the best job offer in my life and I might instead freeze and die out there in the cold, without anyone knowing about this, ever. And this taking place in Athens, where a snowstorm of this size is as common as a rainfall in the Zahara desert. D'oh!

But then the open source survival instinct of being thrown into an unknown project suddenly kicked in: where am I? What do I know about this place? Nothing much except that my long lasting friend and colleague at the time, Spyros Pollatos, (and JBoss contributor, too, we had written together the SNMP adapter for JBoss)  lives somewhere around here. Maybe I could find his place and hopefully he will be there, too. But I had very little knowledge of the streets and I had only been at Spyro's place once. Will I remember the house or was that a long shot? Probably as a long shot as me working for JBoss!

So I left the safety of the bridge and walked in the snow for more than an hour, if I remember correctly, with all the motorbike gear on including the helmet. I surely got lost and went in circles a couple of times. But I did find the house in the end and Spyros with Tonia happened to be inside, totally surprised by the stranger who knocked at their door at night. As it happened, I didn't have to think too hard about taking that red pill, I was already living in the Matrix.

Fast forward two months later and here I am setting up my home office to become officially the first (and only) JBoss employee in Greece at the time. I was lucky enough that ADSL had just come to my area offering the impressive speed of 384/128kbs. With a fast Internet connection and my brand new Dell laptop with docking station and 20" monitor (still in use!) that had just arrived I was ready to roll.

And who would have guessed that as part of the welcome package I would also get a mention (with a picture of me under the Parthenon in Acropolis) in the BusinessWeek magazine. Which wasn't really something I had asked for or I could brag about since no-one from my friends actually read BusinessWeek, however, it did serve me well as something I could show my dad to prove that this JBoss thing actually existed and it wasn't a scum to get people working for free from their homes!

But it all worked out remarkably well and JBoss and later Red Hat proved to be the most reliable employer I've ever had. I got to meet some extremely smart and interesting people and got to work on a series of challenging releases, each one advancing the state of the art in application server technology. And doing all that by offering source code and software for free, while making a decent living and helping build the first billion-dollar opensource company.

10+ years living and breathing OpenSource changed my life in ways I would have never thought when this adventure started. And not just my life but the lives of many of my fellow colleagues and developers, some of whom I have offered them, as a hiring manager now, the red pill myself.

Any takers?

/Dimitris

Monday, September 29, 2014

New books from the WildFly/EAP team

I came to believe that building infrastructure software and tools for developers is the biggest challenge for a programmer (second only to actually inventing your own programming language), exactly because your end users are not normal people but other fellow developers: intelligent geeks that are very hard to impress.

And whereas in the old days tools development was kept, to a large extend proprietary, the larger percentage of languages, tools and framework are developed nowadays in the opensource, meaning your code is out there in the open to be scrutinized. Writing bad code is less easy when hundreds of eyes are watching you and your reputation is on the line.

There is one undeniable benefit, though, in working on the development of opensource projects like the WildFly application server and it's derivative RedHat JBoss EAP: it is quite possible you will become an expert in the implementation of a set of standards (Java EE or otherwise), or a technology area or a framework that interests many others.

Combine that with a knack for explaining how things work and expressing yourself clearly in written form and what you get is an excellent book writing opportunity. An opportunity that members of the WildFly/EAP will occasionally grab.

So without further ado, I'm happy to throw a plug for two books that came out recently from WildFly/EAP team members.

Mobile and Web Messaging, by Jeff Mesnil
Advanced JAX-WS Web Services, by Alessio Soldano.

Enjoy!

/Dimitris







Thursday, November 21, 2013

Devoxx '13 recap


For yet another year (4th?) I hosted at Devoxx the WildFly Community BOF, one of our regular rendezvous with the JBoss community. The Wednesday 8pm slot proved very convenient and the room was full of old and new JBoss users and a good number of JBoss people/developers attending Devoxx. I was also fortunate to have Arun Gupta in the BOF, a recent addition to the Red Hat/JBoss family who was quick to field answers to various EE7 questions that came up during the session.

To start the discussion I went through a few slides providing an update on WildFly v8 which is currently in Beta, and you can download it from here. WildFly 8 is now undergoing the last stages of completing the EE7 TCK certification effort so we are not far from a CR release. This is a very good time to download the Beta release and kick the tires to help us identify and fix any issues before the Final release goes out.

WildFly 8 brings in a number of interesting new features, including:
  • Full Java EE7 support
  • A new fast Web Server, called Undertow
  • Reduced port usage
  • Patching Infrastructure
  • Audit Logging
  • Role Based Administration
You can learn more about those features by taking a look at the latest recorded webinar by Jason Greene and Stuart Douglas.

Talking about new features I was pleasantly surprised by the input we've got during the BOF, which contrary to other years it wasn't that much! Meaning that we are now at a point were we have most major areas of functionality covered and we can start looking at the details or the more advanced use cases. So despite the new name, WildFly is in fact quite mature, carrying along a JBoss history of 14 years.

On the other hand, I was not surprised at all by the huge interest I've seen at Devoxx by Glassfish users for moving over to WildFly and JBoss EAP, after the announcement by Oracle earlier this month that they are stopping commercial support for Glassfish. It's kind of sad for us to loose a very much respected opponent in the opensource space, but it was bound to happen at some point. It's hard to have to deal with two competing products in the same company.

Besides the BOF, I should also mention that I held a mini session at the JBoss booth, a quick introduction to Role-Based Administration (RBAC) in WildFly. Brian Stansberry gives some information about RBAC in the 2nd installment of the WildFly Deep Dive webinar series that you can watch recorded here.


Finally, I would like to take the opportunity and thank everyone that participated in my sessions. Your suggestions are taken very seriously and they are often used to change our priorities and shape our roadmaps.

Until the next time!

/Dimitris







Monday, June 03, 2013

JBoss EAP and WildFly - a Symbiotic Relationship

It was a year ago in June/2012 when we released JBoss Enterprise Application Platform 6 (JBoss EAP) our stable and supported product based on the groundbreaking work performed in the community JBoss AS 7 project that pushed the envelope of application server technology and recently granted us the ZeroTurnAround Best Application Server Award.

And although for this past year our track record, in terms of community releases and vocal presence has been relatively poor, the application server team has been super busy working behind the scenes on our long term goal of strengthening the symbiotic project/product relationship. How?

In two ways:

First, by releasing JBoss EAP 6.1 on May/20th (check out the release notes) we didn't just produce yet another minor release with many important bug fixes and a number of new features. We've introduced a change in the distribution model so that starting from EAP 6.1, binaries (and sources of course) of all EAP major.minor releases are becoming immediately available through the JBossAS downloads page on jboss.org to anyone that wants to use EAP for development purposes under a $0 subscription.

So if you have a strategic interest in JBoss EAP or you are just curious to try it out, you can get involved from the very early stages of productization, including the Alpha & Beta releases, discussing about the product, reporting any issues and helping us fix issues by the time the GA release is out.

Second, by renaming the community JBoss AS project to WildFly and Jason producing the first ever WildFly 8.0.0.Alpha1 release, we didn't just embark on the Java EE7 journey implementing the latest and greatest iteration of the spec, introduce a host of great new features or strive for even better performance. We've established a cleaner separation between the community project (WildFly) and the product (JBoss EAP) and we have entered a fast paced and aggressive monthly release cycle that will hopefully lead us to a Final version by the end of the year.

So if you love the community project (with the brand new name), you want to live on the bleeding edge of technology and help us once more have fun and make history (and write a lot of code on the way), now is the right time to get involved (and who knows, I might even hire the best of you). Also, don't be mislead by the Alpha phase of the project, the quality is way higher.

WildFly and JBoss EAP march towards their common future hand-in-hand complementing each other. WildFly constantly pushing forward in terms of new features and cutting edge innovation, and JBoss EAP following with a focus on enterprise level performance and stability, long term maintenance and first class professional support.

Both are available now for download, make your pick (WildFly / JBoss EAP) and get going!

/Dimitris

Friday, February 08, 2013

Το Εγκληματικό Έλλειμμα Μηχανοργάνωσης στην Ελλάδα

Διάβασα στα γρήγορα την συνέντευξη του Γ.Πολίτη όπου επιλέξει αναφέρεται:
Αυτήν τη στιγμή, δεν συντρέχει κίνδυνος επανόδου στη δραχμή, εκτός και αν δοκιμαστεί σε ακραίο βαθμό η κοινωνική συνοχή. Τα χειρότερα είναι πίσω μας και τα δύσκολα μπροστά μας, με την έννοια ότι πρέπει να προχωρήσουν οι διαρθρωτικές αλλαγές, που θα καταστήσουν ανοικτή και ανταγωνιστική την οικονομία.

Η σημαντικότερη αλλαγή, κατά τη γνώμη μου, είναι η μηχανοργάνωση του κράτους και η απλοποίηση δομών και διαδικασιών. Οι μισθοί έχουν ήδη προσαρμοστεί, μένει να προσαρμοστεί και το κράτος. Αυτό είναι το μεγαλύτερο στοίχημα. Πρέπει να μικρύνει το κράτος και να δημιουργηθούν νέες θέσεις εργασίας στον ιδιωτικό τομέα.
Αυτές οι δύο παράγραφοι τα λένε όλα:
  • Η δοκιμασία της κοινωνικής συνοχής είναι το επόμενο μεγάλο στοίχημα.
  • Οι διαρθωτικές αλλαγές είναι το κλειδί για την μετατροπή της οικονομίας.
  • Πρέπει οπωσδήποτε να μειωθεί το κράτος (και να μειωθούν/σταθεροποιηθούν οι φόροι θα πρόσθετα).
  • Πρέπει, επιτέλους, να μηχανογραφηθεί το κράτος!
 Ειδικά αυτό το τελευταίο είναι το χρυσό δισκοπότηρο της Ελληνικής Αναγέννησης. Ό,τι δεν έγινε τις τελευταίες δεκαετίας πρέπει να γίνει τώρα, άμεσα, γιατί τα περισσότερα προβλήματα της Ελληνικής πραγματικότητας προέρχονται από την έλλειψη μηχανογράφησης:
  • Έλλειψη καταγραφής στοιχείων και παρακολούθησης προυπολογισμών;
  • Νησιά πληροφορίας, δεκάδες μητρώα, απουσία επικοινωνίας συστημάτων και διασταυρώσεων;
  • Άχρηστες διαδικασίες τις οποίες θα εκμηδένιζε η αναγκαστική ανάλυση συστημάτων κατά την μηχανογράφησή του.
  • Διαφθορά, αναποτελεσματικότητα, αναξιοκρατία, παραλογισμός.
Το λέω χρόνια αλλά το πιστεύω,  όλα τα προβλήματα της Ελλάδας είναι κατά βάση προβλήματα πληροφορικής. Λύσε αυτό και όλα τα άλλα θα ακολουθήσουν.

Βέβαια όπως ξέρουμε, ένα σωστό σύστημα για να αναπτυχθεί θέλει χρόνο και χρήμα και γνώση και ταλέντο και προπάντων διάρκεια. Η μηχανογράφηση είναι μία διαρκής διαδικασία και θα πάρει χρόνια να έρθουμε σε ένα καλό σημείο. Αλλά πρέπει επιτέλους να ξεκινήσουμε και κυρίως να κινητοποιήσουμε όλο αυτό το ικάνο ανθρώπινο δυναμικό, τους ανθρώπους και τις εταιρείες εκείνες που καταλαβαίνουν από τεχνολογία.

Πάρτε το παράδειγμα των Δημάρχων και των άχρηστων συντριβανιών όλα αυτά τα χρόνια που στοιχειώνουν τις χιλιάδες πλατείες που στρώνονται και ξαναστρώνονται με πλάκες κάθε παραμονή εκλογών. Κάπως έτσι αντιμετώπιζαν και τα έργα Πληροφορικής διαχρονικά στην Ελλάδα. Σαν συντριβάνια εντυπωσιασμού και χρηματισμού. Ένα συντριβάνι είναι άχρηστο όμως χωρίς σκοπό ύπαρξης, εξασφαλισμένα πάγια λειτρουργικά έξοδα και προπάντων συντήρηση. Διαρκή συντήρηση.

Το ξαναλέω λοιπόν για να το χωνέψουμε:
 Όλα τα προβλήματα της Ελλάδας είναι κατά βάση προβλήματα πληροφορικής. Λύσε αυτό και όλα τα άλλα θα ακολουθήσουν.

/Δημήτρης

Wednesday, January 16, 2013

Fritz!Box 7360 hacks

I've switched recently to this nice piece of hardware, a Fritz!Box 7360. Paired with a Fritz!Fon M2 DECT handset it makes a nice combination of a VDSL modem/router/access point with among other things, VoIP telephony features.

Everything worked as advertised, except for the VoIP connectivity with my Greek provider Viva.gr. Connection establishment was performed, however, when a call was initiated/received the voice quality was terrible with interruptions and clicking sounds. It made VoIP calls really impossible.

After Googling around I've verified the problem to be caused by a wrong selection of voice codec. It was using the G729 codec that although worked fine with the same VoIP provider and e.g. a CSipSimple client on Android, somehow it didn't work well with the Fritz!Box.

To change this manually:

Dial #96*7* on the handset to enable telnet access, then telnet to your box:
$ telnet fritz.box (type admin password)


Use a special version of vi to edit the voip configuration:
# nvi /var/flash/voip.cfg

look for the following snippet:
    ...
    use_audiocodecs = no;
    audiocodecs = "G729", "PCMA", "PCMU",  G726-32", "G726-40", "G726-24";
    verbose = no;
    capi_blocksize_in_ms = 30;
    sip_prio = 0;
    rtp_prio = 0;
    rtcp_prio = 0;
    dyn_codecs = yes;
    prio_low_codec = no;
    ...

Set ' use_audiocodecs' & 'prio_low_codec' to yes, and change the 'audiocodecs' to the ones you are interested in. In my case, I've removed all codecs but the high quality PCM ones, which are essentially G711. The relative section in my config now looks like:

    use_audiocodecs = yes;
    audiocodecs = "PCMA", "PCMU";
    verbose = no;
    capi_blocksize_in_ms = 30;
    sip_prio = 0;
    rtp_prio = 0;
    rtcp_prio = 0;
    dyn_codecs = yes;
    prio_low_codec = yes;

:wq to save your changes and issue a
# voipcfgchanged
to restart the voip daemon.
Finally, dial a #96*8* on your handset to disable telnet access on your Fritz!box and you are done.

With this change Fritz!Box will switch from "G.729a" or G.726-32 and what-not to using the G711 voice codec. You can verify this by making a test call over VoIP then connecting with the web browser to the Fritz!Box admin interface and in advanced mode goto "Own Telephone Numbers" then click on the "Voice Transmission" tab and check the codec used in the test call.

This is all, enjoy VoIP calls and Kudos to Dave and Patrick.

/Dimitris

Monday, November 19, 2012

Devoxx '12 recap

What a week for JBoss @ Devoxx 12, my 5th Devoxx in a row!

JBoss had a huge presence this year. Take a look at the excellent reviews from other JBossians:
Regarding the JBoss Application Server Community Project, this was a special Devoxx since Mark announced the 5 names that made it to the final and are now available for voting in the community portal:
  • BaseJump
  • WildFly
  • jBeret
  • Petasos
  • Jocron
I do have my favorite(s) but I won't tell you just now, in order to not affect the voting process. Besides, I am sure you'll make the right choice. :)

Putting a new name to the project we love is going to be difficult for many of us that have been living the JBoss AS dream for a decade or so. However, the rationale behind the renaming is pretty convincing and the overall timing with AS8-to-be-renamed coming next is just right. Besides, you might have not realized that the same strategy has worked out well for a number of JBoss projects (Infinispan, HornetQ, SwitchYard, IronJacamar, GateIn, PicketBox, Narayana, etc.), and the input we received at the JBoss AS BOF was pretty encouraging.

This is all for now, don't forget to vote!

Cheers
/Dimitris

PS
For a nice review of Devoxx12, check out this blog.