Friday, October 06, 2006

Sweet Irony

A a couple of friends pointed me to this article:
The Investor: Jim Breyer, partner, Accel Partners

What he's backed: Brightcove, Facebook, Prosper

What he wants now: Social-networking sites may be sprouting like weeds, but none yet operates as a bona fide marketplace, with members buying and selling their own creations as much as they blog, link, and post. Breyer, who sits on Wal-Mart's board, is interested in backing an international network for indie artists, musicians, filmmakers, authors, designers, and other creative types from dozens of countries.

Ideally, the site would have the download and payment features to create what he calls a "micromarket" for members' wares. "There might be a Chinese student filmmaker with a five-minute film who wants to reach a niche of U.S. users," Breyer says. "He could find people willing to buy his films, and maybe a producer willing to bankroll more." Transaction fees would supplement ad revenue.

Breyer wants a five- to 10-person team to build a prototype using a peer-to-peer structure that would reduce bandwidth costs, and to identify core groups of users that would get traffic moving to the site.

What he'll invest: $10 million
I'll be damned if this doesn't sound exactly like a concept i've been developing and pitching over the past two ... three years. This article i wrote on dijjer (controversially dugg for having dared to suggest that something out there might be more appropriate than BitTorrent for certain use cases) a while back reflected just one of the latest strategies I was exploring to build a scalable ecosystem.

How did I get into this? Being in L.A., quite a few good friends of mine are struggling artists. Jazz artists. Blues. Independent filmmakers. Upon pitching the ecosystem to them, their response was overwhelmingly enthusiastic, and they've contributed a lot of great ideas. But I've so-far been letting them down though. Yet, applications of this concept don't stop there. The rabbit-hole goes deeper, much deeper.

The problem is, ideas, no matter how thoroughly-developed, and pitches, are dime a dozen. I've learned the hard way that nothing moves forward until you've built something palpable for people to poke at, get their hands-on, and understand your vision. But by the time you've gotten to that point, really, what the hell do you need investors, or anybody else for?

You ought to just go it alone. Screw investors. If you've got a sound business model, with a well-thought out application built from the ground-up with scaling in mind, you can buy the hardware and bandwidth you need, when you need it. You need investors when what you're looking to build is yet another buzzword-compliant web2.0-taggy-mashuppy-socialnetworky-hotmeme'o'the'day-y with no plan for a strong revenue stream, which in the end will die as yet another fad, but will have made a few investors rich because they got Yahoo! to purchase the user base.

At the last eBay developer conference, i got the chance to meet Shannon Sofield, from Payloadz.com, who gave us a presentation of his digital marketplace. He's figured out the tough part: facilitating transactions and fulfillment for the purchase and delivery of digital assets. And he's currently doing it without the assistance of any peer-to-peer framework. If he starts adding a social framework to his ecosystem, he'll have it made in the shade, not that what he currently has, doesn't already pay his bills quite handsomely. My hat off to Shannon, for having a vision, and superbly executing on it. And there's a lot of heat around his ecosystem, the dude could not rest for a second at the conference.

Let's hope that in 2007, I put an end to the pondering, and start delivering. If i don't, someone else will. And in the end, it'll be okay. Sad for me, but okay. I believe humanity is in dire need of an alternative to today's media distribution. Far too much of what we see, hear, read is controlled by a handful of corporations that call all the shots, and what rises to the top, is too often not even close of being anywhere near the cream. Widest possible audiences are being catered to, leaving little to no room for niche interests.

Money today is flowing in a highly inefficient and wasteful funnel pattern, from the unwashed masses to BigMedia, so many revenue opportunities are simply not being catered to.

We're missing out on so much. And it's sad.

Thursday, October 05, 2006

Get Work Done with Blossom for OS X!

Round 3 of voting for MyDreamApp has just begun. Consider voting for Dan Lundmark's Blossom project.

Ever wonder where all the hours go? Blossom tracks how much time you spend on each app, web site, or document, and visualizes the data as a beautiful blossoming plant. Meet your goals and see your virtual plant blossom! Vote for the Blossom concept at http://mydreamapp.com/vote/ and see your productivity blossom!

Wednesday, October 04, 2006

PPK On JavaScript

In the process of paying a visit to PPK's site while writing my previous blog entry, i stumbled upon his first book. As I sift through its Table of Contents, I'm feeling this incredible urge to buy it, and tell every engineer I know to do the same.

Done. Ordered it.

New .Mac Webmail Coming Soon

The following message from Apple just came in our .Mac mail with this .Mac Webmail Illustration:
The new .Mac webmail is coming soon, and you'll feel like you've seen it before.
With its smart use of the latest web technology, it'll remind you of the Mail application on your desktop, with a simple and elegant interface, drag-and-drop capability, built-in Address Book, and more.


A new look

Everything is within easy reach. Your mail folders are next to the Inbox, and you can read full messages and access your contact info without leaving the page.

Drag-and-drop

Manage your Inbox easily, by dragging and dropping messages, just like you do on your desktop - even multiple messages at the same time.

Message pane

Read entire messages in a pane located right below your message list, just like you do in your desktop Mail application.

Smart refreshes

.Mac webmail keeps page reloads to a minimum, by refreshing only the portion of the page that needs updating, instead of reloading the entire page.

Quick Reply

A .Mac webmail exclusive. Dash off a response without leaving your Inbox, by clicking the Quick Reply button next to the message to which you're responding.

Built-in Address Book

It's fully integrated, so you can quickly access and search your contact info. Start typing in a name, and all your matching Address Book contacts appear in the address field.

Message previews

The .Mac webmail Inbox displays the beginning of every message, so you can quickly scan your messages without opening them.

Message flagging

Flag and unflag messages with a single click.

Keyboard shortcuts

Save time with keyboard short-cuts for common operations like composing new messages and searching your mailboxes.


Thoughts: Whenever we try to replicate desktop-like functionality within web documents, that's typically when web browsers are pushed to their limits of web standards support. It's rather feasible to achieve fairly advanced functionality in a cross-platform manner. But it's obviously far from trivial, and most often an exercise in pulling one's hair out. Cross-browser research and advocacy from guys like Peter-Paul Koch is invaluable to the developer community.

Building advanced user interfaces often requires going to the edge of CSS support, and Windows Internet Explorer's horribly broken box model and many missing advanced CSS features sure don't help. I've often noticed script execution speed issues in Safari, even when compared to OS X Firefox on the same machine. And when we start manipulating too many cross-referencing objects, I recently learned that Win/IE will leak memory. The list goes on.

It's reasonable to expect that Apple's web-based email will have to work flawlessly, with its most advanced features in Safari. I'm curious to see whether Apple will also strive to keep their application working flawlessly in other browsers, such as Firefox, Opera, and Win/IE. After all, the whole point of having access to .Mac Webmail, is to be able to access our mail from any machine, even if it isn't a Mac.

Brandy and Chris.com

Based on Ernest's Photoshop mock-up, and after tweaking some content, the new brandyandchris.com is up and running.

The slideshows are semantically marked-up, and brought to life through a modified version of a pretty simple, yet effective reusable CSS/JS concoction i'd put together a while back.

The tabbed navigation *and* its content are wrapped into HTML List Items, which is a bit of a crazy/overkill way of doing this, but i figured it'd be fun for content to be tied in the markup to the section it corresponds to. A more classic approach might have been to have a UL block that describes the headers, followed by a succession of DIV blocks for the contents of each section.

My approach does make things clumsy in the sense that I have to "manually" position content blocks with negative "left:" absolute positions within a given LI block. This results in the little dots between the headers not always being centered. But it's not too horrible :) It does look better on a Mac than on a PC, with the "Zapf Chancery" font.

Thursday, September 28, 2006

Vote for Blossom / Dan @ MyDreamApp

Dan says:
Round 2 voting is open at http://mydreamapp.com/ . I need votes! Vote for Dan and my idea Blossom. I'm hovering at 4th and 5th place - let other ppl know if you can, thanks
Blossom is Dan's concept for a productivity application for Mac OS X. If his idea wins the MyDreamApp contest, the application will get built, and he'll share in the profits it generates. If you believe his idea to be valuable, you ought to vote for it.

Friday, September 22, 2006

Ode to Ernest

I don't know many developers who are sharp coders, and amazing designers. Ernest is. He can wield Photoshop with great mastery to develop a vision for coders to execute on. Being a coder himself, his designs always lend themselves to efficiency and sensical implementation. He'll also happily turn around and code the whole thing himself, as web standards bear very few secrets to him.

I started building our web site, brandyandchris.com a few weeks ago, focusing on content, as i knew that whatever i'd come up with would look horrendous. And I sure delivered. Ernest once again, was gracious enough to bestow his vision upon me. I just received a Photoshop document from him, and I just can't wait to start hacking at it. It looks nice, very, very nice. Brandy's jaw dropped.

The Shopping Widget was also his design.

In the end, having strong design skills in a development team is an invaluable asset, and I sure am glad to have Ernest on mine. In the process of building applications, it's a common mistake to dedicate too little attention to user interface design. It's a true challenge, and one well-worth solving, that'll lend added credibility and a competitive advantage in a cut-throat market.

Saturday, September 16, 2006

RIP, Lilo

Rob Levin, aka Lilo, who has for many years so gracefully run irc.freenode.net, passed away this morning :(, from injuries sustained in a hit-and-run accident.

This is beyond tragic.

I'm not sure I've ever known someone more dedicated and passionate about the free exchange of ideas for the advancement of technology. As many of his friends have, I've often tried to convince him to go for a more comfortable lifestyle with a high-paying job, but he lived by a set of higher principles, offering his talent to PDPC, with, in his own words, the awe-inspiring support of his wonderful Wife and Son.

Freenode is an IRC network where many of the sharpest engineering minds regularly congregate to discuss various technology topics. Many open-source projects have their official discussion channels on freenode. It's easy to take all of it for granted. It's free. It's always there. it's always reliable.

Yet we all knew Lilo was always tirelessly slaving, behind-the-scenes, constantly improving the network, scrounging donated hardware and bandwidth, raising money every year.

The world needs more humans like Rob Levin. Not less. Saying that God works in mysterious ways, in this instance, would be an under-fucking-statement.

I for one will continue to look-up to Rob and his wonderful family as shining examples of what outstanding character can achieve.

Monday, September 11, 2006

ServletRequest.getParameter and UTF-8

When we get a parameter from an HTTP request in the Tomcat Servlet container, the String object returned isn't UTF-8-aware. If this bugs you down, you can work around it:

String value = request.getParameter("key");
if (value != null) {
try {
value = new String(value.getBytes(),"UTF-8");
} catch (java.io.UnSupportedEncodingException uee) {
//wrong encoding!
}
}
I don't know whether this is behavior expected from the HttpServlet spec.

update: 09/13/2006: the above code doesn't quite work. I'm now pretty sure it was a useless attempt, heh. getParameter URLdecodes the value for you, but it doesn't do it in a UTF-8-aware way, and my "workaround" can't possibly work around that limitation. duh.

You just want to request.getQueryString() to get the raw UTF-8 URL-encoded query string sent by the HTTP client. And then you want to manually extract the value you need from the key, and run it through java.net.URLDecoder.decode(theValue,"UTF-8");

If you want to pass this value to an XSLT transformation parameter using Xalan, you'll also run into utf8-awareness limitation. You'll want to pass a UTF8-URLEncoded version of the $encodedValue to the transformation. Then inside the XSLT stylesheet, declare a variable like this: xsl:variable name="decodedValue" select="java:java.net.URLDecoder.decode($encodedValue, 'UTF-8')" ... assuming you've enabled "java" as an extension by declaring its namespace.

update: 09/26/2006 Upon reading this article on UTF-8 and request.getParameter from jGuru, a better approach appears to be:
if(request.getCharacterEncoding() == null)
request.setCharacterEncoding("UTF-8");
paramValue = request.getParameter("paramKey");
Basically, the servlet engine needs to be told to retrieve parameters using UTF-8, as browsers don't always send accurate information as to what encoding is being used in a form submission.

update:12/05/2006 Anonymous poster below points us to this discussion about setCharacterEncoding having no effect

Friday, September 08, 2006

Google Apps for Your Domain is Live :o

Google has just released "Google Apps for your Domain". Say you own "somedomain.tld", and you have some sort of control over its DNS settings.

Google lets you specify an MX record that points to their SMTP servers, to handle all incoming mail to your domain. It's GMail, of course, and it works very well. Say hi.

Google lets you specify CNAME entries for anyhost.somdomain.tld, that points to one of their web servers, with good ol' "Host:" HTTP header-based virtual web hosting. Check out http://frog.futuredigital.com/. Guess what they let you create pages with? None other than Google Lab's pages.google.com

But there's more I've not yet played with:

- Chat: XMPP federation for your domain.
- Calendar sharing.

Screenshot? Yup, right here.

Want your own? Google appears to have limited sign-ups available right here. Not sure how long that's going to be available :)

Friday, September 01, 2006

TomiZone: Share your Internet

This looks like an interesting way to make some extra cash from sharing your broadband Internet connectivity. I believe Seattle Wireless has been attempting similar, but Tomizone seems to be adopting an easier, far more automated approach. They provide custom firmware for linksys routers. I would imagine they'll support other routers later. I've also been meaning to look into Speakeasy's WiFi NetShare Admin.

Thursday, August 24, 2006

Apple G4 PowerBook and iBook Battery Recall

Apple G4 PowerBook and G4 iBook Battery Recall (Coral Cache Mirror) - Check your model now. Some will catch on fire!

I just checked my G4 AlBook, it's not affected. And Brandy's iBook is a G3 iBook, not a G4. So we're in the clear! :)

Apple Announces Recall of Batteries Used in Previous iBook and PowerBook Computers Due To Fire Hazard

WASHINGTON, D.C. - The U.S. Consumer Product Safety Commission announces the following recall in voluntary cooperation with the firm below. Consumers should stop using recalled products immediately unless otherwise instructed.

Name of Product: Rechargeable, lithium-ion batteries with cells manufactured by Sony for certain previous iBook G4 and PowerBook G4 notebook computers only.

Units: About 1.1 million battery packs (an additional 700,000 battery packs were sold outside the U.S.)

Battery Cell Manufacturer: Sony Energy Devices Corp., of Japan

Computer Manufacturer: Apple Computer Inc., of Cupertino, Calif.

Hazard: These lithium-ion batteries can overheat, posing a fire hazard to consumers.

Incidents/Injuries: Apple has received nine reports of batteries overheating, including two reports of minor burns from handling overheated computers and other reports of minor property damage. No serious injuries were reported.

Description: The recalled lithium-ion batteries were used with the following computers: 12-inch iBook G4, 12-inch PowerBook G4 and 15-inch PowerBook G4. Consumers should remove the battery from the computer to view the model and serial numbers labeled on the bottom of the unit.

Computer model nameBattery model numberBattery serial numbers
12-inch iBook G4 A1061 ZZ338 through ZZ427 | 3K429 through 3K611 | 6C510 through 6C626
12-inch PowerBook G4 A1079 ZZ411 through ZZ427 | 3K428 through 3K611
15-inch PowerBook G4A1078 and A11483K425 through 3K601 | 6N530 through 6N551 | 6N601


No other Apple notebook computers are involved in this recall.
Sold Through: Apple’s online store, Apple retail stores nationwide, and Apple Authorized Resellers from October 2003 through August 2006 for between $900 and $2300. The batteries also were sold separately for about $130.

Assembled in: Japan, Taiwan and China

Remedy: Consumers should stop using the recalled batteries immediately and contact Apple to arrange for a replacement battery, free of charge. After removing the recalled battery from their iBook or PowerBook, consumers should plug in the AC adapter to power the computer until a replacement battery arrives.

Consumer Contact: : Contact Apple at (800) 275-2273 between 8 a.m. and 8 p.m. CT Monday through Sunday or log on to Apple’s Web site at http://support.apple.com/batteryprogram to check the battery’s serial number and request a replacement battery.

Monday, August 14, 2006

Traffic Shaping in Mac OS X Tiger

"Tiger finally has dummynet support in the kernel. What this means to you is that now you can do traffic shaping with no additional software."

read more | digg story

Saturday, August 12, 2006

Introducing SIPCasting - Broadcasting for the Masses

What is it?

It's peer-powered broadcasting leveraging the Session Initiation Protocol (SIP) and a few SIP-enabled tools and services to relay streamed data across multiple peers. It's currently not a "software package". It's a methodology, that might one day motivate the community to define key protocols, perhaps one day leading to the development of software packages dedicated to broadcasting over SIP. Until then, we'll explore what can be done today using freely available SIP software and services and start pinpointing limitations to be addressed.

Why not just use PeerCast and other dedicated P2P Broadcasting technologies for streaming media?

I can't think of a reason! They're worth trying out, and if this post does nothing but bring them publicity, we'll be off to a strong start. Check out projects similar to PeerCast.

Why Peer-to-Peer for Broadcasting?

While the vast majority of "content" can be consumed asynchronously, such as with podcasting, certain timely events and massively shared experiences warrant more "real-time" coverage.

P2P's already actively being used for digital asset delivery: thanks to pioneering peer-powered digital asset distribution frameworks such as BitTorrent, RedSwoosh, and Dijjer, it's becoming easier to leverage aggregate "visitor" bandwidth to more effectively deliver content.

Broadcasting in real-time to large audiences needs more P2P-love, as it remains today too onerous for independent authors to broadcast in real-time to masses. Leveraging peer-to-peer technologies for broadcasting is a fascinating human evolution in further freeing ourselves from our dependency on Big Media.

Phone, Cable, Media companies, are working around the clock lobbying legislators to keep a choke-hold on distribution of content, and the way we use broadband. Smart, legal, exciting applications of peer-to-peer technologies can further help legislators understand the importance of unfettered broadband connectivity.

When was SIPCasting first more or less successfully used? And how?

Well, in theory as early as the first time a group of people connected together in a SIP audio conference. The SIP RFC is dated circa 1995 so there had to be some geeks back then trying some cool stuff on local networks. But most recently, during the Apple WWDC 2006 Keynote, by a few TheAppleBlog readers, eager to listen to live spoken updates from a field correspondent, as a complement to textual coverage performed elsewhere. Here's an outline of the logistics of setting-up a basic SIPCast.

How is SIPCasting different? What does SIP give us?

SIP enables slightly different use cases: When two peers have established contact via SIP/STUN, both peers can exchange data in real-time over UDP. Data can go both ways. This enables SIP to power many forms of real-time communications. Traditional "broadcasting" is very-much a one-way process: Data flows from one source, to be passively received and consumed. SIP provides a strong framework for content consumers to also send data back to the "broadcaster". In essence, in a basic SIP session, there is no real such thing as a "broadcaster" and "consumer", but rather a tacit agreement between two peers, designating who "talks" and who "listens". In the specific use case of a live audio broadcast, a "listener" might choose to "speak up", in a more interactive framework. This may often not be desirable, and dedicated software would seek to provide a measure of control over available interactivity.

SIP provides a standard framework to execute the dirty work: SIP, STUN, SDP already define the low-level mechanisms for peers to find each-other, agree on the logistics of the session, and exchange media RTP packets over UDP, even through the vast majority of NAT configurations. Many peer-to-peer frameworks keep reinventing their own protocols to solve these problems.

SIP is versatile: SIP enables a slew of peer-to-peer applications based on mature, open standards. A while back, EarthLink R&D released a proof of concept SIP-powered peer-to-peer file sharing application written in Java: SIPShare.

SIP is highly interoperable: If something speaks SIP, chances are just about anything can conceivably connect to it. You've got a SIP-based radio broadcast? A Zyxel wifi phone user just might give you a ring from an airport Boingo hotspot. Perhaps a MindSpring, GizmoProject, or Free World Dialup user might plug your SIPCast address into their phone. Heck, if you mapped an ipkall.com 360 area code phone number to your SIP address, anybody with a plain old cell phone would be likely to dial you up and listen-in.

SIP addressing is powerful ... and convenient: Consider one of many possible forms of SIP addresses: sip:theappleblog@earthlink.net. Looks familiar? Just like an e-mail address. SIP also supports "session forwarding". I can arbitrarily decide to forward calls to my SIP address to another SIP address. Domain name registrars need to capitalize on this today, and add this as a feature alongside wild-card mail forwarding @somedomain.bleh. This is achievable by declaring your SIP proxy host as a handler of SIP traffic via DNS SRV records.

What Now?

We need to attempt more practice-runs of larger-scale audio SIPCasts using SJPhone, and/or perhaps even asterisk.
We need to document the many obvious and not-so-obvious limitations of this ad-hoc setup.
We need to define some use cases for SIPCast software that allows control over interactivity levels, and streamlines the peer discovery and media relay processes.

Monday, August 07, 2006

off to San Jose


off to San Jose
Originally uploaded by chrisholland.

TAB Audio Party Line Relays

This is a follow-up to this post.

For those interested in being an audio party-line relay:

We're still looking for more standby relayers for the audio partyline.

1) Configure SJPhone with a SIP account following these directions

2) in the Preferences menu, "Call options" tab, check [x] automatically accept incoming calls.

3) Make sure the conference button is clicked,

4) e-mail your SIP address to frenchy@gmail.com. In the e-mail, also tell me what your upstream/downstream speed is on your broadband connectivity ... if you know it.

For everybody else interested in audio party-line:

1) Install MindSpring (PC Users), or GizmoProject (Mac, PC, Linux) or run any other SIP-capable program.
2) plug the following sip address in your SIP program: sip:theappleblog@earthlink.net
3)Find the mute button and keep it pressed unless you need to speak-up :)

If all you have is a phone, try this:

(360) 526-6161

For those interested in a text chat with live keynote updates:

Head here! Go to AIM Chat Room: TheAppleBlog

Sunday, August 06, 2006

WWDC 2006 Live Keynote Coverage/Chat

Chat with hundreds (if not thousands) of other mac users during The Apple Blog's live keynote coverage and chat.

read more | digg story

Friday, August 04, 2006

FCC Supports Broadband over Power Lines

"The Federal Communications Commission decided Aug. 3 to reaffirm its stance on the deployment of broadband-over-power-line technology." "By adpting this order, the FCC rejected requests by several groups, including the amateur radio community, the aviation industry and broadcasters, to either limit the service or to disallow it completely. "

read more | digg story

Apple may restate profits amid accounting scandal

The accounting scandal engulfing Apple deepened today as the computer company warned Wall Street that its earnings figures over the past four years "should not be relied upon," sending its shares tumbling.

read more | digg story

Del.icio.us Traffic Plummets

Unique visitors have dropped by 22%, and page views
have dropped by a whopping 75%, erasing all gains in traffic this
year. Del.icio.us is effectively at the same traffic levels as they
were when it was acquired in December 2005



read more | digg story

Chad Vader - Episode 2


awesome! :)

"Strike me down with your hatred, and claim your refund".
"Chad, vomit clean-up aisle 5".

Chad Vader


1st episode.

Wednesday, August 02, 2006

Beyond AdSense: A Business Model Checklist

Brian Oberkirch of Like It Matters offers a useful list of "the various business models available to developers of live Web apps & services."

read more | digg story

Thursday, July 27, 2006

The Daily Show (TDS): Net Neutrality With John Hodgman

Learn all about the upcoming Information Supertubes.

Wednesday, July 26, 2006

Dodgers vs Padres


dodgers lunch
Originally uploaded by chrisholland.

Padres won, i think ... we didn't stay 'till the end. It was fun hanging out with the crew for a couple of hours. Back at the office now :o

Saturday, July 22, 2006