Teaching
-
Lightning Talks
Sanitizers
- Collection of tools developed by Google for use in making safer software
- Includes tools such as AddressSanitizer which is used for finding various memory related bugs at runtime, ThreadSanitizer used for finding data races or deadlocks, and a couple others
Atuin
- Replaces your shell history with an SQLite database and allows you to sync your history across multiple shell instances in real time rather than after your shell closes
- Also allows you to sync your shell history across devices using either their server or one that you can selfhost
Sunshine & Moonlight
- Remote desktop server (Sunshine) and client (Moonlight) originally intended for use with remote gaming but it does also allow you to stream your desktop
Bitwarden SSH
- You can now store SSH keys in Bitwarden and use it as an SSH agent, allowing you to sync keys easily and securely.
*New* SSH Escape Sequences
- SSH has a collection of escape sequences that you can use to modify your current SSH session. You can see a list of them with <newline>~?
*New* Controller in Linux
-
Demoed a small program that makes use of the
<linux/joystick.h>header to get input from a controller and turn it into events that you can use.
*New* Microsoft Powertoys
- An open source set of tools that can be used to make Windows nicer to use.
- Talked about the "toys" that I used most: Powertoys Run, PowerRename, Mouse Without Borders
*New*
std::variant-
The C++ standard library has a tagged union type known
as
std::variantthat allows type-safe usage of its members, something C unions don't provide.
-
Mirror Meetings
Midterm
- I've been holding weekly Sunday meetings for the last 4 weeks with the exception of break weekend.
- So far we have covered the basics of the Mirror software architecture and generally how everything interacts.
- Working on creating and addressing Github issues for things that need to be fixed because they are actively causing issues or because improving on them would provide a good learning experience.
*New* Final
-
We have done some planning for the direction Mirror is
going to go in the future. i.e. Replacing the log server
with Grafana Loki, verification of
mirrors.jsonusing themirrors.json.schemafile, and more. - Almost finished onboarding new maintainers, there are one or two more things that I would like to show before the end of the semester.
Learning
&
Lab Maintenance
-
Cleanup
- Assisted with moving around some furniture and organizing shelves
-
Career Fair Kickoff
- Attended the Career Fair Kickoff with Anthony and Juno to meet employers and share what COSI does with them.
-
*New* Accepted Students Day
- Represented COSI with Anthony & Juno at Accepted Students Day.
- We gave a brief overview of COSI to the families who attended to learn more about the Computer Science program at Clarkson.
-
*New* (Former) Lab Director
- Ran meetings in the lab
- Handed off directorship to Anthony
Projects
-
Mirror
Test Server - Elephant
-
Installed Ubuntu 24.10
- With Mirror dying last semester, we ended up turning the old testing environment into the new Mirror. Because of that we needed a new testing environment to test the changes that we are making to Mirror.
-
Installed and set up ZFS with the following
configuration
pool: storage state: ONLINE config: NAME STATE READ WRITE CKSUM storage ONLINE 0 0 0 raidz1-0 ONLINE 0 0 0 ata-ST4000DM000-1F2168_S301KRLK ONLINE 0 0 0 ata-ST4000DM000-1F2168_S301L4RS ONLINE 0 0 0 ata-ST4000DM000-1F2168_S301N8VR ONLINE 0 0 0 raidz1-1 ONLINE 0 0 0 ata-ST4000DM000-1F2168_S301N9R4 ONLINE 0 0 0 ata-ST4000DM000-1F2168_S301NDHN ONLINE 0 0 0 ata-ST4000DM000-1F2168_S301PWWD ONLINE 0 0 0 ata-ST4000DM000-1F2168_W300VWAW ONLINE 0 0 0
Overhauled Sync Scheduler
- The sync scheduler was having issues with zombie processes lingering around on the system after a failed sync which meant that some of it had to be rewritten.
- While I was working on improving it I came across a lot of "spaghetti" code, threads that didn't need to be used, deep copies of vectors and strings, etc.
- I ended up rewriting a large portion of it to resolve those issues and also to add features that had been missing from the sync scheduler such as manual syncing (thanks to brendan for helping with that).
- I have made a pull request to merge the changes into mirror, however before it gets merged I need to do some wet testing
*New* Sync Scheduler Woes
- The sync scheduler overhaul has been merged into main.
- While syncing certain projects, rsync consistently fails with one of two error codes, 10 or 30.
- I am still not sure what is causing this error, Anthony made a pcap of the sync schedulers network traffic the other day. Going to use that to see if I can find anything that would explain why error code 10 happens.
- Other than those few projects that fail to sync, the sync scheduler works quite well and has been keeping all the other projects up to date.
Down Detector
- I am currently in the process of modifying parts of the Down Detector and also getting it running on my Oracle cloud instance.
-
Installed Ubuntu 24.10