Thursday, September 18, 2008

Post Transplant Drugs

After a transplant, you have to take around $3,000 worth of drugs per month. I am very fortunate to have great medical coverage through Premera which covers 100%. For those who are less fortunate, Medicare covers 80% (I think for 30 months but I'm not an expert in that).

The good news is that there will be generics coming out on the market for some of the more expensive immuno-suppressants.

A recipient MUST be diligent about dosages and times to take them. Here is my system:

Thursday, September 11, 2008

Post Tranplant Status


Both Sara and I are recovering well. We just had an interview with KOMO AM 1000 News Radio.

Here is a picture of Sara and me taken right before we were discharged from the hospital. I am so glad that we took this because I have grown very found of this picture:

Group Health Article about Sara and Me

Group Health did a wonderful article on our kidney transplant.

The people in their internal media publishing and external media relations were really great to work with.

Group Health Article on Sara Denis (PDF)

Friday, September 5, 2008

Kidney Transplant from a Donor Perspective

Here is the two-part video series about my donor Sara.

Kidney Transplant Donor Perspective I


Kidney Transplant Donor Perspective II

Thursday, September 4, 2008

Kidney Transplant from a Patient Perspective

This is a video showing what it is like to have a kidney transplant from the recipient perspective.

Kidney Transplant from a Patient Perspective


I had a kidney transplant from Sara, an unrelated donor who didn't know me before she decided to donate.

We had the operation on August 19th, 2008. Both of us are recovering well. Look for my video on her experience.

Thank you Sara. You've changed my life physically because I am no longer sick and you've also shown me that there are truly wonderful people out there who just want to help others and ask for nothing in return.

I am forever in your debt.

Wednesday, September 3, 2008

Setting up a quick-and-dirty notes "repository"

I constantly find myself with quick "todo" tasks popping up and having to remember little details about a lot of different technologies.

To solve this, I used to keep a "Notes" directory which contains a "todo.txt" file and dozens of other text files with snippets of information (apache.txt contains little tidbits on Apache configuration, capistrano.txt contains information on setting up capistrano, aws.txt contains information about Amazon's Web Services I've found over the years, etc).

I would set up an alias so that the "todo" command would run something like "vim ~/Notes/todo.txt" and the "notes" command would run something like "vim ~/Notes" which would in turn show a directory of all of the notes.

This system let me quickly update my todo list by typing "todo" at a prompt, edit the file via vim, then :wq to save and go back to my work.

This worked well when I was on one machine predominantly, but now that I have to switch between multiple machines (Mac and PC) I find my notes out of date (or not accessible if I am on the other machine).

Therefore, I could either carry around local storage (such as a USB memory stick which I know will always leave plugged into the "wrong" computer) or put the notes on a network accessible server. I chose the second option.

While this might seem like a good job for a Ruby on Rails web service (and it probably is), I still wanted to use vim from a command line quickly and not have to open a browser window/authenticate/edit with an HTML editor/save as you would with a web service. I just wanted to touch files quickly without disturbing my workflow.

Here is how I set this up to work with my server. [Note: you need to have ssh access]

On the Mac

1. Make sure ssh works without needing a password (Instructions: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html)

You should be able to do "ssh user@hostname.com" and be signed in at this point.

2. Create a Notes directory on the server (in your home directory). I name mine "Notes" so it is always visible, but you can use ".notes" or whatever you like as long as you use the same name below.
3. Create a script named "nvim" in /usr/local/bin

vim scp://user@hostname.com/Notes/$1

4. run "sudo chown root:wheel nvim"
5. run "sudo chmod 755 nvim"

You should be able to do "nvim todo.txt" and edit the ~/Notes/todo.txt file on the server without needing to type a password.

For extra convenience, I created two aliases "todo" and "notes" which run "nvim todo.txt" and "nvim" respectively. This lets you simply type "todo" or "notes" and you are off and editing you're server-based repository.

On the PC

1. Since you will be using ssh/scp, you will need a Posix or *nix subsystem. I use msysGit (http://code.google.com/p/msysgit/) but Cygwin or putty will also work with the method below.
2. Make sure ssh works without needing a password (Instructions: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html)

You should be able to do "ssh user@hostname.com" and be signed in at this point.

3. If you haven't done this from the Mac yet, create a Notes directory on the server (in your home directory). I name mine "Notes" so it is always visible, but you can use ".notes" or whatever you like as long as you use the same name below.
4. Create a script named "nvim" in /bin. Neither the msysGit or Cygwin versions of vim support scp so I created a simple wrapper to download the file:

scp user@hostname.com:Notes/$1 /tmp/$1
vim /tmp/$1
scp /tmp/$1 user@hostname.com:Notes/$1
rm /tmp/$1

Note that the scp command has a colon after the server and before the directory (not a slash as in the vim command).

I created an alias "todo" which calls "nvim todo.txt". Unfortunately, with this download/edit/upload method you will need to know the name of the file. I created a "notes" script which lists all of the files in the Notes directory on the server:

ssh user@hostname.com 'ls Notes'

That's all there is to it.

If you need to fgrep the Notes directory, use the ssh command to run fgrep on the server.

Tuesday, August 26, 2008

Dialysis: The Movie

I posted videos up on YouTube for future kidney patients who have to go on dialysis. This was my last dialysis session because I received a kidney transplant from Sara, who had never met me before she decided to donate. I'll post about a kidney transplant after I've uploaded that video.

For those of you who are morbidly curious, this is what kidney patients have to do 4 hours a day 3 times a week.

[Warning: Medical Content -- Not for the squeamish.]

Dialysis Part I



Dialysis Part II

Leaving Microsoft (and other matters quite serious)

My last day at Microsoft was Wednesday, August 20th.

Here is the email I sent to my external contact list.

From: Damon Danieli [mailto:damond@microsoft.com]
Sent: Thursday, August 14, 2008 2:26 PM
To: Damon Danieli (damondanieli@gmail.com
Bcc: [external contact list]
Subject: Goodbye from that guy at Microsoft

You were sent this email if you were in my work address book. Maybe we worked together, maybe we met at a conference, or maybe we exchanged email at some time in the past. Hopefully you remember me. If not, here is my linked in profile to jog your memory:

http://www.linkedin.com/pub/dir/damon/danieli

[btw, please add me to your contacts if you haven't already so we can keep in touch]

After 14 years at Microsoft, I will be leaving next week and wanted to tell you my new email address (damondanieli@gmail.com). As some of you know, but probably not many, I had a kidney disease which progressively got worse until the point where I needed dialysis for four hours a day three times a week.

However, an incredibly kind and generous person by the name of Sara Michelle Denis (a complete stranger) offered her kidney to me and we will have a kidney transplant next week on Tuesday, August 19th. When this all began, I didn't know what type of person would donate a kidney to a complete stranger, but after meeting Sara it was clear to me that there are completely selfless people on this planet who just want to help others out. I feel very fortunate to be chosen by her as the recipient.

Because of the battery of immunosuppressant drugs I have to take immediately after the operation, I have to stay in isolation from the outside world (think "boy in the plastic bubble") for 4-6 weeks so I'm taking this recovery time to transition out of Microsoft. damond@microsoft.com will be no more…

Lastly, I have to give a lot of gratitude to Microsoft for supporting me throughout the time my health deteriorated. Microsoft has been a wonderful company to work for and I will remember my time here with fondness.


Friday, August 8, 2008

Flexible Rails

Coming from the rich client background of Win32, I wanted to use a client framework which made it easy for me to make complex user interfaces. What web developers are doing with Ajax never ceases to amaze me, but it is just not my forté.

Therefore, I picked up a really well-written book called Flexible Rails by Peter Armstrong. In a similar fashion to AWDwR, it walks you through building Pomodo, a todo list with a Flex UI and Rails backend. It also introduces the Rails 2 use of resources. What I found amazing about Flexible Rails was that every time I had a question while reading about a topic, I would turn the page to find a thorough answer. It was as if the author was writing the book just for me.

Thank you Peter!

My Current Development Environments on PC and Mac

(I am constantly tweaking my environment. I'd love to hear how you've set up your dev machines. Post in the comments.)

Why I Develop on a PC

I develop on both PCs and Macs, but mainly use my PC for these reasons (in order):

1. My development background
2. I'm used to the keyboard layout of a PC and have a lot of muscle memory built up
3. My laptop has a huge screen and I can plug it into a dual-screen dock in my office
4. I still write Win32 Apps in Microsoft's Visual Studio 2008

One PC User's Pet Peeve about the Mac

I love the feel of the keys on my Macbook, but it drives me crazy that different applications use different "schemes" for selecting and moving around text documents (Entourage is different than Thunderbird which is different than Netbeans which is different than Eclipse, etc). I can't for the life of me tell you how to "select page down" in every application. In fact, I don't think I can tell you how to do that in any application (something with the 'fn' key I'm sure, but which applications does that work in???).

But before Mac users get their undies in a bunch because a PC user said a Mac is less-than perfect, see below.

Why I Develop on a Mac

I do develop on a Mac when I want to:

1. Do a lot of *nix type stuff. You don't have to download and install putty, msysgGit
2.
Work with my images on Amazon's EC2
3. Create iPhone web pages using Dashcode
4.
Write iPhone applications with Xcode (I've had the SDK for a long time, but I just got invited to the Beta so I'm going to look into this more)

One PC User's Pet Peeve about the PC after using a Mac

My PC and Mac are comparible in terms of memory and CPU, but my Mac is SOOOO much zippier. I fully understand why people say that Vista feels unfinished and unrefined. I can restart my Mac book about 10 times before Vista is finished "shutting down". When I do an action on a Mac, it is very consistent in terms of how long it takes to launch. On Vista, if you open an explorer window or copy a small file, sometimes it just sits there for a while before it starts the task. To paraphrase John Carmak from id Software: the PC is performing billions of operations per second so there is no excuse for anything to be less than instantaneous.

Apple, please make a Mac with a large screen and full keyboard.

Here is What I Use

Since I do switch between PC and Mac often enough, I needed an environment which I can use for cross-platform development (in no particular order):

FlexBuilder (which uses Eclipse) for creating Flexible Rails apps. I have also installed several Eclipse plugins so I use it for PHP development as well. One license can be used for a single developer on both machines.

Xampp for quick
development on the LAMP stack. Although I install Apache and MySql separately from time to time.

Netbeans for Ruby on Rails development. Since you have script/console and development.log, you will find yourself stepping through code less on Rails than C/C++, nevertheless I like being able to set breakpoints and debug.

Netbeans has the best debugger for RoR. You can set breakpoints and watch variables which can be a godsend when you just can't figure out why your controller is returning the wrong JSON data to your Ajax request. Netbeans is also great for Java development although I don't do any right now.

vim (standard on Mac, gvim on PC). Although I'm older than the
combined ages of the employees of most startups, I'll confess and say I HATE vi. It just doesn't resonate with how I like to write, but since I use IDEs and ssh into my servers on Amazon's EC2, I need a single file editor to touch up Apache config files, /etc/hosts, capistrano configurations and so on.

git
(standard on Mac, msysGit on PC). For the record I also use Cygwin, but find that the msysGit bash shell has most everything I need (ssh, scp, etc).

There are other non-platform-specific web services I use regularly such as Github, Basecamp, Lighthouse, RightScale, etc.