Keep the Baby
Friday, May 19, 1995 by Dave Winer.
It was almost a week without DaveNet, but here I am, saved by the bell. It's Friday and you got it. So please don't complain!
Actually people have been very good about this little hiatus. I've gotten a few emails asking if everything is OK. Thank you. Much appreciated. Everything is OK. I've just had my head down on the Aretha project, doing lots of writing work. When I pop up for air, I'm usually thinking about playing in the garden. I've been writing docs, and that always puts me in a funky mood. The garden cures that. Dig a few holes, plant some seeds, dig up them weeds!
Programmers hate to write docs. I don't think it's because programmers can't write. I'm a programmer and I can write, but I still hate to write docs about my own software. I know way too much. It's frustrating. I want to keep plowing ahead. Writing docs is painful because I'll remember, the next time I'm wailing on code, adding feature after feature, that every feature needs to be explained. As I debug a group of features I create a backlog of unwritten docs. It's a regulator on the flow of new software. It's the sales tax on aggressive programming. It's when software stops being fun and becomes work!
Oh yeah, I like writing DaveNet stuff because I can roll and ramble. I don't have to teach you a skill. No pauses to make a screen shot, paste it into my draw program and spit out a GIF file. I don't have to watch my keystrokes or describe my mousestrokes. Or think of a simpler way to do the whole thing two hours later and rip up the pages to do it the new way; all the time wishing I could just go back to making more features. I can ramble in DaveNet, and the worst that happens is you kick out and go onto reading the next item in your inbox.
But writing docs is a necessity. Every programmer has to do it. So there's a yin to the yang. A sadness to balance the joy. It's OK, I say to my inner child, eventually it'll be done and you can play again! Soooon...
Last week we flipped the switch... Frontier is now free. That was quick! You can download the software from the Aretha website at http://www.hotwired.com/userland/aretha/. Or from the UserLand forums on America OnLine and CompuServe.
It's been a very interesting process. Everything got reset to zero. The printed docs for Frontier are in a warehouse in Gilroy. We've discontinued Frontier as a commercial product. The new docs are being uploaded to that website as they are being written.
As it stands right now, Aretha is only for the highly motivated, because the docs are so scarce. I've written up the most technical aspects of Aretha first, to interest and incentivize the most gutsy audience we have, sysops who run HTTP servers on Macintoshes.
Aretha contains a new, very simple and powerful framework for writing CGI scripts. I've seen the light -- now I want to run a Mac web server! It'll be a private one tho, a testbed and incubator, because I refuse to wear a beeper. Web sysops have to wear huge beepers that make very loud sounds in the middle of the night. I've been there, done that.
I must thank Chuck Shotton, firstname.lastname@example.org, for persevering. For months he's been dropping passionate missives into my mailbox telling me how wonderful it's going to be when Frontier and his WebStar server get married. Chuck was right. It's turning out to be a huge party!
I've also written the docs for a feature that's going to be controversial.
My website is one of two sites in the world (that I know of, I'm sure I'll hear of others) that contains scripts embedded in its HTML text. The scripts run *on the client machine* when the user clicks on them.
For example, on one of my pages, when you click on the name of an object that's stored in Frontier's database, Frontier comes to the front and opens the window. It's so natural you almost don't notice it's happening. Our data is integrated into the web! It's spoooky.
Your data can be integrated too. The possibilities for multimedia connections to the web are amazing. This is the hole that content people have been waiting for. *I* was definitely waiting for this because now I can seamlessly integrate my scripts with the web on both ends, on the server (the normal thing) and on the client (the new thing!). I can't wait to write systems that really exploit this connection. Web pages become software and vice versa. I think I got there first! And I think this is the gold nugget that intuitively we all know exists in WebLand. Major stuff.
But, it's going to be considered controversial because of the S-word: Security. This hole, it will be argued, opens the door for vandals to write viruses embedded in web pages that appear to be innocuous, but really do harm. The more powerful the scripting language, the easier it would be to do harm.
Before you sigh and write off the opportunity, I want to make a huge claim -- I think I have the answer to the security question -- one that allows the idea to incubate, and at the same time, protects client systems against deliberate acts of violence.
First, the ultimate protection is to quit Frontier when you're browsing the web. If the scripting engine isn't running, the scripts can't run. You're totally safe if Frontier is inactive. Of course, I want you to have Frontier running, so this answer is not acceptable.
Here's the deal. If the script is embedded in a web page that lives on my website, the script runs. If it lives in someone else's web page, it doesn't run. This way, I can play with the new open slot, try out new ideas, and we can all learn about it, and refine the approach to security together.
We won't be throwing out the baby along with the bath water.
I will be very cautious, and only send commands that show you things. You make the changes. It'll be active documentation. The web extends its reach onto your hard disk and to other scriptable apps running on the client machine.
Before moving on -- I'd like to remind everyone to be careful. Any program you download could do harm, whether it's written in a scripting language or in C. Any reasonably experienced programmer could easily write a routine that harmed your system. Such a routine could, theoretically, be lurking inside *any* program that you download.
But the system works because caring and thoughtful people are watching, and checking things out before letting them out to the public. There's an editorial system in place for apps. I believe the security issue for scripts is best addressed using the same system.
And finally -- there's no way around this -- you are responsible for the security of your own computer. It's unrealistic to expect that that the net will be a safe place. It mirrors the world. It can't be safe. You still have to protect yourself. Be vulnerable only when you can afford to be.
My mailbox has been a very interesting place this week!
A surprise that really shouldn't have been surprising -- just in the last few days Frontier has found a whole new market -- nerdy high school and college students.
It seems that the free-Frontier move is a popular thing on college campuses! I find this very refreshing, after spending years working with system managers at publishing organizations, large corporations and government institutions, and yes, even on college campuses.
As we get older, I think, our lives get cluttered with all the living we've done. Adding yet another software product becomes more trouble. Learning a new programming paradigm is a problem. But not for the younger people, who struggle to stay entertained. They have time to explore, to learn new things. That's what being young is all about!
Being broke is what being young is all about too. I remember this very well! But many of these young people have free Internet access and Macintoshes, so it's no problem. And now that Frontier is free, they can afford it!
Then I realized something even more exciting. It's May. By the time all this stuff is rolling it'll be June. Then what?
Summer vacation! Wooaaaah! Gotta love it.
We should see some great new youthful websites just in time for Back-to-School.
OK -- it's exciting. But let's come down to earth for a few paragraphs.
I can't support Frontier.
Already my mailbox is overflowing with questions -- how do you do this, what happens when you do that? There's always an answer, but as one person, I can't accept responsibility for providing the answers on a one-to-one basis.
We need an online support infrastructure. I'm doing my part, by writing project notes and crib sheets and posting them on the Aretha website. I'll take responsibility for explaining Frontier and the add-on components that I write, but even there I could use help.
Another committment I make: for the forseeable future, with vacations specifically excepted, I commit to being a regular participant on the UserLand forum on CompuServe. [Enter GO USERLAND at any ! prompt.]
I've spoken with Doug Baron and John Baxter and they make the same committment.
But we need to open other channels for providing support information. I want to pass this job off to the Macintosh scripting community. Our CompuServe, America OnLine and AppleLink forums are still there. Does eWorld want to start an independent support forum? Could Raines Cohen and the User Group Connection help? Yes... There's a Macintosh scripting list server. I have a website, and would gladly point it to other websites that provide valuble information for Frontier script writers.
I'd also like to have a page on my website with email addresses for people who are willing to contribute their time answering questions, according to their area of expertise. So, for example, if you have a lot of experience scripting Quark XPress with Frontier, and are willing to help, please send me an email, and I'll add your name, mail address and area of expertise to my website.
It's an interesting loop to close. In a recent email exchange with David Bruns, email@example.com, we've been discussing where the center of Frontier is. He says it's the object database. I agree. Then I say, no, it's really the outliner. He agrees.
This morning I realized it's neither.
It's the users! I obviously understood this at one time, just look at what I named my company! Ohhhh...
Big wheel just keeps on spinnin.
PS: There have been some new deals resulting from the freeing of Frontier. Two examples: our software will be on the next distribution CDs for two pivotal products, the MetroWerks CodeWarrior development system and StarNine's WebStar web server.
PPS: I'm cross-posting this DaveNet essay on all likely on-line forums. If you haven't read a DaveNet piece before, you can read all 96 essays at http://www.hotwired.com/userland/davenethome.html.