This site is built from HTML, CSS, and JavaScript. No server side processing is needed, other than
to support HTTP GET requests. This means that it can be deployed to directories in a client machine
that has no web server and still run effectively. I use the site, deployed to a laptop, for all
class room discussions.
The design incorporates a dropdown menuing system, implemented in JavaScript. That means that I can
add or remove menu items for multiple pages by making the change in one place - the JavaScript code.
It is easy to navigate because all of the site's functionality is exposed through the top level menus.
A user can simply hover over each of the links at the top to see all the content associated with that link.
You can try that on this page.
Technical content that is common to more than one course is included in the Core Tech links and in the
Blog. I use the blog to present technical ideas that augment course discussions, perhaps with additional
detail. Blog entries also provide information about some reusable components I've developed, e.g.:
- Thread-safe blocking queue used to pass messages between threads and processes
-
FileSystem that provides access to directory content and properties for C++, modeled after
the very well engineered .Net System.IO namespace contents.
-
NoSql Database, developed and used for class projects.
-
Other containers like Directed Graphs and M-ary Trees.
Each course has its own content specific menus - similar from course to course, but not identical.
There you will find notes that serve as brief summaries of things we discuss in class, useful in
preparing for exams and for job interviews.
I've developed some web components to factor site operations into parts that can be reused in multiple
pages, without writing a lot of code:
There is a new standard for
Web Components that I will
explore later. I expect that most of the components I've cited above will be converted to the new standard.