Quick StatusRecent site additions
Added a Page for Rust Safety
Memory safety, Invariants, Ownership, Non-lexical scope, and Interior Mutability
Added a Repository for learning Rust by Building
Steps which build a Rust project - one step for each part.
Added a Repository for Idioms and Patterns
Short stories which compare idioms implemented in C#, C++, and Rust.
Added a Repository for Consuming Rust Bite by Byte
Short stories each of which bites off a small piece of Rust for discussion
Important ContentVideos abour Rust Prog. Lang.
Introduction, Ownership, Objects, Generics, Code.
Rust Models (pdf)
Describes models used by Rust programming language.
This story is essentially complete, with some continuing tinkering.
This story is complete as of 10 February, 2020.
Videos about C++ Models, Rust Models, ...
There are currently seven videos, with more coming.
"Good judgement comes from experience, and experience comes from bad judgement."
- Jim Horning
This site contains code repositories with documentation, stories about programming languages, and lots of
resources. You will find the top menu helps you figure out what is here and find things by viewing the
dropdowns. A lot of site
pages reside in linked lists of pages, so if you see Prev and Next buttons on the top menu you can
follow those threads easily (this page is not in a list).
Another way of navigating is to use the SiteMap, clicking on that button on
the top menu. A lot of the most useful materials are organized and linked there.
The badges, below, direct you to areas of the site you may find interesting - just click on any badge.
Rust is a relatively new and
clever language that I believe will continue to grow in popularity and use. C++ is an older workhorse
language with a very large application base, widely used in industry for high performance applications.
This site is intended to provide access to, and documentation for, a collection
of code resources, like the TextFinder tool shown in the diagrams at the
A lot of these resources are useful reusable parts rather than complete applications.
developed for my Syracuse University classes. New code will appear here for other things of
Another intent is to experiment with ways to document and deploy code: how to provide
quick access to important code fragments as well as an entire product with multiple packages, how to
balance browser view space between non-trivial text descriptions, diagrams, and images, and how to provide
intuitive navigation through large collections of code and resources.
If you wish to provide constructive feedback about this site, visit my Piazza.com
site and join Class 1: 001: JimFawcett. You won't get any direct emails, but can see any responses
I make by viewing the Q&A section.
The primary contents of this site are Repositories and Stories. Repositories can be accessed from
any home level page from the Repos button on the top menu.
Repos (Repositories) contain code for utilties, tools, reusable components, platform specific
libraries for Windows and Linux, larger projects, and small language specific demos.
Much of the code is written in C++, some
Other language repositories will be added eventually.
All of the code repositories are described in annotated lists that
are accessed via the "Repos" button on the top menu. Each repository is accompanied by
documentation describing its concept, design, implementation, and operation. A few will
describe ideas on which the design is founded in some detail.
Stories are sequences of pages focused on a single topic. They are all related to the content
of this site. You can access them from any home level page from the Stories
button in the top menu.
You will find discussions of ideas and principles for software development in a
series of blogs. Some contain design details about code in a few of the repositories.
For example, there are discussions about designs for a NoSQL database, Parsing, and Directed Graphs.
Also, there are a lot of programming and language reference materials. For now, language references focus
on C++ and Rust, but eventually the site may add references for C#, Java, and a few other languages.
Here are places to look for language support:
Resources (Res) dropdown menu at top of the home level pages.
The Stories dropdown has C++ and Rust story tutorials. Eventually there will be other language
stories as well.
The site now has four levels where a level is simply a collection of pages that all have the same "level"
The Home level menu provides access to annotated lists
of repositories, and to other reference materials, Notes, Blogs, ... about software development and use of this site.
to all the repositories for this site.
You can find a specific repository simply by hovering over each of the categories and viewing its
dropdown list. Each repository menu item links to a documentation page, which in turn links to the repository code.
The Stories level holds sequences of pages for "stories", e.g.,
CppStory, SiteStory, ...
Every page in the site can be accessed via menus, specific to each level, at the top of
If you get lost, all of the menus have an "About" button with dropdown menu
that includes the first page of each level, and also a "Site Map".
The goals and status for this site are:
Goal: Brief, but relatively complete documentation for every repository.
Status: Every repository has documentation, but about half are not yet complete.
Goal: Code for demonstration and test cases for each package in each repository.
Status: Every repository has demonstration code, but only a few have sets of test cases.
Status: There is a substantial amount of tutorial material for C++ and Rust, organized into
site pages and stories.
Building this is an on-going process.
You will find more information about the site goals, design, and status in