I have done just that. I cancelled cable, and pretty much stopped going to movies. Without the advertising on TV, I no longer have awareness of or desire for what I'm missing (some of which is surely very good).
The problem is, I don't enjoy funding the folks who are stealing my culture. Besides, there's more entertainment out there than I could see in a lifetime. The Net, books, and library videos are plenty, and the quality is generally much higher.
Sure, these data formats may be inefficient (although HTML and XML compress nicely, and good use of CSS can dramatically slim down pages). But efficiency costs. The solutions to your problems will therefore act as a barrier to access to those who can't afford it, among both content producers and software developers.
Take RSS and Atom. Anyone can install open source blogging software and produce a syndication feed. If we replace that with a more sophisticated protocol (which is often proposed) then folks with low-end web hosting won't be able to syndicate. Your friendly neighborhood open source developers might find the new spec too complex and simply not implement it in their (often PHP) apps; once they do get it working, the complex code is harder to maintain and improve.
Put another way: expensive broadband creates a digital divide in the audience. Fancy code creates a digital among producers. As with the impact of expensive production values on video games and movies, it would likely serve to squeeze out the creatives. It's the accessibility of the Web that keeps it from being just another mass medium.
You're right that some basic steps would help tremendously. I just read that less than 10% of feeds use gzip compression. The Apache guys put it in and no one else needs to know. But efficiency shouldn't rule. Optimization should come last, just as in programming.
This is getting at the real reasons why AJAX is up-and-coming. The technical details (performance, GUI widgets, even portability) are relatively unimportant. AJAX is about network effects.
Web developers can innovate faster because they can iterate faster. If there's a bug, it can be fixed over night. Similarly for suggestions from users, so experimentation is easy. AJAX helps change users into collaborators in software development. These are the thousand eyeballs that made open source successful, only more so.
There are more of those eyeballs because the barrier to entry is lower. Users can try your software casually because they don't need to install anything. (I use Google maps all the time, but I've never downloaded any of their apps. It doesn't matter how good they are because I've never seen them.) Copying is 100% free when there's nothing to install.
One poster dismissed AJAX as only useful for Web applications. But that's critical, because most new software is about communication, which is easier to develop with Web technologies.
Finally, the software business is changing from a focus on software to a focus on services. Amazon and eBay are the two most obvious examples of software companies that aren't about the software. Even Microsoft has been trying to move to a service model; they're trying to cope with the fact that the best technology to enable that threatens their core business.
In short, the value in software increasingly comes from communities - from the network. AJAX leverages that. Somehow when we start talking about AJAX we think it's about programming and technical details. It's not. AJAX isn't about the software, it's about the Web.
I agree. Engineering is more about the management of risk and uncertainty, which makes bloody good sense when you're designing a bridge or airplane, but is counterproductive for developing software. It's a management mindset: if we can manage risk, we can reduce uncertainty. One common way to reduce risk is to find a repeatable process. If the first bridge is stable, it makes sense to build another just like it. In software, this is exactly the wrong thing to do.
First, repetition is a sign of mediocre software. If you find you're repeating yourself then you're generally doing something wrong. Reuse your code and solve new problems instead. This further implies that it's not sufficient to divide the process into design by experts and implementation by monkeys, because good software should not be repeating itself at any level.
Second, as Spolsky points out, for shrink-wrap software only the best is good enough. With widgets, producing an identical widget at a lower price is a recipe for success. With software, it's a recipe for disaster: your competitor has already paid the up-front cost, so can't be undercut. The only way to succeed is to innovate, a process which is inherently risky.
Mind you, these arguments apply most clearly for those who are in the business of selling software. In other situations, such as in-house and consulting work, risk may be a bigger problem and innovation relatively unimportant.
I've spent the past few weeks porting code from Firefox to IE. It's been hell. I need to find the location of user-selected text in the document: Firefox supports (mostly) the W3C Range object, which provides a DOM node and offset, but IE's proprietary implementation provides only the pixel location (!). I tried using a trick with copy & paste to locate it, but when IE provides the content of the selection it tries to be clever: it adds tags. It also adds tags when you paste. So if you copy the selection and paste it right back where it came from, you'll get a broken document!
Both browsers also corrupt whitespace. The Firefox DOM collapses multiple spaces in a text node to a single space (sort-of - they're also still there, which is very puzzling). The IE implementation goes one step further and collapses spaces across element boundaries. So, for example, a leading space following a start or end tag may vanish (or not, depending on whether it preceded by whitespace). It also inserts newlines following tags for block elements. Oh yeah, and it capitalizes tag names and drops some close tags while it's at.
One more appalling bug: the DOM normalize function in IE crashes the browser. But only sometimes.
I've solved my problems, but it has taken longer than it did to get the whole system working in Firefox in the first place. (It's a web annotation system that allows for highlighting and margin comments for arbitrary HTML - I need to find the selection when the user creates a highlight.) The world would be a better place if IE crawled off and died.
Same here. My wife and I just cancelled our cable TV because it wasn't worth the $500 a year (when Fox killed Firefly, I figured watching TV was more trouble than it was worth). We haven't even bothered to get rabbit ears to replace it. Instead, we borrow videos from the library and from friends.
I don't listen to music, because I never hear any I like (certainty not on the radio). There's no way I'll pay $18 for a CD; neither have I any desire to pirate.
Blogs, books, and the Web have taken over as my main sources of information and entertainment. Without the endless stream of advertising, I'm barely aware of changes in the monopoly culture. My movie attendance dropped from at least one a month to maybe a couple a year. The only mainstream media I do follow are the newspaper and the Economist, which at least keep me in touch with the wider world.
It's a shame, really: I have enjoyed mass culture tremendously. I'm very angry that such a large part of OUR culture has been stolen from us. For now though, I'll spend that $500 on good books instead of bad TV.
I also stuck with Windows 2000. I got 10 XP licenses through my MSDN Universal subscription, but didn't use them. I have better things to do than mistrust my OS. Under what conditions do my activations cease to be valid? I could have called Microsoft, but just because the guy on the phone says something doesn't mean it's true. Worse, maybe they would decide something I wanted to do would violate my license (as far as I knew I was clean). Instead, I moved my data to open formats (Thunderbird, Open Office) in anticipation of moving to Linux. In the end though, I got a Mac.
Plagiarism and piracy are completely different things. Copyright violation is about authorization; plagiarism is about dishonesty. Here's Webster on plagiarize:
transitive senses: to steal and pass off (the ideas or words of another) as one's own : use (another's production) without crediting the source
intransitive senses: to commit literary theft : present as new and original an idea or product derived from an existing source
I think it's very interesting that plagiarism is defined here as theft, because that's how we've been taught to think of piracy. Plagiarism certainly feels like theft: you plagiarize my work, then you gain something and I lose something. Here's Webster on piracy:
the unauthorized use of another's production, invention, or conception especially in infringement of a copyright
That sounds much less like theft to me.
Mind you, I am not saying the principle of copyright is wrong. But if you ask me, plagiarism is far worse.
I can only hope that makes a difference. My personal site already looks better in Firefox; I'm considering hiding entire menus from users of IE - they'll get the core functionality, but not the full experience.
I'm also working on a web annotation engine. I have no desire to lock out IE users, but this requires the W3C text range standard - which IE, needless to say, does not support (plus I'm on a Mac, so IE isn't even an option). So it's Firefox only for now. With the current excitement around so-called AJAX applications, like Google Maps, I may not be the only one picking the browser with the standards support.
XForms is The Right Thing; Web Forms is Worse Is Better.
That's my general impression from the little I've read. XForms is loaded with coolness, but the spec is huge and it pulls in bits of other complex specifications, like XML Schema and XPath (as I recall). It's not straightforward to implement and that's a problem: witness the state of support for CSS 2.1 (let alone CSS 3).
Personally, I'm a fan of Worse is Better. We can have improved forms now and evolve towards something better. Right now, XForms promises little more than a dream.
Agreed. For me to use any word processor, the file format needs to be open, and it needs to be clean enough that I will always be able to get at my data. The cost of file format lock-in exceeds all other considerations.
No matter what happens, I will *always* be able to get at my OO.o XML files on any platform, or convert them into another format. Furthermore, I can write scripts to extract whatever I need from my documents. I have a script which constructs a blog from regular OO.o files; in the future I'm considering doing something similar to build a comprehensive bibliography automatically from papers I write.
I switched to Mac just recently; the two key considerations were the availability of native Unix development tools (e.g. Perl, Python, Apache, Ant) and of Open Office in the form of NeoOffice/J. If not for NeoOffice, I would be running Windows and Linux right now.
Down the road, a standard XML document format could turn word processors into front-end user interfaces for all kinds of authoring, just as spreadsheets are often used as user-friendly front-ends to data processing software today. Apple should seriously consider supporting the OO.o file format standard.
True, it is not enough for kids to learn simply what they want to learn. I remember learning to read was hard and I wasn't terribly interested, but it was necessary. But that doesn't let the schools off the hook.
Just because a good citizen should learn something does not mean that teaching it in school is productive. It may do quite the opposite. Teaching poorly, or at an inappropriate age, can serve to prevent the student from ever showing interest in a subject again.
Take history. This is one of my great fascinations, but when I was a teenager I just didn't care. Fortunately I don't remember anything about it - good or bad - and so there was no lasting impact. When I complete university and realized how ignorant I was, I started reading and fell in love.
But the best example of all - for me and countless others - is surely Shakespeare. I have met the occasional student who picked up a life-long love of Shakespeare in school. I have met far more who hated it with a passion and only grew to appreciate it when the rediscovered it years later.
Personally, I suspect that the majority who praise him only do so because that is what they are expected to think. I could be wrong. I am in my 30s and I still hate Shakespeare. I cannot separate his work from the trauma of seeing beautiful language (not just Shakespeare) torn to pieces in school.
Meanwhile, school did its best to block me from what I was teaching myself: about computers, literature, and the sciences. For the most part it succeeded, and while I cannot disown my own responsibility for that, this is not the action of a noble system.
School should vow to do no harm. Maybe then it could teach the great skills that lead to all the others: reading, writing, arithmetic, and rhetoric. I was fortunate - in elementary school I learned how to speak and construct an essay. Most schools don't even manage that, and still they trample and destroy the love of learning.
I have done just that. I cancelled cable, and pretty much stopped going to movies. Without the advertising on TV, I no longer have awareness of or desire for what I'm missing (some of which is surely very good).
The problem is, I don't enjoy funding the folks who are stealing my culture. Besides, there's more entertainment out there than I could see in a lifetime. The Net, books, and library videos are plenty, and the quality is generally much higher.
Sure, these data formats may be inefficient (although HTML and XML compress nicely, and good use of CSS can dramatically slim down pages). But efficiency costs. The solutions to your problems will therefore act as a barrier to access to those who can't afford it, among both content producers and software developers.
Take RSS and Atom. Anyone can install open source blogging software and produce a syndication feed. If we replace that with a more sophisticated protocol (which is often proposed) then folks with low-end web hosting won't be able to syndicate. Your friendly neighborhood open source developers might find the new spec too complex and simply not implement it in their (often PHP) apps; once they do get it working, the complex code is harder to maintain and improve.
Put another way: expensive broadband creates a digital divide in the audience. Fancy code creates a digital among producers. As with the impact of expensive production values on video games and movies, it would likely serve to squeeze out the creatives. It's the accessibility of the Web that keeps it from being just another mass medium.
You're right that some basic steps would help tremendously. I just read that less than 10% of feeds use gzip compression. The Apache guys put it in and no one else needs to know. But efficiency shouldn't rule. Optimization should come last, just as in programming.
This is getting at the real reasons why AJAX is up-and-coming. The technical details (performance, GUI widgets, even portability) are relatively unimportant. AJAX is about network effects.
Web developers can innovate faster because they can iterate faster. If there's a bug, it can be fixed over night. Similarly for suggestions from users, so experimentation is easy. AJAX helps change users into collaborators in software development. These are the thousand eyeballs that made open source successful, only more so.
There are more of those eyeballs because the barrier to entry is lower. Users can try your software casually because they don't need to install anything. (I use Google maps all the time, but I've never downloaded any of their apps. It doesn't matter how good they are because I've never seen them.) Copying is 100% free when there's nothing to install.
One poster dismissed AJAX as only useful for Web applications. But that's critical, because most new software is about communication, which is easier to develop with Web technologies.
Finally, the software business is changing from a focus on software to a focus on services. Amazon and eBay are the two most obvious examples of software companies that aren't about the software. Even Microsoft has been trying to move to a service model; they're trying to cope with the fact that the best technology to enable that threatens their core business.
In short, the value in software increasingly comes from communities - from the network. AJAX leverages that. Somehow when we start talking about AJAX we think it's about programming and technical details. It's not. AJAX isn't about the software, it's about the Web.
I agree. Engineering is more about the management of risk and uncertainty, which makes bloody good sense when you're designing a bridge or airplane, but is counterproductive for developing software. It's a management mindset: if we can manage risk, we can reduce uncertainty. One common way to reduce risk is to find a repeatable process. If the first bridge is stable, it makes sense to build another just like it. In software, this is exactly the wrong thing to do.
First, repetition is a sign of mediocre software. If you find you're repeating yourself then you're generally doing something wrong. Reuse your code and solve new problems instead. This further implies that it's not sufficient to divide the process into design by experts and implementation by monkeys, because good software should not be repeating itself at any level.
Second, as Spolsky points out, for shrink-wrap software only the best is good enough. With widgets, producing an identical widget at a lower price is a recipe for success. With software, it's a recipe for disaster: your competitor has already paid the up-front cost, so can't be undercut. The only way to succeed is to innovate, a process which is inherently risky.
Mind you, these arguments apply most clearly for those who are in the business of selling software. In other situations, such as in-house and consulting work, risk may be a bigger problem and innovation relatively unimportant.
I've spent the past few weeks porting code from Firefox to IE. It's been hell. I need to find the location of user-selected text in the document: Firefox supports (mostly) the W3C Range object, which provides a DOM node and offset, but IE's proprietary implementation provides only the pixel location (!). I tried using a trick with copy & paste to locate it, but when IE provides the content of the selection it tries to be clever: it adds tags. It also adds tags when you paste. So if you copy the selection and paste it right back where it came from, you'll get a broken document!
Both browsers also corrupt whitespace. The Firefox DOM collapses multiple spaces in a text node to a single space (sort-of - they're also still there, which is very puzzling). The IE implementation goes one step further and collapses spaces across element boundaries. So, for example, a leading space following a start or end tag may vanish (or not, depending on whether it preceded by whitespace). It also inserts newlines following tags for block elements. Oh yeah, and it capitalizes tag names and drops some close tags while it's at.
One more appalling bug: the DOM normalize function in IE crashes the browser. But only sometimes.
I've solved my problems, but it has taken longer than it did to get the whole system working in Firefox in the first place. (It's a web annotation system that allows for highlighting and margin comments for arbitrary HTML - I need to find the selection when the user creates a highlight.) The world would be a better place if IE crawled off and died.
Same here. My wife and I just cancelled our cable TV because it wasn't worth the $500 a year (when Fox killed Firefly, I figured watching TV was more trouble than it was worth). We haven't even bothered to get rabbit ears to replace it. Instead, we borrow videos from the library and from friends.
I don't listen to music, because I never hear any I like (certainty not on the radio). There's no way I'll pay $18 for a CD; neither have I any desire to pirate.
Blogs, books, and the Web have taken over as my main sources of information and entertainment. Without the endless stream of advertising, I'm barely aware of changes in the monopoly culture. My movie attendance dropped from at least one a month to maybe a couple a year. The only mainstream media I do follow are the newspaper and the Economist, which at least keep me in touch with the wider world.
It's a shame, really: I have enjoyed mass culture tremendously. I'm very angry that such a large part of OUR culture has been stolen from us. For now though, I'll spend that $500 on good books instead of bad TV.
I also stuck with Windows 2000. I got 10 XP licenses through my MSDN Universal subscription, but didn't use them. I have better things to do than mistrust my OS. Under what conditions do my activations cease to be valid? I could have called Microsoft, but just because the guy on the phone says something doesn't mean it's true. Worse, maybe they would decide something I wanted to do would violate my license (as far as I knew I was clean). Instead, I moved my data to open formats (Thunderbird, Open Office) in anticipation of moving to Linux. In the end though, I got a Mac.
Plagiarism and piracy are completely different things. Copyright violation is about authorization; plagiarism is about dishonesty. Here's Webster on plagiarize:
I think it's very interesting that plagiarism is defined here as theft, because that's how we've been taught to think of piracy. Plagiarism certainly feels like theft: you plagiarize my work, then you gain something and I lose something. Here's Webster on piracy:
That sounds much less like theft to me.
Mind you, I am not saying the principle of copyright is wrong. But if you ask me, plagiarism is far worse.
I can only hope that makes a difference. My personal site already looks better in Firefox; I'm considering hiding entire menus from users of IE - they'll get the core functionality, but not the full experience.
I'm also working on a web annotation engine. I have no desire to lock out IE users, but this requires the W3C text range standard - which IE, needless to say, does not support (plus I'm on a Mac, so IE isn't even an option). So it's Firefox only for now. With the current excitement around so-called AJAX applications, like Google Maps, I may not be the only one picking the browser with the standards support.
Web Forms is to XForms as Windows was to OS/2.
XForms is The Right Thing; Web Forms is Worse Is Better.
That's my general impression from the little I've read. XForms is loaded with coolness, but the spec is huge and it pulls in bits of other complex specifications, like XML Schema and XPath (as I recall). It's not straightforward to implement and that's a problem: witness the state of support for CSS 2.1 (let alone CSS 3).
Personally, I'm a fan of Worse is Better. We can have improved forms now and evolve towards something better. Right now, XForms promises little more than a dream.
Agreed. For me to use any word processor, the file format needs to be open, and it needs to be clean enough that I will always be able to get at my data. The cost of file format lock-in exceeds all other considerations.
No matter what happens, I will *always* be able to get at my OO.o XML files on any platform, or convert them into another format. Furthermore, I can write scripts to extract whatever I need from my documents. I have a script which constructs a blog from regular OO.o files; in the future I'm considering doing something similar to build a comprehensive bibliography automatically from papers I write.
I switched to Mac just recently; the two key considerations were the availability of native Unix development tools (e.g. Perl, Python, Apache, Ant) and of Open Office in the form of NeoOffice/J. If not for NeoOffice, I would be running Windows and Linux right now.
Down the road, a standard XML document format could turn word processors into front-end user interfaces for all kinds of authoring, just as spreadsheets are often used as user-friendly front-ends to data processing software today. Apple should seriously consider supporting the OO.o file format standard.
True, it is not enough for kids to learn simply what they want to learn. I remember learning to read was hard and I wasn't terribly interested, but it was necessary. But that doesn't let the schools off the hook.
Just because a good citizen should learn something does not mean that teaching it in school is productive. It may do quite the opposite. Teaching poorly, or at an inappropriate age, can serve to prevent the student from ever showing interest in a subject again.
Take history. This is one of my great fascinations, but when I was a teenager I just didn't care. Fortunately I don't remember anything about it - good or bad - and so there was no lasting impact. When I complete university and realized how ignorant I was, I started reading and fell in love.
But the best example of all - for me and countless others - is surely Shakespeare. I have met the occasional student who picked up a life-long love of Shakespeare in school. I have met far more who hated it with a passion and only grew to appreciate it when the rediscovered it years later.
Personally, I suspect that the majority who praise him only do so because that is what they are expected to think. I could be wrong. I am in my 30s and I still hate Shakespeare. I cannot separate his work from the trauma of seeing beautiful language (not just Shakespeare) torn to pieces in school.
Meanwhile, school did its best to block me from what I was teaching myself: about computers, literature, and the sciences. For the most part it succeeded, and while I cannot disown my own responsibility for that, this is not the action of a noble system.
School should vow to do no harm. Maybe then it could teach the great skills that lead to all the others: reading, writing, arithmetic, and rhetoric. I was fortunate - in elementary school I learned how to speak and construct an essay. Most schools don't even manage that, and still they trample and destroy the love of learning.