Category: Parenting

  • Distributed Computing – Goodbye and thanks for the wonderful semester

    Distributed Computing – Goodbye and thanks for the wonderful semester

    I just finished Spring 2021 at Georgia Tech OMSCS and published a farewell note on the classroom’s forum (i.e. Piazza platform) and would like to share that here:

    This was one hell of a semester! Hats off to professor Ada and our great TAs — I learned a great deal about both theoretical and practical distributing computing knowledge, experiencing first hand how tweaking a retry timer by a few hundred milliseconds can make or break your day.

    But above all else, thanks to all the other students in this class, I felt extremely supported, more supported than any of the 8 courses I had previously taken in the program.

    More than once throughout the class I contemplated just throwing in the towel. The last couple projects in particular really wore me out mentally and emotionally (e.g. 10 hours troubleshooting for a one-line fix to pass one single test) and if it wasn’t for the constant support of all my peers over Piazza and Slack, I would’ve probably not only dropped from the course but the journey itself would’ve felt a lot more isolating, especially in the midst of the pandemic.

    Now, there are definitely rough edges with this course, particularly around pacing on the last couple projects. But given that this was the first semester that distributed computing was offered as part of OMSCS, I anticipated minor bumps coming into this class and have no doubts that the logistics will get smoothed out over the next couple semesters.

    Finally, for those of you graduating this semester, congratulations! Way to go out with a bang. And for the rest of us, see you next semester!

    Thanks again for all the support and let’s stay connected (contact info below). Now, time for a much needed nap after taking the final exam:

  • COVID-19 stunting Elliott’s social skills

    COVID-19 stunting Elliott’s social skills

    Like almost every other parent, my wife and I are doing our best to shelter our 16-month year old daughter, Elliott, in the midst of the COVID-19 pandemic, us parents trying to fabricate a bubble with some sense of normalcy. Up until recently, I tricked myself into believing that we could mask (or minimize) the impact of social distancing on Elliott. Unfortunately, I no longer hold on to that belief.

    On Monday afternoons, Jess attends a (remote) hour long appointment and during that time, I break away from my office and watch over Elliott. This past Monday, Elliott and I walked — well, I mostly carried her — to the neighborhood park located right around the corner. And when we arrived, in the distance (about 50 feet) were two young girls (around six and two years old) and their nanny, the three of them sitting cross-legged in a circle on the ground, feasting on their homemade picnic.

    Elliott waved her little hand at them and caught the attention of the one of the little girls, who raced over and introduced herself, abruptly stopping just about six feet away from us.

    “I’ll keep my distance, because of the coronavirus.”

    After shooting the shit with this 6 year old for a couple minutes, we parted ways and Elliott and I continued walking towards the swing area. I noticed that Elliott was still gazing at the two little girls sitting in the distance. When I planted Elliott down on her own two feet, she spun around and faced the direction of the girls, turned her heads towards me, then stretched her arm our towards them, pointing her index finger in their direction, signaling to me she wanted to go play. But I had to explain to her that she couldn’t and that we needed to keep our distance.

    Elliot started bawling. Non stop.

    I felt so sad for her.

    I squatted down to her eye level, trying (as best as I could) to gently explain to her that she couldn’t go play with them. But it was no use. Nothing I said comforted Elliott.

    God damn this pandemic.

    I hope and pray that this pandemic ends soon and that we can return to our “new normal”, a normal that allows children to run around with each other, play tag, hug one another, without them fearing, or their parents fearing, for their lives.

  • Week in Review:  2021/01/17 – 2021/01/24

    Week in Review: 2021/01/17 – 2021/01/24

    Not too much to report this week. Not because nothing happened, but because I wasn’t at diligent in capturing this week’s activities; I was on-call this week and carrying the pager almost always disrupts my flow, this week being no exception. My pager alarmed me out of bed several times  (e.g. 12:30 AM, 2:30 AM, 4:50 AM), throwing off my rhythm, confusing my body’s circadian rhythm and making me wake up at unusual times. In addition to the thrown off sleep schedule, on call constantly interrupts my trains of thoughts and whatever I happen to be doing at the time gets dropped. This results in me forgetting to write my days down.

    Family

    See you next year Christmas Lights

    I tore down our Christmas lights.

    Our home owners association requires we tear down all decorations within two weeks after the New Years. Too bad. I wish the decorations could be left up a little longer. Our house would look warmer. Plus our neighbor’s decorations were something Elliott looked forward to walking pass every day. She’ll just have to wait next year to see her “No No” — her “snowman”.

    Insane child brain development

    This past week, Elliott’s motor and linguistic skills are exponentially growing.

    She basically mirrors everything we say. For this reason, we need to be even more careful since both Jess and I have tendencies to swear like a sailor. Last thing I want is a 16 month year old walking around dropping F-bombs.

    Apologies to the wife

    On Thursday evening, I apologized to Jess after snapping at her.

    My short fuse, I think, has to do with a combination of lack of sleep (due to being waken up in the middle of night due to being on call) and the frustration I often feel from her constantly instructing me how to do when it comes to Elliott, what I consider trivial things: I know how to do place a bib on my daughter. The micromanagement can sometimes make me feel incompetent as a father and I think that’s the root of my frustration.

    Home maintenance

    My dad and I rolled up our sleeves and repaired the broken down dryer. About three weeks ago, the unit stopped working, the drum no longer spinning.

    After surfing the internet forums and watching about a dozen tutorials on YouTube, I ordered new parts — rubber drum ring, idler pulley — and after disassembling the entire dryer and replacing the parts, the repaired dryer not only works, but runs exponentially quieter. Before fixing it, you’d press the start button and the dryer would just scream! Not any more; no sir. The dryer now sings. In the end, repairing the dryer aligns with my philosophy of taking care of the things we own, instead of just chucking things out the window and buying new ones.

    Graduate School

    Graduate school is going really well this semester. I’m learning a lot and the material piques my interest much than I had anticipated.

    This past week, I read both the required and optional readings; these readings, combined with watching the lectures, shifts my perspective on how I approach analyzing and building distributed systems. Normally, when designing systems, I would employ physical clocks for tracking time, using technologies like network time protocol (NTP). But I’ve learned a new way to track time: logical clocks.

    They are essentially counters that monotonically tick with each process event and we can implement them using different techniques: Lamport’s scalar clocks, vector clocks, matrix clocks.

    Music

    Fingers on my left hand re-blistered. That’s because I’m practicing and playing guitar a lot more than usual. When I have downtime, even for a minute or two, I grab my guitar hanging off the wall. Sometimes I’ll run scales; sometimes I’ll advance my fret board knowledge by memorizing the position of notes; other times I’ll record myself practicing a guitar cover (most recently “Jolene” by Dolly Parton and Blackbird by the Beetles).

  • To fading memories

    To fading memories

    One silver lining of COVID-19 is that I’m working remotely from home and despite the constant interruptions, I’ve grown to appreciate situation. I’m afforded experiences not normally available to me when working physically in the office. Among which is seeing my daughter grow up, right before my eyes. Every day, I catch these fleeting moments, such as her lifting her chin up and staring softly and lovingly at her mom.

    Yet, these beautiful moments strike fear in me.

    I have not been able to shake that idea that that Elliott will forget about the dogs — Metric and Mushroom — once they pass away, memories of them vanishing too. Compared to us humans, dogs live a short life span, an unfair reality. And my dogs, in particular, have likely reached their half-life. So, every time the two dogs roll around on the floor with Elliott and every time Elliott puckers her lips and lays a wet one on their noses, I simultaneously feel both joy and pain. Joy for the current moment. Pain for the future.

    I fear that Elliott’s memories of the dog will fade because I too forgot about my first dog. Apparently, I grew up with a German Shepherd, named Champ. Apparently, Champ was present in the first two years of my life— but I have zero recollection of him.

    I do wonder, though, how much of Champ left an imprint on me. Did his presence early on in my life influence my “random” decision of choosing a German Shepherd breed for my first dog?

    Perhaps.

    Back to my Elliot. I painfully understand that she’ll only remember, if I’m lucky, fragments of her first two dogs. She’ll forget their unique smells. She’ll forget the countless number of times we pulled out dog hair from her mouth during lunch. She’ll forget all the times she woke up from a nap, screaming for them to join her in bed.

    She’ll forget the first day she met the two dogs, the day we brought her home from the hospital, when both dogs dutifully slept by her crib, neither dog leaving her side, obediently guarding her. She’ll forget all the times she purposelessly threw scraps of food on the floor for them to lick off the ground.

    But as her father, I’ll never forget. I’ll remember them, cherish them, and hold on to them, dearly.

    And the best I can offer her, and myself, are capturing and collecting and sharing these memories.

    So, here you go, Elliott. Here are a few snapshots of your childhood with the doggies.

    Elliott and Mushroom

     

    Elliott and Metric
  • Weekly Review – Week ending in 2020/11/01

    Weekly Review – Week ending in 2020/11/01

    No Halloween this year

    I used to love Halloween growing up, not so much the dressing up part but the knocking on doors and getting handed fist fulls of candy. Now, as an adult, I love returning the favor and always think about giving out larger than average candy and chocolate.

    But not this year, thanks to COVID-19.

    Hopefully 2020 will be the one and only year that we skip Halloween …

    Starting writing my first e-book

    I’m compiling all my blog posts on “advanced operating systems refresher” into a single, nicely formatted e-book. The book will provide a summary and detailed notes on Udacity’s Advanced Refresher course.

    Media Consumption

    Watched the first two episodes of “This is Us”. Again, as I mentioned in my blog posts, the writer’s (and cast and crew) deserve a huge applaud for pivoting and incorporating two major events in history — the COVID-19 pandemic and police brutality on black lives — into the story line. That’s no easy feat but they are pulling it off.

    Watched Borat subsequent film. I found the film hilarious and ingenious. Reveals how complicated people can be. For example, two trump supporters end up taking Borat into their homes and at one point, they even speak up on behalf of women.

    Home Care

    I’m super motivated keeping our new home in tip top shape. I had learned that the previous owner’s took a lot of pride in the house, the retired couple out in the front or back yard on a daily basis, the two of them maintaining the lawn and plants.

    Learning how to take care of the lawn. That includes learning the different modes of mowing (i.e. mulching, side discharge, bagging), the difference between slow release and fast release nitrogen, the importance of aerating, the importance of applying winterizer two weeks before the last historical freeze day, how to edge properly and so on.

    Family

    Still working from home and still appreciate the little gestures from Jess throughout the day. I sometimes get lost in a black hole of thoughts and troubleshooting, not drinking any water or eating snacks for hours at a time. So the little snacks that Jess drops off go a long way.

    Health

    Although taking care of mental health, not so much physical health. Only exercised once last week which was basically jogging on the treadmill.

    Graduate School

    Applied theory of lightweight recoverable virtual machine to work. In advanced operating systems, I took the concept of the abort transaction and suggested that we install a similar handler in our control plane code.

  • Daily Review – Day ending in 2020/09/24

    Daily Review – Day ending in 2020/09/24

    Today I’m posting a super short daily review given that the midterm (for advanced operating systems) opens up in about 13 hours.

    Writing

    Parenting and family matters

    • Held Elliott in my arms while we danced to her favorite song (above) titled called Breathing by Hamzaa. As soon as this song plays on our bluetooth sound bar speaker, Elliott immediately tosses her arms up in the air (even if her hands are full of food) and starts rocking back and forth. I hope she never loses the confidence to dance so freely like us adults.

    What I am grateful for

    • A wife who I’ve learned to develop so much trust with over the years and one of the very few people that I can open up to completely and share thoughts that cycle through my head.

    What I learned

    • Writing a simple line parser in C one has to protect against so many edge cases
    • Most of the C string functions return pointers (e.g. strnstr for locating substring)
    • Learned how you can ensure that you are not statically creating a large data structure by using the -w-larger-than=byte_size compiler option
    • Able to visualize what an IPv6 data structure looks like underneath the hood: 16 char bytes. Also these are big endian, the least significant bit starting first.

    Work

    • Wrote some code that performed some string parsing (so many dang edge cases)

     

  • On building online learning communities & Daily Review – Day ending in 2020/09/23

    On building online learning communities & Daily Review – Day ending in 2020/09/23

    Thanks to my wife for encouraging me to pull the trigger and start my online study group (i.e. the “war room”) for my advanced operating systems course. Basically, the idea came about after chatting with a class mate of mine and during our video call, I realized how many of us are basically studying alone (in isolation) without practically no peer interaction. On top of that, we’re in the midst of COVID-19 pandemic, most of us cooped up inside our homes or apartments, disconnected from the rest of the world.

    We’re living in weird times …

    Anyways, how does this warm room work? It starts with me scheduling a 30 minute zoom call and then sharing the meeting details with the rest of the students, publishing a note on the the class forum website (i.e. Piazza). The invitation is open to all students and the meeting itself is informal and low pressure. However, there are a few guidelines to help steer the conversation:

    • Feel free to just hang out and study silently
    • Collaboration is encouraged
    • No obligation to ask questions or comment on other peoples questions (although I myself will try and chime in whether or not I know the answer)
    • You do not need to participate and can just hang out
    • You do not need to turn on video

    Here’s what I had originally sent out to the class:

    First (of maybe many) war room meetings

     

     

    Writing

    Parenting and family matters

    • Held Elliott in my arms while we danced to her favorite song (above) titled called Breathing by Hamzaa. As soon as this song plays on our bluetooth sound bar speaker, Elliott immediately tosses her arms up in the air (even if her hands are full of food) and starts rocking back and forth. I hope she never loses the confidence to dance so freely like us adults.

    What I am grateful for

    • A wife who I’ve learned to develop so much trust with over the years and one of the very few people that I can open up to completely and share thoughts that cycle through my head.

    What I learned

    • Writing a simple line parser in C one has to protect against so many edge cases
    • Most of the C string functions return pointers (e.g. strnstr for locating substring)
    • Learned how you can ensure that you are not statically creating a large data structure by using the -w-larger-than=byte_size compiler option
    • Able to visualize what an IPv6 data structure looks like underneath the hood: 16 char bytes. Also these are big endian, the least significant bit starting first.

    Work

    • Wrote some code that performed some string parsing (so many dang edge cases)

     

  • On drifting apart & Daily Review – Day ending in 2020/09/22

    On drifting apart & Daily Review – Day ending in 2020/09/22

    Before stepping into parenthood, my wife and I would often read about other couples scheduling time for being “intimate” (aka sex), time alone just for the two parents. Without this deliberate effort, parents can fall into the trap of focusing 100% of their time on raising their children and forgetting what its like to be a couple.

    When I first heard and read about these couples, I couldn’t wrap fathom how the gradual drifting of relationships could possibly happen to me. No — that’s reserved for other couples. Thanks for the universe (and karma I suppose), I’m now noticing that my wife and I are drifting apart … but luckily at a glacial pace. To be fair, the two of us are brand new parents raising a (almost 1 year old) daughter.

    Fortunately, we’re acutely aware of this drifting apart so her and I are reeling it in. So what are we doing about it? Well, the idea of scheduling time for being intimate sounds ridiculous but we’re going to muse on it.

    Writing

    Parenting and family matters

    • Bathed Elliott for only about 5 minutes last night. Normally, our little bed time routine normally lasts between 15-20 minutes but lately she hasn’t really enjoyed the experience and merely tolerating. I’m hoping her allergy to the bathes is temporary since this is one of the few times throughout the week where I get real 1:1 time with Elliott.
    • Jess and I watched three short video clips from Roxanne Gay’s Skilshare course titled Crafting Personal Essays with Impact. Taking a little fun course like this one, while washing the dirty dishes, is one way for husband and wife to mix things up since as I mentioned earlier it’s so easy at the end of the day for two tired parents to just mindlessly eat dinner in front of the television.

    What I am grateful for

    • Jess preparing a snack for Elliott and rinsing cotton candy grapes for me. Side note: if you haven’t had the experience of a cotton candy grape exploding in your mouth you are seriously missing out. These seasonal grapes are basically (healthy) candy for adults.

    What I learned

    • Learned that hierarchical locking (or locking in general) hinders system performance, preventing concurrency. What should we do instead? Reference counting for existence guarantee.

    Music

    • Recorded a little harmony and melody based off of some lyrics that I wrote down as I winding down for the evening. Usually, I start with writing the harmony or melody first but this time around, I’m approaching the song writing with whipping together lyrics. This lyrics first approach tends to be working well for me actually so I’m curious what else I can come up  over the next few weeks as I experiment with this new process.

    Work

    • Ran benchmarks for an optimization I added (basically adding metadata to a data structure that fits within the first three cache lines). Also ran a bench mark for a longest prefix match data structure that I’m evaluating for a new feature that I’ve designed.
  • Being present in the moment & Daily Review – Day ending in 2020/09/21

    Being present in the moment & Daily Review – Day ending in 2020/09/21

    Being fully present as a parent all the time seems like an impossible feat. Although I’d like to think that I’m always present with my daughter, I do find myself sometimes mentally checking out.  For example, yesterday, Jess had reminded me during lunch I should be in the here and now instead of scrolling on my iPhone, searching for some funny video (found on Reddit) that I wanted her to watch (I did end up finding it and it’s a video of a failed attempt of shuffling).

    On a separate note, I’ve been really enjoying doodling. If that’s something that you are interested in, I’d highly recommend checking out Cathy Wu’s courses on Skillshare. So far, I’ve watch these short lessons (between 10-30 minutes) — I watch them when winding down from a long day of parenting, work, and studying for graduate school — that combine helpful exercises and I must say that they are helping me unlock my creativity and reminded me that I too can draw:

    Writing

    Parenting and family matters

    • Jogged to Maple Leaf Park (maybe a mile away) while pushing Elliott in her stroller and when the two of us arrived, I lead her to the playground and swung her on the swings. After maybe 2 minutes of swinging back and forth, I carried her over to the kitty slide and then held her underneath her armpits as she slid down the slide for the first time. She loved it and had a blast. But really what she enjoyed the most was sitting crossed legged on the wood chips and watching all the other little kids running around. Now I normally don’t watch Elliott during the day but Jess had an important meeting at 04:00pm so I figured it would be helpful if I watch Elliott so Jess could focus her entire attention on that that video call with no interruptions and without feeling bad about propping Elliott in front of the television for an hour.

    What I am grateful for

    • Good health. Something so simple is so easy to forget. That is until we are sick. Although I’ve packed on a little of that COVID weight, some extra flub sagging around my belly, I’m still grateful that overall nothing major concerning with my health. This is a good reminder to continue with eating a plant based diet and maybe cut down on oreo cookie (yes, they really are vegan).

    What I learned

    • To build high performance parallel systems we want to limit sharing global data structures. By reducing sharing, we limit locking, an expensive operation.
    • Heavy use of typedef keyword with enums creates cleaner C code

    Work

    • Built a prototype for a new feature that I’m delivering and next step for me is to benchmark the solution to ensure that the underlying algorithm scales

    Thoughts

    • Just under two years ago I was not writing C code (neither during my personal leisure time and neither during my professional life) and now I’m loving the language, using it to build and prototype features for networking devices at work. Not only that, but developing the skill makes taking advanced operating systems during graduate school so much easier. So the two (academia and industry) feed into one another, a loop of learning and improvement (I like the way that sounds).
  • (Re) learning how to doodle & Daily Review – Day ending in 2020/09/20

    (Re) learning how to doodle & Daily Review – Day ending in 2020/09/20

    I’m (re) learning how to doodle! I’d like to incorporate art and sprinkle sketches into notes that I scribble down while studying for graduate school.  Also, I just miss drawing, an activity I used to do a lot as little boy. But somewhere between then and becoming an adult I’ve lost my way, losing touch with that part of my artistic side.

    Although it makes sense to just grab a pen (pr pencil) and give myself permission for the creativity to flow out, my instinct was to perform research online and find a doodling course or find the top doodling books. Now, I did end up signing up for a 30 minute online recorded course produced by local Seattle artist Cathy Wu and I did purchase two E-books authored by Mike Rohde, whom I discovered via Sacha Chua’s blog. However, at the end of the day, I did end up doodling (so did my wife) over dinner instead of watching television like we normally do during dinner.

    Writing

    Parenting and family matters

    • Watched Elliott at 6:00 AM for about an hour so Jess (a tired mom) could squeeze in an extra hour of sleep. During this early morning, Elliott and I kept each other company while I packed up and unscrewed the wooden Ikea desk downstairs. I was originally using my drill to unscrew but Elliott let out a little pout that signaled to me that the drill was too loud. So I ending up switching to a Phillips screw driver, which took me probably twice as long to disassemble the table but who cares.
    • Witnessed poor Elliott throwing up mountains of avocado and blackberries, her poor body. She hasn’t thrown up that amount before (and hasn’t thrown up in general for the past 5 months).
    • Picked up two loaves of Challah from The Grateful Bread for Jess since it’s Rashashana weekend. I had called in to place a hold on Challah but none were available. But I ended up driving to the bakery anyways and low and behold they had just freshly baked three loaves!
    • Swung by Broadfork cafe and scooped us all up some vegan lunch: Egyptian lentil soup (probably my favorite soup ever).
    • Created a melody on the ukulele and sang lyrics to the book “You must never touch a porcupine”
    • Elliott and Jess and me spent (at least) an hour laying out on the lawn of University Village (thank goodness for their fake grass, otherwise I wouldn’t be able to sprawl out) after picking up dinner from Veggie Grill (as I type this out, I realized how often we are dining out but whatever, we’re in the process of packing and moving homes in two weeks)
    • Walked the dogs at Magnuson Park.

    What I am grateful for

    • Metric being the best dog. Ever. Yesterday I took the dogs to the park with Elliot while Jess received in home physical therapy. The park was packed (everyone distancing themselves and wearing masks of course, apart from 1-2 people who think they are above everyone else) and not too far from the fenced entrance was a group of children, about three or four of them, between the ages of 6-10. Metric rushed to their little circle and greeted them, her long nose brushing up against their elbows for a little hello. Then for the next 10 minutes, while holding Elliott, I watched as the kids would toss a light green softball ball for Metric to fetch and watch Metric retrieve the ball for them and return slobbering it out at their feet. Over and over. The kids loved it. In fact, one of the kids jogged over to their mom and yanked on her jacket, asking if they could take the dog home. The little girl’s mom whispered that German Shepherds.

    What I learned

    • Concept of cache affinity scheduling
    • Learned what hardware multi-threading . Basically allows hardware to switch out thread that’s currently running on its CPU, avoiding the need to get the OS involved

    Where is my money going?

    iPhone 11 Pro Portrait mode of Metric
    • (2) Watermarked PDFs on Sketch note taking by Mike Rohdes
    • The iPhone 11 Pro. I debated this purchase for over a week, feeling guilty about spending this amount of money — on a stinking phone. But given that I haven’t upgraded my phone for almost 5 years and given that I take lots of photos of Elliott and the two dogs, I figured a solid investment is worth it.
    • App for drawing (pretty relaxing and beautiful)

    Thoughts

    • Learning about CPU affinity reminds me of the scheduling algorithm that I came up with for a large project at work. We implemented a “sticky” algorithm but really it was an affinity based algorithm similar to what I’m learning in OS. Cool to look back and say “I sort of got it right” without fully understanding or knowing the theoretical roots, relying on intuition instead
    • A more sophisticated algorithm may not always be preferable. Maintaining more state (trading off memory) may not be our ideal situation. It’s a trade off and explains why we may want to limit the number of metadata to store, especially when a system may run thousands of CPUs (although I’ve never worked with any of those systems before).