Monthly Archives: November 2013

Fridie Spidie: Glass

Viciria praemandibularis spiderlings, NTUsafti, Singapore

From the photo’s description: “This picture was taken one day after the first. I pushed my reverse 50mm lens to the limit by using over 12.5mm extension tube. The contrast was enhanced during post-processing. The body length of the spiderlings is approximately 1mm. The rudiments of the eyes are clearly seen, as well as the book lungs at the front of the adomen of the one hanging upside down. Under the lens the spiderlings could be seen moving once a few seconds. But they all stay within the confine underneath the silk mesh laid down by the mother spider.”

Photo by H. K. Tang.

I Have Been Chosen!

Hooray! I will be one of the Linux kernel interns for Round 7 of the Gnome Outreach Program for Women. My professional career has begun. I am at last living the life. When I found out, I was actually shaking, and I ran through the house yelling “YEAH!” until I was hoarse. For the first time in my life, I’ll be working full time doing something I want and choose to do, not that I have to do. To everyone I ever worked with in retail, Farewell My Friends!

It wasn’t just getting the internship that made me so happy. I applied to both the Linux Kernel and the Xen hypervisor–and I was accepted for both! I had to decide between them. It’s a high honor to be accepted by both teams, for my first choice project in each no less. It’s turning my view of myself and my capabilities completely around.

Despite it being a happy dilemma, it was painful to choose one project over the other. The Xen mentors are such skilled communicators, and so sweet and supportive, that it broke my heart to tell them no. The code is as fascinating as the kernel code, and the experience would open as many doors for me as kernel experience would. Besides, I’ve never had the privilege of having to choose between two fantastic opportunities before. I experienced some real cognitive dissonance, and some success guilt, too. Purging myself of that is one of my personal goals for the next three months.

I want to give a big round of thanks to everyone who helped me. To all the kernel mentors, for easing me into the work and showing me what life as a kernel developer is like. To the Xen mentors, for doing the same, and for putting up with the goofs I made as I pushed myself to the last possible minute. To Anita Kuno, for helping put on the CodeChix OpenStack event and advising me to apply to at least two organizations. I was tempted to slack off after all those kernel patches; but if I had, I would never have known about Xen, and wouldn’t have had the joy of being chosen twice. To Marina Zhurakhinskaya,* who met with me at the Grace Hopper Celebration, answered my questions, and gave me the guidance to get this blog up and running. To the other applicants, who tested and challenged me in friendly competition, and inspired me to work harder. Especially, to everyone within Gnome, the Linux Foundation, the Xen Foundation, the OPW committee, and that I don’t even know about, for developing this program and making it all possible. Plus, to everyone in the whole wide world. That’s how I feel right now.

Now, the real work begins.

[Edited to add link to OPW accepted participants.]

*[Edited: Marina Z contacted me to let me know that the person who helped me at GHC wasn’t her! If anyone reading this can put me in touch with the right person, I’d greatly appreciate it. Marina, you still rock!]

Livin’ Large at the Google Hackathon

I was accepted to participate in the Google Android Hackathon that took place on Saturday. All week, I mulled over my knowledge of the subset of Android that I’ve used, and planned out an idea for the pitch (which turned out to be unneeded). I drove up there being nervous about my skills and hoping I could get a rough demo going. But when I got there, I realized it was an excuse to spend a day at the Google campus.

The reputation they have for the food they provide is well deserved. I had apple wood smoked bacon, Straus yogurt, local wild honey, and persimmons for breakfast; tuna poke, taro chips (mmmm, salty!), and purple carrots for dinner; TCHO chocolate while hacking; and jasmine tea and sparkling water from the fountain all day. That was just a fraction of what was available (HOW could anyone eat pizza with that poke sitting there, I mean srsly???). It was worth going just for the food–heck, it was worth going just to sit on one of those heated toilet seats.

But I came to hack. We were given an assignment, some sample data, a method to incorporate, and a suggested timeline. I chose to go off the timeline, because part of the core functionality–drawing into the canvas of a custom component–was familiar to me, while app navigation was not. We were only allowed to access the Android developer site and Stack Overflow, but we were allowed to ask for help from the proctors if we got stuck. I only needed fresh eyes once; I had forgotten that View subclasses need the two arg constructor when they are being inflated from XML. Other than that, I bumbled along quite nicely.

The new R22 tools, which I’d upgraded to the night before, offered me a wizard to create my app with two pane navigation for tablets. That was one of the “extra” tasks in the assignment right there. I was a bit confused by the dummy content the wizard created for the list. I thought I should get rid of it, but since when hacking Android I tend to waste a lot of time trying to figure out the correct way to do something when either a) there is no correct way or b) the correct way was my first thought that I had dismissed, I tweaked it and used it. I spent a little bit of time panicking and flailing, but since I was under the clock, I told myself to do something that works and move on–a valuable lesson. Unfortunately, I didn’t do that with the two arg constructor issue. I let at least forty five minutes go down the drain before I spoke up, so I went into the “easy” part–drawing text into the canvas–shaken and under last minute pressure, and it took its toll. I implemented at least two new things, though: a TypedArray resource, and a form. So I did fairly well despite my mistake.


The judges were encouraging. When I told them about my kernel adventures, they suggested I look into the NDK. It’s been on my Round Tuit list ever since I learned it existed. Well, after seeing just what I can accomplish in eight hours and knowing that, with a little practice, I can accomplish more, I’ll definitely be looking into more Android. I still have that demo plan.

Oh, and the swag bag. I figured there would be the t-shirt and a plastic Andy toy, and maybe a journal.

IMAG0227If they’re going to bribe me like this, then heck yeah.

OPW Applications Are Closed

It’s over. After forty days of sheer intensity, it’s finally over. I edited my application until the last second; it reached perfection (hopefully) at about two minutes till. I’m trembling, my mind is whirling, and my eyes are stinging. I’m flashing on data structures I’m not familiar with, indents that seem to shift out of alignment on their own, and the avatars of the mentors and other applicants. It’s time for a real meal, a shower, and some sleep.

There is still a lot to do over the next two weeks, until they announce the winners. I need to prepare for the Android Hackathon on Saturday, and I might even find the energy to go to the expo booth at AnDevCon. I promised Rupa I wouldn’t flake on the Codechix app, and Xtra Screen Hacks is crying to me from the back of the closet. There’s also that half finished installation of Xen on my desktop machine. I might as well play with it for awhile; you never know, that experience might come in handy. 🙂

Where The Time Goes

I’ve made a decent effort toward my OPW application for the kernel. The patch submission circus continues, but I’m on to my second application. A former intern advised me to apply to at least two organizations, to increase my chances of acceptance, so that’s what I will do.

The patch submission process for my second project is pretty much the same as it was for the kernel, but I want to be sure I’m doing it right. So, I just spent an hour getting git send-email to work the way I want it to, without my having to think about it. (Heads up: passwords entered with git config --global sendemail.smtppass will be ignored. Edit ~/.gitconfig directly.) I didn’t plan that; I just wanted to be extra sure I was sending my patches correctly, and once I had it all configured, tested and understood, I realized an hour had gone by. There’s still time to finish my application, since I have about 23 hours, and my first patches have already been sent. It’s time well spent, too, because I will use that skill no matter which project I’m accepted for. I’m just always surprised at how much effort (that I don’t give myself credit for) goes into little odds and ends such as this.