Guy Fawkes recently posted darkly about.... well, about many things. In part, though, he posted about this idea:
If the Google calendar was not at http://www.google.com/calendar/ but was at http://www.cia.gov/calendar/ as a byte perfect clone, all the (perfectly reasonable) arguments made by the Google fanboys would evaporate, and yet, the tool in question would be identical.
That's an engineering challenge, actually! Here's how I see it:
I hereby postulate the Principle of Cultural-Determination by Engineering:
We become what we build.
For example, if we build many radios but just one transmitter tower, then a few of us will become broadcasters and many listeners. Another example: if we build widget that comes in a sealed case with no usefully serviceable parts, then some of us become authorized repair/exchange agents and others become potential cutomers for extended warranties and service agreements. The engineering decisions to build but one tower or to seal the case: those are co-commitment with downstream decisions about jobs, power, authority, and money flows.
The two examples (transmitter and sealed case) have something in common: asymmetry is a key feature of each. The engineered artifact presumes a separation of roles and so, then, the economy gives us that: broadcasters and authorized repair / exchange.
Turning to Google Mail and similar services: all contemporary web services have a particular asymmetry in common: every one of them presumes that there are regular users, and then there are other privileged users in the back office.
As a society and economy, we simply don't know how to build a web service like an email service other than by building Big Brother into the architecture. Perhaps we "know" in theory but, in practical terms, we seem to be stuck building more and more systems on web service platforms that have user surveillance built-in from the ground up. The first step of each new service is roughly: "design the database tables". So, someone has to be the Watchers behind the 2-way TVs. We become what we build.
What would an email web service look like if the software was built in such a way that "there is no back office -- no Big Brother built in"? No central "administrator role" with privileged access to other user's data?
It was contemplation of just that question that led me to build flower. There is my answer (a large part of it, anyway). And here is how it relates to problem "Big Brother Built In":
Flower is a very, very high level virtual machine and it is very "web centric". The primitive data types of Flower are identical with the types defined for XML. The primitive operations of Flower are (quite powerful) database queries (in XQuery). Primitive operations can trigger database updates, web transactions, and other forms of side effect. Data for which an XML representation is inappropriate (such as image or audio files) are handled at arms length: as named, persistable streams of octets that can be forwarded but not directly examined.
Remarkably, simple but effective implementations of Flower can be assembled from off-the-shelf free software with the addition of but a few lines of code. The resulting assemblage is, itself, remarkably simple with extremely few external dependencies. A server dedicated to running only instances of Flower could actually be quite minimalist.
Flower is a reflective, dynamic environment: programs can install and run other programs on the fly; programs can build other programs on the fly; programs can modify themselves on the fly.
Well so what? How do those technical bells and whistles relate in any way to the "Big Brother Built In" problem?
For one thing, part of the answer: I claim that Flower is amply powerful enough to build a "personal email server" (as one example). That is, any one of you could pick up a copy of Flower and, yes, you'll have to wrestle some of the "alpha quality" out of the code but... you can get from there to an email service with much of the friendly charms of, say, Google's -- except it would run on Flower. (And then you could extend this with calendering, etc.)
The other part of the answer: Applications written in Flower need no separate class of "administrator". The user operates the program for themselves.
You've written your email server -- how do you share it? In today's world, using Big Brother software, you better get some hosts and set up shop. Can't have your server without your back office. To pay for that you'll want ads....
In the Flower world: just email the source code to your friends. They can grab a generic Flower instance, securely hosted at the ISP down the street with cameras on the machines all the time and a monthly party around visiting the metal shredder. Flower is reflective, remember, so your friends just upload the code into their generic flower instance and, there you go. User in control. A much tamer facility with no "Back Office" to speak of.
-t
p.s.: The whole "stack" is due for pretty radical simplification. These guys make some sense. I like my vm better than theirs but mine isn't done yet so don't look at it :-)
What would an email web service look like if the software was built in such a way that "there is no back office -- no Big Brother built in"? No central "administrator role" with privileged access to other user's data? It was contemplation of just that question that led me to build flower.
So you replace the humans with the pigs?
Sure anyone can run their own instance of flower *if* they agree with the licensing terms of the 'patent pending technology'.
Yeah, I couldn't let that one slide by...
Whatever happened to the dream of a cell processor in every eletronic device connected to the internet 3.0 IPv6 -- that would break the back of the centralized data delivery model.
Sure anyone can run their own instance of flower *if* they agree with the licensing terms of the 'patent pending technology'.
Is there some way in which you think the terms offered violate the ethical principles of software freedom? Flower does use a free software license.
So you replace the humans with the pigs?
No, I propose the construction of an environment in which I directly purchase most of the server cycles that I consume, rather than renting those cycles indirectly in a bundle with a 3rd-party-operated web service (and so do you and everyone else).
I don't have an issue with the flower concept just the market monopoly you are seeking on its implementation.
Basically, I have to ask for your trust and you have to understand my reasoning. My request for trust comes in this form: you show me a real (real!, not hypothetical or fake) situation where I ought to liberalize or alter my terms and I promise to take you real serious and try to work it out. Meanwhile, consider me: I'm a controversial and widely disliked figure among the "elites" in the open source industry. Compensation commensurate doesn't seem to be forthcoming to me out of any sense of good will. Damn straight I'll look for a fulcrum -- for leverage.
Additionally, there's the "stewardship" thing. Flower is a thing that wants some serious investment in build-out, even though it is structurally simple. I ask for your trust that way, too: to give me some leverage over that.
It would arguably have been socially irresponsible not to seek patent protection for flower.
"Basically, I have to ask for your trust and you have to understand my reasoning."
Thomas, I don't know much of anything of you at all except to know I have seen you around here for a good long while and I don't have any negative images of you in my head from this.
I have some rules of thumb I use for myself when it comes to software licenses and Free Software licenses.
I don't have to trust you and neither does anyone else. I prefer licenses and setups that reduce the amount of trust that I need to place in anyone and especially unknown people. Just as you don't have to trust the "elites" in the open source industry.
And certainly no one has to understand your reasoning. You are of course free to ask for that trust and for that understanding.
I fell uneasy when people choose non popular licenses for works, especially ones that are not compatible with the GPL.
I feel uneasy when people have two code "bases/branches" wher the setup is such that there is a Free set and then some sort of enhanced code that is under a non-Free license.
If I am thinking of putting Free Software (any software actually) at the core of a business, I am uneasy without the ability to arrange professional, paid support.
I am not interested in using Free Software where the copyright holder has patents on the code as it seems you have, where there is not some patent pledge (binding) that will allow forking of the code, and re-purposing of the code where the patent grants will allow this.
Those are off the top of my head. There are probably others. So, reading your page, I am uneasy with the license and with the patent situation.
One outcome that could make you happy is this: Maybe other people (with money) will agree with you that this technology should be free and clear, GPL compatible, etc.
I could be very happy with that outcome, if I feel a bit like I've been "made whole".
At this point, I am not particularly interested in the work per se. I was more trying to give helpful feedback.
This is a position I have come to over more than ten years in this space. Trying to do the best for myself and my clients and my friends and family.
I can't imagine that I am unique in being in this ball park. So, this is where you may run into resistence and why contributors may be hard to come by. If not, fine.
" I could be very happy with that outcome, if I feel a bit like I've been "made whole"."
When you speak of being "made whole" - are you primarily speaking of money, respect, something else?
To be clear, I think there are sound, principled reasons to have patents, including software patents. The extact enumeration of rights that come with that are a separate question but, it's a fine system. With the idea of "Freedom Price / Date" you are recreating some key aspects of the patent system, btw.
"To be clear, I think there are sound, principled reasons to have patents, including software patents."
To be clear on my part.
I don't think patents or copyrights are a Free Market play.
I think copyrights may be an OK distortion of the Free Market but that the system is way out of whack. (I have not spent too much time thinking about if it is really worth that distortion as we are no where near one which I think may be, what we have now, isn't.)
I think old style patents may be an OK distortion of the Free Market. These business method patents, software patents, biological patents are a different matter. I have serious doubts about all of those. I certainly think using a patent to effectively make Free Software into non-Free software is not OK for me and I doubt it will go over well with people who are interested in the Free aspects of Free Software. It is unclear to me from your site whether you have this in mind or not.
Of course, you are a Free person and the system is open to you so it is your call with your work.
"With the idea of "Freedom Price / Date" you are recreating some key aspects of the patent system, btw."
Well, of the copyright system in our case, but yes, I know that. And we could only make use of that play with the underlying power of copyright in the first place. Unless we wanted to do some sort of customer by customer contracts or such.
There are two court decisions (people say) that triggered the deluge: "State Street Bank & Trust vs. Signal Financial Group" and "Diamond v. Diehr". Lots of experts have written about those. There's better material around that I could pick out easily.
Those decisions both look pretty good to me. I don't think either one was actually much of a change from precedent, although they did cause changes (from without) to USPTO policy. The bank suit involved, essentially, the design of a novel kind of "financial factory": the invention processed essentially tangible things (trading orders) and produced a novel kind of market. Can you patent a chemical plant design? A new kind of food mill? Why not "financial factories"? The other suit involved software essential to a machine that cures rubber. In something like that: if the designers take out the microcomputer and replace it with an analog control circuit, can they patent the machine then? How slippery are these slopes? The courts' reading in those cases were fine.
The problem that arose, in our industry, was two-fold. First, there was a very wide-spread rumour that patent law had changed more than it probably did -- the rumour that it was now open season for software patents. Second, that led to extremely aggressive speculation at the PTO window, filing for everything in site.
Such an influx of money into such a narrow niche (software patent speculation) inevitably gives us businesses set up to make money on the margins of that speculation: patent attorneys, patent value recovery firms ("sharks"), patent pundits, patent advocates, anti-patent movements, ....
That's quite a party, caused entirely by the PTO throwing up its arms at the onslaught of applications, and applicants speculating like made.
The catch is, for the most part, the pay-out of that speculation still isn't known. And the bigger catch is that the pay-out looks grim for most of what you and I would think of as pretty junky patents, which seem to form the bulk of what people speculated on. I'm not sure the threat is as great some anti-patent advocates claim.
Meanwhile, look at something like the RSA patent and its context. IBM and the US Government (and others) were pushing NSA-approved crypto standards of dubious quality. They might even have become legislated as what we had to use.
RSA's patent made it possible to raise capital to develop the RSA technology and put up a fight in the market place. (A fight RSA won.)
Was 20 years too long? Maybe but the timing worked out well in combination with the public disclosure requirements of patents: the (then early) browser community essentially counted down to the patent expiration date and then very quickly built the features (giving us the foundation of modern e-commerce). (Also, PGP, etc.).
So what about my case? My application being in just about the earliest possible stage, I can not (for obvious reasons) try to list my claims here or argue for their reasonableness. For discussion, please stipulate for a second and assume that they are reasonably strong and potentially valuable. Then, what I have is the product of my inventive activities and it's a good design but a design that "wants" by its nature to have some pretty serious spending on its build-out, in anticipation of what we can reasonably bet will be good returns. How in the world can I address the capital markets without just being cut out of the deal? A financier who cut me in would have to answer his shareholders when they ask "Why did you pay him that?" and the answer "It seemed fair," won't cut it. The answer "To buy patent licensing guarantees," does cut it.
Non-junky use of patents isn't part of a system that restricts a prior market. It's a system that creates a market where none previously existed. It creates disclosure -- without which you don't live in such a rich world. It creates conditions of trust that make venture capital markets possible (and comparatively orderly, around well-patented technology).
A common concern around places like Technocrat is that patents can make it "impossible for anyone to safely write free software." I agree that there are deep issues there. At least I am so far addressing them in my actions, though.
Strange how the old becomes new again. Artists are having to rediscover how to make money absent a copyright system and are re-learning the forgotten ways that were practiced for millenia.
As I was saying in the other post, the 'market' always finds a way to bust monopolies.
I can think of many real reasons and historical precedents but none that directly apply to your particular instance --mostly because I don't know all the details other than your previous statements about seeking a patent.
You do realize that something in the public domain can't be patented? There are *very* good reasons why some revolutionary ideas like scientific formulas can't receive patent protections.
Not to be offensive (famous last words) but it seems like it is more of an entitlement issue than anything else but enough with the junior woodchuck psycho-analysis.
The impression I got is that you were seeking a patent to protect it from the evil doers who might use it for evil.
All you have to say is you have this new idea and you wish to capitalize on it -- no shame in the profit motive. Can't really claim it's free software but there is nothing wrong with proprietary softwares.
Now government granted monopolies are just pure evil...
That's the old 'just following orders' defense. The *only* reason patents are useful is to protect the holders from free competition and allow rent seeking.
Promote the useful arts and all that jazz, reverse engineering and the almighty dollar are good enough ways to keep ideas and inventions from becominging locked up as trade secrets and never used to further science.
Look how good security through obscurity has worked out for those who's business model relies on trade secrets to keep their competitive edge. The ancient Chinese tried that to protect their silk trade but the 'market' always finds a way to bust monopolies.
Intellectual property laws go against the basic fundamental property rights that have allowed humans as a species to engage in such things as division of labor and create grand civilizations.
No, patents are actually useful as an agreed upon form of well regulated free competition.
Enabling large-scale commerce takes active work. It is something that we as a society do. "If you want to have cities, you've got to build roads" and, one thing leads to another: regulation creates markets that don't otherwise exist. So there's a social stake in it and there's also an orderly way to recognize inventors. What's not to like?
""Now government granted monopolies are just pure evil...
I didn't deal the cards.
-t"
At the risk of further unintentional offense...
That's the old 'just following orders' defense. The *only* reason patents are useful is to protect the holders from free competition and allow rent seeking."
No, I think Thomas is possibly right here. What you are saying may indeed be right where there is no patent law. That's not where he finds himself however and not we we all are either. Hence his point of not having dealt the cards. We sometimes find ourselves having to use our adversaries weapons and plans against them to protect ourselves.
You would need a double coincidence of infringement for the defensive patent idea to work.
Let's say that MS wants to flex its muscles and take down samba. Any defensive patent they could hope to apply for and use would by its very nature be prior art since MS was using it at the time they sued.
Or patent trolls who produce nothing so couldn't be infringing on anyone's IP.
The original intent was for people to benefit from sharing their ideas instead of keeping them secret to try to protect them. But as they say 'the road to hell is paved with good intentions'.
"You would need a double coincidence of infringement for the defensive patent idea to work."
Not really, if I come up with a new and patentable idea, I am in danger of having to pay to use my own idea if I do not manage to patent it first.
Now, it might be good enough if the patent office had to run a prior art and idea database where those who had ideas could register them and give them to the public without having to actually get a patent.
Is something like that possible today? Do you see an alternate solution short of getting rid of patents completely?
[...] if I come up with a new and patentable idea, I am in danger of having to pay to use my own idea if I do not manage to patent it first.
Now, it might be good enough if the patent office had to run a prior art and idea database where those who had ideas could register them and give them to the public without having to actually get a patent.
Is something like that possible today? Do you see an alternate solution short of getting rid of patents completely?
The traditional advise is that you should keep a notebook, dating each page, writing down your ideas. Important pages (with ideas you think are big): get a witness to sign.
Nowadays, some people do that on the web -- keep their notebook in HTML and rely on that as a form of publication for protection.
The PTO and Congress are dabbling in more open forms of patent review and challenge. That is one approach being worked on for the QA problems.
Also, as I recall, there is some mechanism for getting PTO to archive pretty arbitrary pages for you, in case you need them for defense or application later. It costs real money. They don't read your papers and use them to evaluate future applications. But they timestamp them and stick them on a shelf for you. (There are also "provisional patent applications" which are the same thing but also set a clock ticking on completing a full patent application, also giving you an extra (retroactive) year of protection if you receive a grant.)
I seem to recall a program where you could pose a challenge to a patent (or application IIRC) based on prior art. The anti-reason for using it was to not help out the patent trolls, weeding out their bad patents so they had a much better chance in court.
I'm pretty sure it was Bruce advocating this position but not 100%.
As for reforming the system, you think it's bad now just wait until fashions, food recipes and every other special interest gets either patent or copyright protections. The food and fashion ones are already circulating up on Capital Hill.
Or like that doctor that posted here a while back claiming he had a patent on the usage of a drug. So if someone were to discover that aspirin cures cancer they could patent its usage in this way and charge a license fee even though they didn't develop the cure but merely discovered it. Zogger might remember the article it was posted under, if he reads this far into the discussions, since he recognized the disease and posted the article.
So my opinion is the slippery slope, as Thomas puts it, starts with "Congress has the power..."
Ignoring the "flower" software for a moment, and going back to the concept of "Big Brother"...
I run servers at home, so I'm "Big Brother."
Let's start with the premise that not everyone is competent to run a server. There are many activities in life, and nobody is competent to perform every single one of them. Furthermore many of these various systems in life are vulnerable or fragile, so it's necessary to restrict access, in order to keep them working. There are 2 general schemes of restricting access, voluntary and involuntary. Voluntary generally means, "Please don't touch what you don't understand," and involuntary generally means restricting permissions and separating people into users and administrators.
One could say, don't make services vulnerable or fragile, so we don't have to separate users from administrators. That's easier said than done, and perhaps all it really does is separate users from programmers, because the administrative decisions do have to be made by someone. In that respect granting those decisions to administrators is more egalitarian, because otherwise they're made by the even smaller set of programmers.
We still haven't met Big Brother, yet. Perhaps it's only due to the current imperfect state of software, perhaps it's inherent, but services need logging. Periodically someone has to look at those logs to make sure the services are still running properly - that the server is "healthy." Logs tell what the server is doing, who is connecting, etc. At this point the door is open for Big Brother to exist, because now in addition to monitoring the system, it's possible to monitor the users.
For instance, I run fetchmail, postfix, and dovecot for my family's email. All of these programs log activity, so if I want, I can monitor the incoming and outgoing email activity of each family member, if I choose. I usually choose not to, but when a family member complains about email problems, I'll go into the logs and trace their mail paths, looking for a problem. That's what logs are for. But in general, the role of Big Brother is mine to choose to take on, and the information to don that role is always available.
That information is necessary to me as administrator, because I need to keep the trains on time. It's necessary to trust me, that I won't abuse that information and become Big Brother.
We cross the Rubicon when we decide to take that same information and make it available to a different, specific class of users. Those users seek that information specifically for the Big Brother role, their prime interest is the monitoring of users, not simply keeping the services running.
The whole role of Big Brother is a slippery slope, but I would argue that a line is crossed when log data is provided for a non-service/non-maintenance role.
That's a nice piece. I especially like the conclusion:
The whole role of Big Brother is a slippery slope, but I would argue that a line is crossed when log data is provided for a non-service/non-maintenance role.
I want to address this paragraph:
One could say, don't make services vulnerable or fragile, so we don't have to separate users from administrators. That's easier said than done, and perhaps all it really does is separate users from programmers, because the administrative decisions do have to be made by someone. In that respect granting those decisions to administrators is more egalitarian, because otherwise they're made by the even smaller set of programmers.
I'm a big fan of administrators in that sense, especially ones that operate just down the street so if I have any questions I can go pound on their door. I like some of the spirit of SAGE, for example.
You are right that it is "easier said than done" to make services less vulnerable, less fragile -- in short, needing less trust for administrators. That is part of what makes Flower so interesting: aside from being right for the domain and easy to assemble from off the shelf parts, it features a significantly simplified stack. One strategy for making systems less vulnerable and fragile is to keep making them simpler and simpler until you can't. You can go through and enumerate pretty easily what ought to be monitored in a Flower node: it's a small enough list to work on directly in expectation of solving it, I think.
What's a hacker to do?
Guy Fawkes recently posted darkly about.... well, about many things. In part, though, he posted about this idea:
That's an engineering challenge, actually! Here's how I see it:
I hereby postulate the Principle of Cultural-Determination by Engineering:
For example, if we build many radios but just one transmitter tower, then a few of us will become broadcasters and many listeners. Another example: if we build widget that comes in a sealed case with no usefully serviceable parts, then some of us become authorized repair/exchange agents and others become potential cutomers for extended warranties and service agreements. The engineering decisions to build but one tower or to seal the case: those are co-commitment with downstream decisions about jobs, power, authority, and money flows.
The two examples (transmitter and sealed case) have something in common: asymmetry is a key feature of each. The engineered artifact presumes a separation of roles and so, then, the economy gives us that: broadcasters and authorized repair / exchange.
Turning to Google Mail and similar services: all contemporary web services have a particular asymmetry in common: every one of them presumes that there are regular users, and then there are other privileged users in the back office.
As a society and economy, we simply don't know how to build a web service like an email service other than by building Big Brother into the architecture. Perhaps we "know" in theory but, in practical terms, we seem to be stuck building more and more systems on web service platforms that have user surveillance built-in from the ground up. The first step of each new service is roughly: "design the database tables". So, someone has to be the Watchers behind the 2-way TVs. We become what we build.
What would an email web service look like if the software was built in such a way that "there is no back office -- no Big Brother built in"? No central "administrator role" with privileged access to other user's data?
It was contemplation of just that question that led me to build flower. There is my answer (a large part of it, anyway). And here is how it relates to problem "Big Brother Built In":
Flower is a very, very high level virtual machine and it is very "web centric". The primitive data types of Flower are identical with the types defined for XML. The primitive operations of Flower are (quite powerful) database queries (in XQuery). Primitive operations can trigger database updates, web transactions, and other forms of side effect. Data for which an XML representation is inappropriate (such as image or audio files) are handled at arms length: as named, persistable streams of octets that can be forwarded but not directly examined.
Remarkably, simple but effective implementations of Flower can be assembled from off-the-shelf free software with the addition of but a few lines of code. The resulting assemblage is, itself, remarkably simple with extremely few external dependencies. A server dedicated to running only instances of Flower could actually be quite minimalist.
Flower is a reflective, dynamic environment: programs can install and run other programs on the fly; programs can build other programs on the fly; programs can modify themselves on the fly.
Well so what? How do those technical bells and whistles relate in any way to the "Big Brother Built In" problem?
For one thing, part of the answer: I claim that Flower is amply powerful enough to build a "personal email server" (as one example). That is, any one of you could pick up a copy of Flower and, yes, you'll have to wrestle some of the "alpha quality" out of the code but... you can get from there to an email service with much of the friendly charms of, say, Google's -- except it would run on Flower. (And then you could extend this with calendering, etc.)
The other part of the answer: Applications written in Flower need no separate class of "administrator". The user operates the program for themselves.
You've written your email server -- how do you share it? In today's world, using Big Brother software, you better get some hosts and set up shop. Can't have your server without your back office. To pay for that you'll want ads....
In the Flower world: just email the source code to your friends. They can grab a generic Flower instance, securely hosted at the ISP down the street with cameras on the machines all the time and a monthly party around visiting the metal shredder. Flower is reflective, remember, so your friends just upload the code into their generic flower instance and, there you go. User in control. A much tamer facility with no "Back Office" to speak of.
-t
p.s.: The whole "stack" is due for pretty radical simplification. These guys make some sense. I like my vm better than theirs but mine isn't done yet so don't look at it :-)