1. 2022-02-05 update: we did not get married and are no longer engaged. This happened back in 2020-09. I’m just only now updating my post about it.

    tl;dr I proposed to Morgan. She said yes. We’re gonna get married!

    On 2017-12-30 in a little town called Paia on Maui, Hawaii, Morgan, Eli and I were sitting on the sidewalk eating some food that we bought across the street at a natural foods grocery store called Mana Foods. A couple people walked passed us and only Morgan was looking in the right direction to see that one of the people was Weird Al Yankovich.

    On 2017-12-31, Morgan, Eli and I were hitchhiking on South Kihei Road to go to Little Beach for the Sunday / New Year’s Eve festivities. A car drove by and Eli and I both looked at the driver and Morgan happened to look at the passenger riding shotgun and saw that it was Weird Al Yankovich again!

    We caught a ride with Saman in his overheating van that was full of coconuts and lilikoi. He was also going to Little Beach, so he took us all the way there. We walked in through Big Beach, climbed over the thirty-ish foot rock and arrived at Little Beach. When we got there at around 5pm, there were probably about 200 people there.

    Little Beach is a clothing optional beach. It’s got beautiful soft sand, gentle but fun waves and a view of Lanai, Kahoolawe, and Molokini Crater. Every Sunday people get together and form a drum circle and do fire spinning.

    We watched people bang on their drums. We swam in the waves. We saw humpback whales jumping out of the water doing adorable little twists and blowing breathes out of their blowholes. We watched the sun set and everyone cheered.1

    After the sunset, most people on the beach left. Some people started spinning fire. We ate some more snacks. At twilight, the three of us took off our swim suits and went skinny dipping. 2

    Eli got done swimming first and headed back to the towel (and, let’s be honest, the snacks). Morgan and I stayed in the water, naked bobbing in the waves of the Pacific Ocean at twilight. While holding each other close like a couple koala bears for warmth and for kissing, I realized that this was the moment I had been waiting for.

    Sometime in the middle of 2017, I decided to ask Morgan to marry me, but I didn’t want to propose then, during cancer and chemo and the general dumpster fire of 2017. I wanted it to be a special moment when we were our best selves, a happy memory forever.

    It was New Year’s Eve. We were on Maui in Hawaii on a beautiful beach. We had just watched a great sunset and whales breaching. Hippies were banging on drums and spinning fire. We were holding each other naked in the ocean. We3 saw Weird Al twice in as many days. This was, in fact, us at our best selves.

    So, I said to her. Girlfriend, you’re the best girlfriend ever. Let’s have a marriage. Let’s have a marriage license. But in the voice of Homestar Runner. She said, ok. And then we kissed out in water, now engaged!

    There was no ring. We both hate rings and don’t want our fingers to get ripped off. We’re not gonna elope or go to the courthouse. We’ll do up a right and proper wedding with all of our people there. We don’t know any of the other details yet. When we figure it out, we’ll blast it out. XOXO.

    1. That’s a thing that we’ve seen at several beaches, not just the hippie drum circle nude beach. People of all types on Maui cheer after the sun sets. I like it. 

    2. This was a big deal for me. I’ve never been very courageous about my body and nudity in public or in front of people other than my girlfriend. I’m trying to get over that particular hang up. I’ve just started wearing little bitty hot pants booty shorts swim trunks. It’s a small thing, but it was a big personal achievement for me. New year, new me. 

    3. “We”, but really just Morgan. I only saw the back of his hair as we walked away. 

    It’s the end of the Gregorian calendar year and we’re all getting reflective and aspirational. So, in classic “I didn’t blog much this year, but it’s the end of the year so I should do a wrap up post” fashion, here’s a wrap up / looking forward post.

    Didn’t Do

    First of all, there were a bunch of bigs things that I didn’t do that I had been doing in years prior (and wanted to continue) or things that I wanted to start (or finish) in 2017, but didn’t.

    Dark Matter

    I basically didn’t touch Dark Matter (my #indieweb implementation / Ruby on Rails CMS that powers my site) all year. I didn’t scuttle the project, but I decided that it was a much lower priority this year.

    Indie Web Camp

    I didn’t attend the annual Indie Web Summit this year. That’s the first one that I missed and I even lived in Portland this year. (I didn’t go to any regional Indie Web Camps, either.) I probably would’ve attended even though I didn’t do anything new to talk about, but it was a on a weekend that I got chemo poison pumped into my body.

    I also was nearly completely inactive in the #indieweb IRC/Slack channels. I did pop in for a little bit to help transition Ben Roberts to being the Microformats gem owner.


    Because of cancer and chemo, I didn’t really travel anywhere this year. The total solar eclipse and the post-cancer Hawaii trips are the exceptions.

    Pay Debts

    The best laid plans always fail. At the end of 2016, my girlfriend Morgan and I had a plan for how we could pay off all of our debts in 2017. And then 2017 happened. “Everybody has a plan until they get punched in the mouth.” Instead of paying off debts, I got diagnosed with cancer and accrued more debt. Same same but different.

    Save Money

    I can’t save money until square up my debts. So this was a non-starter this year.

    Van Improvements

    A combination of a few things discouraged me from doing any meaningful van improvements. 1. No extra money in the life budget for van work. 2. We weren’t living it, so van work was less pressing. 3. Cancer / chemo zapped me of any energy for physical projects.


    I didn’t do anything resembling exercise or physical fitness this year during cancer and chemo days.

    Did do

    Looking back, I’m surprised and impressed by how much I did accomplish this year though.


    I worked the whole year for my good friend Sarah Shewey at her event staffing startup called Happily as the sole developer (Ruby on Rails).

    End of #vanlife

    Morgan and I lived in our 1987 Volkswagen Westfalia camper van full-time for 18 months from July 2015 to January 2017. Our van is named #LittleMisadventureTime It was amazing. I don’t regret it at all, but we were both ready for a home in a house.

    Portland and N8duke

    We ended #vanlife by moving into a house owned by one of my BFF’s (Nate Duke, my longest friendship) and living with him and his special lady friend, Sarah Murphy. They were great at being our roommates and even greater at being my support tribe during chemo. Somehow, this was the first time that Nate and I have lived together.


    At the start of 2017, I helped launch a new website and a new publishing model for CrimethInc. We publish a lot more frequently than in the past. Our eventual goal is one article per week day. For now, it’s about 3-4 articles per week. We published two books this year and have lots of plans for next year. There’s also been a small but impressive group of random strangers contributing to the project. They’re great.


    This was, of course, was the biggest thing of my year (my life). I got diagnosed with advanced stage Classical Hodgkins lymphoma early in the year. In hindsight, based on the night sweats as a symptom, I think I had this cancer slowly smoldering inside of me for 5ish years.


    After a bit of hurry up and wait to get to the actual diagnosis / prognosis / treatment plan. I went through chemotherapy every other Friday for six months. It was both much harder and much easier than I expected.

    PS. If you ever have to go through chemotherapy, I absolutely implore you to get a port installed. Getting the chemotherapy directly through your arm veins is such a bad idea. Avoid it at all costs.

    Cancer Free!

    Remember that one time that I had cancer? That was so weird.

    All told, I got very unlucky and then very, very lucky. The cancer that I had was one of the couple few that’s actually curable, not just treatable. I had the very best treatment and support network a person could hope for. One month after my final chemo, I got the confirmation PET scan showing that (as far as anyone can tell) the cancer is gone for good. There will be checkups over the next few years to continue to confirm that it’s still gone gone, but all signs (and statistical data) points to it’s gone for good.

    Morgan’s Code School

    This one is less of what I did and more of what I watched. Morgan went to Code Fellows (now, Alchemy Code Lab) for a four month full-stack Javascript program. It was fun to watch someone going from zero to knowing how to program. It was frustrating to watch others’ teaching style and focus. It also was frustrating to only be able to help her so much because a lot of the Javascript was way out of my wheelhouse.

    Microformats Gem

    Ben Roberts has been around #indieweb land for a long time. In a total surprise (to me), he showed up one day with a pull request that basically rewrote the entire Microformats Ruby gem.

    Several years ago, I started the tiniest version of this gem and then quickly realized that it would be much bigger than I expected. Jessica Suttles took it over from there and built the first real version which was nearly spec complete. Ben brought it up to spec completeness and feature parity with the other language implementations of Microformats parsing.

    I helped him release a deprecation warning version since so much backward compatibility would break. Then we released a new full version with all of his work. Then, by chance during this time, I got ownership of the microformats gem, so we were able to rename the microformats2 gem to simply microformats. Dropping that 2 felt good. It also felt good to hand over the keys to the castle and let Ben fully own the gem and releases. He’s done a great job.

    I launched a simple Microformats explainer site and parser sites for each of the language implementations.


    One of my BFF’s, Bookis Worthy and I co-founded a startup called Sandstorm. We worked on it nights and weekends style during chemo days. Near the end of the year, we applied to Y Combinator and did not get accepted. Subsequently, we launched our first customer using Sandstorm in production: Breaker.

    Total Solar Eclipse

    The only traveling that I did during chemo days was 70 mile drive south from Portland, Oregon to Albany, Oregon. The occasion was to see a total solar eclipse. It was without question the most amazing experience of my life. I’m definitely going again in 2024, but hopefully I can arrange my life to see other ones between now and then.


    Pretty early into the chemo process, Bookis asked me what my travel availability / plans would be in December 2017. I had no idea, but when he told me that he and the family were going to Maui for a month, I said I was in. (I’m writing this post right now in Maui.) Morgan and I booked a place for the whole month and invited friends to cycle through one week at a time.

    No one really needs a reason to spend time in paradise, but this trip in particular trip was to relax with friends after this hellacious year and to celebrate that I don’t have cancer anymore. It’s been amazing. (And because of my plane ticket buying error, Morgan and I will be spending a week on Oahu too.)


    Like a lot of my past end of the year wrap-ups, I have ambitious goals for next. I almost always come up short, but always still do lots of great things. I’ll likely not finish all of my goals for next year, but I’d rather aim high. That’ll be in another post.

    Today is day three in a row of feeling lightheaded the whole day. It’s like I stood up too fast. But, you know, I didn’t and it’s all the time all of the time. Even when laying down.

    I don’t know my glucose level right now now, but when I got my PET scan last week, it was real good. At the suggestion of a friend, I got a personal blood pressure checker and started checking my levels when I’m feeling especially woozy.

    Otherwise, symptoms have been real good.

    Updates on Twitter as I check my blood pressure are here.

    Tomorrow, I go into the hospital to get my port installed near my collarbone at the unseemly hour of 06:00am. The port is to make it easier to insert the chemo infusion IV needle thingy each time and to not totally destroy my arm veins (which is an effect that one of the chemo drugs has on veins).

    Later in the day, after my port installation has made me a cyborg, I’ll get an echocardiogram to test the strength of the squeeze of my heart. The day after is a pulmonary function test (PFT) to test the strength of my lungs.

    Friday is chemo.

    While I’m in the hospital for the tests, I’ll check in with my oncology peoples about why I’m so fucking woozy and lightheaded.

    In more pleasanter news, my appetite is back and my palate is back to my normal (I’m not a super taster anymore). The trade off is I can stop being hungry no matter how much I eat. Maybe my cancer has a tape worm.

    Katie Nolan asked on Twitter about perfect songs.

    I saw her question via Tony Price’s answer. Which was a perfect answer. It really is a perfect song.

    I started thinking about what I thought was a perfect song, which turned into perfect songs, which turned into a whole collection of perfect songs. This isn’t really playlist in any curated or ordered sense, just a collection of perfect songs. (This was made off the top of my head over the course of about 30 minutes. I’m sure I’ve missed obvious songs.)

    Hip Hop / R&B

    “Cantaloop (Flip Fantasia)” by Us3

    “Formation” by Beyoncé

    “Fu-Gee-La” by The Fugees


    “Apistat Commander” by Xiu Xiu

    “C’Mon C’Mon” by The Von Bondies

    “Girlfriend” by Matthew Sweet

    “Holiday” by The Get Up Kids

    “Keep The Car Running” by The Arcade Fire

    “Say It Ain’t So” by Weezer

    “Song 2” by Blur

    “Tallulah” by Allo Darlin

    “Wandering Star” by Poliça

    Pop / Rock

    “Fast Car” by Tracy Chapman

    “Nothing Compares 2 You” by Sinead O’Connor

    “Since U Been Gone” by Kelly Clarkson

    “Smash It Up” by “The (International) Noise Conspiracy”

    “Unbelievable” by EMF

    “You Get What You Give” by New Radicals

    (Post) Hardcore

    “Arcarsenal” by At The Drive-In

    “Caboose” by Snapcase

    “Dead Flag Blues” by Godspeed You! Black Emperor

    New Noise by “Refused”

    “Of Roots and Wings” by Between Earth And Sky

    Punk Rock

    “Canada” by The Thermals

    “Done Reckoning” by Avail

    “Rebel Girl” by Bikini Girl

    Today is a good symptoms day. Very mild cough. Only one night sweat last night. No fevers in a while. Pretty high energy and good appetite. My friend Tonx was bopping through town en route to Seattle and we got an impromptu brunch. Then we sat outside in the sun in just a t-shirt. It was incredible. I’m super stoke for the weather to start being awesome again. Especially for recovery days.

    Before I had a clear diagnosis and treatment plan and was wondering if I’d die from this cancer. I didn't freak out too much before we had some real information, but minds grapes wander and thoughts get wild.

    I, of course, thought about friends and family and relationships. I thought about what is important to me and where I should be spending my energy. Classic case of "if you only had one year to live..." kind of thoughts.

    I thought about not being able to plant walnut trees and watching them grow for decades and eating from them. I thought about not getting to see the Northern Lights and the Blue Lagoon and bucket list things like that.

    But the one big thing that I kept coming back to was that I was worried that I wouldn’t get to see the collapse of industrial civilization. Fortunately industrial civilization has invented chemo therapy and is gonna get me through this. And maybe just maybe, I'll get to see the swan song of imperialist capitalism.


    I’ve launched a crowdfunding effort at tilt.com asking for help in trying to offset some of the up front costs of doing battle against cancer. If you can help in anyway large or small, I would appreciate it. If you can’t, I totally understand. I’ve been there too.

    The URL is: https://www.tilt.com/tilts/i-have-cancer.

    tl;dr It’s “advanced stage Classical Hodgkin’s Lymphoma”. Treatment is chemo every two weeks for six months. After that, they hope/expect that the cancer will be completely gone from my body and won’t ever come back.

    A Timeline

    #VanLife to Portland, Oregon

    My girlfriend Morgan and I lived 18 months of full-time van life in #littlemisadventuretime from July 2015 to January 2017. After that, we moved into a house in Portland with Nate Duke (my BFF since we were 13) and his girlfriend Sarah Murphy. They’re absolutely great.


    The day after we moved in, Portland got hit with a record amount of snow. We just got dumped on over and over. So in those days, I didn’t go anywhere, but just hunkered in. I don’t do well in the cold or the wet.1

    In February, I started showing signs of having a chest cold. Over the next few weeks, this little chest cold just wouldn’t go away, and other symptoms started showing up too, like fatigue and night sweats. I weighed myself to find that I’d lost about 5 pounds from my normal resting weight (135 lbs). Nothing alarming, just annoying and wintery.

    By mid-March, none of my symptoms were showing any sign of going away. Some were intensifying. Sarah suggested that I see a doctor, as I might have pneumonia, which both she and Nate had had that winter. I went to Zoom Care the next day.

    Zoom Care

    Zoom Care is a minute clinic kind of thing. If you imagine an iOS app as a physical place, this is that. I was hoping for “this is a cold you can’t shake, here’s some antibiotics” or, at worst, a diagnosis of pneumonia.

    The doctor that saw me was really focused on the wheezing in my breath and coughs. He thought that I might have asthma.2 I was too out of it to push back harder on “yeah, but what about my other symptoms.” He told me to come back in a couple days if there was no change. There was no change. So, I called back and set up an X-Ray appointment.

    I went into the Zoom Care clinic, got X-Rayed3, and left all in just a few minutes. It was like the express lane for health care, which is pretty swell, actually. They called me that night with the results. I missed their call, and so had to try to parse their voicemail and summary email. They said it was “urgent” and I needed to come back into “clinic.” How urgent? Which clinic?

    The X-Ray showed a large hilar mass — a mass on part of my lung. (And, by the way, no fluid in my lungs. So, it’s not pneumonia. Check.) They said I needed to come in for a CT Scan to get a better look at it and that they would then refer me to a specialist of some sort.

    Not: asthma, pneumonia.

    The Emergency Room

    I posted the X-Ray image to Instagram. A friend passed it along to his dad, a longtime cardiologist. When he heard my symptoms and saw the image, he initially thought it was a fungal infection called Valley Fever (coccidioidomycosis, cocci), which is caused by a fungus regionally located in the American Southwest. Having done his residency in that region, he’d seen it often enough that he could diagnose people in other parts of the country with it when their doctors were stumped.

    Morgan and I had definitely traveled through them parts on our road trip and had spent all of December 2016 in Southern California, including time out in the desert near Palm Springs. If this was a fungal infection, I had definitely been in the place to get it, more than once.

    My friend’s dad urged me to immediately go to the ER at OHSU and get a diagnosis and treatment process started, rather than wait to go through the previously suggested CT Scan and referral process. If this was a fungal infection, it would just get worse every day that I waited. So Morgan and I went to the ER.

    We were in the waiting room for three hours, got admitted, then spent the next seven hours in an ER room. They were reluctant to keep me there, because while I had an annoying cough and other symptoms, I wasn’t bad enough to get admitted into the hospital and wasn’t bleeding out or anything else that would be obviously urgent.

    We pushed back enough that they decided to keep doing one more thing, then another, and so on. First, they did full blood work, then an X-Ray4, then a CT Scan. Each time, the doctor and specialists came back with the same response: Well, you are interesting. I think what they meant was that my combination of symptoms was not obviously one thing or another.

    At the end of it all, the ER doctor called an OHSU pulmonologist (at midnight thirty) to get me set up with an appointment. Normally, this is done as a referral from a primary care physician, but I don’t have one of those in Portland yet and it takes weeks/months to get it all set up.

    Not: tuberculosis, sarcoidosis.


    I met with the chest doctor. We talked for an hour about my symptoms, my long history, and my more recent history. He saw on the CT Scan that my left neck lymph node was a little swollen. When he felt it, we could both tell that it felt different. He conferred with his attending doctor (boss/mentor). They both came back. The attending doctor asked some additional questions that I thought were pretty clever:

    • How much schooling had I done? Did it involve any science/lab work where I could’ve been exposed to chemicals?
    • What kind of jobs had I worked? Anywhere I could’ve been exposed to chemicals?

    At the end, they gave me the real talk. They would need to biopsy the lymph node in my neck to see if this was cancer, and if so, what kind (very unlikely: lung cancer. very probably: lymphoma). We also ordered the fungal infection test (just a blood draw). He said that A) I had a serious amount of illness and that B) either way (fungal infection or cancer), I would be dealing with this for the next several months at least.

    Hurry Up and Wait

    Meanwhile through all of this, my symptoms continued. The coughing, fevers, and night sweats just got worse. I was starting to think that every day was going to be worse until whatever treatment started. I went through a pretty rough patch for days where I couldn’t do anything but lay in bed and cough during the daytime. The only breaks from that were when I’d go downstairs to pee and refill my water bottle.5 But just that short trip was exhausting and would send me into a coughing fit.

    I had lost my appetite and my palate got weird. For about a week, I basically became a super taster: everything tasted too salty, too sweet, or too acidic. This was especially problematic because my weight had now dropped to 122 lbs and I was trying to fatten back up in preparation for what was almost certainly going to be chemo.

    A note about the night sweats. Every night, I would sweat through three or four t-shirts, the sheets, blankets, pillowcase, and a few towels. Things weren’t a little damp. They were fucking drenched, like I had spilled a glass of water in bed. This happened over and over all night, every night. It was worse than the coughing. It was worse than peeing the bed as a kid.

    And the fucking waiting. Between each step of the process were a few days of waiting (while symptoms continued) and not knowing the answer to what was happening inside of me. It was especially difficult when we were pretty sure that it was lymphoma.

    Fungal Infection Results

    While waiting to have the biopsy, my results came in for the fungal infection tests.

    We really wanted it to be fungal infection. Treatment is a few months of pills every day.

    Those tests all came back negative.

    Not: coccidioidomycosis (Valley Fever), histoplasmosis, blastomycosis, aspergillosis.

    The Biopsy

    The biopsy appointment rolled around. First, they numbed the area with a shot of lidocaine. Like the dentist, there was a little pinch from this. Then they looked at the lymph node in my neck with an ultrasound while they stuck the larger needle in place. It was 17 gauge. This would serve as a kind of guide or conduit for the smaller needle to go though. The smaller needle was 18 gauge. It was the one that did the actual collection of tissue cells from my lymph node.

    Again, the attending doctor was present while the radiologist navigated my neck using the ultrasound screen. It was like a video game where my squiggly lymph node was the mini-boss. When they got a good connection between needle and lymph node, they grabbed a chunk of tissue. The action made a loud click, like a staple gun. Each sample was a millimeter or two of tissue. They did this six times. I got a bandaid on my neck and then we were done.

    At this point, it was possible but very very unlikely that it was lung cancer. It was almost definitely lymphoma and nothing else. This biopsy was about finding out what kind of lymphoma and what stage it was. If it somehow turned out to be not cancer, then I would’ve been like an actual episode of House.

    Not: lung cancer.

    Biopsy Results

    Days later, I got the call from the pulmonologist. He told me that the biopsy showed that it was Classical Hodgkin’s Lymphoma. He then put in a transfer request for me to move to oncology/hematology.

    OHSU Center For Hematologic Malignancies

    I met with my oncologist two days later. I chose this person based solely on his schedule availability, but he turned out to be totally amazing. We talked for a couple hours about lymphoma in general, and Hodgkin’s in particular. We talked about preparation for treatment and the treatment plans. He took his time and answered all of my questions patiently. Morgan noticed that he and I speak similarly too.

    He told me that the cancer is stage 4 or “advanced,” but in Hodgkin’s Lymphoma land, that doesn’t matter as much. The treatment and outlook would be the same whether it was stage 2 or 4. With lymphoma — a blood cancer — by definition, it’s gonna spread, and is thus less about the single location where the mass is, like, say, breast cancer would be. Unusual lymph nodes are just an indicator that something is happening. He also told me that if I had come in a year ago, we’d be no better off and that they might not have even been able to diagnose it at that point.

    His Director of Nursing followed up with all of the other details. She’s also great and spent an hour or two with me and Morgan, going over every little thing and answering all of our questions. We even talked Cubs World Series Game 7 a bit.

    They ordered four tests to do before treatment, which will form a baseline to compare to as treatment progresses.

    • Some blood work to look at bloody things including a complete blood count
    • An echocardiogram to measure the strength of my heart squeeze
    • A pulmonary function test to measure the strength of my lungs
    • A PET scan6 to see if the cancer is below my diaphragm too

    Each of those is because the different chemo drugs will take a toll on my heart, lungs, and blood count. They’ll continue to measure those things to make sure that nothing drops too low, adjusting the treatment if it does.

    Next, I’ll get a port placed underneath my skin by my collarbone. Chemo drugs are also really hard on veins. If they were administered via my arm vein, that vein would be destroyed. Alternately, they could insert a needle into my arm, and then run a long plastic tube up my vein in my upper arm, and then across my shoulder and collarbone area, finally ending up near my heart. Every time I get chemo. Sounds terrible. Instead, this port will get placed and they’ll stick their needle into it each time. I’ll be a cyborg.

    Treatment Plan

    After these four tests are run, I’ll start chemo. The first chemo session is for six hours. Each time after that, I’ll go in for about two hours every two weeks for six months. They have high confidence that they’ll be able to completely eradicate the cancer from my body during that time and that it’ll never come back. I’ll have a slightly higher chance than the rest of the population for getting another cancer.7

    I’ll likely experience all of the same side effects and symptoms that you know about for chemo treatment. I’ll lose my head hair but probably not my beard, and so we preemptively shaved my head.. The thing that most surprised me from the doctor about what I should expect during chemo: I might very well gain weight during the process. Apparently, A) loss of appetite is a symptom of cancer and B) the cancer itself eats sugars in my body faster than almost anything else.

    My Tribe Is Strong

    I can’t say enough how amazing everyone has been so far. Friends and family have reached out and offered material and emotional support. Several people have offered to fly into town to spend time with me and help with whatever needs helping with. Some have already bought plane tickets. It means the world. My roommates Nate and Sarah have been super supportive. My girlfriend Morgan has been there at all of my doctor stuff and has taken care of me through all of the symptoms — non-stop coughing fits, night sweats, barfing, and crying.

    I can’t imagine doing this alone.

    The material and in-person support that everyone has offered is so important to me because it means that some of the load on Morgan can be relaxed. She’ll need support through this too.

    Small-World Connections to OHSU

    One last thing. Everyone at OHSU has been really amazing. They’ve taken the time to really listen to me. It’s the quality of customer service that I wish everyone could experience at every hospital. Interestingly, there have been a few small-world connections to OHSU in this process.

    1. Nate moved to Portland in the first place a decade ago because his then-girlfriend was getting her nursing degree at OHSU.
    2. His teaching partner’s husband works in the Center For Hematologic Malignancies.
    3. A longtime friend from Salt Lake was visiting me in Portland, and his friend is a nurse in the chemo department. She might very well be the one to administer my chemo.
    4. I had brunch with an old LA friend that lives here now and his partner. His partner works in the same building one floor below the Center For Hematologic Malignancies.


    A special thanks to Abby Phoenix for taking the time to read and edit this, fixing my mistakes and making sense of my raw draft.

    1. So, you know, I moved to Portland, Oregon. In the winter. 

    2. I might also have asthma of some sort, but this isn’t that. 

    3. I always think of Mitch Hedberg’s bit about Z-Rays

    4. Zoom Care was closed at this hour. 

    5. I’m a reverse Brita filter. 

    6. This test uses radioactive sugar which my heart, brain, and cancer will eat up fastest and therefore will light up on the scan the brightest. Radio. Active. Sugar! 

    7. They’re not sure if that’s because of having Hodgkin’s Lymphoma or because of the way they treat Hodgkin’s Lymphoma. 

    Facebook is a massive surveillance social graph1 which was already dangerous before an openly fascist government held power.

    If you imagine that dark times lie ahead. If you foresee war. A domestic civil war, a domestic war against a fascist coup, a world war. If you think we’re heading into an apocalypse. If you’re worried about registries and roundups.

    Then, start acting like it’s already the future.

    Keep It Secret, Keep It Safe

    Stop saying publicly what you’ll do, if… because when dotdotdot happens, there’s a record of your premeditation.

    Don’t make your enemies’ job of finding you and your associates easier by broadcasting it on Facebook.

    Cops Love Facebook

    Facebook has a map of the relationships between a billion plus people. They are cavalier with what they store about us, our behavior, and our relationships. Cops already use Facebook to target activists, dissidents, protestors and potential co-conspirators.

    When the fascists start their roundups and pogroms, this social graph (that we voluntarily created and Facebook extended) will make their job much easier. It’s a self-populated registry.

    This is not a drill. There is a war on. It’s not coming in the future. It’s already started.

    Imagine if the SS, Stasi, COINTELPRO or any secret police had this kind of map. Hell, imagine if King George had this kind of map! You think Paul Revere2 was broadcasting about his plans for a midnight ride?

    Quit Facebook

    Dark and dangerous times are upon us. We must now make the decision between what is easy and what is right.

    Protect yourself, your friends, and your friends’ friends. Quit Facebook too.

    Secure Your Communications

    Quitting Facebook is, of course, not enough to protect us. Whether you quit Facebook or not, you can harden your security and privacy defenses by doing a few easy things. Please do.


    Install Signal for iOS or Android (or Mac via Android). Use it for messaging. Don’t use Facebook Messenger or SMS or anything else. Don’t use this “only for the stuff you don’t want getting out”. Use it for everything all of the time.


    Use DuckDuckGo for all of your online searches. Change the default search engine on your browsers (on phone and laptop) to DuckDuckGo, too. They don’t keep logs of everything you search for. I’ve been using this as my default search engine for a couple years. It just gets better and better.


    Get a good password manager and swear by it. Don’t use the same password on any two sites. Use_strong_ passwords. (My password recipe is 64 characters of letters, digits, and symbols.) I use 1Password on Mac and iOS and love it. Use two-factor/multi-factor/2FA authentication everywhere that you can.

    EFF Surveillance Self-Defense

    The EFF’s guide is really great and goes into a lot more depth than this post. If you’re feeling adventurous, read that and harden your security and privacy even more. It provides detailed instructions for things like GPG and Tor. Highly recommended.

    1. You can think of a social graph as a map of you, your friends, your friends’ friends, and so on. It’s map of who knows whom, how they know them, who they have in common, what they have in common, the distance between relationships, etc. The reality is that we’re all very interconnected with each, by not very many jumps. That’s what makes Six Degrees of Kevin Bacon possible. 

    2. Paul Revere’s ride was itself an attempt to communicate securely, and he was detained at one point in the course of the ride by British forces. It is true, however, that Revere would not have been able to leave for The Ride if he had explained in advance on Facebook that he would do that in the event of British armed action. 

    I’ve been meaning to enable HTTPS for my personal site (and all of my others sites too) for some time now. It was always a pain in the ass or the spectre of a pain in the spectre of the ass. And not inexpensive.

    Today, I finally did it. It was fairly painless and I’d like to document my process. Hopefully this helps somone in the future (including Future Me).

    The three pieces that I care about working together well are: Heroku, LetsEncrypt and DNSimple.

    Googling for setting up HTTPS using Heroku + LetsEncrypt + DNSimple didn’t much help.

    Results were complicated, out of date, incomplete, or only about some combination of those three pieces, but not about all three of them together.

    This was my experience on 2016–11–17. If you follow along with me, your mileage may vary. If you come across this post way after the publish date and these steps are wildy obsolete and you want to update them, please email me.

    During the time since I’ve been wanting to enable HTTPS and finally got around to doing it today, Heroku made their HTTPS offering both free and much each easier, and DNSimple added a simple integration with LetsEncrypt. LetsEncrypt is totally free, so the expense of it was no longer part of the deterrant.


    LetsEncrypt is the certificate authority in this setup. They exist. They do stuff. But for the sake of my experience, I did not interact with LetsEncrypt directly at all. (And I think that’s part of their goal, to be this piece of infrastructure that you use indirectly at a higher level, like say via your DNS provider.)


    DNSimple is a DNS provider. They don’t host websites or database or anything like that. They make DNS management for my websites dead simple. Google Apps setup, one click. GitHub Pages, Heroku, AWS, one click.

    At their core though, like all DNS providers, they connect a domain name, like example.com, to the computer where that website is served from, like an IP address or another domain name. Like, say, over on Heroku.


    I host all of my apps/site that are built with Ruby on Rails on Heroku. You can also host apps built in other languages and frameworks on Heroku. They’re a “Platform as a Service”. What that means for me, is that I focus on building my app in Rails and not worrying about how to install and scale up/down my Postgres database or whatever.

    Heroku provides free HTTPS by default for all apps at their *.herokuapp.com subdomain. But that doesn’t help me in this case, because part of #indieweb ethos is to own your domain.


    I use example.com all through this post. Any where I use example.com, you should change that to your actual domain. For example, my actual domain was veganstraightedge.com. Good luck!

    1. Heroku: Use a Paid Dyno

    SSL stuff is built in now for all non-free dynos (Heroku’s word for a vm, roughly). Alternately, I think you can use the paid $20/month SSL add-on with free dynos. I can imagine that going away. And either way, it’s net cheaper to pay $7/month for a Hobby dyno and get free SSL.

    To migrate your free dyno to a paid dyno (Hobby tier, in this case), you can use this command on the terminal.


    heroku dyno:type free --app YOUR_APP_NAME

    OR you can do this through the web interface in your Heroku dashboard.


    2. DNSimple: Create Certs

    You need to acquire the actual certs now. Go to your domain in DNSimple. Then click on SSL Certificates. You’ll be on a URL that looks like:


    Then click on Acquire an SSL Certificate which will take you to:


    Click on Continue under Let's Encrypt, taking you to:


    Click the Automatically auto-renew the certificate check box.

    Click Create certificate order.

    On the confirmation page, click Confirm and request certificate.

    Then, wait for the email. It “generally takes 30 minutes”.

    3. DNSimple: Download Certs

    From the email with the subject of:

    SSL certificate www.exampl.com is issued

    Click on the like to the certificate page, taking you to a URL that looks like:


    Click Install the SSL Certificate.

    Expand Heroku section.

    Save the certificate bundle to your computer by clicking Download www_rabbleconf_com.pem.

    Download the certificate private key by clicking on Download www_rabbleconf_com.key

    Right now, before doing anything else, make backups! Copy them to a USB stick (that you trust), a backup hard-drive, whatever. Just put them somewhere else too.

    4. Heroku: Add or Update Certs

    These are the instructions Heroku CLI commands to run to add new or update existing certs, as copied from the DNSimple docs.

    Install or Update the certificate on Heroku.

    Run the Heroku certs:add command to install the certificate:

    heroku certs:add www_example_com.pem www_example_com.key

    If you are updating an existing certificate, for example in case of renewal, run the Heroku certs:update command to replace the existing certificate:

    heroku certs:update www_example_com.pem www_example_com.key

    If you had previously been using the legacy SSL Endpoint add-on, you will need to follow additional steps to upgrade to the new Heroku SSL system.

    Check the certificate at Heroku.

    Run the Heroku certs command to check the certificate:

    heroku certs

    All commands above assume that you’re running them from the directly that the Heroku app is in (has a git remote of heroku) and that the keys are also in that directory. DO NOT LEAVE YOUR KEYS IN THIS DIRECTORY AND ACCIDENTALLY git commit THEM.

    If you are running these commands from some directory other than where the Heroku app is, you need to append --app appname to each command (where appname is the name of your Heroku app, which you can get by heroku info from the app directory) to tell Heroku which app to apply the commands to.

    5. Local: Move Your Keys

    Add all of this is done and you have confirmed that your new certs are in your Heroku app, move your keys to someplace safe. Your public key is fine to share publicly. It’s meant to be, actually. But your private key should be treated like a password, shared with no one and protected at all costs. If it leaks out, or if you think that it could’ve leaked out, you need to go through the steps to issue a new private/public key pair and update your Heroku certs.

    6. Heroku: Add example.com and www.example.com to App

    Heroku needs to know which domains your app should respond to. It can be one or many. It doesn’t matter. Personally, I prefer the naked or root or Apex domain as the canonical URL.

    example.com instead of www.example.com.

    I like to redirect all www.example.com requests to example.com. In order to do this, Heroku needs to have both example.com and www.example.com added to your app. It’s easy to do.

    Run these two commands from your Heroku app directory.

    heroku domains:add example.com
    heroku domains:add www.example.com

    Instead of example.com in the above commands, you’ll want to use your actual domain.

    7. DNSimple: Use the Heroku Service

    Meanwhile, back at DNSimple, you need to hook up the Heroku services to your domain.

    First, find and click on your domain in your list of domains (or search for it in the search field). You’ll end up at a URL that looks something like.


    Instead of ID, there will be a number that represents your user ID at DNSimple. It’s not important to know what it is, but mine will be different that yours.

    In the sidebar, click DNS.

    That’ll take your to a URL like:


    From there, under One click services, click Manage services.

    Click the Infrastructure tab.

    Find, Heroku in the list.

    Click the + Add to add the Heroku service to your domain.

    When prompted, enter your Heroku app’s name. (Again, that can be found by running heroku info from your Heroku app’s directory.)

    Click Complete Heroku setup.

    Now, you need to do that process again to add the Heroku SSL service to your domain.

    Click the Infrastructure tab.

    Find, Heroku SSL in the list.

    Click the + Add to add the Heroku service to your domain.

    When prompted, enter your Heroku app’s name. (Again, that can be found by running heroku info from your Heroku app’s directory.)

    Click Complete Heroku setup.

    8. Wait to Propagate

    So… in theory, you’re done.

    In practice, you might have to wait some indetermined amount of time for the DNS to propagate all over the internet, because reasons. But at this point, you can test.

    Go to https://example.com. If you get your expected website, great! You did it!

    Now, test the www to see if the redirect is working. Go to https://www.example.com. If you get redirected to https://example.com and you get your expected website, great! You did it again!

    If not, you might just have to wait. You might also have to debug to find possible mistakes made along the way. Maybe you mistyped something along the wait. Double triple check everything on Heroku and DNSimple to make sure it’s what is expected. And make sure you didn’t copy paste example.com instead of your actual domain.

    That’s it! Or at least, it was for me. I hope it goes well for you too. Best of luck!

    Earlier this year, I redesigned the Indie Web Camp logo. Shortly after that, we (the indieweb community) decided to change the name of the community and idea and matching domain to Indie Web. Going forward, Indie Web Camp would be used just for the events.

    I was a part of this decision and still think it was the right thing to do. But the then recently redesigned Indie Web Camp logo was no longer scoped properly to represent more than just the events. We would now need an Indie Web logo.

    Simply removing the C from the IWC in the Indie Web Camp logo would leave it imbalanced. The I and C act as counterweights to each other with the pointy bottom bits of W acting as a kind of fulcrum.

    I have been thinking about a new new logo for Indie Web to use on the community wiki, as an avatar on social media accounts, etc.

    Part of my thinking for this design was to build it in such a way that it could be a part of larger design system for indieweb related things. Namely, I want to design logos for all of the building blocks (IndieAuth, Webmention, Micropub, et al (and maybe even microformats if Dan Cederholm would be ok with it)). I want an Indie Web logo and those building blocks logos to be able to work together in a coherent way.

    One day in a Sacramento coffeeshop, I sketched some (mostly) square based logo ideas. I’ve also been drawn to hexagons for the basis of the design system because of how well they stack together.

    To that end, tonight I explored a hexagonal logo design using the I from the Indie Web Camp logo and a re-imagined W to better fit into the space of the hexagon and to balance out the I. Then I added the chevron shape across the top sides to fill out the hexagonal space which also creates the illusion of a cube.

    This is a first pass. I feel pretty good about it now. But like the Indie Web Camp logo before where we did a few rounds of iterations between the first draft and the final version, I expect that there will be some rounds of feedback and iteration.

    First draft of Indie Web logo design

    As per the usual logo process, color and type treatment will come after the final one color design is finalized.

    All discussion about this proposal should take place on the Indie Web community wiki /logo page.