Blog

  • Every Wednesday morning, I attend therapy. Not the physical kind, where one goes to rehabilitate some injury afflicted by blunt trauma. Rather, I sit in a cushy sofa chair that’s positioned six or so feet away from Roy, my psychotherapist, and I voice not only what I’ve been thinking—the primary focus of cognitive behavioral therapy—since the past…

  • He wears a mask, and his face grows to fit it – George Orwell Are you a masculine man? How does one even define masculinity?  By the American, western definition, a masculine man is someone who carries a heavy beard on his chiseled chin, speaks in a deep Clint-Eastwood voice, commands respect from those around…

  • My wife (Jess) and I were both dead tired from yesterday—friends had come over to our house and cooked a Vietnamese meal the night before and we fell asleep around just before midnight, a little over two hours past our bedtime—and we had decided to spend the Friday night staying in doors, eating leftover, vegan…

  • As a software programmer, I always had a vague understanding of how an operating system fetches data from memory.  At an abstract level, I understood that a processor requests data from the memory controller, sending a message (with the memory address encoded) across the bus. But I learned recently that in addition to the system’s…

  • http://blog.itsmemattchung.com/2017/02/28/csapp-defusing-the-bomb-phase-1/ I password protected the original post (email me for the password if you are interested in reading it).  When I posted the original link on reddit/r/compsci, multiple commenters suggested that I delete the article to avoid students from cheating (which was not my intention).  I then sent an e-mail to the professors (at CMU) and they kindly replied, asking me…

  • There is no excerpt because this is a protected post.

  • As a programmer, I’ve written a line or two of code that includes the modulus operator (i.e. “return x % 2“).  But, never have I paused to think: “How does the underlying system carry out this operation?” In this post, I limit “underneath the hood” to the lowest level (human readable) programming language: assembly. So, I’ll take…

  • A wide grin formed on my face, after successfully completing an exercise (from Computer Systems a Programmer’s perspective) that required me to write C code, based off a sequence of a six assembly instructions: void decode1(long *xp, long *yp, long *zp) { /* xp stored in %rdi, yp in %rsi, zp in %rdx) decode1:     movq (%rdi),…

  • Like a huge swath of other millennial, I dibbled and dabbled in building websites —writing in html, css, and javascript—during my youth, but these days, I primarily code (as a living) in favorite programming language: Python. I once considered Python as one of the lower level programming languages (to a certain degree, it is) but as a I…

  • How many page table entries are required given a virtual address size and page size? I was confronted with this question when reading Computer Systems from a programmer’s perspective on virtual memory management (VMM) which forced me to reread the chapter, over and over. It wasn’t until I forced myself to close the book, step away from the…