I published the XML-RPC code that I got from Roger Whitney into the public store this evening. This is the code I used to get Pingback (which uses XML-RPC) working with the blog. This version was Wave (not Web Toolkit) based, and also came from VW 3 - so it does not use the stock VW XML parser. The code could use a port to the features of VW 7, but these initial hacks got me going.
Interesting article on the O'Reilly site - Timothy Appnel writes that RSS is more than a syndication format - and is being used as a proto-web service. If you follow the early users of RSS, you'll see that - Pingback and Trackback are effectively web services enabling backtracking. Various blog tools support updates via other RSS features. Here's what Timothy writes:
I can vouch for the value. I started monkeying around with RSS at the end of the summer, and Dave Murphy joined in and wrote the user interface for BottomFeed. Over the next few months, our engineering group added RSS feeds for our bug tracking tool (2 - one for all AR activity, and one for newly closed items). We added feeds for our source code databases. I added a feed for our public wiki and for this blog. I can see further possibilities as well; a nice, easier to use client interface to some of the cruftier web based tools out there, for instance. In any case, go read the whole articleDJ Adams writes: It seems that beyond carrying syndication information, RSS is a very useful and flexible way to get all sorts of application data pushed to a user over time. In the same way that a web browser is a universal canvas upon which limitless services and information can be painted, so (in an albeit much smaller way) an RSS reader/aggregator might also find its place as an inbox for time-related delivery of all sorts of information.Amen DJ! As I asserted in a previous weblog post, Web Services We'd Like To See, I wrote Whether it is just assumed or simply overlooked, RSS is the most widely deployed Web service across the Internet. Granted, most RSS feeds have very simple interfaces with almost as simple backends that are unlike the Web services that usually come to mind. (Who says Web services need to be complex or sophisticated anyhow?) Under the principles of the REST architectural style that the Web was built on, RSS feeds do qualify. Consider that any site search engine becomes a Web service if it could emit results in RSS and the format's potential in the realm of Web services becomes more apparent. It is this perceived potential that I've been an advocate of getting the RSS format's house in order.
But I am still baffled on my efforts to upgrade the server. Something in my new codebase blows up on the server, but works fine on my testbed. Sigh...
BottomFeeder has updated documentation, thanks to Rich Demers. Just pull down the Help>Users Guide menu item, and you'll browse the latest. Thanks to Rich for a great job!
Objects, as envisioned by the designers of languages like Smalltalk and Actor - long before C++ and Java came around - were for modeling and building complex, dynamic worlds. Programming environments for languages like Smalltalk were written in those languages and were extensible by developers. Because the philosophy of dynamic change was part of the post-Simula OO worldview, languages and environments of that era were highly dynamic. But with C++ and Java, the dynamic thinking fostered by object-oriented languages was nearly fatally assaulted by the theology of static thinking inherited from our mathematical heritage and the assumptions built into our views of computing by Charles Babbage whose factory-building worldview was dominated by omniscience and omnipotence. And as a result we find that object-oriented languages have succumb to static thinkers who worship perfect planning over runtime adaptability, early decisions over late ones, and the wisdom of compilers over the cleverness of failure detection and repairNow the ironic part: Richard Gabriel, distinguished engineer at SUN. I find this fascinating. The quote above effectively states that things like Java are part of the problem. And there he is, at Sun.
I was looking over my feed update this morning when I came across this item from the Loosely Coupled blog. It seems that Oracle has put Do it yourself portal capabilities in their latest release, and this has some of the control freak types upset:
The launch this week of DIY portal capabilities for Oracle's application server platform has not been welcomed in all quarters. According to Forrester analyst Nate Root, quoted in Internet Week, "Portal development isn't a business-user function. IT doesn't want it to be a business-user function ... The way to break the development bottleneck is to give IT better tools, not try to circumvent IT."In my experience, the typical IT group wouldn't know a business function if it walked up and bit it on the nose. There was an encouraging thing in this for me; it showed me that I'm not the only business user who sees the words value and IT Group put together in a sentence and starts snorting whatever beverage he has at hand...
I caught this piece on the Truth Laid Bear blog:
Have you ever noticed how stunningly inappropriate some of the advertisements which appear on the pages of Slate can be? If they are using any kind of logic to present ads appropriate to the readership of a given piece, then it has to be the worst such system ever created, as the advertisements seem to be utterly random. But this can lead to amusement: in a moment of boredom, I decided to make it a game. (And you can play along at home, too!) What's the most inappropriate pairing of a Slate piece and its accompanying advertisement that can be found?To be fair, I've seen other pathetic examples elseqhere. But it's still funny...
I am posting a new build of BottomFeeder now. After adding the toolbar, I noticed some anomolies - since it is generated from the menu we use in the feed items list, options were not always appropriate (for instance, if a folder was selected). I fixed that. I also added a requested feature while I was in the code - you can now add feeds or feedlists while offline, and they will be appropriately updated when the tool is put back online. Enjoy!
It seems that beyond carrying syndication information, RSS is a very useful and flexible way to get all sorts of application data pushed to a user over time. In the same way that a web browser is a universal canvas upon which limitless services and information can be painted, so (in an albeit much smaller way) an RSS reader/aggregator might also find its place as an inbox for time-related delivery of all sorts of information.go read the whole thing
I have a toolbar for BottomFeeder now. There were some oddball issues with the image creation, but I finally figured that out. If my connection stops being flaky, I'll post a new DEV build.
Overheard in the IRC Channel:
Something you might like to hear. With VA there is high risk for our company every time a new release is made available to the public. We not only have to get our hands on it but we have to make sure all our existing applications still work when moved to the new framework. Inevitably there are changes that break things. Undocumented changes. With the VW-Dev program, if my company were using VW, we could have continual integration against the dev builds to make sure our applications are not going to hit something new that'll break the way our application works. There's no such doppleganger for VA.And the example:
The offset for all widgets were re-aligned with the windows standard instead of being consistent (ie: text is 15 high and comboboxes are 17 high. Previous versions they were both 17 high). Because we use attachments of widgets to widgets (to allow for multilingual fonts) this meant that all our labels didn't line up with our fields The labels would all be 15 instead of 17 making them progressively slide up 2 pixels at a time offset. As you can imagine, this had a rather large impact on our applications and we had to fix up the problem so that it worked the same as it did in previous versions. That is high risk and worse still it was undocumented. The opinion of management is if it's incompatible, we won't upgrade - so we need to make it feasible to upgrade. When you're hit with something like that, it's hard to argue that we should put in the time to figure it out and fix it.I found that fascinating. And the VW-DEV Program can keep you up to date on VW changes as we make them!
Was a little sparse. Over on the Smalltalk IRC Channel, it was pointed out to me that the feed did not have enough information. I changed it to include the comment author's name and a link back to the original post.
Hat tip to Eliot Miranda for pointing out this cls post I had blipped over:
A poster asks:I need database access I need all kinds of graphical display Which freely availabe Smalltalk fits these needs? BTW: Why I do not start immediately with Jave / C++?And the response is: Note: Many things I say here with respect to VisualWorks are mostly true with other Smalltalks as well. Most Smalltalks have threads (for a long time) even though they may not use native OS threads. Based on seven years of experience with VisualWorks (VW), I would suggest to go with VisualWorks(VW). For the past three years I have been using ControlWorks - a very complex, realtime, distributed, multithreaded framework, tool suite for semiconductor equipment control software developed using VW (www.adventact.com). I am neither part of Cincom or Adventa, just a customer of them. Reliability of VW has been incredible. Thread support is superb. Probably our application could be one of the worst case scenario for testing complex multithreaded architectures and VW has proven over the past three years. We didn't use native threads for valid reason - there was no necessity. VW (and of course in other Smalltalks as well) threads are extremely light. Unlike Java, VW threads work uniformly across all platforms. Thread creation, context switch is much faster than native OS threads ( I have measured these times on Win2k and XP using VC++, Java and VW). Java spec regarding threads is loose, it doesn't clearly tell about thread scheduling or priority and can be problem in some cases for multi platform applications. On Windows, JVM from Sun uses native OS threads. Smalltalk threads support suspend, resume and terminate operations (these operations have been deprecated in Java for few valid reasons). These operations should be used with caution but very handy in few cases (in some cases necessity). VW supports semaphores, critical sections, shared queues for thread synchronization, asynchronous notifications, inter-thread communication. As I mentioned earlier, all these were put to test in extreme conditions in our system. Interactiveness of Smalltalks are incredible, you don't have to stop the application in order to modify code (the only other IDE that comes close is VisualAge Java). All source code will be at finger tips including one for framework classes and IDE tools themselves (no non-smalltalk IDEs can claim that). Reflection capabilities are simply amazing. Any complex UI needs a good visual UI builder and VW has a good UI building tool. You can configure text fields and combo boxes to handle text as well as numbers in various formats with automatic conversions. There is a large set of widgets. All of the VW IDE tools are built using VW widgets and tools. Java Swing also has a large set of widgets. Recently, there has been lot of improvements in performance of Swing. Performance is not an issue in Java or Smalltalk. In some cases Java is better and in few cases VW works faster. Only C/C++ folks think that performance is an issue in Java or Smalltalk. Such conclusions are based on running some trivial test cases. It is very hard to write complex applications in multiple languages and compare the results. If you take VW IDE itself as a complex application written in VW, you will feel the performance and responsiveness of UIs. In contrast, Forte for Java is just terrible with respect to responsiveness and memory footprint. For reasonably complex applications, VW certainly beats Java and MS tools in the memory footprint. Unlike in Java, you can add or modify methods of framework/library classes themselves. This can be a great advantage in many cases but can be a problem in applet environments or getting code from dozen different vendors. IMO, Java should have allowed adding methods to API classes. I would suggest to download VWNC, you will see how responsive and lean the IDE is. You will need some time to get used to environment(tools, libraries etc)since it is radically different from Borland Turbo IDE derivatives (which includes most non-Smalltalk IDEs in the industry).
(I also think about Lisp + TCL/TK)
- I hope SmallTalk is faster (or at least not slower) then Java
- I like to try "new" languages"
- C++ has not garbage collector
I guess the ReplayTV I had so much trouble with was just a lemon. Sonic Blue sent me a new one, and it worked just fine right out of the box. Found the DHCP server right off, changed channels perfectly - everything is cool. If the customer service interactions hadn't been so bad, I'd be perfectly content.
It's one of those non-work work days. It's MLK day, a federal (and state) holiday, but not a Cincom holiday. What that means is that my daughter is home, my wife is home (and it turns out her brother is here - we had a party yesterday). So I'm feeling fairly unmotivated at the moment...
I added a new RSS Feed for the comments that get added to the blog. I also think I have trackback working now, both for the old style GET and the new style POST. Additionally, I support the Movable Type API for querying trackbacks. At this point, it answers all the comments instead of all trackbacks, but I will get to that eventually.
Ronaldo Melo Ferraz has helped me out on Trackbacks, pointing me to the Trackback specs page. Apparently, the geniuses behind this spec released a first version that operates as an HTTP GET (with args passed in the URL) and a second version that operates as an HTTP POST with arguments in the content. Sigh. Moving targets are so much fun.
Congress to lawyers: Don't take away our BlackBerrys. Please. In a rare intervention into a private lawsuit, the chief administrator of the House of Representatives yesterday pleaded with attorneys in a patent-infringement case to settle their differences in a way that allows the popular handheld e-mailing device to continue operating. "The device is used routinely by most members of Congress . . . as well as senior staff," wrote James M. Eagen III. Any disruption in the service "creates a serious risk to the House's critical communications and could jeopardize the public interest, particularly in the event of an emergency," he said.Yeah, I see how well they like it when the shoe is on the other foot. Could they stay away from my fair use rights while they are at it?
So I'm reading the JSR for Generics. There's a whole lot of weasel words about why support for primitive data types would be a bad idea; I boiled it down to inappropriate concern for optimization. It took more than a page of text to get there, and my head hurt after reading it. Then I came across this:
Supporting generic types at run time seems undesirable for the following reasons:Now admittedly, Smalltalk doesn't have generics in the sense these guys mean. On the other hand, it doesn't need generics in the sense they mean - it's a non-issue in a language like Smalltalk. What amused me is their assertion that experience with such constructs is limited. This goes back to my whole echo chamber theory of Java and the designers who work there. Heaven forbid that they go and see what people using Smalltalk or Lisp have done.
Run time support for genericity has not been implemented in any major programming language, and research efforts are also extremely few. Consequently, the body of experience with such constructs is very limited. It is therefore inappropriate to deploy such constructs in a widely used, mission critical language. The risks are too great. Beyond the general principle of relying on well understood technology, the following discussion should make it clear just how big a technological risk is involved.
- Lack of experience with such constructs in widely used languages
- Burden of extensive VM changes on vendors throughout the industry
- Increased footprint on small devices
- Decreased performance for generic methods
Reflective Surface has an interesting post on Copyright law -
Lawrence Lessig has a new proposal for copyrights. Fifty years after a work has been published, its copyright owner would be required to pay a small tax to keep it under copyright protection. If the tax is not paid for three years, the works is forfeit to public domainThere are additional links, go here to see them
A reader asks what these Pingback and Trackback things are. Roughly speaking, they are ways of finding out who is referring to your posts (and for others to find out that you are referring to theirs. Yes, this information is all living in the server logs. However, these mechanisms have the advantage of immediacy - you get notified of a link right away. Trackback is simpler, but more manual. You grab the trackback URL from the site you are linking to, add a few arguments to the URL, and then POST it. The nice part is, it only involves creating an URL and submitting it; no fuss, no muss - but it's manual - you have to remember (when you are creating your post) to list the trackbacks. Pingback is somewhat more complex - you create an XML-RPC server to get hits, and send XML-RPC messages to notify others. In this setup, your blog software looks at all the links you have in your post, and then sees if the servers at those links support Pingback. If they do, you create the XML-RPC message and send it. More server logic, but nothing to remember when you make the post. As of yet, I'm unclear on the real value. But it was easy enough to implement (hey, this is Smalltalk!), and we'll see what happens.
I actually had time to test Pingback out on my LAN, so I pushed it to the server. The bottom of each post is starting to look cluttered now; I think I'm going to have to address that. In the meantime, I should be able to send and receive pingbacks now.
I have been working on Pingback today, and I think I have it done. I haven't deployed it yet; that will mean a slight modification to the server configuration (new parcels to load, update to the blog software). Since I have party cleaning to do, I'll get to that later.
HANOI, Vietnam - An airport in central Vietnam suspended plane traffic for two and a half hours because seven cows were blocking the runway, state-controlled media reported Saturday. Two Vietnam Airlines flights from Danang to Ho Chi Minh City were delayed and two other flights from Hanoi to Danang were canceled Thursday night because the cows belonging to army units in the airport area broke free from their corrals and ran loose around the runway, the Lao Dong (Labor) trade union newspaper quoted Luu Van Hanh, director of the Vietnam Airlines office in Danang, as saying. A Danang airport official said Saturday that flights resumed promptly after all the cows had been captured.
Welcome to The Buffy Network. It has come to our attention recently that a lot of visitors to this website do not have the correct setting on their computer when they try and access the site. For example, 0.82% of visitors are using Netscape - which does not support the kind of html coding we use. 2.10% of visitors dont have Java installed and/or turned on, Java is essential for some of the pop up windows we use. And 40.76% of vistors are using the wrong screen resoloution. Anything larger than 800 x 600 is too large, and the pages do not diosplay properly. Please try and use the right settings on your computer before entering the site, in order to make it look on your screen, how we intened it to look on ours. Thank you for visiting The Buffy Network. Please click 'Ok' to close this windowAnd I thought sysadmins had issues with users...
Here's an all too common story on dealing with customer service people. This poor guy had AOL, but I've had this conversation before (MSN). Not to mention the heck I went through trying to convince Sonic Blue's tech support that yes, in fact, my new replay tv was not functioning properly. I really wonder about this problem. Does the typical Help Desk staffer have a script and a guy with a rifle watching to make sure he doesn't go off message? Sheesh...
Here's an interesting article. The author makes the contention that languages and operating systems are converging:
A couple of months ago, at the Lightweight Languages Workshop 2002, Matthew Flat made a premise in his talk: Operating system and programming language are the same thing (at least "mathematically speaking"). I find this interesting and has a lot of truth in it. Both OS and PL are platforms on which other programs run. Both are virtualizing machines. Both make it easier for people to write applications (by providing API, abtractions, frameworks, etc.) Intro, Isolation, Perl The difference between the two, Matthew continued, is that OS focuses more on non-interference--or isolation between OS processes. The main task of a multiuser OS is to let several users use the computer simultaneously. Thus, it is important that no user can take over the machine or use up its resources permanently. Also, no processes shall be able to terminate other processes, peek into their resources, or do any other things that violate privacy unless it is permitted by the OS security policy. On the other hand, PL focuses on expressiveness and cooperation. PL provides high level constructs and facilities so that one can write programs in less time and with less amount of effort. 10 lines of higher level PL code might be equivalent to 100 to 1000 lines of machine/lower level language code. Additionally, PL provides means for people to share reusable code through the concepts of modules, shared libraries, components, etc. As time progresses, OS'es are becoming more like PL. And vice versa. OS now provides more and more ways for cooperation/sharing: IPC, threads, COM, etc. PL now provides ways to do isolation: sandboxing, processes, etc. However, in all programming languages that I am currently using (Perl, Python, Ruby), none of them had been designed from the ground up to do isolation. Thus, none of the isolation mechanisms really work well.The whole article is worth reading, and there's also a slashdot thread on this. This is interesting for Smalltalkers - after all, Smalltalk started out as an OS...
If you have not yet moved to VW 7, you probably want to get the new 5i.4 engines.
More evidence that I update the blog software frequently - a change to an api I made yesterday broke the comments page. What learned from this is, senders/implementors does not tell you everything once you start slapping code on ssp pages...
Go to Amazon and buy some clothes. Come back later, and you'll find this in the recommendations
Thank goodness for 2 hour delays after light snowfalls here in Maryland - I needed the sleep. It's something to do with baking. What I cannot figure out is why my wife always decides to bake after 11 pm. So off she goes, making something good (I have no complaints about the results), and it gets finished sometime after 1 am. There's always a good excuse - all I know is, it makes for late nights. This works for her - she just stays in bed. I, on the other hand, stumble out of bed, hook up the caffeine IV, and get my daughter ready to catch the bus. So here I am, yawning and catching up on feeds, news and USENET when I stumble on this post on Sam Ruby's web log. I see this:
I've been trying for days to subscribe to Ted Leung's RSS feed using Radio's aggregator. What I have been getting is:Well, I can't resist. I added the feed with no problems to BottomFeeder. I feed better already..."Can't subscribe to the channel. The most likely cure is to check the URL in a web browser and see if you can get it to read the feed. The following message probably won't help you figure out what went wrong, but we include it here because it might. "Assignment over existing table object "s" is not allowed. Delete the object first, or use table.assign to override protection."
Dave took a look at the code tonight, and addressed a number of updating issues. I had created an MNU with some new support I was adding for textinput (part of the RSS standard), and fixed that as well. The build is up.
Simplicity. If your policy is Radio Silence, every employee understands it and can follow it. If your policy is in any way complicated, nobody is sure what to do and things leak. Doesn't advance buzz and publicity help? I don't know. A little, but not as much as nonadvance publicity. I'm inclined to think that publicity that comes out when you can't actually buy the product is 90% wasted. Remember that incredibly big burst of Segway publicity about a year ago" With Jeff Bezos and Steve Jobs talking about how "IT" was going to revolutionize the entire universe? Cities would be reconfigured. OK, so, we all talked about the Segway, but nobody could buy one, so it's not clear that it was publicity well-spent. And it certainly seems like the same amount of publicity would have helped more if it appeared when every Walmart has Segways in stock.I'm going to have to sit back and think about this one...
I stumbled on this post detailing some job troubles related to blogging. I can relate to that; Some of my wilder ravings about industry analysts raised a few eyebrows with my employer. Still, I'm posting on a server owned by my employer, so I have to be more careful.
A few days ago I posted a question as to the utility of trackback/pingback. Well, I just added Trackback capability to the blog. I did that because it's a far simpler mechanism, and didn't require XML-RPC support. I'm looking around - apparently Roger Whitney did some work on this. In the meantime, trackback is operational here. See the bottom of each post for the trackback link.
Gordon Weakliem writes:
Today, I'm wishing for a way to do closures in .NET or Java. I have a bunch of SOAP calls and I'd like to save off, parameters and all, and invoke later, without writing any code, or very much. I've been itching to pick up Python again, but all this is sparked by a need to do some testing, and I've got a deadline. I'll probably end up doing this the hard way.Here's his post Well, look no further than VisualWorks Smalltalk. We have a full SOAP implementation, and Smalltalk, of course, has closures. A neat aside on this is a topic that came up on comp.lang.smalltalk the other day - Cees de Groot wanted to do a demonstration of pushing a Smalltalk process out of a Windows box and then running it - from where it left off - on a different OS. A few messages later, and he had his demo using BOSS (a binary object serializer). That would work ;-)
I spoke at the New York Smalltalk User's Group meeting last night, and gave this presentation. There were 30+ people in attendance, and a lot of conversation - questions came up, and discussion on the points I was discussing flowed freely. Of course, this was a mostly friendly audience - but even so, the conversation was excellent. The point that seemed to resonate most was this:
How to Fail with the Rational Unified Process: Seven Steps to Pain and Suffering Three RUP experts have identified patterns of failure when using RUP and written an excellent paper that elucidates them in depth: Larman, Craig, Kruchten, Philippe el al. How to Fail with the Rational Unified Process: Seven Steps to Pain and Suffering. Valtech Technologies and Rational Software, 2001. In order to ensure absolute misunderstanding and failure in RUP adoption, we provide the following checklist or score sheet. Of course, the more points scored, the more successful the RUP failure. You know you didn't understand the RUP when:And the beauty of it is, he lifted this checklist from the Rational site! Go read the whole post.
We are confident that by ... applying the checklist of misunderstandings, your adoption of the RUP and iterative development will be a spectacular mess.
- You think that inception = requirements; elaboration = design; and construction = implementation.
- You think that the purpose of elaboration is to fully and carefully define models, which are translated into code during construction.
- You think that only prototypes are created in elaboration. In reality, the production-quality core of the risky architectural elements should be programmed in elaboration.
- You try to define most of the requirements before starting design or implementation.
- You try to define most of the design before starting implementation.
- A "long time" is spent doing requirements or design work before programming starts.
- An organization considers that a suitable iteration length is measured in months, rather than weeks.
- You think that the pre-programming phase of UML diagramming and design activities is a time to fully and accurately define designs and models in great detail, and of programming as a simple mechanical translation of these into code.
- You try to plan a project in detail from start to finish, allocating the work to each iteration; you try to speculatively predict all the iterations, and what will happen in each one.
- An organization wants believable plans and estimates for projects before they have entered the elaboration phase.
- An organization thinks that adopting the RUP means to do many of the possible activities and create many documents, and thinks of or experiences the RUP as a formal process with many steps to be followed.
I've just finished the presentation to the NYC STUG, and it started a fascinating conversation. I'll post details later; right now I have to find my way back to the train station!
I am headed off to the NY Smalltalk User's group meeting, NC CD's in hand. Follow this link for details and directions to the meeting.
In fact, the same controversy that happened 10, 15, and 20 years ago in the manufactoring sector. I can't find the original story online (at least not free - this link will lead you to pay options), but here's something I got in email:
A wellspring of resentment is gushing among information technology workers as employers ship more computer jobs overseas - often to India - and bring foreign workers here. The job export, a stunning reversal of the late-90s demand for local IT employees, is raising questions about the industry's future and sending more U.S. workers into a downwardly mobile spiral. Businesses in the Hartford area alone have terminated hundreds of American IT employees and consultants in the past year, under pressure to boost profits and please shareholders. And more layoffs are on the way. Companies such as Aetna, ING Group and CIGNA say that they must find cheaper IT labor to keep their costs down and compete, and that Indian companies offer a well-trained and eager pool of talent. The U.S. employers also like the overnight staffing that stems from the time difference between countries.I remember these stories - about other industries - from the 70's and 80's. Not sure what can be done about it - protectionism rarely works out the way you want it to. For more commentary, I did find a link to some feedback to the original newspaper story
Slashdot has a story on the AMD FAB30 plant in Dresden, Germany. I wonder how many of the readers know that AMD FAB plants run on Smalltalk?
The Loosely Coupled Blog has an interesting post on the transparency of apis. It's done in the context of URI's, and the question he raises is, should a URI be a well defined interface into a site's functionality, or should it be an opaque thing, freeing the site designer's to change the URI namespace at will?
Apparently it's a bad idea if ignorant users like you or I can decipher how a URI works. That is, we shouldn't be allowed to look in the location bar of our browser and be able to see, for example, that http://www.google.com/search?hl=en&q=SOAP is a request to Google to search (/search) in the English language (?hl=en) for the term SOAP (&q=SOAP). According to Tim-Berners Lee, the original creator of the WorldWide Web and still head of its leading standards body, the W3C, that's too transparent. He - along with many other influential figures in the technology world - believes that "a Web application's URI namespace should be opaque," writes Jon Udell this week in his InfoWorld column. The purpose of Berners-Lee's opacity axiom, Jon explains, "was to ensure that a service provider can always reorganize a namespace without fear of breaking clients that depend on that namespace." In other words, Google should be free, for example, to insert new elements in front of the &q= operator (which indeed it often does) - or even to change it to, say, &query= (which to my knowledge it never has) - without having to worry about the potential effect on systems that interact with it. Heaven forbid, after all, that anyone should be able to link to Google's, or Amazon's, or any other provider's URI in ways that the system's designers hadn't originally thought of. That might lead to - horror of horrors - unintended consequences.Go read the whole post - it's worth it. IMHO, transparency in this area is good - the more people there are who can make use of your content, the better.