Wednesday, December 7, 2011

Dart in December

The first Wednesday in December, our last meetup of the year. It was a packed house.

This month we got a look at Dart, a new web programming language, from two Google engineers. Seth Ladd is a web engineer, father, husband and is currently a Developer Advocate at Google.  He produced Aloha on Rails, the Hawaii Ruby on Rails and Web Development Conference and New Game, the conference for HTML5 game developers.  Way back, he wrote Expert Spring MVC book.  Seth was lucky enough to help release Angry Birds for the web.  He is current on the board for the Academy of Interactive Arts and SciencesSteve Messick works on the Dart Editor at Google.

Think of Dart as web programming with "batteries included." It's a new language, with new libraries, even its own VM, but it's based on a simple and familiar OOP model that takes almost no time to learn. It's in an early stage, open source technology preview so you can still provide feedback and affect the direction as it develops.

So why a new language? The web has some very good things going for it. Small to medium apps are easy to develop, it's platform independent with no installation required. It supports fast, incremental development, and it's everywhere, on every computer, every device. That's quite an impressive feat! What's so difficult? Writing large programs is hard. Very large program structure, libraries, the tools to see what's happening inside a running program is simply not possible. Consider two books: the very heavy volume "Javascript" and the thin, almost pamphlet-like "Javascript: The Good Parts." Any web developer can tell you, a lot of cruft has built up since the mid 90s.

Dart is a new approach to building structured web apps. It's not intended to compete with JavaScript, but to fill the vacuum evidenced by fragmented mobile platforms. Structured, high performance, high fidelity, feature-rich apps.

Dart is a simple, unsurprising OO language with typical classes, single inheritance, and interfaces -- everything you've seen before. The most unique feature is its optional typing. Developers can check types at compile time or runtime through an assertion-like method. It also has optional static typing, lexical scoping, and is single-threaded.

Wait, single threaded? Not to worry, it uses isolates similar to Erlang. Each isolate is conceptually a process and they can communicate through a mailbox system. With isolates, you can support concurrent execution with a single-threaded language. In the browser, UI elements are lightweight isolates and heavyweight isolates manifest themselves as HTML5 web workers.

There is a much-needed DOM overhaul loosely based on HTML5 DOM, but with lots of cleanup. Gone is the XML legacy. It supports type-checking and is built using Dart lists, which makes it terse.

Dart compiles to its own VM or to JavaScript. The tools can also take a snapshot of a running Dart program, serialize it, and transmit it to another VM. Obviously this could be used to cache programs for rapid startup. Receiving that heap snapshot and running it does require a Dart VM.

Seth Ladd and Steve Messick
The Dart editor is based an Eclipse RPC program. What you think about having code completion in a language bound to your web browser?  It is in technology preview mode and there's lots of work to do yet. The current focus is getting the performance up to par with the far more mature traditional web technologies, but they are looking for feedback as far as what to work on next. Should they have reflection support? Rest arguments? Enum? Pattern matching? What's the best way to integrate with other browsers? You can provide your feedback at the Dart web site and discussion groups.

The Dart Web site (www.dartlang.org) contains the language spec, tutorials, and prebuilt binaries.

The Dart Project site (dart.googlecode.com) is where you can get source code, libraries, and sample apps.

You can watch the talk here

Update: Seth Ladd has provided the slides at http://www.dartlang.org/slides/2011/12/gtug/ and written a quick tour of the SDK on his blog at http://blog.sethladd.com/2012/01/dart-sdk-quick-tour.html

Wednesday, June 1, 2011

Honeycomb Highlights

Chet Haas and Romaine Guy gave us a reprise of their I/O talk, "Honeycomb Highlights" which was a good introduction to the Honeycomb UI, OS, and SDK, and links to deeper information on each.

The event was livestreamed by Jason Thrasher,
who is working to streamline the process on our YouTube channel. It went well, and soon we'll be able to livestream GTUG meetings from around the world, easily.

Here's some links:

Other related I/O talks of note:


Thanks, Chet and Romaine!

Monday, May 16, 2011

Google I/O 2011: GTUG BarCamp


It certainly was Google I/O.

For the GTUG organizers who gathered from around the world, even more so.

The first thing that greeted us was a big red arrow at Moscone Center, which happened to be exactly what I was looking for on Google Maps. This was Tuesday, opening morning.

Our adventure at I/O began two days earlier at the Sunday GTUG BarCamp, an "unconference" for GTUG organizers on the subject of... well an unconference can cover a wide variety of topics, with no set agenda. It's exactly like a conference, except the opposite.

The rules of an unconference are:
  1. The people who come are the best people who could have come.
  2. Whatever happens is the only thing that could have happened.
  3. It starts when it starts.
  4. It's over when it's over.
  5. The Law of Two Feet: If you want to go to a different session, get up and go.
We started by making up session topics right then and there, and writing them all on big colorful sticky notes. These were gathered up and distributed on a board, until we had four periods of five sessions each.

An unconference doesn't have a leader so much as a guy who moves the sticky notes around. Everything is done more or less by consensus and ad hoc. Once we had our session schedule, we broke up into groups and began discussions.

You can find all our notes on the GTUG Wiki BarCamp Page.

That's how we came up with our session list:

1A Broadcasting to Distributed Communities
1B Fragmentation and Focus
1C Running a Startup on App Engine
1D Converting Members to Presenters
1Z Getting to Know Your GTUG

2A Global Hackathon
2B Creating a Nonprofit
2C Mobile Development in the (near) Future
2D How to Present According to Batman
2Z How to Make Your Group Delicious

3A GTUG Magazine
3B How to Create a Playground for Cats
3C Writing Code Without Face Time
3D Development Experiences
3Z Tools for GTUG Managers

4A Google Involvement in GTUGs
4B Developers and Designers Collaborate
4C Android for Consumers
4Z Bootcamps and Other Hands-on Events

What seemed to excite people most was Tools for GTUG Managers, and we spent much of the time since brainstorming ideas on that topic. From geolocated android applications to a web clearinghouse, and global collaboration between the different GTUG chapters. Hopefully we'll have more to announce soon. Until then, so long from GTUG!



Monday, December 6, 2010

Meetup on Google TV in Google Campus.

Agenda. Photo by Paul Masquelier.

This meetup on December 1 was with an agenda shown in the picture to the left. Unfortunately, as happens to the best of us, it was not possible to set up the demo in time, and this paved the way for a substantially longer, and livelier, Q & A session after the presentation.

Before the main presentation, there were several announcements:
  1. A Winter 2011 course at Foothill College on Application Software Development with AJAX by Elaine Haight
  2. A Winter 2011 course at Foothill College on Using Cascading Style Sheets for Design by Newton Chan
  3. Job openings at Logitech by Pat Ransil
  4. Job openings at Appirio by Iein Valdez
Andres Ferrate and Daniels Lee, Developer Advocates in Google, discussed salient features of Google TV by showing several Google TV applications, built using the Android SDK, scheduled to be released in 1Q 2011:

Andres Ferrate
Andres Ferrate. Photo by Paul Masquelier.
Daniels Lee
Daniels Lee. Photo by Paul Masquelier.
  1. YouTube
  2. Chrome
  3. Flixster
  4. Chow
  5. Cartoon Network
  6. MeeGenius
  7. Net-a-porter
  8. Vimeo
In these days, where several HTML5 enthusiasts advocate the use of HTML5, CSS3, JavaScript combination for creating rich Internet applications, why Android SDK for Google TV applications? It must be that the HTML5-CSS3-JavaScript combination comes up short somehow - ? - in creating Google TV applications.

Several interesting aspects of man-machine interface design were also mentioned:
  1. Leanback experience, where the TV viewer would have no reason to lean forward, and can operate the contents on the TV screen by leaning back on a couch.
  2. 10% minimum padding is recommended in the use of the TV screen real estate
  3. An aspect ratio of 16:9 is recommended for effective viewing.
A final interesting part of the evening was the use of software called JUG Spinner Wheel to select winners of raffle of 4 Logitech Revue devices from among the attendees of the meetup. After all, what is a technology meetup if technology is not made use of to the hilt? The attendees' list must have been automatically captured by the JUG Spinner Wheel!

Overall, a very satisfactory introduction to Google TV and its applications.

Thursday, October 7, 2010

GTUG Meetup on Google Apps Script: A Review.

Cross-posted from The Browser Platform, Clouds & Computing


This meeting on 6 October 2010 was primarily about Google Apps Script by Martin Omander, Developer Advocate at Google.

After a greeting by Van Riper, lead organizer of the Silicon Valley GTUG Meetup Group, the following initial announcements were made.
  1. Bess Ho gave out the discount code for Paypal X Innovate conference; also mentioned games design, Oct 12.
  2. Kevin Nilson talked about the upcoming Silicon Valley Code Camp, October 9-10
  3. Wesley Chun, the chief organizer of the Google tracks in the camp, briefed the audience on what is to come in those tracks.
The main talk began by showing the home page of Google Apps Script:
Subsequently, Martin went through examples of different functions created by Google and others in the Script Gallery, e.g., =weather(), =getTweets(). He also went through a simple mail merge example.

The message was that, basically, if you were familiar with JavaScript and related concepts of HTML, CSS, etc., you could create an application that made use of information from across several Google products such as Calendar, Doc List, etc. and 3rd party services. You could create scripts that made use of SOAP and REST services within the script.


When asked what kinds of debugging facilities existed, he showed the debug icon in the script editor window, but it wouldn't work for some reason.

If you submitted your own application or scripts to the gallery, then others could make use of your submitted functionality through an URL.

Fusion table support is not yet available.
Is there a published roadmap? No. Martin hoped they will get to it some day.
Can you access spreadsheet visualization application? Martin didn't know.
Google Apps Script T-shirt were given away to those that had done subatantial Google Apps Script implementations. Recipients:
  1. ourprojectteam.com, creating a project management application
  2. Karl Pohl, an independent software engineer, who has created stock portfolio analysis application using Google Apps Script. At the moment, he wants to keep the application for himself, thank you very much, as he has been able to extract 'good' money from the stock market using his Google Apps Script implementation.
Paul Masquelier has uploaded the photographs that were taken at the event. 

Overall, a very good introduction to the subject matter of Google Apps Script.

Saturday, August 22, 2009

GTUG Campout and Beyond



Kevin Nilson submitted this excellent guest post about GTUG Campout to the Google Code Blog. I won't repeat everything he said again here. If you do nothing else, you should at least see the sketches, photos and video from the event and the San Jose Mercury News Article about camp. Needless to say, the event was a tremendous success and you can expect it to become an annual summer event for the Silicon Valley GTUG going forward.

CodeCamp at FootHill College. Click Here for Details and RegistrationKevin and I are now feverishly working on plans for Silicon Valley Code Camp at Foothill College on October 3-4, 2009. This will be the fourth annual Code Camp. Silicon Valley GTUG is a Community Sponsor of the camp again this year. We had more than 700 developers attend last year's camp and this one is shaping up to be even bigger and better. Attendance is FREE, but, the space and the sponsorship funds do have limits. So, I recommend signing up sooner than later because registration may be capped at some point.

On the future meetings front, we have one of the main members of the Guice team, Jesse Wilson, coming to present at our September Meeting. At our November Meeting, the topic will be Google Health. We will have an overview of what Google Health is plus several related application demos including two Google Wave applications created during GTUG Campout: Chief Medical Officer and Patient Aware Wave. No specific plans for October or December yet, but, you can always contact Kevin Nilson or Van Riper to suggest a topic. Suggestions that include speaker recommendations along with speaker contact info are more likely to be realized.

That's All Folks!

Saturday, May 9, 2009

GTUG Party in San Francisco on May 26th

Google and the Silicon Valley GTUG are sponsoring this party in San Francisco for Google Technology enthusiasts on the night before Google I/O officially kicks off. People arriving early for the conference and the local members of Silicon Valley GTUG are invited to this party. For those interested in presenting, the room will be setup to allow for some low key lightning talks throughout the evening.

Although this is a free event open to the public, the party space at Google's San Francisco office can hold a maximum of 200 people. Please register in advance to reserve your spot at this party. If you are interested in giving a lightning talk that night, please add yourself to the Lightning Talk List AFTER you have registered through the SV-GTUG Meetup site for the party. Thanks!