My dad told me that I should always seek to be the last person in the lab at night, to be working and burning the midnight oil. Unfortunately for me, I’m working with grad students here, who seem to need absolutely no sleep, not even coffee, because the projects are much more important and deserving of their attention. This results in…
But hey, I don’t blame them. Once you get in the zone, whether for programming or for physics calculations, it’s hard to pull yourself away. And once your sleeping pattern starts to get late, it is quite hard to pull it back! These days, I’m forcing myself to sleep early, at around 11pm. It’s a lot easier to fall asleep when there’s no wifi connection in your room! That being said, I’m also waking up much earlier – getting up around 6:30ish for a morning run in this muggy weather. Gotta get fit for this FOOT trip – 6 days in the wilderness won’t be easy.
Even though my dorm is rather peaceful, there’s nowhere better to do work than in the student office that I am in these days. This place is usually more quiet than a Swiss patent office, AND there is just Absolutely Terrible connections to Facebook and Gmail. Along with the fact that there is so much to be done, the opportunity and the motivation to procrastinate seems to almost have disappeared, albeit temporarily.
Yesterday was a furious coding session as I attempted to 1) relearn Python, 2) learn linear algebra, 3) learn image processing tricks, and 4) create a script for the lab to use. It turns out that even though I have extremely limited background knowledge, I’m still capable of quickly learning the main challenges and solutions to physics problems here, and can ask good questions while brainstorming solutions. If nothing else, I can also type rather quickly :) The coding session reminded me of something almost exactly a year ago, at the Summer Science Program where we also had to write an Orbital Determination program for our asteroid, 214088 (2004 JN13). Along with Joan and Hannah, we worked on that program for hours, perfecting each individual part until the whole thing ran smoothly (or at least somewhat smoothly… with quite a couple lingering bugs…) Now, I’m doing a similarly herculean task, but without the help and camaraderie of very good friends. It’s a little lonely, but I still get to talk to professors and graduate students during meal times, and the problems are definitely extremely interesting!
During the afternoon, I was typing furiously at my computer, trying to solve a bug with NumPy’s MaskedArray class, when Zhao Laoshi passed by my cubicle. He remarked that, perhaps in the essay he sent me, I didn’t fully understand Fast Fourier Transforms, so Control Theory may be a bit challenging for me. I sheepishly looked at him and admitted that I had not been working on the Control Theory aspect yesterday; instead, I was working on the project that Yaxiong had assigned me. But I was almost done with the Image Processing program and can read up on it this afternoon, maybe tomorrow! Zhao Laoshi was a bit confused, he said that he didn’t assign that project to me because he was worried it would take too long for me to complete. How are you close to being done with it already?
Just as I was feeling a bit proud at being a fast learner and diligent student, he asked me to explain the process of the algorithm that I was implementing. Having gone through it several times with Yaxiong and Fan Laoshi, I was fairly confident in my explanation, and had the sample images and comments in my code to prove it. But as I explained, the eyebrows on Zhao Laoshi’s face continued to rise up and up. “I’m just not sure if your algorithm works!” he exclaimed, and my heart sank. A solid 18 hours of coding, for nought? Was this simply a negative result?
Later on, as Yaxiong helped explain some of the complex linear algebra theory behind the image processing and as we discussed, it is still possible that the code works. We just need to test it and see if, experimentally, it really is good at cleaning noise. But even before then, I had decided on one thing. Even if all of this programming was ultimately useless, that would be fine too! I had gained so much from going through the process of learning Python (again) and discovering how graduate students approach complex problems. I broke down this initially ridiculous task (Yaxiong explained it to me as decomposing a vector into it’s basis states within n-dimensions, with each column having a length of 512×512, and then recombining the image) into small, doable steps and found methods that could really help me to learn.
Today, I’ll be working on fixing the final bugs in this code, and perhaps moving on to something else. Zhao Laoshi said that if everything goes fine, perhaps I could speak to the other 5 grad students about this image processing method along with Yaxiong – that would truly be very exciting. But there’s a lot more to do before then, so let’s get cracking!