Fearless refactoring

C++ is a much more complicated language than I ever imagined. I’d had a little bit of exposure to it earlier in college, and I hated it because of the amount of setup that was required to get it running. We were introduced to CodeBlocks and Eclipse, but both of them just seemed so clunky. Figuring out compiler options, makefiles, and trying to get programs that compiled on my home development Ubuntu workstation and on the schools Windows RDS environment and the professor’s autograder was just just too much. So when I really started diving into Python, it was like coming out from being underwater too long and getting that breath of air.

Working on the Pennykoin Cryptonote codebase got me a bit more comfortable with it. I stil didn’t understand half of what I saw. Half of it was the semantics of the code itself, half of it was just trying to understand the large codebase itself. Eventually I was able to figure out what I was looking for and make the changes that I needed to make. I never really felt comfortable making those changes, and even less so publishing and releasing them. That’s because the Pennykoin codebase had no tests.

I’ve spent the last few days working on some matrix elimination code for my numerical methods class. During class, the professor would hastily write some large, procedural mess to demonstrate Gaussian elimination or Jacobi iteration, and not only did I struggle to understand what (and why) he was doing, but he often ran into problems of his own and we had to debug things during lecture, which I thought was wasteful of class time.

As I’d been on an Uncle Bob kick during that time, I decided I would take a TDD approach to my code, and began what’s turned out to be a somewhat arduous process to abstract and decouple the professors examples into something that had test coverage, and allowed me to follow DRY principles. Did I mention that our base matrix class had to use C-style arrays using pointer pointers? Yes it was a slog. Rather than be able to use iterators through standard library arrays, every matrix operation involves nested for loops. I’ve gone mad trying to figure out what needs dereferencing, and spent far too long tracing strange stack exceptions. (Watch what happens when have an endl; at the end of a print function and call another endl; immediately after calling that function…

I started out working on the Gaussian elimination function, then realized that I needed to pull my left hand side matrix member out as it’s own class. Before I did that I tried to create my own vector function for the right hand side. So I pulled that out, writing tests first. Then I started with my new matrix class. I ran into problems including a pointer array of my vector class. For reasons that I’ll not get into, I kept the C-style arrays. I slowly went through my existing test cases for the Gaussian class, making sure that I recreated the relevant ones in the matrix class. Input and output stream operators, standard array loaders (for the tests themselves), equality, inequality and copy functions were copied or rewritten. After one last commit to assure myself that I had what I needed, I swapped out the **double[] lhs member for matrix lhs, and commented out the code within the relevant Gaussian functions with calls to lhs.swapRows(). Then I ran the tests.

And it worked

Uncle Bob talks about having that button of truth that you can hit to know that the code works, and how it changes the way you develop. I’m not sure if he uses the word fearless, but that’s how it feels. Once the test said OK, I erased the commented code. Commit. Don’t like the name of this function? Shift+F6, rename, test, commit. These two functions have different names, but do the same thing, with different parameter types? Give them the same name and trust the compiler to tell the difference. Test OK? Commit.

It’s quite amazing.

I spent several hours over the past few days working on adding an elementary matrix to the matrix elimination function, and I made various small changes to the code, adding what I needed (tests first!) and making small refactors to make the code clearer. I’ve had to step into the debugger a few times, but it’s going well. There’s still one large function block that I’ve been unable to break down because of some convoluted logic, but I’m hoping to tackle it today before moving on. And I’m confident that no matter what changes I make, I’ll know immediately whether they work or not.

Creating balance for my kids

I assume, that, much like 911, life will come to be known as before COVID-19 and after COVID-19. Today is, different, and I’m trying to be as conscious as possible about how this new life plays out. The chart above is one my wife posted in response to a question from someone stuck home with two small children about activities they can do to keep from going crazy, and I’ve already started making a list in my head of things I want my children to do.

I had a conversation with my oldest last weekend where I tried to explain the importance of attention. There’s a quote I kept seeing in the Waking Up app: “There’s a multi-front war on our attention, and we’re losing.” It’s resonated with me. I thinking about it much lately, whenever I’m feeling guilty about spending too much time on Twitter, or when my youngest is trying to get my wife to pull her nose out of her phone. But what especially irks me is the way my children act with regard to the television.

My oldest does not exhibit much, let’s say, resiliency, when it comes to not getting her way. She’s very prone to defiance and tantrums, and entitlement. Lord, the entitlement. Especially around television. I’ve tried various tactics over the years, both the carrot and the stick. I’ve put it (the television) in “timeout” for one or two weeks, we’ve tried Friday to Saturday night Shabbats. Lately I’ve been allowing them thirty minutes right after they get home from school that they can have a show, with the understanding that they’ll do their chores without any fuss afterward. Even that is starting to lose it’s efficacy.

As part of our drive to FIRE (financial independence, retire early), we’ve cancelled all of our subscription services, Hulu, Prime, and Netflix was the last to go a few weeks ago. The library has an app with short films and movies, mostly non-Disney animated versions of fairy tales, that they’ve been enjoying, and I recently purchased a ProtonVPN subscription so I can torrent anything else that we really want to see without worrying about my ISP cutting off service.

We take them to the library weekly, usually leaving with twenty or more books. My girls are readers, that is for sure. My wife and I are voracious readers, and we’re both glad to have handed that habit down to them. And my oldest has finally found something that she likes better than watching TV: Roblox, which I would describe as a Minecraft-type game.

During our conversation last week I tried to explain to her the difference between active and passive activities, why TV was a passive one and doing things like Roblox and learning apps was was not. It was a Saturday morning, and she had already spent more than half the time she’d been awake watching TV, and I tried to tell her that I wanted her to have some balance. I tried to sketch out a pie graph to show her what her waking hours looked like and what I thought a good balance between active and passive activities, screen times and chores, inside and outside play. I’m not sure how much I got through her head before she lost interest and started fidgeting, but I think some of it stuck.

So we’ll use the activities chart as a starting point, but make it a bit more dynamic. We’ll play with the timing and activities and see how things go for the kids. It’s also not a bad idea for me to put something together like that for my own time. I’m going to have to keep focused also.

Almost over my cold

Today has seemed a bit more sane than the rest of this last week has been. It seems like the household is almost over our colds, and will hopefully be back in shape over the weekend. The state has shut down schools for the next two weeks, which was faster than what I was expecting, so we’re still trying to figure out what the next week is going to be like. For the next two days, though, we will be keeping to ourselves and staying put at the house.

My wife mentioned that this whole situation was surreal, and I’m just relieved that we are in a good position to maintain for the next couple weeks. Again, we are in a really good position compared to some. I imagine we’ll be mighty productive. My wife, feeling better today, decided to take a crack at some of the clutter that’s been building up around the house, and I suppose I’ll be taking care of a lot of projects that have been neglected around here lately. I’m looking forward to breaking out the board game collection.

I’m not trying to be glib, of course, there are some hard economic decisions coming, and it’s likely we’ll be seeing the ramifications of it for many months. There was a bit of market recovery today, stocks were up a bit and BTC bounced some thirty percent off of it’s crash last night.

Regarding BTC, the explanations that I’ve read is that institutional investors were forced to liquidate to cover margin calls in the equities markets, which caused a cascade. I managed to hodl, and let my automated market order run today as planned.

There is a lot to do, and it’s going to require a lot of focus. I may have to trim some business expenses like BaseCamp or my Adobe sub unless I can drum up some extra cash. Of course, taxes are due in a month, so I should probably get cracking on that. It’s likely that we’ll wind up owing some due to increases in income, (no capital gains).

Other than that, I spent the day working on doing some Windows 7 upgrades using the Windows Deployment Toolkit. It’s one of the last projects I have planned at my job before I feel like I’m ready to turn the page. With classes delayed by a week, I’ve got a bit more time to work on my class projects, so I’ve been studying linear algebra and working on my matrix classes. Things are coming along well.

I’m also happy that I’ve managed to put hands together for the last of the four pieces from Bach’s Anna Magdalena notebook. This last one has been very difficult for me, but after several weeks of practicing the hands separately, I’ve managed to put them together and am working on getting up to speed and eliminating mistakes. My plan, once I iron it out, is to put up videos for all four pieces before I figure out my next piece.

I am hoping that tomorrow I will be able to get up on time, early enough that I can get my meditation and blogging in before the kids wake up. I’ve been missing my early morning routine and hope I’m able to churn out some more focused posts after I’m one hundred percent.

Quarantine incoming

I hate to write about COVID-19 again, but it’s probably one of the most important things to happen in my lifetime at this point, so I might as well go on about it. Hopefully I’ll be able to look back on these posts in a few years and … reminisce?

Bitcoin has lost around fifty percent of its value in the past few days. Equities markets are in free fall as well. Not even the NYSE’s circuit breakers nor a 1.5 trillion dollar promise from the Fed this morning could stop it. I think I’m handling it extremely calmly. I expected an end to this bull run for some time, so I’ve been sitting on some cash, in my IRA, and have been taking a large position in GBTC. I must admit BTC’s fall has me a bit taken.

Two hour chart for BTC. A year of gains wiped out in a day.

Right now I’m not changing any plans, as far as investing goes. I’ll continue my DCA targets, including buying some BTC tomorrow for the cold wallets, as well as my daily buy orders for the few stocks I’m scaling into. More GBTC on Monday as well. Thankfully, I decided to allocate some short term savings to my upcoming bills, so rent, car note and credit card payments will be good for the next month.

Beyond that, who knows. My wife has some security with her Federal job, and I can work from home, but I don’t think my boss can stay in business much longer. We’ve had too many clients get bought out in the last few months, and it’s been a while since we signed a new account. It’s time to update my resume and find something to do.

One of my clients is a pediatric dental office, and they said they’re running out of face masks, and are unable to procure more. Can you imagine? Doing dentistry without a face mask? I don’t know who that’s worse for, the hygienists or the patients.

Watching all this unfold on Twitter has been crazy. Trump’s failure will likely go down in history next to Nero’s fiddling, and it appears that he’s sick as well. Last night he caused chaos by announcing a travel ban to the EU, but then had to issue corrections to he speech in the hours after.

There’s still a segment of the population that is in denial about this. I’ve got a small sample size to go on, but most of the people that I’ve interacted with lately are ho-hum about this thing right now. My wife, my youngest, and myself have all been nursing various symptoms over the past week, runny noses, sneezing, coughing, low fever, you name it. I’d say it was just a cold if I wasn’t naive. All I can do right now is make them wash their hands everytime we get in our out of the car and keep them away from old people.

I had to run errands today. After I went to do a job at the aforementioned dentist, (no patients, thankfully), I stopped by the grocery store to stock up again. I’ve spent about six hundred over the last two or three weeks, stocking up. After I got home I had to run to the tire store to fix a flat. I took my youngest, home sick, to give my wife a break for a few hours. We picked up her sister and went to the playground to let them blow off some steam, and the library to stock up on books. I feel slightly guilty about it, but I have to choose my battles. It’s not time to lock down yet, and when it is, it’s going to be hard enough.

My university, and most of the others around the state, have extended Spring Break another week and will be going to all online classes. The local school divisions haven’t done anything other than cancel sporting activities. The governor has declared a State of Emergency. There are several confirmed cases in the region, but I don’t think we’ll be seeing the brunt of it for another week.

My wife and I seem to be in a detached state of inevitability about things. It’s like we’ve prepared for a hurricane that’s bearing down on us, but even that metaphor falls flat. the next couple weeks will be very, very difficult for a lot of people. I don’t know how bad it will get for us; I imagine the financial repercussions will be more severe than any health issues. I just hope we don’t lose anyone we know.

Django on Docker development challenges

I finally had some time to do some deep work yesterday, and go my unversity project’s Django instance up and running. It took way to long. The local version settings for Cookiecutter Django work very easy from a Docker setup, but deploying them to a production instance took me by surprise. There were several issues I had to work through.

Cloud storage: I had inadvertently setup my project with the cloud storage settings for AWS. We’re not using either AWS or Google Cloud Services for CDN since this is just a small prototype. Since we didn’t have the AWS bucket credentials, the Django service wouldn’t start. I had to replay my setttings file to recreate my project without cloud services set to none. I attempted to use a fork of CC Django that uses Ngnix as the media server, but had other issues with it and decided we just won’t have media for this prototype.

Traefix: The production settings put Django behind a Traefik load balancer firewall, it’s configured to use Let’sEncrypt! for validation. Leaving this section blank causes Traefik to fail. So I commented out the SSL validation section of the configuration file. Currently it throws a warning about a nonexistent validator, but this is the only way to get it to serve pages. Currently. I’ll register with Let’sEncrypt!, but I’m not sure I’ll be able to procure a cert for our web server given that it’s a host on our University’s CS domain.

Developmental environment issues: Perhaps the most frustrating problems I’m having are around the way our environment is setup. I work off campus, yet our resource host is only available inside the campus network. I’m using our CS Gitlab server as a code repo, but I haven’t setup and CI jobs to deploy the code yet. On order for me to terminal to the server I have to SSH to our public CS server, then SSH to the resource server. In order to view the Django website, I have to open an RDS session. Not ideal, but I’ve yet to optimize the setup.

And troubleshooting these various problems with our production server comes with it’s own set of challenges. The git repo is synced to our Docker host, and the instance is deployed via docker-compose commands. In order for me to update the code, I have to cycle through down, build and up commands to resync the code. Hopefully, I’ll be able to setup Pycharm’s Docker remote capabilities to edit the code directly within the docker instance. We had planned to setup multiple containers in order to run a test server, but that’s going to be very difficult on a single host.

I’ve had other minor issues with production settings not taking properly. It looks like the .env files aren’t loading properly, causing the default local ones to be imported. I had to change the defaults in manage.py, but I assume this may break our local setup.

When everything is shaped up, I’ll have one git repo that can be run locally, in test or production, with a CI job that will deploy commits to our Docker container. I’ve got a lot of work to do.

And now I’m a prepper

I’ve been sick lately. My youngest has had a cold, and I’ve had a mild symptoms the past few days. With that and the news on Twitter and the markets tanking over the last week, the Coronavirus is about all I can think of. I had met with a friend who had recently traveled to Thailand and had a “stomach bug” for a day before I met with him, but the cases out of Pattaya don’t match the timeline when they were there. So I guess it’s just a cold.

I’m marking eleven days on my calendar, given that’s how long it took Italy to go from five hundred cases to the lockdown of the entire country. We are not prepared here. The local school system is planning and doing a one question phone survey tomorrow, but the assistant director of my children’s daycare told me that there had been no discussion around closings yet. My wife and I are continuing to try and build up supplies. We’ve been buying extra food at the grocery store, and she stocked up on OTC medicines last time she went shopping.

Given the seriousness of this disease and how quickly it can spread, I’m debating whether it makes sense to self-quarantine. Yesterday I had a client’s site go down because of some hardware issues and I had to roll over there even though I wasn’t feeling completely well. I made sure to wash my hands several times and wasn’t coughing or anything, but I still feel guilty for having touched people’s keyboards. I have one project planned that I’ll have to deal with with this week, and then I’m staying away from client sites unless I absolutely have to. Not sure about school yet. One of my classes is a lecture-only class, and my professor is probably at-risk for complications, but I’ve heard nothing from the school as of yesterday.

So my wife and I will continue stocking up on non-perishables. Fresh fruits and vegetables are going to be a luxury if things go the way I fear, so we’ll probably be looking at a real attempt at growing vegetables this year.

The main concern is how we’re going to keep the kids occupied if we’re forced to hole up at the house for two weeks. The last thing I want them doing is watching TV the whole time. It will be hard keeping them busy without being hands on, at least for our youngest. I guess my main concern, selfishly, is that I’ll have a hard time finding uninterrupted blocks of time to do deep work during the day.

This week is technically spring break for me. I was hoping to use it to catch up on university work, which I’ll write more about later this week. I think I’ve said enough about COVID for the past few days. I want to write about a pod I listened to about Commercial Open Source Software companies, as it relates to possible post-university opportunities. Hopefully, I’ll be able to recuperate and focus on some of these projects, and start writing a new resume. I definitely feel that I’m closing the door on this previous chapter in my career. Each interaction with a client seems like it may be the last. I told a cold-email sales solicitor that I was planning on leaving the company after graduation, which makes it somewhat real in my head.

I am also done with Pennykoin, which clears up some brain cycles to focus on other things. I really need to move toward the things that are going to provide the best opportunity, and I haven’t believed in that project for some time. I was something for me to tinker around with an gain some familiarity with how blockchains and cryptocurrencies work, but it’s broken and I’ve got to move on.

I picked up a copy of The Future is Faster Than You Think last week and have been reading it in very small chunks. I want to give my brain time to process what I’m reading, and allow myself to let it sink in. There is a whole new world coming, and I want to approach it consciously, and point myself in the right direction. More to come.

COVID Mary speaks

There’s a couple things on my mind this morning. First and foremost is the Coronavirus concerns that have been spreading. It’s become apparent to me that this virus is a black swan that that has already put the global economy into recession. Here, I write about why this disease is a big deal, how my family will react, as well as some of the societal, economic and political ramifications.

What to expect

My prediction, based on information I’ve seen reported by epidemiologists, is that we should expect somewhere between four and five hundred thousands deaths in the United States over the next twelve to eighteen months. The doubling rate for this virus is around six days, with a four week incubation period. This spread, if it continues, could cause a full-scale collapse of the hospital system by late May.

The failure of the Trump administration to properly deal with the beginning of this disease over the last few weeks has already set the stage for massive spread of the virus. Trump’s self interest, mainly his failure to acknowledge the true risks of COVID-19 due to fears to spook the markets and jepoardize his chances for re-election, is the main factor in the coming pandemic. Three years of cronyism within the hall of government, replacing qualified careerists at places with the CDC with Trump sycophants, is what will make this a historical failure.

My wife, who works at a Federal hospital, is of course concerned, and I have already come to terms with the fact that everyone in our family will likely get the virus. Statistically, given the long incubation period of this disease, there is a non-zero chance that I may already have the virus, and so my response at this point is to basically act like I’m an asymptomatic carrier. My goal is to not be some sort of COVID Mary and spread it to everyone around me. So I’m going to minimize my trips out of the house as much as possible, and use hand sanitizer before and after I enter any public spaces where I touch a door or other such surface. Tissues, wipes, hand sanitizer are all proper items to carry, and maybe even nitrate gloves, face masks and eye protection if forced in a situation where close contact with crowds is unavoidable.

How to react

This epidemic will no doubt have a huge effect on how we gather. The tech industry has already cancelled a number of professional conferences, and I suspect that any organizations that have events planned in the next few weeks will follow suit. This excellent article on the COVID growth rate notes how the tech and finance industry is dealing with the COVID threat notes that the industry’s familiarity with compound or exponential growth, and network effects, give them a better understanding of how quickly this disease may spread. This exponential mindset is at odds with the “base-rate” experiences of most politicians and policy makers, who deal in a world of linear growth.

My wife and I are most concerned for our parents, mostly our fathers, who are far from the paragons of health. I’m also concerned for my grandmother, who is in her late eighties. There is no doubt in my mind, though, that my children are most likely to be the ones most likely to be vectors for contagion. My littlest one is currently nursing a cold, but there is no doubt that the schools and day care are ill prepared to deal with the situation. Cities on the West Coast are already cancelling school and university, and with the first coronavirus case in my state being reported yesterday, I know it is just a matter of one or two weeks before cities in my region are going to be forced to do the same.

The question my wife and I are asking right now is whether we are prepared to self-quarantine. I would have no problem working from home since I already do. Having the kids home would be more a challenge, as a parent. Thankfully, we’re probably close to having supplies to quarantine ourselves for two weeks, which I think will ultimately happen. Of course, our family is privileged, and it is how we deal with the economically vulnerable, the homeless, e.g. those without sick leave or savings, that will determine how quickly COVID spreads.

Societal ramification

I’ve left aside the economic ramifications of all this, but I’m sure they are going to be massive. The response from central banks have been telling, but given that they’ve exhausted their traditional stimulus activities over the past few years trying to artificially keep the bull market running, they will be ineffective. The pullback in the markets the last week or two is probably just the start. The banks only effective measure at this point is to print cash, the question is whether they’ll be able to get it where it is needed, to the working class.

The effects on travel and hospitality business like restaurants, hotels, and yes cruise lines, is going to be massive. (I saw a report last night that transatlantic air flights were less than three hundred dollars!) While demand-side issues will be problematic for most small businesses due to quarantine, it’s the supply-side ones that are really going to test our economic system. Apple was the first to note that they were unable to meet numbers due to shortages in chip fabrication, and we’ll likely see this play out again and again across all manufacturing sectors.

So while the Fed will be forced to provide stimulus to keep business and workers afloat, there will be shortages of necessary supplies as the population stocks up and prepares to self-quarantine. There may be a short-term boom in certain sectors like toilet paper, but expect price-gouging in the longer-term as other sectors are unable to keep up demand. The influx of cash, coupled with the upcoming bitcoin halving in May, should lead to new all time highs for the cryptocurrency.

What all this means for the Presidential race is anyone’s guess. I would think that Trump is done, but I’ve given up trying to predict what will happen with this Administration. He’ll likely blame and deflect responsibility, possibly even declare martial law to delay the election. I would think that this crisis makes Sanders the likely nominee, since his health and economic platforms would likely be more effective in stemming the spread of this disease, but it may be too late for him to win the nomination. We will likely know for sure in the next few weeks.

Ultimate effects

Finally, given reports that attendees at both Davos and CPAC have tested positive for the disease, it is clear that this is one disease that will hit the elites as much as the common man. In fact, given that the Trump, Biden, Bernie, and most of Congress are in their seventies, there is a chance that a significant number of them may die from this disease . It has been said that one of the mitigating factors for income or wealth inequality over the time span of human history has been periods of wealth destruction, such as famines or wars, which leveled the previous orders of the day and reset the game back to a more equitable level. The Coronavirus may be the catalyst which leads to the greatest redistribution of wealth in eighty years.

Political moderation in these times is a vice

So the Democratic primary race is down to Bernie and Biden now. Warren dropped out yesterday and there’s been lots of speculation as to whether she’s going to endorse Sanders. Twitter is a complete mess right now, and I haven’t been on any other social media. I can just imagine how toxic Facebook is at the moment.

The only thing I’m really paying attention to is the delegate race. Biden has a slight lead, but is barely a quarter of the way to securing the nomination. Last I checked, there were still enough undecided delegates in California to give him the lead, so I’m not resigned to Biden as the nominee just yet.

Sam Harris had Scott Galloway on the most recent episode of Making Sense. It was an interesting conversation. I’ve heard Galloway speak in support of his book before, but the conversation took a more political turn toward wealth inequality, what they call “class warfare within the Democratic party, billionaires, and of course, cancel culture. Galloway professes to be progressive, but disdains the Warren/Sanders economic platform.

Galloway has an interesting outlook on life, and I’m not sure I have the words to describe it succinctly. At one point, when Sam asks him whether he should use Facebook for marketing, given their role in destroying our Democracy, Galloway goes on a tirade about how Facebook is the most dangerous company on earth, calls Zuckerberg a sociopath, and then says that Harris should “absolutely” use Facebook’s advertising. He then adds that he’s happy to make money off of their stock, before calling for the government to take anti-trust action against the tech giants. He uses the breakup of Ma Bell, pointing out that after the split, each of the companies created were worth more than the original AT&T.

Galloway is full of these contradictions, and has some fascinating arguments. I’m still having trouble reconciling his acknowledgment of American socialism, namely the California university system that he benefited from, with his rejection of Sander’s policies. The interview, recorded before Bloomberg dropped out, goes into stop and frisk. Galloway talks about his support for Bloomberg, and makes some compelling arguments about why Bloomberg is well positioned to beat Trump in the fall.

During his defense of billionaires, he acknowledges most American’s wealth aspirations, and goes on to make the observation that most moderate American’s “don’t care about what happens in the African American community.” Those are the people that you have to win over to defeat Trump, he says.

I can’t recall ever listening to someone who I both agreed and disagreed with so much at the same time. It seems that Galloway has decided that the world is a certain way, and has taken a brutally pragmatic approach to life. Whether it conflicts with his personal beliefs or not, so be it. Facebook may be destroying to country, but I’ll be dammed if I ain’t going to profit from it in the meantime. He somehow expects the government to step in and do something, all while acknowledging that government has been bought and paid for by these same tech firms. I can decide whether it’s cognitive dissonance or some kind of ingenious rationality.

The conversation is very interesting, and there are couple portions that I’d like to excerpt and share if I have time. I think Galloway’s mindset, or at least his rationale, is prevalent within many political and business elite, and this conversation offers an interesting argument for a moderate candidate to run against Trump in the fall.

That said, I don’t buy into all of his argument, and still support Sanders for the nomination. I think Galloway makes some comments that actually can be used to better frame the case for Sanders. The conversation around means testing Social Security, has some very interesting points.

Galloway ultimately is saying the quiet parts out loud. He isn’t afraid to think out loud, and I think what he’s saying is important for those on the left to hear, and ultimately be able to rebut.

This metaphor of the moderate and progressive wings of the Democratic party as a bird bothers me. “You need both wings to fly.” Yes, but does the metaphor really hold up. I don’t think so. The entire moderate position seems predicated on attracting conservatives who are fed up with Trump, people like my dad. They preach “party unity”, but only as a way to solidify their position to the middle. They assume that radical economic policies won’t have traction with voters in red states, but I’m not sure that’s necessarily true. We’ll have to see how the primary plays out to know how that goes. Moderates may have coalesced around Biden, at the moment, but we’ll see how the voters turn out now that the choice is down to the two of them.

I’m going to finish with this clip that I saw this morning, between Simone Sanders and some lady that had the audacity to whitesplain Martin Luther King’s Letter from a Birmingham Jail. It speaks more to why I think moderation within the Democratic party is perhaps more insidious than anything Trump is doing.

Dad blog

My kids are so different from each other. Some researchers have used birth order to describe some of these differences, but I tend to think that stress hormones during pregnancy and early childhood are more responsible. During my wife’s first pregnancy, we were living in a small, seven hundred square foot home in a lower income area of town. I lost my job several weeks before she was born, and was unemployed for three months after she came to us. In some respects, it was good to be around to help with the baby during those first couple months, but the stress of the firing didn’t help my wife relax.

Like all first-time parents, we didn’t know what we were doing. My wife worked in daycare when she was younger, and studied early childhood education when she was younger, so she has more experience dealing with kids that I do. Still, we fretted over sleeping arrangements, worried about SIDS and whether it was safe to co-sleep. My wife nursed, and the constantly re-evaluated whether to have a bassinet in the bedroom, keep the kid in her crib, or let her sleep in the bed. Her maternal instincts were often at odds with my sleep needs, and I was constantly trying to sleep train the kid.

After our daughter was old enough that we could start thinking about weaning, I ferberized our baby. This procedure, named after one Dr. Ferber, hypothesizes that the reasons young children have problems falling asleep is because they aren’t conditioned to do so on their own. Ferber’s method is to leave the child alone in their room for increasing lengths of time, five, ten, fifteen, and so on, until the child finally falls asleep on their own. I had no problem following this plan. Listening to my child cry for a few minutes in order for the promise of sweet, sweet, sleep for my wife and I was worth it. My wife, however, found it very difficult to bear.

The first night, it took me over forty-five minutes for my daughter to fall asleep, so it must have been when I set my timer for twenty minutes. After a few more nights of progressive success, our child was able to go to sleep without much fuss. Now my wife and I have differing accounts as to the ultimate success of my attempts, so whether she stayed asleep throughout the night or whether this is all a sleep-addled delusion on my part is very well up in the air.

We moved into a larger house before we decided to have our second child. The two girls are four years apart in age. I’ve been gainfully employed since our first was born, and my wife scheduled regular prenatal massages during her pregnancy. And the way we’ve handled our second daughter has been completely different that our first. First off, we were way less worried about SIDS, and my wife eventually began co-sleeping very early on, purchasing bed rails and special pillows to prevent any falls. We introduced daughter number two to solid foods very early, letting her gnaw on large pieces of vegetables long before she had teeth. And my attempts to sleep train her have been rebuffed by my wife.

I must have spent well over a year sleeping on the guest bed, giving my wife and younger daughter the master king size to themselves. My daughter had a tendency to sprawl horizontally across the mattress, pushing her feet or knees into my back. And she also wants to fall asleep with an arm or leg on top of me or her mother, and sometimes, if she finds that she’s not in contact with one of us, she’ll swing an arm across her body. I’ve gotten more than one hand across the face after coming to bed.

So she’s almost four now, and even when we get her to fall asleep after laying with her in her own bed. She always wakes up a few hours later, crying, before coming to find her mother. My oldest child has no problems falling asleep know.

All of this is just a long way of getting to the point about the differences between the these two during the rest of the day. Our oldest child is very difficult, mostly pessimistic, and very headstrong. My wife, taking the feminist perspective, says this latter quality means that she’s got leadership potential, but we both agree that she is extremely negative and unpleasant. I struggle with her behavior. My parenting style, inherited from my father, is rather authoritarian. She rebels, much as I did, and I’ve browsed books on child behavior with words like defiant and oppositional in the title.

Number two is like the sun to her sister’s moon. She usually cheery, happy, and helpful. This morning I was meditating while she was in the kitchen eating breakfast. She was having a conversation with herself and imaginary friends, singing songs, making up stories. It was all so rapid-fire, and it make me think about the so-called monkey mind that I meditate to quiet.

That’s not to say that daughter number one isn’t beautiful and fun to be around. I just wonder if we broke her somehow. I read once about childhood stresses causing changes in the amygdala, affecting behavior throughout life. It causes individuals to be very responsive to stressors and respond negatively. I would also describe it as a lack of resilience.

So she’s a challenge, as all children are. My boss has two girls who are both in their teens, and he listens to my stories and responds with a “you have no idea what you’re in for”. Perhaps not, but all I can do now is be the best dad that I can be, give my girls my love and do everything I can to make sure they have the skills to be kind to others and successful in life.

Morning pages

Yesterday was Super Tuesday, so I stayed up too late last night and drank too much under the guise of watching the results come in, but of course I had to finish the six pack and stayed up even later watching High Maintenance and woke up slightly hungover. I’ve actually got a work project to do this afternoon after class, and just remembered I’m meeting with another professor to work on my final credit. Hopefully I’ll have time to talk about the things I wrote about yesterday regarding education.

I spent a good deal more on the class notes in Overleaf, pouring over various Wikipedia pages and shaking my head at some of the academic paper around finite differences. I’ve come to the conclusion that if I’m going to do anything with regard to numerical analysis, I’m going to have to get a grip on some of this higher order math, and started watching the lectures for MIT’s course on the subject. One of their grads did an excellent Finite Difference Calculator, and he mentions the text and professor before giving the breakdown on how he expands a bunch of Taylor series equations to come up with the answers. I figured I’d go straight to the source, and enjoyed the first lecture in it so far.

The course leans heavily on MatLab, which I checked out last week. Thankfully, the university has a site license, so I get to play around with that as well. I’m not sure how much of this I’m going to complete before graduation; I suppose it makes a master’s degree all the more likely.

I continue coding the matrix classes in C++. I had to give up on using my custom vector class and went back to just using a C-style double pointer array. There was a problem with trying to initialize this within the context of the matrix itself. The problem is that in order to declare an array of class vector, the class needs a default constructor. My constructor requires a size argument, and getting it to work properly would require either some sort of template argument function that I don’t understand, or a zero size default constructor which would then have to be followed by a resize operation. The later seems like it would be a mistake from a performance perspective, and I just don’t have time to muck with all this right now.

I’ve got unit tests working, and I’m currently in the process of refactoring this generic matrix class out of my Gaussian Elimination class. Unit testing is coming along well. I’ve got override stream operators for input and output, and things are going well.

Now if I could just figure out what to do after I graduate. Where to go, rather. I’m listening to a podcast with the CEO of Twilio, talking about how they built a platform. It’s really interesting and got me thinking about all the fun stuff I’ve done with them in the past. Their API is really amazing. But two points from that pod that has struck with me. The first is how he says the business world has evolved from “buy or build” to “build or die”. Businesses are becoming software companies. I love the fact that ING is using Agile methodology for their core business. Brilliant. The second point is around “ask your developers”, sort of like “ask your doctor”, but for business problems. The conversation has got me thinking about my day job. I’d love to be able to instill some of this there, but the culture just isn’t there. I’m not sure that it’s compatible with a franchise system.

I can see this goal in my head, it’s a feeling of where I’m going to be soon, and the realization that a lot of things are going to be left behind. The business I’m in, maybe even this area. Watching the primary results roll in from Colorado and Massachusetts last night made me think that I need to take the possibility of moving more seriously.