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.
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!
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:
Batch href="https://github.com/arun-gupta/javaee7-samples/tree/master/batch/split">Split, href="https://github.com/arun-gupta/javaee7-samples/tree/master/batch/flow">Flow, and href="https://github.com/arun-gupta/javaee7-samples/tree/master/batch/decision">Decision
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
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
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
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 conference.
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 Kit 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:
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 services-based
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 meetup.
There was even a discussion around starting a new Kampala JUG, so that is definitely promising.
English is the official language of the country, and has about 40+ other local dialects
People are extremely soft-spoken and very welcoming every where
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.
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!
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).