This paper introduces readers to PCHECK, a tool the researchers designed to check configuration values used by programs. The goal of PCHECK is to check configuration values at system initialization time, and fail fast if any errors in these configuration values are detected. PCHECK accomplishes this by emulating application code that uses configuration values, and also ensures that this emulation does not cause any internal or external side effects.
The authors motivate the design of PCHECK by observing that most software systems do not check configuration value at system initialization time. Configuration values are typically checked right before they are used. This is a problem because an incorrect configuration value might cause the entire software system to fail, long after the system has started. This is especially problematic when a configuration error causes a fault tolerance or system resiliency component to fail; such components are typically instantiated only under exceptional circumstances, hence the configuration values used by these components might not be checked for correctness at overall system start up time.
PCHECK works by generating checkers that are run at system initialization time. These checkers emulate configuration value usage in the actual system code. PCHECK captures all the context (global variables, local dependent variables, etc.) required to emulate these usages. PCHECK checkers are side effect free and work by creating copies of all the system variables so as to not modify any state. PCHECK handles system calls, libc function calls, core Java library function calls, etc. by providing what they term a “check utility”, which is essentially a mock function that doesn’t mutate external state but validates the function call arguments. Other external dependencies that might arise while using a configuration value, such as reading/writing to an external file, sending/receiving data from the network, etc. are dealt with in a similar fashion; external files are checked for metadata (while the paper does not explicitly say what these metadata checks are, I’m assuming they are something along the lines of “Does this file exist?”, “Do I have the permissions to read/write to this file?”, etc.) and network addresses are checked for reachability. Configuration issues are detected by the PCHECK checkers by checking for the presence of Exceptions, errno values, and signs by the program (for example the program terminating with an exit(1)) that something went wrong while running the emulated configuration value usage code.
I realized that I’ve been (for various reasons) doing a terrible job at reading research papers for the past 2-3 months. In order to fix that and make up for lost time I’m setting an ambitious goal for June 2017 – I’ll read (and maybe write about) about ten research papers over the course of the month. Here are the papers I will be reading (I found a majority of the papers by going through my backlog of unread The Morning Paper posts and picking papers that intrigued me):
I love mathematics. I was looking for ways to increase my knowledge in this area and stumbled upon Numberphile, a YouTube account dedicated to mathematics videos. All the Numberphile videos I’ve seen so far have been super interesting and easy to understand. Here are a few of their videos I enjoyed watching:
Here are my fitness goals for 2017, in no particular order:
Bench press 1.5 times my body weight: This works out to be around 225-232 lb. I can currently do 3-5 reps at 205 lb. My goal for 2017 is to get to a 225-232 lb 1RM.
Workout at least 5 times a week.
Consistently squat 2 times my body weight:(by consistently I mean each time I’m squatting at the gym) This works out to be 300-310 lb. While I have done 1 rep at 315 lb in the past, my current squat weights are in the 225-275 lb range.
Focus on parts of my body that (I feel) need to be improved upon: namely my shoulders, my abs, my pectoral muscles, and my calf muscles.
I’d been toying with the idea of buying a seven string guitar for some time now. Most of the bands I listen to (TesseracT, Periphery, Skyharbor, etc.) all use seven string guitars, and it would be awesome to be able to play some of their songs. Plus I feel reasonably comfortable playing a six string guitar. Minus solos. So last week I walked into Guitar Center and bought a Jackson seven string guitar.
I’m super happy with my new guitar – it sounds incredible, is very comfortable to play, and it looks beautiful.
I’ve currently tuned the seven string to BEADEAD so I can play songs from Polaris by TesseracT. I found a guitar transcription for the entire album and am very slowly working through Messenger and Tourniquet. TesseracT songs are quite challenging to play on the guitar, but the feeling of playing songs by your favorite band is sublime.
She had heard it said that humans are supposed only to use about a tenth of their brains, and that no one was very clear what the other nine tenths were for, but she had certainly never heard it suggested that they were using for storing penguins. – The Long Dark Tea-Time of the Soul
It was his subconscious which told him this – that infuriating part of a person’s brain which never responds to interrogation, merely gives little meaningful nudges and then sits humming quietly to itself, saying nothing. – The Long Dark Tea-Time of the Soul
The music stopped abruptly, with the air of having delivered exactly five cents worth of joy. – Player Piano
“Tell me about today.” “Nothing about today. One more, like all the rest.” – Player Piano
The two were inseparable, though their personalities met at almost no point. Together, they made an approximately whole man. – Player Piano
Yeah, it’s tough – like anything else. Tough to be the best. – Player Piano
The television cameras dollied and panned around him like curious, friendly dinosaurs, sniffing and peering. – Player Piano
I do know that it’s far easier to ask questions than to answer them. – Player Piano
The fear of awkward conversations: One consequence of wearing your heart on your sleeve and always wanting to be open and honest with the people in your life is that it can lead to awkward, scary conversations. I used to be a bit afraid of them. However, I had so many of these talks (for better or for worse) over the course of 2016 that I can now have these conversations WITHOUT avoiding eye contact with the person I’m talking to.
~3 inches on my waistline: I went from 30-31 inches at the beginning of 2016 to 28 inches as of December 2016. I’m still a bit amazed by this, because I wasn’t explicitly trying to lose weight.
One of my best friends: One of my best friends moved back to India after being in the Bay Area for ~3 years. It was really sad to see him go, because I was so used to him being a part of my life here, and being able to hang out with him easily. In this digital day and age distance is a not a barrier between friends and we still message each other almost everyday, but I’ll miss all the adventures we had together when he was physically here.
Expectations: (still trying to decide how I feel about this) Towards the end of 2016 I realized that life is better when you have no expectations from anything or anyone. That way you’re always surprised when good things happen to you, because they’re always unexpected.
What I said “Hello!” to in 2016
A new most favorite person: 247cae00bedc4032b015212c1c72e800cf7b6dc2e4a41886d77bdceed4de6ee6
More respect, admiration, and love for my family and friends.
Running: 2016 was the year I started running seriously. While I’m not quite ready to say I love running just yet, I will say that I do enjoy it quite a bit.
Incredible books, albums, concerts, and research papers.
Emotions and Feelings: I experienced a wide array of emotions and feelings over 2016, some of which I never felt before. Looking back I think 2016 was the year I grew the most at an emotional level. I learned things about myself that I did not know.
A sense of style: I put in effort (and money) into dressing well and generally improving my stylistic sensibilities. I think on average I look better now than I did in pervious years. What do you think?
Improved writing skills: Apart from writing a lot (or trying to do so) on this blog, I also wrote a small book (~10000 words) in 2016, and a speech for my best friend’s engagement ceremony.