"Everything should be made as simple as possible, but no simpler." - Albert Einstein (paraphrased from a lecture at Oxford in 1933)

Welcome to rozmichelle.com!

On this site, you will find all kinds of creative outlets, with topics including poetry, travel, design, and development. I like to think of my site as a diverse representation of me as I strive to master self-understanding. I started this website in 2005 and it continues to be a source of expression for me as I design, write, cook, and code my way through life. I hope you enjoy the journey!

Thank you so much for being here, and please sign my guestbook or send me a message if you are inspired by this site in any way.

Interactive Storytelling with Twine

This is my last quarter at Stanford before I graduate, which is a bittersweet experience for me. I am taking my last two classes before getting my MSCS degree, so it was important to me that I take classes that I would immensely enjoy and learn from. In addition to CS155, I'm also taking CS377G: Designing Serious Games. This class deep dives into what it means to create compelling games that captivate and enrich the lives of their players. It has been a whirlwind of a class in the very best of ways, and for my second class project, I had an opportunity to combine all three of my loves: writing, designing, and developing! The premise of the game is to use interactive fiction to drive the narration of a story by giving the player choices that influence the outcome of the game. Game layouts can range from all text to a mix of text, sound, images, and other media to create a "choose your own adventure"-flavored experience. I like to think of the platform as a digital version of the Goosebump books that I used to read as a teenager.

Pipes, Forks, & Dups: Understanding Command Execution and Input/Output Data Flow

I'm currently enrolled in a systems programming class at Stanford (CS110: Principles of Computer Systems). It is the second systems class I've taken (the first was CS107 which teaches C and focuses on understanding pointers and memory management). This class focuses mainly on the inner workings of the operating system, using C and C++ to teach us concepts like process management, program execution, and handling data. While I enjoyed and quickly grasped the concepts taught in CS107, I've had a harder time understanding the material in CS110. The class itself is extremely interesting and well-taught, but my main pain point has been understanding the way processes share data and how input and output work across commands entered in the terminal. In the last few days, however, I finally found clarity when I started creating diagrams to model process behavior and the path that data takes as it travels from one command to another. I'd like to share what I've learned with you. In this post, we'll go over how Unix commands pass data to each other via pipes and input/output redirection and I'll illustrate what actually happens to the flow of data when a command is executed.