-
Finishing School
Woke up at 4:30 this morning (with a headache), so I might as well write today’s post while I wait for the server to reset on the ridiculous phone game I’ve been playing. Aside: I am becoming more and more convinced that my headaches are controlled by some sort of Markov process. I’m wondering if my beloved drug studies should be using some sort of time series analysis when analyzing the effectiveness of medications.
But. Back to the matter at hand. We’re working really hard to hire a lot of new people so that we can get back up to the staffing levels that we had six months ago. (We all got so fat from all the delicious snacks and meals at the farewell parties and lunches.) Yesterday at lunch I was talking to the person in charge of hiring software developers, and she expressed an opinion that the candidates who come out of these “code bootcamp” programs are rather inconsistent in quality. In particular, a lot of them can’t do simple tasks, like putting the data into an some sort of array-like data structure and then iterating over the elements and doing simple comparisons. And, to be fair, the most accomplished tier of boot camp completers probably get snapped up by very large companies before they have a chance to go on the job market and apply for jobs at small companies; we get a shot at the leftovers.
Greatly influenced by my academic heritage, I am wondering if we couldn’t use some more coding finishing schools. I know an awful lot of underemployed physicists and mathematicians and whatnot who have taken a small handful of undergraduate computer science courses and who have been writing code in MATLAB or Mathematica or some other proprietary langauge for years and years and years and years. But no way are they ready for prime time as software developers. There has got to be a way to take people who have been writing snippets of code (quite succesfully) for their own purposes for a very long time and get them trained up to work in production environments.
On the one hand, this would take more individualized attention than a one-size-fits-all bootcamp that assumes that everyone starts from nothing. Each student in finishing school would come to the program with a different background and a different set of strengths. On the other hand, a well-structured finishing school could leverage the students’ existing skills and have them work on well-curated teams. Here, management from the staff would be essential: Someone would need to tell Helen that she is on this team to help Pauline with a particular skill; Pauline would need to know what she should be helping Helen with.
To some extent I see a bit of this dynamic emerging organically in our local R-Ladies group during our “book club” meetings. One member didn’t understand some of the highly mathematical lingo used in one section of the book, and a mathematician helped her out. And her expertise was helpful in discussing a different section. I think that it could be a really powerful part of a “last-mile” program for building software development talent. I think it could also serve to model best practices in managing developers (which is a giant problem that I don’t hear anyone at all talking about these days). And while finishing-school might require more resources per participant, it might compare favorably with boot camp if you look at resources per successful participant.
-
Turning the Tide
-
Managed to sleep in until 5am yet again this morning. If this keeps up, when we do the terrible changing of the clocks in about a month, I will have acquired the sleep schedule of a reasonably normal person. (Bad news for you, blog reader, as I will no longer be sitting around awake at 3:30am looking for something quiet to do while the cat naps next to me on the couch.)
-
Forgot to take my medicine this morning. Know myself well enough that I keep a small pharmacy in my desk.
-
Got a Facebook message that knitting group is cancelled for tomorrow, which is actually good because the quilt shop called, and my quilts are done being long-arm quilted, and I’m hoping that I can make some progress towards finishing them before the weekend.
-
Helped tune some of the hiring instruments that we use for two different sets of upcoming interviews. I think that they both will give us even better information about the candidates as well as give the candidates a chance to showcase their skills. (Also helped interview someone for one of our other openings. Have I mentioned that we are hiring? I have? Because we are.)
-
I’m finally starting to feel enough in control of my time that I volunteered for two time-consuming things. So far only one of my offers of assistance has been accepted.
-
Secret message: Sorry to anyone hoping to see technical content here today. Today I acted like a grown-up all day and did responsible manager-type things. Tomorrow I’ll probably be writing up the final versions of some new guidelines. I might even make some check-lists. Unless the insomnia comes back, and then I’ll be up at 3:30 in the morning putting together notes for an upcoming lesson on sampling without replacement or maybe something I’m doing next week with regular expressions.
-
Secret message 2: Also sorry to anyone hoping to see the whimsical stories and assertions so absurd that you might wonder if they might actually be true. I’ve already told you that I love stories that start in media res, but I worry that maybe not everyone does. Also, the fantastic are hard to write when I am not up in the middle of the night.
-
-
Contest Season
For those of you who don’t work with high-achieving middle school and high school math students, you might have missed the fact that we are getting into the thick of contest season right now.
MATHCOUNTS has moved on to the Chapter round (I think that “Chapter” is a fancy word for “regional”). And tomorrow is the AMC10/12A. The students are freaking. the. heck. out.
You might not know the AMC10/12 contests. Back in my day, the contest was called the AHSME, and the only reasons that I took it were because we were offered bonus points for participating, and it was usually held at a time that conflicted with an unpleasant class. These days it is part of the blood sport known as competitive college admissions.
Tomorrow there might be ice storms and bad weather in various places in the country with both uptight students and weather. Top math students around the country and doing the reverse snow day ritual, begging and pleading whatever divine powers there might be for there to not be a snow day. All students must take the AMC10/12A on the same day. If your school is closed and you can not find some sort of mythical math contest oasis that will take you in, you have missed your chance.
Sure, there is the AMC10/12B, which is on the 15th, but the best students take both the A and the B versions of the exam to maximize their chances of moving on to the next round of the contest and then the round after that and then the training camp and then the year of testing and, finally, eventually qualifying for the International Mathematical Olympiad.
The rumor mill says that you need to score very well on this series of contests in order to be admitted to a selective college.
One of the ways that I can horrify students today with how old I am is to tell them that I never even bothered to study for the AHSME. I just walked in and took it. And I qualified for the AIME (the next contest in the sequence). And get this—I didn’t bother to include any of my math contest scores on my college applications, and I was still able to attend an Ivy League college.
They view this story with the same level of disbelief as when I tell people (and this is true!) that when I was in high school, there was an indoor smoking room for students. (It is probably less shocking if I add that it was for seniors only, and they needed to be 18 and have their parents’ permission. Also that the school did away with it after my freshman year. After that, only teachers could still smoke indoors at school.)
-
Life as a Grown-up
Not too much interesting to say today. The road by the gym is closed weekday mornings because of construction, so of course I could not go to the gym. I spent part of my weekend and a decent part of this morning writing memos about compliance, and there is not much that I want to say about that (except that I am very happy that one of my friends is a compliance attorney who enjoys talking to me about compliance). And I had a humbling round of BugMastering, in which a non-zero number of the bug reports were relating to something that I wrote last year, so I passed those on (with my sincerest apologies) to the colleague who took over that project.
Now we’ll see if the weekend backup script took down my analysis server.
ps -A
shows thatmysqld
is running, which seems like a good sign.
-
FlightAware FlightXML and R
I’ve been slowly fixing the typos and making small revisions to one of my R tutorials that includes some aviation data. For this particular tutorial, I was only looking at three flights, so I just copy-pasted the tracklogs from the FlightAware site, and then I cleaned them up. But I’m starting to make plans for something more sophisticated, so I decided to spend part of yesterday afternoon learning more about the FlightXML API.
I’ve experimented with it before using some of their sample code in Python. I had to install a bunch of packages that I wasn’t entirely thrilled with in order to get it to work. And the example code they had available at the time seemed to assume that the person using it was much more experienced with Python than I am, and it was based on SOAP, which I’m not familiar with at all. It was OK, but I wasn’t happy working on it.
Since I’m much more comfortable with R, I decided to see if I could figure out how to get data from FlightXML from R. (They don’t have any sample code in R on their site.) I decided to use
httr
, and it seemed to go pretty well.Here’s my sample code (mostly so that I don’t lose it). If you want to run it yourself, you would need a FlightXML API key of your very own, which you can get for free. Queries from FlightXML2 cost money; the new FlightXML3 will have monthly pricing. So far all my experiments have racked up about 57 cents in charges, which makes this one of my cheaper hobbies.
# To get an API key, see: https://flightaware.com/commercial/flightxml/ username <- "jane_doe" my_API_key <- "abcdabcdabcdabcdabcdabcdabcdabcdabcdabcd" library(httr) library(jsonlite) # Example: Let's get the weather at San Diego International Airport (KSAN) # MetarEx docs: https://flightaware.com/commercial/flightxml/explorer/#op_MetarEx # Makes the request; returns what FlightAware calls a ArrayOfMetarStruct. request <- GET("http://flightxml.flightaware.com/json/FlightXML2/MetarEx?airport=KSAN&startTime=0&howMany=1&offset=0", authenticate(user=username, password=my_API_key, type = "basic")) stop_for_status(request) # Converts this response to a more useful data structure, mostly made of lists KSAN_weather <- content(request) # We can now index into this and ask some questions # How windy is it? KSAN_weather$MetarExResult$metar[[1]]$wind_friendly # What time was the request? as.POSIXct(KSAN_weather$MetarExResult$metar[[1]]$time, origin="1970-01-01") # We can flatten our data sturture into a dataframe with jsonlite::flatten flat_KSAN_weather <- flatten(as.data.frame(KSAN_weather)) # What are the clouds like? flat_KSAN_weather$MetarExResult.metar.cloud_friendly # How warm is it? flat_KSAN_weather$MetarExResult.metar.temp_air # How warm is it in 'Murica? 1.8 * flat_KSAN_weather$MetarExResult.metar.temp_air + 32
-
The Staff at Adobe Must Go to the Gym More than I Do
Ever since I signed in to my Adobe account on the free version of one of their products on my phone (or was it my iPad), they have been sending me email after email telling me that I should spend $10 a month to get Lightroom CC for my computer.
These emails mostly make me feel anxious.
-
My laptop is the cheapest laptop that Apple sold four years ago. The hard drive is approximately full (even though you are not supposed to keep SSDs full), and I have none of my photos on this computer. No way is Adobe Lightroom CC making its way onto this computer. Don’t care how much things are “in the cloud.” No room for anything on the ground.
-
My desktop has, I dunno, a terabyte of free space on its hard drive. Its spinning disk hard drive. Its nearly eight year old spinning disk hard drive. My desktop computer has outlived many outdoor cats. (Don’t worry, I do have four back-up drives because I am that type of neurotic.) But I’m not about to change my entire workflow for dealing with photos to rely on a computer from 2010.
-
If Adobe had told me that I could get Lightroom non-cloud for some moderate number of hundreds of dollars and then run it forever on my eight-year-old desktop machine, I would probably be more interested in the idea. But this whole $10 a month thing gives me the same type of anxiety that I get about the gym. My style of photography is that I go to a place, just to take photos, and then I spend hours and hours in that place just to get a few good shots. It’s not like I have kids that do cute things around the house all the time. (Cats refuse to look at the camera.) There are times that I don’t touch any of my cameras for weeks and weeks and weeks at a time. To pay $10 a month when I am not taking any pictures? Not only would that be $10 that I’m not spending on the ridiculous phone game that I’ve been playing, but I would feel even worse about not taking more pictures.
-
-
The Cat Tasting Cat Food
I’ve found another opportunity to use Fisher’s Exact Test!
One of the cats (Gwen) is anorexic. She’s 14 years old and weighs roughly 8 pounds. She’s supposed to eat a half cup of cat food a day. Most days she eats between a quarter and a third of a cup. She has never been a food-motivated cat. We have never been able to convince her to eat wet cat food, sushi-grade raw tuna, people-tuna from a can, or anything else that our bulimic cat would devour.
The vet was not enthusiastic about switching to a more calorically dense cat food. There should be some sort of internal force in the cat convincing her to eat enough food so that she doesn’t lose weight. Older cats are supposed to get fat, not skinny.
The vet ran an extensive panel of tests. The results came back great—much better than you would expect from a 14-year-old cat. Perhaps she has been browsing Reddit on my iPad when I am at work and reading about longevity through calorie restriction? (I should check my browser history.) Is there some sort of cat god she is trying to please though Anorexia mirabilis? No idea.
We have bought a different flavor of the same cat food that she has been eating. (The vet really doesn’t want us to change the food entirely.) The food dish has two compartments: the left and the right. The cat seems to eat preferentially from the right compartment of the food dish.
So now my plan is to put the chicken flavor in one side of the dish and the duck flavor in the other side and track how much is eaten. I would rotate the dish 180 degrees each day in order to eliminate the cat’s natural dish-side bias. I can figure out which flavor of food she likes better! I will report back if I can determine which flavor of cat food she prefers.
subscribe via RSS