|
Sessions
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
This presentation is a hands-on introduction to JavaFX given by JavaFX author Stephen Chin and core JavaFX team member Stuart Marks. It will focus primarily on using the JavaFX Script language to drive interactive graphics using the JavaFX scene graph. We'll start with a "Hello, world" program and build it up piece by piece until we have a complete application. At each step of the way, we'll see the code in NetBeans and run it so you can see the results immediately. We'll be covering the following features of the JavaFX platform: language and scene graph basics, sequences, functions, layout, UI controls, classes, calling Java, bind, animation, and effects.
Part A of this talk will include an introduction to JavaFX and the first half of the lab. If you bring a laptop (optional), we will have the exercise available for you to walk through together with the presenters lab-style.
Note to schedulers: Please schedule sessions A and B back-to-back in the same room if possible.
|
|
|
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
This presentation is a hands-on introduction to JavaFX given by JavaFX author Stephen Chin and core JavaFX team member Stuart Marks. It will focus primarily on using the JavaFX Script language to drive interactive graphics using the JavaFX scene graph. We'll start with a "Hello, world" program and build it up piece by piece until we have a complete application. At each step of the way, we'll see the code in NetBeans and run it so you can see the results immediately. We'll be covering the following features of the JavaFX platform: language and scene graph basics, sequences, functions, layout, UI controls, classes, calling Java, bind, animation, and effects.
Part B of this talk will continue the interactive lab. If you bring a laptop (optional), we will have the exercise available for you to walk through together with the presenters lab-style.
Note to schedulers: Please schedule sessions A and B back-to-back in the same room if possible.
|
|
|
|
|
Absorbing Scala into Java Ecosystem
|
Wiki Here
|
|
Level:
Beginner |
Room: Unknown |
Agenda Not Made Yet
|
|
Scala runs on the JVM, can use and be used by Java code almost transparently. Scala's 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 kaChing and LinkedIn teams who use Scala in production.
http://eng.kaching.com/search/label/scala
|
|
|
|
|
Appcelerator's Titanium Platform: Build Native Mobile Apps Using Your Web Skills !
|
Wiki Here
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
Open source application development platforms have changed the development game. By utilizing web technologies like Javascript, HTML, and CSS, you can build applications for iPhone, Android and Blackberry all from a single code base. And best of all – you can utilize the native capabilities of the phone, so you don’t sacrifice anything in the user experience.
• Creating Your First Application
• Development Tools, Tips, and Tricks
• Packaging Your App For Testing and Distribution
• Develop for iPhone, Android, and Android suing a single code base
Appcelerator’s Titanium platform translates developers’ hard won web skills into native mobile applications that perform and look just like they were written in Objective-C [iPhone] or Java [Android] … but using JavaScript, HTML, and CSS skills. With over 300 APIs, a thriving developer community, and the support you need, developers can build native mobile applications that are more social, local, media rich, interactive, and extensible.
Download Titanium for free at www.appcelerator.com and join the 50,000+ developers worldwide who are developing mobile apps using Titnaium.
|
|
|
|
|
Applying Compiler Techniques to Iterate At Blazing Speed
|
Wiki Here
|
|
Level:
Advanced |
Room: Unknown |
Agenda Not Made Yet
|
|
In this session, we will present real life applications of compiler techniques helping kaChing achieve ultra confidence and power its incredible 5 minutes commit-to-production cycle [1]. We'll talk about idempotency analysis [2], dependency detection, on the fly optimisations, automatic memoization [3], type unification [4] and more! This talk is not suitable for the faint-hearted... If you want to dive deep, learn about advanced JVM topics, devoure bytecode and see first hand applications of theoretical computer science, join us.
[1] http://eng.kaching.com/2010/05/deployment-infrastructure-for.html
[2] http://en.wikipedia.org/wiki/Idempotence
[3] http://en.wikipedia.org/wiki/Memoization
[4] http://eng.kaching.com/2009/10/unifying-type-parameters-in-java.html
|
|
|
|
|
BirdShow: A Scala/Lift App for Showing Flickr Photos
|
Wiki Here
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
This demonstration and code walkthrough of a simple Scala/Lift Web application aims to educate about Scala and the Lift Web application framework by example.
This will be an expansion of the shorter talk shown here: http://www.slideshare.net/dcbriccetti/birdshow-a-lift-app-for-showing-flickr-photos-2720594
Some experience with Scala and Java would be helpful, but is not required.
|
|
|
|
|
Brief Introduction to Natural Language Processing
|
Wiki Here
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
The majority of interesting information on the web is in the form of unstructured natural language data, written by humans for consumption by other humans. Natural language processing tools allow us to take data such as new articles, blog posts, tweets, and reviews and then extract meaningful structured information. For example, using named-entity recognition and sentiment analysis, your code can look at a document and identify what people, organizations, products, and places are mentioned within it and whether or not they're described in a positive or negative light. Using natural language parsers, it's possible to take a sentence and recover who's doing what to whom. Other tools can automatically construct tag sets or identify interesting characteristic phrases.
In this session, I will provide a brief introduction to natural language processing, and an overview of what tool sets, APIs and libraries are available. Code samples will be presented in Python and Java. However, the talk should be of general interest to anyone working with language data.
Topics that will be covered include:
* Sentiment analysis
* Identification of named entities (e.g., people, locations, and places)
* Natural language parsing
* Document classification and automatic extraction of tag sets.
* Summarization of documents
Toolkits that will be covered include Python's Natural Language Toolkit (NLTK) and Stanford's JavaNLP. APIs discussed will be OpenCalais and AlchemyAPI.
|
|
|
|
|
Extreme Testing at kaChing: From Commit to Production in 5 Minutes
|
Wiki Here
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
At kaChing (www.kaching.com), we are on a 5-minute commit-to-production cycle. We have adopted continuous deployment as a way of life and as the natural next step to continuous integration.
In this talk, I will present how we achieved the core of our extreme iteration cycles: test-driven development or how to automate quality assurance. We will start at a very high level and look at the two fundamental aspects of software: transformations, which are stateless data operations, and interactions, which deal with state (such as a database, or an e-mail server). With this background we will delve into practical matters and survey kaChing's testing infrastructure by motivating each category of tests with different kind of problems often encountered. Finally, we will look at software patterns that lend themselves to testing and achieving separation of concerns allowing unparalleled software composability.
This talk will focus on Java and the JVM even though the discussion will be largely applicable.
Check out http://eng.kaching.com/search/label/tests for the latest from our company's blog.
|
|
|
|
|
Fluent Interfaces: Domain-Specific Languages in Plain-Old Java
|
Wiki Here
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
A domain-specific language (DSL) is commonly described as a computer language targeted at a particular kind of problem and it is not planned to solve problems outside of its domain. DSLs have been formally studied for many years. Until recently, however, internal DSLs have been written into programs only as a happy accident by programmers simply trying to solve their problems in the most readable and concise way possible. Lately, with the advent of Ruby and other dynamic languages, there has been a growing interest in DSLs amongst programmers. These loosely structured languages offer an approach to DSLs which allow a minimum of grammar and therefore the most direct representation of a particular language. However, discarding the compiler and the ability to use the most powerful modern IDEs such as Eclipse is a definite disadvantage with this approach.
The speakers have successfully compromised between the two approaches, and will argue that is quite possible and helpful to approach API design from the DSL orientation in a structured language such as Java. This session describes how it is possible to write domain-specific languages using the Java language and suggests some patterns for constructing them.
|
|
|
|
|
Level:
Advanced |
Room: Unknown |
Agenda Not Made Yet
|
|
If you want to prove that a complex system works, a good place to start is to check that each piece is working right. Unit testing intends to do just that: take a unit of your code, and verify that it behaves properly. Unfortunately, in “real” software, dependencies between classes make testing in isolation difficult. Mocking is a technique designed to overcome that issue, and replace dependencies by Mocks, lightweight versions of the “real thing”, allowing you to validate the interactions of a class with its “collaborators”.
I will discuss reasons you should care about mocks, illustrate how you would go about addressing them by rolling your own mocks & stubs, and demonstrate two free, open-source frameworks, Rhino.Mocks and Moq, which will greatly simplify your job. Mocks and Stubs can sound intimidating – the goal of this presentation is to demystify the topic and give you a clear understanding of what they are, where they can help you, and to give you a good quick-start so that you can productively use them in your own code.
|
|
|
|
|
Level:
Beginner |
Room: Unknown |
Agenda Not Made Yet
|
|
This talk will provide a high-level overview of some of the core principles that shape a good user interface and thus, user experience. Regardless of platform, technology, or device, these principles share a basic premise of providing elegance, structure, beauty, and a holistic unity to any digital interface.
We will begin with defining the rhetorical aspects of interface and interaction, based upon Wayne Booth's "rhetorical stance".
Then we will dive into concrete issues of typography, grids, color/image, layout, hierarchy, reducing noise/clutter, and simplifying behaviors, all with clear examples of both poor and good interfaces.
Finally we will conclude with thoughts on how to standardize and institutionalize such practices into a team situation.
This session is meant to be interactive, lively, and hopefully good fun! Questions, debates, discussions encouraged!
|
|
|
|
|
Level:
Beginner |
Room: Unknown |
Agenda Not Made Yet
|
|
Learn how to setup, configure, and manage IIS 7 and IIS 7.5.
Microsoft made significant changes in IIS 7. Everything from architectural changes, setup process, plug-in architecture, security configuration, IIS manager, and much much more. We will cover the basics of IIS 7.5; New Features, Site Creation and Configuration (like what is a host header?), how SSL certificates work, and how to package and deploy your website.
Developers rely on IIS to run their applications so come learn all that you need to know about IIS 7.5 and how it can make your life easier.
|
|
|
|
|
Servlet 3.0 extensible, asynchronous and easy to use
|
Wiki Here
|
|
Level:
Advanced |
Room: Unknown |
Agenda Not Made Yet
|
|
Servlet 3.0, introduced in the Java EE 6 platform, is the foundation for next generation web applications with the extensibility, asynchronous features, ease of development features and more. In addition to web 2.0 applications, it is also the foundation for extensibility in the Java EE 6 platform.
Servlet 3.0 introduced a number of new features, from async to use of annotations and also making the platform extensible via modular web.xml, APIs for dynamic registration of servlets, filters and listeners and container provided features for scanning applications of a particular type to allow frameworks introspect the type of application it is and configure themselves. In addition to these features, servlet 3.0 also introduced security features for programmatic authentication, login and logout and declarative http constraints via annotations. This session will cover the new features in the just released Servlet 3.0 specification.
|
|
|
|
|
Should Your Application Run in the Cloud?
|
Wiki Here
|
|
Level:
Beginner |
Room: Unknown |
Agenda Not Made Yet
|
|
There is a lot of confusion on where to deploy your application. Physical Server? Virtual Server? Cloud?
Cloud computing is hot, but different apps have different requirements, and different environments offer different benefits.
We will discuss the pros and cons of all solutions available to developers today. Uptime, costs, regulatory issues, security . . . no topic is off topic. We’ll discuss Amazon EC2, Azure, Google App Engine, VMware, Hyper-V, Physical Servers and anything else that comes up.
|
|
|
|
|
Spring Roo: Productive Enterprise Application Development
|
Wiki Here
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
Spring Roo combines the power of the Spring framework, magic of annotations, and awesomeness of AspectJ to provide unimaginable productivity for building enterprise applications. This open source project provides Java programmers a real choice in creating applications quickly without compromising on performance, while enjoying goodies that come with statically typed languages--code completion, immediate feedback on errors, and robust refactoring. Spring Roo does all this without the locking-in that you would typically expect from such a productive solution.
In this presentation, we will create an application from scratch. We will pick a domain suggested by attendees and develop JSP- and GWT-based front end, JPA-based persistence, security, automated tests, and so on. We will do all this and still have time left to show how it all works. Come to this presentation as a skeptic and leave as a believer!
|
|
|
|
|
Level:
Beginner |
Room: Unknown |
Agenda Not Made Yet
|
|
Google App Engine is a unique hosting platform that lets you build applications and run them in Google's data centers using the massive global infrastructure built to run the Internet's most powerful company. App Engine offers a development environment that uses familiar technologies (Java and Python) and provides a powerful and robust set of APIs to users while maintaining security and independence from other apps running in the cloud. It is always free to get started so you can try it out with no risk, and if you need additional computing resources, you can purchase additional computing resources beyond the free quota limits. (If you enable billing and trust us with your credit card, we will extend your free quotas even further; you won't get charged until you exceed those *extended* quotas.) Scale your application to millions of users and pay only for what you use at more competitive market pricing.
In this informative session, we review cloud computing as an industry and where Google App Engine fits into the picture. Specifically, we discuss App Engine as a PaaS solution because of the inherent challenges of building web and other applications. We'll outline the architecture of App Engine, what it's major components are, introduce its features and APIs, discuss the service and how it works (including information on the free quotas), and finally present some information about current users and usage, including integration with Google Apps and your private corporate data.
|
|
|
|
|
Level:
Beginner |
Room: Unknown |
Agenda Not Made Yet
|
|
Python is an agile object-oriented programming language that continues to build momentum. It can do everything Java, C/C++/C#, Ruby, PHP, and Perl can do, but it's also fun and intuitive! Enjoy coding as fast as you think with a simple yet robust syntax that encourages group collaboration. It is known for several popular web frameworks, including Django (Python's equivalent to Ruby on Rails), TurboGears, Pylons, and web2py. Plus there is Google App Engine, who's first supported runtime is Python. Users supporting Zope, Plone, Trac, and Mailman will also benefit from knowing some Python. Python can do XML/ReST/XSLT, multithreading, SQL/databases, GUIs, hardcore math/science, Internet client/server systems and networking (heard of Twisted?), GIS/ESRI, QA/test, automation frameworks, plus system administration tasks too! On the education front, it's a great tool to teach programming with (especially those who have done Scratch or Alice already) as well as a solid (first) language to learn for non-programmers and other technical staff. Finally, if Python doesn't do what you want, you can extend it in C/C++, Java, or C# (and even VB.NET)! Have you noticed the huge growth in the number of jobs on Monster and Dice that list Python as a desired skill? Come find out why Google, Yahoo!, Disney, Cisco, YouTube, BitTorrent, LucasFilm/ILM, Pixar, NASA, Ubuntu, and Red Hat all use Python!
|
|
|
|
|
WinPhone 7 and OData, building the Code Camp Viewer
|
Wiki Here
|
|
Level:
Intermediate |
Room: Unknown |
Agenda Not Made Yet
|
|
In this 101 session I will demonstrate how to build a simple Silverlight list application on the Windows Phone 7, which will download sessions and bookmark favorites from the OData feed of the Code Camp site.
The application will manage its state using IsolatedStorage, and I will also demonstrate some best practices, like the use of MVVM, and some tips on XML parsing.
You will also be able to download and run the code yourself. This application will be available on the iPhone too at the conference to help you manage your attendance.
|
|
|
|
|
Level:
Beginner |
Room: Unknown |
Agenda Not Made Yet
|
|
This talk is less about "good design", but more about the practical issues of collaborating with a UI designer: How to hire one, how to engage with a designer, what kinds of deliverables to expect, how to review/give feedback, the value of a designer across the development phases (concept, code, test, ship, post-ship, etc.), and shaping a UI design strategy and team overall. Insights all based upon my 10 yrs working in Silicon Valley as a designer for companies like Oracle, Adobe, Cisco, and Citrix. Lots of lessons learned and fun anecdotes to share!
|
|
|
|
|
75 min sessions
Handouts with lots of Q&A time
Hands-on demos or exercises
Chalk talks or full-on slides
Experts sharing their insights
Share with others, etc.
...and free coffee and food!
Attendance is FREE, but space is limited so you need to Register.
|