Java EE 7 Launch Celebrations in Africa Trip Report

Guest Author

Morocco, Senegal, South Africa, and Uganda were the African four
countries on my href="http://www.oracle.com/events/global/en/java-outreach/index.html">Make
the Future Java EE 7 Global Celebrations tour. The event was
organized by href="https://java.net/projects/jug-africa/pages/Home">JUG AFRICA
and Max Bonbhel covered a few other countries as part of this tour.

height="143" width="200">

I was welcomed with a very warm African hospitality in each country.
The JUG leaders took extreme care of me through out the stay,
starting right from the airport pick up, organizing the events,
working on logistics, and a multitude of other things. Remember, the
JUG leader is a volunteer role but its the passion for technology
and sharing with the community that drives them. And that was truly
evident in each of them!

A big shout out to Badr
(Morocco), Mamadou
Ngor Diouf
(Senegal), Mark
and Richard Kolb
(South Africa), and Nsubuga
(Uganda) for being the wonderful hosts!

I had lots of opportunities to engage with African developers from
all around the continent. Yes, Africa is a continent with 54
different countries! Typically, locals talk about North, East, West,
and South Africa regions. I was fortunate to share some of my Java
EE 7 knowledge in all four regions, and in return learned a lot more
from them.

The format at each event was mostly similar - provide a code-driven
introduction to Java EE 7 and keep it completely interactive. I
truly believe that the code should be written such that it speaks
for itself. The developer productivity enhancements made in the Java
EE platform over the years have certainly made it very much a
reality. A typical flow covered the following samples, in a
completely interactive manner:
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/websocket/whiteboard">WebSocket
    Collaborative Whiteboard
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/websocket/chat">WebSocket
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/batch/chunk-csv-database">Batch
  • Batch href="https://github.com/arun-gupta/javaee7-samples/tree/master/batch/split">Split,
    and href="https://github.com/arun-gupta/javaee7-samples/tree/master/batch/decision">Decision
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/batch/listeners">Batch

  • JAX-RS href="https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/jaxrs-endpoint">Endpoint
    and href="https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/jaxrs-client">Client
  • JAX-RS href="https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/client-negotiation">client-side
    and href="https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/server-negotiation">server-side
    content negotiation
  • JTA href="https://github.com/arun-gupta/javaee7-samples/tree/master/jta/transactional">@Transactional
    and href="https://github.com/arun-gupta/javaee7-samples/tree/master/jta/transaction-scope">@TransactionScope
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/server-sent-event">Jersey
    Server-Sent Event
  • JSON Streaming href="https://github.com/arun-gupta/javaee7-samples/tree/master/json/streaming-generate">Generate
    and href="https://github.com/arun-gupta/javaee7-samples/tree/master/json/streaming-parser">Parse
  • JSON Object Model href="https://github.com/arun-gupta/javaee7-samples/tree/master/json/object-builder">Generate
    and href="https://github.com/arun-gupta/javaee7-samples/tree/master/json/object-reader">Parse

  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/concurrency/executor">Managed
    Executor using Concurrency Utilities
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jms/send-receive-simple">JMS
    Classic and Simplified Sender/Receiver
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jms/jmscontext-cdi">JMS
    Default Destination Factory
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jpa/schema-gen-scripts">JPA
    Schema Generation Properties
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jpa/schema-gen-scripts">Default
    Data Source

  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/servlet/nonblocking">Non-blocking
    I/O in Servlet
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/servlet/async-servlet">Async
  • CDI href="https://github.com/arun-gupta/javaee7-samples/tree/master/cdi/nobeans-xml">default
    enabling and href="https://github.com/arun-gupta/javaee7-samples/tree/master/cdi/vetoed">@Vetoed
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jsf/flows-simple">JSF
    Faces Flow
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jsf/contracts-library">JSF
    Resource Contracts Library
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/jsf/passthrough">JSF
    Pass-through Attributes
  • href="https://github.com/arun-gupta/javaee7-samples/tree/master/validation/methods">Bean
    Validation on POJOs
  • And anything else that the developers asked

There was barely noticeable to no language barrier in all the
countries that I visited. This truly allowed a frank and direct
conversation with the developers, as opposed to using a translator.

height="100" width="92">

The trip started with the first event in
Casablanca, Morocco (North Africa). Badr took time out of
his family vacation to receive me at the airport and
ensuring a smooth operation of the event. There were about
50 developers during a week day evening and otherwise a
general holiday season.

The interactive session had several existing Java EE developers.
Riding a train from Rabat to Casablanca with a few of the JUG
members gave a good 1-1 time to interact with them. One of the
developers showed me a sample application he has built to prepare
for Java certification. One of the common feelings in Morocco at
least is that their sub-Saharan bretherens are preferred for any
Africa-wide events. However I started my trip with North Africa, so
no complaints there ;-)

Something to learn about Morocco ...
  • Sahara Desert is about 900 km from Rabat/Casablanca. Plan for
    a few days if you are interested in a desert safari
  • Cars are used to travel from/to airport, not camels ;-)
  • Don't miss out on visiting one of the Kasbah, they are very
    unique and colorful structures

Here are some pictures from that event:

height="288" width="216">

height="216" width="288">
height="288" width="216">
height="216" width="288">

JMaghreb is the biggest
Java developer conference in North Africa. I attended their href="https://blogs.oracle.com/arungupta/entry/jmaghreb_2012_trip_report">
inaugural conference last year and had a really good time
giving a Java EE 6 hands-on lab to a packed room. The conference is
focused towards a "pragmatic developer", not necessarily using all
the bleeding-edge technologies. Badr has already started planning
for JMaghreb 2.0 (Nov 7 and 8) and planning to expand the outreach
to Southern Europe and other neighborhood countries. Reach out to
him if you are interested in speaking at that event, and of course href="http://jmaghreb.moroccojug.org/"> register for this free

height="90" width="100">

The next stop of the trip was at Dakar,
Senegal. There were about 30 developers for the Saturday
morning event. On the request of JUG leader, I started the
event with a slide deck providing a complete overview of the
platform. And then showed a bunch of samples afterwards. The
Java EE 7 Technical
provides a href="http://glassfish.java.net/javaee7/techkit/JavaEE7-1hour.pptx">slide
deck (with speaker notes) that you can use to talk
about Java EE 7 at your local JUG. The attendees were not
shy in asking questions and the session continued with
code-driven talk afterwards.

 I was fortunate to bump into couple of passionate GlassFish
developers who are using it for a local telecom company. Hear all
about their passion around Java EE 6, GlassFish, and NetBeans:

Here are some pictures from that event:


height="288" width="216">

height="216" width="288">

height="216" width="288">

Some things to learn about Senegal ...
  • Senegal visa can be obtained at the airport, but be prepared
    to "grease" the machinery
  • Arrange a pick up at the airport otherwise you'll be
    overwhelmed with the cabbies

  • Visit href="http://www.africandiasporatourism.com/index.php?option=com_content&view=article&id=872:african-renai">Rebirth
    of Africa monument in Dakar, it is very very inspiring

height="100" width="80">

The next stop of the trip was at
Johannesburg, South Africa. Nobody amongst ~100 developers
wanted to see any slides and so we jumped straight into the
code. I showed lots of code and had lots of interaction.

I also had the opportunity to visit href="http://en.wikipedia.org/wiki/Wanderers_Stadium">The
Wanderers, a cricket stadium known for the second highest one
day total of 438 by South Africa. I spent significant part of my day
at the office and that's where the event was hosted in the evening
as well.

Some things to learn about South Africa ...
  • Johannesburg, with about 4.4 million population, is definitely
    a premier technology hub in all of Africa

  • Being far South, they sort of feel in a silo and not
    completely connected from rest of the world. This is in spite of
    the fact that there is decent Internet connectivity.

  • Startup culture is definitely prominent here - products are
    serving local needs because of infrastructure costs, otherwise

Here are some pictures from that event:

height="216" width="288">

height="216" width="288">

height="216" width="288">

height="216" width="288">

height="100" width="100">

The last stop of the trip was at Kampala,
Uganda. Nsubuga Hassan picked me from the Entebbe airport
and we shared a 1.5 hrs taxi ride to the hotel in Kampala.
The number of women participants truly surpassed the number
of men at the event, and this was truly impressive. Its
probably the most number of women I've ever seen at a JUG

There was even a discussion around starting a new Kampala
JUG, so that is definitely promising.

The event was hosted by Hivecolab
which provides community-owned work environment for young tech
entrepreneurs in Kampala. Had a good chat with program director
Barbara who is also also leading Women
in Technology Uganda
. Listen to an interesting conversation with Barbara on promoting technology amongst women in

Some things to learn about Uganda ...
  • English is the official language of the country, and has about
    40+ other local dialects

  • People are extremely soft-spoken and very welcoming every
  • Lot of tech innovation happening in Uganda - href="http://www.momokla.ug/">Mobile Monday Kampala, href="http://thehubkampala.com/">@The Hub, href="http://finafrica.org/">Fin Africa, and others
  • Local government encourages women to study at the university

I enjoyed riding the different local means of transport - href="http://en.wikipedia.org/wiki/Boda-boda">boda boda and
the van. The visit to the local arts and craft market in any part of
world not only promotes local artisans but also gives you the
opportunity to buy authentic goods.

Here are some pictures from that event:

height="216" width="288">

height="216" width="288">

height="216" width="288">

height="216" width="288">

All the Java EE 7 samples are available at href="http://github.com/arun-gupta/javaee7-samples">github.com/arun-gupta/javaee7-samples.
Feel free to clone the repository or send a pull request if you want
to contribute new Java EE 7 samples. A recording of some of the
samples can be seen in the videos recorded at an earlier conference:

Even though the local JUG leaders were my hosts in each country but
the real force behind all of this was Lamine Ba and Max Bonbhel. I
had numerous emails exchanges on dates, cities, hotels, and
everything else and they were all dealt very promptly and in a
professional manner. Max and Lamine - you are the agents of change
in Africa and are truly helping African developers be visible at the
global front, thanks for your efforts!

I truly enjoyed my short stay in different countries and would love
to come back again!

Here is the complete album from the trip:

height="267" width="400">

If you want to learn more about African developers, or contribute
then there is an excellent panel "href="https://oracleus.activeevents.com/2013/connect/sessionDetail.ww?SESSION_ID=3649">BOF3469:
Java Trends in Africa" at JavaOne San Francisco (Sep 22-26).

and see ya there!

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.