Here are my random thoughts. A few of my favorite topics are design, poetry, travel, and computer science. Enjoy! :)

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.

Systems Programming with Rust

Writing an operating system is no easy feat, but it is extremely rewarding and helps polish the skills of even the most accomplished programmer. Operating systems are beautiful and complex, and understanding them is merely the first step to implementing them. In this class, we learned how to write an operating from scratch on the popular handheld computer Raspberry Pi. Previous courses at Stanford like CS107 and CS110 teach topics like processes, memory, and file systems, but this class delves deeper by teaching you how to implement these features from the ground up. In addition, this class does this using the Rust programming language. A major goal of this class is to understand the inner workings of an operating system: to not only know which gears it contains but to also understand how to turn those gears. Let’s take a closer look at the mechanics of the operating system we built in this class.

A New Christmas Toy: Digital Sketching with the Slate 2

Happy Holidays, everyone! Although I'm not home in Florida for Christmas this year, my family sent me enough presents for me to feel like I was home. :) There is one gift in particular that I love so much that I had to blog about it. My mom got me an awesome gift that is officially my new favorite gadget: the Slate 2+. The Slate is a drawing pad that allows you to draw sketches on paper while getting a digital version made via an app in live time. It's incredible! 

Fun with Fractals

There is an interesting intersection between math, computer science, and art that has fascinated me for years, but I didn’t realize how strong the math and computer science components are until my studies at Stanford. The topic represents some of the most beautiful and mathematically sound forms of digital art and nature itself: fractals.

Probability: Finding The Expectation and Variance of Runs

Last week, I completed a summer course at Stanford: CS109, Probability for Computer Scientists. This 8-week long class was intense and challenging but one of the most rewarding classes I've taken at Stanford so far. A few weeks ago, I had an idea for a homework problem but I couldn't quite figure out how to implement the idea. The problem is the following: Below are two sequences of 300 “coin flips” (H for heads, T for tails). One of these is a true sequence of 300 independent flips of a fair coin. The other was generated by a person typing out H’s and T’s and trying to seem random. Which sequence is the true sequence of coin flips? Make an argument that is justified with probabilities calculated on the sequences. Both sequences have 148 heads, two less than the expected number for a 0.5 probability of heads.

Game Theory: An Analysis Of KAMI 2

A few days ago while browsing Apple's AppStore, I came across a new game that has raving reviews. It is called KAMI 2, and for a puzzle lover like myself, I was thrilled to find a new game to love. The visual design is beautiful (the designer in me is proud of whoever created it) and the animations are equally stunning. Some of the interactions of the app are a bit annoying (mainly navigation issues), but overall, the app is very well done and I immediately got hooked on the concept and gameplay.


The sun rose with a vengeance this morning, stretching her fire into the blueness of the night until no trace of darkness was left. Her magnificent rise was a reminder that I had left him two cold nights ago, had taken the first flight home, running away from the sun the entire way back, trying to catch up with the hemisphere I'd left behind for too long. Life was waiting for me to return to reality. I left love behind on the top of the hill where I'd left him, surrounded by the chill of silence and an air heavy with loss and confusion.

Introduction to Game Theory: An Analysis of My iPhone Game

Enter MentalBlocker: my first game app and second iPhone app to be published on the App Store (my first is YumTum, a recipe manager). It was a game concept that I came up with two years ago, but this summer, I finally felt equipped with the right tools and knowledge to design and develop the game. The motivation behind the game is simple: to create a game that challenges a player's memory and problem-solving skills. The game has four modes, all of which have two things in common: a grid of tiles and blocks.

My Love Affair with Havana

There is a sleepy haze around Havana, one that makes you want to fall into a deep slumber filled with dreams about the Spanish colonial buildings, graffiti-lined alleys and classic old cars. Havana is definitively feminine, a woman who knows the power of her charms, beautiful albeit damaged, untouched in some places and scarred in others. She seduced me the moment I stepped out of the airport, with the sun and humid air as her accomplices. She is like a glass of her own rum: dark, smooth, going down warm and staying with you long after your first taste. Intoxication comes easily in this city, more so for me in the mental rather than physical form, as Havana takes pieces of your soul while you sleepwalk through her streets. She is at the same time tranquil and vibrant, a spectrum of colors smeared on a canvas by carefree hands and yet still nothing short of a masterpiece if you don't stare too deeply into the surface. It didn't take long to fall under her spell.

Look Up

Our daily lives are, for the most part, routine. We wake up (and in my case, shamefully hit the snooze button at least 4 times), get ready for the day, and head out to our destination. Usually that requires getting...

Quarter Century

Happy Birthday To Meeee! :) So yes…it has arrived…my quarter century accomplishment has been very fulfilling. I’ve learned a LOT in 25 years, but have a long way to go. I’ve held on to some childish loves and have learned...

Delta Week 2009

Title: Delta Week 2009 Location: Cornell University: Ithaca, New York Description: Mu Gamma Chapter of Delta Sigma Theta Sorority, Inc. sponsors its annual week of events. Start Date: 2009-02-20 End Date: 2009-02-23 Friday, February 20, 2009, 5:04 am: Plantation, FL:...


if a newborn star can shoot its glimmering rays through the stratospheres of the earth, pierce through the smog of sins, and smash into the waters of our land, and if i can see that twinkle of light trapped so...

two one

so i’m 21 now. and upon waking up the next morning (well, the next day because I definitely wasn’t up in the morning) after a successful night of fun at a miami club with my girlz, i realized that it...


…I think only I could wake up one morning and manage to successfully run into my mirrored closet door without knowing fully what happened. The result of this escapade? A bloody lip that I didn’t notice until I figured out...