The Changelog: Software Development, Open Source - OAuth, Hurl.it, Baconfile (Interview)
Episode Date: February 27, 2010Adam and Wynn caught up with Leah Culver and talked about startups, APIs, and her open source work on OAuth, oEmbed, Hurl.it, Baconfile, and more....
Transcript
Discussion (0)
Welcome to The Change Log, episode 0.1.5. I'm Adam Stachowiak.
And I am Winn Netherland. We follow what's fresh and new in the world of open source.
If you found us on iTunes, we're actually on the interwebs at thechangelog.com.
Or for a real-time view, check out tail.thechangelog.com.
We're also on github.com forward slash explore.
You'll find some trending repos, some feature repos from our blog, and all the episodes of our podcast.
So check it out.
If you want to follow us on Twitter, you can do so as well.
Follow changLog
Show, not The ChangeLog, sorry.
And if you want to follow me, I'm Adam
S-T-A-C, that's Adam Stack.
And I'm Penguin, P-E-N-G-W-Y-N-N.
Well, you're just
back from FOA.
Yeah, FOA, man. It was an awesome time in Miami.
It's like, not quite Vegas.
It's not Sin City, but it's close enough.
And a lot of fun there. A lot of good people at the conference.
And Ryan always knows how to do a good job, and not just himself, but his team as well.
He's got an awesome team he's built, and they definitely know how to do conferences well.
Ryan Carson you're talking about?
Yeah, Ryan Carson, yeah.
Carsonified, yeah.
I'm excited about heading out to the Twitter conference, ChIRP, in April. It's a Carson joint.
That's just before JSConf, isn't it?
Yeah, little birdie says we may be out there.
That's what I heard. We'll see.
We'll see.
But yeah, one person we did catch up with – well, actually two people, one specifically from Facebook.
We helped to catch up with David Record, and he had a few minutes to chat with Ryan on stage about what Facebook is doing at open source.
And I think he's got a lot of cool stuff to talk about.
So hopefully he makes some time to show his face or his voice on this ditty.
I look forward to it.
We've got a great interview this week with Leah Culver.
Recently of Six Apart.
Most recently of Plancast.
It's a development since we recorded the episode.
It's kind of funny how she didn't tell us about that.
It was the day after she announced it.
Yeah, we could have scooped it.
I feel like we've been wronged, Leah.
Oh, well.
It's a good interview, nonetheless.
Yeah, no, she's awesome.
I think what she's done with OAuth,
and especially what you guys were talking about with the whole API junkie
stuff.
Man, you guys are crazy.
Yeah, I've got a sickness, and it's called APIs.
So good stuff, good stuff.
It's a great interview.
You want to get to it?
Yeah, sure.
Let's go.
All right, we're joined today by Leah Culver, and we're with Adam.
I should mention that Adam's with us because he makes this strange appearance about 30 minutes into every episode.
So Adam's here, waiting in the wings.
And we're talking today with Leah Culver from Six Apart.
Leah, why don't you introduce yourself to the audience, the guys that might not know you, and what you do at Six Apart.
Hi, everyone. I'm Leah Culver.
I work at Six Apart currently as a product manager, but formerly as a software engineer.
And prior to that, I had my own company, Pounds, where I was the primary engineer,
and that was acquired by Six Apart sometime last December.
So I do a lot of work with Django and a little bit with some other technologies.
So I'm very excited to be on the show.
Thanks, you guys.
Yeah, thanks for joining us.
So I have some curiosity to how you transition from having Pounce and then going to Six Apart.
What was that like to be kind of approached by them and then get consumed by them?
It's an interesting process, for sure.
I mean, I've always been a big fan of the company, Six Apart.
I really like the products that they make.
They've been very active in open source communities,
and I feel like they sort of have similar values to myself.
It's someplace that I always wanted to work.
So it was actually pretty easy.
How did Pounce come about? Everybody that I talked to about Pounce compared it to Twitter,
and I'm not sure if that comparison is 100% fair, but what's the background on how Pounce came about
and what you guys were trying to do over there?
Well, I wanted to do a social site, and wanted it to do with messaging and like sharing content online.
We had a couple of specific use cases, specifically when you found something online that you thought was funny or clever.
How would you share that with the people you knew?
And what you'd end up, I'd end up getting like these IMs that were just like links to stuff or, you know, like links to funny videos.
And we thought there could be a better way. And I met Kevin Rose, one of the co-founders at
an event in the fall of, I want to say 2006. And at the same time, I met Daniel Burka,
the other Pounce co-founder. So there are three of us, three Pounce co-founders.
And we all got along very well. And we really wanted to work on this idea. And Daniel is a
designer and Kevin's a business person and an entrepreneur. And I'm a developer. And so it all
sort of worked out and we had similar ideas and got together and just discussed them and came up with this thing that was, you know, inspired by a lot of different sites that were around at the time.
Because this was kind of a very popular idea to make, you know, something that was like blogging but more conversational and more social.
So what's it like to work with Kevin and Daniel Berger then?
I guess Daniel was the co-founder that had the design skills,
and you were the co-founder.
Yeah, he's a super talented designer, so that was really nice.
And Kevin's pretty business savvy and has really great connections,
so that was nice.
It was very convenient.
Yeah, it's kind of rare that you get such a good team to come together in that way.
So if you find it, hold on to it.
Yeah, absolutely. So OAuth and OEmbed, you're the, I guess,
co-writer for both of those specs.
Did those both come out of pounce?
Well, yes and no.
So OEmbed more than OAuth.
OAuth sort of came actually from Twitter.
And Blaine Cook's desire to do, well, Twitter and Magnolia both.
They had this issue where Magnolia allowed OpenID for login.
And at the time, APIs were mostly HTTP basic auth, which depends on a username and password. And of course, when you have OpenID, you don't have a username and password for that particular site. So they were looking around at other solutions,
and folks like Google and Yahoo and especially Flickr
had done some token-based auth that was really interesting,
but it was all different, and they wanted to make sort of a standard.
And Pounce got on board later because I was interested in the work,
and I thought it was a really great project.
Talk about OAuth for a moment.
I've done some OAuth development myself on the Twitter gem most recently.
I think the vibe is that it's well-suited for web applications
and not so suited for desktop applications.
Would you share that point of view?
Yes and no.
I've seen it done well on desktop and web applications though it doesn't
have quite the same benefit um but it it's difficult to come up with a scheme that sort
of works for all three and every single case of logins there's like it's i mean it's not even
just like desktop and mobile it's like a mobile app accessing a desktop app that accesses the original API and things like that.
So it gets pretty complicated.
It is a deceptively simple problem.
I think at first glance you think that authentication is just something that isn't that difficult.
But when you kind of peel the onion, it starts to stink after a while.
Right. I mean, it's just, it's security issues. It's things that you never think about that,
you know, someone trying to hack your site is always one step ahead thinking of these things.
And it seems unnecessarily complex, but there really are reasons for all the decisions that
were made. You know, that's right. As we speak, there's an issue on Twitter. I don't know if you've seen it today.
The site, TwitterGrader,
evidently was hacked.
Sending out tweets on behalf of
hundreds of, I guess, tens of thousands
of users. But the cool thing
about OAuth, since they implemented OAuth, you can just go
into your connections
in Twitter and turn that off, which is something
you can't do with basic authentication.
I think that's the main selling point. A lot of developers push back at wanting to implement it, but it does have
its perks. Right. And it's not like they've stolen your password. And a lot of people reuse passwords
over and over, like my Twitter password might be the same as my Flickr password, per se. And if
your passwords are stolen, people can hack all sorts of your sites, right? And you have to go in
and change it in a bunch of places.
It's pretty easy to actually revoke your OAuth token for a particular site.
Actually, it's a little bit hard to find in your settings in Twitter, but you can do it.
Sure.
And it sort of just kills the problem right there.
It's pretty nice. One of the questions that keeps popping back up on the Twitter list around OAuth is,
for open source desktop applications instead of web applications, what should be the protocol, I guess, around generating those keys?
The consumer keys?
The consumer keys.
So basically, I guess everybody that clones a desktop open source app really has to generate their own set of consumer keys, right?
Right, right.
And that's an issue for a lot of web applications, too, that are open source.
They publish whatever their keys to different services may be.
Yeah, I mean, I'm not sure that I'm the best person to know really great solutions for that.
Yeah, it's always tricky.
When I created the LinkedIn gem, when they released their API,
they implemented OAuth, and I ended up checking in my keys
into the gem source, I must admit,
and had someone update my LinkedIn status from my own library,
so it was kind of embarrassing.
But you have to be careful with those, because it's just like someone that has your username and password.
It's pretty funny. I think I've made the mistake of publishing like my root password for a server
one time in some of my code in a, in like a fabric file or something. And I was just so embarrassed.
I changed it, of course, but you know, those sort of things live on in your commit history.
Talk about OEmbed for a moment, if you would.
How did that come about and what problem is it trying to solve?
So OEmbed was, that was actually pretty much pounce-driven at first.
We had this feature where you could enter a URL for a photo or a video and we'd automatically sort of
change that link into the, and embed that actual photo or video. So you'd see like a photo appear
instead of just a link. But one of the issues we had was that we had added like YouTube and Vimeo,
but then we'd have smaller video sites or video sites that maybe, you know, we didn't know about
come and ask us, how do we get this feature? And so I was adding a bunch of JavaScript and specialized code for every single site. And I
was like, okay, this is taking up too much time. We want to be nice to everyone. And we want everyone
to be able to have their links appear as videos or photos. So why don't we sort of make a standard
format that they can provide for us and an API that we can use to sort of treat all these embeds similarly?
You know, one of the selling points for OEmbed, especially around video, how do you see HTML5 affecting that at all?
You know, I'm not actually sure.
I haven't been following the debate too closely. But it should, I mean, pretty much anything you include
in OMBED in between your tags can be any, it can actually be any HTML. So it doesn't really matter
what type of video player it is, which I guess could be a benefit. There's actually a type for
OMBED called rich, where you can put in any HTML you like. And it's up to the consumers of
OMBED to verify like the security or like to make sure that it's a trusted transaction and that
you're getting sort of what you expect. So really, if you switched from a flash video to
the new HTML5 video format, as a consumer, you probably wouldn't even need to know that.
The provider could change at will,
as long as they respected the size constraints of the video.
I'm curious about, not in a bad way,
but why did you choose Python?
Why did you choose to stay with Python?
And kind of what got you into development?
So I was actually a Java developer in school.
No.
That's what you do in school.
Right.
Right, and I had interned as a Java intern,
and I got my first job out of school doing Java,
my first two jobs, actually.
So I'd been a Java developer for a long time,
and when it came to making pounds and making my own site,
I was like, no more Java.
I want to see what else is out there.
And I looked into a couple different things.
I looked into Perl a little bit, PHP a little bit, but not very much because I really wanted to use web frameworks, which were kind of like the new hot things.
So I took a look at Ruby on Rails and I had just a horrible time installing everything. This was 2006. And one of my
friends suggested taking a look at Django, which was like a totally new framework as well.
And I tried it out, and I got everything installed a lot quicker, which is totally
the wrong reason to choose a framework.
But at the time, I just wanted something that would work,
and I understood the documentation, and so that was really it.
So that's why I've been doing Python for so long,
is it was Django that got me into it.
Serendipity, then. It just clicked.
Yeah, yeah. I really felt like, I mean,
I think people feel that different concepts in
programming really vibe with them. And I felt like some of the stuff in Python really vibed with me.
So very cool. What was your internship out on the West Coast or in Minnesota,
where you're from? Oh, in Minnesota, I interned at IBM in Minnesota.
So talk a bit about, you know, geography for a second. So have opportunities opened up for you since moving out to the West Coast?
It's definitely different.
I think my feeling was when I lived in Minnesota that programming was a job,
very much like being a dentist or a doctor.
You were a programmer and you went to work at a big company, and that's what you did.
And you worked 9 to 5 and that was it.
And then moving out to the Bay Area there's very different attitude um in general i mean i've met people who
do all sorts of crazy stuff all over the world but in the bay area there's definitely more of
a culture for um not working the nine to five it's kind of like the 90210 story. You go from Minnesota to California
and things open up.
Oh, what was that? Sorry.
Like 90210, right?
90210, didn't they live in Minnesota
or something like that
and they went from Minnesota to California?
I think you're thinking of like
the Beverly Hillbillies or something.
No, they were from Minnesota.
Wasn't 90210, you know,
I think that was before my time.
How old are you?
You're going to have to introduce our audience to 90210, buddy.
Oh, boy.
Well, I wasn't...
I guess I was a fan when I was younger, but I was probably like 11.
How old are you, by the way?
Just curious.
Me?
27.
So you're not young.
You're not old.
No.
When is just over 30 and I'm just 30.
The TV references from the guy that doesn't watch or doesn't have network television.
That's great.
I don't watch too much TV either, sadly.
Well, not on TV, TV.
Well, speaking of open source and open source TV, do you use Boxee?
You know, I hate to say this and admit this.
I've never used Boxee, but I've used – Chris just installed Plex on our Mac Mini, and I've been sort of having a little love-hate relationship with it.
Well, that does open the door for our first question from our Twitter fan base.
Jay Neunemaker wants to know what Chris Wansroth is like in person.
The same.
He's very much the same online as in person.
Yeah. So he only speaks 140 characters then? Uh, he's, he's very much the same online as in person. Um, yeah.
So he only speaks 140 characters then?
No, only on gists.
If you missed it, we had a great interview with Chris in episode 0.1.0, I believe.
Yeah, it was our first point release.
It's an excellent episode.
About three weeks ago.
Let's talk about some of the apps you've created. So HurlIt. I don't know that there's a day that goes by in the last couple weeks that
I haven't used this application. So how does a Python girl get mixed up in a Rails rumble?
So Chris and I did HurlIt together. We also did the Django Dash together previously, a few months before.
So it was kind of a deal.
He did the Django Dash and I did the Rails Rumble.
So it was fun.
I really liked it.
It was kind of crazy to say, you know, I didn't really know Ruby very much at all and to jump in.
I actually mostly did design, so that was pretty fun.
If you don't know, Hurl is, I guess, Hurl.it.
It's a great API harness to put in endpoints for APIs and test them and replay those requests
and responses.
I use it quite a lot because Adam knows that I have an addiction to writing wrappers for
APIs.
He does. I do.
Yeah, I'm kind of an API junkie
myself in that I'm obsessed with
every sort of detail
about APIs.
It's really like the programmer's
design,
the programmer's interface.
It's very fun.
Have you come across an app called Charles Proxy?
Yes, I've used Charles before. In fact, I'd use it a lot before I used hurl. Um,
it's actually really nice. I love Charles. It's just, it's too cool. You know, I, uh, last week,
uh, the Gowalla guys have been, uh, begging them for an API for weeks and I finally released it,
but I got tired of waiting. So I was able to hook up Charles
and set it up as a proxy on my MacBook and use that proxy server connection on my iPhone and
then use the iPhone native app to go all and then sniff out their hidden API that their iPhone app
uses. It's just too cool. Oh, wow. That's crazy. Yeah, I mean, I love getting views into sort of having these nice graphical views into what's going on when you're making requests and getting responses.
It's super cool.
So that's funny.
Wow, that's crazy.
So now they have a public API.
They do have a public API, although it's much slimmed down from what I was actually able to find underneath the hood. So on the public API, it's mostly read-only,
but there are some methods there if you know where to look to actually create spots and things.
But I think they're worried about people gaming the system.
You know, the whole deal with Gowalla is you have to be where you say you're checking in,
which if you have API access, you could be anywhere.
You know, I haven't used Gowala that much, but I did look at their
API browser, which people were
saying looked a lot like Hurl, but
Hurl was inspired by other API browsers,
so it's not really a
fair comparison.
You know, what I use Hurl for mostly is
if I'm writing a wrapper to an API,
I
will use Hurl to
test the API endpoint and then save the response as a fixture file
and then start writing tests that will parse that fixture file
and then implement the code that makes the test pass.
It's kind of the workflow that I have.
Oh, that's great.
Do you use like the little view where it renders it outside of the actual like page UI?
It'll just give you the plain text.
Yeah, I do.
I pop that up and then just copy that to the clipboard
and then paste it in a new file.
I use TextMate as my editor,
so a lot of times I'll use the format JavaScript function
that's built into there to format nice and neat and tidy.
Most recently, I used it for another product.
I guess you and Chris also partnered on, BaconFile.
Yeah.
Well, actually, BaconFile I made long before I knew Chris.
Okay.
Yeah, but he wrote a desktop app for BaconFile where you could drag files.
So tell the folks what BaconFile is. So BaconFile is sort of my inspiration for it was I have a friend who has like just like an Apache server that displays files, you know, like it just shows a directory of files and you can browse it.
And I thought that's great.
I want that.
I want a way that I can just, you know, put my files up online and just be like, here you go.
Get this thing from here here, sort of feel.
And I found that there's not really any sites that sort of just allow me to throw random files at them.
So the original intent for Bacon File was to be for anybody to just be able to upload any file they want.
It showed like a nice directory and you could like browse the tree.
But it ended up being, I had second thoughts because that sounded kind of costly, storing people's random files.
So instead, I used Amazon S3 and said, if you have your own S3 account, which you pay for your own bandwidth and your own storage, then you can use this as a nice web interface to Amazon S3.
It's really neat.
Recently, I wrote a wrapper for it,
Chunky Bacon File.
Oh, I saw that. That's great.
Basically, it's a tutorial for writing
your first gem or API wrapper in Ruby,
and I couldn't resist.
I was looking for a test case
when I came across Bacon File
and why the lucky stiff is big in the Ruby community. I couldn't resist the I was looking for a test case when I came across BaconFile and why the lucky stiff is big in the Ruby community.
I couldn't resist the name ChunkyBaconFile.
Oh, that's so cute.
Yeah, you know, I don't know how useful the app is for a lot of people,
but I worked really hard on the API,
so it's very exciting to see people use it.
Thanks.
I really don't know it's not more popular.
It's incredibly useful to just be able to add a file and tweet it to somebody and say, here, grab this.
I think it's mostly the Amazon S3 component of it.
I think in the original concept where you just can log in and upload as many files as you want, I think it would be a lot more popular.
But the fact is you have to pay for your own files and you have to sort of manage your S3 account, which is a pain.
Right.
Finding those credentials is difficult even if you do have an S3 account, even to find those in the Amazon website of where my creds to even put in here.
I know.
I wrote up a whole like step-by-step thing for Bacon File that's like, here's how you find your Amazon S3 credentials.
You know, and so it's kind of a pain. But so
one of the things I was thinking about doing this next year
was open sourcing all of BaconFile
since it doesn't make me any
money and it doesn't cause
anybody any harm. I thought it would be kind of
fun to open that up.
Well, you've already done that with
HurlIt, right? Because I was surprised to actually see
the source and I don't know why it didn't dawn on me that being in the
Rails Rumble that it would be available out there, but
that's already out there, right? Yep, you have hurls available. You can download it.
What I was hoping to do with it, or I think what Chris and I were both hoping would happen, would
be that people that had APIs would sort of
adopt it for API browsing on their own site.
But it's not really packaged very well for that.
But I was hoping that maybe it could be.
That's interesting.
So to be able to run it, I guess, as a subcomponent of your API site to say,
kind of like what Gowalla did with here's our methods
and here's how you can kind of test it out in your browser, right?
Yeah, exactly.
And the inspiration, I think maybe I mentioned this,
it came from Netflix where they have that sort of browser already.
Yeah, so let's talk about that for a second
because, Adam, you can just hang out with two API junkies who are talking here.
I'm taking notes.
There you go.
So basic authentication is built in to Hurl it, right?
Yeah, the ability to just enter a username and password
instead of it having to do the hashing.
Sure, what would it take to get OAuth integration?
Because that tends to be a much harder problem to solve.
I remember when I was writing the LinkedIn gem,
I had to write my own stubs just to dump fixtures to test calls
because OAuth does add some complexity.
Oh, definitely.
We thought about doing OAuth in time for the Rails Rumble.
On Sunday afternoon, the last day of the Rumble,
we talked about adding it in,
and I played around with a bunch of different...
Well, I found a nice OAuth gem that I liked and wanted to use
and played around with it a bit.
But what it came down to was the UI was complicated.
It's actually very complicated to set up all those steps in a way that's simple and easy enough for anybody to use.
And I think I've seen there's a tool.
There's a couple of tools for OAuth that are pretty nice.
I think Google has one that's pretty good, but I haven't really seen any that I thought were simple enough to be a really good web application.
So a UI design, I think, is the answer.
So let's talk about Six Apart.
How long have you been at Six Apart now?
Since December of last year.
So what kind of endeavors is Six Apart doing in terms of open source? It's really cool.
So
the really cool thing that they've done
in the past year is actually a Django
project called Motion, and it's
on Six Apart's
GitHub site,
github.com slash sixapart.
And
it's actually called TypePad Motion.
Yeah, TypePad Motion. And what it is, is it's a
community site, mostly aimed at sort of celebrities and, you know, groups, online groups. And you can
go there and you can discuss things, you can post content and comment on that content.
And it powers sites such as Paris Hilton's community site and Zachary Quinto from Star Trek.
So it's pretty fun.
It's interesting.
It's a fun Django project, and it's all open source.
And so if you wanted to use that,
how would you go and get started with using it?
Just pick it up and you have to be a
Django user or
is there something that
Sixpart does behind the scenes that helps
them out?
If you go to
developer.typepad.com
I can't believe I'm messing up my URLs
today.
But there's step-by-step instructions in how you can get it installed
and how you can get it running and how all the components work.
It's pretty nice.
Oh, it's running up on the App Engine.
Yeah, they actually have it working on App Engine now,
which was kind of their task for people who have been working on that for a little while,
a couple people I know at Sixth Park.
That's pretty cool.
It's pretty nice that they can strip it down,
or it can be stripped down to work
on App Engine and
pretty cool. You mentioned earlier that
you're no longer a developer at Sixth Part,
you're more of a product manager, right?
What was the transition like going
from more of behind the scenes
making things work to
sort of going to the different direction, to being product manager?
Well, I've always really loved making...
Product manager, sorry.
I bet.
I mess them up all the time.
And in my mind, you do a little bit of both for everything anyways.
But I'd always been interested in making projects from the ground up and making
them from scratch, which is one of the reasons that I love competitions like the Rails Rumble,
is that you have this opportunity to sort of come up with an idea and see that from start to finish.
And that's what I really love doing. I'm not so much just a developer as I am, I like to make
whole projects. And so once I realized this and I
realized I was at a large company where, you know, you are a developer or you're a product manager.
Um, I wanted to have that be my more official title. Um, while I still did a little bit of
development, um, not very much, I really like sort of coming up with new concepts and new projects. So it's different.
What projects are you leading right now?
So let me see. None of my, oh, one of the projects I worked on has been released.
Typekit integration with TypePad. So you can set up, so Typekit is a provider of fonts.
So –
That's the fonts under subscription, right?
Yes.
You subscribe and you can get fonts from renowned type designers, so actual real type designers.
And you can put them on your website.
So I'm kind of hoping to see the death of Helvetica and Ariel in Times New Roman.
All right.
I'm excited to see new fonts on the web, right?
It's kind of nice to see a little bit more variety.
Every time I see a blog or a website and they use just a crazy typeface,
I'm just super impressed.
So what had happened was there was a hack made by Ben Trott, the founder of Six Apart, to add these custom fonts to TypePad blogs.
So I helped sort of get that released, which was fun.
Were you involved with TypePad Micro? I know that was a recent release.
Yeah, I started doing product management on TypePad.
Well, formerly I'd worked on Motion, the Django open source project,
and then switched to doing product management in part because I wanted to work on Micro.
I think it's a really cool project.
I really like the idea that you can sign up for TypePad for free, which is awesome.
And it's really nice and simple and fun.
Are you getting attacked by schoolchildren?
There's a school near my apartment,
and my windows face the street.
So I guess one thing you mentioned before was you realized that you had this big company
to just sort of play in.
What is it like to go from back in school playing with Java,
dabbling in Python to build Pounce,
and then you'd mentioned being acquired and what that process was like,
but now you're this product manager who can just decide on anything
and play in this big company.
What's that like now?
What kind of freedom do you have there?
It's all different.
It's all a different process.
I always love change and doing different things.
And part of the fun of working at Sixth Part is getting to sort of play around with bigger projects,
big sites like TypePad.
But at the same time, that also comes with a little bit of restriction.
It's not like Pounce where I'd come up with something
and it would be out the door the next day.
It takes a little bit more.
You have to spend a little more time thinking about your decisions
because they impact a bigger audience.
Do you get an opportunity to go and speak a lot at different conferences?
I used to more than I do now.
I used to more than I do now.
But, yeah, still occasionally on a wide variety of stuff, you know.
It's kind of fun to have done everything from a startup to, you know, open specifications. So, you know,
one conference I'll be talking about OAuth and another one I'll be talking about being a female
entrepreneur. It's like two totally different things. I have a sort of maybe a controversial
topic to ask you about. Would you consider being a female in this industry an asset or a liability? That's a good question, and it's both.
It definitely is both.
It's an asset because you're kind of a curiosity.
People want to know who you are and what you're doing.
And if you can play that in the right way to sort of get attention to,
you can promote worthwhile causes or sort of get to know a lot of people
that you might not have gotten to know otherwise.
But it also is a liability in that you really have to sort of go the extra mile to prove
yourself in things that I think other people would consider men competent at right away.
It's kind of, it's a little bit like a little bit of a prejudice and, you know, it's something
I think we all have myself included well you've
got to admit that it's got to be great not having to stand in line for the restroom at conferences
right yes and no i go to these women in tech conferences and it's like twice as bad but yeah
no that's actually my secret was in college uh i would always use the restroom in the computer
science building,
whether I had a class there or not at that time of day, just because they were always clean and always empty.
How did you get into computers?
I hear the argument a lot that we need to get more young ladies into computer science.
How did you get involved with programming?
We always had a computer in our home, and I was always kind of the ruler of the computer. I don't know if you guys were as well, but sort of the person that,
that owned the family computer. Um, and I only have sisters, so it was pretty easy. And I'm
the oldest, I'm the oldest of three girls. So it was easy to sort of, um, keep my sisters away
from the computer when I wanted to use it selfishly.
And I ended up making websites when I was in my teens because I thought it was fun.
And I made like an Angel Fire site and a GeoCity site.
That's awesome.
Yeah, like HTML sites.
And I thought I was so cool because I'd have my own website and I'd show my friends
and then my friends had their own websites and then they'd make their own websites. And then,
you know, it was like, when you get bored of AIM, you'd start making websites,
which I'm kind of sad that I don't know how that exists in any form today. Like if you wanted to
make your own HTML CSS, I guess you maybe like spiff up your MySpace page.
I don't know what the...
Maybe Google Sites.
That's probably the closest thing we have nowadays
because GeoCities is gone.
Kids today.
That's true, yeah.
MySpace pages.
As a father of two...
Oh, what was that? Sorry.
As a father of two,
hopefully I've got two girls
that might fall on your footsteps.
We'll see.
My four-year-old, my oldest,
has an old hand-me-down MacBook
that I was so proud the other day
she came in and asked me,
did we just lose internet?
Did you lose your Wi-Fi connection?
Exactly.
Oh, funny.
Yeah.
You know, I think part of it
is just encouraging creativity and exploration.
You know, we poke around at computers all day and aren't afraid they're going to break.
And I think that's a really valuable concept, you know, the idea that you can play around with something and really sort of push its limits.
So we're at the point in the call where we ask what's on your open source radar.
So we want to know what's cool in open source out there for you that you're just dying to play with.
Open source.
I recently played with Node.js, building some sites, server-side JavaScript.
It's kind of interesting.
Both the concept of server-side JavaScript and event-driven programming,
which I hadn't really done a lot of before.
You don't know it, but you just kept the streak alive.
I think that's 10 or 11 straight episodes.
Yeah.
Yes!
I think it's since episode four.
Awesome.
Well, it's sort of been like the most recent big project
to sort of come out,
so it doesn't surprise me too much.
Um,
I'm trying to think of anything.
There's a lot of stuff going on out there too,
with that.
We just,
uh,
we just got introduced to how to node.org.
You want to check that out?
Um,
two fellow listeners of the change log.
I can never pronounce her name right,
man,
but if you,
if you've got it,
is it Mikkel?
Yes.
And Tim Caswell,
Tim Caswell. So they run this, they actually you've got it. Is it Mikel? Yes, and Tim Caswell? Tim Caswell. So they run
this, they actually run this
open blog, and what I mean by open blogging
and if you can read this
other blog post, we'll probably send you a link to, but
they essentially just
wrote this blogging engine
in Node, and they put it on
GitHub, it's open source, so if you want to write an
article, you just fork it,
write your article, and send them a pull request.
Interesting.
That's kind of crazy.
And then a good friend of ours and fellow listener of the changelog and I guess fellow designer, he's more of a SaaS and front-end kind of guy and works a lot at Compass.
If you play in those worlds, I'm not sure if you touch that much in your projects. But he wrote a recent article about kind of open blogging in general, just taking the concept of a blog as source code, like Octopress or Jekyll or Staticmatic or something like that and sort of opening up the doors to anyone.
Just fork it, write an article, and request.
Yeah, I'm not a lover
of static blogs.
I like the idea of
guest authors and contributing posts, but I
sort of feel like
database-based
blog posts were sort of...
This is going to get me
in so much trouble, but I'm kind of a sucker
for databases, despite the new trend.
What's your favorite CMS?
Because Adam and I are kicking around some ideas, and we'd love to hear your thoughts on the subject.
You know, that's tough.
It sort of depends on what you're looking to do with it.
Well, I guess at Six Apart, you have to say that.
Google Type?
I haven't looked at Google Type much at all.
But TypePad actually is great for blogging, and I would recommend it.
I mean, I switched my blog over to TypePad about six months after I started working at Six Apart.
But part of the reason I did was I had been working on it for a while, and I had been using I had been using it, uh, to test things for,
I wasn't actually working on type head at the time, but I had been playing around with it.
And what I realized is like, why am I hosting my own blog? Like I have so many other projects that
I work on. The last thing I want to do, and I was using WordPress at the time. The last thing I want
to do is upgrade WordPress. That's like the last way that I want to spend my weekend. So I was like,
I'm just going to switch to a hosted blog and TypePad's there and it was great.
I know that makes me not the best
engineer, but sometimes you have to pick and choose which things
you really want to spend your time hacking on in your weekends.
So what is it with the database? What do you miss if you go static?
What is it that ties you back to the database?
The ability to easily edit posts, I guess, from like a UI.
Like I'm someone who just wants to, when I'm coding, I'm coding.
When I'm blogging, I'm blogging.
I don't want to like go into my own blogging application and notice a bug
and then want to fix that when really I should be writing a blog post, you know.
Ah, I know. So.
Ah, I see.
Okay.
Yeah.
So the thing with us, the reason why we were looking at the concept was because I use WordPress to publish this website for the Web 2.0 show,
which is another podcast I run.
And so I use WordPress.
So I tend to just write all my posts in TextMate and save the file locally.
And it might be in HTML or whatever I'm writing it in.
Then I copy and I paste into WordPress.
I don't actually do a lot of drafting inside the UI itself.
Do you write them in HTML?
Do you write your blog posts in HTML?
I think WordPress actually uses out-of-the-box WordPress.
I'm pretty sure it just supports HTML in there.
So that's the only real option
you have. I love Markdown
Markdown's probably my favorite. I like
Markdown too but I think that it requires
a plugin and I've just been lazy. I just didn't
put a plugin.
You know I write HTML so fast that I
almost prefer to just do everything
in HTML. Speaking of HTML
have you played much with Haml at all?
No actually I have
not, and so I prefer to stay
out of that argument.
Anything else on your radar?
Oh, anything else? Oh,
geez, you guys caught me unprepared. I would have prepared
a list of stuff. Anything in the NoSQL
space got you excited? And JavaScript on the server
is big, so is NoSQL right now. You know,
I've tried almost every NoSQL option out there and i can't say everyone but i've used uh
coach db mongo and redis and every time i'm just crying to get back to sequel um for some you know
i'm one of these people that i like the niceties. You know, I like the stuff that's been added on. I feel like it's such a new space that the tools really aren't quite there yet for everything that you want to do.
Anyways, that's horrible.
It's going to get me in so much trouble.
Everyone's entitled to their own opinion, of course, right?
Yeah, definitely, definitely.
It's the first time I've really shared my horrible opinions on NoSQL.
But, I mean, it's an exciting space.
I mean, for BaconFile, BaconFile uses CouchDB as the main storage engine, which is good and bad.
It's great because it works really well for BaconFile, the concept of documents,
because it literally is documents that you're storing, even though it's not quite the same type of document.
But you're storing a bunch of metadata about one object.
So you really are, it sort of fits the paradigm well.
And with Hurl, we used Redis, which sort of worked well because we had very small amount of information to store and very you know very
specific so i don't know they have their place and i'll keep trying them out but i'm not quite
maybe i'm just not in love with one yet so what was that we talked about last night uh when it
was react react react there you go i pronounced it incorrectly every time it's spelled r-i-a-k right
r-i-a-k yeah and so that's like an open source and a commercial version of
a NoSQL type of solution.
Have you played with that one?
No, I have not. Wow. I'm surprised.
There's lots of, yeah.
Yeah, no, it looks pretty cool.
Well, you just have to be a better listener of the changelog.
You'd be on the up and up if you'd like to be on open source.
I mean, it moves fast.
We hope you keep up.
Yeah, you're right.
You're totally right.
I should keep up a little bit better.
Vince chuckled at my plug, my shameless plug of our tagline.
Our tagline is open source moves fast.
Keep up.
It is very true.
And I hate to admit that I fall behind a little bit sometimes.
But what I sort of like to do is I'm very much like a product person.
I can't really just play around with the latest technology without building something.
So that's my horrible vice is I love to build projects.
And in that process, I end up using new technologies, but I'm not one to go seek them out and play with them necessarily without strong reason.
Well, it was actually quite a pleasure to sit down and chat with you.
You have such a deep past, and like you said, you've gone from the startup space to working at Sixpart and doing all the cool stuff you guys are doing there.
So you've kind of run the full gamut.
You've worked with Kevin Rose.
You've worked with Daniel Berger.
You've been to the hot parties,
and you've been behind the scenes too.
So it's really cool to have the chance
to have this chat with you.
We appreciate you coming on the show.
Yeah, thanks so much for having me, you guys.
I know I'm not the typical open source project
developer, but
I really love
some of the new projects that are coming out, and I'm
excited to find out more, so I guess I'll have to keep up
with you guys a little better. Yeah, for sure.
Yeah, thanks.
No problem.
Thank you for listening to this edition of The Change Log.
Point your browser to tail.thechangelog.com to find out what's going on right now in open source.
Also, be sure to head to github.com forward slash explore to catch up on trending and feature repos,
as well as the latest episodes of The Change Log. Outro Music