Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 210 other subscribers
November 2024
S M T W T F S
 12
3456789
10111213141516
17181920212223
24252627282930

HotOS 17

This week I had the opportunity to attend ACM SIGOPS HotOS ’17.  This is a workshop that focuses on discussing work in some stage of progress.  The papers are not as polished as one would find at a full conference and in some cases they are more about being provocative – encouraging the reader to consider some existing problem in a new light.

It is a small function, with a limited number of people invited.  Because I am working with one of the people involved in organizing it, when an opportunity to help out arose I was invited to attend.  My role was to help out with various functions, including assisting in the live blogging of the workshop (hotos17.tumblr.com) as well as leading tours, handling registration, and generally being part of making the participants feel welcome.

It also provided an opportunity to begin learning more about members of the research community.  Several things surprised me somewhat: (1) these are highly specialized researchers.  The field is broad enough that there were only ever a handful of experts in any one aspect of it as the discussions and papers flowed around.  (2) I was able to actually really understand a couple of the talks.  One of them made me angry, partially because it was an attack on people not present that I know.  Still, many of the talks were in areas where I only had general understanding, not a specific understanding of the subject matter.

The one talk that annoyed me?  Transactional file systems!

 

Decision Made

The decision deadline was last weekend and I confirmed my decision, accepting one of the offers and declining the other.  I’m excited that I’ll be starting my new program officially near the end of summer.

I’m already starting to think about the fact that this journey is really about to begin.  I’d be lying if I said that I weren’t still in a bit of shock – euophoric shock, for sure, but still shock.  Despite everything that I had going against me, I managed to make this happen – and no amount of actually thinking about it makes me view it as quite a (wonderful) surprise.

For example, if I hadn’t been in the position to take the research assistant position with UBC, I suspect I’d have been less likely to have been offered admission there.  Of course, had I not been summarily dismissed from my job just a couple weeks earlier, i wouldn’t have been in a position to do so.   Pretty exciting, indeed!

PhD offers

So I’ve now been offered admission to two of the three PhD programs to which I have applied.  The third I knew was unlikely as they require a thesis Master’s degree, but I don’t have a thesis.  I was hoping that the fact I’ve co-authored two books might count for something (because frankly, writing a book is far more work than writing a thesis).

So for now I’m mulling over the best decision to make – but what an amazing place to be: choosing between two excellent schools, with the choice of two amazing advisers.  There really isn’t a losing option at this point, which is an amazing place to be.

 

 

Building the New System

In my prior life I’d had an opportunity to assemble some awesome tools for my work.  This included both a great desktop (workstation) system as well as a good laptop system as well.   Even at four years old, the desktop system was terrific: dual Xeon processors with 48GB of RAM (24GB each CPU).  Each E5 CPU had 6 cores, with hyperthreading.

I started with a small Intel NUC system – dual core i7-5557U with 16GB of RAM, a mechanical keyboard, a 4K2K UHD monitor and gaming mouse, with a Samsung SSD.  Good performance and it allows me to dual boot Windows 10 (1607) and Linux Mint (Ubuntu 16.04).  I needed something portable so I ultimately settled on a Microsoft Surface Book.  I’m still getting used to it, but I do find the detachable screen/tablet useful.

As I started my current research project (more on that later), I concluded that I’d like to do some work with TSX, Intel’s new hardware transactional memory support.  I had no problems downloading and running one of the packages that demonstrates the use of TSX and I was pleasantly surprised to find that my Surface Book actually has full TSX support, which is awesome.

Upon further thought, I concluded that I still needed to have my workstation capable as well – and unfortuantely the NUC system doesn’t have TSX support.  So I looked at a variety of options, along with other potential needs for my research and concluded that what made the most sense was to build a new workstation.  It took me a couple of days looking at various options to settle upon my current  solution: I’m building another workstation.

The base of my workstation is an Asus Z10PE-W8 motherboard.  This is a dual socket Intel 2011-3 motherboard.  I’ll be using dual E5-2603 v4 CPUs (6 cores each, no hyperthreading).  The work I’m doing isn’t CPU bound.  Rather, for TSX testing/work I want a machine that will exhibit real memory contention.  This is a NUMA architecture system, so each CPU will have its own dedicated memory channel.  Hyperthreading is actually bad for TSX (since the threads share CPU resources) though I suppose there may be failure modes I won’t see (but the Surface Book has SMT, so I can test it out there as well).   These are the low end CPUs, but they have TSX-NI support (according to the Intel ARK page, let’s hope it’s right).  I’ve paired it up with 64GB of RAM (2x32GB) so I’ll have plenty of memory and plenty of options for expanding the memory in the future.  While I’d like to add NVDIMMs as well, that’s outside my budget at the moment.  The option is still there, though…

For storage, I’ll put a SANDisk 1TB m.2 SSD on the system.  As far as I’m concerned, SSD is the best choice for storage on a high performance workstation these days, though there are faster options albeit at a much higher price point.  Rounding that out with an AMD FirePro W4300 workstation graphics card (four DPI ports!) and a Phanteks case (this is an SSI EEB motherboard, so there aren’t a huge number of case options!)  plus some Noctua CPU fans and I have a solid workstation.  Ironically, it’s really just an updated version of what I built four years ago.

I’ve settled on a Das Keyboard Model S – a nice mechanical keyboard with excellent reviews.  I’m definitely hard on my keyboards.  I’ll use my existing Acer monitor for now, though I’m shopping now for a second monitor, as I know from prior experience that multiple monitors are great for productivity.

Parts started arriving today.  Once I have everything, I’ll put it all together and make sure that it all works.  The case will be mostly empty for the time being – the case is huge because the motherboard is itself huge, but I’m not going to populate it with storage yet.  I’m a fan of the HGST Helium drives – for mechanical drives they are pretty amazing but for what I’ll be doing in the near-term I don’t expect to need a big storage device.  Still, I can see how it will be useful moving forward.

Look forward to reporting on how it all comes together.

New Patent Issued!

US Patent 9,535,759 issued yesterday, my latest patent.

It’s not up on Google Patents yet, though it is here: http://patents.com/us-9535759.html (it requires registration to get a PDF version of it).

Need to update the CV…

 

Artificial Intelligence in the virtual classroom

There have been a number of articles about the AI TA for a class at Georgia Tech.  I find these fascinating because I took this class in the summer 2016 session.

I’ve considered ways to use this approach to facilitate online learning in other environments as well and I’d like to look into it more in the future. Nothing definite now, but I’ve had a few preliminary discussions. Let’s hope they bear fruit.

Stay tuned!

 

What a long strange trip it’s been!

This is my first post in over a month.  The past five weeks have been eventful – a period upon which I suspect I will look back in the future and remark about how so much change can be packed into such a small amount of time.

My former employer and I parted the ways on November 15.  While not entirely a surprise, the manner in which it was carried out was a surprise.  The week that followed included a trip to the company HQ (in the eastern US), at my own expense, of course, and ultimately finding out that not only had I lost my positions with the company and been locked out of my own offices here but they had also seized control of my shares in the company.

I took stock of my situation and decided that I needed to deal with wrapping things up and planning for the future.

Thus, I briefed my lawyers to the extent possible.  I decided that I would sign up for three classes in the Spring 2017 session for my MSCS program which would put me in a position to graduate at the end of Summer 2017.  This seemed like a terrific idea given that I wouldn’t be working for some period of time!

I also decided that I would push ahead with the PhD applications. On December 4, 2016 I submitted three applications: two to UBC (CS and ECE) and one to Georgia Tech (CS).  I chose ECE at UBC because my professor at Georgia Tech had strongly recommended someone in that program, though I wasn’t convinced they’d be willing to waive the usual thesis requirements (though you’d think that having published two books in the field might count for something.)

The surprise came the next day.  That afternoon I’d received a letter forwarded to me by my legal counsel.  It seemed filled with invective and really had upset me because it painted a picture of me that certainly didn’t square with my vision of myself.  To console myself, I convinced my spouse to meet up for an after-work drink.  As we sat down I looked at my phone and saw an e-mail from a UBC CS professor – in fact, the very person I’d originally identified as being a strong prospective match back in 2013 when I had previously applied.

Imagine my surprise as I read the letter and found he suggested meeting and discussing my “(interesting) application”.  My mood changed – I responded quickly, said I was available and responded.  A few exchanges later, we’d agreed to meet for coffee nearby two days afterwards.  That initial meeting was short (45 minutes) and while it seemed positive, he’d been clear that I’d have to wait until the end of the PhD recruiting process.  He also suggested that I sign up to take the class he is teaching in January, noted there were forms that needed to be completed and left it to me to chase that to ground.  The final suggestion was that I meet with one of his current graduate students.

I went home, found the necesary form, completed it and sent it along to him.  Two hours later I received a signed copy back from him.  He followed up with an e-mail to me and one of his students suggesting we meet soon – like the next day.  So we met the next day, and chatted.  It seemed to go resonably well.  I followed up and the next day (Friday) we exchanged more e-mail and the CS professor suggested another meeting the next Tuesday.

It was at that meeting that it became clear I was “part of the team” (albeit provisionally, for sure).  He told me that he’d hire me as a research assistant until fall 2017 but he was still working out the details with the staff there.  He discussed what they were doing and at the end of the meeting suggested meeting on Friday.  Later, when I looked at the follow-up e-mail invitation I noticed that it was for every Friday, not just the next Friday.

At our first Friday meeting he spent a bit of time going over logistics.  Once again he reiterated that he wouldn’t be able to commit to my acceptance into the program until the “PhD recruiting process is done,” which admittedly was a mixed signal. Today (Friday December 23) was the second standing meeting.  Between the two meetings I spent considerable time running around trying to deal with various details.  Ultimately, nothing was quite resolved because we ran smack into Christmas break, but the ball is certainly rolling.

One challenge was taking his class.  While he signed off on it, and the CS department signed off on it, once it reached the “Enrolment Services” team, they advised CS that I was not eligible to register for the class because I wasn’t an “unclassified student”.  It turns out the deadline for applying for “unregistered student” status  was November 15.  I did find some irony in this, as this was my termination date.

One thing I recall from my own time working at Stanford many years ago is that Universities have rules but they also generally have a mechanism for overriding the rules – it’s mostly a matter of making a persuasive case and convincing someone with authority to grant an exception.  I was successful at doing so.  Further, by the time I received the exception I’d already started the “time consuming” part of the process – namely, getting them original transcripts directly from my undergraduate institution showing that I was granted the degree I claimed.  So, when everyone returns after the first of the year, I should be able to get that situation resolved quickly, register for the class and have student status.

Similarly, they’re also processing the paperwork for my appointment as a research assistant.  Ironic how I’ve come full circle almost 30 years later.  I was also amused to see that my old boss has endowed a chair at UBC.  It’s definitely a small world.

So now I can start focusing on doing research.  In the course of just over a month, I’ve gone from being employed, to terminated, to being a PhD applicant, to getting back into reserarch.  While I’m not accepted into the program yet, my perspective is that it will happen unless I screw up.  Naturally, my goal is to demonstrate my worth.

Exciting times!

 

Letters of Recommendation

Once again, I find myself in the position of asking people to write letters of recommendation.  My usual MO for this is to first ask if they are willing to do so. I make it clear that I will provide them with a template letter which they can then modify as they see fit – after all it is their letter, but it is to my benefit.  Thus, I want to minimize the hassle for them and ensure that the letter is strong.

In that context, I ran across this awesome post on Quora by Dr. Richard Muller about what he asks students to write up to assist him.  The gist of this was his requirement that someone give him an interview:

My first step is to interview the student.  I ask to be reminded of every time in the past we had interacted, if at all. Normally I mention these times in my letter; it helped the reader to recognize that the student was active.

Then I ask for any things that the student worried about, bad grades in other courses, for example. We then discussed them, and in my letter I might mention the fact that I was familiar with it (with a D, for example, in another class) and I would describe why (if true) I didn’t think that should be used as a negative. (Typically the student had a good reason.)

I ask the student to write me a page describing what he thinks of himself/herself, and what the student does outside of classwork. That’s based on my experience that those reading my letter often like candidates more if the student was well-rounded and personable.

I thought this was brilliant and plan on using this moving forward.

Welcome!

File Systems

This is my new blog, dedicated to the world of file systems.

I’ve been working with file systems for some time now (longer than I’d care to admit).  If you are not familiar with a file system think of it as the software inside your computer that stores your data away and gets it back for you when you want it.  It provides the organization to your storage device – whether it is a disk drive on your local computer or storage in some far-away location (“the cloud”).

It plugs into the critical software that runs your computer system and provides services to that applications can find your data as well.  When it works right, you hardly notice it – much like plumbing.  When it doesn’t work right, you suffer.

I’m not sure where this blog will take me, but I’m going to use it as a mechanism for tracking my own journey, organizing my own research.  If you find it interesting as well, that’s awesome!  If you don’t, it won’t diminish my own purpose for doing this.