Steve On Java

Hacking Java, JavaFX, and Flash with Agility
  • rss
  • Home
  • NightHacking Tour
    • [Archive] NightHacking Europe – The Road to Devoxx
  • SvJugFX
  • JFXtras
    • JFXtras Individual CLA
    • JFXtras Corporate CLA
  • 2013 Travel Map
    • Let’s Meetup!
    • 2012 Travel Map
  • Contact

Celebrating Java 7 with 7 Reasons to Attend OSCON Java

steveonjava | July 7, 2011

OSCON Java is a new conference that I am helping to kick off as co-chair this July.  While there are plenty of conferences out there that you could attend, I am confident that this is the one you won’t want to miss.

To celebrate the Java 7 release, I put together 7 reasons why you should attend OSCON Java.  Also, make sure to use the 20% discount code of “OS11COM” when you register:

Register now

1. Come Celebrate the First New Java Release in Half a Decade!

The last major release of Java was Java 6, which came out 5 years ago on December 11, 2006. After only a year of the Sun acquisition, Oracle has already made a major Java release happen with another scheduled in a year’s time.

We have broad coverage of the Java 7 release with a keynote and technical session by Joe Darcy, and technical sessions on OpenJDK and Coin by Dalibor Topic and Stuart Marks. I have been pretty impressed with Stuart’s coverage of topics from a developer’s perspective and am looking forward to his talk myself. :)

2. Because Google Matters

Regardless of what you think about the Android lawsuit, I think the biggest detriment has been the lack of good content on Google technologies at Java conferences. We are an independent conference, so it allows us to bring content that you would otherwise not find, such as an exclusive keynote from Joshua Bloch and several mobile Android sessions to help you leverage your Java skills on modern devices.

3. You Think JVM Languages are Cool

It has been said that the crown jewel of the Java platform is the JVM, not the language. Java 7 has further solidified this with better support for dynamic languages. Come find out what is the latest and greatest on the alternative language front with a keynote and some meaty sessions from Martin Odersky, deep technical sessions on Groovy, Clojure, Scala, and other languages, and some bytecode hacking with Charles Nutter.

4. And You Wouldn’t Mind Hanging out with JVM language Authors for a Day…

On the Sunday before OSCON we are organizing a free JVM Languages Symposium that many of the speakers will be attending.  This is a great opportunity to hang out with JVM language authors and the movers and shakers in the industry in an informal unconference atmosphere.  Events like this are what I believe sets apart community-driven conferences from large corporate events, and provide a lot more value to the attendees than simply one-way content.  If you happen to be in the Portland area, you can drop by for this free event with no obligation to stay for OSCON.

5. Your Boss Won’t Let You Fly to Belgium

I travel to speak at different conferences around the world and I would have to say that the golden standard for Java conferences is Devoxx. They have an amazing venue — it is great to see your slides on a huge movie screen, and relaxing for attendees to take it in from nice, plush seats. They attract an international audience… not only Belgium, but Italy, France, Germany, and citizens of many of the other surrounding countries consider Devoxx their home conference. Even though Devoxx is a wildly successful conference, they still have a small-conference feel, run by a very tight knit conference committee that acts more like a user group than an organization. This makes the entire conference experience much more personalized.

OSCON Java has a lot of similarities with Devoxx. It has a small, enthusiastic program committee with folks who really care about Java technologies. We are also following the Devoxx model of recording and posting talks online afterwards, so even if you miss a great talk because you are in the room next door, you can always watch it online later. Finally, since we are an independent conference, you get the full experience of Java, Android, and other technologies that you would otherwise have to go to multiple conferences to see.

6. OSCON is a Pretty Sweet Conference as Well…


OSCON 2011

The O’Reilly OSCON conference has been underrepresented in the Java community, but is a pretty huge event in its own right.  They have some amazing content around emerging languages and mobile platforms.  Plus, you can get OSCON, OSCON Java, and OSCON Data all wrapped up in one neat package with the OSCON Superpass.

7. There is Only One Inaugural Year!


OSCON Java 2011

This is our first year putting on OSCON Java, so we are pulling out all the stops with the best speakers, tutorials, content, and events.  You will have a unique opportunity to participate in the creation of a new Java tradition, and a decade from now can brag to your friends about being a founding attendee of the biggest open-source Java conference in the world.

 

Share this:

  • Twitter
  • Google +1
  • More
  • Facebook
  • LinkedIn
  • Email
Comments
No Comments »
Categories
Android, Announcements, Events, JavaFX, Mobile, OSCON Java
Tags
Android, java 7, jvm languages, oscon, OSCON Java
Comments rss Comments rss
Trackback Trackback

Flash Capability Reporter Sample and Video

steveonjava | February 2, 2011

The folks at Marakana did a great job hosting the recent Flash Android event, as well as recording and publishing the talk. As a fellow user group leader, I can appreciate the hard work that went into preparing the video, including some fine editing and splicing by Max Walker (the presentation was not as flawless as he made it look!)

You can view the talk on the Marakana website, or here as an embedded video:

All the slides for the talk can be found on SlideShare: http://www.slideshare.net/steveonjava/beginning-android-flash-development

Flash Capability Reporter

Also, as promised I am going to start posting different samples from the book. The first of these is the Flash Capability Reporter. It is a simple application that displays your device characteristics in a scrolling text field.  Figure 1 shows a screenshot of the Capability Reporter in action.

Figure 1. Flash Capability Reporter running on the desktop

Read the rest of this entry »

 

Share this:

  • Twitter
  • Google +1
  • More
  • Facebook
  • LinkedIn
  • Email
Comments
No Comments »
Categories
AIR, Android, Events, Flash, Mobile
Tags
Android, Flash, sfandroid, Video
Comments rss Comments rss
Trackback Trackback

Beginning Flash at the SF Android UG

steveonjava | January 31, 2011

One of my coauthors on the upcoming Pro Android Flash title, Oswald Campesato, and I had the pleasure of speaking to the San Francisco Android User Group.  It was a packed audience with around 150 eager Android developers who wanted to hear how they could use Flash on their devices (they were a great audience).  Here is what some of them had to say about the meetup:

  • Alec Dara-Abrams

    Stephen and Oswald gave a very good over view of Flash development on Android. Like a number of other SF Android speakers, packing the hour or so with the right level of technical detail. Thanks to them also for being responsive to audience questions – not so easy I’d guess with 100+ people out there past the lighting for the video. I’m looking forward to following Stephen’s blog.
  • Drew Dara-Abrams

    Stephen and Oswald gave a good overview of the current state of Flash on Android. Unfortunately the Adobe tools and their book won’t be out until spring, but I appreciated all the working examples of code that Stephen demonstrated. I’ll definitely look for their book when it comes out.
  • Francisco Carretero

    Looks like an incredibly useful topic for android for giving android that push to the next level.

As I promised folks in the audience, here is a copy of the full presentation.  Lots of this information was added very recently from different chapters in our book, so it is definitely the latest and greatest source of information on what you can do with Flash on mobile devices:

Beginning Android Flash Development

I will be posting examples from the book on this blog over the next few weeks.  Please follow my blog if you are interested to see the latest examples of Flash Android capabilities.

http://www.sfandroid.org/events/15196582/
 

Share this:

  • Twitter
  • Google +1
  • More
  • Facebook
  • LinkedIn
  • Email
Comments
No Comments »
Categories
Android, Events, Flash, Mobile, Presentation
Tags
Android, Flash, Flex, sfandroid
Comments rss Comments rss
Trackback Trackback

Visage Android – Cleaner APIs, Cleaner UIs

steveonjava | January 13, 2011

I have been busily working away at getting Visage ready for developing Android applications. It is a great fit, because Android converts regular Java class files into its special class format, and the Visage compiler happens to generate Java class files. Also, Android is desperately in need of some TLC on their APIs (more on this in a future blog).

So why use Visage for coding Android applications? We do a yearly Hack-a-Thon event at my company (this year called the GXS Xathon). The winning application was written by Tim McNamara, one of my coworkers, and happened to be an Android application.  I decided to do a small port of his code to see if I could improve the maintainability using Visage.  Here is a screenshot of the application:

A base settings page for an application.  It uses a couple edit text fields, several lists, and takes advantage of the summary line to display the current values.  The original version included:

  • A Java PreferenceActivity class file
  • An XML UI layout descriptor
  • Another XML file for array resources

Believe it or not, this is the minimum necessary set of files to create the above screen.  In converting this to Visage, my goal was to get rid of a lot of the redundancy and glue code needed to work across 3 different files.

The end results of the conversion were as follows:

FilesLinesCharacters
Raw Android1 Java, 2 XML2087413
Visage Android1 Visage903640

While the numbers are impressive, what really matters is the code.

Here is the final Visage code for the settings page:

public class Settings extends PreferenceActivity {
    var senderPref:ListPreference;
    var receiverPref:ListPreference;
    var statusPref:ListPreference;
    var pollingPref:ListPreference;
    var passwordPref:EditTextPreference;
    var usernamePref:EditTextPreference;

    override var screen = PreferenceScreen { // 1
        preferences: [
            PreferenceCategory { // 1
                "Preferences" // 2
                preferences: [
                    usernamePref = EditTextPreference { // 1...
                        "Username" // 2
                        key: "usernamePref"
                        summary: bind if (usernamePref.text == "") "Currently undefined" else "Current value: {usernamePref.text}" // 3
                    }
                    passwordPref = EditTextPreference {
                        "Password"
                        key: "passwordPref"
                        summary: bind passwordPref.text.replaceAll(".", "*"); // 3
                    }
                    pollingPref = ListPreference {
                        "Polling Interval"
                        key: "pollingPref"
                        defaultValue: "60000"
                        entries: ["30 seconds", "1 minute", "5 minutes", "10 minutes", "15 minutes", "30 minutes", "1 hour"] // 4
                        entryValues: ["30000", "60000", "300000", "600000", "900000", "1800000", "3600000"] // 4
                        summary: bind pollingPref.entry
                    }
                ]
            }
            PreferenceCategory {
                "Filter"
                def CLEAR = "\{Clear Filter\}"; // 5
                preferences: [
                    statusPref = ListPreference {
                        def status = [CLEAR, "HEALTHY", "WARNING", "DOWN"]; // 5
                        "Filter By Status"
                        key: "statusPref"
                        defaultValue: CLEAR
                        entries: status
                        entryValues: status
                        summary: bind if (statusPref.value == CLEAR) "Select a status to filter on." else "Current value: {statusPref.value}"
                    }
                    senderPref = ListPreference {
                        def senders = [CLEAR, for (s in ConnectionService.getSenderNameList()) s];
                        "Filter By Sender"
                        key: "senderPref"
                        defaultValue: CLEAR
                        entries: senders
                        entryValues: senders
                        summary: bind if (senderPref.value == CLEAR) "Select a sender to filter on." else "Current value: {senderPref.value}"
                    }
                    receiverPref = ListPreference {
                        def receivers = [CLEAR, for (r in ConnectionService.getReceiverNameList()) r];
                        "Filter By Receiver"
                        key: "receiverPref"
                        defaultValue: CLEAR
                        entries: receivers
                        entryValues: receivers
                        summary: bind if (receiverPref.value == CLEAR) "Select a receiver to filter on." else "Current value: {receiverPref.value}"
                    }
                ]
            }
        ]
    }
}

While I am not going to include the full original Android code (200 lines is a lot of code!), here are some of the changes that made the Visage version much more succinct (the below bullets match the numbers in the comments above):

  1. The Visage object literal syntax is more concise than XML and just as readable!
  2. Default properties make the object literal syntax even more concise
  3. One bind call can replace dozens of lines of code to setup and instantiate event listeners
  4. No need to declare arrays in a separate file (yes, we have real data types)
  5. This is a real programming language, so you can use constants and variables to repeat arguments (try doing that in XML!)

All of the technology here is real, but getting a completed set of APIs that covers all of the things you can accomplish in Android is still a work in progress.

If you are interested in helping out with this, please join the Visage Developers mailing list.  I will be posting instructions there soon on how to access the bleeding edge Android Visage repository, and contribute to the growing set of Android APIs.

 

Share this:

  • Twitter
  • Google +1
  • More
  • Facebook
  • LinkedIn
  • Email
Comments
21 Comments »
Categories
Android, JavaFX, Visage
Tags
Android, api, ui, Visage
Comments rss Comments rss
Trackback Trackback

Flash On… Meetup Premiere

steveonjava | November 9, 2010

I am pleased to announce the Flash On… user group that I am kicking off together with Keith Sutton, Oswald Campesato, and Justin Webb.  The focus is Flash on consumer devices from Mobile to Tablet to TV.

Oswald and I will be doing the inaugural presentation on Flash mobile technologies this evening.  You can catch the live stream on Adobe Connect here:

http://experts.na3.acrobat.com/flashondevices/
(Stream starts at 7PM PST!)

For those of you who haven’t been following the Flash Mobile headlines, there have been a lot of great announcements that make this platform worth developing for:

Mobile

  • With the AIR 2.5 release, Android devices are fully supported
  • Apple has relaxed their license to allow Flash-based applications in the App Store
  • Similar announcements have come from other vendors such as Palm, Windows 7, and others

TV

  • Google TV prominently features Flash support
  • Adobe also announced AIR support for Samsung devices such as Smart TVs and Blu-ray Players

Tablet

  • Blackberry announced Adobe AIR support for their Playbook Tablet

Here is an excerpt from the Adobe Max 2010 keynote that shows off the Blackberry Playbook Tablet running Flash:

When put together, Flash is well poised to become the defacto standard for building rich user experiences across different screens.

We will cover all this and more in our presentation tonight.  As usual, we will have high production values for the talk with side-by-side presenter video and slides plus a chat area to ask questions.  I hope to see you there!

 

Share this:

  • Twitter
  • Google +1
  • More
  • Facebook
  • LinkedIn
  • Email
Comments
No Comments »
Categories
Android, Announcements, Flash, Presentation
Tags
Flash, meetup, Mobile
Comments rss Comments rss
Trackback Trackback

Flash Android Development at Code Camp

steveonjava | October 10, 2010

I haven’t talked much about Flash technology on my blog, but we use quite a bit of Flash/Flex for developing enterprise apps at my day job.  With the Open Screen Project from Adobe making Flash available on mobile and embedded devices, Flash has become a viable cross-platform toolkit fulfilling a lot of what I hoped JavaFX Mobile would become.

Yesterday at Silicon Valley Code Camp I did a talk on Flash Android development to a packed room.  About half the audience were Flash/Flex users, with a smaller, but very vocal, contingent of Android developers.  The goal of the talk was to help get folks off the ground with Flash Mobile development using the Android SDK in combination with Flash CS5 or Flash Builder 4.

The examples for the talk came from the upcoming Pro Android Flash book that I am writing for Apress together with Oswald Campesato and Dean Iverson.  This book will be coming out around Spring 2011, but there is already quite a lot of good content that we have finished.  The responses I got from attendees of the talk were extremely positive, but check out the presentation and see for yourself:

Android Flash Development

Download the PDF

As I continue working on the book, I plan to increase the coverage on Flash and Flex Mobile in this blog.  It is a slight shift, but consistent with my philosophy around promoting rich client technologies, and won’t decrease my focus on JavaFX.  Hopefully you find some value in this as a technology that integrates well with Java and opens up some new mobile deployment capabilities.

 

Share this:

  • Twitter
  • Google +1
  • More
  • Facebook
  • LinkedIn
  • Email
Comments
3 Comments »
Categories
Android, Events, Flash, Mobile, Presentation
Tags
Android, code camp, Flash, Flex, Mobile
Comments rss Comments rss
Trackback Trackback

  • Travel Map - Let's Meetup

Publications

  

Affiliations

Awards

2009/2011 JavaOne Rock Star!

Disclaimer

Views and opinions expressed here are all my fault... complain to me, not my employer. :)
rss Comments rss valid xhtml 1.1 design by jide powered by Wordpress get firefox
loading Cancel
Post was not sent - check your email addresses!
Email check failed, please try again
Sorry, your blog cannot share posts by email.