Archive for October, 2005

Zend/PHP Conference

In the conclusion to my month-long series of local conferences and speaking engagements, today’s the first day of the Zend/PHP Conference.

I’ll be heading down in the afternoon for a little while, and then coming back again from 6-8 for the opening night reception. I’ll also be there parts of Thursday — I can’t miss Empowering eBay Research with PHP & Web Services — and I’ll try to sneak by on Friday morning.

If you want to hook up, let me know. I will try and be at the eBay booth when the exhibit hall is open, but we’re running a staff rotation system, so it’s best to schedule something.

How eBay Uses Metadata to Enhance Its Web Services

Alan Lewis has a great article up on on embedding meta-data inside WSDL files.

Since we rev our Web services API every two weeks, we run into versioning problems that aren’t well covered by existing practices. For example, we define a whole set of complexTypes, but those types can morph overtime and we want to maintain backwards compatibility whenever possible. Or, a piece of data may be mandatory in one call, but optional in another.

Seeking a standards-based solution, our documentation team turned to the appInfo element defined as part of XML Schema. It’s quite a nice idea, and also allows us to auto-generate reference documentation from the WSDL file itself. We’d love for other companies who encounter a similar problem to take a similar approach, so that we can pool resources.

If you’re interested, check out Alan’s piece.

How to get your conference proposal accepted

There’s been a little discussion lately on how to get more female speakers at technical conferences. This post is more aimed at new speakers in general than female speakers in particular, but I think it applies pretty well to both topics.

First of all, my tech conference experience is pretty complete: I attend shows as a participant, I speak at shows, I select sessions for shows, I exhibit at shows, and I run a show. Sometimes I will do multiple parts, such as speak and exhibit, but not the others. I’ve even selected sessions for a show that I never attended.

I actually speak at a lot of shows because it’s my job. In the past two weeks, I spoke at CTIA and Web 2.0. In the next two weeks, I will speak at the SD Forum Etech SIG, 4D Summit, and Zend/PHP Conference. Later this year, I’ll be speaking at ApacheCon, and a few more places that I still need to line up.

I also chaired the PHP track at OSCON and was on the planning committee for the Zend/PHP conference. On top of that, I run the evangelism team for the eBay Developers Program, and we put on a three day conference every June, with 4 tracks running in parallel. Our eBay Developers Conference gets bigger every year.

Okay, enough of all that shit. Let’s just say I think I have a pretty good perspective from all sides on this issue, and I agree with Kathy 100%.

When I’m putting together a schedule, I want a wide range of people and topics. Sure, I need some A-list celebs, but I also want some new blood. I’m going to do my best to be proactive and reach out to the people I want to talk, but that’s only because I want a great show. If you can help me make that happen, then I want you to participate.

I do my best to make people feel comfortable and even go so far as to tell them the decision criteria and what I am and am not looking for. I’m not sure if people listen, but I can’t help that.

I strongly encourage people new to speaking circuit to submit multiple proposals because sometimes I don’t select a talk because of anything bad with the speaker or the proposal, but because I have a much better speaker for that position. If you want to talk about, for example, “What’s new in PHP,” but I can get Rasmus to give that talk, then I’m going to pick Rasmus 100% of the time. You might know everything there is about what’s new in PHP, but that’s not the point.

However, if you also submit “PHP and Web Services,” then there’s still a chance you can get selected for that slot. Unless, of course, I get a proposal from someone who wrote the SOAP extension.

Therefore, the more quality topics you offer up, the better chance you have.

I had never heard of Neil Green before he submitted talks to the Zend Conference, yet he ended up getting a slot on “Elements of an Enterprise PHP Framework.” Neil submitted at least three different proposals, and also indicated that he was open to similar topics, if they turned out to be a better fit. Well, we decided we really wanted a MVC-style talk, and his proposals looked the best, so we reached out and came up with a topic that worked for everybody.

One common problem is that people often submit really specific talks about topics nobody cares about. For example, there are too many database abstraction layers already for PHP. Yours may be better, but if you don’t have a community of people using it to prove that to me, I’m never going to select it over a talk on PDO, PEAR::DB, ADODB, or even MDB. You need to give me a topic that when other people read about it in the program, they say one of a few things:

  1. That’s interesting, and I want to learn more about that for personal enrichment. (For me at OSCON, this was Brian Aker’s talk on the open source PBX, Asterisk.)
  2. That’s interesting, and I want to learn more to share with others or for work. (For me at OSCON, this was Jason Hunter’s talk on XQuery.)
  3. That’s interesting, and I want to learn more to tell my boss I learned more, so he’ll let me come back to another conference. (For me at OSCON, this was a number of talks on Firefox extensions, including XUL and Greasemonkey.)

That’s why I always try and schedule talks on security and scalability. They’ll great for selling tickets and justifying the trip back home. (Oddly enough, none of these talks was on PHP.)

Another word of advice. I know you get more money when you give a tutorial, but don’t waste your time submitting them unless you’re sure somebody on the conference committee knows who you are and will agree that you’re either the expert on the topic, or a good speaker who will give a strong three hour talk.

I have very few tutorial slots. People pay lots of money to attend those sessions. It’s really hard to put together three hours worth of material, and it’s even harder to deliver it well. I can’t afford to waste a spot with a bozo.

Now, you might be great, but if I don’t know for certain, I’m far more risk adverse when it comes to selecting tutorials. Also, since tutorials do cost more, I like to schedule more celebrity-style speakers in those slots, since it helps with the marketing. (They have to be good speakers, of course. There’s nothing lower than sitting through three hours of your idol giving the world’s worst talk.)

I don’t know if this will end up getting more women to speak at shows, but I hope it at least stimulates someone beyond the usual suspects to submit proposals the next time their favorite show comes around.

Party like it’s 1999

With all the recent purchases and the Web 2.0 conference, I’ve read a lot about how 2005 is shaping up to be the second coming of 1999.

I was skeptical, but I just had the largest 1999 moment since, well, early 2000. It begins by me admitting that I was reading an article in Wired Magazine, but ends when I tell you they served me a banner ad for Tripod.

Then again, if AOL just paid $25 million for Weblogs, Inc., Lycos’s purchase of Tripod, which at the time was the 8th largest site on the Net, for $58 million was a total bargain.

Can you believe Tripod was the 8th largest site on the Net in 1998? And how did Bo Peabody put out a book last Christmas without me knowing?

Blue Screen of Death

One advantage of having a corporate IT staff is that when your laptop starts giving you the blue screen of death, you can file a trouble ticket and somebody comes by, copies the data off your machine, replaces your hard drive, and returns it to you. If you’re lucky, they might even install the hardware upgrades and new software you request.

Of course, I would never be using Windows if I wasn’t at eBay, but there’s crappy sys admin stuff for Mac OS X and Linux, too. I hate being a sys admin. It’s my least favorite part of using my computer.

ning! double ning!

A very good friend of mine has been working at 24 Hour Laundry for many months now. Unfortunately, I was unable to convince him to share any information about his top secret project. Well, he did say it was “quite interesting,” but that didn’t get me very far.

Therefore, I was quite excited to see Russ blog about the launch of Now I could finally see what all the excitement was about. Well, I must agree with David. It certainly is quite interesting.

To quote from the faq: “Ning is a free online service… for people to build and run social applications.” Think of it as a mashup between Jot and, well, something else. Jot is Joe Kraus’s application wiki platform, and something else is the union of flickr + + friendster + Google Maps.

I wanted to blog about it immediately; however, I really didn’t have anything interesting to say. Not that it’s stopped me before, but still. As a rule, I feel that in order to really understand something, you need to get your hands dirty using it. And in this case, I couldn’t just explore the example sites, I actually had to figure out how to build an application on the ning platform.

Fortunately, I know PHP 5 and so does ning.

I did the simplest thing I could possibly do that was still of value to me. I cloned the sample restaurant rating application; extended it to add two fields: airport code and location; and created the “Airport Restaurant Review” guide.

At first, I ran into a little bit of a problem understanding that I had to use the “my” namespace. Data went in fine, but it didn’t come out. Exception city, sweetheart. Sigh.

I must admit, I hate frameworks because I never have any idea how to go about debugging them.

However, I left the application alone for a day and it managed to debug itself. Well, not really, but after I came back it only took me five minutes to give in and actually read the docs to guess the proper fix. All better now.

Speaking of developer docs, I can tell David has really been cranking away on them. There’s *a lot* of material there: tutorials, API references, and full-featured sample applications.

This Airport Restaurant Review guide is actually something I’ve wanted to write for a over a year now, and even managed to convince someone to do for me, but we never launched it. Now it’s up and running in less than an hour of programming time.

Pretty cool.

My next task is to refactor the application to create a separate airport class instead merely adding properties to an AirportRestaurant class. Unfortunately, I’m not quite sure how to migrate the underlying data in the store, so I’m kinda stuck. The key to ning is the ever-evolving nature of the applications, so I’m sure I’m missing something here.

But while the code is necessary part of a social application, it’s not sufficient. You need users and data and a community of people to care about what’s happening inside your application. That’s what makes it social.

In other words, a photo sharing application with 200 photos isn’t flickr, even if it looks the same and has feature parity. In fact, your photo has less value outside of flickr than in, even though it’s the same photo with the same set of tags.

So I guess one of the questions on my mind is “is there room for more than one flickr on the Web?”

Some types of sites lend themselves to a “the rich get richer” design: marketplaces (eBay), payments (PayPal), communications (Skype), IM (AIM, Y! Messenger, ICQ).

Others do not: search (Y!, Google, MSN, Ask), e-mail (Y!, Gmail, Hotmail, ISPs), content (Y!, Google News, MSNBC, blogs, newspapers, etc.)

Do social networks fall into the first category? Or are people perfectly happy forming their own little social cliques? Dunno.

I suspect we’ll end up with something similar to IM. There are multiple good-sized networks that have a clear advantage due to their size, but not necessarily a “winner take all” outcome, such as what Microsoft’s done with Windows and Office.

One of the advantages of ning is a shared data store, so people can remix data from other applications into their own. On the face of things, this looks like an excellent way to aggregate data across multiple micro applications into a unified global database of socially created content — exactly what a social network needs to become powerful.

However, you permission to other people’s data is read-only, so I can’t actually propagate my Airport Restaurants reviews back into the main set of core Restaurant reviews.

This leads to data fragmentation, which I think undermines the benefit of a social network.

It’d be great if I could request write access to someone’s data store. If a AirportRestaurant isa Restaurant (or aggregates a Restaurant), then everything should map correctly.

This certainly complicates matters — if you think refactoring was hard before, how do you coordinate it now? — but adds a great deal of value from my point of view.

I’m pretty sure ning will continue to evolve, and I’m quite interested to see where this quite interesting platform goes in the next few months.

The business case for mashups

I’m speaking at Web 2.0 today on Mash-ups 2.0: Where’s the Business Model?. It should be fun.

BTW, Web 2.0 is jam packed with people. Sessions are SRO. This is the second conference I went to in the past month (Microsoft PDC being the other) that sold out. I’m hoping this is a sign that the tech industry is on an upswing.

PS: I promise I will blog about something other than when I’m speaking real soon. I have some thoughts surrounding Web services and mashups that I’m going to try out in the panel. Nothing brilliant, but some thoughts I had from working on a little application. If I don’t get shouted down, I’m going to put them out there.