Don't say goodbye yet my friends ...
We'll likely meet somewhere else ...
Because ...
We'll always have the memories of the wonderful time spent together
...
May be in dreams but we will meet again ...

By and for the developer community (no product or marketing
pitches ;)

No charge to attendees

Never occurs during work hours

The code camp has shown constant growth over its lifespan as is
evident by the trends below:

The conference is definitely outgrowing its existing venue as the
registrations had to be closed early for the first time.

It takes a village to organize a volunteer-driven conference and
that has indeed been the case for all these years. The conference
has been primarily focused on professional developers for all the
past years. President Obama said

"If we want America to lead in the 21st century, nothing is more
important than giving everyone the best education possible — from
the day they start preschool to the day they start their career."

So this year, other than my usual speaking engagements, I also
volunteered to coordinate a new track focused on enabling future
generation of developers. It was astounding to see kids from
elementary school, middle school, and early high schoolers learning
programming skills.

More details about the track are available
here. About 200 kids attended stayed with their parents most
of the day and enjoyed interacting with other attendees.

Here is some feedback we've heard so far:

Thank you very much for the great classes this past Sunday.
I had a lot of fun and learnt a lot. I hope you have more of
such classes so I can also have my friends attend with me.Arun - thank you so much for volunteering your time and
organizing such a fantastic event today!! My kids had a blast and
quoting my 9-yr old son "Mom, this was the best experience I've
ever had" :-) We would be interested in any future events you may
be planning, one time or on-going.

Thanks again for the Minecraft Mod workshop yesterday; my son
enjoyed it tremendously and I hope it will encourage him to learn
how to program in coming years. I also enjoyed it as it gave
me some hints as to how Forge mod loader works.

We enjoyed the minecraft modding class yesterday as part of code
camp. My 11 year old has never coded (beyond Scratch) and he
was up and hacking minecraft within the first hour. Arun’s
preparatory materials, teaching approach and engaging style made
this a great experience. I would definitely like to see more
kid based courses in the future and would definitely recommend the
minecraft session to anyone interested in modding. I’d give
the course 4 out of 5 stars.

A friend invited us this morning to SVCC, and although the room
was packed, my son and I managed to get in and enjoyed learning
more about Java coding. Thanks for putting this class
together, and for making opportunities like this for father/son
activity related to computer literacy. We had a good time,
please keep it up for next year :-)

We loved kids sessions in code camp. It motivated my kid
programming. Keep up the good work.

My 12 year and 8 years old sons has been coming to code camp for
over 4 years now. It has been fun all these years, however
this year in their words "It was the best code camp ever!".
Thank you Peter K., Kevin Nilson, Arun Gupta and Stephen Chin and
all other volunteers for excellent sessions!

"This was fun" says my 11 yr old son Aidan. As the dad, I've been
spending some time with him at home building mods in Java and it's
definitely a way to motivate him to learn programming. He's
been able to slog through some rather dry Java materials so that
he can get better at Java programming. Re: the Minecraft class,
you did a nice job of teaching theory and then connecting it to
something applicable.

There is tons of
coverage on the recently released Java EE 7 and GlassFish 4.
The FocusOn
document provide a comprehensive set of sessions, BoFs, hands-on
labs, panels, etc related to Java EE Platform from Oracle, RedHat,
IBM, and many others.

This is going to be my 15th JavaOne and this blog has been serving
reports/pictures from the conference for past 6 years (2007,
2008,
2009,
2010,
2011,
2012).

Here is my schedule so far and I would love to meet you before/after
my speaking engagements:

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:

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.

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:

JMaghreb is the biggest
Java developer conference in North Africa. I attended their
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 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 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:

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

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 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.

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.

I enjoyed riding the different local means of transport - 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:

All the Java EE 7 samples are available at 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:

If you want to learn more about African developers, or contribute
then there is an excellent panel "BOF3469:
Java Trends in Africa" at JavaOne San Francisco (Sep 22-26).

This book provides a code-intensive overview of the key
specifications in the Java EE 7 platform (one specification per
chapter). The main concepts from the different specifications are
explained using simple code samples. All the associated code is
available on github.

A significant part of this book is derived from my Java
EE 6 Pocket Guide. New chapters have been added to cover all
the new technologies in the platform - WebSocket 1.0, Batch 1.0,
JSON-P 1.0, and Concurrency 1.0. New sections have been added or
existing sections updated to reflect the changes in the platform.
If you have read the Java EE 6 Pocket Guide, then you can read
this book at a much faster pace; otherwise, you can read this book
from beginning to end. Alternatively, you can read specific
chapters based upon your interest.

The book also contains self-paced instructions on how to build an
end-to-end Java EE application using NetBeans IDE.
Here is how I can use your help ...

If you have not purchased the book so far, then you can buy it
using any of the usual locations

O'Reilly has arranged a book signing at their booth on Tuesday, Sep
24, 2pm. Other book signing opportunities are also being worked upon
and I'll update once they are confirmed. And the book will also be
available at JavaOne book store.

I hope you enjoy reading the book and learn a few new things from
it. Your feedback in any form is always appreciated!

Wednesday Jul 24, 2013

javax.enterprise.inject.spi.BeanManager allows to
programmatically obtain contextual references to beans. Even though
the primary purpose is to allow a portable extension to interact
directly with the container, it can be used by any Java EE component
as well.