Coffee Appreciation


I went into my favorite coffee shop for my usual americano, and the barista said to me, almost as an aside: “I want some of whatever you’re on.”

“Er,” I replied. “What?”

“Whenever you walk in here,” he said, “you look like just you’ve seen the most wonderful thing. I want some of that.”

I will take it as a compliment ^.^


Dancing Salsa or Data Structures…


Today started great: four mile run in the partial sunshine, some (video) face time with the fantastic Julie Zelenski through Stanford Engineering Everywhere, and French press coffee. The extra energy did not translate into better focus, though, and I wasted the better part of the day searching for summer 10K races, bouncing through blogs, dancing around the apartment, etc etc etc.

And tonight, I’d made plans to go to Seattle’s First Thursday Art Walk, where many galleries change exhibits and all museums are free. The twenty- and thirty-somethings come out in droves to check out new art installations and partake of wine and other goodies, and it’s about the most fun a girl can have for free on a weeknight. After that, there’s a salsa lesson and dance that I’ve been meaning to check out–and how convenient that they both happen on the same night!

But now, suddenly, I just want to stay home and code. I’m embarrassed that I lost so many hours today, and I’m finally ready to jump back into it. I really do pride myself on my new-found bravery and inspired bursts of activity… but maybe tonight, I should stop trying to be fabulously young and hip and start trying to get my brain up to par.

That’s settled, then! I’ll appreciate art and dance the meringue and drink wine some other night; for tonight, I’ll appreciate my algorithms, jive in my chair… and maybe still drink some wine ^.^

Soldiering On


I went for a run this morning on the river trail, and remembered this article linking strength training and mental fitness–not just being smarter, but being more decisive and persistent. I’ve decided that running has similar effects: you’re pushing yourself to do something even when you really, really don’t feel like it. Willpower, says the NYTimes, grows with use, even in completely unrelated areas.

So today, I have booted up my Linux machine. I started Firefox from the command line. (And was given a fairly glib warning, but am ignoring it for now.) My goals for today:

  • Play with the command line, with the aid of my Beginning Ubuntu and Beginning Linux books.
  • Set up my environment–or decide not to. Environments seem to be all the rage with Linnites.
  • Try to get Mercurial, the source code manager, installed and working.
  • Do a “hello world” in some IDE on the Linux machine, which has subparts:
    • Find an IDE. (gcc? g+? I know what they’re called but not how to find them.)
    • Figure out what emacs is and what it does.
    • More parts to come…

But first on the agenda: coffee, and changing out of my running clothes into something more work-related. (Maybe my Honors Chem t-shirt with the farmer in the del-o. Oh, yes.)

We have liftoff!


Ubuntu is up and running ^.^ I tried installing a source control system, and promptly found out that a) I needed to set the python path correctly and b) I really don’t understand the terminal. Welcome to Linux!

Taking a break from that and going back to my good old Visual Studio–I feel like a wimp. My program just boots up and runs, just because I ask it to. I never hear about dependencies. I don’t even often have to remember which way the slashes slash in file naming conventions.

The other machine seems dangerous now, in a slightly titillating way. I love, too, that nothing “important” exists on it–and if I have to reinstall the OS, well, that’s just how I’ll know I’m working hard.

Sudo power!

Power Up!


I met with an old high school classmate, B, over the weekend; we never crossed paths much in school, but now that we’re living in the same place thousands of miles from home, we get together every so often. He went hardcore into computers ever since high school, and graduated a few years before me–so has a big, big head start.

He’s been working on a Linux installer aid for years, and now that I’m starting to code, he said he’d be willing to take me on as a student/helper in his project; I feel so fortunate because not only is he an expert at what he does, but he also is a great communicator and teacher. I was nervous at first that  I wouldn’t be able to understand anything he said (which is how it went a couple years ago when he talked about his work), but he explains clearly without sounding pedantic. His program is in C++, too, and I’ll get to see (and contribute to!) a working code base.

The trouble is that I’ve never used Linux or the command line. I saw Linux once, and used to start Sopwith from the DOS prompt when I was a kid–but apparently neither of those counts ^.^

So my project of the day/week is to re-jigger one of our old machines so it works, then install Ubuntu. After Ubuntu is running, I’ll try installing B’s program and poking around with it. All easier said than done! Given the lessons of last week’s scheduling, I broke my to-do list into very, very small parts:

  • Get the computer boxes out of the closet.
  • Open the boxes.
  • See if everything looks connected.
  • Find new parts if anything major is missing.
  • Plug in monitor to assembled machine.
  • Turn on assembled machine.
  • Insert Ubuntu disk into drive.
  • Enter BIOS and hit… whatever I hit to make the machine boot from a CD.
  • Revisit to-do list.

So far, I’ve poked around inside the computer box, and things actually look good. I’d thought we’d scavenged some cables from it, but it has a hard drive, video card, keyboard/mouse connections (in the mother board), CD drive… Every type of important-looking slot on the motherboard has at least one card in it. (I only ever assembled one computer–and it was under my tutor’s watchful eye.) Things look to be plugged into the power supply as needed. One hard drive isn’t attached to the motherboard, but I think it was the hard drive that failed and was unplugged on purpose.

Time to fire it up!


Much, much later:

So the machine works, but I can’t log in to make sure there’s nothing important on the hard drive… And since it’s my roommate’s machine, I don’t want to wipe it without his explicit go-ahead. So instead, this afternoon I started reading Beginning Linux at a coffee shop, which assumed a lot of background knowledge (what is “more”? why are things proceeded by dashes?) and would be much helped by actually having a working copy of Linux installed.

I distracted myself with job boards for a bit, but those inevitably depress and discourage me. I think I secretly hope that since last time I checked, my qualifications will have multiplied and suddenly I’ll be the perfect candidate for posted positions–and then I realize that I still don’t have a BS in computer science, and then I torture myself by clicking around all the different postings for companies I’d love to work for. Why do I do this? It is actively unhelpful.

Anyway, I just tore myself away from my futile, masochistic exercise and took myself to the library to check out a beginner’s guide to Ubuntu, which actually starts PRE-installation and will be closer to my level. And somehow, I’ve found that I feel better when I tell myself in a reassuring voice, “Podemos hacerlo, mi amor. Está bien.”


“… an operating system is the fundamental software that’s needed to make your PC work.”

Call me a softie–but it feels good to read something that starts way below my level.

Oh, and some hotness.



I had a secret hope that one day–perhaps while I’m walking down the street carrying my Carnegie Mellon intro to computer systems guide, or at a coffee shop working out some algorithm on a white board–someone would glance over and exclaim:  “I can tell by your diagram of arrows, circles, and hex notation that you are working on some programming! Plus, you look young and hip. Would you like a job?”

After months of working in coffee shops and walking around Redmond, though, I still haven’t had any spontaneous job offers. In fact, the only person to strike up a conversation about my topic of study was a coffee shop employee with Down’s Syndrome, who asked what I was studying. “Computers,” I answered. “Oh,” she said, “maybe you can teach me!” (“If I ever understand it myself,” I thought, “that could be great.”) “Maybe someday!” I said, more cheerfully than I felt.

I’m struggling, in some ways, to live up to the image I’m trying to create for myself: brilliant in prose and in code, capable of laser focus even in pajamas, and relentlessly upbeat while maintaining a cool sense of irony. Who wouldn’t want to hire that person?

In my first ever “real” job–in my then-chosen field of teaching–I truly believed they’d fire me if they learned I was anything short of Mary Poppins with flawless French. Of course, this ended up hurting me in the long run, because I missed out on opportunities to ask my supervisor for advice. I will not let myself make that mistake again.

But in the hiring process… employers assume you’re putting your best foot forward, and if your A-game is flawed, then they’ll assume that on a day-to-day basis, you’re barely sentient. This really implies that until I’m in the door, I need to actively monitor my image. But even though I’m a pretty private person, I highly value honesty in my dealings with people.

In helping our clients, I’m able to maintain genuine communication by looking for the real good in any situation; even if someone’s been unbelievably difficult to work with, I can thank them honestly for taking the time to talk with me about their issues–and in the end, that leaves me feeling more positive about the whole interaction.

When I’m talking about myself, then, I’ll just have to keep looking until I find genuinely positive things to relate–and will keep quiet (or talk to friends) about the rest.

As always–glad we had that talk ^.^

AJAX-y Goodness


After a much-needed holiday break, I’m back–and finally sat down to brainstorm projects. People who actually code keep asking me if I have any personal projects, and when I say “no,” they really pause. I completely understand; if someone were trying to become a book publisher and wasn’t currently reading anything, I’d be a little concerned, too.

But I’ve been nervous about starting a project, partly because I want to make a Beautiful project, with sexy graphics and an intuitive UI. I want to be proud to show it to people, and when they see it, I want people to say, “Wow! How useful and attractive!”

I’ve finally realized, though, that it’s just like a term paper: you can’t start with your conclusions, because you don’t know anything yet. You have to flounder around for a topic, because some (“Hinduism and Buddhism: A Comparison”) are entirely too broad, some (“Religious References in Ender’s Game“) aren’t sturdy enough for serious application, and after throwing out maybe a dozen potential topics, you’ve learned enough to choose a sufficiently narrow but interesting topic (“The Role of Feet in Christian, Buddhist, and Hindu Traditions”).*

And my personal projects will be like that, with false starts (I get HTML in theory, but in practice, how do I set up a website?) and wrong turns (I want the form to auto-generate a mad-lib style description, but people don’t like being told what verb tense to use over and over) and hours of digging through references. But at the end of it, I’ll have acquired some new skills!

I’m excited, really, to break my coding out of the box. Outside of my obsession with clearly named methods and variables, I’ve never made a user interface. I’ve never made something for other people to use that didn’t have a series of instructions (“First enable macros, then log in to retrieve your report, save it there, then click this big button….”)

My real dream, right now, is to develop language software for mobile devices, because mobile devices are the future and languages are hot. Especially when your device knows where you are and can adjust accordingly! But first, I will figure out HTML forms, then AJAX forms (still want something pretty), and then I get to figure out how to store all my new data. Woo-hoo!

*Yes, this is an actual list of topics I considered for my Intro to World Religions class.