S R T B H P N

Home Page

Access to, and documentation for, code repositories

Jim Fawcett
Quick Status Recent additions Added a Repository for Consuming Rust Bite by Byte A sequence of short stories each of which bites off a small piece of Rust for discussion Added a code index for the Rust Story Lists demonstration code packages and their topics. Added a presentation on Rust Error Handling Introduction, what's unique, Rust panics, avoiding undefined behavior,
error handling types, using Result<T, E> with is_ok(), matching,
bubbling errors up call chain, and some examples.
Added five 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.    
"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). The badges, below, direct you to areas of the site you may find interesting. 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.
Rust Bite by Byte
  • Short stories about Rust
  • Each focuses on one topic with examples
  • Beginner friendly
Rust Story
  • Book of chapters
  • Narative with examples and diagrams
  • Language and Libraries
Rust Repositories
C++ Story
  • Book of chapters
  • Narative with examples and diagrams
  • Language and Libraries
C++ Repositories
  • Code Documentation
  • Source Code
CSIAC Webinar:
Rust Error Handling
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

Purpose:

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.
Repositories:
Tools, Libs, Demos
  1. C++ Repositories
    CppBasicDemos
  2. Rust Repositories
    RustBasicDemos
  3. C# Repositories
  4. JavaScript Repositories
Stories:
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,
    CSIAC_RustErrorHandling.pdf,
    Rust Demo Code Index,
    Rust bite by byte - a pdf
  4. MLiPS
  5. 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++, but eventually the site will add references for Rust, 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.

Structure:

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 Language level provides language feature specific discussions and code examples, now exclusively for C++, but more languages will be added soon.
  4. 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".

Status:

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