Thursday, June 4, 2009

Thesis Document

The final version of my thesis document was approved on April 28th.  A PDF version is available here.





Per the requirements of the thesis course I sent it off to the binders who were kind enough to turn it into an actual book for just under $100. The final version of the book was approved by my thesis director on May 11, 2009 at which point I took up sleeping again.  The book is now sitting on a shelf in the Grossman Library in Harvard Yard.



View Larger Map


I haven't actually seen the bound copy since it was sent directly from the binders to the school.   I think I'll stop by the library when I go to pick up my diploma. I've been thinking about taking Alex (my 5 year old son) and making a day of it.

Tuesday, April 28, 2009

Advanced Page Numbering in Microsoft Word

For the past few weeks I've been responding to review comments on my thesis document. it boils down to a lot of tweaking of the text, and proofreading until I wish I never heard of my thesis project. But it was all pretty straight forward until tonight.

Today, in what I hope was the last review comment, I was told that the page numbering in my 262 page document was not correct. My document starts with the first page numbered 1 and proceeds to increment up to page 262.

But the thesis document requirement is:
  1. The first three pages of the document should have no page numbers
  2. starting on the 4th page pages should be numbered in roman numerals starting with the number iv. (so basically the first three pages were i, ii, and iii, but those numbers are supposed to be hidden.)
  3. Starting with the first page of Chapter 1, the pages should be numbered with incrementing Arabic numbers. 1, 2, 3...
If you, like me, are a casual Microsoft Word user you will find this task infuriating. As did the author of the Harvard Extended blog in this post. He came up with an answer, but it turns out there was a much simpler way to meet the above requirements.


The Solution
  1. Read How to control the page numbering in a Word document
  2. Find some way to thank Bill Coan for identifying this preposterous use case and writing such a useful article about how to address it.
  3. Create a new "Section" at the end of each of the first three pages using the menu Insert >> Break >> Section Break. Section breaks replace page breaks in these locations and will let you number the pages per the requirements above.
  4. Create a "Section" just before the Chapter 1 chapter heading using the same method as in step 3.
  5. Put the courser on the first page and add page numbers using the menu INSERT >> Page Numbers Be sure to un-check "Show number on the first page" just like I did the picture tot he right. Since this page is it's own section no page numbers will appear.
  6. Repeat this step for page 2 and 3 if there are page numbers showing. Those sections, may inherit the settings from page one. In that case you may not need to do anything.
  7. Put the courser on page 4 add page numbers again, but this time (per the Page Number Format image):
    1. CHECK the "Show number on first page 
    2. Choose Alignment "Center"
    3. Click Format...
    4. Choose Number Format "i, ii, iii..."
    5. Choose Start At "iv"
  8. Put the courser on the first page of Chapter 1 and add page numbers again, but this time:
    1. CHECK the "Show number on first page 
    2. Choose Alignment "Center"
    3. Click Format...
    4. Choose Number Format "1, 2, 3..."
    5. Choose Start At "1"

That's it. You should now have a document that follows the conventions for the Harvard ALM in IT Masters Thesis document.


Acknowledgments

I'd like to thank Ian Lamont, the author of Harvard Extended. I wish I had found his blog more than two weeks before I was about to finish school. And of course thanks to Google for pointing Bill Coan who wrote this obscure but brilliant article on MS Word page numbering.

Tuesday, March 31, 2009

Zero Hour


I turned my 89 page thesis document in to my thesis adviser and thesis director at 11:15pm March 31st 2009. 45 minutes before it was due.

I expect them to send back comments and change requests. There will probably be a few more revisions before the thesis is accepted.

There is one outstanding task: The code needs to be included in the final doc, so I need to write a script to read through the rails code and convert it into the format they expect in the doc.

I should be bouncing off the walls, but at the moment I'm too tired to be excited. Allison seems to have a horrible stomach bug, so I'm off be be Dad an check on her before I pass out.

Friday, March 20, 2009

Thesis Document First Draft

The first draft of the thesis document is complete! It came in at a paltry 50 pages.

Fortunately I'll be able to pad the page count with all the code I'm required to put in the appendix. Rendered as a PDF it only takes up 1.4mb of space. It's almost as if I didn't have anything to say.

Since the chances of my getting it just right the first time are next to nill, I'm expecting a pile of comments and recommendations from my thesis adviser. I'll have to act quickly to make any changes he requests before I turn it in on April 1st.


In the mean time, this is what Google Docs thinks of the thesis document.

Saturday, March 7, 2009

A Very Beautiful Graph

Of all the parts of my project, graphing has the most moving parts. It requires the generators to work, the controller to respond quickly and for a bunch of JavaScript to combine lots of data from both the generator and the controller and format that data into a Google chart URL.



This is an actual graph, of actual projections, and actual bug counts. It was served up by the controller after I clicked on a graph link from a generated project summary page. It's using completely real data from the controller DB and the generators history.js files generated at the same time as the enotify project page.


In other words. It works!

More importantly, there are NO caveats!

This is production data.  I didn't hold it's hand or even watch.  I just came back after it the generator did it's thing, went to the web page and TA-DAAAAA!

Running the Real Thing

I just launched a longevity test of the system using current production data. To this point all of the runs used data that was over 6 months old. While that data is valid, there are features of the graphing system that don't get exercised.

In order to get a full real life view of the graph functionality you need projections that span at least 1 week before and after the current date. While the graphs were tested with test projections that met that requirement, the 6 month old data didn't provide a real life view of a fully exercised graph.

So basically, I've tested this thing every way I can, and the only thing left to do is to import production data into the controller and let the generators do their thing.

If all goes as expected I'll be able to demo the running system with production data and extremely cool, live updating graphs.

Late night thoughts and Connecting to MySql on a Remote Machine

I'm sitting here in the dark loading lots of production data into the project so I can get some realistic looking graphs for the demo of the project.

Two things occur to me at this late hour:

  1. This project while ridiculously large in scope, was a good idea. Even as I run the import script data on different sites, I'm discovering that as structured as the data is, there are still differences between the data formats and types on the legacy server. A central db and controller is long overdue.
  2. I should have written down the instructions for enabling a remote mysql client/user to connect to a mysql instance. Here they are for the next time:


Users need permission to connect to mysql on a remote linux machine. If they don't have it, trying to log in with MYSQL Admin or MYSQL Query Analyzer will fail with a 1045 error.

To fix this log into the shell on the mysql server and type this:

make sure you have granted access to your user: (run command line)
mysql> GRANT ALL ON databaseName.* TO 'your_mysql_name'@'your_client_host_or_ip';
I found these instructions @ http://forums.mysql.com/read.php?35,9919,12139#msg-12139