Monthly Archives: August 2015

Minecraft Modding at Schools and Libraries

Introduction to programming languages to kids need to be gamified. They typically seem to like it, and in the process, they  also develop a liking for the language. They also have a better understanding of the typical code and run steps that is common in a software developer’s life.

Getting Started with Java for Kids

As part of Devoxx4Kids, my son and I have been teaching Minecraft Modding workshop for 2+ years now. We’ve personally reached out to 2000+ kids in Bay Area and other parts of the world, and help them write first Hello World program for Java. And its not the conventional public static void main, its a Minecraft Mod. This workshop has also been used at several other Devoxx4Kids chapters around the world.

As part of our workshops, “code” to kids is copy/pasting the text from the website and understanding it. “Build” is just clicking a button in Eclipse bringing Minecraft launcher. Once the game comes up, they know how to play it and see instant modifications. They don’t have to wait for Hello World to appear on their screen. They type “potato” and see a stack of 64 potatoes in their inventor, or they spawn an Ender Dragon from dragon egg or they make skeletons fight with each other. This is the new Hello World!

The installation of JDK, Eclipse or NetBeans, and Forge typically takes ~45 minutes. But after that initial hump, kids are able to build 3-4 mods in a total of ~2 hrs. Our philosophy is more on the lines of teaching them how to think to mod. Yes, we do teach them a few mod but we enable them to create their own mods as well.

Java is often complained about being a verbose language. But Forge decompiled code in Java makes it much easier to read the code, and help kids understand how to change it to make modifications.

The fact that kids love playing the game, this allows the workshop to just leverage their passion and help them in their journey towards becoming a Java programmer. It really helps lowering the average age of Java developer!

Minecraft Modding over Summer

Over the Summer, we delivered Minecraft Modding workshops at:

We were also able to coach some additional volunteers and hopefully spread the Java fever to a wider audience.

Here are some pictures from the event delivered at West Valley San Jose Public Library over the weekend:


Check out complete photos at

Minecraft Modding and You

Would you be interested in delivering this workshop at your local school, library, or corporate event?

Would you like teachers in your school to be trained for Minecraft Modding?

If you are in Bay Area, how about make this a social activity at your workplace for a weekend? Invite us to deliver this workshop.

If you are not in Bay Area, send us an email at and we’ll hook you up with the local Devoxx4Kids chapter lead who can then help you get started.

Devoxx4Kids is a NPO and 501(c)(3) and we love to ignite that spark in kids for technology!

Minecraft Modding Resources

  • Workshop instructions are available at
  • Minecraft Modding with Forge book from O’Reilly. This book is targeted at 8+ year old who has no prior programming experience. Parents with no technical background have also found this book to be a great resource.
  • Minecraft Modding Video Tutorial
  • Course Curriculum for School



WildFly Admin Console Updated – Feedback Requested

Red Hat JBoss Enterprise Application Platform (EAP) and WildFly have a symbiotic relationship. In short, Red Hat JBoss Enterprise Application Platform (JBoss EAP) retains all of the innovation of the WildFly community project (formerly known as JBoss Application Server). But only a subscription to JBoss EAP meets the demanding requirements for mission-critical applications and includes the assurance of service-level agreement (SLA)-based support, patches, updates, and multi-year maintenance policies. Read more details about the comparison between WildFly and JBoss EAP in this whitepaper.

JBoss EAP 6.4 is the latest version as of now, WildFly 10.0.0 Beta2 was released a few days ago. JBoss EAP 7 will be derived from WildFly 10.x. This allows developers to try out the latest features with WildFly (as opposed to other closed source application servers) and then use EAP 7 for mission-critical applications when commercial support is required.

Over the past year, we have been working to improve the user experience of the WildFly Management Console.  You will find several improvements to the overall information architecture and navigation model that will make it easier to find and execute common management tasks. We invite you to try the new console application and tell us what you think.

Getting Started with WildFly Admin Console

  • Download WildFly-10.0.0.Beta2 and unzip
  • Add a user in admin realm as -u u1 -p p1.
  • Access web-based admin console at localhost:9990
  • Use the username as u1 and password as p1

If you don’t want to go through download and install, which is pretty simple BTW, then WildFly 10.0.0.Beta2 is also available in OpenShift (thanks @farahjuma).

WildFly Admin Console Highlights

Spend some time navigating through different sections to quickly learn the WildFly basics. Here are some highlights.

The new navigation makes the WildFly structure more visible. To find a subsystem to configure, simply move from the left to the right within the navigation. You can also get a quick overview about each subsystem before configuring it.

WildFly 10 Beta2 Configuration

Servers can be found through either hosts or server groups. In addition, you can search for the server group or server you are looking for. 

Adding servers and monitoring servers are easier. After adding a server to a server group or host and getting it running, you can choose a subsystem that you want to monitor from the same page.

WildFly10 Beta2 Runtime

Modifying the status of a server can be done on the same page. You can also remove or copy the server.

WildFly10 Beta2 Server

You can add deployments to server groups directly, which means that you don’t have to first upload it and then assign it. Searching for server groups and deployments will also help save your time.

WildFly10 Beta2 Server Group

We welcome your feedback as we continue to improve the user experience of WildFly. Feel free to leave comments here, file bugs, and let us know what you like and what can be further improved.

Silicon Valley Code Camp for Kids 2015 – Submit and Register


Silicon Valley Code Camp is reaching its 10th anniversary this year!

When? Oct 2nd, 3rd & 4th, 2015 (Friday through Sunday)
Where? Evergreen Valley College (3095 Yerba Buena Rd, San Jose, California 95135)
What? Paid workshops on Friday, FREE sessions on Saturday/Sunday, Kids Sunday

What can you do?

  • Register for the event
  • Submit a session for FREE sessions or Kids workshops
  • What kind of sessions can be submitted? 

    Each session is 75 mins long.For adults, look at the existing list of sessions and think about submitting what would make your session unique.

    For kids, any hands-on session would be great. The facility will only provide classroom style seating with power adapters for laptops to be plugged in. The kids typically bring their own laptops. Any software installation instruction on laptop needs to be included in the abstract and will be shared with the attendees.

    Internet is typically unreliable at such facilities. DO NOT rely upon it!

  • How do I sign up as volunteer?

    Make sure to select “Volunteer to Help” checkbox on The exact volunteer jobs will be posted closer to the event and you’ll be notified. You’ll need to pick the exact job at that time.

  • How do I sign up my kid for a workshop?

    Each kid require a parent/guardian to sign up. Parents need to stick around for the entire duration of the event.

    The kid signs up for the entire day and then can signup for a particular workshop once the schedule is available. Each kid registration requires to pay $50. This mostly goes towards logistics of the kids event.

    Make sure to register a parent/guardian first as that will be needed during kid’s registration.

  • When will kids workshop and schedule be available?
    In the next few days!

Any other questions? Ask them at or ask here.

Kubernetes Application – Package Multiple Resources Together

Deploying an application in Kubernetes require to create multiple resources such as Pods, Services, Replication Controllers, and others. Typically each resource is define in a configuration file and created using kubectl script. But if multiple resources need to be created then you need to invoke kubectl multiple times. So if you need to create the following resources:

  • MySQL Pod
  • MySQL Service
  • WildFly Replication Controller

Then the commands would look like:

Or for convenience, wrap these invocations in a shell script. But that is not very intuitive! There is a better, and more natural and intuitive way.

Kubernetes allow multiple resources to be specified in a single configuration file. This allows to create a “Kubernetes Application” that can consists of multiple resources easily.

Previous section showed how to deploy the Java EE application using multiple configuration files. This application can be delpoyed using a single configuration file as well.

An application, as discussed above, consisting of MySQL Pod, MySQL Service, and WildFly Replication Controller can be created using the following configuration file:

Notice that each section, one each for MySQL Pod, MySQL Service, and WildFly Replication Controller, is separated by ----.

Such an application can be created as:

Complete details about how to setup Kubernetes and run this application are available at

More details about creating a Kubernetes application with multiple resources can be found in #12104.

You can learn about how to create Kubernetes resources for a Java application, or otherwise, at

Docker and Kubernetes Workshops in Fall 2015

Docker and Kubernetes workshops is going to 4 continents and 9 countries this Fall!

Lets talk about:

  • Get started with Docker and Kubernetes for packaging your applications
  • Microservices using Docker and Kubernetes
  • Clustering architectures
  • Migrating existing applications to Docker and Kubernetes
  • Tooling
  • Debugging tips

I’ll share some of what I know and will learn a lot more from you!

Here is the complete circuit so far:

 Sep 9 -10  javazone-2015
 Sep 15  goto-london-2015
Sep 17 redhat-forum-london-2015
Sep 29 Red Hat Forums, Argentina
 Oct 2  codestars-summit-2015
 Oct 24 – 29  javaone-logo
 Nov 5  Drukwerk (tentative)
 Nov 7  javaday-kiev-2015
 Nov 9 – 13  devoxx-be-2015
 Nov 16 – 18  devoxx-morocco-2015
 Nov 18 – 22  buildstuff-2015

Where will I see you?

Would you like to run with me at any of these events? 5k, 10k, 10mile, half marathon, marathon … you pick the distance and we run together!


JBoss EAP gives 509% ROI over closed source application servers

A new study by IDC shows how Red Hat JBoss EAP customers are significantly benefitting over closed source commercial application servers:

JBoss EAP IDC 2015

The study says that a common paradigm with JBoss EAP customers three years ago …

There was uncertainty about whether JBoss EAP would scale as well as more expensive options and whether JBoss EAP was as feature rich, particularly for high-end projects. Those concerns prevented IT operations from going all in on a single software standard. Despite that, customers were pleased with the benefits they were able to achieve from their use of JBoss EAP, and customers were able to achieve an impressive return on investment by adopting this approach.

Sounds familiar?
Does your company still think like that?
Do the closed source vendors still give you that pitch?

The study shares how customers’ perspectives have changed over these years …

Today, we’ve found that JBoss EAP customers are more systematic in their use of JBoss EAP or OpenShift by Red Hat as the standard application server or cloud application platform within a standardized environment. Customers are no longer worried that JBoss EAP is not as sophisticated as more expensive alternatives and now believe it’s at performance parity with its competitors.

There are much more fundamental benefits for developing in open source:

One customer said that because JBoss EAP comes from open source, it is built from a lot of good ideas from the community and the internal design is architected to make it simpler to use than non-community-based alternatives.

That’s why we love Community Powered Innovation!

The cost benefit cannot be over emphasized anyway:

the cost benefit associated with JBoss EAP gave them an affordable opportunity to standardize, whereas they would have been too cost challenged using other options.

And the customers are saying:

We did a cost-benefit analysis. Many of our applications need a development platform for multiple environments … and if we compare JBoss EAP with other solutions … it’s a no-brainer. Night and day

Are customers using it for only new projects? Or migrating their existing mission critical projects to JBoss EAP as well?

Three years ago …

Then it was enough to begin using JBoss EAP for new projects.

And now …

we’ve found that customers made the decision to migrate production applications to the new environment in order to gain speed and compliance benefits from standardizing application operations and change management.

Register and download the report now!

What are you waiting for?

Download JBoss EAP (Java EE 6 compliant) and get full commercial support or WildFly 10 Beta1 to try Java EE 7 and lots of other cool features!

Docker Toolbox

One of the new features introduced in Docker 1.8 is Docker Toolbox. What is this toolbox?

Docker Toolbox

The Docker Toolbox is an installer to quickly and easily install and setup a Docker environment on your computer. Available for both Windows and Mac, the Toolbox installs Docker Client, Machine, Compose (Mac only), Kitematic and VirtualBox.

Docker Toolbox

Docker Toolbox is the fastest way to get up and running with Docker in development. In short, it provides the different tools required to get started with Docker:

  • Docker Client docker binary
  • Docker Machine docker-machine binary
  • Docker Compose docker-compose binary
  • Kitematic – Desktop GUI for Docker
  • Docker Quickstart Terminal app

If you have Docker CLI, Machine, Compose, and other tools installed in the /usr/local/bin directory then this would just overwrite them.

Specifically, Docker Toolbox 1.8.0a installs:

  • Docker Client 1.8.0
  • Docker Machine 0.4.0
  • Docker Compose 1.4.0
  • Docker Quickstart Terminal App
  • Kitematic 0.8.1
  • Virtual 5.0.0

After the installation completes, the versions are shown as:

If an older version of VirtualBox is already running then it will show a message as shown:

This flow needs to be slightly cleaned up (#63).

Read more details in DockerToolbox blog.

UPDATE: Virtual Box 5.0.0 prohibits Kubernetes cluster from starting. Not sure if Docker 1.8.0 will work with Virtual Box 4.3.30 but I downgraded VirtualBox 5.0.0 to 4.3.30 and also downgraded Docker 1.8.0 to 1.7.0 as explained in #12614.

Docker Quickstart Terminal

It also created a new Docker category in Applications with links to Docker Quickstart Terminal and Kitematic. Clicking on the terminal app creates a default Machine instance and shows the following output:

The configured Docker environment variables are:

VirtualBox is also updated to 5.0.0 r101573.

The Quickstart Terminal is mostly a regular shell but allows to create a default machine. It can be used to connect to other machines as well:

Update existing Docker scripts to Docker 1.8

If you’d like to update existing Docker scripts to 1.8, then they are available at:

  • Docker Client 1.8.0 (for Mac)
  • Docker Compose 1.4.0
  • Docker Machine 0.4.0
  • VirtualBox 5.0.0

Upgrade Docker CLI:

Upgrade Docker Machine:

Upgrade Docker Compose:

Virtual Box needs can be downloaded from

Upgrade Docker VMs

Docker version of existing Machines can be found as:

This can only be done after the machine is running though.

So start an existing machine as:

And then upgrade it as:

Java Applications using Docker

Ready to start deploying your Java applications to Docker?

Get started with