|
Sessions
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.
|
|
|
|
|
(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.
|
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
|
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.
|
|
|
|
|
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.
|
|
|
|
|
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/
|
|
|
|
|
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/)
|
|
|
|
|