Invalid quantity. Please enter a quantity of 1 or more.
The quantity you chose exceeds the quantity available.
Please enter your name.
Please enter an email address.
Please enter a valid email address.
Please enter your message or comments.
Please enter the code as shown on the image.
Please select the date you would like to attend.
Please enter an email address.
Please enter a valid email address in the To: field.
Please enter a subject for your message.
Please enter a message.
You can only send this invitations to 10 email addresses at a time.
$$$$ is not a properly formatted color. Please use the format #RRGGBB for all colors.
Please limit your message to $$$$ characters. There are currently ££££.
$$$$ is not a valid email address.
Please enter a promotional code.
N/A
Sold Out
Pending
You have exceeded the time limit and your reservation has been released.
The purpose of this time limit is to ensure that registration is available to as many people as possible. We apologize for the inconvenience.
This is option is not available anymore. Please choose a different option.
Please read and accept the waiver.
All fields marked with * are required.
Please double check your email address. The email address format does not appear valid.
$$$$ requires a number between ££££ and §§§§
US Zipcodes need to be 5 digits.
Please double check your website URL.
All fields marked with * are required.
Your credit card expiration date is in the past.
Your credit card CSC needs to be 4 digits.
Please confirm your order:
$$$$
You have selected to Pay by Check.
Click OK to confirm your order.
Please confirm your order:
$$$$
You have selected to Pay at the Door.
Click OK to confirm your order.
Please confirm your order:
$$$$
You have selected to Pay upon Receiving an Invoice.
Click OK to confirm your order.
Your credit card CSC needs to be 3 digits.
Your billing zip code needs to be 5 digits.
There was a problem saving your address.
There was a problem saving your credit card info.
There was a problem saving your personal information.
Please select the date you would like to attend.
McAfee Secure sites help keep you safe from identity theft, credit card fraud, spyware, spam, viruses and online scams.
Copying Prohibited by Law - McAfee Secure is a Trademark of McAfee, Inc.
Unknown card type.
No card number provided.
Credit card number is in invalid format.
Wrong card type or credit card number is invalid.
Credit card number has an inappropriate number of digits.
Please enter numbers here.
Please enter an integer value.
Numbers must be less or equal to $$$$
All the required fields have not been filled out. Click OK to proceed without all the required information, or click Cancel to finish entering the missing data.
Sorry, invalid event registration form.
Sorry, invalid event or database error.
Sorry, quantity must be a positive integer.
Sorry, you did not select a valid ticket.
Sorry, invalid event organizer email address.
Your order was canceled.
Thank You. Your order has been successfully completed. Your name and email address have been added to the list of event attendees.
Sorry, that option is sold out.
Sorry, that option is no longer available.
Sorry, there are only tickets of that type still available.
Sorry, you entered an invalid quantity. Please enter a quantity of 1 or more next to the type or types of tickets you would like to purchase.
Sorry, you did not select any tickets to purchase. Please enter a quantity of 1 or more next to the type or types of tickets you would like to purchase.
Sorry, there are no tickets left for this event.
The tickets, ticket quantity or date and time you've requested are no longer available, due to previous sales. Please choose a different date, time or number of tickets and place your order again.
Sorry, one or more of the tickets you requested are no longer available for purchase.
Sorry, you need to select the date you want to attend.
Sorry, the promotional code you entered is not valid yet.
Sorry, the promotional code you entered has expired.
Sorry, the promotional code you entered is not valid.
Your session has expired. Try ordering again.
Sorry, your requested ticket quantity exceeds the number provided by your promotional code.
Sorry, the tickets you are trying to order are not currently available.
Sorry, the payment type chosen is invalid for this event.
Sorry, there is only 1 ticket left for this event.
Sorry, there are only tickets left for this event.
We're sorry, this invitation is invalid.
We're sorry, this invitation has already been used.
We're sorry, you already have an order being processed for this event. Please wait a few minutes and try again.
We're sorry, there is a problem with your invitation. Please try again.
Invalid quantity of tickets selected.
Invalid donation amount.
Sorry, the promotional code you entered has been claimed.
The payment was cancelled.
The payment was declined by the bank.
The payment failed.
The payment expired.
Sorry, the payment type chosen is invalid for this event.
Sorry, your billing address was not saved properly, please try again.
Sorry, we experienced an internal error, please try again.
The captcha you entered is invalid. Please try again.
Invalid credit card selected. You have been logged out.
Sorry, your team selection was not valid.
Sorry, the payment type chosen is invalid for this event.
Sorry, your billing address was not saved properly, please try again.
Sorry, we experienced an internal error, please try again.
State
Zip Code
Province
Postal Code
County
State/Territory
State/Province
Event Details
Training Course Participants And Objective
A two day course intended for
developers with at least 3 months of production programming experience with Scala who need
to understand its advanced features, as well as good library or DSL design
practices.
It will take place in the Tresidder Memorial Union on the Stanford University campus a short walking distance from the Scala Days 2011 conference facility on the 31 May and 1 June 2011.
This course combines presentations with live coding examples and will be given by Martin Odersky.
Objective: This course provides knowledge and skills necessary for writing high-quality Scala libraries and frameworks. It concentrates primarily on library providers' needs, going beyond the point of view of library consumers.
Prerequisites: We assume you have a solid knowledge of Scala application programming (typically, 3 months or more of production experience with the language should be sufficient).
Format: The course is hands-on, combining lectures with exercises and mini-projects. This being an advanced class there will room left for free discussions and explorations of topics you want to bring up.
Part 1: Type Types
A review of Scala's toolbox for defining types and type abstractions. You'll discover all aspects of generics and get some guidance when to use type members or existential types instead. There's also coverage of how to use structural types to reduce coupling.
- Type parameters
- Upper and lower bounds
- Variance
- Abstract types and type aliases
- Existential types vs abstract type members
- Structural types
Part 2: Explicitly Implicit
Implcits are the scalpel of a competent Scala programmer's tool box: Versatile and powerful, but to be used with forethought and precision. This unit will take you through the main kinds of implicit definitions in Scala and will present powerful design patterns that are based on implicits.
- Implicit conversions
- Implicit parameters
- Pimp-my-library
- Type classes
- Manifests
- Generalized type constraints via implicits
Part 3: Adding to Collections
Collections are the primary example of an intricate framework that was designed for re-usable components. This unit will present the architecture of the collections framework, focusing on its use of generics, implicits, and higher-kinded types. It will contain case studies that show how you can extend the framework with your own collections, so that in a few lines you can inherit the functionality of all bulk operations at the right types. It will introduce Scala's new parallel collections and show how you can write your own.
- Collection library design
- Base classes and template classes
- Using implicits
- Using higher-kinded types
- Writing your own collection classes
- Making it parallel
Part 4: From Libraries to Languages
Scala lends itself to very high-level APIs that can become domain specific languages. This unit reviews of the fundamental techniques that Scala offers for writing such embedded DSLs. It also shows you examples of some concrete DSLs that make use of the techniques.
- Customizing syntax
- Customizing pattern matching: extractors
- Regular expressions
- Case study: contracts
- Case study: parser combinators
- Going all the way: language virtualization
Part 5: Putting everything together
This unit combines what you have learned so far in a concrete application, which combines GUI programming, reactive prigramming, expression evaluation in a modular and extensible system.
- GUI programming
- Abstract expression trees
Note Typesafe's training cancellation policy is:
* Full refund with 10 working days notice by email to info@typesafe.com.
* 80% refund with 5 days notice.
* 25% refund with less than 5 days notice.
When & Where
Stanford University
Stanford,
CA
Tuesday, May 31, 2011 at 9:00 AM - Wednesday, June 1, 2011 at 5:30 PM (PDT)
Add to my calendar
In order to purchase these tickets in installments, you'll need an Eventbrite account. Log in or sign up for a free account to continue.