-
In Which Our Protagonist Tries Her Hand at Adulting
All the kids are doing it these days, or so I’ve been told.
-
My bank changed its entire log-in system for online banking. It maybe changed everything about online banking. Before it had the stupidest system, which I hated very much, in which there was one login (tuple of username, password, three security questions, and answers to those security questions) for each account. If you had a joint account with someone, you needed to share a username and password. Every time the system forced you to update your security questions, you had to tell your joint account partner about the new questions and the new answers. Now there is one login per person, which grants access to all of the person’s accounts. But before this changeover in login systems happened, I paid all of the bills that I knew about because I don’t really trust my bank to do things smoothly. I also found my paper checkbook in case something really catastrophic happens.
-
In early January my apartment building is going to be termite-tented. I called the cat-boarding place to make an appointment for Gwen (the easy-going cat) to stay with them during the tenting. (Adulting fail: Still no hotel plans for the people and Sophie, the uptight cat who scratches her ears to pieces when she is confined in an unfamiliar place, such as a cat-boarding facility.)
-
Back in July (or was it June), I had the car in at the dealership for… something. The service advisor insisted that I needed new tires, and he was probably right. This weekend I got new tires. At the tire shop within walking distance of Discount Fabrics. (Did not buy any fabric, but they have neoprene for $20/yard, so I am thinking of maybe buying some to make my own lens cases for my new camera.)
-
Not a single character of that work-related email that I wrote in my head made its way onto any of my electronic devices. Even though the situation was totally unfair and the outcome was not my fault and the forces of the universe were conspiring against me, I let it go. Did not say anything to anyone.
-
-
I've Actually Been Doing Much Better Lately
If I had run this code before emailing my neurologist, maybe I wouldn’t be giving one of those daily medications that I stopped taking another try. I’m actually doing quite well lately.
# Headache calendar # Since I didn't expect to share it with anyone, a lot of things are hard-coded # Maybe one day I'll turn this into a Shiny app. # Symptom data from the Symple phone app. # Medication data from a text file I keep in Dropbox. library(ggplot2) theme_set(theme_bw()) # Reads in the spreadsheet exported from the Symple phone app symple.data <- read.csv(file="~/Documents/medical/headache-data/export-2017-12-12.csv", colClasses=c("factor", "NULL", "integer", "NULL", "NULL", "NULL")) # Trying to rule out MOH # I have a text file showing every time I took medicine # First entry is a date medicine <- read.csv(file="~/Documents/medical/headache-data/medicine.txt", colClasses=c("factor", "NULL", "NULL"), sep="\t", header=FALSE) # Symple takes four readings a day. I want the maximum value of headache. per.date <- aggregate(Headache ~ Date, data=symple.data, FUN="max") # Their scale is 0-4, but I imagine it as the 0-8 pain scale. per.date$Headache <- 2*per.date$Headache # Days that I took medicine per.date$Medicine <- per.date$Date %in% medicine$V1 # Day of week, for making the columns calendar per.date$DOW <- as.POSIXlt(as.character(per.date$Date))$wday per.date$weekday <- factor(per.date$DOW, levels=seq(0,6), labels=c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"), ordered=TRUE) # Week of year, for making the rows of the calendar per.date$WOY <- as.numeric(format(as.POSIXlt(as.character(per.date$Date)),"%W")) per.date[per.date$DOW == 0, "WOY"] <- per.date[per.date$DOW == 0, "WOY"] + 1 per.date$extWOY <- per.date$WOY + 2*as.POSIXlt(as.character(per.date$Date))$mon # Leftover from when I was in the hospital per.date$Hospital <- per.date$Date %in% c("2017-08-05", "2017-08-06", "2017-08-07") # Hard-coded subset for today's visualization november.december <- droplevels(per.date[as.POSIXct(as.character(per.date$Date)) > "2017-10-31",]) # So many things are hard-coded # A calendar is an array of tiles. myplot2 <- ggplot(data=november.december) + geom_tile(aes(x=weekday, y= extWOY, fill=as.factor(Headache), size=as.factor(Hospital)), color="black") + geom_label(data= november.december[november.december$Medicine==TRUE,], aes(x=weekday, y=extWOY), label="M") + geom_text(data= november.december[november.december$Medicine==FALSE,], aes(x=weekday, y= extWOY, label=format(as.POSIXlt(as.character(Date)), "%e"))) + scale_fill_manual(values=c("#FAFAFA", "#BBBBBB", "#888888", "#555555")) + scale_size_manual(values=c(0.25, 1.5), guide="none") + scale_x_discrete(position = "top") + labs(fill="Headache\nintensity", caption="M: Took medicine (Maxalt)\n", title="Headaches since November 1, 2017", subtitle=paste("Created on", format(Sys.time(), "%B %e, %Y"))) + theme(plot.title = element_text(face="bold", size=14), axis.text.x=element_text(color = "black"), axis.text.y=element_blank(), axis.ticks = element_blank(), panel.grid.minor=element_blank(), panel.grid.major=element_blank(), axis.title=element_blank(), panel.border = element_blank()) + scale_y_reverse() + annotate("text", x=c(1), y=c(64), label=c("November"), color="black", fontface="bold", size=5) + annotate("text", x=c(1), y=c(70), label=c("December"), color="black", fontface="bold", size=5) ggsave(filename="~/Desktop/headache5.pdf", plot=myplot2, width=8, height=6, units="in")
-
Code Commenting Styles I Have Used
-
Academic style. I know how to write comments the right way. They explain the key “why” behind the code. My future self welcomes these gifts from the past.
-
Stack Exchange style. The comment is merely the link to the page where I found the original code that I copied/modified.
-
Hashtag style. #lol #winning
-
-
Holiday Gifts for Migraineurs
-
Black Electrical Tape for covering up useless LEDs. If you use masking tape, the light still shines through.
-
Static Cling Window Tinting for dimming the brightness of digital clocks (does anyone still use clocks) and necessary LEDs. You can order a swatch from Decorative Film.
-
Flicker-free Computer Monitor. It is entirely possible that caring about PWM makes you a crazy person on par with worrying about other fringe techno-medical concerns, but the flicker-free (PWM-free) monitors tend to be the nicer ones, and anyone can appreciate a nice monitor. And yet there is an article on PubMed that says, “An abnormal alpha band synchronization under visual stimuli was confirmed in migraine; this phenomenon was reversed by levetiracetam preventive treatment.”
-
Shade 5 Welding Goggles. These are, like, the world’s darkest sunglasses.
-
-
Why Does the Google Internship Program Make No Sense?
Google intern begging season is officially upon us!
I know approximately nothing about the way that Google hires interns, except what I can glean from the emails that I receive from various young people who I know (sometimes tangentially) who are hoping to work at Google over the summer.
- Potential-interns apply to Google.
- Potential-interns are evaluated by Google, and some of them are accepted.
- The accepted interns email everyone they know who might know someone at Google in order to find a placement in a Google office.
This happens every year. These emails from students include phrasing like
I’ve signed on for an internship at Google this summer…. [Are you] friends with Googlers looking for interns?
Matching interns with offices is a bipartite graph problem. Why does Google not have any sort of reasonable process for doing this? Compared to the other things that Google has successfully accomplished, this is not hard.
And it makes me doubt Google’s claims about diversifying its workforce. Under the current system, the interns who end up with the best placements are the ones who already have strong connections to people at Google. The interns who ended up where they are by a less typical path are at a disadvantage.
I mean, even Amazon has managed to figure out how to run its internship program without having a bunch of students email me. And if ever there were a large tech company that I thought would try to crowdsource a key aspect of its business, that would be Amazon.
-
Threat Assessment (Unofficial)
Fire, San Diego County (90/100)
Litter Box (60/100)
Laundry (45/100)
mysql (5/100)
(Apologies to those using feedreaders who might not be seeing my simplistic HTML rectangles.)
-
Zig Zag Knitting
I admit that it is entirely my fault for just casting on a bunch of stitches and then starting to knit without making any swatches or measuring anything. If you really do learn from your mistakes, I am on my way to becoming a freakin’ expert on everything.
Because it does get so cold in San Diego in the winter and because I already have a lot of hand-knitted scarves, I decided to knit a scarf. I drew a picture of what I wanted it to look like.
I decided to start by knitting the black zig-zag that runs along the bottom part of the image, then fill in the colored parts between the peaks of the zig-zag, and then finally work the top portion of the scarf.
Sadly, I had come to discover that my zig-zags are too deep. Part of it is because I did not make a gauge swatch and just guessed how many stitches I was going to use. Part of it is because the angle of the peaks is too narrow.
It is not easy to find any in-depths analysis of chevron knitting on the internet. The most that you get is that you need paired decreases at the bottom points and paired increases at the top points. No one tells you anything about how to adjust the angle.
So now I’m going to need to make swatches, rip out all the progress that I’ve made and then try again. There are some things that I can adjust when making the zig-zags so that the angle is shallower.
- I can put one decrease on the right side and its paired decrease on the wrong side.
- I can spread the decreases out even further. Every other row. Every third row.
- I can still use paired decreases, but put them further away from the point. I worry that this is going to make more of a curve than a point.
We’ll see what happens. Good thing I have plenty of yarn.
subscribe via RSS