Training Courses
Format of the Training Courses
For your convenience, the training courses are provided in multiple formats.
- Slides in Microsoft PowerPoint 2000 for viewing/projecting and editing. This is typically packaged as a zip file containing a separate PowerPoint file for each chapter of slides.
- Slides in PDF format, for viewing/projecting if you do not have Microsoft PowerPoint. This is typically packaged as a zip file containing a separate PDF file for each chapter of slides.
- Monolithic PDF file. This is a concatenation of all the chapters of slides into a single PDF file, and a title bar showing the chapter number has been added to the top. The purpose of this file is to enable you to easily preview slides without having to download a zip file and extract files for the individual chapters.
- 2-up, 4-up and 8-up training manuals (PDF). These are suitable for printing on A4 paper and giving to your students. Whether you want 2-up, 4-up or 8-up depends on how good your eyesight is and how many notes you want to write on the printed pages.
Available Training Courses
Skills You Need to Change the World
This is a multi-day training course for people who want to change the world, regardless of what label they apply to themselves (activist, community leader, inventor, entrepreneur, politician, scientist, concerned citizen, or something else).
You will probably want to download: (1) the slides manual, and (2) the notes manual. You may also optionally want to download: (3) the slides and/or the LaTeX source for the notes manual. If you want to promote this training course, you can print out a promotional poster and put it on a noticeboard.
The slides manual:
- Formatted for A4 paper: 8 slides per page (4.4 MB), 4 slides per page (4.4 MB), or 2 slides per page (4.4 MB).
- Formatted for US Letter paper: 6 slides per page (4.4 MB), 4 slides per page (4.4 MB), or 2 slides per page (4.4 MB).
The notes manual: for A4 paper (322 KB), or for US Letter paper (324 KB).
The slides: in PowerPoint 2000 format (2.7 MB zip file), or in PDF format (4.3 MB zip file).
The LaTeX source for the notes manual: as a zip file (152 KB).
Promotional poster: A4 paper (61 KB PDF), or US Letter paper (62 KB PDF).
Java Reflection Explained Simply
This training course explains the concepts of Java reflection. Even if you will not use Java reflection in your own programs, it is still worthwhile knowing because reflection is used an an ever-growing number of popular Java tools, such as Ant, JUnit, Eclipse, Spring, Hibernate and code generators.
- Monolithic PDF file for online viewing (447KB)
- Slides: PowerPoint format (208KB zip file); PDF format (430KB zip file)
- Training manuals: 2-up (441KB PDF file); 4-up (438KB PDF file); 8-up (435KB PDF file)
Secure Communication Concepts Explained Simply
This is a concise training course for people who want to understand the concepts of secure communications but don’t need to know the details. For example, perhaps you need to install and configure a new client-server system that supports SSL (encrypted) communication. To enable that functionality you may need to create an X509 certificate and configure the server to download that certificate from an LDAP server. If you don’t know anything about LDAP, X509 certificates, SSL, public-key encryption or other buzzwords associated with secure communications then this short course will get you started on learning what you need to know.
- Monolithic PDF file for online viewing (814KB)
- Slides: PowerPoint format (337KB zip file); PDF format (779KB zip file)
- Training manuals: 2-up (806KB PDF file); 4-up (801KB PDF file); 8-up (799KB PDF file)
Multi-threaded Performance Pitfalls
Let’s assume you have just deployed a multi-threaded server application. It performs well when you test it on a 2-CPU computer and all requests take less than a second to be processed, even when there is a heavy load. Naturally, you expect it to perform even better when it goes into deployment on an 8-CPU computer. You are horrified when it performs worse on the more powerful computer, and customers complain that some of their requests take several minutes (rather than fractions of a second) to be processed. This presentation explains what might be going wrong and what you can do about it.
- Slides: PowerPoint format (99KB); PDF format (112KB)
- Handout pages: 2-up PDF (107KB); 4-up PDF (106KB); 8-up PDF (105KB)
Generic Synchronization Policies
Generic Synchronization Policies (GSP) is a class library that provides what is possibly the simplest way ever invented to write synchronization code for C++ applications.
- Paper: online HTML; PDF (63KB); 2-up PDF for printing (103KB)
- A Romanian version of the paper translated by Andrian Pantilimonu at Science Spaces
- A Serbo-Croatian version of the paper translated by Anja Skrba at WebHostingGeeks.com
- Slides: PowerPoint file (164KB); PDF file (150KB)
- Handout pages: 2-up PDF (143KB); 4-up PDF (141KB); 8-up PDF (140KB)
- Software and documentation: zip file (800KB); compressed tar file (768KB)
Note that an older version of this paper is provided as part of the “CORBA Utilities” package.
Miscellaneous Issues
Suggested Uses of the Training Courses
The training courses are suitable for several uses.
-
Self-teaching. There are several reasons why
the slides provide a great way for you to get up to
speed with their subject matter. First, the slides are
detailed enough to be “self-teachable” so you
won’t need a subject-matter expert to teach you the
courses (though a subject-matter expert would be able
to provide added-value comments). Second, the slides
provide more detail than you will find in most online
tutorials. Third, if you print
out the 8-up version of the slides then you will find
that they are much more concise than books that cover
similar material. The slides are not intended to
replace books, but I think you will learn faster and
in more depth if you read the slides first (to get
a comprehensive overview) and then read a book afterwards
(to get some more detail) rather than if you just read a
book by itself.
- Lecture notes. If you are a university
lecturer then you could use some of these courses
instead of writing your own lecture notes from scratch.
If the slides are suitable “as is” then the 4-up or 8-up
PDF files will make good handouts to give to your
students. If you want to modify the slides to better
suit your needs then the open-source license allows you
to modify the slides and re-distribute them.
- Peer education. The training courses are
highly modular, with lots of short “chapters” of
PowerPoint files. If you work in a company with constant
deadline pressure, limited training budget, and where some
of your colleagues are struggling to learn a technology
then you could organize a short series of lunch-time training
sessions. Some places call this “brown bag” (as in,
“bring along some sandwiches in a brown paper bag”) or
“lunch and learn” sessions. The likely results are
that your colleagues will be grateful for the
simple-to-understand training, and your boss will be
delighted at the zero impact on the training budget.
- Commercial training. The open-source license allows you to combine these training courses with closed-source training courses. So rather than write a training course from scratch, you can use these courses as a starting point.
Open-source Copyright License
All the training courses are distributed under an MIT-style software license, except that I have replaced “Software” with “Training Course”. In brief, the copyright license states you must not remove the copyright notice but, aside from that, you can use or modify the training courses as you want. For example, you can use them in both open-source and closed-source training courses, and you can give away the training courses for free or you can sell them. You can find information about open-source licenses from the Open Source Initiative (www.opensource.org).
Here is the copyright notice.
Copyright © 2008 Ciaran McHale.Permission is hereby granted, free of charge, to any person obtaining a copy of this training course and associated documentation files (the "Training Course"), to deal in the Training Course without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Training Course, and to permit persons to whom the Training Course is furnished to do so, subject to the following conditions:
- The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Training Course.
- THE TRAINING COURSE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE TRAINING COURSE OR THE USE OR OTHER DEALINGS IN THE TRAINING COURSE.
Feedback and Contributions
If you have any comments on a training course, especially feedback that will help me to improve them, then please contact me through any of the means listed in my contact details.
If you modify one of the training courses then its open-source copyright license means that you are not obliged to send me your modifications. However, if you want to send me your modifications (or, even better, new material to extend a course) then that will help the training courses to improve over time. It is important to note that whenever you send me modifications or new material, I will assume you are agreeing to turn over their copyright to me. I will be happy to mention your name in the acknowledgements section of the training course.
The reason why I want to retain exclusive copyright of the training courses is that, although the free and open-source software community has had several decades to experiment with different copyright licenses and figure out what works well, the open-source courseware community is relatively young and is still finding its way with copyright issues. As an example, many people assume that all the Creative Commons licenses are suitable for open-source documentation. In fact, only two of the six licenses defined by the Creative Commons comply with the open-source definition; the other four Creative Commons licenses prevent derived works or commercial use, both of which must be allowed for a license to qualify as open source.
Because the open-source courseware community is still very young and there is widespread confusion over copyright licenses, I do not feel confident that the MIT-derived license will stand the test of time for use in open-source courseware. If, in a few years time, somebody develops a license better suited for open-source courseware then I might wish to use that new license on my courses. Switching from one license to another might be difficult if I had to contact dozens or hundreds of copyright co-owners and get their approval for the change in copyright license. By ensuring I am the sole copyright owner of the courses, it will be much easier to switch the courses to use another copyright that is better suited for open-source courseware.