Alan Lewis

Want Open Source Flash Player? Contribute to Open Source Flex!

It is awesome news that Adobe is Open Sourcing Flex. To me, this is a significant announcement, and I am encouraged that Adobe is moving in the right direction. I hope that they choose to eventually open source all of their core technology and standardize all significant data formats. With the standardization of PDF and the open sourcing of the Actionscript 3 virtual machine (Tamarin) not that long ago, they are much of the way there.

As others have noted, this is not a half-assed open sourcing effort as other companies have tried. That they are using a well-understood open source license (Mozilla) is the most important thing to note. When we (eBay) open sourced our SDKs last year we made sure to only well-understood licenses (CDDL and MIT) so that other companies or developers didn't have to figure out the ins and outs of a brand new license. This was a bit of a pain to educate our legal department on why this was important, although they eventually got it, and now are totally on board.

So what is left to open source? The big thing is clearly the Flash Player. I would guess that their intention is to eventually open source Flash Player. But I'd also guess that they main hang-up may be a litany of patent and intellectual property issues (especially with licensed code). Flex itself was (as I understand it) developed completely by Adobe/Macromedia, and does not incorporate any third party code (that I'm aware of) so it was "easier" to open source. However, I'd also guess (third guess this paragraph) that the open sourcing of Flex is a bit of a trial run for the eventual open sourcing of Flash Player. What issues will come up? How will the community respond? How will this move financially impact us? Will it be a net positive, or a net negative? These are all questions that I can imagine are on the minds of the folks at Adobe.

So, if you want Adobe to open source Flash, contribute to and support the open source Flex project!

Disclaimer: I am an eBay employee and these opinions are mine alone. I should note very clearly that although I am under multiple layers of NDA with Adobe, I have never discussed open sourcing their technology with them, not do I have any inside information on this topic -- I'll tell them the same thing in private that I am on this blog! 

April 26, 2007 in Apollo, Programming, Tech/Web | Permalink | Comments (0) | TrackBack (0)

Developer/Engineer Jobs at eBay

Come be disruptive at eBay -- the Disruptive Innovation team is hiring 3 developers to work on prototyping new ideas. These developers will work closely with me and other members of the Developers Program to develop stuff built on eBay's web services. These are, in my opinion, some of the coolest positions at eBay, because you'll be able to work on lots of different projects, using many different technologies. Here are the links to the "official" job descriptions on eBay's career site (NOTE: THESE LINKS ONLY WORK IN IE -- Our job site is stuck in 1998):

Senior SW Engineer, Innovation (2 hired for this role)

Principle SW Engineer, Innovation

Like all official job descriptions, those should be taken with a grain of salt. Here is my interpretation of what really matters:

  • Be technically proficient -- bredth is more important than depth
  • Have built something of significance, either on your own or in a previous job
  • Work well on a team
  • Be passionate about eBay -- hate it or love it, but don't be indifferent

I'd be happy to discuss the positions with you further. Contact me through the email link on my blog. I'll also be helping the hiring manager recruit for these positions at the 360Flex conference next month in San Jose.

February 19, 2007 in eBay, Programming | Permalink | Comments (0) | TrackBack (0)

Google Contributes Plugin to eBay Community Codebase

Google has open sourced the eBay Watcher plugin for Google Desktop and contributed it to the eBay Community Codebase, eBay's website where developers can collaborate on open source projects. The plugin was contributed under the Apache License, a commercial-friendly open source license. Google engineer Larry Gadea, who developed the plugin, is the owner of the Codebase project.

Now that the project is open sourced, I'm hopeful that other developers will contribute enhancements. One that I'd love to see is to extend the plugin to show not just the eBay watch list, but also the bidding, items one, and items lost lists as well. All of the code is in one javascript file, and it is easy to dig in and understand how it works. I reviewed early versions of the code, and I noticed lots of great stuff that would be helpful to other developers, including duration formatting, good key retrieval code, and a clever trick where by parsing the browser URL the plugin can tell when a new item has been added to the watch list so that it can automatically refresh. To build your own version of the plugin you'll need your own set of production developer keys, so sign up for the eBay Developers Program and then go through the certification process to get started.

March 02, 2006 in eBay, Google, Programming | Permalink | Comments (1) | TrackBack (1)

My New eBay Article on Coding4Fun

An article that I wrote for Coding4Fun (a Microsoft hobbyist programmer website) has just been published:

Building a Custom eBay Watch List Using the SOAP API

In the article I show how to create an ASP.NET page that displays your eBay Watch List. All the data is pulled down using eBay Web services, and you can extend the app to do any sort of wacky manipulation that you want. Getting the data from eBay is really easy -- turns out the most difficult thing is manipulating the "time left" information into something that is user friendly. Go read it, and enjoy!

January 26, 2006 in eBay, Programming | Permalink | Comments (0) | TrackBack (0)

Developing the eBay Toolbar for Firefox

I'm working on the eBay Toolbar for Firefox, an open source project that we are hosting in the eBay Community Codebase. I spent most of the holidays working on it, while most everyone else at work was on vacation. I find that I often get the most work done around the holidays, since there are usually less distractions, and this year was no different.

I'm working on the Javascript and XUL code for the basic features. So far I've completed the Favorites and Buying features and the Watched item alerts. A couple developers from eBay Research Labs have helped me out by developing an XPCOM component that handles the basic authentication and communication layer. Things are shaping up nicely, and I hope to have a first public beta some time in the next couple months. Here is a screenshot of the Alerts menu -- all the data shown in the toolbar is retrieved using eBay Web Services:

Ebaytoolbarforfirefoxscreenshot1_1

I'm new to Javascript development, and as a Java developer it has taken some getting used to. I still haven't found an intelligent Javascript editor like is available with IntelliJ for Java development. Danny Goodman's Javascript Bible has been a great resource, and I've started reading Ajax in Action, which is pretty good so far. I'm using Textpad for my editor and the great Extension Developer extension for debugging. By following the instructions on Mozillazine I was able to set up my development environment for rapid iterations. Now if only I could find a good Javascript IDE that gave me code complete...

If you are a Javascript, XUL, or XPCOM guru, I'd welcome your participation in the project. Drop me a line or request membership as a "Project Observer" for the project in the Community Codebase.

January 06, 2006 in eBay, Programming, Tech/Web | Permalink | Comments (9) | TrackBack (0)

2 Year Release Cycle? How About 2 Week Release Cycle

I thought it was funny/interesting how Microsoft is promising a two year release cycle for SQL Server, not because I think they can't do it, but because in my experience a two year release cycle is forever from the perspective of those developing a product.

The place where I work right now is on a two week release cycle. Two weeks! New code is rolled out to the eBay US site every two weeks (releases are called "trains" in eBay parlance, and a whole gaggle of train-related metaphors proliferates throughout the company because of this). In the off weeks, code that rolled out to the main site two trains ago is rolled out to all the international sites -- the delay allows time for the pages to be translated into all the other languages. Upon hearing about this crazy release cycle, many developers are aghast, and some run away in fear, never to be heard from again. But now that I've been around at eBay for a while, it feels like the right thing to do given the business and technical situations. Of course for any given feature there is a longer release cycle to provide enough time for requirements gathering, coding, testing, documentation, etc..., and the time allocated to develop a feature is almost completely decoupled from the release cycle. There is a process in place to figure out how much time is needed, and then when the feature is ready to be released, you know that you can release it almost immediately and everyone can move on to the next thing.

At my last company, I experienced both the good and the bad of release cycles in a more traditional software development environment. The Blaze Advisor development cycle was modeled around a quarterly release cycle. The company management at the time when Blaze Software was an independent, public company thought it important to have a release at least once a quarter to boost quarterly earnings and keep investors excited about the prospects for the product. The way this was done (in theory, at least) was to dedicate the "Engine/Server" team to one release while the "IDE/Development Tools" team worked on the subsequent release. In actuality, there turned out to be contributions from both teams in most releases, but it did enforce the idea that we should always be working on multiple releases at the same time. The point at which this really didn't work was with "the big release" which was first called version 4.0, then version 4.5, then 5.0, then finally 6.0. This release didn't fit the usual model because it required a rewrite of the underlying repository structure - a piece that affected every part of the product. The way that this release was managed was that some of the developers started working on the underlying code four years before the eventual release. Bits and pieces made their way into the product in the intervening releases, while other parts were kept in a separate branch that couldn't yet be merged into the main product. Some features that were initially designed to be part of the big release were pulled in to respond to market pressures, and to lighten the feature set of the big release itself. There were more than half a dozen significant releases of the product while work was being done on 6.0. If the decision had been made to stop work on the product and get 6.0 out the door as soon as possible, the product would have either been eaten alive by the competition, or, more likely, it would not have survived the internal product politics that occurred with the two mergers that happened in the meantime.

So, what have I learned from all of this? Picking the best software release cycle matters. Props to Microsoft on committing to change -- hope it works out for your developers and your users.

November 17, 2005 in Business Rules, eBay, Programming | Permalink | Comments (0) | TrackBack (0)

My Web Services Metadata Article on xml.com

My article on using metadata to simply documenting Web services has been published on xml.com.  As I say in the article, we're looking for feedback on this use of the appinfo tag, and on the tool that I wrote in the Community Codebase, so drop me a line if you're interestedt.

Update: Fixed the link to the article

October 02, 2005 in eBay, Programming | Permalink | Comments (0) | TrackBack (0)

Hillsborough has a REST API?

I was on my way up 280 yesterday, driving to San Francisco for a meeting. I was thinking about other cool uses for the eBay REST API, having just seen the cool Easy eBay Dashboard plug-in a few days ago (which used our REST API). As I was driving I saw a sign that said:

REST AREA

which at first glance looked to me like

REST API

Who knew the residents of Hillsborough were so tech savvy?

August 17, 2005 in Programming | Permalink | Comments (0) | TrackBack (0)

Trying Out AddToWatchList

A ton of features are available through eBay Web Services, and more are added every two weeks. Right now much of the focus is on the new schema and the most eagerly awaited new feature: Want It Now APIs. My favorite recently added feature is the new AddToWatchList call. This call allows you to add one or more items to your My eBay watch list. Here is an example call in the New XML API format:

<?xml version="1.0" encoding="utf-8"?>
<AddToWatchListRequest xmlns="urn:ebay:apis:eBLBaseComponents">
  <RequesterCredentials>
    <eBayAuthToken>Your_Token_Goes_Here</eBayAuthToken>
  </RequesterCredentials>
  <ItemID>6549327372</ItemID>
</AddToWatchListRequest>

Thats it! (Here is a link to the item I added to my watch list, in case you care). One cool thing is that you can include multiple ItemIDs in one call, so you can add multiple items to your watch list all at once. The call returns a count of the number of items in your list, which is nice. There are also two corresponding calls to use: RemoveFromWatchList and SetUserNotes (which lets you set the yellow sticky notes you can attach to items tracked in My eBay). For more information on the call, search for "AddToWatchList" in the documentation.

One cool use of this call I'd like to see is a subscription service that adds one cool listing to my watch list per day, based on criteria that I specify. I would also like to add this call to the eBay - TiVo application that is hosted on the eBay Community Codebase. Right now that app lets you search for and purchase an item, but it would be cool for it to also let you also add items to your watch list in case you aren't quite ready to purchase. I'm busy for the next month or two working on a super secret project, but if someone wants to step up to the plate and update the TiVo app with this functionality (the app is open source, after all), you will be a hero.

August 05, 2005 in eBay, Programming | Permalink | Comments (1) | TrackBack (0)

eBay SDK for Windows 3.0 Released

For all you Windows/.NET aficionados out there: we have just released the final 3.0 version of the eBay SDK for Windows. I blogged about the beta release a few months ago. Using this SDK is the easiest way to get started coding eBay apps using .NET languages like C# and VB.NET. The most significant thing about this version is that it is based on the eBay SOAP API. It also picks up the most recent calls that have been added to the API, such as my favorite, the AddToWatchList call.

If you are using the 2.6 version of the SDK for Windows or earlier, you should migrate to this version of the SDK (or pick up the SOAP API or New XML API instead) well in advance of June 1, 2006, which is the date the old version of the SDK for Windows  and the Legacy XML API on which it is based will no longer function.

For those new to eBay development, I recommend reading the Development Using the SDK for Windows 3.0 presentation that Amish Patel gave at the eBay Developers Conference.

July 19, 2005 in eBay, Programming | Permalink | Comments (0) | TrackBack (0)

»
Subscribe to this blog's feed
View Alan Lewis's profile on LinkedIn
See how we're connected

Recent Posts

  • Alan Lewis Has Joined Auctiva
  • Mozilla Weave -- Towards a User-Centric Internet
  • The eBay Article You Must Read
  • Mmmm... Chocolate Jobs
  • Alan Lewis Has Left eBay and Joined Ning
  • Blogging from my phone
  • eBay iPhone App Shown at WWDC
  • eBay Desktop 1.0 is out. Whew.
  • I'm Supporting Barack Obama
  • Adobe - Go All In on Open Source!

Categories

  • AIR
  • Apollo
  • Apple
  • Auctiva
  • Business Rules
  • Desktop
  • eBay
  • eBay Desktop
  • Food
  • Google
  • Hardware
  • Life
  • Likes
  • mashupcamp
  • Microsoft
  • MIX06
  • Mobile
  • MySpace
  • Ning
  • Programming
  • San Dimas
  • Skype
  • Software
  • Tech/Web
  • Weblogs
  • Yahoo

People

  • Rolf Skyberg
  • Bjorn Behrendt
  • Seán Crotty
  • Rogelio Choy
  • Delyn Simons
  • Julia Wilkinson
  • Greg Isaacs
  • Adam Trachtenberg

---

Blog powered by TypePad
Member since 01/2005