Upcoming Meetups

There are a couple of user group meetups this week that I had a part in organizing.

On Tuesday, Roger Brinkley, the host of the Java Spotlight podcast, will speak at Austin JUG. He has spoken at CJUG a few times. I put him in touch with the leader of the Austin JUG. I did not know that Roger would be in San Antonio this week. So it was a pretty nice coincidence that he happened to be in Texas this week.

Then on Thursday, Ken Kousen will speak at the Austin Groovy and Grails group. I am on the list for the Houston JUG. He spoke there a few months ago. I went to his website, and he was going to speak in Houston and Dallas in the same week. I just emailed him out of the blue, and I told him there is a Groovy/Grails group in Austin. I told him he should speak in Austin someday. He emailed me back, and said it was not possible at that time, but he would like to do it someday. I put him in touch with the organizers, and he will be here on Thursday.

My Android Presentation

Here is information from the slides from my presentation on Android that I gave at the Chicago Java Users Group on March 15, 2011. I think a lot of it is still valid.

The first slide was just the title.

2. The Clint Eastwood Slide

  • The Good: Gives Java a shot in the ARM (**rimshot**) and the iPhone some competition
  • The Bad: Fragmentation, 2 current releases, some people’s Reality Distortion Field is thicker than Kool Aid
  • The Ugly: Potential legal issues, huge API (1504 classes in SDK), kind of clunky (575 of those are nested classes, and you will make some inner classes)

3. Android & Java

  • It does not run Java, but you develop apps with Java
  • Your Java bytecode gets translated into bytecode the Dalvik Virtual Machine can run
  • Oracle’s Lawsuit: Big Mistake?

4. Anatomy of an App

  • You get an Activity class
  • /gen with R.java (created for you)
  • /res/drawable
  • /res/layout/main.xml (maps UI for the main Activity, usually made with a designer, other Activity classes get XML files as well)
  • /res/values/strings.xml (gives ID’s and aliases for some variables)
  • AndroidManifest.xml (what binds it all together)

5. Components

  • Activities
  • Services
  • Content Providers
  • Broadcast Receivers
  • Intents
  • Views

6. Activity

  • Class android.app.Activity
  • Each Activity represents a screen for the user
  • An app can have multiple Activities, and must have a main Activity
  • You must override the onCreate method

7. Services

  • Class android.app.Service
  • “A Service is an application component representing either an application’s desire to perform a longer-running operation while not interacting with the user or to supply functionality for other applications to use.”
  • Kind of what it sounds like: Runs in the background

8. ContentProvider

  • Class android.content.ContentProvider
  • Used to send data between apps
  • Data can be in files, RDBMS, or on a server
  • Class uses URIs to send data
  • Similar to REST

9. Broadcast Receiver

  • Class android.content.BroadcastReceiver
  • Used to receive messages sent via Intents

10. Intents

  • Class android.content.Intent
  • A class that other classes use to send messages to each other
  • Not to be confused with android.os.Message
  • Used by Activity classes, Services and BroadcastReceivers
  • Asynchronous, loosely-coupled

11. Intents II

  • Can be explicit (you specify what should respond to your Intent)
  • Or implicit (the system decides how to handle it)

Then I showed screenshots of the SDK installation and went through building a quick app.

At one point I said that there needs to be a translator between Android and English. Each screen is handled by a class that extends “Activity” (why can’t they call it screen?) and instead of sending messages to each other or making requests, you send an Intent.

2011-10-18 CJUG Meeting

Gradle: Bringing Engineering Back to Builds

By No Fluff Just Stuff speaker Tim Berglund

Gradle. Another build tool? Come on! But before you say that, take a look at the one you are already using.

Whether your current tool is Make, Rake, Ant, or Maven, Gradle has a lot to offer. It leverages a strong object model like Maven, but a mutable, not predetermined one. Gradle relies on a directed acyclic graph (DAG) lifecycle like Maven, but one that can be customized. Gradle offers imperative build scripting when you need it (like Ant), but declarative build approaches by default (like Maven). In short, Gradle believes that conventions are great — as long as they are headed in the same direction you need to go. When you need to customize something in your build, your build tool should facilitate that with a smile, not a slap in the face. And customizations should be in a low-ceremony language like Groovy. Is all this too much to ask?

Gradle has received the attention of major open source efforts and has chalked up significant conversions by the Spring Integration, Hibernate, and Grails projects. What do these technology leaders see in this bold new build tool? They see not only a better way to build Java applications, but an extensive ecosystem of connecting to existing Ant and Maven build files while expanding the horizon of test, CI, and deployment automation in an easy manner. Let us take you on this same walk of discovery of the most innovative build tool you’ve ever seen’.

The Speaker:

Tim Berglund is a full-stack generalist and passionate teacher who loves coding, presenting, and working with people. He has recently been exploring non-relational data stores, continuous deployment, and how software architecture should resemble an ant colony. His firm, the August Technology Group, helps clients with product development, technology consulting, and technology upgrade projects atop the JVM.

Tim is a speaker internationally and on the No Fluff Just Stuff tour in the United States, and is co-president of the Denver Open Source User Group in the Denver area, co-author of the DZone Clojure RefCard, co-presenter of the best-selling O’Reilly Git Master Class, and co-author of a forthcoming series of ebooks on the next-generation build system, Gradle.

We will also give away a ticket to the Great Lakes Software Symposium, the No Fluff Just Stuff conference that will happen in Chicago November 11-13.

Time: 6:00, October 18th, 2011
Place: CME
20 South Wacker Drive
ULL-A Auditorium
Chicago IL, 60606

Click here to RSVP. RSVPs will close on Tuesday, October 18th at noon.

CME Employees, please contact Joshua Bennett to RSVP.

Java Web Frameworks

We have had a couple of interesting presentations at CJUG in the past few months.

In July we had a presentation on Play, which seems to be getting some traction.

In August, we had Igor Polevoy from Productive Edge talk about is new framework ActiveWeb. Like Play, Rails and Grails, it is full-stack. Last year he gave a presentation on ActiveJDBC, an ORM framework he started based on ActiveRecord. The mailing list gets a few dozen posts a week, so it looks like there is an active community of users and developers for it. He said that his company has been using ActiveWeb for a few clients, including a couple of Fortune 500 firms.

First off, it is nice to see that there are some Java projects coming out of Chicago. It is also nice to see that there are some Java web frameworks that are striving for the ease of use and completeness of Rails and Grails.

Image from CJUG website, assumed allowed under Fair Use.

CJUG Meeting: August 16: ActiveWeb Framework

The next meeting of the Chicago Java Users Group will be on August 15th at CME. Here is the post from the CJUG site:

Our next meeting will be August 16 at CME.

Chicago developer Igor Polevoy will speak on the ActiveWeb framework.

ActiveWeb is a full stack Java web framework. It includes all aspects of web development and especially promotes BDD/TDD. It allows to describe application behavior in tests before implementation. It also helps take developer productivity to a new level by refreshing new code in the application on the fly, eliminating compile/build/deploy cycle. In this session, learn to how to be more productive with ActiveJDBC and ActiveWeb.

Igor Polevoy has years of experience of building enterprise applications as a developer, an architect and a manager. He has been teaching various Java and Ruby related topics at the DePaul University for over 10 years. Igor is an author of open source projects ActiveJDBC and ActiveWeb.

Time: 6:00, August 16th, 2011 Place: CME 20 South Wacker Drive ULL-A Auditorium Chicago IL, 60606 map

You can find more info at http://blog.cjug.org/2011/08/cjug-august-2011-meeting.html

RSVPs will close on Tuesday, August 16th at noon.

CME Employees, please contact Joshua Bennett to RSVP.

CJUG Meeting: July 19: Play Framework

The next meeting of the Chicago Java Users Group will be on July 19th at CME. Here is the post from the CJUG site:

The next CJUG meeting will be July 19th at CME.

The speaker is Jeff Schwartz. He is the founder and Director of Mobile and Cloud Technologies at Chicago consulting firm NoNa, Inc, and co-chair of Mobile Mondays Chicago. He has over 15 years experience as a software developer.

The topic is the Play Framework: http://www.playframework.org/
It is a Java web framework that uses REST and convention over configuration. It is a stateless, asynchronous, full-stack, pure Java framework that aims to help web developers have more fun and be more productive.

Time: 6:00, July 19th, 2011
Place: CME
20 South Wacker Drive
ULL-A Auditorium
Chicago IL, 60606
map

To RSVP, please go to gathers.us.

CME Employees, please contact Joshua Bennett to RSVP.

Image from Play Framework website, assumed allowed under Fair Use.

 

 

CJUG June 21 Wrapup

Thanks to everyone who came to tonight’s meeting, to CME for hosting, and to Andrew Lee Rubinger for a great presentation.

You can find Andrew’s code at https://github.com/alrubinger, and his other links at http://about.me/alrubinger

As someone mentioned at the meeting, there is a JBoss User Group: http://www.meetup.com/ChicagoJBUG/

In the next few months, we have presentations scheduled on the Play Framework, the ActiveWeb framework, and JDK 7.

Now that I think about it, I should have asked him why Arquillian uses an alien for its logo.

Image from Arquillian website, assumed allowed under Fair Use.

CJUG Arquillian Meeting

The next CJUG meeting will be on June 21 at CME. Andrew Lee Rubinger from JBoss will talk about Arquillian.

The meeting will be at CME, who have been kind enough to host our meetings for the past year or so.

The RSVP page is on gathers.us. The text below is taken from that page.

Author Bio: Andrew Lee Rubinger – advocate for and speaker on testable enterprise Java development, author of “Enterprise JavaBeans 3.1” from O’Reilly Media. Member of the JBoss Application Server development team and technical lead of the ShrinkWrap project. Proudly employed by JBoss / Red Hat. http://about.me/alrubinger

Arquillian Abstract: In this session, Andrew Rubinger will address the missing link in enterprise Java development: simple, easy integration testing.

Unit tests and mock objects will only take you so far; the only answer that truly ensures that all components are playing nicely is a comprehensive integration suite. Unfortunately, writing integration tests has historically involved manual setup of a heavy, cumbersome test harness. That’s time lost, but it doesn’t have to be anymore.

In this session, Andrew will introduce Arquillian, a powerful container-oriented testing framework layered atop TestNG and JUnit. Arquillian manages your runtime, abstracting out deployment and allowing you to focus on real test logic.

We’ll cover:

  • Transparent container lifecycle management
  • Declarative deployments
  • Test enrichment (dependency injection into tests)
  • In-container test execution

Attend this talk to learn how the simplified component model of Java EE can be applied to testable development.

Time: 6:00, June 21st, 2011
Place: CME
20 South Wacker Drive
ULL-A Auditorium
Chicago IL, 60606

Image from Arquillian website, assumed allowed under Fair Use.

Upcoming CJUG Meetings

I am making some plans for some upcoming CJUG meetings.

I was at the Mongo DB Meetup and I gave a couple of guys my business card, but so far I have not heard anything. One guy said he could give a presentation on Netty.

I attended a presentation at the Chicago Groovy Group about the Play Framework, which actually uses Java more than Groovy. I think we might get him for July, which would be on the 19th.

The presentation for June 21 will be about Arquillian. According to the site, “Arquillian enables you to test your business logic in a remote or embedded container. Alternatively, it can deploy an archive to the container so the test can interact as a remote client.”

Image from Arquillian website, assumed allowed under Fair Use.

CJUG Meeting May 17: Java And R

On May 17 the Chicago Java Users Group will have a presentation by Cedrick Johnson on integrating Java and the R programming language.

There are currently several packages in R for integrating the two (rJava and RServe). This presentation focuses on using R to perform statistically “heavy” calculations and interaction within a Java environment (in this instance using JMS as the underlying message bus to pass messages from Java applications to the RServe instance). It is particularly useful in the financial domain, although there could be applications outside of the financial domain.

Mr. Johnson has over 10 years experience in technology, the past 8 years focused on financial markets (equity derivatives, fixed income). His focus has been on quantitative trading systems using Java, C# and R in various distributed, highly fault-tolerant environments for a former Big 5 investment bank and some of the leading market-making and small to midsize private asset management firms. He currently resides in Chicago as of 2008 and spends his spare time blogging about the fusion of technology and fixed income markets.

Time: 6:00, May 17th, 2011
Place: CME
20 South Wacker Drive
ULL-A Auditorium
Chicago IL, 60606
map

To RSVP, please go here.

CME Employees, please contact Joshua Bennett to RSVP.

Image from CJUG website, assumed allowed under Fair Use.