Home » 2017 » October

Monthly Archives: October 2017

Shanghai Bound!

I’m on my way to the the Symposium on Operating Systems Principles, which is a well-known operating systems conference.  This time it is in Shanghai, China so I’m making my way there.  I do not have the privilege of presenting anything there this trip, but hopefully I will be able to do so in the future – it really is just a small matter of coming up with some interesting research that is worthy.

This will be my first time in China.  Definitely looking forward to seeing some of the interesting talks that are scheduled throughout the conference!

For those problems that are nails, I have a sledgehammer

I’ve been involved in a project that requires I learn more about blockchain than I ever really wanted to know.

I had a basic appreciation of it from reading the Nakamoto paper many years ago.  It provides an insightful solution to a challenging problem – the problem of distributed consensus in an untrusted network.  There is an agreed mechanism (the protocol) and an incentive to participate (the fee).

Why is an untrusted network the problem?  Because this came from the world of digital cash, and the concern in that environment was that someone could “double spend” money.  The blockchain model makes that effectively impossible.  It does so in an interesting way – by combining a consensus protocol (getting multiple systems to agree on a given outcome) along with an incentive to behave (participants get paid to behave).  It’s an intriguing way of reaching common consensus.

But it has limitations.  Like any consensus protocol, it takes time to send messages back and forth and reach an agreement.  Further, blockchain requires that nodes attempt to solve a cryptographically hard problem.  The node that is successful gets the reward.  The algorithm is designed so that it takes about 10 minutes for someone to reach a valid solution.  These solutions are easy to verify, so once someone has figured out a solution – which indicates real work – they present their answer and it is echoed throughout the network.   By chaining the answer for the current block into the prior block it essentially creates chain that is not realistically mutable (e.g., it cannot easily change).

There are more technical details (Merkle Trees and cryptographic hashes and so forth) but the final solution is a “public ledger” that shows who owns what in the world.

Here’s the rub: this is interesting technology, but it is not the solution to every problem.  As is so often the case in computing, though, we pick “the shiny new tool” and insist it must be the right tool to chose for our problem at hand.  The challenge then for those of us who have been through this before is to actually analyze a problem and figure out a good solution.  Of course, sometimes we’re called upon to utilize a particular tool, like blockchain, regardless of whether or not it is the right tool for the job.  When that happens there’s an unenviable task of trying to explain why it is not the right solution.  Doing so is tough, as it is often not what a customer wants to hear.

The advisory shuffle

Friday, October 13, was my adviser’s last day.  He remains as an adjunct professor, but as such he cannot directly advise or supervise graduate students.  Thus, just a few weeks into my official life as a PhD student I find myself adrift.  While I started adrift, over the past 10 months I stopped drifting and began focusing in a specific direction.  It is a peculiar thing – to be adrift, then to find direction and focus, and then be adrift again.  Humbling, certainly.  When adrift the first time around I didn’t know what to expect, or how good it is to work with someone that encourages crazy ideas.  I touched on this in my last post. But life doesn’t always go the way we anticipate.

I spent a bit of time going through an existential crisis of sorts because being adrift meant that I had to once again consider all the various directions I might go. So that’s what I’ve been doing.  Considering externalities (they’re trying to recruit someone that would be an awesome match from a research perspective).  Considering crazy options (applying to go somewhere else).  Of course, there’s also the option of considering other faculty to serve as adviser, but that is surprisingly challenging.  One of the best fits isn’t in the same department, which creates other potential complications.  Sorting it all out takes time.

Then I realized that this is part of the challenge of completing a PhD – the willingness to persevere in the face of factors beyond my control.  Hence why I found myself asking why I wanted to do this.  I’m not a brilliant researcher though I like to think I’m at least a competent one.  I can write reasonably well.  My hope is that the insights I do have can be used to contribute something.  I’m also pragmatic enough to know that it is rather unlikely I will change the world.  Still, I’m idealistic enough to want to try to change the world.

The good news is that none of this is an emergency.  I have time to look at options, to consider what I wish to achieve.  In the end, it will force me to look for clarity.  My hope is that I will actually find it.  Only time will tell.

“So why are you doing this?”

One of the questions that I’m often asked is “why would you want to get a PhD?” or “why do you want to do research?”

Everyone that even considers pursuing a PhD will no doubt be asked this question at some point.  I’ve been asked it a number of times recently, no doubt due to the various events swirling around my life and my decision to pursue this unusual direction.

Working in industry can afford numerous opportunities to make incremental improvements.  These improvements are certainly valuable, but they are also quite focused on work within the current paradigm.  Changes to the paradigm can arise in this model, but they are definitely heavily shaped by commercial considerations.

Working in academia tends to focus more on exploring in a broader range of directions.  Sometimes it is funded by industry, but more as a long-term investment, with an expectation that most ideas just won’t pan out.  Sometimes research is done within industry as well – a long-term bet on developing the next great technology.

So, what does this have to do with pursuing a PhD?  One difference between me and the typical PhD student is that I have done quite a lot of work in industry and have gained insights into things I see that look like problems ingrained in the system.  Thus, for me, this PhD offers an opportunity to explore ideas that reflect those insights – a willingness to question what is just assumed, and then see if I can find a way to try something new.

In essence, I want to change the world.  But the other thing I’ve learned is pragmatism, so I’ll consider it to be a success if I can at least rock the boat.  Maybe in that way I can build a foundation upon which someone smarter and with greater insight than me can actually build something that does change the world.  I don’t see that happening for me in industry.  It’s certainly not guaranteed going down the academic research path either, but I will do my best to do good work and enjoy the experience.

If I knew what the outcome was going to be, it wouldn’t be research, it would be development.