Organizing Some Time Off So I've been given 2 months off at the graciousness of my employer. There are too many things I want to do and not enough time (despite it being 2 months), so let's transcribe my spreadsheet of tasks to a real life schedule. Assumptions: - 40 hours of productivity a week (5 9-5 days) - One post every two days What I Want Out of It: - Be demonstrably better at architecting, developing and debugging at the C systems level - Get closer to being able to deploy linux solutions for custom embedded systems - Create a capstone project tying most of the concepts together Looking at the Time Period August September Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 29 30

Scheduling

I've got 9 weeks to allocate, which gives me a total of 45 days or 360 hours (a nice number) With the help of a few friends and colleagues, I basically built a curriculum that would cover the basics of what I want. In the following tables I have organized the sequentially and given them point values. ................................................................ .Book Goals . Value . Time . ................................................................ .[ ] C Programming A Modern Aproach . 6 . 2 week . .[ ] The Design of the Unix Operating System . 4 . 1 week . .[ ] C Interface Implementation . 4 . 4 day . .[ ] Linux Device Drivers . 5 . 1 week . .[ ] Modern C . 3 . 1 week . .[ ] Linkers and Loaders . 3 . 3 day . .[ ] Hacking the Art of Exploitation . 3 . 2 week . ................................................................ ..................................................................... .Project Goals: . Value . Time . ..................................................................... .[ ] Python Module for a library implemented in C . 3 . 1 day . .[ ] Discord Chat-Bot with Plugin System . 4 . ?4 day . .[ ] V4L webcam consumption program in C . 5 . 2 day . .[ ] ROT13 driver . 6 . 1 day . .[ ] Linux driver to interface with arduino as i2c . 7 . 2 day . .[ ] Multi Node Ping Pong Tracking System . 7 . 3 week . .[ ] lfs working on my desktop . 5 . 3 day . .[ ] lfs working on a pi or beaglebone . 6 . 2 day . ..................................................................... So as we can see, with these estimates I've clearly overbooked my time. With 8.2 weeks assigned to reading alone, and 6 weeks on the projects. This means I've got 5.4 weeks of fat to trim or time to stretch, which is more doable than it sounds. Let's rethink the situation:

Paring Down the Schedule

The main project goal I want to get done is the multi node ping pong tracker system, as a capstone to tie things together. This comes necessarily after the C exploration and research phase. What I want to incorporate here is driver and systems level parallelization, and I care less about linux from scratch or the hacking books. They can be placed last in line because they are least dependent. This alone cuts 3 weeks off the time. Moreover, we see we cover a lot of ground in C books. There is going to be a lot of redundancy and thus we can assume either that we go through the later C books faster, or that they are less necessary and put them on the backburner depending on where we are on the schedule after reading the initial books. Thus if we eliminate modern C, and halve the coverage of UNIX and put linkers on the backburner, we save another week and a half. This leaves us with two days we've got to make up. I can't cut more and therefore I have to consider violating my initial 9-5 assumption. Luckily, from these cuts I only have to make up 16 hours. Considering my sechdule and the energy you have at the start, I should spend 3 days of the first 2 weeks working 9-8 and thus add 18 hours to the schedule. I would only have to spend two weeks in crunch mode, and spread out the learning instead of cramming too hard. With all these annotations, the reduced minimum schedule looks like this: ................................................................. .Book Goals . Value . Time . ................................................................. .[ ] C Programming A Modern Aproach . 6 . 2 week . .[ ] The Design of the Unix Operating System . 4 . 1/2 week. .[ ] C Interface Implementation . 4 . 4 day . .[ ] Linux Device Drivers . 5 . 1 week . .[ ] Linkers and Loaders . 3 . 3 day . ................................................................. ..................................................................... .Project Goals: . Value . Time . ..................................................................... .[ ] Python Module for a library implemented in C . 3 . 1 day . .[ ] Discord Chat-Bot with Plugin System . 4 . ?4 day . .[ ] V4L webcam consumption program in C . 5 . 2 day . .[ ] ROT13 driver . 6 . 1 day . .[ ] Linux driver to interface with arduino as i2c . 7 . 2 day . .[ ] Multi Node Ping Pong Tracking System . 7 . 3 week . ..................................................................... So with this post, I mark the start of my sabbatical and educational period. Stay tuned here for updates! # Tue, 23 Aug 2022 10:07:50 -0400 So, I finished first two objectives of the sabbatical. C Programing book, Python module, and C Interface Implementations. I now have to figure out what to do with the remaining time. I guess I have no problem with continuing to grind on linux knowledge for this week. Afterwards, however, I should focus on networking knowledge and try to implement that python bot. I know in the back of my head that it'll take longer than I want, maybe even half the remaining time. Leaving nothing for the ping pong tracking system. I think that instead, I should focus on the ping pong tracking system and, after the linux driver book, write a V4L consumer with X. I should benchmark V4L recording and processing and then design an overall approach to the project. This week I hope to finish the "Linxu Device Drivers" book and then idk