Posts

Weeks 42, 43, 44, & 45

 A whole month without a journal entry! I must be slipping! Or maybe I was having too much fun with some of the projects they were having us do these past few weeks. First there was making that Rick and Morty character search tool using an API, then there was me making my first real foray into Dungeons and Dragons with a companion app that allows users to look up spells and monsters on the fly. There were a couple of express apps as well, like a solar system viewer. Complete with a NASA picture of the day page. And just yesterday I finished an inspirational quote database interface that allows users to add additional quotes and authors as well as modify and remove ones already present in the DB. I'll admit, it's been just as much fun getting some of these to work properly as it is making them look nice with the help of both bootstrap and css code. Although the quote finder project was the most frustrating project thus far. Not for the code or styling, but for the database I was...

Week 41

 Well I got the challenge I asked for. This week was all on JavaScript, the language that makes much of the more interactive features of webpages work. Contrary to its name, it isn't anything at all like the Java language. Save one detail: Most of the lines in a JavaScript file need to end with a semi-colon. Didn't stop it from being a fascinating topic. I'm curious as to what other new languages or libraries are going to get involved in the coming weeks' work.

Week 40

 So now the Internet  Programming class is officially underway. And, I'll say it, I'm a little underwhelmed as to the material. It is bootstrap week for the course, so I can't be too harsh on it. I was expecting more than basic html writing however. Here's hoping things get a bit more interesting next week.

Week 38 &39

 Once again at the end of another college course. Some how this one felt like it went by the fastest so far. I wasn't expecting it to go as fast as it did, but here we are. Real grateful that the professor extended the due date for the final programming assignment to this Saturday instead of the usual Tuesday. It's a lot more headache than the previous three, despite the fact that most of my rust in python coding has been shaken off. Ah, well. Computers and programming have been like that for ages, I really don't think that's going to change anytime soon.  The orientation for the next course, Internet Programming, is also going to be this Saturday. I wonder if it's going to include any webpage authoring and html.

Week 36 & 37

 I really wish I remembered to write last weeks post, but there actually wasn't all that much to write about, frankly. The only major thing that went on in our computer networks course that week was coding a simple chat room between two hosts. Equal parts fascinating and frustrating, the assignments demonstrated that network programming was just as much easy to grasp as it was migraine inducingly difficult. But, then, isn't that just programming in a nutshell? As for this week, we went over some of the internet's architecture and its quirks. One of which may be a familiar face for those who used to be a part of LAN gaming parties back in the 2000s. Much of the internet has and still is using IPv4 protocol which uses a 32-bit addressing system. 32-bits provides 4,294,967,296 unique IP addresses for devices. It seems sufficient at first glance, but 4 Billion isn't exactly a lot in the grand scheme of the world wide web. One of the ways to delay the very real possibility o...

Week 35

Even on the surface, barely past the basics, the concept of computer networks seemed fairly complex. Now having finished the Midterm for 'Intro to Computer Networks', I can say that it's far deeper than I could've expected. Like onions, ogres, and computer programs on the one computer, computer networks have layers. And there are a lot more packets being thrown back and forth on a given network connection than most realize. I found my self fairly overwhelmed as to how much is going on at once. I'd go further into detail but it is 5 minutes past midnight at time of penning this. I was practically nocturnal earlier on in the program, so what the heck happened? Is it some seasonal thing, or what? If I ever figure it out for sure, I'll at least try to have it in a journal or something.

Week 34

 And this was me having gone through the trouble of adapting Sam's framework only for the only work this week to be a programming assignment. Oh well. I guess that's just the ebb and flow of schoolwork I suppose. Once one's past the initial phase of socket programming, the code isn't all that intimidating. In fact, I found myself pleasantly awash with nostalgia. All the fond memories of learning Python years ago coming back to me as I worked. There are few things that beat the sensation of completing a program or script, and watching it do exactly as intended. With the next couple of weeks' work available and the midterm coming up, I'm starting to see what they were talking about back when I was in the Proseminar course last fall. This program is moving faster than I expected it to.

Week 33

 I know. I'm late. But there was quite the bit going on this week. First there was a Canvas breach that hit 275 million students nation-wide, then there was a phishing attempt that was masquerading as some "career accelerator" or some nonsense along those lines. Real circus that.  Beyond this, the networking class is going rather well. I've already gotten to grips on much of the terms and names involved, and the layers that a network is comprised of. You have know idea how much that "____ has layers" line from Shrek  kept showing up in my mind as I was working this week. The second programming assignment has ben posted and I've been informed that such assignments are designed to build off of one another. As in, some of the files from the first assignment will be modified in the second. I'm curious as to how that works in practice.  Man, this post is short. I need to figure out how to adapt Sam's framework, sharpish.

Week 32

 Here at the beginning of Intro to Computer Networks and I can already tell that Sam's journal format isn't going to be much help here. Or, at least, not for this week. Bootstrap week (yes, I'm still calling it that) is more getting everything set up for the rest of the class than it is learning anything groundbreaking. The class is already looking like most of the headache is in the demonstration side than it is learning the material side. Had to restart the first lab multiple times, and it wasn't to address needing to adjust configuration options. In any case, I pulled through it fairly well. The virtual machine, or, I guess its more of a virtual network, is a fascinating thing to work with, and when its all working as it should its very satisfying. I'll admit, I was expecting it to be a lot more difficult to grasp going in.

Weeks 30 & 31

 And now here I am at the end of our fifth class in the program. I don't know whether or not its too early to say I'm past the 50% mark yet. I can't say I'm not nervous going forward with the program, I still have a foreign language requirement to consider, and the capstone is still something I have more questions than ideas for. Still, I have asked the questions about the language requirement, and I have a couple of potential questions about the capstone drafted to ask later, once the Operating Systems final is over and done with. There is something that's been settled: I'm using Sam's format for these journal posts going forward. So much more interesting to write about. As for week 7's topics, we covered: I/O Devices - Things like mice, disk drives, and keyboards and the various busses used to connect everything together. A fair bit of what was covered here had been seen, albeit briefly, elsewhere. Or, at least, I had seen it elsewhere, can't remem...

Week 29

Another week down, another set of projects finished. Not much more to say really. There is still the topic of needing to take a foreign language course to sate the requirements, but that's its own matter. As for this week in Operating Systems: The topics were on  Condition Variables -  The book itself expressly calls them 'queues', despite behaving like a memory variable. Threads can place themselves onto said 'queue' when a condition isn't satisfied. While waiting for the condition to be satisfied, the thread goes to sleep. No, really. While the condition the thread is waiting on isn't met, that thread would still be 'spinning', or 'running around in circles in place'. This wastes precious CPU time. The thread enters the sleep-like waiting state with the wait() method, which frees up the CPU to work on other threads. When another thread has done what it needs to it uses the signal() method to wake up a sleeping thread once the condition has ...

Week 28

Normally, I'd have something more to say in this little prelude, I guess, before getting into the post itself. I'm convinced I've said it several times at this point, but I always fall short of things to say. And, now that I'm writing, I don't think that's really changed. Far and away, the main source of these recent posts content has been Sam's prompt. Might end up keeping it for my future classes. As for this week, once the midterm and its difficulties were done and out of the way, we covered: Concurrency and Threads - The general idea of, and motivation to use threads. Threads are, for lack of a better phrase, processes within processes. Strings of executions of instructions within the same process. Up until now we've had single-threaded examples, with one memory block for code, one for the heap, and one for the stack. And much of what happens between threads is about the same as what happens between processes, switching from one thread to another wit...

Week 27

 Halfway through the class already. Not sure what to make of it, beyond that it's all progress. Much of this weeks work was on memory management, with a lot of emphasis on the paging process. I didn't expect to catch on quite so quick this week but here we are. I've put off any sort of serious work until Thursday. Because tomorrow is April 1st. April Fool's day. The day I can't get anything serious done. Anyhow onto the weekly framework for the class. I've mentioned it before, but I'll mention it again: I like the framework that Sam's given us for the weekly journal. This week was a continuation of the memory management techniques learned last week. The topics included: Free Space management - Or "How to Keep the Free Spaces in Memory From Becoming Too Small to Use". It happens more often with segmentation than paging, but external fragmentation is a problem that occurs when the spaces between reserved spaces get too small for anything useful t...

Week 26

The OS work is continuing at steady pace now. This week's work wasn't as much of a headache as I thought that it would be. Going forward, there is now the additional task of a group project. In which, we are to read a foundational systems paper, and produce a summary, video presentation, and a personal reflection on it. I've opted to go it alone, if only to try and break a procrastination issue I've had for years.  As for the Week's work, we covered: Address Spaces - Blocks of memory set aside by an OS for programs to work in. They're usually composed of a three segments: The program code, the heap, and the stack. The Heap contains dynamic data structures and any data storage requested via the malloc() method. The stack contains local variables, arguments for routines, return values, etc. OSs have three goals when virtualizing memory: transparency, which actually means the program doesn't realize its memory is virtual, efficiency, in terms of time and space,...

Week 25

 So this is the week I did adjust all the week numbers on the posts. Still feel like I'm missing numbers but I'm not in position to fret about it at the moment. Sam has setup the framework that I used for last weeks post to be used every week for his course's duration. Honestly, no complaints here. In my posts for the Intro to Database Systems course, I had mentioned not having very much to write about in these posts, so Sam having this framework in place is definitely making it easier. The subjects we covered this week were: Processes, the fundamental abstraction of the OS. Running programs, simply put, and all the components of them, how memory is allocated, the states they can be in, and so on. The core focus of the OS' operations. The Process API. How to create and control processes through the bash shell and C language. New processes can be created by the fork() or exec() commands depending on whether you're copying an already running process or running a new p...

Week 24

 I know I've skipped a number, but I've learned I've had two posts both labeled 'Week 11'. I should have that sorted by next week. As for the Operating Systems course: It's only the first week of it, and I've already experienced assignments completely disintegrating as I try to complete them. Sam, our instructor for this course, has provided a prompt explicitly for the journal entries. So I do appreciate that much. He's provided the following points and asks we treat them as steps. Identify the topics we covered in class -- you can start by listing them Explain what each of the topics were in your own terms -- take the identified topics and add a sentence or two describing them Identify least-understood topics -- of these topics, which was the hardest for you to write the descriptions? Explain the nature of your confusion -- for these difficult topics, what pieces of them make sense and what pieces are difficult to describe? Identify "aha" mome...

Week 22 & 23

Another bi-weekly post. Or at least, it is by official declaration. The final eighth week of each class in the program is only half length. Which is somewhat confusing to say at least. By my count, this is covering the 21st and 22nd weeks, which is making me think I've missed a post or two somewhere in the program. In any case, despite how well things have gone for me thus far in the program, I find myself having lengthy moments of what I can only describe as "overextension of perception of the surrounding world." At one point I would've been able to write them off as mere anomalies. Unusual spates of activity from my, frankly, overactive imagination. Little nightmares, more often impossible, of futures bearing fruitlessness or failure. I know that this sort of thing isn't healthy. That expecting the worst means expecting to not be disappointed. But that's why I find it often helps. After a certain point, one learns that its way more fun to be surprised than i...

Week 20 & 21

 So, here we are with another bi-weekly post. I did have that quick message with the instructor about maybe branching out in regards to topics here on the learning journal. And, to be frank, I'm still not sure what I was expecting out of it, if anything. According to the instructor, it was designed around the learning science. He did recommend that I at least try to maintain weekly posts, even if it did amount to short recollections of the mundanity of the learning process.  Still, the seeming mundanity of the course as it is, isn't all bad. I'm finding even mildly novel experiences to be rather exciting. It might not seem like much but this weeks Python code work had a novelty in one of the test files. I'm so used to seeing near instantaneous responses out of these, the fact it took nearly a minute and a half to complete had me thinking I'd somehow managed to deadlock it. Another novelty, The answer being simple and straightforward. I'm so used to answers needi...

Weeks 18 & 19

 In all honesty, I would've posted something last week, but I just didn't very much to post about. The most interesting thing that's happened, school-wise, is the fact I had my first proctored exam on the 31st. Don't get me wrong, I'm confident in how it turned out, and it was a pleasing twist on the usual online/Canvas test taking. The issues is that that's really the only thing that I have to write about that's related to school. This is why I don't see myself as a blogging sort of person, I always run out of things to say. Yes, there are other things going on in life and the world but I'm not sure if any of it fits the limitations here. These supposed-to-be-weekly writings are meant to be a learning journal throughout the program I'm in, and some of what I have to talk about is much more likely to come across as me ranting about something unrelated to my learning experiences. So, as much as I wish I could pen more about how things are going he...

Week 16 & 17

 I know. I know. I missed last week's post. But that just shows how much a break (as needed as it was) can mess with one's rhythm. Entering the new year we began our Intro to Database Systems course. I wasn't expecting to meet back up with the Python programming language again. Or the fact that setting everything up would be so quick and straightforward for such an intricate and widely used set of programs.  I consider this a good thing, as a groupmate of mine had started an internship and Docker Desktop was one of the programs they were being tasked with using. It was through them that I learned how widely the tool was used, so it should come as no surprise that I feel the need to keep a notebook of various functions, tools and tricks to use with Docker and other programs like it for use later. Come to think of it, I've been having that same feeling, albeit retroactively, about the software engineering course I finished before the new year. I certainly hope I can go ba...