Tuesday, October 31, 2006

Learning much

I'm feeling completely worn out from spending my afternoon sorting out problems with the login controller on one of our projects. It was in a very messy state, containing a partially removed acts_as_authenticated, and the net result was that you couldn't log in at all (don't worry, it's in an early stage of development. No actual users were harmed). After a few hours of clearing out code that was no longer useful and rewriting the rest from scratch, I think I've managed to replace it with a much smaller set of code that handles salted password hashes correctly and redirects the logged in user to an appropriate section of the site. More testing will be required.

I've learned that I'm happiest when my daily work involves lots of problems and questions to resolve. Not the bad interpersonal "my manager is an asshole" problems, but things like "how do we make it so that the user can create a blog with these features?" I like the aha moments that come when you've been staring at something for a while, and suddenly realize you actually understand why the example code is written the way it is, and how to apply it to your project. The downside is that after a full day of this, I feel like taking a very long nap.

Another cool thing I'm discovering at the new job is that I really like working with a team of programmers. I haven't had a lot of opportunities to code on group projects, but it's very nice to be able to talk to other people when I'm trying to decide how to approach the next problem. It's an even nicer resource when my code is producing errors I haven't seen before.

There were a lot of things about the old job that felt disempowering. We often heard other people describe our group as "just babysitting the data" or "not technical like the programmers", and the general attitude was that other people were more qualified to decide for us how software functions we used on a daily basis ought to be designed. I really like being in an environment where I feel like I can just go ahead and get things done, because people trust me to figure it out or ask questions if I'm stuck. You might not realize how uncommon that is unless you've spent a while being treated the other way.

Tags: , , ,

Saturday, October 28, 2006

The new job



As of Wednesday, I've been working for Planet Argon as a Ruby on Rails developer. They do contract work for a wide range of other companies, so I'm very happy to have the chance to hone my Rails skills on a variety of projects.

Tags: , , ,

Monday, October 23, 2006

Slacker



I'm lounging around at home for a couple of days, drinking tea, playing with wool, picking up after the kitten... because I quit my job. I start a new one on Wednesday. Yay!

Somehow I feel like doing anything but work on my Halloween costume, which is of course the only project with a deadline right now. I went fabric shopping, I played video games, I spun several skeins of yarn, I bought underwear, and signed up for a flat rate text messaging plan. I'm a very productive procrastinator.



The kitten has managed to knock over an unbelievable number of things the last few days. It looks like he went through another growth spurt, and I think he's realized that himself, because things that seemed too high up to jump on are suddenly attracting his attention. The place he's most interested in is the shelf above the litterboxes (they're in the office closet), so some of the cleaning up has involved sanitizing things that ended up in the kitty litter. Like half my knitting needles (those were on a bookcase just outside the closet). And a couple of boxes. And the bathroom mats, which were used as a backup potty area after Sputnik blocked access to the actual litter boxes with a large piece of styrofoam board.

Maybe I'll get started on my costume tomorrow.

Tags: ,

Saturday, October 21, 2006

Ping

It's Saturday night, Lucas is out of town, and I might be stuck eating apple crisp all by myself. So I signed up for Dodgeball. This won't really help much, since I don't know if anyone I know even uses it, but the idea of being able to send out a group ping is pretty neat. Plus I read this week that you can log in with your Google account, which is convenient if you're already storing half your life on their services like all those people the NYT was talking about.

So if you're reading this and you're on there, ping me. It doesn't look like there are many active users in Portland, though.

Tags: , ,

Monday, October 16, 2006

Fruit porn

Lucas and I went to the apple tasting at Portland Nursery on Saturday. It continues through next weekend too, so if you're in Portland, you should go. It's fun and you get to taste more apples than you've ever heard of before.



I brought my camera so I could get a few pictures of big shiny red apples.



They all looked so delicious that I ended up with more photos than I expected.



This is making me hungry.



Tags:

Sunday, October 15, 2006

Strange creatures

A giant furry squid has been spotted lurking in our bathroom.



Tags:

Slow web apps make me sad

I switched over from Bloglines to Google Reader last week when they announced an updated version of the interface was available. It's much sleeker, more like Gmail, and Bloglines annoys me daily, so this seemed like an easy choice. But Google Reader is slow on my home computer. I think there's a bug or two in their AJAX that's eating up memory, because the whole thing seizes up every couple of hours. I can't leave the window open while I'm working on other things.

The New York Times had an article today about Friendster and why it lost out on the social networking boom. I think every web company should read this, because the big #1 problem that anyone who had an account there will remember is that as the site grew, it became so slow you couldn't even log in. It was completely unusable. According to the article, the management was completely oblivious to this at the time, didn't care, just wanted to know how fast the next feature set could be applied. But features are completely irrelevant if the basic functionality breaks.

So Google: I love being able to read posts one at a time and sort by different sets of tags, but I can't keep using your service if the scripts running it keep timing out. Bloglines: my unread posts disappear and reappear. WTF? Fix your database issues. The last announcement I saw said "now with more AJAX" and I don't care. I would rather hit refresh and have to reload the page every single time to see new items, if it means that you index new posts in a reliable manner.

I started working on a feed aggregator last spring and then dropped it after a while, because it seemed like too much work when there are a ton of existing services to pick from now. But none of them seem to work well enough to justify "features" that instead bog the service down. I'd love smart filtering and organization, but instead everyone mucks around with the UI. It's getting really annoying.

Tags: , , ,

Saturday, October 14, 2006

Picture time

My first camera was a present for my 10th birthday. It was red plastic with a fixed focus lens. It let me very bad pictures no one else wanted to look at for several years, until I received a much nicer Canon point & shoot in preparation for my first trip to Germany.

I've started scanning in pictures taken with that first camera, and while most are as blurry as I remember, there are some fun things here too.



This is the front yard of the duplex we lived in from 1990-1994. Across the street is Sabin Elementary School, where I attended the second half of fifth grade after we moved back from Richland.



This was taken in Sitka, AK. I think the overpass in the foreground is probably part of Halibut Point Road, the highway that connects the west side of Baranoff Island. I spent 3-5 weeks a year in Sitka from about '88 to '92, visiting my father and stepmother.



My brother attempts a self-portrait, on the same trip to Alaska. If he had a camera during this time it was a little plastic 110.



Tenakee Springs, also in SE Alaska, about two years after the pictures above. It's a tiny fishing village with about 100 residents. The only way to get there is by boat, and the ferry dock doesn't allow cars on or off. People walk, or bike, or use mopeds. You can't go very far without needing a boat again, anyhow.



The general store seen here handles rentals for a few vacation houses across the street. They're comfortable, but nothing fancy. Around the building to the right is the ferry dock.



This is the bathhouse. The island doesn't have a full sewage system or room for everyone to install a septic tank, but it does have natural hot springs, so people use the communal bathhouse to clean up. There are men's and women's hours posted, and to bathe you go in, undress in the outer room, get a pitcher of water and scrub off the dirt on the ring of benches outside the tub, then hop in for a soak after you're clean.

I regret that I didn't get a picture of the other part of the hygiene situation on the island: a pair of outhouses hanging over the ocean. At high tide, everything goes in the water, but at low tide it can be somewhat gross. While we were there, my brother scrawled a short poem about the wind tickling your ass on the inside wall of one of the outhouses. I recognized his handwriting a few hours later, told my stepmother, and she marched him down to the general store to apologize and get something to remove the marker. These days I wish I'd kept my mouth shut. It was a funny poem.



Now we move on another year or two to OMSI Tidepool Camp on the Oregon coast. This picture is from the second year I went to the camp.



There must have been something interesting in the pool. Rocks like this are extremely slippery, so you spend a lot of time trying not to fall over.



Group picture!



The Peter Iredale, one of the icons of the Oregon Coast, second only to Haystack Rock.

Tags: , , , ,

Sunday, October 08, 2006

The people on the bus are drunk

I finally managed to pick a weekend coding project that was actually weekend sized: I wrote a little program in Ruby to simulate bus passenger loads during rush hour. You can grab the code for it on my website. It's just a rough draft, but it's kind of fun to run a couple of times, changing the rates of people getting on and busses being added to the route.

I started this because I was thinking about how annoying it is that people living closer to downtown (like me) often have to watch a bus or two go by in the morning, before one with enough room finally stops. It seems like you could avoid this by either increasing the frequency of buses (though with the other traffic, anything more than the current ~7 minute spacing is likely to result in clumps of buses rather than a steady flow) or by adding an express bus every so often to pick up passengers from the more active stops. My model is still too simple to show any of this accurately, but if you add more than one person per stop per cycle, the people closest to the end of the route rarely find room on a bus.

Changes that would improve the simulation:

  • Currently each bus moves down the route every cycle, and passengers are also added to stops at the same time. It would work in a more realistic manner if I made the cycles more like minutes, and used that to provide more flexibility to move each bus and add waiting passengers at different rates.

  • The output is just four lines of text, representing the stops, people waiting, bus locations, and bus passengers. I could create a better graphical output for this.

  • The only way to change any settings for the simulation is to alter the code. It would be pretty simple to ask the user for input before starting each time, or to read in parameters from a file.

  • No one is getting off the bus. The rate of people leaving the bus in the last few miles to downtown is small, in my experience, but there are at least a few people getting off earlier most mornings, and I should include that.


Tags: , , , , , ,

Saturday, October 07, 2006

Gray + Rainy = Fall



Yesterday was overcast, misty, and the sort of day when I miss Seattle. In Seattle, the weather remains exactly like that from November-March, never too cold, rarely sunny or dry. I love it. But I'm also missing Seattle because that's where I went to college, and right now I'd love to return to that kind of atmosphere. I don't think anyone realizes until afterward just how lucky they are to get 4+ years of reading and learning with few responsibilities and the ability to follow odd ideas for hours on end without having to earn money at the same time. It's worth every cent of the debt that results, but that's also why you don't get to go back. Too expensive to do twice, unless it's grad school and you've come to terms with the idea of paying off student loans until you're 80.

Paul Graham is a well known writer and speaker on the subject of tech startups, and he frequently encourages college students and recent grads to consider starting their own instead of going to work for someone else. I like a lot of what he has to say about the general topic, but the "students of America, you don't need a corporate job" parts get under my skin after a while, because I feel like he's only talking to privileged MIT or Stanford kids who can ask their parents to bail them out if it turns out they're about to be evicted because they've been writing code for their own business idea without a paycheck.

I didn't have steady work for a year after I graduated from college, and it was a miserable experience. I did freelance work during that time, but always with the expectation that I was looking for a full time job, because I didn't have enough money in the bank to handle any kind of emergency or unexpected situation. So I don't see how anyone can possibly go straight from college to their own startup without a nice little graduation present of enough cash to not worry about food or rent for 6-12 months. It's difficult to focus on anything when you're trying to decide if you're desperate enough to apply for food stamps.

Thus, we come back to the job market. I think most companies do a lousy job of seeking out qualified people [1], but we've been over that topic. So I'll just point out a change to the 37Signals job board: they're raising the cost of listing a job so they'll have fewer listings. The comments on this announcement are mostly a big lovefest, with only a few of us wondering how this is good for the job seeker.

Clearly price does not ensure quality in this setting. And because this is a national job board, limiting the number of postings really hurts anyone who isn't in NYC, SF, or maybe Boston. There's no reason other cities can't have interesting tech businesses, except for the difficulty of connecting people with companies that want them. But this was supposed to get easier, thanks to the wonders of modern communications technology, and I think limiting the number of job posts on this board is a step in the wrong direction.

I know there's a certain crowd that says "traditional hiring is dead!" and "word of mouth/personal contact is everything!". This is great in a lot of ways, because the best way to find out someone's true skills and ability is to work with them or talk to people who have. But I think it can also reinforce certain biases and kinds of discrimination. Open source projects are often suggested as a great way to demonstrate coding skill and ability to work with a group, but far fewer women than men participate in these, for reasons that have been actively discussed elsewhere (this might be a good place to start if you're new to the discussion). And other kinds of groups that one might use for networking face similar problems.

At Lucky Lab after the last Portland Ruby meeting, I was sitting across the table from a guy who had recently moved from elsewhere. He mentioned that there was a Rails development group in his previous town, but no women attended regularly. One showed up for a single meeting and didn't return.

Everyone has heard jokes about how the guy who plays golf with the boss gets promoted over a more qualified worker who isn't in on those outings. Kissing up to the boss aside, there's some truth in the joke--of course you're going to receive more consideration from people who have spent time with you. Personal connections are really important.

When groups that might provide opportunities to meet other people in your field are very homogeneous, that can shut a lot of people out of the benefits of those interactions. I know from experience that it can be very intimidating and awkward to be the only woman in a room full of men, especially if they already know each other. This is a problem even in a friendly, welcoming group. There is a lot of cultural baggage that affects how women and men talk to each other, and settings that are somewhere between professional and social can make that even more difficult.

My point here is that you can't assume that social networks will bring you a wide pool of qualified people. They might, they might not. But an employer (or really any kind of organization) that wants a diverse representation of talent in their field may have to dig a little more. This is getting a lot of attention right now with respect to how conference attendees are selected. I'll refer you to other people for more on that one.



[1] Not that this is an easy thing to get right. I did the hiring for my group at my last job, and the number of people who apply with terrible resumes and no relevant skills is amazing. But the way most job ads are written, it's no wonder a lot of people give up and apply at random. My current job was a complete mystery based on their ad on Craigslist. I only applied because it sounded vaguely like something I could do, and I already knew someone who worked there.

Tags: , , , ,

Wednesday, October 04, 2006

Recent activities, or why I'm not a rock star

There are many, many evenings when I come home and don't feel like doing anything. This is a normal feeling for the 9 to 5 wage-earner, I suspect. The last few years I've felt like I'm wasting my life if I sit around and do nothing after work, but if I force myself anyhow, I feel burnt out and tired. So that's not good. But there's so much I want to be doing, and I hate when I'm at work and the day is creeping along, and I think, "I could be doing something so much more meaningful with my time, if I didn't have to be here right now".

This is a long way of saying, "I don't really feel like blogging right now, but all day I thought of things I wanted to write, so I'm forcing myself to do it anyhow."

I miss the free time I had when I was only working sporadically or part time a few years ago, except it was a depressing and stressful experience in all other respects, so for now I'm keeping the day job. I just really wish I could pick what I worked on during the parts of the day when I feel motivated and energetic.

Anyhow, when I'm not at work, or moping, or finally managing to find the energy to code, I've been going to things like the Portland Ruby Brigade meetings, or Perl Mongers, or Portland BarCamp meetups, which often seems like my entire social life in the soccer off-season consists of drinking beer with programmers (not that this is bad, or even that different from the soccer season when my social life is drinking beer with soccer fanatics).



I always plan to take more pictures at these gatherings, but the lighting in most bars is pretty terrible, and I often forget to bring the camera out before everyone has already downed a few pints, which can lead to some strange photographs.



One of things I've been thinking about a lot recently, to the extent that I've been picking people's brains about it during the various social hours, is the rockstar attitude in the tech world right now. There's an article about it on Forbes.com that really grosses me out.

I asked [the founders of Yelp] where they thought they would be in five years. This is what they said:

Stoppelman: Sitting on top of a pile of money ... [in unison with Simmons] ... surrounded by women! Yeah! [high five]

This isn't actually what first brought the issue to mind for me, though. Once again, it's the job postings. Here's the sort of thing I've been seeing lately: Rockstar Web Designer Wanted!, We're looking for a rock star architect-coder (top 1%), ASP.Net/C# Rockstar Needed for Name Brand Luxury Website.

And maybe this is just me, but when I read the increasing numbers of job listings with this attitude, I think, "my god, now it's not just enough that I'm smart and articulate and professional, but I have to be a cool kid on top of that? What the hell?"

Someone I mentioned this to at the BarCamp meetup said perhaps I just needed to try thinking of myself as a rockstar and not feel intimidated by the wording, but I've realized I don't actually want to be one. I want to make amazingly cool things. That's all. I don't need a fan club, I don't need the attitude, and I really don't need the upkeep or to worry about whether wearing jeans is some kind of statement.

It's not that all of the jobs are like this, but almost everything else is "Seeking Enterprise C#/.Net/Java Developer for Large Soulless Corporation". That's terrible in the other direction, and anyhow I'm still desperately hoping to avoid any significant contact with .Net and The Microsoft Way in my future activities.

So that's my current existential angst, in not quite a nutshell. I thought if I wrote about what's bugging me, I might get around to something actually interesting, but if not tonight, there's tomorrow or the weekend. I want to talk about Atom XML, and Amazon's new business direction, and the thought-provoking article about Howard Dean and the DNC in this week's New York Times Magazine. And kittens. Did I mention I have a kitten?

Tags: , ,

Tuesday, October 03, 2006

Three posts in one day? How can this be?

Well, I worked from home today (see previous post on apartment painting). Much easier to do a quick blog update under those circumstances.

I took a bunch of pictures in the central eastside industrial district on Memorial Day, but then I left the roll of film from the Holga on the table all summer and forgot about it until I discovered the kitten had adopted it as a cat toy. The last couple of frames were ruined, but I still had some nice results. My favorites are below.







Tags: ,

I want to tell you a secret

Here it is: your spiffy new business idea, no matter how cool or interesting, is not so super-special that you need to keep it secret. Unless you've already signed some military contract that requires you to keep your mouth shut or you'll be shot, the odds that you don't sound completely silly when you say "we're in stealth mode" or "I'm not allowed to disclose our business model" are pretty much zilch.

Why? It's like the writers (especially screenwriters) who won't give anyone a plot synopsis until the work has already been sold (and people who talk like this never seem to sell anything, in my experience). The chance that your idea is so amazingly unique that your whole project can be stolen away by a competitor who hears about it is very low. Look at Antz vs. A Bug's Life, or Armageddon and Deep Impact. Two sets of competing projects by different movie studios, and I have no idea which one in each set was started first, because they're all good or bad for different reasons. It's the implementation that matters, not just the concept.

I'm bringing this up because I keep running into this sort of thinking in the course of talking to people about tech companies and when browsing job listings.

A sample:
For consideration, contact me and I'll send you a non-disclosure agreement for you to sign and bring with you to discuss the project in detail.
CTO at Stealth Mode Travel Start up--To apply tell us about things you have seen and could hypothetically reverse engineer. Conf agreement required before details are given.

This is really silly. Most people who express interest in your project are not going to have the time or money to copy it, no matter how cool it is, and even if they did, their version will probably look completely different. A good idea is the smallest part of a good project or company. Look at Google, the last search engine to enter the market. How many stories or movies do you know of with essentially the same plot? How many songs about heartbreak? Travel booking companies? The details are more important.

There's a difference between not giving away technical details (the "secret sauce") and not being willing to share what kind of business you're starting and how it plans to make money. Especially once you're ready to hire on employees or get funding. Once you reach a certain point, obscurity is the bigger enemy.


Tags: , , ,

How not to paint an apartment building

In five easy steps:


  1. Wait until the day the on-site manager leaves for vacation to schedule the paint job.

  2. Delay notifying the tenants until the day before painting begins, especially if you're starting Saturday morning and no one will see the notices taped to their doors until they get home from work Friday evening.

  3. Expect a cheery response from tenants about leaving the apartment doors open with strangers wandering around while they're not home. You want to make sure that paint dries completely, don't you? This will be especially easy for residents with cats to accomodate.

  4. Ask tenants to move their cars from the parking lot before 8 AM on a Saturday, and don't worry about giving notice of this only the night before. Some people may turn out to be out of town, leaving frantic roommates searching for a spare set of keys, but that's no big deal.

  5. Provide a schedule of painting activities, but don't bother sticking to it. Who cares if you need the doors unlocked on different days than originally posted?


Sincerely,

Audrey, who is currently stuck inside the apartment because the front door is taped shut and there are people with paint sprayers on the other side. According to the schedule, this part was going to happen tomorrow.

Tags: , , ,