Developments

I really like the idea of defining humankind in terms of our tendency to produce artifacts with integer dimension rather than a fractal dimension.

I've learned about fractals a number of times, including in college math classes and my own curiosity. And I've seen labels of fractional dimensionality but never given the requisite attention needed to understand what they meant. This video did that for me.

And I can't get over the influence these easy-to-follow explanations of powerful ideas of thinking about the world might have on the next generation.

Stephen Hawking died today. He was diagnosed with ALS when he was 21, and given 2-3 years to live, but he died today at age 76. I thought I remembered hearing all sorts of weird coincidences about birthdays, including that Stephen Hawking was born on (I thought) Newton's date of death. Turns out it was Galileo's date of death. But I thought there was more to it, like that Newton was born on Galileo's date of death, but that isn't true. But Hawking did manage to die on Einstein's birthday, kind of a closed time-like loop, ha.

It's also piday, since 3.14 = March 13th.

I watched a Attenborough documentary earlier tonight, about a supercolony of ants that have conquered much of a mountain somewhere. I've heard about supercolonies elsewhere, I think maybe it's two species of Argentinian ants that seem to be taking over the world? Anyway, these ants had a lot of interesting feats. Like they harvest a sweet nectar substance from aphids, which they farm. And their larger scale cooperation and many queens (even within a single nest, of the hundreds or thousands of nests). Attenborough asked (maybe rhetorically?) if we are witnessing a step in evolution where ants evolve wide-scale cooperation, which he then points out humans discovered some time ago. (Ha! For years I've kept a list on wikipedia of interesting science facts (it could use a lot of cleanup), including:

A number of ant species farm fungus, thought to have discovered agriculture 50-65 million years ago, long before humans. The most advanced ant farmers (leaf cutter species) farm a fungus that exists no where on Earth besides their farms, an example of mutualism. There are also species of ants who "milk" aphids, and protect the aphids while they feed.

(Reading that now I feel like “ant farmers” is probably normally misinterpreted to mean “humans who have ant farms” when I meant it to read “ants that are farmers”. I guess I should fix that.)

It's entertaining to think of larger-scale cooperation as something that we might have beaten the ants to! Though even with our head start, they still might beat us to the punch. We haven't quite yet achieved complete cooperation with one another the world over, but we seem to be progressing in that direction, mostly (certainly far more than at any other time in history).

But I bring all that up to say I have a far greater emotional attachment to David Attenborough than I did to Stephen Hawking, despite the fact that my education is in physics and I've always considered my interest in biology to be more armchair curiosity than formal study. Granted, I always did well in biology classes and I never actually studied anything Hawking worked on, and much of it is over my head because I have no formal education in general relativity anyway. So it shouldn't really be that surprising.

I recently finished the second cycle of the clinical trial I'm participating in. I'll have a bone marrow biopsy on Tuesday and about a week later the results will be the first indication of how well I'm responding to the treatment, which will probably guide future treatment. I've mostly tolerated it well—at times feeling crappy, and I seem to have some very slight neuropathy issues recently in my finger tips and toes, but mostly feeling pretty well. (Though lots of blood transfusions recently too.)

Besides that I've been working on more curved crease origami, along with trying to model it in 3D.

In mathematics, a developable surface is a surface that can be flattened out into a plane. Since origami starts with a flat sheet of paper, and paper doesn't squash or stretch, the results of origami must too be a developable surface. Ruled surfaces are surfaces that can be constructed with straight lines. The hyperbolic paraboloid (also called a hypar) is a ruled surface, but not developable. The cylinder (without end caps) is both developable and ruled.

Folding concentric circles into a piece of paper seems to be both a developable surface (or at least a close approximation of one), and an approximation of a hypar. It makes me wonder if there is some kind of limit or something we could move towards, maybe as the distance between the concentric circular creases goes towards zero.

hyperbolic paraboloid (hypar)

scored vinyl

creasing the concentric circles

…and more

starts to flatten out as you get close

but eventually

it begins to ‘pop’

at that point it can be looped through itself

and weird things happen

This is the second piece I've made with vinyl, it is very similar to the first but with the width of each concentric strip about 30% smaller. In the first one I put a sheet of aluminum foil between the two self adhesive vinyl layers, this time I tried a sheet of plastic. I've also been considering trying fabric and cheesecloth. I have three more sets of scored vinyl waiting to be assembled (stuck together probably with a layer of something between them) and folded. Two are variations of nested circles (not completely concentric), and one is two spirals—one forming all peaks and the other forming all troughs.

I suspect that the creases should each lie on the intersection of a hypar and a sphere. I've been working on making 3D models of it recently, and can tell it isn't quite right yet, but believe it is getting close.

My next attempt will be entirely programmatically I think, inside blender with python.

I set up my camera to try and capture meteors on October 21st, pointed it in the direction of Orion, and took video for 5-20 minutes at a time (mostly going back in the house to avoid the cold).

In total I think I had around an hour and a half of footage. But who wants to star at a screen for an hour, looking for meteors? So instead I stacked the frames, in groups of 500, and looked for indicative streaks—and I spotted 6 of them! Since it was originally 4K, I cropped each of them to 1920x1080, and about 10 seconds, and put them together into this video:

Before these 6 meteors I had only caught one other, back in the Summer, the night before I was due to return the rented lens. I was trying to spot the Andromeda Galaxy (because what else are you going to do with such a telephoto lens?) and I happened to catch a meteor streaking near the Pleiades star cluster (I think?).

The Geminids are due to peak this Wednesday/Thursday (13th/14th) night (best around 1 am), and I was working on modifying a styrofoam cooler to keep my camera warm, but I'm skeptical it'll be done in time.

I'm writing this because it's a lot of nuance to tell everyone individually. To summarize, a few weeks ago my blood counts started to drop so they did a biopsy last Tuesday and today I got the results: it looks like I still have some leukemia cells. There are a variety of possible treatments they're looking at (they choose depending on the details of what is happening). The rest of this is a more detailed explanation of those points.

(Also the original title of this post was "less than ideal news" until I realized I used that same title last year when I relapsed. So this post is more blunt instead.)

My appointments were cut back to monthly in mid-August. The September appointment went fine, but in the first week of October my counts had declined, and my doctor was concerned. So the next week they did a bone marrow biopsy, and today he told me the preliminary results, which is that I have myelodyplastic syndrome, which is a fancy way of saying that my body isn't producing blood cells in the right amounts, which is probably because there are still leukemia cells floating around. (MDS and leukemia are not identical, I think there are a variety of causes of MDS, but since I had leukemia a year ago that's the obvious conclusion. Sometimes MDS become leukemia later. Also, I already knew about MDS a little because I know Carl Sagan had it. Turns out he died of pneumonia, but I think it was probably as a complication. Huh, he had three bone marrow transplants from his sister. The two things I have going that he didn't are, I'm almost 30 years younger than he was, and there has been an extra 20 years of learning in the medical community. In spite of those, we still haven't gotten that good at this.)

As a little review, the cells in our bone marrow produce our blood, red blood cells that carry oxygen, white blood cells that fight infection, and all sorts of other stuff, like platelets, which form clots when we're bleeding. Leukemia is the result of one of those bone marrow cells dividing out of control, instead of maturing into an adult blood cell. The immature cells are called blasts, and I think typically you don't really see any blast cells in the "peripheral blood" (the blood in your veins). To diagnose leukemia they do a bone marrow biopsy, they use a needle to get a sample of my bone marrow (from the bones in my lower back, which are easy to get to, cause I'm boney), and then they count up the blast cells.

A leukemia diagnoses is when 20% or more of the cells in the bone marrow sample are blasts (normally they expect 5% or less to be blast cells). My biopsy last week had about 6% blasts, so it's not exactly considered a relapse, and that's why it's considered MDS. (When I was diagnosed last year it was 100% blasts, and at that point they were circulating through my peripheral blood too, so a hematologist that I still have never met knew when he saw it that I had leukemia, and he called me and told me I needed to go to a big hospital right away. After the first chemotherapy I still had 5% blasts, which is why they did a second "induction" chemotherapy.)

So what will we do about it?

To start we'll try and induce some graft-vs-host-disease. Since the transplant last November, the main concern (besides the leukemia coming back), was that the new donor cells I received could attack me as if I were a foreign invader (this is what HLA typing is for; my donor was a half match). So until today I've been taking some immunosuppressant drugs, which slow down the white blood cells and make them less likely to attack me. The upside is that sometimes they see a graft-vs-tumor effect, where the new donor cells attack any remaining leukemia cells as invaders. That's the plan right now.

Next week we'll see if that's helping, and they'll probably do another biopsy in a few weeks. There are a lot of other options, but which we pursue might depend on how things go in the near future. There are some new drugs that might help, some new chemotherapy drugs, and some that might help induce graft-vs-host (and hopefully also graft-vs-tumor). Another possibility is that they might collect some adult T cells from my donor (a cousin on my dad's side). It'd be a small amount, because they can be quite dangerous to me, and once they put them in they can't take them back out.

That's pretty much all we discussed.

I mentioned how the results were preliminary, the other part is called cytogenetic analysis, which involves sequencing the genome (probably just part of it), in the leukemia cells, to see which mutations they might have. Some mutations are known to be vulnerable to certain drugs, so if any such mutations are identified they will likely dictate how we respond. They cytogenetics should be complete sometime over the next week or so.

Short digression, I'm watching a David Attenborough BBC show about predators, and the first episode just ended with cheetahs, following a mother with four cubs, and they mentioned that 90% of cheetah cubs don't survive to their second birthday.

The original cytogenetic analysis from last year found an inversion on chromosome three, which is associated with a poor prognosis, and not long ago I read on quora how leukemias are among the fastest cancers, which is both good and bad. Good because chemotherapy drugs are specifically chemicals that interfere with cell division (since that's what cancers are), and by dividing so rapidly they're more vulnerable to chemicals that are really good at killing young cells. The downside is that because they divide so rapidly, they also develop resistance quickly. When I relapsed last summer they used a different chemotherapy drug, because whatever cells survived the previous treatments were most likely to have some mutation that made them resistant to the previous chemotherapy drugs.

That's pretty much all I have to say about my health situation.

The second episode of that show (I think it's called Hunt?), I think he just said polar bears are only successful in 1 out of every 20 hunts. A failure rate of 95%!

So in light of this (my health), I'm focusing my work and time on things I enjoy, and which I think are achievable. Which has meant more curved-crease origami, and less programming. (Because a lot of my programming projects I'm unsure will ever pan out.) Spending time with friends. I should probably order a bunch of 3D models printed.

Okay, now a polar bear is climbing around an incredibly steep cliffs, eating bird eggs & hatchlings. First I was really worried for the bear, he's so high up, and it's ridiculously steep and crumbly. But then I'm watching him just slowly eating every egg and bird he can get near, and the birds are helplessly squawking at him, inches away as he eats their babies. I think there is something I find comforting about being reminded of how nature works. No matter how much time I have left, it's really unlikely I'll be eaten alive, or starve to death, which is what most animals deal with every day for their entire lives.

I've always loved nature programs. Though even as a little kid I remember feeling really bad seeing animals get caught. I'm not sure when it occurred to me that the animals chasing them had to eat too.

Haven't updated since... May 25th‽ Lots has happened, my appoints went from weekly, to every other week, to monthly (next week will be my second monthly appointment). I think my next bone marrow biopsy is around a year, so mid to late November. I've had a few therapeutic phlebotomies (bleedings) so far, but I'll probably need to continue them for a bit over a year.

Went to Wyoming (flew to Chicago with Collin, where we met Corey, and we drove to Wyoming!) to see the solar eclipse in August. All I wanted for my birthday was for the Sun to block out the Moon for about two minutes, and I got it!

Also, we watched the eclipse on a hilltop in Wyoming, on a lake shore, with about 10 other people, I think maybe all of them were from Colorado. Jenny was one of them, she left a comment on my main page, and then I did something that messed up the comment section on the main page, and I haven't figured out how to fix it yet.

I spent a lot of time trying to motion stabilize the footage of the eclipse, with mixed results. I shot it in 4K with a Sony A7S ii and a 150-600mm Sigma lens (with a Canon to Sony E-mount adapter) I rented from lensrentals.com. I used opencv to find circles, but that didn't quite work as well as I hoped. Then I used contour detection, with fairly good results. And then there is the issue of cropping. A month has already gone by since the eclipse, so I've set that aside and the video is here now.

And the plane crossing it, that was incredible! In the video, shortly after the eclipse starts, the screen goes black. I was watching the LCD when that happened, and my first thought was, "did the camera just die‽ how could it die right now‽" You can hear, I think Collin, saying how the plane is headed straight for it. I looked at the lens and saw that the breeze had blown the solar filter back in front of the camera, and I managed to flip it back off the lens just in time to get the plane crossing. Later Collin looked up flights for that area and we found two commercial flights that went directly over us during the eclipse, and in the video there are, I think, a couple times where you hear someone mention there are two planes. Collin once, and one of the other women later I think. She also says something about how the plane looks like it's steering to see the eclipse, and I think at the time both Collin and I thought she meant they had flown into the shadow, and we figured that was planned. But looking at the flight paths later, it looked as if one of the planes banked sharply to one side, then the other, and then back again, possibly to show the passengers? The result looks like a big bump in the flight path, which otherwise is headed north east to south west across the country.

I ended up buying the Sony I rented, and they're notorious good at shooting video in low light (the reason I rented it). The night before I returned the lens I decided to look for Andromeda, and I didn't know how easy it is to spot. The app I was using to look for it was so filled with stars I had trouble orienting it right, and decided to look at the Pleiades star cluster first, and I happened to catch a meteor on camera.

Recently I've been working on another variation of minesweeper again, and I just now learned a little tiny bit more of Swift, which is actually what prompted me to post. I figured if I write about what I learned I'd be more likely to remember it. It involves the concept of in-out parameters for functions. I had run into them in the past, but didn't understand what they were doing, but the examples I just read were clear.

I also started by trying to figure out what was meant by some code, a class named Array2D<T>, which it turns out is a generic type. Generic types (apparently) let you write code that will be more flexible than normal, like the way an array type can take integers, floats, strings, etc., as members, that's what makes them generic. The explanation of generic types involved in-out parameters, which if my understanding is right, are sort of like functions that will change the values of parameters. I think they're kind of like a shortcut of having a function return modified values and setting the variable you pass into the function equal to the returned value. To use an in-out parameter you must write inout after the parameter name in the function declaration, and when you call it you use an ampersand to denote the inout variable. Here's the documentation for in-out parameters. And here is the documentation for generic types. (Generic code I guess.)

I also revisited an idea I've had for a long time, and worked on quite a bit a few years ago, involving trying to generate point clouds from a video with a pull focus. I managed to get an iPhone app working that would perform a pull focus, and then wrote some opencv code to pull out the in-focus parts, but it does a terrible job. After the bad first attempts I remembered how years ago I read about a simple method for focus stacking (a related problem), that consisted of blurring the photo and subtracting the blurred result from the original. The idea being that the in-focus parts change the most during blurring, and the out-of-focus parts don't change much, so the result is mostly the parts that were in focus. But the results of that were pretty horrendous too. I also had the color off when I made the video below.

When I return to it again I'll try implementing something like the contrast-based approach to autofocusing. I suppose something I should keep in mind is that, ideally, each pixel will result in only one point, so I really want to look through the "column" of pixels (a single pixel over the duration of the video), and select the one with the highest contrast? That doesn't sound terrible...