github Repositories

Home Page

Access to, and documentation for, code repositories and stories

Quick Status Recent 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 Content Videos abour Rust Prog. Lang. Introduction, Ownership, Objects, Generics, Code. Rust Models (pdf) Describes models used by Rust programming language. Rust Story This story is essentially complete, with some continuing tinkering. C++ Story This story is complete as of 10 February, 2020. Videos about C++ Models, Rust Models, ...
There are currently seven videos, with more coming.
Jim Fawcett
"Good judgement comes from experience, and experience comes from bad judgement."
- Jim Horning

Site Areas:

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.
Rust Story - fairly long
  • Book of chapters
  • Narative with examples and diagrams
  • Language and Libraries
Rust Bite by Byte - short
  • Short stories about Rust
  • Each focuses on one topic with examples
  • Holds a few shared resources
Selected RustBites - tiny
Rust Glossary and Refs
Rust BuildOn
  • Learn Rust by Building
  • Projects in Steps
  • Beginner friendly
Rust Repositories
CSIAC Webinar:
Rust Error Handling
C++ Story
  • Book of chapters
  • Narative with examples and diagrams
  • Language and Libraries
C++ Repositories
  • Code Documentation
  • Source Code
Idioms & Patterns
  • Compare Code fragments
  • C#, C++, and Rust
  • In progress
Software Development
Many of the images and diagrams in this site are expandable. Click on the body to expand, click on the title to contract.
Figure 1. TextFinder Repo Figure 2. TextFinder Packages Figure 3. TextFinder Output


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 right. A lot of these resources are useful reusable parts rather than complete applications. Many were developed for my Syracuse University classes. New code will appear here for other things of interest now. 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.

Site Contents:

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 Rust, C#, and JavaScript. 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.
Tools, Libs, Demos
  1. C++ Repositories
  2. Rust Repositories
  3. C# Repositories
  4. JavaScript Repositories
  5. Other Repositories
webpages, slides, code, and videos
  1. What is a Story?
  2. C++ Story, C++ Story code
    CppModels.pdf, CppModels code, C++ videos
  3. Rust Story, Rust Story code
    RustModels.pdf, RustModels code, Rust videos
    RustTour.pdf, Abbrev RustTour.pdf,
  4. Rust Bite by Byte
  5. Idioms and Patterns
  6. MLiPS
  7. Data Infinity Library
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 C++ Repositories have a lot of C++ code examples and projects.
  • The Rust Repositories are now acquiring code examples and projects.


Fig 4. Site Layout
The site now has four levels where a level is simply a collection of pages that all have the same "level" menu.
  1. 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.
  2. The Repository levels for C++, Rust, C#, and JavaScript, provide quick access 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.
  3. 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 the page. 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:
You will find more information about the site goals, design, and status in  SiteDesign.html.
Repository home: https://github.com/JimFawcett
Syracuse University website: https://ecs.syr.edu/faculty/fawcett