COVID diaries: Day 15

Week three of self-quarantine. The Governor just issued a shelter-in-place order, so I think we’re going to have to restrict our kids from playing with their friends now. It’s going to be tough for them, (and me), but if we haven’t been exposed to the virus already then I’d like to keep it that way. It’s hard to tell; everyone in the house has been sick of some kind or another for over the past month. Most of us have had a cough for several days; I think it may be pollen allergies since everything has been covered with a blanket of thick yellow pollen for the past week.

The oldest one spent much of this morning doing piano lessons while her sister did Khans Academy Kids. I let them watch a couple of Disney shows between “school” work and play. I took the little one for a bike ride while her sister did her Zoom conference with the class. She’ll have another one this evening, and is too read Harry Potter for the class. They’re outside playing right now, it’s seventy degrees and sunny outside right now.

None of the cilantro or tomato seeds we planted last week have sprouted. I’m beginning to think my seeds are bunk. We may have to start again using the old damp towel in a plastic bag method. We’ll give it another day or two first. I have a couple of garlic cloves that have sprouted shoots that I want to stick out in a small planter. I’m not sure if it’ll make more cloves, but the red onion I put out months ago has gotten bigger and has some large green scallions growing out of it that I need to use.

My wife is still trying to secure telework capabilities from her work, but hopefully we’ll be able to finish completing those requirements tonight. Their forcing her to submit all her applications as one PDF, but don’t have the programs on the work computers to be able to compile them into one document. Just when you think Kafka was being melodramatic.

As far as school goes, I just turned in the midterm that I’ve been working on, and will be turning my attention to our group Django project next. Our professor seems to have checked out completely, besides the test, there’s been no communication from him for over a week. I know he was ready to retire but this may have been the straw that broke the camels back. I’m sure he’s considering retiring if on-premise classes don’t resume in the fall. I’m pretty sure they won’t for him — he’s too high risk.

And let me just rant for a moment about the idiocy of using Blackboard for computer science courses. It’s asinine. The BB text editor used for submission is one of the worst things I have ever been forced to use. Markdown makes much more sense. Pasting preformatted code in the BBE is useless, the HTML code that it generates is enough to give any web designer a heart attack. Even the LaTex support makes no sense. It doesn’t actually work for math or formulas wrapped in dollar signs, you have to do everything, including sub and superscripting, via a toolbar. It’s extremely inane.

That said, I’m loving Overleaf, the online LaTex editor. It’s a very good compiler, and I’ve been having a lot of success with it over the past few weeks. I wish that their Git implementation worked anonymously for use with Gitlab pipelines, but that’s my only gripe with them for the most part. It looks like they’ve open sourced their implementation, so I’m going to see if I can get the university to allow me to set one up for use with my individual project. I’d like to see some sort of system that allows LaTex within a GitLab repo, so that students can fork assignment repos and submit their code as pull requests for grading through some sort of pipeline testing.

Not much else to say right now. It’s late in the afternoon, and I’ve got to launch the website for the local party and send out a MailChimp blast. Once that’s out I’ll start working on dinner and recharging for another hour or two on school work tonight.

Grocery shopping adventures

It’s Saturday morning, but weekends have taken on a decidedly different feel to them now. “We don’t have to worry about what we’re doing tomorrow,” my wife said to me yesterday while we were talking in bed. No, we won’t be going out and about today, besides maybe a walk around the neighborhood, but with my wife home to help handle the kids, this might be the most productive I’ve been all week.

The house has slipped into a bit of a mess as I’ve struggled to keep up with the un-cleaning abilities of my two children. We’ve had a pile of crafts on the dining room table for almost two weeks now that needs some attention. I’m hoping to rearrange some things in the kitchen, and the garage desparately needs a good cleaning out. Somehow my wife managed to get the kids to believe that washing the cars was some kind of treat, so we may do that as well.

We’ll have to do some grocery shopping, or online ordering this weekend. I failed to account for the amount of food that these kids eat, and since my wife is no longer eating out at work, I’ve got to step up the amount that we buy by some amount. I’ll have to focus on making larger amounts when I cook, because cooking from scratch during the week every day is wearing me out. I just wish my kids weren’t so damn picky. I also need a way to buy certain items in bulk without having to go through Amazon. I buy these small half pound containers of nuts and trailmix, but I go through them so fast, I need to find some three pound bags of the stuff that I like, and more importantly, I need to find something that the girls like so I don’t have to keep feeding them crackers and other high-carb garbage all the time. And my oldest is going through peanut butter like nobody’s business.

The girls have made me promise them a trampoline. They’ve been asking for years, literally, but we’ve pushed back on it with various excuses, mainly that our yard already has a large playhouse, plus two trees, so we don’t really have room for a ten or fifteen foot trampoline in it. But now I’ve relented, and have been forced to agree that we will purchase one in five weeks, when the refund from day care comes through. Hopefully it won’t attract every kid in the surrounding neighborhood.

As far as the pandemic goes, it has finally hit the city. I read in the paper that a local police officer has tested positive. This individual was the booking and intake officer for the local jail, of all people, so I have a feeling things are about to turn into Rikers Island over there.

We, meaning my daughters and I, seemed to have developed a bit of a dry cough. It’s not too bad, and we don’t have any other symptoms right now, but it’s got me a bit worried. The girls have been playing very closely with the same small groups of friends for the last week, and I haven’t been around anyone except during my last grocery store run, which was a bit of a disaster.


My car was a bit slow to start when I left the house, it seemed like it turned over slowly a few times. I attributed it to the car having sit in the driveway for a full week, but it made it to the store with no problem. I got my groceries from a young associate, and tried to maintain social distance with the loading, but she got a bit close for my liking. We had some small talk, and I went back into the car and turned the key. Clickclicckclickclickclick. Nothing. Again, clickclickclickclickclick. She was dead. Mild panic set in as I tried to figure my best options, I texted my wife to let her know that I was having problems, that I was going to see if I could get a jump and might need her to come get me.

A car with a young couple pulled up in the spot next to me, but they walked into the store before I was ready to start asking. I had been watching the parking lot for a few minutes while I waited for my groceries. The store was busy, it was after 5PM on a Wednesday and people were going about their business. The only sign that there was a pandemic going on were a few people I saw going into the store wearing facemasks. One woman, probably in her fifties, came out carrying only a twelve pack of soda. I was dumbfounded that someone could be so seemingly careless.

I got out of the car and asked the first person to walk near, a white man, thirtyish, if he had cables. He did, but said he couldn’t give me a jump. He was glad to talk, and told me he had fried his Jeep’s electrical giving too many people jumps in the past, and launched into an explanation about feedback or some kind of surge caused by the vehicle being jumped. I asked if he could at least let me borrow the cables while he was shopping and I’d leave them at his Jeep. We walked back to the car, the dude still talking non-stop about whether he actually had them or not. We got to his Jeep, and he excitedly showed me a a twenty year old Apple II that he had found lying on the curb. It was surely worth thousands, he told me, if he could get it to work. Certainly, I agreed with him.

He didn’t have the cables, so we walked back to my car, I thanked him, and he went in. I cursed my luck. I leafed through the car’s user manual to make sure I knew how to jump it. I looked up possible alternative solutions on my phone and popped the trunk, checking the terminal cables. No fix. I texted my wife, “You’re my only hope, Obi Wan.”

I scanned the parking lot, looking for people or cars I thought might be likely to have cables. A jacked up pickup truck with FUCK GUN CONTROL window decal and a LVURSLF vanity plate? Yep, I though. A large, clean silver Dodge Ram pulled up and looked promising, so texted my wife to wait a minute and got out again.

The owner, an older black man, pulled a small device out of a bag. “That’ll jump it?” I asked, amazed. “It jumped that truck,” he replied, nodding back at his vehicle. After a couple of failed attempts, he allowed that the device may have been sitting in his car too long and might not have enough juice. I thanked him for his time. And got back in my car, squirting on some hand sanitizer.

By this time the couple parked next to me were walking back to their car, I asked them if they could give me a jump. Yes they said. The woman pulled some cables from her trunk and I noticed she was late in her second trimester of pregnancy. I felt vaugely guilty as we broke social distancing walking around her car. Our cars were parked a bit to far apart than ideal, and as the man and I struggled to untangle the cables, a woman approached carrying a portable jump starter. “Right on,” I told her.

The woman appeared underdressed for the weather, which was a bit brisk for me in my jeans and sweater. She looked a bit butch with her short haircut and was wearing basketball shorts and jersey. She got the jumper hooked up right way, and after a failed attempt and a quick reattachment, the engine turned over and started up. I thanked everyone profusely and got ready to leave. My wife pulled up right after, with both kids in the back seat. I told her we were good to go and followed her back to the house.


So, despite my best efforts to separate myself from everyone for the past couple weeks, a small little automotive setback at the grocery store expanded the number of people that I came in contact with. My wife and I realize how lucky we are, that millions of people have lost their job these last few days, and our income has not only remained the same, but our expenses have gone down. This world is crazy.

COVID Summer Camp: Day 12

It’s Friday, and in the 70s today after a couple days of rain and cold weather. The girls are out back playing with some friends. I just finished cooking some breaded chicken for dinner and have a good forty minutes before my wife comes home. The US officially has the most coronavirus cases, but we have yet to see the brunt of it here. The medical center where my wife works officially has it’s first cases; the first in the city.

I called day care today, planning on officially withdrawing the kids, but they’ve no longer requiring partial tuition payments too hold spaces open, so we’ve just requested a refund on a couple thousand dollars tuition that we deposited a few months ago as part of our credit card rewards hacking. That will take five weeks to come back, then will go in our savings until we determine what to do with it. Not having the $280 a week to pay means I’ll be able to start saving half of that. More on that after I finish Choose FI.

This first week home by myself has been a bit rough. I had trouble sleeping two nights ago and was dead on my feet by the time my wife came home. I’m trying to get as much done on at my desk as I can while keeping the girls off of the TV, but it’s a battle. I’m not having much luck keeping them to the schedule that my wife set up, but that’s mainly because the school teacher can’t seem to have their Zoom meetings at the same time for two days in a row. She’s trying to accommodate parents on different schedules, but it’s annoying.

I start the little one off with Khan’s Academy Kids, so she can learn her letters, then I try to get them outside for a bit before a snack around ten. If it’s raining I try to get them moving via GoNoodle, or there’s a Cosmic Yoga vids that she like’s to do. I may let her watch PBSKids if I’m having issues keeping her busy and I need to get something done.

Her sister, I’m pushing a bit. Trying to get her to do a quiz on Khan’s academy, or on this reading app that the school has suggested. Apparently my second grader is reading at a fifth grade level. I also try to get her to do morning pages, and am still pushing her to play piano even though she says she “hates” it. I think what she hates is me telling her what to do. I’m trying to balance between work and play. I let the two of them watch some Disney+ shows around one in the afternoon, then I let them do whatever they want till their mom comes home. Thankfully they’ve spent several hours outside.

The past few days we’ve been able to do some morning meditation. A short kids-oriented lesson on the Waking Up app seems to be okay with them. This morning we set on the deck on cushions with blankets and sleeping bags, listening to the birds chirping and tweeting at each other.

My wife is attempting to get telework granted, but the beaucracy has set impossible tasks in front of her, as usual. Now that the patients have been prohibited from coming to the medical center, she’s at less risk, and I’m wondering if she even wants to work from home and have to share home-school duties with me. We’ll see.

For school, I’m in the middle of an exam for my computational methods class. I’ve got five days and am about halfway through it. And I’m working on our Django app for my group project. I still have my independent project, which I haven’t worked on much at all.

Work is not much… work right now. I’ve got little to do, so I’m going to have to be proactive to keep myself busy. I’m starting to warm up to some of the other projects I had abandoned months ago, both internal ones and things I can do for my clients, more as exercises for my programming chops.

We’re almost ready to launch the new WordPress site for the local party. I’ve also been looking at a new theme for this site, as well as standing up a professional portfolio/CV site. Right now I’ve picked out a few from Envato Elements, but need to get a few things in order for my cornerstone client before I do that.

Tonight, I promised my oldest that I would let her pick out a video game on Steam. She’s been playing Roblox obsessively, and I was fine with her playing that unsupervised, but some of the games are pretty mindless and last night I found her playing some sort of FPS called Arsenal. I had mentioned that I might work on a game for it, but after looking at the developer kit for it decided that I didn’t have time for another complex project like that. So I’ll let her take a crack at it tonight, or see if there are any of the numerous programming games on there that she’ll like.

We’ve also started planting some seeds. I bought a subscription to SmartGardener, and loaded all my (five year old) seeds in the app. We’ve missed the window for almost everything but the cilantro, but I had the girls plant tomato plants yesterday just as an teaching experience. Something tells me that we’re going to need to start taking gardening much more seriously now.

Self Quarantine: Day 5

We’re all homeschoolers now

Efforts to remain completely isolate have failed. After talking to several of the parents on the street, we’ve decided to let our kids play. There’s five families, about ten kids in all. Most of us are staying home during this first week, but three of the parents work at one of the local hospitals. That’s not including my wife, who works at the hospital, but isn’t in the medical field, and hasn’t been in this week.

That could all change next week. The government agency that she works for is not managing this crisis well. Federal leadership has made some proclamations about non-essential personnel, social distancing, and large groups, but the local leadership’s willingness to follow this is questionable. And with whistleblower protections and union activisism at a nadir during these times, it seems likely that there’s any recourse for her to try to exercise her rights. Anyways, my wife doesn’t like me discussing her professional activities in this forum, so I’ll leave that alone.

Speaking of unions, it seems that the federal workers unions are focused on TSA employees, who are “dropping like flies” according to my wife. Her father has been overseas, working in the Middle East for the past few months, and has been trying to decide whether to come home. Yesterday, the State Department put out an advisory calling for all US citizens to come home or “be prepared to stay abroad indefinitely.” He’s not in the best of shape, but will probably risk coming home, since he’s been staying in a small apartment while he’s been working, and has a large home in the mountains that I’m sure he’d much rather be at.

My father is currently under self-quarantine. My stepsister’s daughter has had flu-like symptoms, so his work has told him to lockdown. He’s retiring in less than fifty days. “You picked a hell of a time to retire,” I told him the other day on the phone. I worried he wasn’t going to take things seriously but apparently he’s all stocked up on frozen food and beer.

I haven’t had any alcohol since last Wednesday. I had the usual sleep issues, and have been overcompensating with caffinee and chocolate. Managed to get a couple of two and a half mile runs in lately, but haven’t made time to do any weightlifting. We made a run to the grocery store two days ago to restock; I used the internet ordering to avoid going in the store. The clerk who brought my stuff out seemed in good spirits. The store was completely out of bread, so we bought flour.

Yesterday’s baking did not go as planned. I had the kids help prepare the ingredients, let them start the mixing while I explained how yeast works, then I turned out the dough on the table before they ran off to play. A couple of days ago, I asked my wife to cook a chicken I had brined, and she made a bit of a mess with the oven. I had put the bird on a rack pan to let it dry from the brine, and she decided to put a piece of aluminium foil on top of the rack to keep it clean. While the bird was in the oven, the drippings ran over the side of the pan and onto the bottom of the oven. I thought I we had burnt the bird when the house started filling up with smoke, but it actually came out good. I had forgotten about the mess when I went to bake the buns, which started the smoke back up. So now I’ve got a pan full of buns in the freezer.

And guess I’ve got an oven to clean today.

Side hustle day

So the search has officially begun. I spent some time on AngelList, looking for opportunities, and sent a few messages out some founders. All equity stakes, unfortunately, but hopefully I’ll start the conversation rolling.

Also reached out to the team behind a new AI startup. It seems that they’re running various AI projects behind the scenes and offering an API for devs to get the results. Seems like an interesting platform play, providing AI as a service. Reminds me of what Twilio did.

Following the advice of Peter McCormick in The 10% Entrepreneur, I’ve started writing a professional biography. I uploaded my draft to AngelList, and will do so on LinkedIn as well. I have to be careful how I put things, cause I don’t want any blow-back from my boss right now. I don’t think it’s likely, given that they can’t survive without me, but I can’t afford to take chances. Anyways, the point of the biography is to build a coherent picture that brings together where I’m at now, where I hope to be, and encompasses my professional, academic, open source, and political contributions. I think I did a good job.

Today I will focus on making progress on client projects, and following up on any opportunities. One of my clients hasn’t paid in months, so it’s time to have a tough talk with them about the future. I have another advisory project I haven’t spoken to recently, and another relationship that I’m hoping to make the cornerstone of new business.

After assessing that, I need to make a few cuts, finance wise. I’ve been carrying Basecamp, Harvest, and an Adobe Creative Cloud subscription for some time, not to mention my Namecheap reseller account and AWS instance running the IDEX node. Unless I can secure some immediate funding source, I’ll have to cut. I think Basecamp may be willing to offer services for people affected by Coronavirus, but I doubt Adobe would do the same.

On a personal node, I should probably do the same with my Waking Up subscription. Sam Harris is gracious enough to allow people to request free subscriptions, so I need to do that. Taxes are also due in a month, so I need to start working on that. I’ll defer that till this weekend. I manged to eek out a refund last year because of business expenses, but I’m not sure I’ll be able to get away with that this year. We’ll see.

That’s it, time to get busy!

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.

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.

Reimagining computer science at the university

I’ve really been enjoying this last semester at school. My life has been in a place where I can devote a lot of time to it, and since I’m only part-time, it allows me time to do some deep work and get into the flow. I’m still undecided about my plans for after graduation, but I’ve been thinking about opportunities in academia. An email last week promised a free masters program as part of a Teacher in Residency program, and I signed up for a seminar. My brain was filled with daydreams of teaching computer science courses. Turns out the program was for primary school educators, so I passed, but now, another type of opportunity has sprung up that has got me thinking.

One of the science departments sent out a request for a developer. They’re using MatLab, but they are lacking the programming skills to do some task and put out the call to hire someone to develop a GUI wrapper for them. I plan on responding later, although I’m pretty sure the pay won’t be anything to get excited about. However, it did get me thinking about the larger problem, of intra-department requests like this, and about a potential use case.

GitCoin was the first thing that immediately came to mind. GitCoin is a bounty system that allows funders to place Ethereum rewards on certain GitHub issues. Devs can claim an issue, send a pull request and get payment after the issue is closed. I did one for the TensorTrade project, and getting that reward was very exciting. I was getting paid to code!

Perhaps a similar system could be built on top of a university’s GitLab system. GitCoin has a number of repositories in their GitHub, but I’m not aware if the core site functionality is all there. Departments, having placed their source code in a repository, can create their own issues, fund them, where they’ll be placed in the bounty feed.

One of the primary benefits of GitCoin, of course, is that the payments are implemented via Ethereum. Given the UX difficulties of managing MetaMask or something similar, it may still be too early for widespread adoption of such a system, but it does open the door for some sort of university token, perhaps tied to course credits or something.

Thinking back a bit to the conversations around The Future Is Faster Than You Think, I’m reminded that one of the biggest opportunities in the next few years will be around the education system. Perhaps there’s opportunity around using GitLab as a replacement for Blackboard? For all it’s strengths, I’ve never heard anything good about it from Professors, and it’s editing system is complete garbage. My university’s computer science department currently maintains a set of class materials that exist outside of Blackboard, made up of HTML pages for each course that get cloned each semester and torn down as students rotate out. I can envision a system, where the course materials are made available via repo, cloned for each semester as GitLab pages, and students complete their course work by forking the course repo and submittting pull requests back to the central repo. Build pipelines could be used to test student code, and students would be encouraged to refine the course materials themselves, correcting typos or clarifying materials.

There is one potential downside, however. Classes that still rely on traditional testing, where the student is not given access to all information, may have some problems with this model. One of my programming courses depended on the student to submit code which would be graded by the professors unit tests, which were kept secret. I don’t have a solution to this problem exactly, but for classes where the information doesn’t need to be kept secret, this could be an awesome solution. There are already potential workarounds to this information-hiding problem, as well. Private repos, and class groups could be used to deal with these concerns. A group of projects could be used to represent various modules of a course, and forks of the master repos could be made available after quizzes or tests.

This could be a very exciting development in how computer science education operates. I have a meeting with a professor tomorrow for a special project that I’ll be helping with, and hope to introduce this idea and see if it has traction.

Academic excellence

One of the two classes that I’m currently taking, this last semester before graduation, is on “computer procedures”, but a more accurate term is “numerical analysis”. We’ve spent most of the term working on implementing matrices and performing various algorithms like Gaussian reduction and Jacobian iteration in C++. My professor, who is a few years away from retirement, spent most of his career writing C code for aero and thermodynamic implementations, doing finite difference approximations of differential linear equations.

One of the problems with the course is that there are no supplementary materials for the class. It’s all lecture. I spend a good deal of time in class asking qualifying questions, and trying to figure out what he’s doing — and why — from Wikipedia articles. He’s wondered aloud about the number of people that drop the course each semester, and I’ve told him that it probably has something to do with the lack of supporting materials for the class.

It is no doubt one of the hardest courses I’ve taken, as it builds on years of calculus, linear algebra, and several programming courses. Not for the faint of heart. The math for this particular section is hard enough, and the professor just skips over much of the background of where the equations that we’re being given. He goes straight to the provisioning of the stencils that we need to build the matrixes. This follows the model that he’s been used to, where a scientist will give him some boundary equation problems and just ask him to solve them.

For me though, I demand more of a total understanding as to what’s going on, and have been driven slightly insane trying to understand the relationship between these first and second order differentials and these matrices that we’re coming up with. Another problem that I’ve had is that his code demonstrations in class are very dirty; just one long procedural main() function that is hard to read and even harder to understand what’s going on.

To deal with this latter problem, I was able to get him to upload his code functions to a public directory, and I’ve been refactoring it, pulling out functions here and there to make it more concise. I also implemented unit tests to validate my work and make it easier to refactor. But I ran into a real big problem trying to make up work for a few days that I was out, related to LU decomposition of a matrix. Trying to find public sources to figure out exactly what form he wanted us to use turned into a bit of a nightmare.

My refactoring eventually ran up to the limits of my understanding and ability to use C++. Our professor, old pro that he is, demonstrated all of his algorithms using naked C-style double-pointer arrays, which is not for the faint of heart. I took a crack at making these naked arrays into class members, but then ran into initialization and memory errors. So, I looked elsewhere, for other libraries that could shed some light on what I was trying to do. Unfortunately, the ones that I found either relied on FORTRAN to do the dirty work, or used arcane template methods with keywords that I had never seen and did not understand.

So, I turned to the most authoritative source I could, and picked up a copy of Bjarne Stroustrup’s The C++ Programming Language, and started on page one of this nearly 1400-page tome by the creator of the language. I spent many sleepless hours pouring over this work last month, finally taking a break because of a deadline in another course.

We’ve spent the last few sessions in a review of sorts, preparing for a midterm that awaits us following Spring Break next week. I’ve been attempting to nail down our professor about what we should expect on the exam, and he’s been very forthcoming. Still, it’s one thing to nod my head at what he does in class and convince myself that I understand, but a recent example on partial differentials showed me that I was ill prepared.

Now I’m not sure why exactly I decided to pick up a copy of Donald Knuth’s Art of Computer Programming. Self-punishment, I supposed. Knuth’s volumes are widely considered one of the most important tomes in modern computer science, and also as one of the most difficult and demanding works in the field. I spent several hours over the last weekend reading, or more accurately, skimming through its first chapters, trying to get a handle on the basics.

During his introduction, he noted how his LaTeX typesetting language had enabled the work to advance. Having source code up where multiple contributors could add to it, tweaking the formulas and figures in a way that had not been possible when the work was first released. It must have lodged in my brain, cause I was woken up in the middle of the night by one of the kids, and as I lay there in the space between waking and sleeping. I remembered this article by someone who does their class notes in LaTex. When I woke up, it was clear what I had to do.

So I spent most of the day copying down my class notes into Overleaf, an online LaTeX editor, going back and forth with various Wikipedia pages, trying to translate my notes and various Wikipedia articles into LaTeX. I’m really looking forward to going over it with the Professor on Wednesday. I’m hoping to put the source code up on our University’s GitLab server and setup a pipeline to compile the .tex files into PDF.