Over the years one of the criticisms of RSS 2.0, the version of RSS that enabled podcasting, is that it only allowed one enclosure per item.

This was a deliberate decision. I was aware at the time that there was a choice. I went with the one-to-one correspondence. There were two reasons, a design question and to keep it simpler for developers and podcast listeners.

  1. Suppose you allowed an arbitrary number of enclosures. Wouldn't you want to be able to describe each? If so, an enclosure would morph from being a simple three-attribute element, to a structure. What would be the new sub-elements? One obvious one would be <description>. How about a title? A date? Category? Author? I'm sure you see where this is going. We just created a new <item> inside an enclosure. And could an enclosure have an enclosure? Why not? Isn't that more powerful? (The reason usually given for having more enclosures.)
  2. The second reason is that you made life more complicated for the aggregator developer. When they look for an enclosure they somehow have to decide which of the multiple enclosures the user wants, or offer a choice to the user. Does the user really care what format the podcast is in? When I'm listening what I want is to hear the podcast. You want me to choose? My life is already too complicated. Too much software interrupts the flow of my thought with questions I have no interest in. 

I'm doing a switchover from the current 1999.io-based blogging home page to my new software, which is codenamed Old School. In advance of the switchover I'm doing real writing over there, stuff that belongs in the main Scripting News RSS feed. So I'm going to run a couple of them here in the this post. 

Re the NYT profile of Evan Williams

Re today's profile of Evan Williams and Medium in the NYT.

A few off-the-top-of-my head thoughts...

The best art ignores money. It's driven by the desire of a human to express what's inside. "I am human and I have something to say."

I wish Medium had strived to make crazy-great editing software, and had created a server that they operated for free, and free of advertising, and open source with a liberal license that let others build new kinds of collaborative systems with great editing at its core.

How do you make money from this? We don't have an opinion about that.

Think of it as a way for a man who made billions from the open web to give back. It was never about any individual's greatness or worth, it was and is about our need as a species to apply our collective minds to our evolution. We still have fundamental changes to make for our species to survive.

I'd add that the whole idea of a Great Thinker solving our problems is itself part of the problem. It worked for us until we conquered and controlled nature. Now we have to find a new purpose for ourselves, a new mission. 

Re JSON feed

People have asked what I think of JSON feed...

My longtime friend and collaborator, Brent Simmons, is one of the two guys who designed the format. In fact I am in Seattle right now visiting Brent, talking about another project, though of course we have discussed JSON feed. I knew it was coming. Brent and I emailed about it about a month ago.

My opinion is pretty neutral. Kind of a shoulder shrug. It reminds me of the slogan from Battlestar Galactica. "All of this has happened before and will happen again."

The hype around this effort reminds me of the hype at the start of Atom. Thankfully the personal stuff does not seem to be coming along with it this time.

Is this something we should be focusing on?

I think we have to work on climate change and the fascism that's trying to boot up in the US. Our systems for news suck, and there are obvious ways to improve them if we put our minds to it. And I think a new incompatible feed format not only doesn't move us toward solving those problems, in a very small way (not worth worrying about) it moves us away from solving them. By using bandwidth that could be used to foster working-together, perhaps. By making things that would otherwise interop, not interop.

If developers have a hard time using XML in their apps, if that's the problem, why not attack it right there? Work to make it easier. I work in Node and the browser, and in both places XML and JSON are equally easy to use. The same could be done for any environment. In fact in the browser, XML is integrated deeply into the programming model, because the web is made out of XML.

As a developer of feed reading software, if any new format gains traction, my software will support the format. I don't believe in locking users in or out. So a new incompatible format makes my life slightly more difficult. But once the work is done, it moves out of the way, hopefully never to be thought of again.

As a writer, and developer of feed-creating software I am going to stick with good old RSS 2.0 with the source namespace. It has served me well, and doesn't want for any features. If it did, I would just add them to the namespace.

One more thought, a few years ago we played around with the idea of JSONified RSS, a simple translation of the XML elements and attributes to JSON. Two observations. 1. It didn't invent new names for things that already exist. 2. It didn't catch on.

See my Manifesto for standards-makers for other general thoughts. 

I've long wanted a JavaScript package that made it easy to write quick apps that do stuff with feeds. 

I write them all the time, but I always have to start over from the beginning, create a parser, then catch the new items as they come in, and do whatever it is I have to do, usually move the bits to another service like Twitter, or Slack or whatever. There are so many possible applications.

When I was doing this, I realized I was solving a problem that was already solved, in my River software, but it wasn't configured correctly to make this easy. It was faster just to crib the code and start from scratch.

Finally, I have it set up so that this works. So the beauty in this is in the apps, not the engine. It's a solved problem that can now be used to solve new problems.

What's new

I moved the core functionality of River5 into an NPM package that makes it possible to use River5 in any Node app. The name of the package is davereader. The repository is of course on GitHub. 

The main change to River5 is that instead of containing the core, it accesses it through NPM as it does for many of its other core functions. 

To the River5 user very little if anything changes. That's written up on the River5 site. If you have questions, please ask them on the River5 mail list or in a comment here

What's easier?

The Hello World app for davereader watches a few feeds. When a new item comes in it writes its JSON representation to a calendar-structured folder. 

That's the pattern that many of the davereader apps will follow. For a set of feeds, flow all new items to some other place. That's basically what RSS does, so that's what an application that uses RSS will most likely do. ;-)

Why davereader?

The more obvious names were taken. 

If I had my druthers I'd call this node-reader because that's what it does, brings industrial strength feed reading to Node. 

But davereader isn't bad. It's the reader that Dave wrote. 🎈

An experiment with blogging and news.

As you know, I've been working on yet another version of Scripting News. This one is based on the way the site worked at the very beginning. Very free form, written in an outliner, I get to use all the features of HTML, the posts can be long or short, have titles or not, include as many links as I want. 

I've been blogging over there for the last few days and it feels good. It also feels good to write longer pieces here, using 1999.io. So I will use both ways to blog, and they will be integrated. If the design is right, you won't know where a story came from. 

Combining flows on Slack

Along the way an item made it onto my todo list to try flowing all the links to a Slack group. So yesterday I cobbled something together quickly that flows all the links from four of my feeds into one flow on Slack. The four feeds are:

  1. The main Scripting News feed.
  2. My Radio3-based linkblog feed.
  3. The feed from my new Old School blog.
  4. The feed from my Flickr account.

I thought this might be an interesting prototype for a Personal Twitter, one where an individual, someone who's very active at collecting links (me) and writing quick posts (again, me) and taking pictures (you get the idea), posts things as they come to his or her attention. I set it up and invited a few friends. I really like it. 

You can request an invite

So I want to invite other people to join the group. It's not for commenting, it's just for reading, but there's no way to configure Slack for that, so it has to be on the honor system. I set up a channel called Chatroom for people to talk about stuff, if they want to. The comment guidelines for Scripting News will apply there. 

If you've made it this far, great! 

And if you'd like to request an invite, post your email address to this form, with a comment about how long you've been reading Scripting News, and an idea of how much you're interested in this Personal Twitter idea.

I've been getting fraud alerts from my credit card company about charges from an entity known as GOOGLE *LINE Corp. 

On the first reports, I just assumed they were from Google, the amounts were small, always either $1.99 and $3.99, so I just said they were okay. But they kept coming. 

I did a search and see lots of people upset about it. So I called the credit card company, and turns out I've had charges from them, adding up to $200 already this year.

Turns out LINE is a Korean chat app, like WeChat, I've been told.

So I called the credit card company, killed the card. Usually they're easy to deal with but they've added all kinds of fake security checks (meaningless stuff, easy to fake) that make it a miserable experience. And the people who used to be in the US are now in the Philippines. You can tell. There's a difference between dealing with people from your own culture. It's taken me a few hours to figure out what's going on and it's been pretty miserable.

I think we're going to be doing a lot more of this..

And Google -- if you can hear me, please try to vet the companies using your services. This one is already famous.

A couple of projects to report progress on.

1. Back in the beginning, I wrote my blog with an outliner, and I could put posts of all length in the feed. Posts with titles or no titles. Any HTML I wanted. Then came Twitter and Google Reader and they squeezed my blog to almost nothing. Facebook then took out what was left. Try to write for all of them, that's the empty set. So fuck it, let's go back to the beginning before all that michegas, and have a notepad where my ideas flow and maybe some of them make it into the silos, or not. 

That's the concept.

And the implementation is coming along. 

The project is called Old School. 

Here's a link to the prototype page. You should be able to read it on a mobile device or desktop screen. Not sure when this will become the official blog, I hope soon. 

2. A number of months ago I added WebSockets to River5 but never documented it or wrote sample code. 

Now there's an example app

It hooks up to my River5 server, and displays the JSON text for every item it discovers. 

The source is on GitHub. 

That's all for now.

Enjoy your weekend! ;-)

I've used all kinds of formats and protocols in a long career as a software developer.

I also have created a few, and have had to fight to keep them independent and unowned, with varying degrees of success. This set of rules represents what I've learned.

If we work together on a project based on open tech, these are the principles I will try to stick to. I wanted to put all this in one place, so I can pass it along to future software developers. 

Rule #1: Interop is all that matters

The only reason we have open formats and protocols is so our software can interoperate.

Why interop?

We want interop so that our users are free to move.

So our products compete on the basis of performance, features and price, and not lock-in.

This is as basic as the Hippocratic Oath that doctors take.

It honors and respects the users of our products.

There are tradeoffs in standards

There are few absolutes in standards work, some rules even contradict others, so you have to think, and strike a balance.

Software matters more than formats (much)

Too often people try to design a format first, and then make software that conforms to the format. You might get some good demos. But not much chance of developing a standard that way.

Users matter even more than software

People choose to interop because it helps them find new users. If you have no users to offer, there won't be much interest in interop.

One way is better than two

No matter how much better the new way is, you'll still have to support the old way.

Fewer formats is better

If you can replace two formats with one, without breakage or loss of interop, then I say go for it.

Removing complexity from the world is always good.

Think of this like code factoring, but on a larger scale.

This is 1/2 of Postel's robustness principle -- be conservative in what you send.

Fewer format features is better

If you want to add a feature to a format, first carefully study the existing format and namespaces to be sure what you're doing hasn't already been done. If it has, use the original version. This is how you maximize interop.

Perfection is a waste of time

I've witnessed long debates over which name is better than another.

I once led a standards discussion beginning with this rule: We always had to come up with the worst possible name for every element. That way when someone said "I think foo is better" (and they did) we could all laugh and say that's exactly why we won't use it.

It totally doesn't matter what we call it. We can learn to use anything. There are more important things to spend time on.

Think of people whose first language isn't English. To them the names we choose are symbols, they don't connote anything.

Write specs in plain English

I write for people who have brains, like to think, are educated, care about interop. I understand that people reading specs are not computers.

Explain the curiosities

I also try to explain why things are as they are because people seem to be interested. But only after explaining how it works and providing an example.

If practice deviates from the spec, change the spec

In writing the spec for RSS 0.91, I found that a lot of the limits imposed by the earlier spec were being ignored by developers. So I left the limits out of 0.91 spec. No one complained.

After RSS 2.0, the format was frozen, so no more adjustments based on practice.

No breakage

Version 2 of your format should be backward compatible. This means that a version 1 file is a valid version 2 file.

Don't break the installed base. (Not that you can. There are still lots of people running XP even though Microsoft said it was over. And that's a commercial product, not a standard.)

Freeze the spec

At some point, when the new ideas have slowed to a trickle, and as a base of compatible software develops, freeze the spec, but provide an extension mechanism so new ideas have an outlet.

Developers need a foundation to build on, one that is fixed and isn't moving.

Keep it simple

Beware of open formats that are impossible to fully support.

XML-RPC could be fully supported in a few days. You could never fully support SOAP. I believe this is no accident. Large companies crafted SOAP so they could say they were open without interoperating with competitors. The goal of XML-RPC was to make it easy to interop.

Developers are busy

Now you've got a popular product and your data formats are open and documented, you are encouraging your competitors to be compatible.

Next thing to do is to create a toolkit in at least one popular language that shows how to support the format. Real working code can help fill in the blanks for the spec. Some developers will use the sample code without ever looking at the spec. I know I do.

Mail lists don't rule

There's a weird bit of psychology that seems to happen on mail lists set up to discuss interop. The people there feel like they can make decisions that the world will then obey. You can hear it how people talk. They seem to believe they have arrived at the top of the pyramid and now they are masters of the universe. Actually, they're just people on a mail list. No one, not even the other people on the list, care what you think.

Same is true for real world conferences.

Praise developers who make it easy to interop

I'm thinking of Slack. They didn't have to make it so easy, but they did anyway. It's the web way, it's the strong way. They're saying they want their users to be free to leave at any time. That they should stay with Slack because their product is the best, not because they have to stay.

Thanks for listening!

If you have comments or questions, you can use the GitHub group

Just post an issue related to this document. 

There's also a slide-show version of this, suitable for presentations.

And thanks for making it this far.


Knock wood, I think I have all the glitches out of the setup of my main Mac. No rainbow cursor, and Time Machine is backing up the system. And I have a huge amount of space on my external boot disk. These were the main problems with my previous setup.

To get it done, it wasn't enough to get the new external drive set up, I also had to format the internal drive. And that was a little tricky, for me at least. 

So I'm happy to have a radically nice desktop computer setup. Finally. 

It should not have to be this hard...

A picture of a slice of cheese cake.

This came up in a thread on Twitter, and I realized there is no write-up or even an example of a good way to advertise an RSS feed on your podcast page.

Here's the problem. If you put a link to the RSS feed alongside the links to iTunes and Stitcher and whatever else, you're going to get a bunch of emails from users about how your site is broken. I know, because I've gotten those emails. 

So you're in an organization and the boss says Do something about this! So what's the easiest thing to do, considering that you're an overworked web content person? Remove the link. You feel a little guilty because you know you're removing a resource that you yourself would want there, but this is your job, and you have to keep the boss happy. 

I just want you to know that I understand. I get it.

So here's the optimal answer. 

Create a simple page that says "This is a link to our RSS feed. It's used by developers and hobbyists to build their own listeners and it helps support innovation on the internet." 

Right below that put a plain link to the RSS feed. Assume the user knows to right-click. Remember this is for developers and hobbyists. 

Point to that page from your podcast landing page, using the RSS icon alongside all the others. 

Tell your boss it's good for flow, will get more listeners, especially technical people who you can hire to help me (the overworked web content person), and yes you probably still will get some emails because some people like to write emails, but you will know that you're feeding the commons, and helping other developers innovate, and also keeping podcasting from being controlled by silos. All that from a little icon! :-)

Here's an example of such a page...

One more thing, there is a standard way to advertise an RSS feed, and it's supported by all the browsers. It works too, and if you have a choice between one or the other, use the standard way. 

If you're running a campaign -- think about what you can do now that makes the world a better place. Your campaign is drawing huge attention and money. Most of it is wasted on lies and attack ads. Take a small portion of the money and attention to start doing now the things you hope to do when you're in office. This will turn out to be good politics too. And the process can continue after you're elected. it will make sure you're not too deeply ensconced in the bubble of government. And if you lose, at least you can say the campaign was good for everyone, people who voted for you and people who voted for the other guy.

Before 2010, on my blog, I could have long and short items. I could use HTML. Link to as many places I wanted, where ever I wanted. There was no character limit, so the short items could grow if they needed to. The same format could accommodate post-length bits with titles that were archived on their own pages. Every item appeared in the feed, regardless of length, regardless of whether it had a title. I could shuffle the order in a given day, easily, because the text was on rails, edited in an outliner. 

It was great. I didn't know how good I had it at the time.

When Twitter became popular it threw a monkey wrench in my blogging act. Where to put the short items? So I stopped posting small items on my blog. And everything needed a title to make Google Reader happy.

There was a gap, items that were longer than 140, or had multiple links, but were too short to get a title. There was no place for them. So much work for something small. 

I'm just writing this evening to say I want my old blog back. I liked the freedom. My ideas flowed better.

You know some of blogging is about writing for other people, but I also write to organize my thinking. Scattering things all over the place makes me disorganized. I want it help me focus, to factor my thinking.

PS: Here's an example of a day on my old format blog, chosen at random. Another. Two more.

Long-term if we want a more functional civic society, make a course in basic journalism a requirement in high school and college.

A simple idea, but this is a hangup in the education world, where journalism education is often run by journalists, or by academics who need to maintain good relations with journalists. 

Pretty sure they don't want the masses to know how to do what they do. But with the advent of the web, when publishing became almost free, the education system should have adjusted and started teaching journalism far more broadly. A society that was fully excited about technology would have. And we might have headed off a lot of the crises we're dealing with now.

I tweeted the message at the top of this post, cc'd to future-of-journalism people I know in academia. I'm not trying to embarrass anyone, but I think this needs to get on the agenda, and I don't see how anyone but a blogger is going to do that.

Of course blogging is interested in having lots of people understand journalism. It's on the path to fully developed blogging, not just from a technological standpoint but from a human standpoint.

Another way to look at it. We have new incredibly powerful tools for journalism, and have very little or no idea how to use them, or what they are capable of, and what they do for (and to) journalism. 

An idea for a movie...

A bad update bricks all iPhones world wide instantly.

People wander the streets of cities aimlessly, staring at their now dead iPhones, trying to remember what they're supposed to do.

Huge traffic jams snarl the freeways, with cars stopped, drivers not knowing where, or even if to exit.

A team of crack programmers work thru the night trying to fix the bug, give up, and then realize they lost the backup.

Final scene, POTUS puts the world out of its misery and launches the nukes.

We did not get a clear statement from Google re the exposure of users who fell for the phishing attack. They did access our email, yes? Can we get any info about how much they read? Does Google keep logs? 

Suppose I disconnected all connected accounts. Were the phishers still able to access my account after I cut off permission? Did their script stop working? I suspect not because when I cut off Chrome it seemed to still have access to information in my Google account. 

There's a lot that we don't understand about how Google uses permissions. Usually it's not crucial, but today, if you fell for the trick (as I did) it's very important to know how much exposure there was, and perhaps continues.

Assurances that they've protected about this in the future isn't very consoling if you're exposed right now. 

I have to say the work that professional reporters did on this was totally inadequate. Mostly just rote security theater. Change your Google password, enable 2-factor? These have nothing to do with a phishing attack. Our passwords were never exposed. If anything you should change the password on every account but Google. (Of course it does no harm to change the Google password, and I did. But more important to change passwords on accounts that communicate to you through GMail.)

Google could help us in ways they haven't. A three-tweet advisory is not enough for something this serious. If I was able to take time to write a blog post explaining what the exposure is, then a company the size of Google can do that and should do much more. 

PS: I have an idea how influential Google is. I feel some trepidation in criticizing them. I imagine reporters whose livelihood depends on access to Google have even more at stake. We have to go through that fear. Google doesn't need protection from us, for now we need protection from Google more. 

As I did..

I immediately went into Google's security site and deauthorized all apps that I had given access to my account.

I had been very conservative about giving access, so all I had were (what appeared to be) Google services and AirBnB. I deleted all of them.

I'm guessing that they make it look like they're Google Docs? 

Not sure about that.  

The phishers got access to my Gmail and contacts. Not so worried about the contacts, there the damage is that they transmitted the phishing email to them. Hopefully they were all smarter and most suspicious than I was. 

Anyway what else is there to do? Not sure..

I changed passwords on a bunch of important accounts, just for good luck, not that I think the passwords for any of those accounts are in my Gmail inbox.

If you have other ideas, or questions post them here.

PS: Here's a Buzzfeed story about the scam. 

Here's how I solved the Mac backup problem.

Wiped the big new disk, fresh-installed the latest Mac OS on it (Sierra).

Booted from the new disk.

Downloaded and installed the software I need to run my world. Chrome, GitHub, Atom. Copied the OPML Editor from the previous boot disk.

Installed Dropbox and logged in. Let it populate. This is actually a much bigger step than installing the OS. Hopefully it'll be done by tomorrow morning. In the meantime I can use the machine.

When it's done, I'll turn on Time Machine with an empty fresh disk as the backup device.

Eventually I'll wipe the old internal startup disk, assuming everything goes well.

The mess that is Mac

Ever been to Penn Station?

It used to be a majestic structure, a train station from the age of trains.

When a city's rep was a function of the majesty of the station.

Then they decided majesty didn't matter, and they decapitated it. Removed the majesty and kept the trains.

The Mac OS is kind of like that. I don't remember Penn Station before it had its head lopped off, but I do remember the Mac.

I wrote three posts in early May 1997, exactly 20 years ago.

I remember at the time thinking these were special. That I was figuring stuff out, coming into my own as a writer, and at the same time creating a record of the process that got me there. 

Here are the three pieces:

  1. May 2: Proof that you exist.
  2. May 5: Do you have a Head?
  3. May 7: Programmers.

The last one is imho the best. But they go together. 1-2-3.


A question/problem for my Mac system friends.

A few weeks ago Time Machine backups of my internal hard drive started failing. The error message (which is no longer available so I can't quote exactly) says that I should check the disk that I'm backing up to. I did, with Disk Utility. It's okay.

So I did a backup with another disk, and another, and another. I even bought a brand new disk, formatted it freshly, and the backup there failed too.

So I conclude that the error message is lying, that the problem isn't with the media I'm backing up to, it's the source disk that has the problem. So I checked it with Disk Utility. It says it's fine.

So now I have a conundrum. I wanted to do a backup and then start using the new drive as my boot disk. But I obviously cannot do that. Unless one of the brilliant people who reads this has an idea what I can do to get one good backup from the internal disk, before saying sayonara!

Any help much appreciated. 

PS: Yes I know I can start over from scratch. No need to suggest that. Thanks.

PPS: I decided to start over from scratch. It's working out pretty well. 

The next a continuing series of stories about podcasting.

If an angel tapped me on the shoulder and asked what is the one thing podcasting needs more than anything, I would have an answer. 

What podcasting needs more than anything is a quick easy answer to the following question --

Find me something good to listen to now.

  1. It's personal. Note I didn't say find anyone a good podcast to listen to now, I said find me one. It should be a podcast that I, an individual person, will find good to listen to. 
  2. It's immediate. I don't want to subscribe to a podcast that will someday yield something good to listen to, I want it now.

For the last 17 years podcasting has been answering the wrong question: I want to subscribe to this. That question doesn't come up often, if ever. And podcasting doesn't even answer it very well.

Think about it. Where are you when you decide you want to subscribe to a podcast. That's a trick question. How about nowhere. How about it never happens. I'm never looking at something on the web or elsewhere and think oh that's something I want to subscribe to. 

There are shows that I like so much that it's almost certain that I want to listen to whatever they have available right now. Planet Money, Fresh Air, West Wing Weekly, Radio Open Source are examples. But it's never guaranteed that their latest thing is something I want to listen to now. It might be a rerun. Or maybe I find the subject distasteful or disturbing or the person they're talking with or about is of no interest. 

Okay so if the question is Find me something good to listen to now, then how do you do that? What information do you need to be able to get that done? 

It's collaborative. You need to know what I've listened to that I liked. And you need to know what my friends have listened to that they liked. So we can serve as recommenders for each other.

Facebook's social graph is good enough to get this started. I know because I tried it manually a couple of years ago. I posted a message asking my friends to recommend podcasts. I then made that into a subscription list and fed it into River5 and the result is Podcatch.com. It's highly personalized. It works well enough that I get an answer to FMSGTOLTN pretty much 100 percent of the time. 

To do this for other people we just need to systematize it. Make it so that it works for anyone's friends, and it's dynamic, it's kept up to date. When my friends' interests change, then the recommendations change. 

Also to really work, Facebook isn't the right place to accumulate the data because amazingly you can't listen to a podcast in Facebook. They're too busy reinventing human senses I guess.

 A podcast listening client would be able to accumulate the data. But here's the catch, I don't want to be locked into any one client. So if they aren't giving the user access to their own listening data, and they aren't making it easy to share with others, then I'm not going to use it. It's possible that such clients exist, and if they do I want to know about them. 

How important is this? Very. A similar problem was there for RSS in the early days and it was never solved because the reader vendors were unwilling to accept leadership. They all assumed they were going to dominate, or their investors wouldn't let them share the data. Then along came a silo that didn't use RSS, Twitter, and it solved the problem. RSS languished with no love from the dominant vendor, who eventually left (Google Reader). Today RSS still works, amazingly, but it's not a happy ecosystem. It serves as a cautionary tale for podcasting, in how it can go very wrong. 

I'd say this is the big challenge for podcasting in 2017. It's why I'm worried about it getting siloized. The practical problem is that then there will be a gatekeeper, who behaves like Facebook and controls an opaque algorithm and the medium is closed off to non-Facebook developers, and we lose the freedom that has made podcasting such a wonderful thing. 

An addendum to the creation story of podcasting.

At the end of 2004 the creation story was MTV star creates podcasting. Of course that was wrong, it was a partnership. And many others contributed. It wasn't an act of invention or a single person's accomplishment. Lots of people contributed.

Lately Chris Lydon has been getting much-deserved credit for his role in the bootstrap. For a good year he was the leading edge of podcasting. A lot of today's most popular podcasts owe Chris for his inspiring early work.

Steve Gillmor and Doug Kaye also did their part.

And don't discount Adam Curry's contribution (the MTV star). Once he got his podcast going a whole community of podcasters followed. Many of today's podcasters follow the form he pioneered too, which is vastly different from Lydon's.

Me? I was the geek and the showrunner for the first few years. I held the conferences and twisted the arms and wrote the code. If you don't think there's a lot of that in bootstrapping a new medium, well you don't know how it works.

Part II

One of the reasons the story of podcasting is so scrambled is that no one has done a thorough and patient reporting of it.

Reporters sell a story, and have a fixed amount of time to report it, so they interview one or two people, read the Wikipedia article about podcasting, and repeat the same mistakes the previous reporters made. I've seen this happen in other areas, mistakes in Wikipedia become an alternate truth, long before Kellyanne Conway and DJ Trump

Until recently the standard podcasting story left a whole year out, and Chris Lydon's contribution. It's as if there were a blank unfilled spot in time when nothing happened in podcasting, yet the opposite is true.

i've just been casually looking for stuff in various archives, including the BloggerCon websites, and came across a gorgeous description of podcasting by Adam Curry written in Sept 2004, in advance of BloggerCon III in November. I asked all discussion leaders to do this. He told the story in a very clear way from his point of view, as a Dutch guy (you can totally hear that), a radio pirate, and somewhat bitter visionary (as all visionaries become, given enough time).

BTW, it's signed Ron Bloom, but I'm pretty sure it's Adam who wrote it. It sounds like him. And as far as I know this document has never been cited in a story of the development of podcasting. 

When we were booting up podcasting, at the first BloggerCons at Harvard and Stanford, one of the core values, if not the core value, was no silos.

If you collected information from users, such as subscription lists, you had to share that information with the users and your competitors. If you're about making money you had to do it some other way than locking users in.

Of course not all subsequent vendors bought into that. But I did. We followed that guide in sharing the OPML source of the podcasting directory that Adam and others maintained, for example.

I'm concerned that the newest podcasting companies want to create that kind of lock-in, are in the business of creating silos.

At the Perugia journalism conference they had a panel with a 10-year-old boy and several adult journalists. The goal, I guess, was to find out what the boy thought about the news. It was a noble idea, but imho it didn't work. Kids in the midst of adults will act more or less as they think the adults want them to act. I remember what it was like being a kid myself. Perhaps a panel of kids, with the adults in the audience, might have worked better. But I suspect they wouldn't have stuck to the topic.

It occurred to me much later that this is typical of developer conferences. They might have a panel where developers are on stage and the platform vendor employees are in the audience, but only heavily supervised developers, and ones not likely to rock the boat too much. Thus depriving everyone of what could potentially be a lively and useful discussion.

What if instead they had a panel with adult users of news, telling the professional journalists, in the audience, what frustrated them about the way the news was covered. There's a lot of potential in that. But news people, like the people who run big platform companies, seem reluctant to take the risk of letting their users speak freely in their presence. 

When I did my session at the Perugia conference I spoke as a technology developer who wanted to work with journalists. I saved my criticism in that session for other developers, so the journalists seem to enjoy it. I could just as easily have led a discussion about how journalism led us off a cliff in the 2016 elections, and how if we want to save what's left of democracy, it's going to a require radical transformation in how news works. I suspect if I had done that, the journalists would have walked out of the room.

I am experiencing this frustration watching some of the same people who were at Perugia, who I spoke with over meals and in the hallways about the dire state of news, tweeting about a journalism conference they're at in the US this weekend. As in Perugia, they talk about users of news the same way platform vendors talk about users of their platforms. In aggregate. Theoretical terms. And missing the point, imho. 

Bottom-line: Have the guts, if you're going to have a professional conference, of giving  substantial time to the users of your profession's products. It's a perspective that's often missing, a very important one. If you want quick productive change, it could be the most direct path. 

A new TV show format. Tours of neighborhoods in various parts of the US. Show people in different parts how we live, and vice versa.

Walk through a typical supermarket and show what you can buy and what the prices are.

The nearest airport.

An average commute.

See it as a person living there would see it.

Confront perceptions with reality.

Reality TV that is real reality.

PS: This Trump press release should give you an idea why this is needed.

I realized something this morning, and I don't know why it escaped me for so long, it's one of those things that's just plain obvious, maybe everyone else can see it, but it's about me, so I couldn't.

Here's the thing I realized.

No one knows what I do.

Maybe with one exception, possibly I know what I do. Or perhaps I know what I'm trying to do. What I'm trying to do looks more and more hopeless, I guess. Because a big part of what I do involves other people using what I create. There really need to be a lot of them for it to work.

Here's what I think I am.

I am a software developer.

I don't work for a company. I make software because it pleases me to do that, the way a potter makes pots, or a gardener tends a garden, or a cook prepares meals, or an architect designs buildings. 

That's it. That's what I do.

It's not my imagination. There's real software out there that I created that people use. But I think even the people who use it don't know. I think they think there's a company here, when there's just me.

PS: Of course I also blog, but that's part of being a software developer and a human being.

PPS: And I hack media. I'm always trying to imagine new ways to use media to help us evolve, because we need to do a lot of that quickly. Because our media isn't evolving we're actually spinning backwards, at a time when we can ill-afford to do that.

PPPS: Don't cry for me Argentina. I have had it pretty good. I share my observations here. This is just one more.

I keep watching MSNBC, but last night my heart just wasn't in it. I made it through the first fifteen minutes of Maddow and then switched over to the NBA playoff game between the Oklahoma City Thunder and the Houston Rockets. At least there the outcome was somewhat in doubt. Watching Maddow I came to a conclusion. And by conclusion I mean, an end. 

We know that the Trump campaign worked closely with the Russian government to influence the election. It isn't in doubt at this point. So many of their campaign officials met with Russians during the campaign, with people who laundered Russian oligarch money, even. The list includes the National Security Adviser and the son-in-law of the president. His campaign manager was a Russian agent for crying out loud. And he lied about it, openly.

At this point we can rest until the Republicans in Congress decide it's time to do their jobs and get him out of the White House. He does not belong there. I don't think Pence would be much better, he's a smarmy former Limbaugh-alike radio "conservative." Whatever he is, however bad or corrupt, we can't survive much more of Trump's mad incompetence. We're on the brink of nuclear war, we knew that would come, and now it's here. We still have the power to turn this around. But the hour is getting late. 

What more can watching Maddow accomplish? We know what we know. More evidence will come, that's for sure. It's like taking the temperature in August in NYC. Yes, it's hot and humid. I didn't need to watch the news to know that. 

Bottom line: We know he's in debt to Russia. They have the goods on him, the only question is how bad it is and I'd bet it's very bad. Impeachable? Of course. The guy is guilty and is driving the US and the rest of the world over a cliff. 

There's a new version of Electric River

Here's a list of the features in the new release.

Podcasts. As it reads feeds if it encounters any items that have audio enclosures, it downloads the file into a new podcasts folder in the River5 folder. There's one subfolder for each feed, so the podcasts are grouped by feed. There are new config.json settings that allow you to turn podcast downloads off or to control where the podcasts are stored. 

Read all feeds now. A new command in the Main menu. If you choose it, River5 will start reading feeds immediately, and will read all the feeds you're subscribed to, one at a time. The only feedback are new items added to the river display. (If you want to watch the progress, you can choose the Dashboard command in the Main menu.)

config.json in the River5 folder. We automatically create a config.json file in the main folder, with a few of the more common values with their default settings. This makes it easier for people to find this important file, if you want to customize the app and provides examples for how JSON format works. You should of course only edit this file if you know what you're doing. If you screw things up, just delete the file and restart the Electric River app and it will recreate the file. 

A quick look into the metaverse of Your Constant Developer working on a new podcast client. 

Developers need a test podcast to work with. The first time around it was the Grateful Dead. This time I'm using a beautiful poem by John B. McLemore from the Shit-Town podcast. I thought it was appropriate. 

And there's a reward, I get to enjoy his spirit every time I do a test. It makes me LOL, every damn time. Especially when I think he could have been a character in my uncle's Florida menagerie, when we were listening to CBS Radio serial dramas in the dark drinking sweet ice tea in canning jars and smoking sensimilla. 

Here's the podcast. 11 minutes.

Some takeaways from this weekend's podcasting conference at Columbia.

  • Primarily this conference was by and for producers of podcasts. I was the only developer who spoke, and not in any detail about how podcasting works, other than to say it's open and not dominated by silos and that's where the freedom comes from. 
  • As far as I can tell there is not much awareness of the technology of podcasting among producers. 
  • I had a podcast-listening glitch earlier today, walking around town. I thought I had Chapter VI of Shit-town on my iPhone, but I didn't. It took me five minutes of navigating through confusing sites, the app store, iTunes, who knows what, to get to a place where I could just click a link to listen. The state of the UX for podcasting is awful. Unacceptable for a technology that's 14 years old.
  • The lack of improvement imho is due to a fog of companies and developers who think they dominate or expect/plan to, and won't talk with others. 
  • Podcasting should be a pleasure. Finding new great stuff to listen to should be easy and instant. And you should be able to get that without giving up the freedom. 
  • I have to figure out how to cut through the fog and plot a course and ignore the people who refuse to talk, and just fucking go.
  • There are always silos trying to start up. I really doubt any of them will gain traction. 
  • I'm going to keep building with Electric-River as the base. Next up I want to teach it to download podcasts to a user-accessible folder on a desktop. If you have MP3s on your disk, you can control where the shows are and don't have to have so many connectivity surprises when you're out and about. 
  • Shit-town is great. Here's the star of the show on where we're at in America and what Putin can do to help us out of our misery. I'm writing this post in the style of John B, if you're wondering why I sound so pissy and uppity.
  • Tim Berners-Lee is on the right track, preaching that users should control their own data. I'm concerned that this is going to come with another prescription that we all use RDF. We get a lot of interop from OPML and RSS, both of which are variants of XML, a format developed by his W3C. 
  • I wrote an open letter to Evan Williams in 2012 suggesting that we make history by helping to undo the siloisity that was creeping into the blogosphere. No response. 
  • It's very likely there would be no podcasting today if we had not gotten early and steady support from NPR. That's because in 2003, Tony Kahn at WGBH listened, and thought podcasting was a good idea, and spread the gospel throughout NPR land. We got lucky, we found the guy at NPR that everyone there listened to, and he believed. Tech should have more people like Tony. 
  • BTW, Martin Nisenholtz at the NYT played the same role for RSS. Without the support of the NYT, it's likely that the RSS community would have melted down into many competing incompatible standards, neither reaching critical mass. 

Moral of the story: Don't ever doubt that technology users can have enormous power. And as a technologist, don't be shy about searching for these people and listening to them and trying to help them win. Be careful about the first impulse to dismiss. Great things can result from these collaborations. The myth of the lone inventor dreaming up the future ensconced in a lab isn't how it works. 

I had a brief Skype chat with Chris Lydon and Mary McGrath earlier this week. We talked about the usual thing tech people and journalists talk about when we get together. What's the future of journalism on the Internet? I have some strong ideas about that, all based on the Sources Go Direct philosophy, but I was surprised to find that Chris and Mary were totally on board. 

Here's the idea.

Chris and Mary do a weekly NPR show that's also a podcast. (Chris is the host, Mary the producer.) Since the election they've been talking with scholars and political insiders about the state of government in the US. 

I wasn't listening to it, sad to say, until a friend told me I should, that it's the best thing out there on politics in the US. I started listening, and enthusiastically concur. It's the adult stuff, reality-based, not the mush you get on the cable networks, or the investigative details you get from the Washington Post and the NY Times (these are valuable but they don't provide a big picture that Chris's collaborators do). 

Okay, so if you were trying to figure out where the value is in Chris's program, you'd have to put the Chris/Mary combo at the top of the pyramid. It's their rolodex that makes it work. It's the extensive reading and listening they've done, over twenty  years, that means they know who to call and can ask the right questions. 

Next level down the pyramid are the people in their rolodex. They know their shit because they've spent a lifetime studying the history of kleptocracies, the Soviet Union, Russia, fascist movements around the world and in the US. Or they've been inside politics for a long time and have memory of Nixon and perhaps even McCarthy. Watergate and Iran-Contra. The buildup to the war in Iraq. People who knew the people with the levers of power. 

One more level down the pyramid, where the greatest value is, by sheer volume, are the people who are smart enough to be listening to Chris's show. Probably a very large number of them are in Boston, because his show is broadcast on WBUR. But because it's 2017 and his show is distributed as a podcast, his braintrust, as I call it, is distributed around the world. 

To summarize, Chris/Mary orchestrate, the people in the rolodex opine, and the braintrust listens. 

Let's imagine a number that represents the quality of the Chris Lydon braintrust. That number would be very high. And another number that represents the size of the braintrust. That number would be low because most of the smart people in the world don't know about it. (And of course it's their goal to change that.)

Now let's take the Washington Post and NY Times. They probably have relatively high quality numbers, and large size numbers, compared to Radio Open Source. The product of these values is large. Another publication that I think of in these terms is The Economist. Their readership is really powerful, intelligent, educated. Their quotient would be high. 

So here's the question this thinking raises, given the new distribution medium. How can a podcast like Chris's or a pub like the NYT, WP or Economist, take advantage of the breadth and depth of their braintrust to improve the product, make it more relevant and more profitable? I have some ideas about that. We'll discuss it at the Unplugged Soul conference, where Chris and I are doing the keynote interview tonight. 🎈

PS: Last night on Maddow for the first time I heard her use the term "open source" to refer to reporting about the Trump/Russia scandal. Fascinating. She used it many times, so it was deliberate. I wonder if I missed something in the week I was traveling and if she's explained how she's using the term. Clearly it's not the way we use it in the tech world. I must ask Chris how they arrived at that as the name for his podcast. 

PPS: I've noticed that the NY Times is accepting the bombasticity of the Trump personna, even encouraging it. It came out in an interview with Trump, when they pressed for details about whether or not Susan Rice had committed a crime. There's no question the reporters knew this was bogus, yet they accepted what the president said as legit. When they do that, I as a seeker of truth, and believer in the values of the US, am betrayed. 

I came home from Italy with a cold. The first one in a few years. I thought I had come back with all these ideas to write about, but even though I feel well enough to write, unusually for me, I find I have nothing to say. 

One thing that's nice about going away from the US for a week is I feel removed from the Trump madness. I was unable to keep up my steady diet of Maddow. I got home on Monday night just as she was coming on. I couldn't get into it. Same thing has happened each night since.

So much of what people report seems to be showing that Trump is inconsistent and ill-informed, and irresponsible. But this is already factored in. The guy is a shameless kleptocrat. He's almost certainly maneuvering the country to make himself richer. He probably already is much richer than he was when he took office. Before long he will pass Putin as the richest person in the world. 

As with the kleptocrats who ran the Bush II government, Cheney and the defense contractors, this is a very inefficient way to transfer wealth. Too much waste. Someone should try to make a deal with Trump and the Repubs. Resign, you get to keep all you stole plus a premium. Surrender your Twitter account and finish your days playing golf all around the world with other rich folk. They can even teach you how things work, how exciting for you, now that you seem to care! 

I guess I had something to say after all. 🎈

PS: Another idea. Since Putin gave us Trump maybe he should have to take possession of him after he leaves? Or maybe he and his hackers can figure out how to get him to leave sooner? We can make it worth his while. I bet by now Putin has buyer's remorse. If POTUS blows up the world, Putin and Russia are blown up too. There's no magic shield that protects him from Trumpocalypse.

PPS: I was going to point to an article on a news website about Putin being the richest guy in the world, and while the major sites are much faster than they used to be, they are all still too offensive to point to. Time, for example, starts playing music almost as soon as the page loads, and then starts playing video. What if you're working in an office or reading in a library? Can't point to that. And US News pops up a Subscribe dialog before it lets you read anything. Now that's just insulting. So I left out the pointers. Trust me. A lot of news orgs think he's the richest guy. You can do the search yourself. 

PPPS: The NBA playoffs start on Saturday. I'll make a guess for the first time on this blog. Boston vs Golden State, with GS winning in five. 

PPPPS: If only the old Mission Impossible team were still around, in a dark corner of the CIA or KGB. They could give Trump a drug to convince him that he won. Martin Landau and Barbara Bain would play the role of Kushner and Ivanka. It doesn't matter what he won, just that he won. Yes yes, you won, you really won, you were tremendous, you are the greatest, now goodbye! 

PPPPPS: One more thing then I really have to go. This was my first trip to Europe, ever, where I had good connectivity all the time, thanks to Google Fi. It worked everywhere, reasonably well, all things considered. My last trip to Italy, even though I had T-Mobile, which was supposed to be good in Europe, I never got online at all. 

I'm doing a keynote at a podcasting symposium at Columbia on Friday.

Starting to think about what I want to do there. 

We're lucky that podcasting is not dominated by tech companies. Not that they haven't tried (thinking of Apple). Still to this day when people say at the beginning or end of their podcasts how to subscribe, it's a confused jumble. At some point some tech company is going to fill this void. I want to see the open web fill it first. 

Perhaps if there were a community site, a non-profit, that acted as a clearinghouse for podcast subscriptions? Technically totally doable. But is there a will to take advantage of the fact that podcasting is still mostly silo-free?

Contrast this to the talk I had to give at Perugia, where I urged people to not give up on the open web. That the path to our freedom was not closed by Facebook and Google, as it might appear, because they still do an inadequate job of news distribution. 

Podcasting is not so-controlled by tech, at least not yet. 

That's the theme for the State of the Podcast for 2017, according to me! 🎈

It's been interesting in Perugia with me being the designated rep of the open web.

Many many interesting conversations.

Facebook, Google and Amazon were everywhere. They paid for a lot of the conference.

I had a rollicking session. A real come to Jesus revival for the open web. We started two new rivers at the show. One by a very popular startup in the Netherlands that's coming to the US (the startup Jay Rosen was singing the praises of, rightfully) and one from a journalism class at an Italian university. I'll share more info when I have URLs to share.

At one session, I wondered if Twitter had ever considered buying a major news org. I know the party line on that was no, but I think with Twitter sort of stuck in the mud, if that might not be an interesting way to get unstuck. Consider that the valuation of Twitter is over three times that of the NYT, Twitter is still a much more efficient attractor of value than the news industry, even with it being in the doldrums, as it is (disclaimer I am a Twitter shareholder).

I met a lot of interesting people, and spent major time with some people I already knew. I saw Hossein Derakhshan for the first time since he spent six years in prison in Iran. Lots to say about that. He's an amazing guy.

And many others. Just starting to sort it out in my mind.

Basically, I achieved my goal and much more. I wanted to get new rivers going in journalism. One in publishing and one in J-school. Perfect. With a few more, I'll have the beginnings of a Tom Sawyer evangelism strategy going. And I have some excellent ideas on how to take Electric River to the next level. 

At next year's #ijf the goal is to have reps of the open web on every panel that Facebook and Google people are on. I think that's a reasonable goal. And yes, also to bring some of what we've learned to journalism conferences in the US.

Checking in from Italy.

Every so often I hear from a developer who thinks RSS should be redesigned from scratch. I listen to what they think needs to be fixed and am reminded why it's better to improve the existing format through a namespace rather than starting over. Here's a story to illustrate. 

Every trip I forget to bring something and this trip is no exception. I didn't bring a power adapter that converts the format accepted by Italian wall sockets and converts it to the format accepted by an American wall socket. Of course all my devices, my iPhone, Android phone, Mac laptop, even my watch, are designed to work in America. 

So last night I was running off energy stored in my batteries in America. 

Why? Some tech guy in Italy or America decided their way was "better." And they never imagined that I would be trying to plug my American iPhone into an Italian wall socket. Or they didn't care. 

At the same time I was able to email back to the US, in an instant, because wifi is a standard that's supported everywhere. And I was able to post to my linkblog because RSS is well-supported everywhere. And I was able to read the item I posted to my linkblog because my iPad has an HTML browser that communicates over HTTP even though the designers at Apple didn't particularly like the web. They supported it anyway. And now ten years after the introduction of iOS I am able to use the web from Italy, or anywhere that has a wifi connection.

So when I hear  some programmer doesn't like XML, my answer will always be to offer to help them find a library that hides that detail from their software, and in doing so, help some traveler in some unknown space 100 years in the future. I think that's the duty of every engineer, everywhere, always.

For an upcoming demo, I'm going to show a river running on my desktop, accessible through the web, using Dropbox to do the bridge.

Actually the river will be running on my laptop. Using Electric River.

And to show that all rivers don't always look the same, I made a river in the theme of the Dancing Hamsters of the Old Days of the web.


Personally, I think it is quite "innovative."

Of course when my laptop is offline the data in that page will not update. But you will still be able to read the page. And as soon as my laptop is online again, you'll start to see updates.

I just had to change one configuration setting. I changed the folder the river.js files are written to. I put it in the Public subfolder of my Dropbox. Right-click on the file in the Finder to get the public URL

I created the home page by downloading the Hello River demo page, and modified it to point to the public URL. I added the hamsters, and saved it to scripting.com which is an S3 bucket.

We can make this even easier, and plan to.

Once upon a time, I was 30 or so years younger, and had just sold my angel-backed tech company to a VC-backed company, stayed six months, and then left to start something new. I was young, successful, a minor tech god in Silicon Valley, the whole world at my fingertips. And I wanted a job at Apple. 

My success had come from being one of the first to ship a product for the Mac in 1984, and then having the ability and courage to stick with it through a couple of bad years. This had endeared me to people at Apple. I knew a lot of the top execs there. They all used my software. It seemed natural to me that I'd continue my career at Apple, instead of as an outside developer.

I knew the reality that the world didn't, that being independent was a precarious existence. It was either feast or famine, but mostly famine. I wanted the security of a regular paycheck, health plan, an office, a boss even. And I wanted the benefit of shipping my software to all those people who used Macs. Instead of reaching a small fraction of the users, my software would reach them all, I reasoned. I envied the people who worked at Apple. (I would find out much later that they envied me too.)

One of my Apple friends, a top exec named Jean-Louis Gassée, said I should not work at Apple. A witty Frenchman, he explained I would not like to see how the sausage was made. He said it in a funnier way. It would be better for everyone he said if I continued to be independent. But I persisted. And nothing good came from that persistence. As convinced as I was that I should be "inside," the big company culture at Apple, contrary to the hype, prevented individuals from being powerful. Even if people were brilliant and driven, there was only so much a person could do.

A few years later, after developing a product that should have been system software, and being copied by Apple, my small team of three people met with the team at Apple that was doing what we did. We sat in a corner of a supersized conference room. The Apple people filled the room. There must have been 30 people there who did less than what we did. No matter, we eventually had to give up. There was no way to co-exist. They didn't want us there, even though they said they did. And when the platform vendor doesn't want you there, you won't be. 

I tell this story now, as I'm getting ready to go to a journalism conference in Italy, six timezones away. I see journalism making the same mistake I made in the early 90s. They look at the advantages what they call the "platforms" have over trying to make a go of it independently. They want those advantages. But also like me in the 80s, they want to keep their independence. They want to be mavericks, Woodwards and Bernsteins, and, at the same time, be paid by the people and companies they will have to challenge. 

I know tech culture now in a way I didn't then. Gassée probably thought I'd have to learn the lesson myself back in 1988, but he shared the learning anyway. There was no way to bring independence into a large company. It just doesn't work that way. If you want to be independent, you have to make your own way. Independence means the same thing no matter what direction you approach it from. 

I know I can't convince journalism to give up on getting the tech industry to make it easy for them, so I'm pitching a different idea. Have a backup plan, in case it doesn't work out with Facebook. The open web is here for you to use as an alternate distribution system. It's nice to have Disneyland and Yellowstone. Time-Warner Center and Central Park. Corporate-owned spaces and open spaces. They need each other. And journalism, done right, belongs more to the open spaces than the corporate spaces. 

Facebook and the open web. 

The web can't give journalism the money Facebook can, if that's what Facebook did. But we can find a way to make journalism work in the open context, one that supports independence, and imho is much closer to the way journalism, when it's done right, works. 


PS: In hindsight, I couldn't have developed blogging, RSS and podcasting inside Apple. Unthinkable. Apple came at the web from the opposite direction, viewing the world as elite creators providing vision and products to a mass of consumers. My philosophy, more in line with the original Apple view, and the original vision of the web, was to view everyone as both a creator and a consumer. I think this is the struggle inside journalism as well, long-term. And the reason Facebook has all the money, imho, is that they embraced the non-elite view, that the technology enables. 

PPS: In 1995, one of my first blog posts attempted to define the word platform. Mostly people had been using the word intuitively. Powerful idea. Worth understanding. 

PPPS: A couple of years after that I came to see the Internet as the platform without a platform vendor. It's the only place the platform vendor can't screw with developers, because there is no platform vendor. I went ahead and did all the things I wanted to do at Apple, for the web. In the end it worked out. 

PPPPS: But there's still more work to do.

Get the new links from this page sent via email every night.
© 1994-2016 Dave Winer
Last update: Thursday, May 25th, 2017; 12:57 PM.