If I were to develop a web-based desktop application, I'd use a web framework which allows me to develop a webapp just like it was a desktop app. The only such framework I know is Wt ( http://www.webtoolkit.eu/ ): C++, Qt-like API. I gave up on Rails after discovering it. I like the Qt model. However, C++ is a pretty brittle language to base a distributed system like the web on. I agree its probably useful for certain server-side scenarios like you describe, but as a general programming model for moving the web forward its not the best choice, plus requires too much trust from the end-user.
Hi Aleksandras, thanks for the pointers to the Dr.i.n.e. project! I'll take a look at it. I'm always up for fresh, new ways to look at this stuff, and your project sounds cool.
"I like to make browsers do things that they weren't supposed to do," Brad Neuberg likes to say.
I'm sorry to say, but that is an idiotic statement! It's an admission of the truth;)
The PC had the same story: it was a toy piece of hardware that could barely do anything, and in successive iterations it evolved and did things it wasn't designed to do. The "real" OSes and machines were the ones that were designed for these things, and failed because they were expensive, centrally controlled, inaccessible, etc.
The O/S is already the perfect IAHE. It fully integrates all comms and all applications, and it does so securely and efficiently. The O/S has one big problem: it requires you to completely trust applicatons. What makes the web successful is you don't need to trust remote web sites. Imagine if for every web site you had to visit it felt like downloading a new application, with the potential risk to your machine this entails. Gears keeps the webs trust model, where you don't have to have all or nothing trust. You can visit a remote web site, and that web site can prompt the user on whether they would like to be able to store more info in the relational database, for example. If you say yes, then that web site only has that enhanced capability; it can't access your file system, for example. Java's Web Start goes in the right direction with these things as well, especially with JNLP links.
Great points; who says browsers can't have multiple processes? I see browsers as kind of like Windows 16-bit, or the old Mac OS 9. They will evolve into having greater features, just as the original PC operating systems could not hold a candle to "grown up" OSes like Unix, VMS, etc. Evolutionary, scrappy technologies like the browser (and the original PC) always go through successive iterations where they get refactored and gain abilities. They are never perfect at any particular snapshot. See Clay Shirky's great paper on this, "In Praise of Evolvable Systems:" http://www.shirky.com/writings/evolve.html
After reading the article (really!) I can see how Gears is more than just offline storage, but extending the browser to do what it should. Right now it is only available as a FF plugin right? Could it be expanded into the google toolbar? ported to IE in the toolbar?
I want to look at this as a way to make even more powerful webapps, but until it gets more widespread it only seems appealing to apps that have a clear offline use. Gears is currently available on Firefox 1.5+ (Firefox 3 soon), Internet Explorer 6+, and Windows Mobile 5 and 6. It works across Linux, Mac OS X, and Windows. Safari support is coming soon, Opera is being worked on, Firefox 3 support is done but is being dogfooded and tested. Expect to see Gears on other mobile browsers as well at some point.
Gears is clearly a necessary technology for the Web. The only concern I have is that it's so fundamental that it should not be part of a plugin, but rather built into the browser. I understand they're doing it as a plugin because they want it to work everywhere, but since it's open source, everyone with a browser really should be treating it as an API and writing their own browser components that map to it (or adapting the Gears source to do so). I'd love for folks to just grab the Gears source and bake those APIs into their browser; its under a Apache-like license so thats easy to do. The first thing browser folks should do, though, is adopt the HTML 5 interfaces, and simply use the Gears code as the implementation. Getting HTML 5 into the browsers is the most important thing. Once you have this bake the extra Gears stuff in, plus the Gears update mechanism so we can keep innovating past HTML 5! Feel free to contact me if you want to do this.
BTW, one thing that make Gears unique is that its _not_ just bound to one browser; its cross browser, so we can rev the web rather than just one browser.
The problem though is plugins. Why do you even need Flash/Java plugins? All the Flash one seems to do is use up 100% CPU on Linux and Java Applets are too slow for general use many times. AJAX (sorta) fixes this with how you don't need a plugin to view things and because it is not outside of the browser, it makes having your browser be 100% open source whereas Flash is proprietary (unless you want to use GNASH which, in my experience only really lets you view banner ads). So while a different protocol would be nice, AJAX is much much nicer then Flash/Java or other "plugins" that are used to create applications on websites. Hi Darkness, the idea behind Gears is that Ajax is the platform (HTML, CSS, JavaScript, XHR, etc.). However, there are some new features (and existing standards like HTML 5) that Ajax and web applications need to move forward and be truly successful, such as better performance, client-side relational storage, offline, etc. We aren't trying to replace Ajax with another model.
You mean mobile internet? BTW, Gears is starting to work on mobile phones. Its currently only on Windows Mobile, but will be on other cell phones with the same API. Gears is not just about expanding the desktop web; its about expanding the mobile web as well.
"There's only a brief period of time in which things are fluid and can change," he says. "For radio, it was the '20s, and for TV the '50s. Then things crystallize, and we have to live with those changes. Right now, the Internet is malleable, and we can put our stamp on it." IMHO this comparison is totally off. Radio's and tv's are simple devices that cannot be 'changed' once they are in the customers hands. Computers are totally different. Applications and even protocols come (and sometimes go); Even TCP/IP is about to undergo a mayor 'upgrade'.
He may be right, but this analogy does nothing to convince of that. It's not just about being able to technologically upgrade something; it's also about how power starts to become concentrated and those with their hands on the levers don't want to change things. We could have distributed TV and radio far more than we have, especially in the 70s when cable TV came along, then in the 80s when satellite TV appeared, and so on. It wasn't until streaming video, which helps to shift power, that TV can once again be revisited and the model in which it works.
I agree with you that TVs and radios are far more fixed and non-upgradable than computers are. However, at some point the network itself will be hard to upgrade, which we are already finding with IPv4. Its gets asymptoticly harder to upgrade deployed systems over time. I joined the Gears team because it seemed like a clever way to help delay this on the web for a bit.
Why do we have to continue developing the web and forceing it do things way outside is problem domain. USENET did not have to evolve, ftp did not have to evolve, smtp did not, gopher did not, etc etc.
Why can't we leave the web alone, use it for what we use it for now and develop a new rich application protocol if that is what people want. It might end up replacing the web like the web replaced gopher, which replaced Archie before it, or it might become an addition to the suite of internet protocols. Why does my web browser have to be all things to all people? Hi DarkOx, the history of the web itself is one of evolving it away from its original problem domain. Even the addition of images was controversial; the web was initially meant to be a text-only medium. Unfortunately, large-scale open systems like the web evolve from simple systems into domains they were never meant for; this is just the nature of systems that are world-spanning like the Internet and Web. Systems that are perfect and self-contained don't tend to actually get adopted on a global scale. Clay Shirky has a great essay on this topic called "In Praise of Evolvable Systems" which you can read here: http://www.shirky.com/writings/evolve.html
The idea behind Gears is to be able to get new technologies (and existing standards we've been waiting years for) into the contemporary web so that we can actually use them today.
I agree that it would be great to have better rich application protocols. Two things you must make sure of to be successful with this though: first, successful systems tend to evolve from earlier ones; just creating an entire new system will probably not get adopted. If you can evolve the web from the inside out into your system it will have better adoption. Second, the thing that makes the web really unique is that web pages can be basic static documents all the way to full blown applications, and everything in between (just look at MySpace, which are a fusion of web pages + web applications mashed up). Just making another web clone of the desktop based paradigm will probably not be successful or move things forward.
How does a guy who says 'Lets keep it working so it can still be used' qualify as news... I thought it was just common sense! Hi, I agree its common sense:) The cool thing about Gears is its trying to create a system to make this common sense actually happen on todays web. It will be great when its no longer news because the web has an open source update mechanism to get new standards and innovations into the web.
Hi. I created Coworking for exactly the reasons in that article. Coworking is community office space for programmers, writers, and anyone who works from home. From our Wiki (http://coworking.pbwiki.com):
"Coworking is cafe-like community/collaboration space for developers, writers and independents. Or, it's like this: start with a shared office and add cafe culture. Which is the opposite of most modern cafes.;)"
We already have two spaces in San Francisco, one in the Dog Patch area called The Hat Factory (http://hatfactory.net), and another called Teh Space that is downtown and will be comming up to speed soon. There are groups planning spaces in New York City, Paris, Boston, Chicago -- all over the world. If you go to our wiki, at coworking.pbwiki.com, you can coordinate a space in your own city. Some areas that can't support full time spaces are having Coworking Days, like the one that was just put on in Sausalito, California.
This is also a reimplementation of the original hypertext system, the one that invented hyperlinks in the 60s, named Augment/NLS, so it predates Ted Nelson's Xanadu and his book Computer Lib. Just to note Ted Nelson actually invented the word "hyperlink" and "hypertext", but Douglas Engelbart had a working hypertext system first; he just called them 'addresses' and 'links'. HyperScope is a clone of parts of Augment for the contemporary web.
Hi there; I'm the software architect and implementor of HyperScope, and thought I'd provide some more info on the OPML capabilities of what you can do with it.
HyperScope is like OPML and HTML hyperlinks on steroids. There are so many different kinds of addressing your nodes that its not even funny. You can do direct addressing using hiearchical placement, even if there are no anchors:
mydoc.opml#2A
Where 2A is the second node (2), followed by it's first child (A). Node numbering always alternates between letters and numbers for readability; so you might have 2A3B. These are generated automatically and will work across all OPML documents, not just ones that have been marked up with the optional HyperScope namespaced attributes.
You can target node IDs, which are unique values that never change for a node even if it is moved around; these always start with a 0:
mydoc.opml#0626
Node IDs are optional, and placed on an OPML outline node using the hs: namespace:
<outline text="foobar" hs:nid="0626"/>
Node IDs are optional, and are created on document creation or editing, while the node hierachical numbers above work for any OPML file.
You can target based on label, using the optional hs:label attribute:
<outline text="foobar" hs:label="mylabel">
This would be the following address:
mydoc.opml#mylabel
Now, here's some cool stuff; once you've hit your target address using direct addressing, you can start to use relative addresses to move relative to the one you just targeted. For example, once I've gone to 'mylabel', I could jump down in the node hierarchy then to the next 2 nodes using the following:
mydoc.opml#mylabel.d2n
Which is.d for down and.2n for next two. You can jump through the hierarchy using many of these, including successor (.s) for going to the next sibling of the current node, independent of children; predecessor (.p) for the same, but for the previous sibling; back (.b), which will take you to the previous node that is right before you, independent of hierarchy; next (.n) for the same but forward; up (.u) to move up an ancestor; down (.d) to move down; tail (.t) to move to the last child sibling on my level; head (.h) to move to the first child sibling on my level; and more.
Once you've done these, you can start doing some other fun stuff. I can now do an indirect link, which is.l (that's a lower case L):
mydoc.opml#mylabel.d2nl
The 'l' is magical; it says: "once you've found the final node after dereferencing the other addresses, look inside the contents of this node, and take the first address you find then follow it."
For example, if the node that lies at mylabel.d2n has the following contents (that's an encoded HTML hyperlink in there):
<outline text='Make sure to see the document: <a href="http://foobar.com/important.opml#2"Important</</>
then adding that.l will cause HyperScope to extract http://foobar.com/important.opml#2, and follow it and dereference it, which will cause the browser to jump to important.opml, then jump to node #2.
So indirect links let you create a layer of indirection between you and a set of links. You could imagine combining this with the node labels to create a kind of link database; just create a file that you always use that has named nodes for important links that you want to go to, then use indirect links against these. This is exactly what Engelbart does; I've sat and watched him and studied how he uses the system. You can see modern screencasts of that system and his work practices at these blog posts of mine: http://codinginparadise.org/weblog/2006/03/new-scr eencast-of-douglas-engelbarts.html and
I'm one of the software engineers who worked on the Open Library's Flipbook viewer. I just put up a blog post with further technical details on what we have done here:
Most people don't realize that t/space and Burt Rutan are one and the same. T/space has prototyped and is creating an alt.space orbital craft, and has Rutan's design style and fingerprints all over it. I'll bet strong money that the design mapped out by t/space will be what SpaceShipThree basicly is. I've blogged more about this in the past at:
That blog post points to videos, design documents, and opinions on what might be a preview of a SpaceShipThree-style craft, mapped out by t/space today.
There's a nifty way to avoid having to maintain global references using JavaScript closures, which most people don't know about:
xmlhttp.open("GET", "test.txt",true); var myObject = this; xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4) {
myObject.doSomething(xmlhttp.responseText);
} } xmlhttp.send(null);
So, the onreadystatechange function can access the 'myObject' variable like its a local variable, so that it could call back to that object when things are ready. JavaScript has full closure support:
Zen Buddhism is very simple and in its pure form has no dogma. It says: sit down and just watch your breath. That's it. Just really watch your breath and see what happens. You have permission to come to your own conclusions after that. I once stayed at a Zen Monastery and all the monks _refused_ to become my gurus; they would just keep saying "follow your own breath and find out for yourself".
Re:A *real* anti-leech/anti attacker system propos
on
Gnutella2?
·
· Score: 1
BBSes are still around, they've just morphed into Telnet BBSes! I sometimes satisfy my text-RPG BBS needs by logging into them. Here's a full list of Telnetable BBSes; there are over 500 hundred available!
If you've never heard of a Telnet BBS you can check out the Telnet BBS FAQ
There are several interesting alternatives to the radio model we have today. The first is micropowered broadcasting. Micropower broadcasting is all about creating very cheap, low-powered transmitters in the 1 to 100 watt range. At these power levels the equipment is cheap, simple to use, can reach across most cities and rural areas, and allows a larger concentration of micropower broadcasting. Micropower allows communities, neighborhoods, and special interest groups to have their own radio stations and communicate with their local communities. I find it to be an attractive, democratic vision. Also check out Free Radio Berkeley for information on low-cost transmitters that are available, as well as educational information.
Another model that is still developing, and which is beautifully decentralized, is the OpenSpectrum idea. This model is based on several ideas. One part that is core is that the spectrum is not prematurely allocated to particular uses and users; instead, people have transceivers that can both broadcast and receive at a range of powers and at a range of frequencies. These transceivers constantly look at the spectrum, jumping around and broadcasting at various frequencies depending on the density of other transceivers. One important aspect is that transceivers can also act as repeaters for other transceivers. A few years ago it was theoretically shown that if this is done that "one can build a practical network whose capacity increases the more stations you add". This is powerful stuff, and the ideas should slowly percolate into society over the next few decades as the technology continues to improve (things like Ultra Wide Band, software defined radio, decentralized wireless meshes, etc.)
Here's a tactic that would be fun. The World Trade Organization (WTO) was established to help prevent non-tariff barriers to trade; basicly these are spurious laws not involving tariffs that are passed to protect entrenched industries. For example, one country could claim that the rice from another country causes cancer, when in fact it doesn't, and use laws to restrict this rice. The WTO takes cases involving these issues and resolves them; if a country does not remove the offending law, the WTO can punish the country quite stronger, including trade embargoes.
I personally do not support the WTO, but it seems like what the RIAA and MPAA want in the CBDTPA could be called a non-tariff barrier to trade: one industry, the computer industry, is threatening them in the marketplace, so they resort to a non-tariff legal approach to solve this issue, the CBDTPA. Could we file a case with the WTO on behalf of a technology company, maybe in another country (South Korea perhaps, where many computer electronics are located?) against a company in the U.S. (probably against the Big Five entertainment companies)? If a WTO case goes through, the offending country can be subject to quite large punishments. The great thing about this case is that it does double duty; it both makes traditional defenders of the WTO see them as gadflies (free-market conservatives + BigCos), and it also might possibly embarass America on the international stage (as if America really cares about that though). This plan kinda uses the WTO the same way Stallman uses copyright, inverting its original intentions.
Best,
Brad Neuberg
Hi Aleksandras, thanks for the pointers to the Dr.i.n.e. project! I'll take a look at it. I'm always up for fresh, new ways to look at this stuff, and your project sounds cool.
Best,
Brad Neuberg
I'm sorry to say, but that is an idiotic statement! It's an admission of the truth
The PC had the same story: it was a toy piece of hardware that could barely do anything, and in successive iterations it evolved and did things it wasn't designed to do. The "real" OSes and machines were the ones that were designed for these things, and failed because they were expensive, centrally controlled, inaccessible, etc.
Best,
Brad Neuberg
Work is being done on Safari, and Opera is part of the Gears community and has been working with us on getting Gears going there.
Best,
Brad Neuberg
Best,
Brad Neuberg
Great points; who says browsers can't have multiple processes? I see browsers as kind of like Windows 16-bit, or the old Mac OS 9. They will evolve into having greater features, just as the original PC operating systems could not hold a candle to "grown up" OSes like Unix, VMS, etc. Evolutionary, scrappy technologies like the browser (and the original PC) always go through successive iterations where they get refactored and gain abilities. They are never perfect at any particular snapshot. See Clay Shirky's great paper on this, "In Praise of Evolvable Systems:" http://www.shirky.com/writings/evolve.html
Best,
Brad Neuberg
I want to look at this as a way to make even more powerful webapps, but until it gets more widespread it only seems appealing to apps that have a clear offline use. Gears is currently available on Firefox 1.5+ (Firefox 3 soon), Internet Explorer 6+, and Windows Mobile 5 and 6. It works across Linux, Mac OS X, and Windows. Safari support is coming soon, Opera is being worked on, Firefox 3 support is done but is being dogfooded and tested. Expect to see Gears on other mobile browsers as well at some point.
Best,
Brad Neuberg
BTW, one thing that make Gears unique is that its _not_ just bound to one browser; its cross browser, so we can rev the web rather than just one browser.
Best,
Brad Neuberg
Best,
Brad Neuberg
Best,
Brad Neuberg
He may be right, but this analogy does nothing to convince of that. It's not just about being able to technologically upgrade something; it's also about how power starts to become concentrated and those with their hands on the levers don't want to change things. We could have distributed TV and radio far more than we have, especially in the 70s when cable TV came along, then in the 80s when satellite TV appeared, and so on. It wasn't until streaming video, which helps to shift power, that TV can once again be revisited and the model in which it works.
I agree with you that TVs and radios are far more fixed and non-upgradable than computers are. However, at some point the network itself will be hard to upgrade, which we are already finding with IPv4. Its gets asymptoticly harder to upgrade deployed systems over time. I joined the Gears team because it seemed like a clever way to help delay this on the web for a bit.
Best,
Brad Neuberg
Why can't we leave the web alone, use it for what we use it for now and develop a new rich application protocol if that is what people want. It might end up replacing the web like the web replaced gopher, which replaced Archie before it, or it might become an addition to the suite of internet protocols. Why does my web browser have to be all things to all people? Hi DarkOx, the history of the web itself is one of evolving it away from its original problem domain. Even the addition of images was controversial; the web was initially meant to be a text-only medium. Unfortunately, large-scale open systems like the web evolve from simple systems into domains they were never meant for; this is just the nature of systems that are world-spanning like the Internet and Web. Systems that are perfect and self-contained don't tend to actually get adopted on a global scale. Clay Shirky has a great essay on this topic called "In Praise of Evolvable Systems" which you can read here: http://www.shirky.com/writings/evolve.html
The idea behind Gears is to be able to get new technologies (and existing standards we've been waiting years for) into the contemporary web so that we can actually use them today.
I agree that it would be great to have better rich application protocols. Two things you must make sure of to be successful with this though: first, successful systems tend to evolve from earlier ones; just creating an entire new system will probably not get adopted. If you can evolve the web from the inside out into your system it will have better adoption. Second, the thing that makes the web really unique is that web pages can be basic static documents all the way to full blown applications, and everything in between (just look at MySpace, which are a fusion of web pages + web applications mashed up). Just making another web clone of the desktop based paradigm will probably not be successful or move things forward.
Best,
Brad Neuberg
Best,
Brad Neuberg
Hi. I created Coworking for exactly the reasons in that article. Coworking is community office space for programmers, writers, and anyone who works from home. From our Wiki (http://coworking.pbwiki.com):
;)"
"Coworking is cafe-like community/collaboration space for developers, writers and independents.
Or, it's like this: start with a shared office and add cafe culture. Which is the opposite of most modern cafes.
We already have two spaces in San Francisco, one in the Dog Patch area called The Hat Factory (http://hatfactory.net), and another called Teh Space that is downtown and will be comming up to speed soon. There are groups planning spaces in New York City, Paris, Boston, Chicago -- all over the world. If you go to our wiki, at coworking.pbwiki.com, you can coordinate a space in your own city. Some areas that can't support full time spaces are having Coworking Days, like the one that was just put on in Sausalito, California.
Best,
Brad Neuberg
bkn3@columbia.edu
http://codinginparadise.org/
This is also a reimplementation of the original hypertext system, the one that invented hyperlinks in the 60s, named Augment/NLS, so it predates Ted Nelson's Xanadu and his book Computer Lib. Just to note Ted Nelson actually invented the word "hyperlink" and "hypertext", but Douglas Engelbart had a working hypertext system first; he just called them 'addresses' and 'links'. HyperScope is a clone of parts of Augment for the contemporary web.
Hi there; I'm the software architect and implementor of HyperScope, and thought I'd provide some more info on the OPML capabilities of what you can do with it.
.d for down and .2n for next two. You can jump through the hierarchy using many of these, including successor (.s) for going to the next sibling of the current node, independent of children; predecessor (.p) for the same, but for the previous sibling; back (.b), which will take you to the previous node that is right before you, independent of hierarchy; next (.n) for the same but forward; up (.u) to move up an ancestor; down (.d) to move down; tail (.t) to move to the last child sibling on my level; head (.h) to move to the first child sibling on my level; and more.
.l (that's a lower case L):
;Important</</>
.l will cause HyperScope to extract
HyperScope is like OPML and HTML hyperlinks on steroids. There are so many different kinds of addressing your nodes that its not even funny. You can do direct addressing using hiearchical placement, even if there are no anchors:
mydoc.opml#2A
Where 2A is the second node (2), followed by it's first child (A). Node numbering always alternates between letters and numbers for readability; so you might have 2A3B. These are generated automatically and will work across all OPML documents, not just ones that have been marked up with the optional HyperScope namespaced attributes.
You can target node IDs, which are unique values that never change for a node even if it is moved around; these always start with a 0:
mydoc.opml#0626
Node IDs are optional, and placed on an OPML outline node using the hs: namespace:
<outline text="foobar" hs:nid="0626"/>
Node IDs are optional, and are created on document creation or editing, while the node hierachical numbers above work for any OPML file.
You can target based on label, using the optional hs:label attribute:
<outline text="foobar" hs:label="mylabel">
This would be the following address:
mydoc.opml#mylabel
Now, here's some cool stuff; once you've hit your target address using direct addressing, you can start to use relative addresses to move relative to the one you just targeted. For example, once I've gone to 'mylabel', I could jump down in the node hierarchy then to the next 2 nodes using the following:
mydoc.opml#mylabel.d2n
Which is
Once you've done these, you can start doing some other fun stuff. I can now do an indirect link, which is
mydoc.opml#mylabel.d2nl
The 'l' is magical; it says: "once you've found the final node after dereferencing the other addresses, look inside the contents of this node, and take the first address you find then follow it."
For example, if the node that lies at mylabel.d2n has the following contents (that's an encoded HTML hyperlink in there):
<outline text='Make sure to see the document: <a href="http://foobar.com/important.opml#2"
then adding that
http://foobar.com/important.opml#2, and follow it and dereference it, which will cause the browser to jump to important.opml, then jump to node #2.
So indirect links let you create a layer of indirection between you and a set of links. You could imagine combining this with the node labels to create a kind of link database; just create a file that you always use that has named nodes for important links that you want to go to, then use indirect links against these. This is exactly what Engelbart does; I've sat and watched him and studied how he uses the system. You can see modern screencasts of that system and his work practices at these blog posts of mine: http://codinginparadise.org/weblog/2006/03/new-scr eencast-of-douglas-engelbarts.html and
I'm one of the software engineers who worked on the Open Library's Flipbook viewer. I just put up a blog post with further technical details on what we have done here:
u cing-open-library-and-ajax.html
http://codinginparadise.org/weblog/2005/10/introd
Check it out.
Brad Neuberg
Most people don't realize that t/space and Burt Rutan are one and the same. T/space has prototyped and is creating an alt.space orbital craft, and has Rutan's design style and fingerprints all over it. I'll bet strong money that the design mapped out by t/space will be what SpaceShipThree basicly is. I've blogged more about this in the past at:
a tives-to-nasa-transformational.html
"Alternatives to NASA: Transformational Space":
http://codinginparadise.org/weblog/2005/08/altern
That blog post points to videos, design documents, and opinions on what might be a preview of a SpaceShipThree-style craft, mapped out by t/space today.
There's a nifty way to avoid having to maintain global references using JavaScript closures, which most people don't know about:
0 9835.html
c lMem
xmlhttp.open("GET", "test.txt",true);
var myObject = this;
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState==4) {
myObject.doSomething(xmlhttp.responseText);
}
}
xmlhttp.send(null);
So, the onreadystatechange function can access the 'myObject' variable like its a local variable, so that it could call back to that object when things are ready. JavaScript has full closure support:
http://jibbering.com/faq/faq_notes/closures.html
http://www.forum4designers.com/archive22-2004-8-1
Very powerful feature. Make sure to read a limitation of closures on IE:
http://jibbering.com/faq/faq_notes/closures.html#
Some boundry conditions of using them on IE can lead to memory leaks.
It was Frank Chu!! While traveling through the 12 Galaxies (you know, trying to Impeach Clinton), he had a chance to embed these tablets into the street using his secret Sigmogonic devices. He had to be cryptic with his messages, since he was being chased by Quintronic Criminals, who are dangerous with their Alphogonic Attempted Murders.
Zen Buddhism is very simple and in its pure form has no dogma. It says: sit down and just watch your breath. That's it. Just really watch your breath and see what happens. You have permission to come to your own conclusions after that. I once stayed at a Zen Monastery and all the monks _refused_ to become my gurus; they would just keep saying "follow your own breath and find out for yourself".
Bram, how does the tit-for-tat system work?
Brad Neuberg
BBSes are still around, they've just morphed into Telnet BBSes! I sometimes satisfy my text-RPG BBS needs by logging into them. Here's a full list of Telnetable BBSes; there are over 500 hundred available!
If you've never heard of a Telnet BBS you can check out the Telnet BBS FAQ
There are several interesting alternatives to the radio model we have today. The first is micropowered broadcasting. Micropower broadcasting is all about creating very cheap, low-powered transmitters in the 1 to 100 watt range. At these power levels the equipment is cheap, simple to use, can reach across most cities and rural areas, and allows a larger concentration of micropower broadcasting. Micropower allows communities, neighborhoods, and special interest groups to have their own radio stations and communicate with their local communities. I find it to be an attractive, democratic vision. Also check out Free Radio Berkeley for information on low-cost transmitters that are available, as well as educational information.
Another model that is still developing, and which is beautifully decentralized, is the OpenSpectrum idea. This model is based on several ideas. One part that is core is that the spectrum is not prematurely allocated to particular uses and users; instead, people have transceivers that can both broadcast and receive at a range of powers and at a range of frequencies. These transceivers constantly look at the spectrum, jumping around and broadcasting at various frequencies depending on the density of other transceivers. One important aspect is that transceivers can also act as repeaters for other transceivers. A few years ago it was theoretically shown that if this is done that "one can build a practical network whose capacity increases the more stations you add". This is powerful stuff, and the ideas should slowly percolate into society over the next few decades as the technology continues to improve (things like Ultra Wide Band, software defined radio, decentralized wireless meshes, etc.)
Make media! Make Trouble!
Brad GNUberg
Here's a tactic that would be fun. The World Trade Organization (WTO) was established to help prevent non-tariff barriers to trade; basicly these are spurious laws not involving tariffs that are passed to protect entrenched industries. For example, one country could claim that the rice from another country causes cancer, when in fact it doesn't, and use laws to restrict this rice. The WTO takes cases involving these issues and resolves them; if a country does not remove the offending law, the WTO can punish the country quite stronger, including trade embargoes.
I personally do not support the WTO, but it seems like what the RIAA and MPAA want in the CBDTPA could be called a non-tariff barrier to trade: one industry, the computer industry, is threatening them in the marketplace, so they resort to a non-tariff legal approach to solve this issue, the CBDTPA. Could we file a case with the WTO on behalf of a technology company, maybe in another country (South Korea perhaps, where many computer electronics are located?) against a company in the U.S. (probably against the Big Five entertainment companies)? If a WTO case goes through, the offending country can be subject to quite large punishments. The great thing about this case is that it does double duty; it both makes traditional defenders of the WTO see them as gadflies (free-market conservatives + BigCos), and it also might possibly embarass America on the international stage (as if America really cares about that though). This plan kinda uses the WTO the same way Stallman uses copyright, inverting its original intentions.
Thanx,
Brad Neuberg