All Posts Tagged With: "php"

My 30 seconds of ZendCon Fame

As part of ZendCon, Zend interviewed a number of their friends and partners for a short video montage. They played it during the first day opening keynote, which I had to miss, unfortunately.

Happily, they’ve placed it online. Now you can watch my 30 seconds of fame. Don’t worry, I am first out of the gate, but stick around — fellow PayPal Evangelist Dave Nielsen is second, and Yahoo! buddy Michael “new dad” Radwin is third.

Special thanks to Brian “VS2K5” Goldfarb for his kind e-mail comments about the clip.

PHP 5 SOAP Hacking

My new favorite PHP 5 SOAP feature is the classmap option. By default, ext/soap converts complexTypes into stdClass objects. However, that’s only useful for reading the data.

Using the classmap option, you can specify how ext/soap should map complexTypes to PHP classes. This allows me to write methods to implement iterators and pretty-printing of objects.

I hope I can construct a series of model classes (similar to what Services_Ebay), so if you have an User object from populated from the output of, say, GetUser, you’ll be able to call a GetFeedback method on that object, and have it make a GetFeedback API call and fill in the necessary data based on what’s already stored within the object as properties.

Ideally, I’ll be able to do some magic __call() overloading, so I don’t even need to explicitly define these methods, but I can just write one magic base class. I’m not sure if that will work, but it’s my weekend hacking project.

Also, while I’m at it, I’m having problems getting the compression option to work. I get a nasty SoapClient::__doRequest(): SSL: fatal protocol error when I try. It looks as if zlib is enabled, so I don’t know if SSL and Gzip don’t play nicely together, or if my SOAP server is busted, or what. I’ll work on debugging this, but if anyone else has something to share, I’d be happy to hear it.

ZendCon Days 3 and 4

Yesterday was a good day at ZendCon. I arrived in the morning and sat through Michael’s excellent talk on Yahoo! and PHP. If you’re into PHP or large-scale web site architecture, it’s worth your time to read the slides.

Later, I introduced the “Empowering eBay Research with PHP & Web Services” session. Andrew Sukow gave a nice overview of all the data mining and analysis tools he’s writing to help eBay sellers and other people learn what’s going on in our marketplace. Lots of data makes for lots of fun. He got a huge Postgresql database. I think he says we send him 6 GB every day, and he’s got 3-4 months worth of back data.

After the show ended, I went to dinner with a number of PHP developers and Microsoft. At my table I had Joyce Park, Cal Henderson, Chris Shiflett, Christian Wenz, a bunch of Microsoft employees, and a few other people who I’m sure I forgot. (Sorry!) It was fun trying to explain to Microsoft that PHP doesn’t have any of those fancy ASP.NET 2.0 features, but actually that’s on purpose. The infamous Sterling “super-pimp” Hughes made a cameo appearance, but I didn’t get a chance to talk to him about street light censors, alas.

This morning, I heard Joyce’s talk, and then sat through Adam Bosworth’s keynote. I was happy he made a bunch of nice eBay mentions. Always good to have someone from outside your company speaking nice about you. After opening up with a more technical first half, Adam moved into “Health.” His claim is that if only we could do some form of healthcare social network or community sharing of data then we might actually be able to save lives. I guess it was more textured then that, but that’s the one sentence gist.

Overall, I think the Zend guys were very happy with their first conference. The attendance was quite strong, and while I didn’t get a chance to go to too many talks, the ones I went to were interesting. I know how tricky it is to arrange all the moving parts of a big show such as this, so I give them hugh credit for pulling it off at this scale.

ZendCon Day 2

I had to head into the office in the morning, so I arrived at ZendCon right after lunch and in time for Marc Andreessen’s keynote talk. The first half was a review of 50 years of computing in 30 minutes.

For me, the key takeaway is that computers are much faster than before. Seems obvious, but I think lots of programmers still have that mainframe mindset where you need to squeeze out every inch of performance, and they don’t consider that sometimes the correct solution is throwing hardware at the problem instead of developer resources.

The idea that sometimes performance is vital, but not as often as you think is something I’ve been trying to sell for a long time.

The second half of the talk was open session for Q&A and the questions were all over the map. People asked about the early days of Netscape all the way to “what’s the next big thing?”. I think the highlight for me was, during a question about the benefit of standards and the Netscape/Microsoft HTML wars, when Marc said (after a reasonable preable about innovation vs compatibility): “when I added the image tag to HTML, the HTML purists got all mad at me, too.”

When we first started Student.Net in the summer of 1995, I do remember a 30 minute conversation about whether it was acceptible to use HTML tables as part of our design. Not because we were CSS presentation zealots, but because we weren’t sure we could count on all browsers supporting tables! Finally, we decided the layout would degrade (somewhat) gracefully, so it was okay.

After that, I skipped out on the Oracle keynote to grab a bite to eat and catch up with Chris and Marcus and the NYPHP gang. I also saw George and Wez.

I only made it to one afternoon session — the one on PHP and Windows. The speaker from Microsoft was actually quite good and interested in using PHP on Windows. It was a good fit, as unlike lots of other conferences with a PHP track (such as OSCON), the audience was actually using PHP on Windows servers. I remember the debate when we chose this talk. We were afraid it would be a lot of .NET/C# spin, but it was totally the opposite, so chalk one up for Microsoft.

I snuck out early from the talk to set up the eBay / PayPal joint Developers Program booth. Dave, Alan, and myself were staffing the booth, with extra-special guest PB.

We had a good turn out. Lots of people interested in eBay and PayPal. Given the business focus of the conference, I wasn’t too surprised, but I was still happy to see it. In particular, I think PayPal’s recent purchase of Verisign’s Payment Gateway Business will be a boon for their Developer Program.

After the Expo Hall closed for the night, Zend threw a (slightly belated) PHP 10th birthday party. PayPal provided the DJs, who were actual PayPal Developers Program employees.

Today looks to be a fun day. I’m going to congratulate Michael on the birth of his son. Another project successfully launched. And later today is my talk. I’m doing the intro and then Andrew from Terapeak/DataUnison is doing the rest.

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.

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 ning.com. 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 + del.icio.us + 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.

Zend/PHP Conference Coming Soon!

I just checked my calendar and was shocked to discover the Zend/PHP Conference is just around the corner — October 18-21.

I’ve been part of a team of people from the PHP community working for months with Zend (including Zeev and Andi) to help put together a great business-focused PHP conference. I’m really excited for this show.

There are lots of great PHP conferences, but this is the only one emphasizing PHP inside large and medium sized business. There’s still great technical content (Wez on PDO, Chris Shiflett on Security, Andrei and Andi on Unicode, George on Building Scalable PHP Applications). However, I’ve already heard those talks before. :)

What I’m going to attend are all the new talks. Such as, John Allspaw from Yahoo! on their LAMP hardware layout, John Roberts from SugarCRM on building a commercial business on top of an open source application, and Jeff Winner from Propel on Managing Development and Operations Together.

Of course, I’m also going to the Empowering eBay Research with PHP and Web Services session. I’m doing the intro, and then quickly getting out of the way for Andrew. He founded Terapeak. Terapeak is providing some amazing data analysis tools that crunch the gadzillion mega-bytes of active and closed listing data to help eBay sellers (among others) determine the state of eBay and the economy. There’s no better way to see buying and selling trends that to look at our data, and Terapeak is all based on PHP.

Come to the show. When I’m not in a session, I’ll be at the eBay/PayPal booth in the exhibit hall, and I’d love to chat.