-
We Went to the Movies
I took off the afternoon today because I am maxed out on PTO, so I had to take some time off because I otherwise I was going to lose it. So we went to see Ready Player One.
Since the movie is both new and ridiculous, it is showing in the special auditoriums at the movie theater. But because I have neurological issues that are connected to my visual system, and I get motion sick, and my eyes are too close together (so the standard assumptions about 3D glasses don’t work for me), we opted for the least absurd showing that we could find. This was in the “Dolby” theater, which had assigned reclining seats (like I imagine a true first class cabin would be, and not the sorry J-dressed-as-F that I sometimes got upgraded to on domestic flights) and was really loud.
OMG, it was so loud. The demo reel at the beginning that showed off the benefits of the Dolby theater was really, really loud. It also was unapologetically catering to a demographic that I do not belong to. LOOK HOW COOL THE CGI FIRE IS! LISTEN TO THE LOUD EXPLOSIONS THAT RATTLE YOUR CHAIR. CGI fire is not the only thing that has fine details. Explosions are not the only things that are loud. My mother loves marching bands, and they can be pretty loud. But, then again, she rarely goes to first run movies.
(Also, full disclosure, I do understand the appeal. Many years ago when I got my first surround-sound system, the first thing I did was go to the video store and rent something with a lot of helicopters in it.)
The movie was really different than the book. Both had a post-apocalyptic future. Both had a quest carried out in a virtual reality world. Both had an evil corporation as the enemy. Many of the characters had the same names. But they diverged substantially on a large number of key plot points.
In some sense, the movie had to be really different from the book. Because the book itself would have made a terrible, terrible, terrible movie without significant changes. I really liked the book (Am I allowed to say that? I think that I’m not allowed to say that, but I am going to say that anyway.). The entire book was told from Wade’s perspective, and his online friends were – understandably – cagey about sharing anything at all about their lives with him. So no matter what you suspect about the author’s ability to write fleshed-out characters, key features of the plot prevented the only point-of-view character from making real connections with the other characters. Could the author have carried out a GoT-style structure where the story was told from various characters’ points of view? I am skeptical that he could have done it successfully, but he also had the good sense not to try.
By changing the structure around, stremlining the quests, and causing the team to get together earlier in the story, the movie definitely exceeded my expectations. It was a good, straightforward story.
But the movie was also not obsessively immersed in the world of my childhood! The characters made their way through their quest based on a study of some key events in the life of James Halliday. Sure, there might have been a glimpse of the Garbage Pail Kids, but the only people who would pick up on that already knew about the Garbage Pail Kids. None of the characters in the movie expressed having any interest in developing an encyclopedic knowledge of which cards were from which series!
I am only a year-and-a-half younger than the author, so the features of his childhood align pretty well mine. He probably had more money than I did growing up because I could not afford to spend a lot of quarters in the arcade. My parents had a rule against watching R-rated movies, so I was not allowed to watch Blade Runner. But these were all the things that my friends and classmates were talking about all the time! I hoped that my parents would not notice how late it was so that I could stay up and sneak an episode of Max Headroom! OK, I never had the patience to get interested in Zork. But I did spend enough of the summer of 1981 playing games on an Apple ][+ hooked up to an old TV in our basement (our house did not have air conditioning, so I spent most of my summers playing with the various computers that took up residency in our basement because it was several degrees cooler down there) that I wore out the button on Paddle 0. I was so proficient at Galaxian that I was the undisputed champion of my elementary school. I understand what it is like to devote months of full-time effort to mastering the technical skills of a video game. But was there room for this level of single-minded obsessiveness in a two-hour movie? No. I still would have appreciated more nods to the key artifacts of my formative years. One of the scenes near the end of the movie? I am certain that I caught a glimpse of a Macintosh IIsi, the first computer that I did not need to share with anyone else. I loved that machine, and I would recognize its curved front anywhere. But, that was definitely from the ’90s, not the ’80s.
What the book had but the movie lacked is the redemption arc that so many of my students believe in: That through hours and hours of focused study, you can achieve your dreams. In the book Ready Player One, it was the relentless study of 1980s pop culture that was the ticket to the good life. For my students, it is a search for the right theorems, the right study strategy. Will it be Wilson’s Theorem, the Chicken McNugget Theorem, the Hockey Stick Identity, Simon’s Favorite Factoring Trick, trig Ceva or something else that unlocks the needed score on the math contest that they believe will propel them to that elusive tier of success? And the tension that the book shows between the lone-wolf protagonists and the corporate sell-outs of the “sixers” reminds me of the the fights that the students pick with each other on our message boards: Are you competing in math contests because of your true love of the subject or because someone has told you that being a USAMO winner is important for being admitted to Harvard and attending Harvard is important because that is an assumption that can not be questioned.
-
Jagged Data
No good reason for a lack of post yesterday. Poor time management, perhaps? A shifting sleep schedule?
Lots of the things that I read about R exhort the value of modularizing your code and building functions. Not surprising. This is taught early on in most computer science courses. Even my elementary school-aged self had an intuitive understanding of the
GOSUB
-RETURN
paradigm and the even greater flexibility ofTO BOX :SIDE
.(Aside: Real ’80s nerds programmed in BASIC and LOGO. The fact that neither of these is mentioned in that overly popular book that has been made into the movie that I plan to see tomorrow makes me think that the author is just a fake-‘80s-nerd.)
(Another aside: Despite having used functions in programming for at least four years beforehand, when functions were formally defined in my ninth grade math class, they were totally confusing. Perhaps because instead of some sort of “function machine” metaphor or a recognition that most of the students taking honors math were avid programmers, my math class started by defining relations as subsets of the cartesian product of two arbitrary sets and then defining functions as a special type of relation. This way of thinking about things must be left over from the New Math, right?)
In any event, I really, really, really want to turn my repeated code into functions. Every time I copy-paste, I have a sense of foreboding dread, as I wait for a shoe to drop. This is double-extra-especially the case every time I copy-paste something from one file into another file because I am going to forget which is the original, and I am never going to remember all the places that need to be changed when something needs changing (and I know that this will happen).
Let me summarize my concerns in just a few words: “Call by value” and “rectangular data”.
Functions in R call by value. Which is fine. This is exactly what I would hope the default behavior would be because I have a liberal arts education that taught me that there are few sins worse than using global variables. As global variables live neither in the heap nor in the stack, they are unable to ascend to heaven. I get that. I also have unresolved childhood trauma from my mother’s fury every time she went to use her scissors, and they were not where she left them because one of the other people in the house had moved them and not put them back. (Here the scissors are a acting as a symbol representing global data. I learned about the difference between symbols and allegory in ninth grade English class.)
But also, it is a major pain to deal with data that is not relatively uniform and regular. The platonic data structure is the spreadsheet (but with a fancier name). Every time I create a function, the easiest thing to do is to have it return a scalar, an array, or a spreadsheet.
And since we are in the world of call by value, everything that my function does must be communicated back to the caller by the return value. And sometimes (and by “sometimes” I mean “often”) I want my function to do something more sophisticated than take a few things as inputs and then give me one thing as an output. Maybe I want my function to take all of the special things out of my array, put the special things in a new array, and then return some magical number. As a person of a certain age with a liberal arts education, I strongly believe that it is important for functions to return a scalar, ideally the number zero. Barring that, the function should return a pointer to something important.
Yes, I could package all of my objects into one horrific and complicated data structure. I could have my function build all my things, and then I could make a heterogeneous list of all of the things that I had created and have the function return this list. The caller could then unpack the list. Even better, the caller could then use vectorized functions to simultaneously act on all the elements of the substructures of the various disparate multi-dimesional ojbects in my list without relying on iterators or
for
loops, hallelujah!Almost all the documentation that pleads with me to create functions and tries to spread the good news of functions is suspiciously silent about what really is believed to be the right way to have my function work with a bunch of objects of wildly differing types. But my hunch is that packaging them into a list is what I am supposed to be doing. I’m pretty sure that when I put my function’s local variables into a list that they are not actually being copied, so I don’t need to worry about memory. (Also, I live in a future where we have seeminglessly infinite memory, so I don’t worry about memory like the way I did 25 years ago.)
Yet, because I am old and set in my ways, instead of putting in the time to become fluent with ways of working with lists of heterogeneous data, I am reconstructing my past and taking advantage of a way to create pointers in R and starting to take some of my fragile copy-paste code and build in some functions that are able to call by reference.
-
April Fools Day
When you get into the big yet ugly numbers, people view these reminders just a bit more awkwardly. I looked through the shoebox of things that I still have from high school and college, hoping that I still had a copy of the obituary to insert into today’s post. The Gazette’s searchable online archives offer imperfect free access to old content. And the obituary wouldn’t even be published until, I believe, April 3, 1992. At least I am certain that I did not know that Michelle was dead until April 3. At that point, I started watching my mailbox for a last letter that never came. Instead I will share a bit of a letter that she had sent me roughly a year and a half before she died. I think about this letter a lot. I think about it on days like today (the 26th anniversary of her death). But I also thought about it when I was prescribed a particular old-school medicine for my headaches. I’m pretty sure it’s the same drug that she’s talking about here, as the drugs that are common now were not prescribed to children in the late 1980s and early 1990s. She was 18 when she died.
-
Things Creepier than Facebook
So not only is the stock market broken because of wacky political situations, but parts of it are also broken because everyone is freaking out that the information that they were sharing on Facebook was being shared. And maybe everyone else is better at remembering their passwords for their financial institutions or not having their debit cards shut off for stupid reasons because my banks are way creepier than most of the social media companies out there.
Aside: Twitter, my preferred social network, is just guessing when it is trying to categorize me demographically. It has put me in both the “Affluent baby boomers” demographic as well as the “New moms” demographic. The youngest baby boomers are in their 50s, so I don’t expect many people are in the intersection of those two categories.
There is some sort of database out there which purports to attach names to addresses. When I was hit by a car in 2002, the insurance agent for the driver who hit me used that database to connect me to my parents house (where I have not lived since 1991). When I was taken to the hospital in an ambulance this summer, for some reason the ambulance company never got my correct address, and they sent the ambulance bills to my parents’ house – probably based on that same database.
Maybe you never have to call the bank like an idiot because you are bad at adulting and you can’t find any of your account information or there is some sort of weird fraud alert on your card, and you keep trying to buy things, and it keeps getting declined, or you are sitting in the boarding gate at an international airport and realizing that you should probably call the card issuer so that you can access some money when you are in Europe (Kann ich meine amerikanische Kreditkarte hier benutzen? Sie hat kein Chip. Nur Streifen.). In any event, when you call up knowing absolutely nothing about your account situation, they ask you really creepy questions. Like, the social networks that we are freaking out about are total amateur hour here. They ask me things like the color of a car that I owned 20 years ago. What street I lived on when particular people were my neighbors. Oddly specific questions. I would not be surprised if they asked me what library books I had checked out recently or what toppings I get on my poki bowls.
And after all that, the rep on the phone helpfully pointed out that my online user ID is printed on the card with a dash between the two parts, but you leave out the dash when you log on via their web page. Since I had written the password on the back of the card with a Sharpie marker, I could have used the self-service online system without trying to remember if the Honda Civic was ever registered in my name.
(Headache update: This morning I had a headache so bad that it woke me up at 3:30am. The medicine made it go away for several hours, but then it came back in the afternoon. Can I blame the time that I was hit by a car in 2002 for all these headaches? They start near the part of my head with the hole in my brain, and the hole in my brain is right near the scars on my scalp from where I shattered the windshield with my head.)
-
Monotony
There isn’t really much to report. If I wrote about the truth, this would be the most boringest blog ever.
We went out to dinner for our 20th anniversary. We at delicious food at a somewhat upscale restaurant, and it still cost roughly as much as the dinners that we had for our first two anniversaries.
We both travel so infrequently that we ended up both making plans to go out of town for overlapping days next month, so we’ll need to find someone to take care of the cats.
I called some financial institutions to explain that I am really bad at adulting and that I don’t know my account number or anything about how much money might be in the account, but could they please just send the 1099 to the address on file for any accounts that go with my social security number because I can’t find any of my tax forms, and I’m trying to pretend that I’m going to do my taxes before October this year. (Spoiler alert: It probably would have been easier to ignore that $17.61 of income and then offered to write the IRS a check for the cost of a cup of coffee.) I know that I’m not allowed to like a national sales tax, but our ridiculous system of financial scrapbooking doesn’t really suit me particularly well.
In the past two days I have had two pleasing victories at writing fairly trivial regular expressions, one of which allowed me to parse server logs well enough to determine that 5.7% of the organic search traffic to our site in a 100 minute interval all ended up on the same page. It’s likely the same page that you have been to if you happened upon our site by accident.
And I have a headache. I had one yesterday. And the day before yesterday (why is ereyesterday no longer a word?). And the one before that, and the one before that. It makes it very hard to think about mathematics, to construct an argument, or to invent something delightful.
-
Another Day with the Bugs
-
Homework bugs: Student notes that instead of solving the problem, you can find the radius of the circle by looking at the code for the diagram. I changed the size of the circle in the diagram from \(\frac{17}{4}\) to \(1.35 \pi\). The picture still looks the same. I’ve also added a hook to the parser that traps answers of \(1.35 \pi\) and gives the student a special message.
-
The games the children play: Have the bugs been fixed? Can the bugs be fixed? Are the bugs being traded for new bugs that the children haven’t yet found? It is unclear. It is also none of my business and not my problem, so I am trying to look away.
-
Did I add new bugs to RatMail by checking for noteworthy activity on our site by another student who ended up on my radar? We shall see on Monday.
-
Different types of bugs: There are fruitflies in my office.
-
-
The FBI Has Not Visited This Facility Today
-
The 2017 IMO shortlist has not been released.
-
That country most assuredly does not use the IMO shortlist from the previous year for its Team Selection Test (TST) for the subsequent year.
-
The problem was on that country’s TST.
-
That other country also absolutely and certainly does not use the IMO shortlist from the previous year for its TST for the subsequent year. Where did you even get that idea?
-
The remarkably similar problem was on that other country’s TST.
-
The posts containing these problems have been deleted.
-
We do not know anything about any of the problems on the 2017 IMO shortlist.
-
subscribe via RSS