Saturday and Sunday October 3rd and 4th, 2009
Forgot Password?





Sessions
Sort by:                 
"Best Practice" in iPhone SDK App Design
Beginner
Wiki Here
9:45 AM Saturday   |   Room 8338
Beginner
A mixture of presentation, demos, hand-on session covering basics of Xcode, Interface Builder, Objective-C, Cocoa Touch framework, iphone UI and app design. Welcome family team where kids can involved in content creation. Prepare to bring laptop installed with the latest iPhone SDK and testing device. Consider bringing USB key to copy sample codes and files.
"Hello, World" in Verilog
Beginner
Wiki Here
3:30 PM Sunday   |   Room 3106
Beginner

In this introduction to Verilog "hello, world" tutorial you will learn how to compile, install, and run Verilog programs using the Xilinx Verilog compiler and the Baseboard4 FPGA development board.

The class is divided up into two one-hour sessions. The required equipment for the class is a laptop computer (Linux or Windows) with an Ethernet or WiFi interface and an available USB port. The FPGA board is the Baseboard4, which is available locally at Anchor Electronics in Santa Clara or at the vendor's web site, http://www.demandperipherals.com.

In the first session you will visit the Xilinx web site in order to get a registration ID allowing you to download, install and then use their free Verilog compiler.

The second session is a lab exercise in which you will be introduced to "user constraints files" or UCF and some Verilog code. The UCF relates the hardware pin names to their equivalent Verilog names. We will then look at the sample Verilog code where the relationship between the UCF and the Verilog code will become apparent. Next you will compile, download, and test the counter program which increments the LEDs on the Baseboard4. As a final test of your mastery of the build process and beginning understanding of Verilog code you'll be asked to convert the program to one which decrements (rather than increments) the LED count.

These sessions won't teach you Verilog any more than the the original "Hello, World!" program taught you C, but you'll leave with a working tool set and an FPGA board that you know how to program.

(CANCELLED) Dynamic Languages & Web Frameworks in GlassFish
Intermediate
Wiki Here
1:15 PM Saturday   |   Room 4204
Intermediate
Dynamic languages such as JRuby and Groovy are increasingly playing an important role in the web these days. The associated frameworks such as Rails and Grails are gaining importance because of the agility provided by them.

The GlassFish project provides an easy-to-use and robust development and deployment platform for hosting these web applications. It also enables the various languages to leverage the investment in your existing Java Platform, Enterprise Edition (Java EE platform) infrastructure. This session gives an overview of various Dynamic Languages and associated Web frameworks that can be used on the GlassFish project.

It starts with a brief introduction to JRuby and details on how the GlassFish project provides a robust development and deployment platform for Rails, Merb, Sinatra and other similar applications without pain. As a basis for further discussion, this presentation shows the complete lifycycle for JRuby-on-Rails applications on GlassFish v2 and v3. It discusses the various development options provided by GlassFish v3, demonstrates how popular Rails applications can be easily deployed on GlassFish without any modification, and shows how v3 Gem can be used as an effective alternative to WEBrick and Mongrel. It also demonstrates debugging of Rails applications using NetBeans IDE. For enterprise users, it shows how JMX and other mechanisms can be used to monitor Rails applications.

It also talks in detail about the Groovy/Grails and Python/Django development and deployment models in context of GlassFish v3. By following the simple deployment steps the presentation shows, developers will be able to deploy their existing web applications on the GlassFish project.The session also describes the known limitations and workarounds for each of them.

The talk will show a working sample created in different frameworks and deployed on GlassFish v3. The demo will show how different features of the underlying GlassFish runtime are easily accessible to the frameworks running on top of it.
(Kevin Nilson Pinch Hitting) Google Data APIs
Intermediate
Wiki Here
9:15 AM Sunday   |   Room 8338
Intermediate
An introduction to the family of Google Data APIs. The Google Data API Protocol provides a REST-inspired system for reading, writing, and modifying information on the web. Many services at Google provide a Google Data API, including YouTube, Blogger, Picasa Web Albums, Google Calendar, and Google Analytics. The protocol currently supports two primary modes for information representation and access: Atom/AtomPub and JSON. Google also provides client libraries for easy programmability in Java, JavaScript, .NET, Python, PHP, and Objective-C. http://code.google.com/apis/gdata
“Embellish Your Pictures”- Build an Application for an Android Phone
Intermediate
Wiki Here
5:15 PM Saturday   |   Room Hearthside Lounge
Intermediate

Google's Android mobile phone software platform is powering the next generation of smart mobile phones, such as the T-Mobile G1™ and myTouch 3G™. Android provides developers a new way to develop unique and creative mobile applications.


In this session, you will learn how to create a complete Android application from scratch using many of the Android built-in features. You will learn how to:


  • o Create simple user interface screen using XML
  • o Create an Android Activity
  • o Create an Intent and start an Activity using that Intent
  • o Retrieve data from the Intent
  • o Add Buttons functionality to the Button click callback
  • o Pick a picture from the Android Gallery
  • o Create A Custom View
  • o Add and use your own fonts
  • o Create a menu using an XML file
  • o Respond to menu item selection
  • o Scale an image
  • o Overlay images and text on the selected picture, or “Mbellish” it
  • o Save an “Mbellished” image to the media store
  • o Send an “Mbellished” image via MMS or email
  • o Have a lot of fun if you love programming and mobile apps!

Pre-requisites: Java programming knowledge. Prior knowledge of Android is desirable, but not required.
0 to 60 with Regular Expressions in 75 minutes
Beginner
Wiki Here
3:45 PM Saturday   |   Room 8338
Beginner
Regular expressions are an extremely powerful tool for manipulating and analyzing text. They are now standard features in a wide range of languages and popular tools, including Perl, Python, Ruby, Java, JavaScript, the .NET framework, PHP, and MySQL. Web servers such as Apache and IIS7 use them for URL rewriting. You can find them in tools and technologies as diverse as grep and egrep to Visual Studio. This talk will get you up and running with regular expressions. The demos will be using the .NET framework's flavor of regular expressions. However, since the .NET regular expressions like most regular expression libraries are Perl Compatible, the syntax presented should apply to a wide range of regular expression packages. The talk will be divided into two parts. The first part will be discussing Regular Expressions as a language and their syntax. The second will discuss the practical use of regular expressions in the .NET language using the regex library, testing, and other practical considerations.
a briefing on itemscript: a system for building loosely-coupled declarative applications using JSON
Intermediate
Wiki Here
2:15 PM Sunday   |   Room 4301
Intermediate
Itemscript is a set of standards and tools for building declarative JSON applications and working with JSON data.

Itemscript is a JSON schema definition language. Itemscript JAM (JSON application markup) is a declarative provisioning language based on Itemscript. The Item Lens is a Javascript animator for Itemscript JAM, and the Item Store is a simple JSON data store.

This presentation introduces the Itemscript system and philosophy, the Itemscript JAM language, and the Item Lens animator.

We'll share what we've learned about collaborative, iterative development using the declarative Itemscript system.

Itemscript can be adopted to enrich or document existing applications. It can also be used to describe a loosely coupled application model that's dynamic, with hot swappable components.

We'll demonstrate Item Hash, a rich web application built using the Item Lens (built on GWT) and the Item Store (built on Apache Derby). We'll share what we've learned about iterative development with itemscript.

Of interest to: Web developers looking for a declarative language for AJAX applications; Java & GWT developers looking for a way to build dynamic applications; developers working with JSON looking for ideas on how to go beyond the capabilities of basic JSON.

Presentation slides are at http://www.slideshare.net/itemscript/itemscript-at-silicon-valley-code-camp
A First Look at Scala on Google App Engine
Beginner
Wiki Here
5:15 PM Saturday   |   Room 3525   |   Cloud Computing (Saturday) Track
Beginner
GAE is a great Scala environment, especially since its coding patterns are pushing the programmer to do functional oriented programming. In this technical talk we will discuss using Scala In Google App Engine, we’ll go through using Scala along with:
  • * GAE’s basic services
  • * Java Data Objects (JDO) – GAE’s interface to the BigTable based Datastore. How to use Scala syntax for JDO annotation and class declaration
  • * Google Web Toolkit (GWT) – interfacing with GWT Java only garden
  • * ANT – loosing IDE dependency, compiling/running your Scala app from the command line without Eclipse’s Plugins
  • * Discuss what you cannot do with Scala
A Hands-On Overview of the Semantic Web
Intermediate
Wiki Here
5:15 PM Saturday   |   Room 4201
Intermediate
The Semantic Web is in its infancy but shows great promise for data and knowledge interchange. The Semantic Web is based on several new technologies, including RDF, RDFS, and OWL. This talk gives an overview of the Semantic Web and its associated technologies with live demonstrations. Attendees can go to a companion web site and run the demonstrations themselves during the talk.
Absorbing Scala into Java Ecosystem
Beginner
Wiki Here
11:00 AM Saturday   |   Room 1401
Beginner

Scala runs on the JVM, can use and be used by Java code almost transparently. Its Java speed and focus on concurrency well position it for demanding server side applications.

This session is for those who consider using Scala in their existing Java projects. We’ll discuss how to smoothly integrate Scala into an existing Java build, testing, development and runtime systems.

In this session we will talk about how to deal with the learning curve, IDE integrations and the peopleware aspects of introducing Scala to your organization.

The session will include examples and anecdotes from the LinkedIn teams who currently use Scala in production.

Active Directory Programming for Developers
Intermediate
Wiki Here
1:15 PM Saturday   |   Room 1401
Intermediate
Learn how to use .Net to program against Active Directory. Active Directory is being found in businesses large and small, however very few developers understand Active Directory well enough to leverage its capabilities. You’ve spent hundreds of hours learning SQL, now it’s time to spend an hour learning how to use Active Directory. Use .Net 2.0 and .Net 3.5 to connect to any LDAP server (including Active Directory) and manage users, groups, and OU’s. Authenticate your users with their existing accounts already found in Active Directory. Learn CRUD operations in LDAP, learn how to quickly find the objects you need, and learn how to do it right.
Agile 101
Beginner
Wiki Here
9:45 AM Saturday   |   Room 3525   |   Agile Track
Beginner
Agile software development has crossed the chasm and become a mainstream best practice. Microsoft, Google, Yahoo, and IBM all do agile development, as do scores of fast-moving start-up companies. Businesses like agile because it delivers more value in less time. Engineers enjoy the opportunity to craft high quality code that they can be proud of.

This workshop examines agile methods, uncovering how, why, and when they work. We will avoid the preachy and focus on the practical, sharing stories and lessons from real projects. You will hear what worked and what didn't.

You will learn how and why all of the agile methodologies, including Extreme Programming (XP) and Scrum, are built upon the same four pillars:
- Frequent delivery of releasable software
- Empowerment of individuals and teams
- Continuous collaboration between developers, business people, and customers
- Responsiveness to change

Participants will walk out with an understanding of what agile methods are and will be prepared to evaluate how agile principles and practices might fit into their existing environment in order to:
- Create software that is more valuable
- Increase quality and reduce defects
- Increase responsiveness to changing business needs
- Decrease time to market
- Mitigate risk
- Improve morale and retention

Agile: Inspect and Adapt
Beginner
WetPaint Wiki
1:15 PM Saturday   |   Room Hearthside Lounge   |   Agile Track
Beginner
Updated from the popular 2008 session! Hear the nitty-gritty day-to-day details about how one development group became Agile by incrementally adopting various practices, inspecting them to see what worked, and changing things that didn't. You'll see pictures of the team's physical environment (cards, charts, seating, etc.), along with how an "iteration" is run. Find out how the Agile success spread throughout the company and how each team adopted and adapted the processes to fit their particular needs. Come hear the specifics about what worked, what didn't work, and what we'd change if we had to do it again.
Ajax Enabled JSF - Oracle ADF Faces Primer
Beginner
Wiki Here
3:45 PM Saturday   |   Room 4220   |   Oracle Fusion Middleware Track
Beginner
Oracle ADF Faces is a set of over 150 JSF components with built-in Ajax functionality and a robust underlying implementations. This session will review the various components the framework offers including Graphs, maps, Hierarchical Viewer and a host of other components. We'll also demonstrate key framework capabilities such as partial page rendering, drag and drop, windowing, menus, skinning, and more.
All about the Current and Future Trends in Comet
Intermediate
Wiki Here
2:30 PM Saturday   |   Room 5501   |   JavaScript Track
Intermediate
Kevin Nilson (CometD Innovator) and Michael Carter (Orbited Creator) will talk about Comet (Reverse-Ajax) covering topics such as:
  • - Comet's past
  • - Frameworks and Tools available today
  • - Upcoming Advances in Comet
Comet Provides the Ability for data to be pushed from the server-side to the browser.
App Engine 101
Intermediate
Wiki Here
1:00 PM Sunday   |   Room 8338
Intermediate
Introductory session on Google App Engine, Google's service for deploying Python- or Java-based web applications to Google's scalable infrastructure. I'll take you through a live demonstration of building a real-world Stack Overflow-like application from scratch, touching on the various services of App Engine such as the scalable datastore, user authentication, and task queues, and by the end of the session, we'll have a fully functional web app that can be deployed. If you're new to App Engine and/or want to see what you can build with App Engine with a little know-how and some spare time, this session is for you!
Appcelerator Titanium - Mobile for the Rest of Us
Beginner
Wiki Here
10:30 AM Sunday   |   Room 4218
Beginner
Appcelerator's CTO, Nolan Wright, will discuss how Appcelerator's Titanium platform empowers Web developers to take their existing Web skill sets and build fully native applications for both iPhone and Android. Developers without knowledge of Objective-C or Java -- the languages traditionally used to code iPhone and Android apps -- can still create native apps quickly and easily using the JavaScript, HTML and CSS knowledge they already have. Lots of demos and real-world examples to be shared...
Application Architectures for Adobe Flex Framework
Advanced
Wiki Here
5:15 PM Saturday   |   Room 3106
Advanced
This session explores the application architecture options for building applications using Adobe's Flex Framework. Although choosing the right architecture can be something of an art, science and religion it should fundamentally start with an understanding your requirements and what is available. Over the past two years a number of 'micro-architectures' have been created for Flex including Cairngorm, PureMVC, Mate, Swiz and others. We shall take a comparative look at these and discuss the relative advantages and disadvantages.
Asynchronous Web Services
Intermediate
Wiki Here
9:45 AM Saturday   |   Room 3106   |   Oracle Fusion Middleware Track
Intermediate
This presentation describes all the aspects of asynchrony in web services. JAX-WS specification describes client side asynchrony API that can be used to call any synchronous service in an asynchronous way. This scheme works for simple cases where service operation does not take long enough to break the http connection because of timeouts. A more useful asynchrony is achieved by making the operation asynchronous at the server side. This presentation details how to implement such a service and how to develop client applications that can call such asynchronous services. WS-Addressing is the key specification for the correlation of asynchronous request and response. Asynchronous services add new challenges in enforcing the security policies and marking the transactional boundaries. This presentation will cover these problems and the possible solutions.
Avoiding the Knowledge Transfer Bottleneck
Beginner
Wiki Here
2:30 PM Saturday   |   Room 4218
Beginner
In software development there are many ways to transfer the knowledge about how to build a product to the people who do the actual building. Production can be severely hampered, however, if that knowledge is being produced more rapidly than it can be consumed. This is the knowledge transfer bottleneck.

In this hands-on workshop, participants experience three different ways of transferring knowledge in a production environment. The product, in this case, is a paper airplane of unusual design. The idea is to try different ways of transferring the knowledge about how to build the airplane from the “chief designer” to the production workers, and to compare the relative productivity of the different methods.

This session is designed to help you discover and avoid the knowledge transfer bottlenecks in your own development process.
Befriending Lambda Expressions
Intermediate
Wiki Here
1:00 PM Sunday   |   Room 4201
Intermediate
Do you do your LINQ coding by cutting and pasting stuff that works? I did. Are you curious about those “=>” symbols in C#? I was. Are Basic values corrupting C#? Maybe, but its all for the good. This session focuses on Lambda Expressions within a C# context: where they came from, what they are, why you need them, what you can do with them (Queries and Expressions), and how they can become your friend. This session will be mostly interactive demonstration. Don’t keep your distance, familiarize.
Beginning iPhone Development
Beginner
Wiki Here
11:00 AM Saturday   |   Room 8338
Beginner
This session will be very practical and the attendees can follow the steps along to build a simple iPhone application using Xcode. You need an Intel based Mac to do iPhone development. You can bring a Mac to follow along. The iPhone / iPod touch is not required. The simulator is enough to get started. The concepts will be explained as we work through some simple exercises. Pre-requisite: Must be familiar with C and object oriented programming basics. Objective-C is not required but would be helpful.
Beginning Scala
Beginner
Wiki Here
9:45 AM Saturday   |   Room 4301
Beginner
Come and learn about the Scala Object-Functional programming language for the JVM. Learn Scala idioms. Learn Scala interoperability. Learn how Scala can help you deliver projects faster and with fewer defects.
Best and worst practice for actionscript/flash(flex) development, 3D, asset/socket servers/crossdomain.
Intermediate
Wiki Here
9:45 AM Saturday   |   Room 4220
Intermediate

The goal of the session is to teach best and worst practice for actionscript/flash(flex) development, why 3D/PaperVision and Away3D, why an asset server, why a socket server, how to fix crossdomain.xml, push, etc. You will come out a better developer at the end of this session! We will present an unfiltered view of bad things you can do w/ actionscript/flash. And what are the good alternatives.

Many things will be covered including: Extensive example of good UI, how/why to use an asset server, why PaperVision and Away 3D. We will show you 3D and how to learn it. Also discussed will be a 3rd party library to help you do this.


The presenter Vic, has won trainer of the year few years back and has 15 years of implementation / architecture experience, and the Vic authored the 1st book on Struts called Best Practices a year ahead of any other books when Struts was not well know, since translated to French and German.http://wiki.apache.org/struts/StrutsBook.

He presented at last Years Adobe Max, this is his 2nd year.
Beyond the Relay – Routers and Queues in the .NET Service Bus
Advanced
Wiki Here
11:00 AM Saturday   |   Room Hearthside Lounge
Advanced
The .NET services bus was developed with solving the connectivity issue of web services, and as a general way of relaying messages to services. But controlling a messaging junction in the cloud has the potential for much more than messages relay. The services bus can act as a sophisticated interceptor, adding valuable aspects to your application. The first such aspects are routing and queuing. You can install a router to send messages to multiple subscribers or act as a load balancer. You can have the services bus queue up your client calls until the service is ready to process them. You can combine routers and queues, and have queues and routers subscribe to routers, enabling application features that would be very difficult without the services bus. This session presents the new capabilities and the new design patterns and pitfalls. You will also see some advanced WCF programming techniques, original helper classes, productivity-enhancing utilities and tools.
BOO and Powershell for Testers
Beginner
WetPaint Wiki
3:30 PM Sunday   |   Room 1401
Beginner
A Small demonstration of how to build easy to understand assemblies in BOO and then using those objects in the Powershell interactive shell and/or Scripts. The Differences between the use of Powershell's Add-Member Functionality to build Dynamic Objects at runtime and using BOO to Define Staticly Typed Objects that can be Loaded and Created For Use @ Runtime.
Broadcast Badges made Really, Really Simple
Beginner
Wiki Here
3:45 PM Saturday   |   Room 5502
Beginner
Are you currently generating interesting content that you'd like your readers to be able to show on their own sites? Bring your laptop and we'll show you how to build a single-line JavaScript include to sydicate your feed. No server space or prior programming experience required; this will all happen with a text editor on your laptop.
Build Bindingly-Fast Web Apps with HTML5 and SproutCore
Intermediate
Wiki Here
1:15 PM Saturday   |   Room 3525   |   JavaScript Track
Intermediate

Modern browsers come packed with features for building full rich applications such as local storage, CSS transitions, fast JS engines, etc. SproutCore - a scalable open source JavaScript framework - will help you leverage these HTML5 features to build truly desktop-calibre applications in the web browser.


This is a hands on session. We'll be building a SproutCore application on the stage and deploying it to Google App Engine before the session is over. You will also learn about the new SproutCore 1.0 API and major performance enhancements. We'll also show you a preview of some of the next generation technologies planned for later releases.

Building Better Tests
Intermediate
WetPaint Wiki
3:30 PM Sunday   |   Room Hearthside Lounge
Intermediate
Improved from last year's very popular session! How the "builder" pattern and the use of chained method calls (fluent API) helped us vastly improve our Java unit tests by making them easier to read, write, and perform faster. Our test engineers now use the same infrastructure, allowing them to write functional UI tests even before the UI is done. As a by-product, builders helped our sales and demo teams create complex sample data quickly and easily. This session assumes that you're already familiar with writing JUnit tests.
ClickOnce Deployment : How to Abuse it
Beginner
Wiki Here
11:00 AM Saturday   |   Room 4204
Beginner
ClickOnce Deployment is a free technology included in Visual Studio that you can use to deploy windows desktop applications and console applications and perform automatic incremental updates. I will cover some of the frequently asked questions about ClickOnce, and how to get around some of the limiting factors. We can talk about how to deploy add-ins for your application, extra data files, how to deploy and update a database, what to do about the 1-yr expiring certificate problem, etc. Feel free to bring any questions or problems you have encountered.
CloudCamp Begins: Lightning Talks, then Propose Sessions
Beginner
WetPaint Wiki
9:15 AM Sunday   |   Room CCU   |   CloudCamp (Sunday) Track
Beginner
Dave Nielsen and Steve Evans are organizing a CloudCamp track within SVCodeCamp09. We are going to have a mix of pre-determined presentations on Cloud Computing + some on-the-fly sessions that we let the group decide the morning of Sunday Oct 4th. This opening session will occur Sunday morning and the breakout unconference sessions will follow throughout the day. We will have a wrap-up session to conclude CloudCamp @ SVCodeCamp09 at the end of the day. We hope you will join us in this Cloud Computing experimental track within SVCodeCamp.
    CloudCamp Schedule: 10/4/2009
  • 9:15am: CloudCamp Begins
  • 9:30am: Lightning Talks
  • - Wil Sinclair of Zend - SimpleCloudAPI
  • - Lynn Langit of Microsoft – Windows Azure
  • - Possibly one or two more
  • 10:00am: Propose Sessions
  • 10:30am: Intro to Cloud Computing + Breakout Sessions: Round 1
  • 1:00pm: Breakout Sessions: Round 2
  • 2:15pm: Breakout Sessions: Round 3
  • 3:30pm: Breakout Wrap-up
  • CloudCamp Sessions: Round 2 (Topics TBD)
    Beginner
    WetPaint Wiki
    1:00 PM Sunday   |   Room TBA1   |   CloudCamp (Sunday) Track
    Beginner

    There will be 3 unconference breakout session scheduled for this time:

  • Session 1. To be proposed at CloudCamp###
  • Session 2. To be proposed at CloudCamp###
  • Session 3. To be proposed at CloudCamp###
  • ### Please arrive Sunday @ 9:30am to propose a topic for this breakout session. Let me know if you have any questions. - Dave Nielsen

    CloudCamp Schedule: 10/4/2009

  • 9:15am: CloudCamp Begins
  • 9:30am: Lightning Talks
  • 10:00am: Propose Sessions
  • 10:30am: Intro to Cloud Computing + Breakout Sessions: Round 1
  • 1:00pm: Breakout Sessions: Round 2
  • 2:15pm: Breakout Sessions: Round 3
  • 3:30pm: Breakout Wrap-up
  • CloudCamp Sessions: Round 3 (Topics TBD)
    Beginner
    WetPaint Wiki
    2:15 PM Sunday   |   Room TBA1   |   CloudCamp (Sunday) Track
    Beginner

    There will be 3 unconference breakout session scheduled for this time:

  • Session 1. To be proposed at CloudCamp###
  • Session 2. To be proposed at CloudCamp###
  • Session 3. To be proposed at CloudCamp###
  • ### Please arrive Sunday @ 9:30am to propose a topic for this breakout session. Let me know if you have any questions. - Dave Nielsen

    CloudCamp Schedule: 10/4/2009

  • 9:15am: CloudCamp Begins
  • 9:30am: Lightning Talks
  • 10:00am: Propose Sessions
  • 10:30am: Intro to Cloud Computing + Breakout Sessions: Round 1
  • 1:00pm: Breakout Sessions: Round 2
  • 2:15pm: Breakout Sessions: Round 3
  • 3:30pm: Breakout Wrap-up
  • CloudCamp Wrap-up
    Beginner
    WetPaint Wiki
    3:30 PM Sunday   |   Room CCU   |   CloudCamp (Sunday) Track
    Beginner
    In this session, a rep from each breakout session will give a 1 minute summary of their session. Then we will continue networking.
    CloudCamp: Round 1 (3 Topics TBD)
    Advanced
    WetPaint Wiki
    10:30 AM Sunday   |   Room TBA1   |   CloudCamp (Sunday) Track
    Advanced

    There will be 3 unconference breakout session scheduled for this time:

  • Session 1. "Intro to Cloud Computing"
  • Session 2. To be proposed at CloudCamp###
  • Session 3. To be proposed at CloudCamp###
  • ### Please arrive Sunday @ 9:30am to propose a topic for this breakout session. Let me know if you have any questions. - Dave Nielsen

    CloudCamp Schedule: 10/4/2009

  • 9:15am: CloudCamp Begins
  • 9:30am: Lightning Talks
  • 10:00am: Propose Sessions
  • 10:30am: Intro to Cloud Computing + Breakout Sessions: Round 1
  • 1:00pm: Breakout Sessions: Round 2
  • 2:15pm: Breakout Sessions: Round 3
  • 3:30pm: Breakout Wrap-up
  • CloudCamp: Round 1 (Intro to Cloud Computing)
    Beginner
    WetPaint Wiki
    10:30 AM Sunday   |   Room CCU   |   CloudCamp (Sunday) Track
    Beginner
    In this session, Dave Nielsen will explain the most common reasons companies use Cloud Computing, and a few unusual ones as well. I will also demo Amazon, GoGrid and RightScale. We will end the session with an open discussion about the challenges and opportunities for Cloud Computing.
    Code Excellence for the Average Programmer - Part 1
    Intermediate
    Wiki Here
    9:45 AM Saturday   |   Room 4218
    Intermediate
    Are you happy at work? Are you proud of the code you are working with? This session seeks to inspire engineers to adopt a sense of pride of ownership toward code they are working with. The long term benefits of working with code that continually grows better and easier to work on are almost too numerous it list. Take a ride with Llewellyn & Woody as we explore the road to happy code. One of the main tenants of agile is the ability to respond to change. This talk will focus on how to get malleability back into your existing code through the eXtreme programming practice of Refactoring.
    Code Excellence for the Average Programmer - Part 2
    Advanced
    Wiki Here
    11:00 AM Saturday   |   Room 3106
    Advanced
    Are you happy at work? Are you proud of the code you are working with? This session seeks to inspire engineers to adopt a sense of pride of ownership toward code they are working with. The long term benefits of working with code that continually grows better and easier to work on are almost too numerous it list. Take a ride with Llewellyn & Woody as we explore the road to happy code. One of the main tenants of agile is the ability to respond to change. This talk will focus on how to get malleability back into your existing code through the eXtreme programming practice of Refactoring.
    Communitas
    Beginner
    Wiki Here
    5:15 PM Saturday   |   Room 5503
    Beginner
    Wikipedia defines Communitas as "a Latin noun referring either to an unstructured community in which people are equal, or to the very spirit of community." This session is interactive and in the form of a panel that will include a number of community leaders from the valley. If you would like to discuss ways to get involve in the community, know where to meet other developers, find out how to sharpen your technical skills, and expand your professional network, This session is for you. Don't be a social outcast and join the Bay Area's most active and brightest community leaders and members! Topics to be discussed are open and range from community involvement and leadership to user group management and membership. The panel will be moderated by Kevin Nilson, Co-Leader of the Silcon Valley Java User Group and the Silicon Valley Google Technology User Group.

    Here is a list of confirmed panelists in alphabetical order:

    • Abdelmonaim Remani, Founder Chico Google Technology User Group, Chico Java User Group, and Chico Flex User Group
    • Deborah Kurata, East Bay Leader of Bay.NET User Group
    • Jeff Lindsay, Co-Founder of DevHouse and Founding Director of the new Hacker Dojo
    • Van Riper, Co-Leader of the Silcon Valley Java User Group and the Silicon Valley Google Technology User Group

    Creating Java Applications with Google App Engine
    Intermediate
    Wiki Here
    9:45 AM Saturday   |   Room 4201   |   Silverlight Track
    Intermediate
    In this session, we will go step by step through the creation of a Google App Engine (GAE) application using the Java Runtime. This will be a beginner level session with respect to Google App Engine, but, a good understanding of how to build web applications in Java will be assumed. The focus will be on what you need to know to work properly within the limitations imposed by the Java Runtime for GAE. The code of the sample application is available online and those with a GAE account and a prepared laptop can participate in this session as a hands-on lab. Please see the wiki entry for this session for link to the sample code and additional instructions on laptop setup in order to follow along during session.
    Deep Diagnostics of Production JVMs using Oracle AD4J
    Intermediate
    Wiki Here
    11:00 AM Saturday   |   Room 5502   |   Oracle Fusion Middleware Track
    Intermediate
    Oracle AD4J is a low overhead, hot pluggable, production ready diagnostics tool for Java applications. It provides deep JVM diagnostics (details on threads, Java methods, line numbers, objects, locks, I/O, CPU, Network and DB waits) in real-time or historically. It can trace end-user requests from Java to DB & vice versa and can analyze Java Memory Leaks. It's users do not need application specific knowledge. It can help solve problems like: •User requests hanging •Database response too slow •Slow applications •Application SLA violated last night •Frequent GC slowing down application •Mid-tier CPU utilization too high
    Deep Dumpster Diving
    Intermediate
    Wiki Here
    11:00 AM Saturday   |   Room 4218
    Intermediate
    The .NET garbage collector provides a high-speed memory allocation service and promises to minimize if not eliminate the work associated with managing your applications memory. However, this benefit comes with a cost that is not always easy to quantify. When it is ignored it has the potential to drastically reduce your application performance and in extreme cases introduce memory leaks that can be hard to find.

    In this session I will do a review of .NET memory management and introduce the IDisposable pattern. I will then show several techniques to analyze when this pattern is needed, examine some common patterns that have the potential to create memory leaks and how to avoid these mistakes.

    Lastly I will show some techniques for identifying when you have problems with memory thrashing and how to narrow down problems with memory leaks.
    Dependency Properties in WPF & Silverlight
    Advanced
    Wiki Here
    10:30 AM Sunday   |   Room 8338   |   Silverlight Track
    Advanced
    Dependency properties are used in both Windows Presentation Foundation (WPF) and Silverlight. The Silverlight implementation is a lightweight implementation of this powerful feature from its WPF sister. Dependency properties provides the plumbing for property value resolution, change notification, data binding, styling, validation, etc. for properties exposed in Windows Presentation Foundation (WPF) & Silverlight UI elements. Each dependency property is registered with a central repository that handles the change event notifications for you.

    This session will demonstrate the following concepts:
    • * How to create a Dependency Property

    • * How are Dependency Properties resolved?

    • * Differences between WPF & Silverlight regarding Dependency Properties.

    • * When should you use Dependency Properties?

    Developing a Google Wave Extension
    Intermediate
    Wiki Here
    2:15 PM Sunday   |   Room 4201
    Intermediate
    Learn how to build a Wave robot from the ground up using Google App Engine, Java, and Eclipse. We'll walk through setting up your development environment, writing the extension, and deploying, troubleshooting, and packaging it. This session will be co-presented by Austin Chau, a Google developer-programs engineer on the Wave and YouTube teams.
    Developing for Webkit
    Intermediate
    Wiki Here
    5:15 PM Saturday   |   Room 4301
    Intermediate
    This session with explore the wonderful world of front end development for Webkit with lots of CSS3 goodness. Why Webkit? It's used for rendering in Safari, Google Chrome, Epiphany, Adobe AIR, iPhone, Adroid, Palm Pre and the Symbian S60. The advanced CSS3 capabilities of Webkit allow for streamlined and sophisticated UI/UX development.
    Developing Java EE Applications with Eclipse and WTP: Looking ahead to Helios
    Intermediate
    Wiki Here
    1:15 PM Saturday   |   Room 4220   |   Oracle Fusion Middleware Track
    Intermediate
    Building Java EE Applications in Eclipse has never been easier. In this session, we will use Eclipse WTP's JSF, Dali, and EclipseLink tools to build a standard Java EE application. We will also review how free Eclipse plugins such as Oracle Enterprise Pack for Eclipse (OEPE) provide additional support for development and deployment for WebLogic Server and Oracle Database. Finally, we will preview new features for web application and database development planned for Eclipse 3.6 Helios including enhancements for WYSIWYG page development with the Eclipse Web Page Editor (WPE).
    Developing Revolutionary Web Applications using Comet and Ajax Push
    Intermediate
    Wiki Here
    1:15 PM Saturday   |   Room 5501
    Intermediate
    Join the asynchronous web revolution! Because Ajax-based applications are almost becoming the de facto technology for designing web-based applications, it is more and more important that such applications react on the fly, or in real time, to both client and server events. AJAX can be used to allow the browser to request information from the web server, but does not allow a server to push updates to a browser. Comet solves this problem. Comet is a technology that enables web clients and web servers to communicate asynchronously, allowing real-time operations and functions previously unheard of with traditional web applications to approach the capabilities of desktop applications. This session will start to provide an brief introduction to the asynchronous web, AJAX polling, long polling, and Streaming, explaining the Bayeux protocol, Cometd, Grizzly Comet implementation on GlassFish. Different approaches and best practices to develop comet application will also be discussed. You will learn how to develop the chat application, how to implement distance learning slideshow application, how to manage a chat application from the server and how to develop a two-player distributed game application. Attendees will take away the tactics they need in order to add multiuser collaboration, notification and other Comet features to their application, whether they develop with Dojo, jQuery, jMaki, or Prototype and whether they deploy on Jetty, Tomcat, or the GlassFish Application Server.
    Enterprise AOP with Spring and AspectJ
    Intermediate
    Wiki Here
    1:00 PM Sunday   |   Room 3106
    Intermediate
    Enterprise application development is a gold mine for applications of AOP. There are many crosscutting concerns found in a typical enterprise application, ranging from well-known security and transaction management to application- and technology-specific concerns. Using AOP leads to implementations that are easy to understand and easy to change. When we combine Spring with AspectJ, we get a pragmatic AOP solution. This demo-driven session shows how to implement common functionality needed by typical enterprise applications, with a focus on web applications. We will start with a barebones web application and develop aspects to incrementally add functionalities such as monitoring, exception handling, policy enforcement, transaction management, fault tolerance, and domain-object security.
    Enterprise Application Development with Spring
    Intermediate
    Wiki Here
    10:30 AM Sunday   |   Room 5501
    Intermediate
    The Spring Framework is a comprehensive platform for developing enterprise applications. At the core, it supports dependency injection, aspect-oriented programming, and enterprise service abstraction. Come to this session to understand why Spring is a compelling platform for building enterprise applications. In this demo-driven session, we will examine how Spring helps in building web applications, adding persistence and transaction management, and securing them. We will also peek into integrating with third-party systems through Spring Web Services, implementing monitoring and management using aspects and JMX, and utilizing messaging with JMS along with Spring Integration. By the end of this session, you will have a good understanding of the value proposition of Spring and related technologies.
    Exploring Agility
    Beginner
    Wiki Here
    10:30 AM Sunday   |   Room 4201
    Beginner
    Agile is a holistic approach to software development that grew out of the experience and insight of people working in the field. It follows then, that the best way to learn about agile is to experience it. Over the course of this short workshop, we will engage the power of simulations and learning games to evoke and explore various aspects of the Agile experience. Warning! This will be a participatory learning experience, without a PowerPoint safety net!

    Areas we will explore will include:
    - Communication on an agile team
    - Directive vs. Participatory project management approaches
    - Batch-and-Queue vs. Continuous Flow in software development
    - Multitasking
    Expression Blend Tips & Tricks
    Intermediate
    Wiki Here
    3:45 PM Saturday   |   Room 3525
    Intermediate
    This session is specifically for designers or developers who need to work with the design features of Expression Blend to implement the UI/UX end of a project. If you've done any WPF and Silverlight work, you may have felt like smashing your head against the wall trying to accomplish was would seem like simple graphical tasks, but Blend's graphical tools don't work the way you'd expect. I will be showing some of the tricks that our design team at Vertigo have come up with to make things work in Blend. We'll examine the best way to import graphics from Expression Design and Adobe Illustrator, and how to convert them for optimal use in Blend. We'll examine the Visual State Manager and how to make the most of it and get around certain bugs. We'll also look at how to skin a control. And lastly we'll show how to use Sample Data to make your design stage of controls act for real.
    Extending CruiseControl.NET
    Intermediate
    Wiki Here
    2:30 PM Saturday   |   Room 4220
    Intermediate
    In this session we will examine ways to extend the Open Source Continuous Integration server CruiseControl.NET. We'll look writing custom source control providers and implement custom tasks to extend the server beyond what's included "in-the-box".
    FastCGI for high performance desktop applications
    Intermediate
    Wiki Here
    2:15 PM Sunday   |   Room 4220
    Intermediate
    The web is playing an increasingly important role for desktop software. Developers often need to interact with a web server for tasks like; installation, authentication, application updates, data transfer, error reporting and secure transactions for billing. Typically these applications use HTTP and port 80 to avoid firewall support issues.

    FastCGI provides a standard protocol for many servers including Windows IIS and Linux Apache, and most web development languages like php, Java, Perl, Ruby, Python etc for developing applications that execute on the server side. However, FastCGI applications may also be written in the same powerful high level languages (Basic/C/C++) used to create the desktop software, making code instantly reusable on the server side.

    While Java/Javascript and .NET tend to dominate the web capable application development space these days, both have disadvantages for high performance desktop software. As an interpreted language with issues, JavaScript is not ideal, and .NET's 'managed code' and reliance on COM to wrap API's often leads to speed and reliability issues. FastCGI provides a powerful alternative protocol, supported by most servers and languages, that integrates into a development project quickly and easily.

    The presentation will touch on the HTTP protocol in general, the WinHTTP library and reasons for choosing the flat API over the COM interface, the concept of the FastCGI protocol, FastCGI vs CGI and how it has evolved recently. I will then show you how to write, deploy and test a FastCGI application on your laptop in two minutes using a powerful free web server - see my Blog for more details http://mbbz.blogspot.com

    Finally I will discuss the design of a communication protocol utilizing libraries like; compression, Encryption, MySQL, SQLite and even the PayPal API with example code in a commercial thick client. Time permitting, the design of a FastCGI comet server will be covered. Each section can be expanded or contracted to accommodate the audiences interest.
    From Code to Complete Product to Brand
    Intermediate
    Wiki Here
    10:30 AM Sunday   |   Room Hearthside Lounge
    Intermediate
    Before you can go out and market your code, you need to productize it. Whether it is for a small downloadable utility or an enterprise application, software seldom sells itself. Even for Open Source, it has to be packaged, promoted and presented correctly... and that is the start of your branding for the long term. For startups, product and company may both be dependent on this proper execution. This overview session will give you the highlights, illustrated by a real world example, and a check list to do proper product packaging and launch. For startups, continue this subject with Sean Murphy's startup checklist talk (See Session Software Startup Marketing Checklist)
    Future Directions for Microsoft Visual Basic and C#
    Advanced
    Wiki Here
    3:45 PM Saturday   |   Room 3106
    Advanced
    Microsoft has decided to Co-evolve their premiere .NET languages, Visual Basic and C#. In this session you will gain insight into language team's strategy and direction for implementing new features. You'll also learn about the new capabilities of the next version of the languages, including additional productivity features, syntax simplifications, and a host of other improvements.
    Game and Story Programming Class for Kids
    Beginner
    Wiki Here
    1:15 PM Saturday   |   Room 4301
    Beginner

    For students in grades 3–12: Learn how to create computer games and stories using the Scratch computer software for kids, from MIT. Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art—and share your creations on the web.

    You will bring your own laptop on which you have previously installed Scratch (http://scratch.mit.edu). Limited to the first 20 students to add their names to the wiki for this class. Parents may observe the class, as space permits.

    IMPORTANT: You must pre-register for the class on the wiki, and you must bring a laptop with Scratch installed.

    Related: The speaker’s Young Programmers Video podcast: http://young-programmers.blogspot.com/

    Get Higher with ScalaTest
    Intermediate
    Wiki Here
    1:00 PM Sunday   |   Room 4221
    Intermediate
    ScalaTest is a test framework for the Java Platform that allows you to write concise, readable tests in Scala for both Scala and Java programs. This talk will show you how Scala and ScalaTest can let you work at a higher level, making you happier and more productive when programming the Java Platform. In addition to demonstrating ScalaTest, this talk will touch on the role of testing in agile processes, behavior-driven development, and testing the concurrent applications.
    Getting Started with JavaFX and WidgetFX
    Beginner
    Wiki Here
    3:45 PM Saturday   |   Room 4218
    Beginner
    WidgetFX is an open-source framework that is built on Sun's new JavaFX RIA platform and allows you to deploy your applications as desktop widgets. It ships with several configurable, skinnable widgets and has a growing repository of user-created widgets, from performance monitors to streaming video.

    This session is aimed at Java developers who want to learn the basics of how to write JavaFX applications that also can be deployed as desktop widgets.

    In this session you will learn how to:

    • Code a simple, interactive JavaFX application
    • Easily convert JavaFX applications to desktop widgets
    • Reuse existing JavaFX and Java technology-based APIs
    • Develop signed widgets with access to system resources
    • Communicate with enterprise Web services from the desktop, using JavaFX technology
    • Hook into existing APIs to do cool things such as interact with hardware, use 3-D, and embed Flash
    • Build widgets that can also be deployed on mobile devices

    Come join Pro JavaFX author and hacker Stephen Chin and WidgetFX coauthor Keith Combs for an interactive tour through the latest in Java RIA technologies.

    Getting started with OSGi
    Intermediate
    Wiki Here
    1:00 PM Sunday   |   Room 4218
    Intermediate

    OSGi is a robust framework for Java that allows modules known as "bundles" to be remotely installed, started, stopped, updated and uninstalled without requiring a JVM restart.

    We will look at creating bundles using Maven and loading them in the Eclipse Equinox implementation of OSGi. Additionally show the power of OSGi by loading multiple versions of the same application that allows delivering updates with zero downtime.

    OSGi is enterprise ready with out of the box Spring support and you should consider it if looking at J2EE.

    You can find details of what I will present on my blog (http://www.irahul.com/codepst/)
    Getting Started with SQL Server Compact Edition (CE) 3.51
    Intermediate
    Wiki Here
    10:30 AM Sunday   |   Room 4301
    Intermediate
    SQL Server Compact 3.51 is a free, easy-to-use, embedded database engine that lets developers build robust Windows Desktop and mobile applications that run on all Windows platforms including Windows XP, Vista, Pocket PC, and Smartphone. It supports stand alone applications or allows you to replicate a local database with a big brother SQL Server using Sync Services over the web. In this presentation you will learn: 1) What SQL Server Compact Edition 3.51 is and how it works, and 2) How you can synchronize a database with a back-end server over the web.
    Getting the Most from Lambda Expressions in VB and C#
    Intermediate
    Wiki Here
    2:30 PM Saturday   |   Room Hearthside Lounge
    Intermediate
    Lambda expressions are one of the best features in Microsoft Visual Studio 2008. They, and their related extension methods, can dramatically simplify your coding and improve your productivity. This talk takes a solution-oriented approach to using Lambda expressions. It covers finding and filtering data with Lambda expressions, using Lambda expressions to simplify your validation and "dirty" data processing, and simplifying Tree structure access with Lambda expressions, plus much more. Come and see how Lambda expressions can improve your code.