advertisement

January 2003 Archives

O´Reilly´s Digital Media Blogs have been expanded and are now located at a new home. To find our new blogs, please visit:
Damien Stolarz

AddThis Social Bookmark Button

Related link: http://www.ietf.org/internet-drafts/draft-ietf-midcom-stun-05.txt

An IETF standard for NAT traversal - excellent.

Damien Stolarz

AddThis Social Bookmark Button

Related link: http://open-content.net/specs/

P2P based on HTTP - this is fantastic.

Robert Kaye

AddThis Social Bookmark Button

Related link: http://www.xiph.org/ogg/flac.html

At first, the Xiph Foundation brought us Ogg/Vorbis, the patent free, higher quality and higher compression ratio alternative to MP3. Later on, the Speex and Theora codecs (for speech and video, respectively) were added to the offering, and now FLAC the Free Lossless Audio Codec is the latest codec to join the foundation.

Unlike the general audio codec Vorbis, FLAC is lossless to make even the most serious audiophiles happy. However, lossless compression comes at a price — FLAC’s compression ratios are around 50%, which is much lower than Vorbis’ typical compression ratio.

I have to applaud the efforts of the Xiph foundation and all the contributing hackers and testers who make it all happen. The Xiph Foundation is a perfect example of how the Open Source world can band together to take on large multinational companies. In todays perilous environment of patents and draconian license agreements the work of the Xiph foundation stands out. All of their projects are patent free, which is an amazing feat considering that the field of compression is littered with patents.

And even if their codecs are not completely patent free, such as portions of the Theora codec, they have stepped up to the plate to ensure that the community can use it freely. The Theora FAQ states:

A: Yes, some portions of the vp3 codec are covered by patents. However, the Xiph.org Foundation has negotiated an irrevocable free license to the vp3 codec for any purpose imaginable on behalf of the public. It is legal to use vp3 in any way you see fit (unless, of course, you’re doing something illegal with it in your particular jurisdiction). You are free to download vp3, use it free of charge, implement it in a for-sale product, implement it in a free product, make changes to the source and distribute those changes, or print the source code out and wallpaper your spare room with it.

If you think that the Xiph Foundation is doing a good job, please head over to their donation page and let your appreciatin be known!

What are some of the other great unsung open source foundations out there?

Robert Kaye

AddThis Social Bookmark Button

Related link: http://www.echo.com/technology/index.html

Today’s unveiling of Echo Networks brings about a new online music venture formed by Best Buy, Tower Records, the Virgin Entertainment, Wherehouse Entertainment, Hastings Entertainment and Trans World Entertainment. Echo plans to license music from the recording industry and offer it to the Internet community, along with a broad range of real-time community features tightly integrated with the listening experience. Their web site states:

Echo will seek to unify the industry through a standard and open platform for the delivery of digital entertainment.

What exactly can we expect from an open platform? Does that mean that they will offer Ogg/Vorbis downloads? Ogg/Vorbis is just about the only truly free codec that is available — everything else is encumbered by patents or other crazy royalty schemes.

Even classic MP3 doesn’t fit this anymore since FHG/Thomson have started collecting royalties. So, Echo, if you are listening, please make your content available in Ogg/Vorbis format! I can’t think of a better way to get geeks to buy your music.

I’m dreaming too much again, aren’t I?

Bill Venners

AddThis Social Bookmark Button

Related link: http://www.artima.com/intv/speed.html

Artima.com has published Part III of an interview with Python creator Guido van Rossum, in which he talks about about the source of Python’s famed programmer productivity and the joys of exploring new territory with code.

Here’s an excerpt:

I like programming problems where you think, “There has to be something really interesting over there, but I can’t see it clearly.” All you can do is move one step over there, with a small bit of code, and start exploring to see it more clearly. And maybe it actually wasn’t there, it was over here. Or it had a different shape than you thought initially. Maybe it wasn’t interesting at all, and you didn’t waste a lot of time.

The danger of planning is that you plan for the contingencies you know about, but by definition you don’t plan for things you don’t know you’ll encounter. So when you do encounter an unexpected event in your programming endeavor, you have to fix many interfaces and change multiple method signatures. If you’ve already committed to your original plan and that’s no longer where you’re going, then you have a problem.

I’m not particularly worried by the fact that people say you can prototype more easily in Python, but eventually the Java version makes it easier to build a robust large system. You can prototype in Python. Once you’ve explored the space more, you can do the planning and design that the Java version requires. If you start writing in Java knowing as little as you did when you started writing the Python version, you’ll waste way more time exploring than actually building the system you’ll eventually build.

Bill Venners

AddThis Social Bookmark Button

Related link: http://www.artima.com/suiterunner/why.html

Artima.com has published an article by Bill Venners, Matt Gerrans, and Frank Sommers in which they explain why JUnit didn’t solve their particular testing problems, and how they created Artima SuiteRunner, a free, open source test toolkit and JUnit runner.

Here’s an excerpt:

Because JUnit links the concepts of running and reporting in the notion of a runner, we made Artima SuiteRunner a JUnit runner. You can use Artima SuiteRunner to run and report results of JUnit tests, just like you can use JUnit’s text or Swing runners. The three main advantages of using SuiteRunner to run your JUnit tests are reporters, runpaths, and recipe files:

  • A reporter collects and presents test results in a highly customizable way to the user. Examples are text, graphics, Web pages, database output, CSV files, XML, and email alerts.
  • A runpath lets you load classes for your tests from anywhere with an easy- to-configure list of filenames, directory paths, and/or URLs.
  • A recipe file captures and saves in a file the run properties of a particular suite of tests for easy reuse.
Lucas Gonze

AddThis Social Bookmark Button

This afternoon I walked into a record store with the urge to spend and found several things I wanted, but left without buying. All the things I wanted were $19. At that price I want a premium product, which CDs aren’t.

MP3 is by far my preferred format, so if I bought these CDs I’d have had to rip them. That means putting them in a stack of several hundred others waiting to be ripped, then eventually loading them into the computer, maybe typing in the titles, and waiting for the rip to finish. I didn’t buy because I realized that paying premium prices for a do-it-yourself product doesn’t make sense.

MP3s are so much better than CDs that you can never go back. With MP3s you don’t have to hunt around for physical media. A computer GUI (though not my Archos MP3 player) is easier to use and has more features than a CD UI, particularly for setting up playlists. Skinnable MP3 players look cooler than hardware CD players. With MP3s you don’t have to load and unload the CD player, and you don’t have stacks of jewel boxes and loose disks accreting by the stereo. An MP3 player is tiny compared to the CD jukebox and 500 disks that it replaces — you don’t have to haul boxes of MP3s every time you move. In comparison to MP3s, CDs just suck.

I don’t want CDs and the labels won’t sell me MP3s, so as a result I’m not buying anything at all.

In the eighties the labels embraced CDs and were resuscitated by a huge wave of demand for the new media; what’s happening now would have happened then if the labels had been too scared to leave vinyl behind.

Robert Kaye

AddThis Social Bookmark Button

One of the talkbacks from my first weblog entry last week talked about Wifi Caravan:

The Wifi Caravan is a mobile wireless network comprised of participating vehicles within range of each other using 802.11 networking equipment. A variety of local resources will be present on the network and forwarding to the Internet will be handled transparently when we have an established uplink.

Quite an interesting idea indeed — I think a lot of interesting things will come about from mobile WiFi networks of people stuck in traffic together.

My friend Kevin Criqi and I have been thinking about building ourselves MP3 jukeboxes for our Audi 4A/VW Beetle cars. These laptop based mobile jukeboxes would pretend to be massive CD changers and interface with the existing stereo head units. However, instead of selecting individual CDs the driver would select playlists or automatic playlist generators.

When the question came up on how we would get music onto the laptop in the car, the natural answer was WiFi. Think about pulling into your driveway when your car’s WiFi card realizes that it is home (it finds its home network SSID) and automatically synchronizes with the home jukebox to download whatever music needs to be passed down to the car. Once the sync is done, the laptop in the car shuts down and goes to sleep.

Once we realized that our cars would be capable of being mobile WiFi nodes, we started coming up with all kinds of other crazy ideas for mobile file sharing. Mobile Wifi nodes could automatically form Rendezvous style ad-hoc networks and announce their presence by broadcasting a small audio file to identify the car that just joined the network. Imagine:

… music is playing …
[beep]
John in the white Ford Bronco has just joined the
network
[beep]
… more music …

Once the networks are connected, what are you going to do? Bust out the laptop and start a file sharing client to download what John has in his mobile jukebox? Not likely. Streaming from other cars probably won’t work too well either, since cars are likely to only be part of a network for a short period of time.

One effective way of sharing music on the road could work as follows:

  1. Each car can setup a list of recommended music titles, broken down by genre.
  2. Each car can also setup a list of wanted music, also by genre.
  3. When cars come into WiFi contact, cars can ask each other to send over the recommended music if a genre match is made between the wanted list of one car and the recommended list of the other car.
  4. Once new music has been transferred, the user can listen to it right away, or just go on collecting music and then upload it to the home jukebox when the car comes home.

Imagine sitting stuck in traffic and having your car make the best of the time, working hard to provide you with more and hopefully pleasant music.

I think its time to build this car jukebox we keep talking about…

What else can you do with a car based ad-hoc WiFi network?

Richard Koman

AddThis Social Bookmark Button

Related link: http://www.theregister.co.uk/content/53/28985.html

SBC is claiming a patent on html frames or any other web interfaces that lets you keep a nav bar or some other content static while content in other windows changes. How’s that for broad? MuseumTour.com was contacted by SBC lawyers demanding that a licensing fee be paid. ARGGGH!

what do you say?

Richard Koman

AddThis Social Bookmark Button

Related link: http://news.com.com/2100-1023-981449.html

A federal judge ordered Verizon to disclose to the RIAA the identity of a KaZaa users accused of serving up a shocking 600 music files. Courtesy of the DMCA.

comments …

Bill Venners

AddThis Social Bookmark Button

Related link: http://www.artima.com/intv/pyscale.html

Artima.com has published Part II of an interview with Python creator Guido van Rossum in which he discusses how he originally intended Python to “bridge the gap between the shell and C,” and how it eventually became used on large scale applications.

Here’s an excerpt:

The addition of privates was another small language change that was meant to make writing large programs easier. To me, it’s mostly useful to address people’s irrational fears than act as a practical tool. There are situations where privates are very useful, because you know you have your own namespace. But in many cases, I think it is overused.

People who fear that someone will call their code with the wrong arguments, and who are used to having static-typed language prevent that at the compiler level, will try to prevent that happening in their code by adding explicit assertions. People will check the types. They’ll think, “Oh, this only works for strings, so now I’ll assert that the input argument is a string.”

That is the completely wrong approach, because someone could easily implement something that works just as well with your code and behaves sufficiently like a string. Maybe it’s a proxy for a string, which behaves in almost every aspect as a string, except that its type is a proxy. That’s something we use in Zope a lot. The persistency mechanism uses proxies, as does the security mechanism that executes untrusted Web- submitted code.

Untrusted code is executed in a sandbox environment using proxies for objects that the code shouldn’t be accessing directly. So the fact that the language doesn’t enforce types at either the compiler level or the implementation level is actually helpful.

Bill Venners

AddThis Social Bookmark Button

Related link: http://www.artima.com/intv/froth.html

Artima.com has published Part II of an interview with Sun Microsystems’ fellow and chief engineer Rob Gingell in which he discusses the pressures on vendors to both create froth — to add value on top of standards — and maintain compatibility in a multi-vendor industry.

Here’s an excerpt:

Your question addresses the fundamentals of how a multi-vendor industry operates for the good of a common customer base. The “open systems” promise to customers was the ability to treat every purchase/deployment decision independent of all others. There’s no vendor lock-in. Indeed, customers lock in vendors by the standards they hold the vendors to. That’s the ideal, in a steady state.

The problem with that ideal is that the needs don’t stay constant, and customers constantly seek improvements from suppliers. Products improve by such actions. If a customer genuinely depends on a capability, he or she is locked in to those who supply it until, or unless, everyone supplies it.

Here’s the basic conundrum: If you only implement the standard, you don’t solve any new problems. If no new problems are solved, where does the evolving “practice” come from that finds its way into new standards? If you use a new thing, aren’t you thus locked in? How do you meet new needs without doing a new thing?

Here’s how life works: Assuming a shared initial condition, some derivation will occur, often in cactus- like fashion across an industry through competition. With time, the economic benefit of standardization is sought to codify what has emerged as existing practice. If the derivation branching grows too large, we criticize it for being fragmented. If the derivation is zero or too small, then we criticize it for being stagnant, non-innovative. There’s a happy medium in which the “froth” ahead of the standard progresses the industry, but doesn’t damage the base of commonality that defines a marketplace.

Robert Kaye

AddThis Social Bookmark Button

Its been over 5 years since the first MP3 Summit where the concept of the jukebox in the sky was hotly debated. The promise of the jukebox in the sky was to make all music available to users everywhere. Users could tap into the jukebox at home, at work, in their car or hiking up a mountain.

Five years later and the iPod is the closest thing to this jukebox we have — not exactly what people talked about back then. With the current legal climate I’m not expecting the RIAA and its cronies to deliver this jukebox anytime soon.

Community wireless networks have a much better chance of delivering on this promise. Assume for a moment that wireless networks have come of age and in urban areas dense wireless networks blanket the neighborhoods.

Now lets assume that computer users make their music collections available via tools like iCommune. If you can aggregate the music collections of dozens/hundreds of people around you, you’ll get a virtual music collection that approaches the jukebox in the sky.

This jukebox won’t have everything under the sun (which physical jukebox does?), but it will have large amounts of music ready to be played, right now without waiting for it to download, which is not a bad start.

While aggregated wireless music collections won’t provide everything to everyone everywhere, they do have some interesting qualities that are worth exploring.

If the community around you has the music, do you need to download all of the music to your machine? Better get another bigger harddrive, because the community will have more music than you have harddrive space. So, I hope that people will truely start sharing their collections instead of actually copying them as the current file sharing networks do. And if we’re just sharing and not copying does that fall under fair use? (Never mind that fair use has been erradicated in the last few years).

And finally, if wireless networks don’t rely on traditional ISPs, it conceivable to put firewalls/packet filters at locations where the wireless net connects to a traditional ISPs, so that the RIAA cannot even see these wireless jukeboxes?

Traditional ISPs unwittingly act as DMCA chokepoints, and if firewalls hide the activity of wireless networks, then how will the RIAA combat these jukeboxes in the sky?

Are community wireless jukeboxes viable? What do you think?

Richard Koman

AddThis Social Bookmark Button

Related link: http://sfgate.com/cgi-bin/article.cgi?f=/c/a/2003/01/17/MN86676.DTL

Today’s SF Chronicle: “Early next month, a villager in the mountainous jungles of northern Laos will climb onto a stationary bicycle hooked to a handmade, wireless computer and pedal his people into the digital age. …”

comment

Betsy Waliszewski

AddThis Social Bookmark Button

At tradeshows, people are always coming up to us and asking how they can get one of our cool t-shirts. Well, we finally figured out a way to make our animal image items available to everyone. Edie Freedman, O’Reilly’s Creative Director, was instrumental in making this happen. I thought you might be interested in what she has to say about our animal images and how they came about.

Waliszewski: Why did O’Reilly finally start selling T-shirts and other swag?

Freedman: For years, people have been asking us to make t-shirts and other items with the animal images. We’ve often done special items as giveaways for tradeshows and our conferences, and have had to fend off customers who just wanted the swag. Just as we started looking into selling shirts and other stuff, ThinkGeek was thinking about creating a store for O’Reilly swag. (Great minds and all that.) So, we got together and the O’Reilly store at ThinkGeek was launched in November 2002.

Waliszewski: So where did you get the idea for the animals, anyhow?

Freedman: In the 1980’s, my neighbor, Linda Lamb, worked at O’Reilly. When Tim decided he wanted to sell books in retail bookstores, a designer was hired to do real bookcovers for the few books O’Reilly had at the time. The covers the designer created were not quite what Tim had in mind, so Linda asked me if I wanted to take a crack at it. I knew nothing about Unix (I’d worked at Digital for several years), and even less about Unix geeks. Based on what Linda told me about the people who bought O’Reilly books by mail, I figured that they were the kind of people who played games like Dungeons & Dragons. I started looking around for interesting images that might appeal to them. I have always loved old engravings, and when I came across some very peculiar-looking animal engravings, it seemed like a good fit with Unix topics like vi, sed & awk, lex & yacc, etc.
The rest, as they say, is history.

Waliszewski: As you looked back through 25 years of O’Reilly history while putting together the O’Reilly calendar,
what surprised you, and what stood out?

Freedman: It’s amazing to see how much has changed in the industry in the past 25 years. Looking back, one might think that it was a fairly straight path from where the company was in the 80’s to where it is today, but having lived through a lot of that time, it sure didn’t seem that way from the other side. A lot of trial and error, and a willingness to take risks that other companies might have shied away from. Sometimes we just didn’t know any better, so we went for it. What’s really amazing is how often Tim has been right about what was important and where we should go next. That blows me away sometimes.

Waliszewski: What’s your favorite O’Reilly item on Think Geek?

Freedman: Ah, that’s an easy one. The calendar. It’s not just a calendar, it’s a history lesson–and not just company history, either. It covers all sorts of interesting events in the computer/programming universe over the past 25 years, lots of stuff I didn’t know about until I started working on the content for the calendar. (Plus I love the goofy pictures of Tim and some of the other people who work here.)

And I like the Linux t-shirt, because I own a horse and I speak a little French.

Waliszewski: What’s next–what other O’Reilly stuff can we expect?

Freedman: I’m not sure yet. We’re sort of waiting to see what people like and want more of. I’d like to do lots more shirts, and maybe some baseball caps. Posters, perhaps. I’d love to hear from people about what they’d like to see.

You can post your comments here or email Edie directly edie@oreilly.com

Richard Koman

AddThis Social Bookmark Button

Related link: http://news.yahoo.com/news?tmpl=story2&ncid=&e=4&u=/ap/20030115/ap_on_bi_ge/scot…

The Supreme Court upheld the law, 7-2. Ouch.

Richard Koman

AddThis Social Bookmark Button

Related link: http://www.washingtonpost.com/wp-dyn/articles/A51958-2003Jan13.html

The Post reports today that two major tech industry associations are ready to enter an alliance with the recording industry (sort of like the Stalin-Hitler pact of 1941) to oppose the infamous Hollings bill. The agreement makes it less likely there will be government mandates to control computers and consumer electronics, but it puts tech in the position of firmly backing DMCA. Efforts like Rep. Rick Boucher’s, which I reported on yesterday, are certainly undercut by the big technology companies compromise with RIAA.

What do you think of technology’s alliance with record companies? Is it more important to fix DMCA or stop Hollings?

Bill Venners

AddThis Social Bookmark Button

Related link: http://www.artima.com/intv/standards.html

Bill Venners

AddThis Social Bookmark Button

Related link: http://www.artima.com/intv/python.html

Artima.com has published Part I of an interview with Python creator Guido van Rossum in which he discusses Python’s history, the
influence of the ABC language, and Python’s original design goals.

Here’s an excerpt:

In 1986 I moved to a different project at CWI, the Amoeba project. Amoeba was a distributed operating system. By the late 1980s we found we needed a scripting language. I had a large degree of freedom on that project to start my own mini project within the scope of what we were doing. I remembered all my experience and some of my frustration with ABC. I decided to try to design a simple scripting language that possessed some of ABC’s better properties, but without its problems.

So I started typing. I created a simple virtual machine, a simple parser, and a simple runtime. I made my own version of the various ABC parts that I liked. I created a basic syntax, used indentation for statement grouping instead of curly braces or begin-end blocks, and developed a small number of powerful data types: a hash table (or dictionary, as we call it), a list, strings, and numbers.

I took ABC’s ingredients and shuffled them around a bit. Python was similar to ABC in many ways, but there were also differences. Python’s lists, dictionaries, basic statements and use of indentation differed from what ABC had. ABC used uppercase for keywords. I never got comfortable with the uppercase, neither reading nor typing it, so in Python keywords were lowercase.

I think my most innovative contribution to Python’s success was making it easy to extend. That also came out of my frustration with ABC. ABC was a very monolithic design. There was a language design team, and they were God. They designed every language detail and there was no way to add to it. You could write your own programs, but you couldn’t easily add low-level stuff.

Damien Stolarz

AddThis Social Bookmark Button

Related link: http://news.com.com/2100-1023-980007.html?tag=lh

Wow. Microsoft is basically saying “use us over MPEG-4, we’re cheaper”.

Richard Koman

AddThis Social Bookmark Button

Related link: http://www.aftenposten.no/english/local/article.jhtml?articleID=466519

In the Norway’s prosection of DeCSS developer Jon Johansen, the court found him innocent on all counts. If only US courts would take this as precedent.

“The court ruled there was “no evidence” that either Johansen or others had used the decryption code (called DeCSS) for illegal purposes. Johansen therefore couldn’t be convicted on such grounds, nor for acting as an accessory to other alleged illegal activity, wrote judge Irene Sogn in the court’s ruling.

“Nor, wrote Sogn, was there any evidence that Johansen intended to contribute to illegal copying.

“The court determined that it is not illegal to use the DeCSS code to watch DVD films obtained by legal means.”

comment here

Bill Venners

AddThis Social Bookmark Button

Related link: http://www.artima.com/intv/abcs.html

Artima.com has published a four-part interview with Scott Meyers, author of Effective C++, More Effective C++, and Effective STL. In Multiple Inheritance and Interfaces, Scott describes how his view of multiple inheritance has changed with time, the C++ community’s take on Java’s interface, and a schism of focus between the C++ and other prominent development communities. In Designing Contracts and Interfaces, Scott discusses interface contracts, private data, and designing minimal and complete interfaces. In Meaningful Programming, Scott discusses the importance of saying what you mean and understanding what you say, the three fundamental relationships between classes, and the difference between virtual and non-virtual functions. In Const, RTTI, and Efficiency, Scott describes the utility of const, the appropriate time to use RTTI, a good attitude about efficiency, and Scott Meyers’ current quest for general programming principles.