This post originated from an RSS feed registered with Java Buzz
by Elliotte Rusty Harold.
Original Post: Talks I Want See at SD
Feed Title: The Cafes
Feed URL: http://cafe.elharo.com/feed/atom/?
Feed Description: Longer than a blog; shorter than a book
The call for papers for Software Development 2008 West is now live. What follows are abstracts for some talks that I am not giving, but that I very much hope someone else will present. If anyone feels like submitting one of these under their own name, I’ll champion it when the advisory board goes over the submissions.
Intro to Ruby
Ruby is the fastest growing programming language of the new millennium. Through interactive exercises, this full day, hands on tutorial will bring programmers from zero to sixty with the language including:
Control structures
Strings and Regular Expressions
Formatted Output
Arrays and Hashes
Math
Objects and classes
Closures
Files
Network Programming
Prerequisites: None. Attendees must bring a laptop, and should ideally have Ruby 1.8.5 preinstalled. Linux or Mac OS X is recommended, but Windows is welcome. Mac users may wish to install TextMate as well.
Rails full-day hands-on tutorial
The Ruby on Rails web development framework has swept the world. In this full day hands on tutorial, attendees will build a complete database backed web site from scratch using Rails and MySQL. Topics covered include:
Controllers and URLs
Routing and Actions
Basic SQL and the MySQL shell
MySQL Conventions
Templates
HTTP
REST
Test driven development
Connecting to Legacy Databases
Publishing HTML, XHTML, and XML
Serving Static Files
Apache integration
Prerequisites: Ruby, or the one-day Intro to Ruby class. Some experience with SQL in general and MySQL in particular would be extremely helpful, but is not absolutely required. Attendees must bring a laptop with a wireless card. Linux or Mac OS X is recommended, but Windows is welcome. Mac users may wish to install TextMate as well.
Groovy half-day hands-on tutorial
Groovy a fast growing, object-oriented scripting language designed for the Java virtual machine. It offers full access to the powerful Java class library in a modern language that supports closures and dynamic typing. Through interactive exercises, this full day, hands on tutorial will bring programmers from zero to sixty with Groovy including:
Interactive development
Control structures and arithmetic
Strings and Regular Expressions
Lists and Maps
Objects and classes
The Java class library
Closures
XML and HTML processing
Prerequisites: None. Attendees must bring a laptop, and should ideally have Groovy preinstalled.
Grails half-day hands-on tutorial
The Grails web development framework applies the lessons of the Ruby on Rails framework to the Java-based Groovy environment that offers full access to the extensive Java class library. In this half day hands on tutorial, attendees will build a complete database backed web site from scratch using Grails and MySQL. Topics covered include:
Scaffolding for CRUD
Views
Mixins
Basic SQL and the MySQL shell
MySQL Conventions
GORM (Grails Object Relational Mapping)
HTTP
REST
Tag libraries
Connecting to Legacy Databases
Publishing HTML, XHTML, and XML
Serving Static Files
AJAX
Prerequisites: Groovy, or the one-day Intro to Groovy class. Some experience with SQL in general and MySQL in particular would be extremely helpful, but is not absolutely required. Attendees must bring a laptop with a wireless card.
Scala
Scala is a clean, modern programming language hosted on the Java virtual machine that supports both object oriented and functional programming styles. Scala combines the practicality of scripting languages like Ruby and Python, the raw performance of the Java virtual machine, and the theoretical purity of academic favorites like Eiffel and Haskell. This seminar will introduce attendees to what may well be the most significant language of the 21st century. Topics covered include:
The type system
Control structures and arithmetic
Functional Programming
Higher order functions and currying
Objects and classes
Strings and Regular Expressions
Generics
Closures
Unit Testing
The Java class library
Prerequisites: None.
Profiling web sites
What do you do when a web site is slow? Where do you look to fix it? Will a faster CPU help? More network bandwidth? A different Apache configuration? Maybe it’s the database that’s thrashing? How do you know and how do you find out?
This session will discuss available tools and techniques for profiling and monitoring web site performance to identify the real bottlenecks. Several case studies will be discussed.
Intro to Hibernate
Hibernate is the de facto standard object-relational mapping layer for Java. Hibernate supports data retrieval and update, transaction management, and database connection pooling. Hibernate is configured with simple XML files which classes map to which tables and which database fields map to which object properties. This talk introduces this powerful library and shows how to configure it for a variety of scenarios.
Hibernate for Brownfield Applications
Defining an object relational mapping is easy when you get to build the database and the Java app at the same time. Object relational mapping is much trickier when the database already exists with hundreds of legacy tables and thousands of legacy fields, only some of which are actually relevant to your particular application. This talk will explain how to write Java programs that use Hibernate to talk to legacy databases whose schemas cannot be changed.
iBatis
The Apache Project’s iBatis is an up-and-coming open source data mapper framework for Java and .NET. Instead of mapping directly to database tables like Hibernate, iBatis maps to arbitrary SQL queries. This makes it much easier to support existing legacy classes and databases. No longer do you need a strict 1-1 relation between classes and tables. iBatis is configured with a combination of XML and SQL. This talk introduces this powerful library and shows how to configure it for a variety of scenarios.
Agile Database Development
The database community has been slow to adopt agile techniques and still preaches big, upfront design. This talk endeavors to prove that it doesn’t have to be that way. Just in time database development with extensive unit testing and refactoring makes it possible for DBAs to become a critical part of agile teams. This talk explores how databases cab be developed incrementally in sync with the rest of the code so they don’t become a bottleneck in the application development process.
Hadoop
The Apache Hadoop distributed file system aims to bring the power of Google’s map-reduce to the masses. Hadoop enables distributed applications to run reliably on large clusters of unreliabe commodity PCs. Hadoop is already being used in numerous applications from South Korea to Mountain View. This talk introduces the Hadoop systems and APIs. Attendees will learn how to deploy and program for a Hadoop system using map-reduce.
Horizontal Scaling
Fast servers with ultrareliable disks are so 1999. Today’s applications like eBay, Amazon, and Google are built on top of large clusters of unreliable, interchangeable, commodity PCs. Scaling workloads is done by adding more PCs rather than by speeding up one mega-server. This talk discusses the architectural challenges of building applications that scale horizontally by splitting data and/or functionality across many different physical servers. We’ll discuss algorithms such as map-reduce and tools like column-centric databases. We’ll explore when to split applications vertically and when to split them horizontally. We’ll also discuss how to build a reliable system on top of individual unreliable component PCs.
When Relational Databases Fail
As powerful and useful as relational databases are, there are more data storage problems they can’t solve than that they can. Roughly 80% of the world’s information is not in databases. It’s in semi-structured and unstructured content such as HTML, Word, Powerpoint, and paper books. The inability of relational databases to handle this important content is not an accident. It is a direct result of the relational model. Not all data can be normalized. Not all data fits into tables. This talk will explore the hard use cases that SQL databases just can’t manage, and then explore some alternatives that can including native XML databases, object databases, and index engines. No, you’re not going to throw out your relational database anytime soon. There are many problems that SQL databases solve very well, but there are other problems they don’t solve, and these problems need database management systems too.
Any Takers?
Usually if I want to learn a subject, I sign a contract to teach it or write about it. There’s no more effective way to learn a subject than by teaching it. Unfortunately this year I don’t have time to do that, so I’m going to have to rely on others. So who wants to teach these? You can submit these (or other) abstracts at https://www.cmpevents.com/SDw8/a.asp?Option=N. The deadline for submissions is August 31. If anyone does teach them, you may see me in the audience. Hope to see you at SD.