Thursday, September 18, 2008
Post Transplant Drugs
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
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
Kidney Transplant Donor Perspective I
Kidney Transplant Donor Perspective II
Thursday, September 4, 2008
Kidney Transplant from a Patient 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"
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
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)
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]
http://www.linkedin.com/pub/
[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
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
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.