Seminar attendance is capped at less than 10 students each and registration is on a first come, first served basis.
Certain courses have recommended prerequsite requirements. We feel that in order to benefit from a given seminar, attendees should fully understand the topics covered in the prerequisite seminars. If you feel that your work experience has provided you with a comparable skillset outside of a HDTC seminar, please feel free to register.
|
|
|
|
|
|
|
|
Place: |
|
Javelin Ventures
121 W. Lexington Dr., Suite #612 (6th floor)
Glendale, CA 91026
|
|
|
|
Time: |
|
All seminars run from 9am to 5pm.
The Java for Authors course takes place from 8pm to 9:30pm on Tuesdays and Thursdays
|
|
|
|
Airport: |
|
Bob Hope Airport (BUR)
Burbank
~15-minute drive
|
|
|
|
Hotel: |
|
Hilton Los Angeles North Glendale
100 West Glenoaks Blvd
Glendale, CA
http://www.hilton.com/
(~10 minute walk to Javelin)
|
|
|
|
|
|
|
|
HDTC Courses
Java for Authors
HDTC Seminars
Beginning BD-J Programming
Sofatronic Kaleidoscope Advanced Training
Advanced BD-J Programming
Networking BD-J
VFS Updating with BD-J
Secondary Audio & Video Streams in Blu-ray
View All
Course Curriculum
Select a course above to view curriculum
Java for Authors
Prerequisite: None
Week 1
----------------------
Chapter 1 - The Mental Landscape
- The Fetch and Execute Cycle: Machine Language
- Asynchronous Events: Polling Loops and Interrupts
- The Java Virtual Machine
- Fundamental Building Blocks of Programs
- Objects and Object-oriented Programming
- The Modern User Interface
- The Internet and the World-Wide Web
Chapter 2 - Names and Things
- The Basic Java Application
- Variables and the Primitive Types
- Strings, Objects, Enums, and Subroutines
- Text Input and Output
- Details of Expressions
- Programming Environments
Week 2
----------------------
Chapter 3 - Control
- Blocks, Loops, and Branches
- Algorithm Development
- The while and do..while Statements
- The for Statement
- The if Statement
- The switch Statement
- Introduction to Exceptions and try..catch
- Introduction to GUI Programming
Chapter 4 - Subroutines
- Black Boxes
- Static Subroutines and Static Variables
- Parameters
- Return Values
- APIs, Packages, and Javadoc
- More on Program Design
- The Truth about Declarations
Week 3
----------------------
Chapter 5 - Objects and Classes
- Objects, Instance Methods, and Instance Variables
- Constructors and Object Initialization
- Programming with Objects
- Programming Example: Card, Hand, Deck
- Inheritance, Polymorphism, and Abstract Classes
- this and super
- Interfaces, Nested Classes, and Other Details
Week 4
----------------------
Chapter 7 - Arrays
- Creating and Using Arrays
- Programming With Arrays
- Dynamic Arrays and ArrayLists
- Searching and Sorting
- Multi-dimensional Arrays
Week 5
----------------------
Chapter 8 - Correctness & Robustness
- Introduction to Correctness and Robustness
- Writing Correct Programs
- Exceptions and try..catch
- Assertions
- Introduction to Threads
- Analysis of Algorithms
Week 6
----------------------
Chapter 12 - Advanced GUI Programming
- Images and Resources
- Fancier Graphics
- Actions and Buttons
- Complex Components and MVC
- Finishing Touches
Beginning BD-Java Programming
Prerequisite: None (Basic Java programming experience is recommended)
Day 1
----------------------
BD-J System Model
- Relationship between BD-J & HDMV
- Player Profiles (1.0, 1.1 and 2.0)
- Pixel Buffer Model
- Local Storage
- Application Data Area (ADA)
- Binding Unit Data Area (BUDA)
What is an Xlet?
- Overview
- Standard xlet structure
- Requirements when creating xlets
- Starting and stopping an xlet
- Printing trace log messages
- Your first BD-J application
BD-J Object (BDJO) Files
- Overview
- How to create a simple BDJO File
Testing
- How to play your Xlet
- How to get to the trace log
- Helpful debugging techniques
Day 2
----------------------
Making Useful Xlets
-
How to draw to the screen
- How to get user Input
- How to play video
Application Security
- How to sign JAR files
- Permission request files
BDJO Files Revisited (Advanced Topics)
- Starting/Stopping Applications
- Localized applications
- Using Xlet Parameters
- Signed vs. Unsigned Applications
- Title/Disc-Unbound Applications
Advanced BD-Java Programming
Prerequisite: Beginning BD-Java Programming
Day 1
----------------------
Using Fonts in BD-J
- Overview
- Font file restrictions
- How to create a BD-J Font
- All the ways to get to a font
- The ways that actually work
- Understanding Font Metrics
Persistent Storage
- Overview
- How to access the ADA
- Reading/writing to the ADA
- Setting file priorities & expiration
- What happens when it fills up?
Day 2
----------------------
Application Listing & Launching
- Overview
- The Application Database
- Monitoring the Database
- Launching an application
- Monitoring an application's state
- Terminating an application
Inter-xlet Communication (IXC)
- Overview
- Registering an object for sharing
- Reading the registry
- Acquiring a shared object
- Remote method calls
- Error handling over IXC
Networking BD-J
Prerequisite: Beginning BD-Java Programming
BD-J Networking Overview
HTTP/HTTPS connections
-
Sending data to a server
- GET messages
- POST messages
- Reading the response
Introduction to network sockets
How to create a simple TCP socket server
Creating a TCP socket in a BD-J xlet
Creating a UDP socket in a BD-J xlet
Application architectures for networking
- Client architecture
- Server architecture
Realizing what you haven't thought of...
VFS Updating with BD-J
Prerequisite: Beginning BD-Java Programming and Networking BD-Java
VFS Update Overview
How do VFS updates work?
The manifest file
- Overview
- How to create a manifest file
The signature file
- Overview
- How to generate the signatures
Performing an update - the basics
- Checking local storage availability
- Determining the destination directory
- Copying files to the update directory
- Triggering the update
- Handling errors
Disc-based updates
Network-based updates
Security issues when updating
Managing updates
- Avoiding update conflicts
- Checking update validity
- Removing an update
Secondary Audio & Video with Blu-ray
Prerequisite: Beginning BD-Java Programming and VFS Updating with BD-Java
Overview
- Secondary Audio
- Synchronous PIP Video
- Asynchronous PIP Video
Using Secondary Audio
- Encoding for Secondary Audio
- Mixing metadata
- BD-J Metadata API
- Adding interactive audio
Using Synchronous PIP
-
Preparing video for PIP
- Color space settings
- Luma key settings
- Encoding video for PIP
-
PIP metadata
- Size & position
- Luma key limits
-
Programming Synchronous PIP
- Turning PIP on/off
- Setting PIP to full screen
Using Asynchronous PIP
- Transferring PIP to local storage
- Performing VFS update
-
Programming Asynchronous PIP
- Starting/stopping PIP playback
- Turning PIP on/off
- Setting PIP to full screen
Using secondary audio & video in multi-angle
|