Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
<<<
You see, in this world there's two kinds of people, my friend: Those with loaded guns and those who dig. You dig.
//Il buono, il brutto, il cattivo//
<<<
Browsing through Wikipedia, I've come across the following definition, and it immediately struck me as wildly compelling. It is about a program of regular payouts, an economic rent of sorts, with the following four characteristics:
*the benefits, eligibility requirements and other aspects of the program are defined by statute;
*explicit provision is made to account for the income and expenses (often through a trust fund);
*it is funded by taxes or premiums paid by (or on behalf of) participants (although additional sources of funding may be provided as well); and
*the program serves a defined population, and participation is either compulsory or the program is heavily enough subsidized that most eligible individuals choose to participate.
The Wikipedia article goes on to define the program -- alternatively -- as
<<<
a program where risks are transferred to and pooled by an organization, often governmental, that is legally required to provide certain benefits.
<<<
The article ends with the assertion that programs of this type
<<<
are often not fully funded, and some argue that full funding is not economically desirable.
<<<
Now, what I found oddly missing from the above definitions is the requirement that ''these programs get covered (paid for) by newcomers, at the ultimate expense of the latest comers who never get paid because the scheme breaks down before that''. As you will have guessed by now, the definition I'm talking about is the definition of a [[Ponzi scheme|http://en.wikipedia.org/wiki/Ponzi_scheme]].
What's interesting, though, is that the above quotes are ''not'' from the Wikipedia article on the Ponzi scheme! They are from the Wikipedia article on [[Social insurance|http://en.wikipedia.org/wiki/Social_insurance]].
Of course, nobody in their right mind would dare accuse Social insurance of being just another Ponzi scheme. In fact, there are two characteristics that clearly distinguish Social insurance from Ponzi schemes:
*in Social security programs, the returns to your clients get postponed not by 30-40 ''days'', as in ordinary Ponzi schemes, but by 30-40 ''years'' -- a wet dream hardly attainable by any Ponzi scheme, although [[Madoff|http://en.wikipedia.org/wiki/Bernard_Madoff]] managed to come reasonably close;
*a Ponzi scheme can hardly count on a government bail-out:
<<<
If governments use newly created currency to bail out the scheme victims, the newly printed currency will devalue the rest of the currency in circulation, meaning all holders of that currency will suffer inflation to the currency.
http://en.wikipedia.org/wiki/Ponzi_scheme
<<<
So, if we //unforgivably// simplify the whole thing, we get that: ''if'' Social security were just a variant of the Ponzi scheme, then it would be an incredibly improved one: with the payback time extended to several decades -- and the added benefit of many beneficiaries actually dying before, or soon after, reaching the required age. Additionally, whenever the collapse point of your Ponzi scheme was reached, the government would bail you out, redistributing all your debt over the entire nation (millions of taxpayers)! An ideal [[negative externality|http://en.wikipedia.org/wiki/Externality#Negative]] if I ever saw one!
But stop, wait a minute! That would mean that you can make a Ponzi scheme virtually full proof, ''provided you do it on a scale large enough''. So, if you pulled a Ponzi that was so incredibly huge as to threaten to bring down the entire world economy, then, faced with the decision whether to bail you out or to let the global economy collapse -- the powers that be would almost certainly bail you out!
But ... wait! If this is so incredibly simple -- then ... then I'm most assuredly not the first one to have thought of it!
I wish that thought had never entered my head.
Because, as soon as it did, I started noticing disturbing (if far-fetched) parallels and similarities in other "fields of endeavor":
*Suppose, you have the authority to issue worthless scraps of paper to your clients, stating that each scrap is nominally worth 10, or 100, or 1000 $, € or whatever. Then, at a given moment, you declare the paper worthless again (not that it wasn't before, it's just that you now actually avow it): why does this irresistibly remind me of inflation and devaluation? By the strangest of coincidences, only 3 days after I had written these statements, an amusing article appeared in The Onion:
<<<
"It's just an illusion," a wide-eyed Bernanke added as he removed bills from his wallet and slowly spread them out before him. "Just look at it: Meaningless pieces of paper with numbers printed on them. Worthless."
According to witnesses, Finance Committee members sat in thunderstruck silence for several moments until Sen. Orrin Hatch """(R-UT)""" finally shouted out, "Oh my God, he's right. It's all a mirage. All of it—the money, our whole economy—it's all a lie!"
http://www.theonion.com/articles/us-economy-grinds-to-halt-as-nation-realizes-money,2912/
<<<
*Or, you have the power to institute a monopoly on a certain commodity and artificially inflate its price 10-, 100- or 1000-fold or whatever. Then, after selling all of your commodity at this inflated price, you declare that the commodity was actually never that valuable after all: why does this remind me of market bubbles?
*Or, you have the wherewithal to declare that there is a virtual place called "Stock market", and that this virtual Erewhon is somehow related to the fictitious "value" of fictitious entities called "Enterprises" -- and people ''actually buy'' all this crap (I know, it sounds preposterous, but just bear with me for a moment). Then, you sell worthless pieces of paper as "shares" of such an Enterprise. When buyers realize that those pieces of paper are just that (pieces of paper, with some cheap ink on them), you're encouraged by law to declare "bankruptcy" -- keeping all their cash and leaving them the worthless ''pieces of paper''. You can't be jailed for that; instead, you are actually encouraged to reinstate a new Enterprise, perhaps with a slightly modified name, and start the scam all over again. Why does this remind me of the unaccountability of those legal persons who have "[[no soul to save, and no body to incarcerate|http://members.iimetro.com.au/~hubbca/corporations.htm]]", no conscience, no decency, no moral standing, no guilt, and no responsibilities whatsoever (but ''plenty'' of ''rights'') -- the corporations?
*Or, you have the means (and the //cojones//) to declare, after you cash in, that not only your Enterprise, but the //entire// "Stock market" has collapsed -- effectively robbing //millions// of [[small stock holders|http://search.yahoo.com/search?p=%22little+lemmings+shareholders]] of their life savings! Wow, imagine the profits in that! Why does that remind me of a Stock market crash?
*Or, you have the power (and the cynicism) to pull the above trick //repeatedly, every five years or so// (preferably less). Gosh, would that be a huge business model in its own right! Now why does that remind me of cyclic [[financial crises|http://en.wikipedia.org/wiki/Financial_crisis#Prior_to_19th_century]] throughout history?
What? Financial crises -- and potentially even wars, epidemics and scarcities -- being //artificially, purposefully// triggered by the powerful few? Come on, that would imply the existence of certain positions of absolute power and absolute cynicism, to which the global economy, sovereign regimes, wars, famine, global pollution, mortal diseases and the like are nothing more than means for enforcing their own agenda ... Naaah, that would smell of world conspiracy, and we all know [[there is no such thing as conspiracy|http://www.google.com/search?q=%22there+is+no+such+thing+as+conspiracy]].
Besides, enforcing their own agenda would be so utterly different from what you and me strive to do, right? They're certainly //nothing like// you and me! They're most assuredly, like, donating to the Third World, making personal sacrifices for the benefit of Humanity, giving a kidney to save some sick African kid, or some crap like that!
<<<
For it is vital to the continued rule of the State apparatus that it have legitimacy and even sanctity in the eyes of the public, and it is vital to that sanctity that our politicians and bureaucrats be deemed to be disembodied spirits solely devoted to the "public good." Once let the cat out of the bag that these spirits are all too often grounded in the solid earth of advancing a set of economic interests through use of the State, and the basic mystique of government begins to collapse.
http://www.washingtonsblog.com/2010/02/leading-austrian-economist-some.html
<<<
Besides. Is it really possible that something that not so long ago would have been considered a textbook case of paranoia, has become, within the span of a generation or two, the mainstream paradigm, the "way of the world"? Come on! If there really was such a phenomenon, if there really were absolute cynics in positions of absolute power, there would be copious, prominent, and unambiguous evidence of that everywhere you looked!
For example: it would mean that many of the most disastrous events in our news chronicles, from oil spills to political assassinations, from rampaging epidemics to failures to save war refugees are simply the result of calm and detached (if short-sighted) cost/benefit analysis -- not the result of some sick plot to actively exterminate humanity.
It would also mean that the slave owners of the pre-Civil War South were just common men drawn together by shared beliefs and interests -- not "an exclusive group meeting in clandestine hideaways with focused and sinister intent" (cf. John Perkins, //Confessions of an Economic Hit Man//, p. 56).
It would mean that democratically elected presidents such as [[Mosaddeq|http://en.wikipedia.org/wiki/1953_Iranian_coup_d%27%C3%A9tat]], [[Arbenz|http://en.wikipedia.org/wiki/1954_Guatemalan_coup_d%27%C3%A9tat#Operation_PBFORTUNE]], [[Allende|http://en.wikipedia.org/wiki/United_States_intervention_in_Chile]] or [[Lumumba|http://en.wikipedia.org/wiki/Patrice_Lumumba#Plots_by_U.S._and_Belgium]] get "deposed" by the powers that be -- not by some arcane, evil masterminds.
It would mean that 6.000.000 Jews were liquidated by the official Nazi bureaucracy, coldly, systematically, matter-of-factly -- not by unidentifiable, obscure webs of deceit.
<<<
The Holocaust involved perpetrators and collaborators, some of whom were ideologues, criminals and sadists, but many of whom were, in the words of political theorist and author Hannah Arendt, "terribly and terrifyingly normal." They were part of a vast bureaucracy of death. They demonstrated how easily many individuals can ignore the dictates of conscience. The bureaucracy of death included the elites of a modern industrialized society: attorneys, judges, engineers, bankers, journalists and physicians. The latter conducted hideous medical experiments in the name of racial eugenics.
The victims of the Holocaust often could not imagine the unimaginable and were not aware of fate that awaited them.
[[Elliot Lefkovitz, The Holocaust|http://www.spertus.edu/learnmore/holocaust.php]]
<<<
It would mean that every day hundreds of young people get sacrificed in combat because they're too young to remember the horrors of the previous war(s) and because they are so easily inflamed by our own mind tricks such as Patriotism, Liberty or Fatherland -- not because they're being manipulated by hidden puppet masters for their own inscrutable purposes.
It would mean that huge loans get distributed to underdeveloped countries to enable them to pay for the arms we sell them, permanently subjugating them in a magical debt circle -- not in order to really help them out.
It would mean that, to the contrary of what we're made to believe, remote Indian tribes in the Amazon jungle actually never craved for our Coke, Cartiers, or Cadillacs -- whereas our corporations //did// crave for their oil, and still do so.
It would mean that the medico-pharmaceutical lobby (which is effectively running the WHO), when divulging information about particular diseases, nutrients, toxins, lifestyles, epidemics and the like, inflates, embellishes or downplays their respective effects and dangers -- based not so much on "truth" as on their respective ''profit potentials''. It would also mean that the industry [[rushes half-tested drugs onto the market|http://www.alternet.org/health/148907/15_dangerous_drugs_big_pharma_shoves_down_our_throats/]] simply because the profits are so huge as to outweigh any backlash, any settlements, any bribes to the FDA, and still yield a very nice profit.
It would mean that the phenomenon called "the corporate dumbing-down of our schools" by the conspiracy theorists is nothing but the "dynamic adaptation of the educational structures to the real-world demands of the industry" -- an ongoing effort, quite openly endorsed by all developed governments and many sincere activists. After all, we do want our kids to have reasonable job opportunities awaiting them once they finish school, don't we? No conspiracy there.
It would mean that our media, now predominantly [[owned by big transnationals|Can We Still Jump Ship?]], are
<<<
the primary shapers of public opinion about events and their meaning
<<<
and
<<<
a major influence on government
<<<
using
<<<
the power in selection of news and in private lobbying power to influence politicians and the political process
<<<
yet
<<<
''it is not a conspiracy'' -- large corporations have shared values that are reflected in their news and popular culture.
http://hope.journ.wwu.edu/tpilgrim/j190/Bagchap1.html
<<<
It would mean that JFK was killed by cold-blooded cynics in the Establishment who simply stop at nothing, the kind you would regularly see in TV news -- not by a secret society of underground figures in black.
It would mean that, if I was a weapon mogul, powerful and cynical enough, I could, say, sell armaments both to "Them" and to "US" and then instigate a war, with a huge increase in our War budget (in other words, make ''taxpayers'' pay, make ''soldiers'' die, while ''I'' pocket all the profits; it's called "//sharing// the war effort") -- which would imply that Wars are actually not about Freedom or Self Defense or Homeland or Democracy or Enemies or Security or Self Rule or anything of the sort, but just another, and quite unsophisticated at that, case of [[negative externalities|http://en.wikipedia.org/wiki/Externality#Negative]] (which, by the way, should simply be called by their real name, "hidden costs to the public")!
It would mean that many of our captains of industry who establish off-shore sweat shops and exploit child labor, or, better still, make local catchpoles do that for them, do so quite simply to cut costs -- not because they're wicked, evil, inhumane monsters.
It would mean that the economists, engineers and lawyers who "make sweat shops happen" and perform other dirty jobs for these captains of industry, truly don't see anything wrong in what they're doing. After all, they are doing exactly what they've been trained to do, first in their elite schools and then in their high-profile corporations or agencies. They may even sincerely think that, for those children, a dollar a day is still better than nothing. To quote John Perkins again:
<<<
Although unconscious, deceived, and -- in many cases -- self-deluded, these players were not members of any clandestine conspiracy; rather, they were the product of a system that promotes the most subtle and effective form of imperialism the world has ever witnessed. No one had to go out and seek men and women who could be bribed or threatened -- they had already been recruited by companies, banks, and government agencies. The bribes consisted of salaries, bonuses, pensions, and insurance policies; the threats were based on social mores, peer pressure, and unspoken questions about the future of their children's education.
(John Perkins, //Confessions of an Economic Hit Man//, p. 204)
<<<
It would mean that we get conned daily by the very politicians we celebrate so eagerly with paper flags and confetti -- even [[after|http://www.cageprisoners.com/our-work/opinion-editorial/item/789-no-appetite-for-prosecution-in-memoir-bush-admits-he-authorized-the-use-of-torture-but-no-one-cares]] they've been exposed! -- and by the very corporations whose products we so eagerly buy and consume -- not by the omnipresent but elusive Illuminati or by three-eyed Aliens ...
And who, tell me, just who in their right mind would believe something like that?
Maybe the most self-evident argument against the so-called "conspiracy theorists" is that it's just a matter of slanted perspective; or, of word definitions, if you will. What they call "conspiracies" is no cloak-and-dagger brotherhood of secret conjurers. Many of the facts and events these theorists denounce actually exist, it's just that they are not done in the shadows, by some arcane evil geniuses. More frequently than not they happen before our very eyes. There's nothing secretive about them. It's our very own powers that be, doing exactly what you and me would do if we were in their place. It's the //systema mundi//, as it unravels daily, in plain daylight, before our very eyes.
Sometimes, when things go bad, it's because the powers that be made a genuine mistake; but there are times when -- though they may try to make it look like a mistake -- the outcome of their actions, however horrible, hideous or inhumane, is not "a good plan gone bad" or something "done behind their backs" but precisely the outcome they pursued all along. The notion that ''such terrors could be systemic'' is so hard to accept and would overwhelm us with such utter despair, that we rather ascribe them to a restricted circle of evildoers, to some sort of sinister cabal. A //conspiracy//, as it were.
!!!Or: My Random Ramblings
!!!!Doh!
Doh. I mean the interjection, the word //doh// as such (sometimes also spelled as //duh//). I can't seem to get a grip of it. I've seen and heard it used a gazillion times, I've read its definitions, I even know it was invented by Homer Simpson and all - but can't really "grasp" its meaning no matter how hard I try.
!!!!Flight 'Safety' Demystified
Even after years and years of watching flight disasters on Discovery and NGC, I get irritated by the //cliche// of the alleged safety of airline travel. Again and again they bombard us with their statistics which is based on the number of fatalities per number of kilometers/miles traveled. Measured thus, air travel is -- surprise, surprise -- the safest form of travel in absolute, about ''60 times safer than driving your car''. Taking mileage as criterion, however, makes the implicit assumption that you can step out of the plane and cancel the trip at any point; since this is not true by any stretch of the imagination, safety should be calculated on actual applicable units -- and in air transportation, a journey (not a km or a mile) is the smallest unit you can take, don't you think? Now, calculating safety on a per-journey basis, we get completely different results: taking an airplane trip is about four times as dangerous as taking a car trip (according to [[other calculations|http://docs.google.com/gview?a=v&q=cache:rf0vZMA0pwAJ:dspace.lib.cranfield.ac.uk/bitstream/1826/2984/1/Is%2520it%2520Safe%2520for%2520Me%2520to%2520Fly-2008.pdf]], even eight times as dangerous, but for the sake of argument we'll stick with the more conservative figure). Not only are these results far less favorable for the airline companies, but, to make matters even worse, two additional factors jump to mind:
#There are written/electronic records of every single airline flight taken -- air flights are ''actually'' counted. On the other hand, who counts how many times a week I start my car and go for a ride? I strongly suspect that the number of car journeys they use in these calculations must be just a statistical guesstimate and, as such, very prone to potential bias and manipulation.
#More importantly: there are on average about 1.5 persons in a typical car, as opposed to about 150 passengers on a typical airliner. So, not only do airplane accidents occur about 4x as often as car accidents, but each of them also involves about 100x as many casualties! Which ultimately means that, taking the number of passengers into account, ''planes cause 400 times as many deaths per journey as cars''. And we haven't even taken into account the fact that far //fewer car accidents are actually mortal// as opposed to airplane crashes!
See also [[The Risks of Travel|http://www.numberwatch.co.uk/risks_of_travel.htm]] for some numbers, and [[1001crash.com|http://www.1001crash.com/index-page-statistique-lg-2-numpage-1.html]] for some graphs. [[This paper|http://docs.google.com/gview?a=v&q=cache:XitU9ZzRyQkJ:www.astro.rug.nl/~vdkruit/jea3/homepage/knipeng.pdf]] and [[this excellent essay|http://www.ianmortimer.com/essays/flying.htm]] on the matter make an interesting read.
Anyway, if you'd like to see what kind of people you entrust your life to every time you board a plane, just read http://en.wikipedia.org/wiki/Boeing#Unethical_conduct. I can't guarantee you'll still want to fly though.
!!!!Thomas Jefferson revisited
If there's any truth in the old saying that every people deserves the government it gets, the vast majority of peoples must be outright morons. I mean, hey, when pillars of democracy such as Great Britain, France, or the US, sink so low as to tolerate various Bushes, Blairs, and Sarkozys -- what are the rest of us to expect, really?
!!!!On The Great (Political) Divide
I have yet to see a definitive, convincing argument that a corporation-owned state is necessarily better than state-owned corporations.
!!!!On Corporatized Crime
Since most all of crime -- with the exception of the smallest and pettiest misdemeanors -- has long since been "corporatized", we should strike back by ''criminalizing corporations''.
!!!!Who's Our Enemy?
It's hard to know your way in a world where criminals and cops are commanded by the same identical bosses high above.
!!!!Too Young To Rock'n'roll, But Not To Die!
At the 2010 Sanremo Festival, a girl was scheduled to perform that was slightly under 18 years of age. Since underage people are apparently not allowed to appear in live shows after 12PM (or is it 00AM?), a pre-recorded performance of her was aired instead. How tender-hearted of us, to safeguard her underage integrity in such sophisticated, sensitive, fine-grained ways! Particularly when we know that only weeks down the road, the moment she reached 18, we could legally send her to Iraq or Afghanistan on a peace mission, to die in a car-bomb attack or something.
!!!!How Do You Define A Society
More than anything, a culture is defined by its attitude towards its most disenfranchised, its most deprived, its most underprivileged: the minorities, the poor, the homeless. At a more general level, it would be of utmost interest if societies were analyzed based on the relationship between its attitudes towards the various constituent groups: the privileged, the average majority, and the underprivileged, perhaps further breaking down this main triad into more refined subgroups. I guess that interesting graphs could be plotted, readily showing us that there are conspicuous differences between cultures.
!!!!De Probandis Regulis
11% of the so-called "scientific" proofs are outright wrong, while the remaining 99% are undetermined. I could easily provide scientific proof of that, but what would it prove?
!!!!Paedophliakes
Warning: this is extremely far-fetched; requires further research for corroborating evidence!
Once upon a time, teachers and clergymen had extremely great authority -- and power -- over our children, including the authority to chastise them (sometimes even physically). The new permissive doctrine in pedagogy and the recent developments in child rights, child autonomy etc. have been trying quite successfully to put an end to that. As their manifest power has been steadily declining, however, those figures of authority apparently just switched to others, more covert forms of power. And sexual abuse is really about control, not about sex, isn't it? May this be one of the reasons why sexual -- and other covert forms of -- abuse of children is on the increase among the clergy, and, on a smaller scale, teachers? Or is the prominence given to pedophilia only a media fad and there was never an actual increase in the number of incidents -- only an increase in media coverage and newsworthiness?
!!!!The Erased And The IRS
There's an ongoing argument among the Slovenian far-right that the so-called "Erased" -- thousands of Slovenians who had been illegally deprived of their citizenship after Slovenia became an independent state -- never paid taxes. Let me tell you how it really was (since I was one of the "erased" too): whatever money you earned, your client -- or employer, if you actually managed to get employed -- paid you //exactly// as they paid regular citizens (you received your net payment, while the taxes went directly to the government). However: as a regular citizen, you got social and medical security in return, and could claim a refund if you overpaid your taxes. None of this could be done by an "erased": no social security, no medical security, and no possibility to reclaim your taxes. Moreover, you were always robbed of the //maximum// possible amount of taxes, even if you had children or a disabled person to support, and so on. In fact, as a non-existing person, with no social security number, no fixed address etc. you could not fill out a tax form at all.
I think it's very similar with the so-called illegal immigrants.
!!!!Taxpayers
Many of the taxpayers who are glad to "subsidize" some wacky distant war on some overseas soil, would ''never for the life of them'' subsidize shelters for the homeless or public health insurance on our own domestic soil.
!!!!We're Nothing More Than Packets With A Short TTL
Given that time-to-live is a scarce commodity, one of the fundamental questions (and choices) in our lives should be //How much of my limited time-to-live am I willing to sacrifice for obtaining material goods?// Not surprisingly, though, this question is seldom asked (in a symbolic way, it was asked by [[Tolstoy|http://www.readprint.com/work-5987/How-Much-Land-Does-a-Man-Need-Leo-Tolstoy]]). We're just cogwheels, kept constantly in rotation, for the exclusive benefit of the machine. And, just like cogwheels, we're never told -- let alone allowed to ask ourselves, which would be far more dangerous to the system -- what did we get from our lives. We're tolerated only in as much as we keep the machine going, i.e. in as much as we ''earn earn earn'' in order to ''consume consume consume''. When our "useful life" is over, we're instantly replaced by a new cogwheel, lest we find a free moment to ask ourselves why the heck did we accept all this and never once took a moment off to actually ''live live live''.
!!!!The Dictator's New Clothes
A democratic political system may well be a //de facto// dictatorship (a dictatorship of consumerism, of corporatism, of religious, or market, fundamentalism, and so on). Even criminal associations of the worst type may be emblematically democratic (as reportedly the triads are).
!!!!Why Men Love Tennis
Maria "Upskirt" Sharapova vs. Daniela "Camel Toe" Hantuchova
!!!!Wife Wooing
The Cock And The Swallow
!!!!The Oral Office Incident
She was just giving heed to the """President-Erect""".
!!!!De Propaganda Fide
<<<
If you can control people by force, it's not so important to control what they think and feel. But if you lose the capacity to control people by force, it becomes necessary to control attitudes and opinions.
Noam Chomsky, //Imperial Ambitions//, p. 22
<<<
The more "democratic" a government is, therefore, the more it is forced by its very essence to resort to propaganda and hypocrisy -- or else to forgo its very democracy. However: if you're forced to spread ever increasing amounts of "engineered opinions" and "fabricated truths" just to preserve democracy, you're bound to reach a t(r)ipping point when you simply won't qualify for a true "democracy" anymore; but for a phony, Potemkin democracy at most. In other words: can a democracy based on manufactured consent (=lies) still be considered a democracy, and why not?
As for why did modern dictatorships swap force control for opinion control: probably because it's far far cheaper to maintain a thought police than an enlarged police force. And anyway, without the thought police dictatorships apparently fail in the long run. It's hard to run a country where 100% of the population are dissidents.
!!!!Reaching For The Moon
What was once called breathing space is elbow space now. It's the same old shit though, only it extends thousands and thousands of miles, all around the globe and into outer space. Some elbows!
!!!!The Problem With The Environment
If we can just keep on ignoring environment problems a little longer, there hopefully won't be anything to worry about anymore.
!!!!Decolonization
Now I understand what's de-colonization -- it's when they finally pull it out from your colon and leave your country!
!!!!The Three Fifths Compromise
Nobody seems to notice that, in the same paragraph of the original U.S. Constitution which excludes //two fifths// of the non-free blacks, the "Indians not taxed" are excluded //altogether//! Moreover, while the "three fifths" provision was superseded by the 14th amendment, nothing of the sort happened to the "Indians not taxed". Discriminating "Indians not taxed" is like saying: we'd never even //dream// of discriminating women -- we only discriminate "humans capable of gestating and giving birth"!
!!!!Hyperventilation
A panic attack is 190% inspiration and 190% expiration.
!!!!All Things Considered
All things considered, we are all breathing the air our forefathers forefarted in.
!!!!Sweaty Truck Drivers
There's only one thing that makes me cringe almost as much as the sight of a greasy, sweaty driver. That of a sleazy, hairy potter.
!!!!ssh vs. su
-- Why won't you let me ''ssh'' into you?
-- So ''su'' me!
!!!!Statistics
I //can// be all things to all people. I'm ''statistics''!
!!!!Global Produce
This is intended only as a //telling example// of the so-called "advantages" of the global economy. It should be easily, and without major modifications, extendable to any and all facets of the said economy beyond produce as such.
Instead of fresh, local produce, multinationals and the global economy virtually force us to consume "global" foods. The only "advantage" of this I'm able to spot -- as opposed to consuming local produce exclusively, as our grandparents did -- is the "economic" advantage to the multinationals. To individual consumers -- you and me -- on the other hand, this state of things presents ''disadvantages exclusively'', sold to us under the heading of "advantageous" nutritional "variety" (what a bag of manure!).
Let's just look into it for a second and we'll easily see why I say that:
#Remote produce has to be ''transported'' to the destination, which has many disadvantages, such as (but not limited to):
##it takes time
##it takes energy/fuel
##energy/fuel pollutes
##it involves expenditure (for building the infrastructure, the vehicles, paying the drivers, usually also providing ''refrigeration with its own set of //huge// environmental drawbacks'', and so on)
##the time taken degrades the ingredients, such as vitamins
##as for the produce which is transported after being pre-processed, all the disadvantages of pre-processed foods apply, and then some (related to long-range transportation as such)
##the time taken forces the producers to harvest the produce before it has reached its natural ripeness, thus preventing it from reaching its fully developed state in which it is known in its countries of origin -- we are actually, strictly speaking, ''not consuming the same produce the local population does''!
##it increases the energetic expenditure (footprint) of the human race
##it degrades the infrastructure (roads etc.) -- an additional cost, or negative externality, levied on the population at large which you as a taxpayer participate in //even if you never consume any "colonial" produce//, and, as such, creates social injustice
##microscopic particles of the infrastructure (such as the asphalt of the roads) get into the environment, as do microscopic particles of the rubber tyres etc.
#Remote produce exhibits properties which make it not very appropriate for our consumption, such as:
##it may require certain enzymes in order to be digested properly -- potentially enzymes possessed only by the remote populations in their intestinal tracts, but absent from ours
##it may present levels of particular ingredients that are appropriate for, say, metabolisms in tropical environments, but are nothing more than a superfluous burden -- if nothing worse -- on organisms native to our particular climate
##until proven otherwise, it may have other ill effects on our organisms, or at least overburden them with having to adapt to particular compounds and combinations to which we are originally not adapted. As an example, perhaps it contains free radicals we have trouble neutralizing, whereas the remote population has in-built mechanisms for neutralizing them
#//e chi piu' ne ha, piu' ne metta//, as Italians aptly say.
!!!!They Are In The Process Of Owning Us And Noone Gives A Shit
They'll just pollute the waters while taking ownership of any drinkable water sources available. They'll patent their transgenic seeds while outlawing natural seeds. They'll own our water and they'll own our food -- that's more powerful than anything, even nuclear power or militar supremacy!
A personal scratch pad and reminder, as well as a survival technique and mental therapy, documenting a newbie's encounter with Debian and with GNU/Linux in general. The seduction, the struggle, the taming, the hurt, the love. It's a work in progress, but some of the material is almost finished, and plenty more will be added soon. Due to its nature, this site is extremely content-focused, and written on-the fly; hastily annotating thoughts I may otherwise forget has priority over grammar here, so please "[[bare|Disk Lamer]]" with the resulting pidgin.
As it turned out, the discourse on software freedom can't be fenced in a "buffer zone": it will overflow, somewhat naturally, to issues of individual freedom and social justice. Accordingly, I feel compelled to change the subtitle of the site -- from the initial "Debian through a newbie's eyes" -- to something more appropriate to the site's increasingly shifting focus: "Lamenting Liberty Lost".
{{{whoami}}} ... let's just say that, despite being a "newbian" to Debian, I'm an old fart at heart.
<<<
Opinions are like assholes. Everybody has one.
//The Dead Pool//
<<<
!!!Web Designers
Absolute font size tags should be ''removed'' from the HTML specification //tout court//. Their only use is to make large parts of the Web completely useless. Moronic webmasters -- I guess graphic designers are as much to blame as their clients/commissioners -- all over the world think they know my screen DPI and size better than me and insist on making the fonts on their pages appear 1 mm in size. They all bend backwards to detect which browser I use, or even which subversion of which version of which browser -- but don't give a goat's shit whether I'm viewing their page on a tiny portable device with 30 DPI or a 60" HDTV screen. Way to go, webmasters! You're living proof of the rule //Give a man a hammer, and you can bet he'll bang himself on his thumb, or his neighbor over the head//!
Actually, on second thought, web "designers" should be forcefully ''banned from the html specification'' as such. Just as politicians should be given little sandboxes in which to wage their petty wars with tin soldiers instead of taking thousands of real human lives, so should web "designers" be given one of those plastic fake laptops for children (you know, the ones that bark, chirp and moo when you press on the colored buttons) on which to "design" their web-doh web sites. Because ''no, dear, text is not just another design element''! I think the best thought about web "designers" I've ever come across was that there's a reason why their pages are made with teeny weeny fonts, or tons of flash, or with pale orange text on pale brown background, in short, why they are completely unreadable. It's because they can't read anyway.
Very aptly -- if unnecessarily mildly -- put!
!!!Googlepedia
For many keywords of general interest and general knowledge, Google gives a related Wikipedia entry as one of its first -- if not //the// first -- results. Should this be considered bias or a Good Thing (TM)?
!!!Or: Usable Games
This page focuses on games from other platforms that actually ''work'' in GNU/Linux, and specifically in Debian. It's not an encompassing collection of all games that work, but rather a list of games that I've installed for my kids and discovered that they actually worked:
!!!!Zsnes
Virtually any ROM for the fabulous zsnes emulator works. The games might be a little dusty, but it's great entertainment if you missed on the originals when they came out. Beware though, there are various "cracked" and "trainer" """ROMs""" circulating on the Net -- I've downloaded a couple just to try them out, and they didn't work.
!!!!Dosbox
Who doesn't remember the days of emm386.exe, stacker and buffershigh? Well, crappy as DOS may have been as an "operating system" -- it hardly had anything "systematic" to it and never was quite "operating", really -- it definitely had a large user base. That's why a plethora of games was made for it. A pity, because DOS was never a platform suitable for gaming, with its memory restrictions, slooow 286/386 processors, CGA graphics, and quirky sound hardware. Nevertheless, a handful of DOS games were actually playable, especially among those produced in the later years, when graphics hardware had evolved and memory restrictions had been somewhat "circumvented". Luckily for us, many of those games are abandonware now, some of them even officially so, their producers having left them to the Public Domain, or declared them freeware, or something along that line. They were once available at "The Home of the Underdogs", a magical and legendary site which sadly is no more; however, Abandonia, the other great abandonware site, is fortunately still with us. Virtually all of those games can be played quite proficiently via Dosbox, a really great piece of emulator software in my view. Unfortunately, the sheer number of DOS games in existence is so huge that even just //listing them by name// would take megabytes, so we must needs restrict ourselves to only mentioning a few rare gems and highlights here...
*''Bio Forge'' is an intriguing action adventure in cyberspace.
*''The Magic Carpet'' is a graphically incredible adventure in which you are a magician apprentice flying above the Earth on a carpet.
*''The Theatre of Pain'' is a perfectionist martial arts game which manages to deliver an immersive gaming experience and graphics quality only equaled by the Windows-era Mortal Kombat IV -- only it manages to deliver that under DOS!
*''Tough Guy'' is a competent beat-'em-up from ... South Korea IIRC.
*''Xenophage'' is a gross beat-'em-up with weird aliens. Not a great game.
*''Yogho Yogho Spel'' is a nice, colorful arcade from Denmark or some other Nordic country. Another nice arcade for the youngest among us is
*''Hugo the Jungle Creature'' or something like that (it likewise is not originally in English). My favorite, however, is still the classic
*''Space Invaders'' -- a game which, along with Tetris, Asteroids, Pacman and similar classics, demonstrates just what a compelling game can be packed into a 60 kB executable, if only a programmer tries hard enough. They spelled sheer Inspiration and Ingenuity: something that many a modern game programmer should look up to -- instead of watering down their games into 2, 3, 4, or more -- yawn -- oh so boring DVD disks (see ''"""Football Manager 2010"""'' further down for an exquisite case in point).
!!!!Wine
The default Wine emulator that comes with Debian Lenny is not very recent by any standards; newer versions must surely support even more Windows games.
*''Qlympics'' is a sport simulation from the Windows XP era. Very colorful, very simple, with beautiful "anime" characters, and is extremely cheap to buy if you can find it.
*''Barbie Beauty Styler'': a game I could never make work (save user-generated data) in a normal user account in Windows XP works admirably in Wine.
*''Pandemonium'' is a nice 3D arcade jumper, but I am not sure if it's actually abandonware yet.
*''Charm Tale'' - never tried it but my daughter likes it.
*''Moorfrosch XS'' is a top-down "Frogger" clone with improved graphics; I believe it's freeware of some sort, with the downside being the free version only has 1 level.
*''Abe's Oddysee'' works but has no sound, which is a pity. Addendum: actually, on another motherboard, the sound works out of the box.
*''Space Haste 2'' is a nice futuristic car race with great graphics, but has no sound. This one was extremely cheap too (got it on sale).
*''"""FIFA99"""''. After we watched the 2010 World Championships, my 9-year old son went mad for soccer, so I just had to dig through my dusty windows """CDs""" to find """FIFA99""". And, what do you know - it actually works, sound and all, and is quite snappy at that!
*''"""FIFA10"""'' doesn't work. If there's anything I hate, it's people buying kids games that require a high-end computer to work; actually, people ''making'' such games. Gaming on GNU/Linux just ''has'' to get its act together! Many Windows games would just require a runtime to be ported to GNU/Linux, an executable which is frequently under 2 MB. The graphics, sounds and other components could be (and usually are) independent of the OS. If it can be made for the Mac, it could be made for us freetards too.
*''"""Football Manager 2010"""''. Quite surprisingly, it works on the stock Lenny Wine (I think it's version 1.0.1), but only on our desktop box, and only with //Windows 2008 flavor//, //software rendering// and //no pixel shader// selected. It installs well (from the boxed DVD, haven't tried Steam), although the installation takes forever to finish, and doesn't even require winetricks. It all boils down to your hardware though; while it could be made to work on our desktop (Intel D 915 GAG mainboard with embedded low-end Intel graphics and FLOSS driver), the game won't work on our laptop -- although it's considerably younger than the desktop, and runs with the proprietary accelerated ATI driver. Anyway, the initial screen is pitch black, so you gotta blindly click at random until the initial menu appears. All runs smooth from there on, but the game is almost as boring as a discussion in the Slovenian Parliament. Actually, boring is too bland a term, I'd say it's, as Germans would put it, "Langweilig" -- it virtually makes your time flow slower, so that 10 minutes seem like a day. No, really, why even bother with a game that takes longer to install than my entire OS did? (And mind you, Debian has to download a bunch of packages during setup). Haven't tried 3D rendering of the matches because:
** the Wine HQ App Database states 3D match view won't work; and additionally
** I had to select software rendering for the game to work anyway, so 3D becomes something of a moot point -- the game engine disables it automatically, methinks.
Since //chez nous// we never use Wine for anything but games, I generally set it to emulate the Windows 98 flavor, because XP was never much of a gaming platform (more often than not it only allowed games to work in Administrator accounts). For a more robust and consistent approach though, I recommend taking the following steps:
#Creating a {{{common}}} (or {{{shared}}}, if you prefer) directory in {{{/home}}}. Perhaps even going a step further and creating a new user called {{{common}}} -- that way, the home directory will be created automatically. Then, modifying the directory's ownership to group {{{users}}}.
#Installing any Windows game or application in a clear (empty) {{{.wine}}} profile, preferably under user {{{common}}}; it can be done under ''any'' user account though, you just have to rename any pre-existing {{{.wine}}} directory -- if there is one -- to something else, like {{{.wine.backup}}}, so you can restore it later, if it's important to you. Wine will re-create a clean {{{.wine}}} profile and directory when run for the first time.
#Making sure your newly installed game (or application) works as expected.
#Renaming your new {{{.wine}}} directory to something meaningful, such as {{{wine.half-life}}} (or {{{wine.the-syms}}} or whatever the name of the installed game/application may be).
#Moving the obtained {{{wine.half-life}}} to the {{{/home/common}}} directory you created in Step 1, if applicable.
#''Recursively'' changing the ownership and the permissions of your new {{{/home/common/wine.half-life}}} directory to user "common", group "users", and setting all directories and files underneath it to {{{rwxrwxrwx}}} permissions. Of course, you may further refine this if you have the time, and want finer ownership/permissions granularity.
#Running your new game with the argument (actually, the environment variable) {{{WINEPREFIX=/home/common/wine.half-life}}}. For the lazier of your users, you can further automate this by creating a desktop (or menu) game shortcut containing the {{{WINEPREFIX}}}.
The above procedure makes all your wine applications independent from one another and from your personal {{{/home}}}; when run with the defined {{{WINEPREFIX}}}, Wine won't even ''touch'' your personal home directory. Installing new applications this way can ''never break your pre-existing Wine apps''. You can easily install a certain game with the Windows 98 flavor, and another game with Vista flavor. In short, your Wine programs become far more manageable and robust, and any new additions or modifications ''don't break things'' -- just the opposite of what regularly happens on a real Windows installation, or even in a virtual Windows machine, for that matter. The only drawback I can think of is those rare games which only allow one user; in such games, only the first user will get to set his/her name, while other users will have to play under the first user's name, losing the possibility to have personalized scores, settings and so on. I think this could be solved by further refining the above procedure, but for me, it would simply be overkill. As you know, on a typical home system, each of the users only plays a handful of favorite games, so the issue of multiple user names hardly ever arises at all.
Other alternative approaches I can think of on-the fly: perhaps creating a new user for each Windows game and then playing the game under that user account; with the help of {{{sudo, gksu}}}, or remote desktop, or other utilities, you could even play the game from your own account, ''without'' necessarily logging out. But there are surely many alternative ways of doing it. Remember: in GNU/Linux, there's always at least a dozen ways of doing any particular thing. None of which work. ;)
Anyway, for any "serious" Wine user -- which is to say, gamer -- winetricks and Play On Linux are probably a must (or "suggested further reading" at least.
#PUSH PEOPLE,AROUND
#NAG ALL,DAY
#JMP AT,EVERYONE
#BRA TV,NAP
#HLT DOZE,SLEEP
#You'll never amount to anything!
#You're getting fat. And bald.
#Get a real job!
#You're going to be a daddy.
#Darling, do I have any cellulite?
#''"""VirtuaBrowse"""'' is a virtual web browser, which is actually a web site designed to resemble your favorite web browser. It gives you a unique browsing experience in that it serves you fake web pages. These fake pages only give you facts you want to hear, and never give you any real, unpleasant news. For example, you can select that in this web of yours, Marilyn or JFK never died, or the US never dropped the bomb, or they never exterminated the Native Americans, or whatever other silly idea you may harbor. On the other hand, you can select something positive, for example, you can choose movie actors to really die a horrible death when they get shot, or you may choose the police at a G8 summit to protect protesters and beat the crap out of the world leaders, or you may choose the US to be led by godfathers of organized crime, whereas politicians get outlawed and must go into hiding (not that you'd ever spot the difference).
#''The Real War Criminal'' is an online "alternate history" generator: you can get Bush and Blair actually prosecuted before a War Tribunal. As opposed to actual War Tribunals, this virtual tribunal judges warmongers on the basis of who //actually// instigated a war, and not on the basis of who lost -- an incredibly absurd idea, if you think about it.
#Somewhat similar, ''"""TheBlair War"""'' (formerly //Declare War Lite//) is an online war waging site. You can pick any country and declare it harbors Weapons of Mass Destruction, or Al Qaida supporters, or whatever your pick. Then you fortuitously invade it just for the heck of it. Then you get away with it, and are nominated for the Nobel Peace Prize. It's just like an online Monopoly of some sort, only funnier.
#''Online Personality Generator'' gives you a personality if you don't have one. It boasts the membership of many a Hollywood celebrity, and their shrink.
#''"""DeleteMe"""'' is the sister site of the above. It is a one-stop service which enables you to cancel your Flickr and Facebook personae, Twitter accounts, Adult Friend Finder and porn site memberships, all your online mail accounts, personal blogs and home pages -- in short, your entire online personality -- at the click of a button. I dare predict a very bright future to this web service; in just a few years, it's bound to easily "outgoogle Google", if I may say so. The non-free ''Enhanced Edition'' proceeds further to delete you from insurance, bank, medical and government agencies' databases, effectively canceling your existence and making you nothing more than a figment of a would-be imagination.
#''"""Pr0nIt"""'' is a Firefox add-on that, whenever you click on a link -- any link -- consistently redirects you to a porn web site, selectable from boobs'r'us.com, bestiality.net, or pthc.org.
#''"""PoopUp"""'' is a Firefox add-on that generates random popup ads on those rare web sites that don't generate them on their own. When you set its slider to "maximum", it goes on generating popups upon popups until your memory is filled and you have to shut down your computer. This add-on is so //poopular// that it's been facing some fierce competition from Firefox itself. To this effect, Firefox migrated to xulrunner-stub which gulps up so many resources that you're forced to shut down your computer anyway.
#''"""BookFace"""'' is an add-on that sends out an e-mail with all your log-on credentials, passwords, certificates, phone numbers, and all other sensitive data to 1.000 random addresses located in countries belonging to the axis of Evil (Cuba, Iran and so on; the list is growing by the minute). A companion to this add-on, ''"""ButtFace"""'', is also available, that sends your data to the Good Guys instead (USA, UK and so on; the list is shrinking by the minute). The developers dare you to try both add-ons and tell the difference if you can.
#''"""PalPay"""'' is a very good add-on I wrote that sends me 1$ from your purse whenever you open or close (or both, or neither) a Firefox window. Recommended!
#''"""TheUltimateAddOn"""'' is the ultimate add on you'll ever need. It gets rid of any and all browser vulnerabilities, world wide wait, pop-up ads, phishing sites, browser malware and flash-only web sites you have been worrying about. It's not an add-on, really, but just a bash script which replaces your Firefox or Iceweasel browser with a symbolic link to lynx, elinks or w3m. There's also the purchasable ''"""Pro Edition"""'' which provides the ultimate browsing experience by replacing your Firefox with a hard link to /dev/null.
#''Buy GM Food To Help Monsanto!'' Online food supplies site for mutant zombies. If you aren't one yet, just order a fruit basket from them!
#''Support Your Local Pedophile!'' A web site defending the human rights of pedophiles and strongly opposing mandatory lifetime registration for convicted sex offenders.
#''Ask Not What Goldman Sachs Can Do For You, Ask What You Can Do For Goldman Sachs!'' An online savings/investments site.
#''Save Microsoft!'' Every donor receives a t-shirt with Bill Gates posing as Jesus Christ On The Cross (or, on request, as one of the two thieves).
#''Fund Yet Another Gratuitous US Aggression!'' (formerly ''Operation Just 'Cause''). By donating just 1$, you get to decide which country it will be -- North Korea, Pakistan, Sudan, Somalia, Serbia, Cuba, or any other rogue nation of your preference!!!
#{{{unzip}}}
#{{{strip --discard-all}}}
#{{{touch}}}
#{{{finger}}}
#{{{mount}}}
# ''Intel vs. AMD 64-bit boiled-egg-gulping contest'' Only eggs boiled in water-cooling rigs allowed. Many fans on both sides got so excited that they hyperventilated and eventually passed out.
# ''GNU/FSF vs. Open Source license-writing showdown'' Speed, grammar and formatting were compared. Guess who wins by a narrow margin!
# ''R. M. Stallman vs. B. Gates paper-scissors-rock duel'' Covered by all the major media, and broadcast all over the world. Both participants agreed to devote the profits to a charity, and Mr. Gates generously suggested the Gates Foundation.
# ''VHS vs. DVD vs. Bluray race to obsolescence'' Also dubbed "the shortest lifespan match". Sponsored by the 7 greatest next-generation competitors ''already'' struggling to replace Bluray!
# ''US vs. Rest of the World Monopoly championship'' Held in Guantanamo, just in case the Rest of the World is stupid enough to actually show up.
#''Politician Magic'' takes your odd politician and makes a clone of it (sic). //Extremely// useful when there's a vacancy in your Parliament, Congress or City Hall. The program's EULA explicitly //guarantees// that nobody will ever notice the difference!
#''Wonder Back Up'' is, as developers put it, "a wonderbra for your hindy". Used by wives and girlfriends all over the globe to prop up their drooping wonders. Becoming progressively popular with the male population too, as a cheap alternative to gluteal implants.
#''My Blood Cell Count'' is a very useful utility for monitoring your health. Initially you have to count by hand all the blood cells in your body -- which, admittedly, may take a while -- but once you enter the result into the program's database, you're good to go.
#''Vaccine'' is an anti-virus solution. Its sole claim to fame is that it's never been tested on animals. Actually, it's never been tested period. Possible side effects comprise nausea, vomit and sudden lingering death.
#''Navy Gator'' is a very versatile file browser that doubles as a shredder. You just stick it into your file cabinet while it's fairly young, and out comes a full grown Gator. All your compromising files and dubious documents get eaten in the process. Great tool for politicians and mobsters alike.
#This was in the days of old when I was still using Windows 98SE. I was just making the passage to Windows XP, and as a preliminary step, wanted to transfer my entire Sci Fi Classics collection (that's how I call my Traci Lords and John Holmes movies) to a newer, larger, """NTFS-formatted""" drive. I've always been a smart-ass, so I downloaded a NTFS "driver" from Mark Russinowich's site (that was way before he joined M$) and didn't bother to read the readme text. I installed the driver, copied over my Sci Fi Classics, and deleted the originals because I needed the disk space for more file transfers. So, I reboot the box to do some other maintenance work and what do I discover? Not a single bit had been copied over to the larger drive. The originals weren't recoverable anymore, since the drive space had been already written over with other files. As some of you may have guessed, I soon discovered that Russinowich's NTFS driver was just an experimental, read-only driver. It wasn't capable of actually writing a single bit on a NTFS filesystem ...
#This happened in my very early GNU/Linux days, when I was still getting to know the basic GNU/Linux stuff. I was overjoyed with bash, scripts, CLI arguments, pipes, reiserfs, jfs, xfs, and especially with hard links (which had been a badly documented pain in the neck on NTFS). It always appeared to me that implementing hard links was a great way to save disk space. So I got around placing hard links here, there, and all over the place. Thing is, I once tried to delete some temporary files, but not being too savvy, I issued a command that traversed file systems (partitions) and deleted my entire / (well, some files couldn't be deleted, of course, but the system wasn't salvageable nonetheless). I don't remember what distro it was, maybe Mandriva or SUSE. Ahh, the power of bash!
#This mistake was caused by a combination of several factors: my relentless habit of compulsively downloading any torrent I lay eyes on, the failure of GNOME (Debian Lenny flavor) to notify the user of disk space running out, and an e-mail client using the mbox mailbox format. To cut a sad story short: while I was away one day, my bittorent client kept downloading torrents until disk was full. My e-mail client, set to periodically check my POP boxes, found some new mails and promptly downloaded them to the hard drive; which being full, the disk write failed, leaving me with a zero-byte mbox file (or something along that line). I learned two things from this experience:
##to stop compulsively downloading torrents -- yet to be implemented, maybe after a visit to a shrink (but I have to find one that's not obsessive-compulsive first); and
##never ever entrust your e-mails to a mail client using the mbox format; now I always use maildir, so if something similar should occur, I would likely lose only the most recent mail message, while all the others should stay perfectly intact. In theory at least.
#A mistake related to this very tiddlywiddly. Namely: tiddlywiki manages to lose snippets of text from time to time. It's a real pain in the neck having to rewrite paragraphs you had already written before. I don't know where to look: is it the web browser caching feature, is it the squid proxy I use on my home network, or just a tiddlywiki bug? It's definitely not a user mistake, because I've made it a habit to always save to web after I write any new text. I'll try disabling the browser cache and bypassing the squid cache to see if it gets any better ...
#The following mistake is cute because it's recurring. You see, whenever I read the {{{rm}}} man page, I tend not to use the {{{rm}}} command for at least 6 months or so (because it's potentially so destructive), and just do all my deleting from Nautilus -- which has the added benefit of passing through the Trashcan and, consequently, can be recovered in an hour of need. But after some time, I tend to forget what I'd read, and at some time or another, especially when I'm in a hurry and disk space is running low, I'll issue something like
{{{
rm -r ~/*.bak
}}}
or
{{{
rm -R ~/ *.bak
}}}
just to clean up some unused files and reclaim some disk space. Well, you can imagine how it ends. One of these days, I must stick a post-it note on my monitor, something like:
WHENEVER YOU'RE TEMPTED TO USE ''rm'', USE ''find'' INSTEAD, OR AT LEAST RTFM!
!!!Or: A Proposal on How to End Abusive Copyrights
I've recently read the excellent article [[Proposal on How to End Copyright Abuses|http://digifreedom.net/node/59]] by Marco Fioretti and just couldn't abstain myself from making a few comments. I should add that I find Fioretti's site profoundly inspiring and that it was //not my disagreements, but his inspiring thoughts// that prompted me to write this "commentary". Well, it's not so much a commentary as it is a series of "annotations" or "questions to myself", prompted by the ideas expressed in the article; I profoundly agree with the majority of these ideas, but notwithstanding that, some doubts and queries come to mind almost all by themselves.
The first question that arises is related to the title of the article itself, namely: can copyright really be abused at all? I mean, we all know that not everybody would agree on copyright being a true "right" at all. To many, it is a false issue, just as asking, say, "how to end slavery abuses", because they are of the opinion that, not abuses, but slavery should be abolished. I must admit I sympathize with this view.
However, as I see it, the main problem with the concept of copyright //as we know it// is that, quite frequently, particularly in the West, it actually only involves the so-called "material" or "financial" rights, which are only a subset -- and not necessarily an important one -- of the actual authorship dimension.
Authorship is, and always was
#''not'' about money, it was about attribution, and the potential renown and, hopefully, glory (the //fausse perpetuité du nom//, as Pascal put it);
#''not'' about the exclusive right to sell the created work, but about the right to expand and build upon it -- by creating sequels, series, cycles, rings, commentaries, variations, re-orchestrations, re-arrangements and the like. This right was, however, not in the least exclusive, and for centuries, emulation, derivative works, parody and the like were actually encouraged and seen as the //sincerest form of flattery//. Rembrandt was reportedly so flattered with his imitators that he even gladly signed their paintings ...
Remember, this system was perfectly working for authors from Homer to Tchaikovsky, and it was only with the advent of the greedy middlemen that the concept of its alleged "ineptitude" was first introduced. As it may be easily seen, this new class of leeches was the only class that was actually unsatisfied with the current state of things. It must have been the same when the first pimps appeared in "ye oldest trade" -- which, incidentally, had been functioning ''perfectly'' prior to that. Let's now analyze some of the most interesting Fioretti's views one by one:
>stop relying on models made to order for outstanding geniuses and only working for the the five or ten of them born every generation.
This statement could be easily agreed with, ''if'' the current model wasn't even ''more biased''. The statement, if it was true to the reality surrounding the concept of "copyright", should therefore read: //stop relying on models made to order for --outstanding geniuses-- bestselling craftsmen and only working for the five or ten of them --born every generation-- chosen by the financial analysts of transnational media corporations.// In the West, and particularly in the Far West, copyright is seen as not related to the actual ''content'' of the created works, but to their lucrative potential, just as car making, pharmaceuticals or real estate. It's not ''the work'' as such that's protected, as much as its ''monetization'' -- which is why the most heinous "crime" you can do to the copyright industry is to distribute ''free'' copies. It's by no way incidental that books, publishers and writers are prevalently classified on the basis of their ''sales'' (the "bestsellers"); that Hollywood is called the Dream ''Factory''; that theater is considered show ''business''; that musicians and producers are called the music ''industry''. The West, under the U.S. leadership, has the somewhat morbid tendency to degrade everything to a heavily biased, //strictly materialistic// perspective; in view of this and acknowledging that Marxism is the last surviving materialistic doctrine in the modern world, we are forced to conclude that, in this particular sense, after the fall of the Berlin wall and contrary to the popular belief, ''the U.S. are the strongest Marxist bastion still standing''.
>Even assuming that nobody had a "natural" right to control copying, there is nothing bad and lots to gain for society if all actual authors and performers are granted some limited privileges and control on their work.
Exactly. ''Authors and performers''. The issue is perhaps best explained in the words of Laurel L. Russwurm:
<<<
If copyright ever had some kind of justification, it would have been in the idea it was a way to compensate the creators in order to promote creation. But in reality, it has never done that well at all. Propping up "the most inefficient property system known to man" isn't about to change that. Chief beneficiaries of copyright law have always been rights holders who don't actually create anything.
A disturbing trend these days seems to be the notion that copyright is somehow supposed to guarantee remuneration. Excuse me? There is a huge difference between holding a legal monopoly on creating copies and a guaranteed income for same. Ridiculous. Remuneration issues ought to fall under contract law if anywhere; the modern corporate idea of copyright entitlement is more a case of corporate welfare.
http://www.techdirt.com/articles/20101105/10033211741/lessig-asks-wipo-to-overhaul-copyright-not-designed-for-when-every-use-is-a-copy.shtml
<<<
Now, returning to Fioretti's article:
>Forget any copyright replacement exclusively based on governments, rich patrons or other not accountable intermediaries to sustain authors [...] Of course, even collection agencies, at least in their current incarnations, are actually doing much more harm than good.
In the above paragraph, the author already answers his own assertions; I'd just add that the collection agencies are actually ''the'' most not accountable intermediaries //par excellence//. In fact, so much so that they shouldn't even be compared to governments, patrons, popes and the like. Why is that? Because in the entire human history, collection agencies are the only intermediary so far that, instead of giving to the authors, actually ''take from'' them.
>Acknowledge the value of productive middlemen
I'd be more than glad to do that, if only I could force myself to see media publishing corporations as "productive" middlemen. In this day and age, virtually any work can be distributed directly, via the author's website, and there's no need for middlemen or similar relics from the past.
>Often, such activities are also full time, boring work which is only sustainable through copyright incentives, that is if the authors themselves gain enough from copyright to pay such specialists to help them.
This ceased to be a viable argument the moment these "full time, boring workers" began earning 10, 100 and 1000 times more than the authors themselves. This fact in itself tells us that something must be deeply "rotten" in this "greatest rock'n'roll swindle".
>Without the possibility for authors to earn such incentives if they so wish, society would end up with less quality works
Ahem ... so what? Given Sturgeon's law, society would also end up with 99% less crap. Besides, I'm in no way convinced that "quality works" is the criterion used by these middlemen. They rely solely on the selling potential: they'll gladly sell total crap, provided it ''can be sold well''. Is that what we, the society at large, need? Is that what constitutes the "advancement of society", allegedly guaranteed by the existence of copyright? Didn't think so.
Conversely, which is far worse, they will never, under any circumstance, endorse works that ''can't be sold well'' -- even if they are works of indisputable genius. If it depended on them, the best of works would never have been published if they had to finance them from their own pocket and incur loss in doing so. These greedy middlemen actually ''harm'' not only artists, but society at large, if nothing else, by virtue of the sheer fact of seeing ''every creative work through its marketing value exclusively''.
On a side note: there is no such thing as the "right" to get paid 12 million bucks for a movie, or get a similar amount for a music album. An actor that got ten times less, or a musician that had to play some live concerts besides selling """CDs""", would still be able to lead quite a satisfying life, even if they could only afford to buy one Mediterranean island instead of two.
>Stop copying illegally
>If you want to hurt, for good and forever, the corporations which abuse of copyright, do not support them. Do not buy any creative work from them, even for just one year or six months. Do not go to watch their movies, do not buy corporate-produced music, movies, books, posters, or any other product sponsoring them.
[...]
>The real problem from today's illegal copying, though, is that by doing it you are actively giving corporations lots of "piracy" statistics which are used as proof that even worse laws and technologies are needed. Illegal copying is really like shooting yourself in the foot.
[...]
>From an educational point of view, getting music or movies illegally with the justification of excessive prices and restrictions of fair use is also not correct. Breaking a law to get even with a villain, or because the law is unfair, is like being a vigilante. Just avoid those songs or movies and let everybody know why.
Good points, and magnificiently put. My thoughts exactly.
>limiting copyright to natural persons would not work easily for movies or any other team work, anything done on commission, companies doing technical manuals, and it would not be needed anyway, if the other parts of this proposal were implemented.
This, I'm afraid, I regard as a grave error. Authorship can not be anything else but individual (I prefer to use the term "authorship" because the concept of "copyright", in my view, is quite artificial, quite recent in historical terms, and quite legalese, which means manipulative and burdened with assumptions and connotations that distort its denotation, and thus best avoided -- actually, abolished, at least in its present form). It //can// of course pertain to more than one individual, the //individuals// of a team, the //persons// in a movie crew, but never to //teams//, //crews//, or "companies doing technical manuals" as such. The creative act can never be anything but individual, and so should be any possible "rights" stemming from it. Allowing impersonal entities to become authorship holders was a great mistake of the current system and should never be repeated. It's the root of all copyright evil, as it leads to all sorts of contradictions and legal loopholes which are actually ''abuses'' in the most straightforward sense of the term. Actually, in my opinion, allowing "legal entities" altogether is perhaps the greatest mistake of our Western society, since "legal entities" make possible all sorts of irresponsible behavior, depersonalization, carelessness, resilience and levels of indecency that would never be possible in a society of individuals. Very little of value would be lost if "legal entities" were to be abolished altogether.
The rest of Fioretti's article is a selection of insightful proposals for reforming the so-called copyright, with which I mostly agree. I would just like to add a couple of thoughts of my own that may complement his paper:
The best "copyright" of all, in my view, was the old-school "natural" copyright, when any work enjoyed a sort of "authorship" the moment it was created, precisely in virtue of the fact that it came to existence, as a creation. It wasn't about registering your work with any agency, or protecting it through the legal system, it was just the natural, logical way one would tackle these things. Say you write a poem and publish it freely on your website. Why would any "copyright" be needed at all? If anybody copies it, and publishes it on another website, (s)he'll just specify who the author is, and in most cases, even provide a link to your site. It's still ''your'' poem, for goodness sake. Just by copying it, one can never change its authorship. How many times, in your school days, you copied beautiful lyrics or enlightening thoughts in a scrapbook or a diary -- but did you ever claim ''authorship'' over those lyrics and thoughts? It's just not something anybody in their right mind would do, period. Even if someone did that, how long do you think it would take before they were labeled liars by everyone? Appropriating authorship is simply self-defeating. It has more to do with shame, indecency, and vileness, than with true "crime". If, by any chance, some wacko wanted to claim ownership over your poem, simple web services could attest to the fact that you published it first, and are therefore its true author. Even Google has such capabilities, but I'm sure there are other reliable services on the web that could be utilized in such "authorship disputes"; or they could be instituted on purpose, maybe by an international body. Why should there anything else be needed? Oh, yes, of course: because you'd like to make money off of your poem. Preferably millions of bucks. Sorry, can't be done. No poem is worth millions of bucks. And so is no pop song, or movie, or whatever. It's just the sick market mechanisms that made you think so. Just wait a decade or two, and you'll see.
What will happen in a decade or two, you say? This will happen: continuing the current trend, more and more people will start creating audio and video content, fan fiction, literary and para-literary works, articles, essays and the like. At a certain point, there will be so much creative production going on that you will begin to have an extremely hard time distinguishing these free individually-created works from the "content" produced by the majors and distributed via the traditional channels. More importantly, almost all innovation will happen in this haphazard world of uncontrolled, wild creativity, while the professional "content creators" will remain comparatively pale and stale in their controlled environment. The respective levels of quality will blend, and, in all probability, certain individual works will excel anything produced by the old media mastodons. If not sooner, at that point, the general public will start asking why exactly should they pay mainstream corporations when better, fresher, more vivid creations may be obtained from free-lance individuals at no cost, or for a small, voluntary donation which has the added value of //going directly, and entirely, to the creator//. It will take them no time to come up with the answer. The mainstream media will cease to have the monopoly, and cease to be the preferred providers of art, entertainment or education. The internet will become the true vehicle for individual expression and human interchange. The majors simply won't be needed anymore. So you claim "all rights reserved" to your movie or song? Well, then consume it by yourself. ''We'' have better things to watch, read and listen to.
So why is it that "copyright" as such won't be needed anymore? Why only "authorship" will remain? And why only ''individual'' authorship will retain any sense?
In order not to sink into oblivion, the media majors will have to align with the new situation, which is to say, forfeit copyright and start giving away their material for free -- potentially monetizing on the related services or complements. If that wasn't enough for stopping them from charging these Orwellian prices we are presently paying for mainstream media, another related mechanism will (or should) be enforced. Namely:
When works are "copyrighted" or "attributed to their author" the "old way", which is to say implicitly, automatically, //as soon as they are created//, the majors implicitly and automatically cease to be the exclusive repositories/beneficiaries of rights. These "natural" authorship rights -- as opposed to the artificial "copyright", invented by the corporations, for the corporations -- work both ways. Millions of freely creating individuals are just as legitimate owners of ''their own works'' and must receive as much (if any) -- financial or otherwise -- compensation as the majors when their respective works are used, reused, cited, quoted, sampled, collaged, remixed or whatever. (Already, in my personal opinion at least, there are individuals, such as, say, Venetian Princess on Youtube -- but there are many more such examples to be found on Youtube and elsewhere -- who are creating content with more "added value" than the mainstream content they're emulating). A mainstream movie production house would soon find itself owing "compensations" to hundreds or even thousands of authors who authored the graffiti shown in one of the movie scenes, or a youtube video watched by one of the characters in the movie, or the juvenile lingo used throughout the movie, or an original website visited by a movie character, or an inventive hat made out of scrap material and worn by an extra in a crowd scene, or a popular catch-phrase (such as, say, //hasta la vista, baby//) used in the movie and turned out to be taken from an online haiku writer, or a modern-day lullaby sung by an actress and thought to be public domain, but actually turned out to be of precisely traceable authorship, and so on. At that point, maybe it will occur to those arrogant majors that they have in fact made ''very little'' by themselves, and that we are all just "standing on the shoulders not only of giants", but also of millions of small, average persons. And that thinking that anything could be made ''really'' from scratch and, consequently, charged as it was ''entirely of our making'', is arrogance pure and simple.
In short, maybe it will occur to them that, trying to ''turn spiritual heritage and human culture'', belonging to all of Humanity, into their own //private// milk cow was a mistake to begin with.
We witness entire industrial branches going out of business, or being transferred to the underdeveloped economies, on a daily basis. Millions of workers face unemployment if they don't go with the tide and acquire new skills for a completely new line of work. For better or worse, hundreds of venerable trades, such as saddle makers, wagon makers, or blacksmiths have virtually disappeared from our world. Why should art -- or creative work or whatever you want to call it -- enjoy some eternal privilege as a lucrative activity? What's wrong if it, just as it was in the beginning of things, finds itself forced to return to its pre-lucrative state, when works were created from inspiration, from the creator's internal drive, and not for selling? What's wrong if those who never created from their internal drive in the first place, change profession and become, say, insurance resellers or something, leaving the field to those who ''have'' something to say, in fact so much so that they are perfectly willing to say it for free?
Moreover, if creative work ceased to be payed for, or at least its abnormal prices were substantially lowered, ''marketing potential'' would lose its overwhelming importance, leaving ''quality'' as one of the few reliable criteria, and we would perhaps once again get Mozarts instead of Lady Gagas, and Beethovens instead of Beethoven I, II, III, IV and V?
Just think for a moment, where would our world be if, say, Gandhi, or Bach, or Einstein, or Dostoevsky, or the French impressionists, or Fleming, refused to divulge their ideas just because they weren't paid billions of dollars, or were unsatisfied with the terms of their copyright contracts. And, conversely, in what way exactly does the latest 100-million Hollywood hi-tech special-effects piece of crap, with all its copyright enforcements in place (and then some) make this world a better place?
There's an excellent, if somewhat shortish, tutorial over at http://wiki.debian.org/wl. And just to dispel any lingering doubts you may have -- yes, I can confirm that it also works with the """BCM4328""" chips which are built into HP's Compaq 6715b model.
!!!!Update Sept 16 2010
Due to increasingly frequent disconnects, I updated my Broadcom driver following the above instructions ''to the letter''. In previous occasions, I kinda "cut corners", but I wanted to make it right this time (especially in view of the approaching Squeeze release; I want my Squeeze install to be working seamlessly).
What I've noticed so far: the "Debian way" in //Lenny// actually installs the //Squeeze// package; beside the usual packages needed for compiling/installing kernel modules, {{{quilt}}} and {{{debhelper}}} are required. If you have a previous {{{wl.ko}}} on your system (say, from a previous installation by hand), the new module won't "take" (it will save you one step though -- you will be able to skip updating your initramfs). In order for the new module to "take", I had to issue {{{depmod}}} manually. Then, and only then, {{{modprobe}}} would recognize (or find) it. Another note: the new module is installed into {{{/lib/modules/2.6.26-2-amd64/kernel/drivers/net/wireless}}} as opposed to {{{/lib/modules/2.6.26-2-amd64/misc}}} where I used to manually place it when compiling from the manufacturer's script (as found on http://www.broadcom.com). For the time being, the {{{.deb}}} version seems to be running a bit stabler -- no disconnect as of yet, fingers crossed! The version of the {{{sta}}} driver in this package is newer though, so a bit less buggy behavior was to be expected. [Update: alas, occasional disconnects and sheer "bail-outs" -- when the driver or module simply stops functioning, and only a reboot helps -- still happen occasionally].
A sidenote:
The speed of the connection -- as monitored through my {{{conky}}}, by copying largish files across my wireless home LAN between a desktop and a laptop, ''both connected wirelessly'' to the main router -- is the same as before. Which means that the max speeds achieved are:
* a measle 1600 kB/s when connected to my main Belkin router (a "pre-N" triple-antenna MIMO piece of ecrapment, declared to be capable of 150 Mb/s)
* a whopping 2900 kB/s when connected wirelessly via my ASUS wl-330 -- ''54g-only!'' -- portable repeater which doesn't even have an external antenna.
This is in opposition to the Internet lore which states that by using a wireless repeater, your throughput should be cut in half. In my case, the exact opposite is the case. The phenomenon may be due to the fact that one of the benchmark machines, the desktop, is connected to the ASUS repeater by wire, via ethernet. So it may be that the file copy doesn't even pass through the main router, but goes directly between the ASUS repeater and the wireless card on the laptop? I know that on wired """LANs""" that would be the case (both machines being part of the same subnet, they generally bypass the router and only use it when accessing other subnets or the WAN) -- but does the same happen on wireless """LANs"""? I should have more machines (or wireless cards) to look deeper into the issue and settle it once and for all.
<<<
"The world is as you dream it," they had said, and then pointed out that we in the North had dreamed of huge industries, lots of cars, and gigantic skyscrapers. Now we had discovered that our vision had in fact been a nightmare that would ultimately destroy us all.
"Change that dream," the Shuars had advised me.
John Perkins, //Confessions of an Economic Hitman//, p. 207
<<<
//Of course// Communism is dead. Problem is, Capitalism is just as dead. It died with the fall of the Berlin wall, and now it's nothing more than a zombie on a deadly rampage through the world. And just as a zombie, it doesn't realize that it's already carcass. Somebody better give it a nudge.
//Of course// Communism is not the answer. It never was. But, as may be readily seen, neither is Capitalism. So here we are, with apparently no answers, yet with many questions: a definite recipe for [[interesting times|http://everything2.com/title/May+you+live+in+interesting+times]] ...
For those who can't (be bothered to) read between the lines: when you pull the string too hard, it snaps. And then, all hell may break loose. It's what happened to Communism. The good thing is, Capitalism hasn't learned anything from it. So there is tangible hope that it will not loosen the pull, but follow down the same path. The bad thing is, we won't have much to do with it. It'll go down purely by its own inertia.
To be precise, it's not that Capitalism hasn't "learned", the point is, it "can't" learn. Because, luckily for us, Capitalism has a fundamental bug, an in-built flaw: it has no OFF button. It //can't// be stopped. They are letting unrest build up at an amazing pace, all over the world. In a way, I'd like to live to see what the last straw will be ...
Actually, a funny thing comes to mind, when you think about all those young nations struggling to get out of the colonial grip, and when they succeed -- what do you know, they go red! Or, worse still, they establish some sort of tribal government or theocracy or a military junta! How is that? Why do we have to ''force'' them to embrace democracy, can't they see all the advantages of a democratic government? Err ... which part of this process exactly is so darn hard to understand?
You kill their leaders to establish a puppet government -- in the name of Democracy; you eradicate their traditional social structure -- to establish Democracy; you burn their forests with napalm (lacing it with Agent Orange or Depleted Uranium just for good, long-term measure) to make room for mines or oil drills or whatever the current fad -- in the name of Democracy; you bomb their countryside to build highways and railroads in order to export all their natural resources as fast as possible -- in the name of Democracy. And then, when they finally manage to expel you, you're like "surprised" they don't embrace democracy? How could they? Even if they don't know exactly what they want, they sure as hell know what they don't want: thanks to you, ''they've seen democracy at work''!
<<<
Privatize profits. Get as many subsidies as possible from labor, the public, and the environment. Get below-cost raw materials from the public domain. Let communities and governments pay for infrastructure. Lobby for tax breaks and tax credits. Privatize public resources and governmental services. The less visible the subsidies are, the better, but also support them with a constant repetition of the virtues of private enterprise, the rights of private property, and the equation of profits with happiness.
Externalize costs. Underpay your employees, even if it means hiring children overseas to work twelve hours a day. Don't recycle your waste; don't clean it up if it's toxic; if you are caught, sue your insurance companies to make them pay. Minimize legal liability in general by claiming constitutional rights intended for natural persons.
Control information. Acquire every outlet of the broadcast media, and merge their programs. Acquire independent publishers and bookstores, and standardize what they publish and sell. Write text books from a corporate point of view, and distribute them throughout the public school system. Pay the salaries of teachers and professors and social activists until they are no longer aware that they are censoring themselves for a living. Restrain free speech as much as possible. Forbid it on private property such as shopping malls. Forbid your employees to organize or to use the workplace as a venue for civic life. Make information about corporate operations and government decision making difficult to obtain. Worship expertise and confuse data with knowledge.
Centralize political authority. Pay off injured employees and citizens to stay out of court, and make them agree to remain silent about the injury. If legal liability cannot be escaped, have it adjudicated in as high a court as possible. Do not appear in local or state courts if the case can be heard in federal court. Do not go to jury trial. If possible, preempt troublesome laws through the World Trade Organization, so that even national courts have less jurisdiction. Replace government and civic institutions with private corporations.
Centralize economic authority. Acquire or destroy small businesses, cooperatives, and other alternatives. Make the surviving corporations as large as possible, not for economies of scale (which were optimized many decades ago), but for the sake of centralizing authority and eliminating competition. Have a handful of corporations dominate every industry, and have them control the allocation of resources and the means and the ends of production. Control prices. Remove profits from the community, and deposit them in offshore banks to escape taxes and potential liability.
Remove all barriers to trade, regardless of whether they protect desirable industries, health and safety, human rights, or the environment. Expand management prerogative beyond the workplace, into the community, into the policymaking institutions, and across all jurisdictions. Make private property and the pursuit of profit the basis of all law and all social and economic policy. Create an economy where people have to pay currency for food, clothing, shelter, and culture. Commercialize the schools. Patent species. Make life pay.
George Draffan, //[[The Corporate Consensus: A Guide to the Institutions of Global Power|http://www.endgame.org/corpcon1.html]]//
<<<
A great passage. It subsumes everything there is to know about our post-industrial world, and does so very concisely. Now, there are optimists who think all is not lost. And, as a matter of principle, they're right, all is not lost. Yet. However, this seems to be only a matter of time, and we are losing ground by the minute. The optimists argue that Humanity has already faced such crises in history, and has always managed to overcome them. Seems to me those crises were slightly different. There's an unprecedented difference in our current state, an all-time novelty we're facing.
Why it's hopeless. Because //the manipulators have seen their past mistakes and made amends//, whereas we, the manipulated, did not. They made sure we didn't, and by taking hold of communications, education and the media, they're making sure we hardly ever will. As a result, on the one hand, our ability to see through manipulation has sunk to depths unheard of; I doubt if the critical mind was ever at such low levels, not even among the early Christians, not even among the Incas during the Conquista. On the other hand, the amends they made are every bit as historically unique: they are so well thought-out and detailed it's mind-boggling. Nothing, virtually //nothing// is left to chance, //every single aspect// is being taken care of.
This extremely uneven situation may be traced back to several sources:
*Bad cop -- good cop strategy. Never before in history has the mindset of the masses been so cleverly manipulated into believing that there are only two options: Communism and Capitalism. As we know from police interrogations, once this mindset sets in, it's extremely easy to make the manipulated do whatever we please. The manipulated is actually ''eager'' to comply with the suggestions of the "good cop". Of course, the good and the bad cop are actually just two aspects of the same strategy, so choosing between them is not really a choice. It may be readily seen that as soon as the old bad cop started getting shorter of breath, it was promptly replaced by Muslim fundamentalism -- the new "bad cop". There are surely other potential "bad cops" waiting in line if this one fails to gather momentum. Individuating them is left as an exercise to the attentive reader.
**This is actually just a special case of what could be called the "bipolar disorder" of our society. When not allowed to participate in matters we can relate to, we engage in makeshift activities. Or better: we are intentionally lured into makeshift activities to keep us occupied and to give us a makeshift sense of participation. Any actual "opposite pole" of a dilemma is removed from view, and we are left with two essentially identical "options" to choose from. It's like, every day, a pound of flesh gets cut off of our body -- but, hey, //we// get to decide what to wear for the occasion! Instead of being given //real// power of deciding, we are allowed to indulge in makeshift "issues", such as drinking Poopsi vs. drinking Cake, or eating at Donald's vs. eating at Burp King's, or voting Remocrat vs. voting Depublican.
<<<
Here's a brilliant thought that nobody ever had before, so far as I know: let's make elections completely symbolic activities. The population can keep voting, we'll give them all the business, they'll have electoral campaigns, all the hoopla, two candidates, eight candidates-but the people they're voting for will then just be expected to read off a teleprompter and they won't be expected to know anything except what somebody tells them, and maybe not even that.
I mean, when you read off a teleprompter-I've done it actually-it's a very odd experience: it's like the words go into your eyes and out your mouth, and they don't pass through your mind in between. And when Reagan does it, they have it set up so there are two or three of them around, so his head can keep moving and it appears as though he's looking around at the audience, but really he's just switching from one teleprompter to another. Well, if you can get people to vote for something like that, you've basically done it-you've removed them from decision-making.
Noam Chomsky, //Understanding Power//
<<<
*Professionalizing the manipulative machinery. It could just as well be called "outsourcing". This has achieved at least two distinct goals:
**The legions of professionals involved in actively developing and implementing manipulation techniques, and their professional skills, vastly exceed the number (and skills) of non-professionals actively involved in countering them. The situation could perhaps be compared to that of a corporate 120-lawyer team suing a pariah who can't afford a defense lawyer; but the ratio is actually much worse. Even an outnumbered military unit can take out a powerful enemy virtually without losses, provided the enemy is scattered enough to be tackled one by one. And the manipulated masses are just that: composed of largely unorganized, unconnected individuals, with no individual power to speak of.
**By turning manipulation into a profession, ordinary people, who materially belong to the manipulated, are made into manipulators -- through targeted schooling and targeted employment. Thus, legions of people are made to work for their enemy without actually realizing it (they simply "carry out directives" and never question the logic underpinning them). Their personal tragedy is that, while being part of the manipulated masses, they inadvertently further the interests of the manipulators and eventually bring about their own demise. This tactics not so much decreases the odds of the manipulated, which are close to zero anyway, as it increases the odds of the manipulators, who would be overwhelmingly outnumbered otherwise, by enabling the manipulative machinery to ''expand without diluting'', to grow without the puppet masters being forced to accept new members or delegate their powers: thus, the increasingly vast bulk of the manipulation is being carried out by unwary pawns. As a result, and contrary to what would appear at the surface of things, the concentration of power is actually //increasing//. As a side effect, we now have legions of "experts" in every field. Experts, however, exhibit a host of serious flaws:
***They are the most brainwashed segment of the population, political commissars who, in turn, perpetrate the indoctrination they've received. Given that a major function of the educational and research system is to brainwash people into thinking along approved tracks only, the more time you spend in school and research, the more brainwashed you become. You'll notice this if you listen to what "intellectuals" have to say about major issues: in fact, the intellectuals are most prone to split hairs about a marginal issue and never even tackle the central problem that the ordinary citizens are most concerned about. For example, they may ramble for hours on the hypothetical //costs// of a planned war, cynically analyzing whether we can //afford// it, but never asking the obvious question -- can we //avoid// it. I suppose marginal issues may be some sort of "safe harbor" to them, allowing them to never engage in unpleasant ethical decisions. When being asked really pertinent questions, experts may frequently be seen //laughing// with superiority so they don't have to actually answer them. They've been //taught// never to challenge decisions in other fields, not even in fields of general interest, but to leave that to others. Your average expert is the person who will most likely argue about a technicality while the world is crumbling down. That's in short the help we may expect from experts in matters that //truly// matter.
***Experts, while quite competent within their own narrow field, become seriously challenged when trying to venture outside their framework. This is just another consequence of the so-called specialization. For instance: a power engineer may be very capable in assessing the viability of a nuclear plant as opposed to a wind plant, but will be hard pressed to say anything remotely sensible if asked whether an electrical plant is needed at all, or would we be better off saving the money for a more efficient public transportation system, or perhaps for a hospital we so direly need. Outside his narrow field he is bound to just sound funny.
***Experts, as U.S. courts plainly show, can be indiscriminately used to prove anything, and its exact opposite. We should seriously ask ourselves what, then, if any, is the intrinsic value of expert opinions -- ''even in their specific area of expertise?!''
***Closely related to the above is their failure to denounce the ''total gratuity of regulations''. They will defend to death a given regulation (say, that the established "harmless threshold" of a given chemical is truly harmless), and they will defend with equal passion any new threshold value that the policy makers may establish just months later (thresholds change all the time precisely because they're a matter of policy -- not of scientific expertise). Do you really have to be an expert to know that the only 100% reliable, definitely harmless threshold for artificial chemicals is zero, period? You should ask yourself the following simple question: am I willing to tolerate 1 mg, 0.1 mg or 0.01 mg of a new, potentially toxic substance? The sensible answer to such stupid -- actually, false -- dilemmas is, of course: why the heck should I tolerate //any of the above//? The same goes for a new plant that will get somebody (not you and sure as hell not me) filthy rich: should we allow it to have 0.01%, 0.1% or 1% impact on the environment? But there are scores of similar false dilemmas being thrown at us on a daily basis. As a rule, instead of telling them to shove it, we go to incredible lengths to //actually answer them//, we consult experts, fund researchers, and what not.
<<<
The chemical industry has produced, and long denied any harm from, innumerable products-from tetraethyl lead in gasoline and PCBs in batteries to asbestos, DDT, and Agent Orange-that are now well established as seriously harmful, only withdrawing them (often only from domestic use) under overwhelming legal and regulatory pressure. For the products they have wanted to sell, they have always found scientists who would testify to their harmlessness (or that claims of harm were not scientifically proven).
Edward S. Herman, Noam Chomsky, //Manufacturing Consent//, Introduction, p. xlvii
<<<
*//Divide et impera//. Fragment the scenery by injecting a host of marginal or -- better still -- [[fictional|http://www.alternet.org/teaparty/148855/taibbi%3A_the_tea_party_moron_complex/]] problems. This shatters any potential unity among the manipulated into many tiny, specialized, powerless groups and preemptively sabotages any possibility of a united front of action. For example, if theocracy is being threatened in a theocratic regime, derail the subversion into a false issue, such as "Christianity vs. Islam". Thus, instead of shaking their religious oppressors off their shoulders, the manipulated masses will actually start //backing them up// in a blind-alley "Us" vs. "Them" scenario. Accordingly, by all means, always and everywhere back up efforts such as "secessionists vs. integralists", or "blacks vs. whites" or "women vs. men": although these are by no means "minor" issues, every figment of energy that is channeled into such fights is a figment that's lost to the global anti-manipulation cause. Of course, in such issues, always take the stance in favor of the perceived weaker party, but without appearing to be pro- anyone or counter- anyone: just be pro-equality.
**Promulgating a certain conception of humanity certainly helps. You gotta convince the average Joe that being self-centered, asocial and base is ''normal''. You have to make sure that isolation, and not community, is perceived as the norm, that the normal human condition implies selfishness as opposed to altruism, greed as opposed to charity, competition as opposed to solidarity. As a byproduct, all those selfish, greedy and evil politicians and """CEOs""" we see involved in daily scandals, will just come across as "normal, feeble human beings" and not the worst-case crooks they really are. If this society of ours were an individual, we would have to lock it up as a dangerous sociopath.
*[[Doublespeak|http://www.dt.org/html/Doublespeak.html]], i.e. manipulating terminology in a consistent fashion and at a global level. Through relentless misuse, terms slowly acquire totally [[new meanings|http://www.sourcewatch.org/index.php?title=Doublespeak]]. //Pirates// are not "ruthless, brutal, atrocious and unscrupulous maritime robbers who at times savagely slaughtered their victims" anymore, they are just ordinary people who download music. The sad thing is, when denotation changes, connotation doesn't necessarily follow suit: in our collective subconscious, the negative connotations of "ruthless, brutal, atrocious, unscrupulous, savage, slaughter" may stick with the "music downloaders" for years to come, making us irrationally loathe them without actually realizing why! Similarly, the cut-throat internecine economic war in which //homo homini lupus est// has been cunningly given the harmless name of "healthy competition". //Democracy// still denotes a (direct or representative) form of //government//, but its connotations have long since shifted toward connoting a free-market //economy//. //Gasoline// is given the PR connotation of becoming progressively //environment-friendly//, as if such a thing could really be. //Collateral damage// is used instead of a straightforward "slaughter of women, children and old people, performed with extreme prejudice and on a massive scale":
<<<
*"Ministry of defence" (a couple of centuries ago they were still decent enough to call such entities "Ministry of war"). Also called "Ministry of peace" (sic!) I wont even go here into the known "collateral damage" evil terminology, referring isntead to my old essay about Common propaganda techniques. Suffice to say that names like "desert storm", given to a war campaign "against Saddam", enhance the sense of 'remoteness' of such operations, as if no Iraqi real people were involved (and dying) during them.
[ ... ]
*Try to debunk this terrible statement: "Finally, and no less important, is the emphasis which the proposed EU-employment guidelines put on maintaining those who are over 50, or even 60 years of age, in active life." Yep, and let's not forget to 'activate' those that are over 70... the day they will abolish pensions they'll call it something like "promoting seniores' self-assesment' :-(
Fravia, //EXEGESIS//
<<<
**An even more effective stratagem, apparently reserved for the most fundamental concepts underpinning the manipulation network, is tabooization (also called self-censorship, the most effective form of censorship ever). Just think of notions -- whatever they mean, if anything -- such as //progress// (of whom? by whom? whereto?), //free market// (which is apparently anything but free), //success// (and //celebrity//!), //export// (not //import//, though!), //humanitarian intervention// ([[if we do it, it's humanitarian|http://books.google.com/books?id=nTMEirKUw-QC&pg=PA147&lpg=PA147&dq=%22if+we+do+it,+it%27s+humanitarian&source=bl&ots=-ChZzpTYDX&sig=jqOvMydivFp262ZQMwEioWGPcO8&hl=sl&ei=TKaTS4KiHozc_QbGrZGQDQ&sa=X&oi=book_result&ct=result&resnum=1&ved=0CAYQ6AEwAA#v=onepage&q=%22if%20we%20do%20it%2C%20it%27s%20humanitarian&f=false]]), //God// (which one? one man's dog may well be another man's Antichrist), //gold standard// (god forbid anybody should suggest that!), //national defense// (the untouchables //par excellence//), the //anti-communist// cult (and the related //anti-American// scare), //manifest destiny// ("obvious purpose"? sounds like a prudish slogan for a new toilet bowl), //banks// (I, for one, could certainly live without them, and better), //long-distance cargo transportation// (ditto; its benefits just don't outweigh the strain on the environment), or certain //sexual practices// (yes, even in this day and age). Shh! You just ''don't question'' such concepts!
**Self-deception is likewise incredibly effective:
<<<
When you have your boot on somebody's neck, you can't just say, "I'm doing this because I'm a brute." You have to say, "I'm doing it because they deserve it. It's for their good. That's why I've got to do it."
Noam Chomsky, //Imperial Ambitions//, p. 48
<<<
*Not giving us time to think. Let's be honest: original, progressive ideas were seldom the domain of the (working) masses. For ideas to develop, one has to have plenty of time on their hands. That's why new ideas were usually manufactured by the idle classes. There are, to be sure, notable exceptions to that. It would seem that, besides leisure, extreme want and extreme distress can result in great ideas as well. An interesting topic for another day, but for now, let's concentrate on the more obvious: how you can curb the manufacturing of ideas by manipulating the leisure classes. In the Western civilization, this is connected with the already mentioned professionalizing. Just like the manipulation mechanisms themselves, the time-consuming, unprofitable idea-manufacturing mechanisms have been intentionally "outsourced". The bourgeois //intelligentsia// has been apparently elevated -- but in fact relegated -- into a well-defined class of its own to make it readily "manageable". To control and neuter it, it's been cunningly employed and enchained into the manipulated systems of education, research and publishing. Education, research and publishing are now largely just a part of the corporate power trip. Universities are financed by corporations, research institutions are founded by capital holders, publishers are property of transnational corporations. Like sheep, all of the potentially dangerous //intelligentsia// has been gathered into well-thought enclosures and made harmless. Through scholarships, endorsements, donations and sheer ownership, any potential dissidents have been channeled into thinking pre-fabricated thoughts, pursuing sponsored realms of research only (think of, say, economics, and how gradually all the alternatives waned, leaving us virtually with only the "Austrian school" thriving), developing apologetic theories, advocating the system. (E.g. in psychology, spontaneity is generally advocated as a positive trait; in a mall, incidentally, spontaneity translates into //uninhibited, impulsive shopping//. Conversely, being a reflective, self-conscious person is likened to being uptight. Likewise, the concept of the "well-adapted individual" is frequently used as synonym of "healthy individual": health is being identified with //adapting// to the sick Western society, in which //refusing to adapt//, becoming a misfit, seems to me like the only way of keeping your mental health.) Those who dare think differently are ostracized, losing their university seats, jobs, benefits, economic security, ability to publish. The situation is really grim. Just consider for a moment how many //really free// thinkers you can think of in the current intellectual scenery, as opposed to, say, just 50 years ago. See?
<<<
Incidentally, part of the genius of this aspect of the higher education system is that it can get people to sell out even while they think they're doing exactly the right thing. So some young person going into academia will say to themself, "Look, I'm going to be a real radical here" -and you can be, as long as you adapt yourself to these categories which guarantee that you'll never ask the right questions, and that you'll never even look at the right questions. But you don't fee/like you're selling out, you're not saying "I'm working for the ruling class" or anything like that-you're not, you're being a Marxist economist or something. But the effect is, they've totally neutralized you.
Noam Chomsky, //Understanding Power//, p. 242
<<<
**This is integrated with a media bombing which is keeping our input systems overloaded at all times. With (irrelevant) data rushing permanently in, there is no time left to process it. Dedicated "news" channels are ideal for doing that, while at the same time successfully burying the rare relevant data in an ocean of //junk food for thought//.
*Zombifying people into //shruggers//. Underestimating the public is a surprisingly successful strategy. Apparently, if you treat your readers/viewers as zombies consistently enough, in due course a large proportion of them eventually do turn into zombies. A complementary stratagem to this is saturation: bombing people with the most macabre images so frequently that they become numb and senseless to anything. The number of people who couldn't care less is mind-boggling. The vast majority of people have been conditioned to accept the world as it comes, and don't question, or ponder, the agency "news" for a second. They simply shrug their shoulders at anything, from mortal tsunamis to orchestrated coups, to prisoner torture, to imperialist wars. I call them: //the shruggers//.
<<<
People will read about HC printer cartridges (TAL) but will think "Ooooh, half price!" (RLL). Historians and political figures will read about the Holocaust (TAL), but deny that it happened (RLL). Working class families know (or maybe don't know... see Statistical cracking basics) the odds of winning the lottery (TAL - 1:400,000,000,000) but will still spend scarce money because "somebody's gotta win" (RLL).
-Pantheon, //Metaphysics & meta-reality-cracking: Disjoint application of beliefs//
<<<
*Making manipulation endemic, instead of explicit. The manipulators have learned from past mistakes that problems are best not tackled face-on, and learned it well. If you explicitly, openly state your goals, you may give rise to potential challengers; moreover, you make their task of identifying your goals and identifying you as the enemy immensely easier. If, however, you never openly state your aims (better still, consistently assert the opposite), any potential opposition is far less likely to form, and even if it does, will have great difficulty to single you out. Enraged people will just fiercely look around, not knowing where the bullets are coming from. Agendas have greater odds of succeeding if they are implemented tacitly, through a handful of powerful, manipulative catch-words that have a strong positive connotation and are circulated often enough. They should be all-pervasive, but non-invasive; omnipresent, but never loud: just like the silent flow of capillary blood. Ideally, the slaves should think it's their own thoughts they're thinking! The ideology should have an unmistakable "well-meant" undertone to it; it should be circulated in the form of suggestions and innuendos that appear to be universally valid and truthful, it should have the harmless appearance of neutral, even "scientific" truisms, such as: "capitalism is not a socio-economic system, it's just the natural way of things" (the added value being that you don't have to prove the validity of the "natural way of things", as you would if it were "just another political system"), or: "the market, when left to itself, is a perfect, self-regulating mechanism", or: "democracy is arguably the best form of government", or: "economic growth benefits all humanity", or: "we're just advocating the survival of the fittest". The more self-evident those assertions sound, the better. It's not that they can't be debunked, it's that, if they sound credible enough, nobody will even try. And once you have these premises sneaked in, once they become universal assumptions without being recognized as such -- let me repeat that because it's extremely important: ''universal assumptions'' without being ''recognized'' as such -- you may wreak havoc with the corollaries that follow from them: just like the frog in the slowly warmed pot, the poor devils will never know how and when the "natural way of things" became cut-throat "competition"; how and when "a wonderful self-regulating mechanism" failed to regulate their health, their housing, their education, their jobs, actually almost everything; how and when "the best form of government" turned them into slaves (slaves to corporations, to banks, to the judicial system, to the tax system, to national and local governments, even to small-time thugs); how and when the "economic growth that benefits all humanity" -- which is like saying that war "benefits the killers and the killed alike" -- managed to dig an ever deeper chasm between the obscenely rich and the inhumanly poor; how and when the "survival of the fittest" actually came to mean the survival of the //meanest//, making us all stoop to a "how low can you go" game.
**A somewhat peculiar ramification of this strategy consists in feeding us interpretations of ''false complexity''. We are taught to perceive that to think lucidly about Middle East issues, one has to be an international expert with 30 years //in loco// experience on the subject. While that's partially true, and experience in //anything// certainly can't hurt, even just knowing that it's ''all about oil, dollars and power'', while grossly simplified, is still better than losing time over //thought decoys//, such as Saddam's alleged weapons of mass destruction and other non-existent issues. Here's an [[example|http://startupista.com/corporate-bullshit-generator/]] of how easily false complexity can be achieved. On the other hand, we must also take care not to make the opposite mistake of oversimplifying issues that possess intrinsic (real) complexity.
<<<
Remember, intellectuals internalize the conception that they have to make things seem complicated. Otherwise what are they around for? It's worth asking yourself what's really so complicated?
Noam Chomsky, //Imperial Ambitions//, p. 64
<<<
**Abusing the entire [[spectrum|http://en.wikipedia.org/wiki/List_of_cognitive_biases]] of [[mistakes to avoid|http://en.wikipedia.org/wiki/List_of_fallacies]] and [[mind tricks|http://en.wikipedia.org/wiki/Psychological_manipulation]]. There are dozens available, but one in particular comes to mind: you take any truism, any confirmed truth whatsoever. Like, "carcinogen A causes cancer". You then make the assertion that "opinions are divided on the matter". Finally, you magnanimously sum it up, "conceding" that the truth is probably "somewhere in the middle". Of course, it is an outright lie -- but who cares, as long as it //sounds// credible!
**Sweetening the pill. The worse the manipulation, the more desirable, pleasant and gratifying the stratagems employed to make us swallow it down, and the sweeter the rewards.
**Sticking to the subconscious. Of course we're all rationally aware that a price of 0.99 is virtually equal to 1.00; the point is, we wouldn't buy an article at 1.00, but we //do// buy it at 0.99. Of course we're all rationally aware that the local car dealer's commercial we see 33 times each day is crap; the point is, when shopping for a car, we //will// stop at his dealership. You can't prevent being manipulated just by being aware you're being manipulated.
**To be fair, we as the general public do have our fair share of responsibility for the situation, being the naive, gullible dupes that we are. I mean, how intelligent do you have to be to spot the general patterns that have been repeating themselves for decades (and probably centuries) now? Just take the most prominent issue -- the various //fabricated or contrived pretexts// used by the U.S. to attack other countries: the [[Gulf of Tonkin incident|http://en.wikipedia.org/wiki/Gulf_of_Tonkin_Incident]], the Grenada [["military"|http://en.wikipedia.org/wiki/Invasion_of_Grenada#Airport]] airport, the [[La Belle incident|http://usa.mediamonitors.net/content/view/full/22038]], the [[non-existent Iraqi weapons of mass destruction|http://en.wikipedia.org/wiki/Public_relations_preparations_for_2003_invasion_of_Iraq#Manufactured_Evidence]]. All of these "provocations" -- to which we should probably add the planned [[operation Northwoods|http://en.wikipedia.org/wiki/Operation_Northwoods]], the alleged [[Afghan connection|http://www.wanttoknow.info/050111latimes]], and [[Pearl Harbor|http://en.wikipedia.org/wiki/Pearl_Harbor_advance-knowledge_debate]] itself -- have been provenly fabricated, yet each and every one of them were believed by almost 100% of the public at the time. And, when tomorrow another of these atrocities happens -- we'll ''believe it again'' like a bunch of morons? Remember, the man who launched the false slogan "you can't fool all of the people all of the time" was -- that's right, a politician!
<<<
I...I am shocked. A government conducting false flag operations? Weren't these people elected to protect us from the evil fascists/communists/islamicists/terrorists/drug dealers? They represent we the people. How could they possibly even think about murdering some of the we the people in order to score political points and maintain power? My faith in the efficacy, omniscience, and omnipotence of government has been shaken to the core! I thought these guys were our friends!
http://georgewashington2.blogspot.com/2010/02/governments-have-admitted-that-they.html
<<<
**As far as I know, the only way of countering endemic manipulation is to apply the principles of deconstruction, or what Fravia called "reality cracking", which, unfortunately, requires quite some intellectual fervor (interest, dedication) and is time- and energy consuming. I fear that the vast majority of people possess none of the aforementioned predispositions. The slave masters make sure of that (for example, by not leaving you enough time to do anything except work, eat, sleep and stare at the box). Let me give just a brief example of how time-consuming the process of deconstruction is. Let's take a random, but quite characteristic, sentence from the media: "Our peace-keeping force is assisting the local people in neutralizing terrorists and preempting outside aggression." You must translate "our peace-keeping force" into "our invasion army", translate "assisting the local people" into "invading a sovereign country", "neutralizing" into "massacring", "terrorists" into "civilians and freedom-fighters" (called //terrorists// to deprive them of any POW rights if captured), and "preempting outside aggression" into "blocking any, even humanitarian, aid", before you can try to understand the sentence. So, partially deconstructed, the above sentence might read: "Our invasion army is invading a sovereign country, massacring civilians and freedom-fighters and blocking any, even humanitarian, aid." Now, consider that such deconstruction should ideally be performed on every single assertion you encounter in the media! And consider that, every step of the way, you'll have the entire educational establishment (everything you've ever been taught), the entire political establishment (everything you've ever been loyal to), and the entire media establishment (everything you've ever trusted) working against this little you!!
**A mistake that we, the general public, frequently make, is the mistake of //trying to be fair//. In tackling highly manipulative counterparts, we should probably use the "haggling" approach instead. If you want to ultimately arrive at a fair price, you just don't approach the seller who's just given you a ridiculously exorbitant starting price by outright offering him the //fair price//. No, you give an equally exaggerated counteroffer. Otherwise, you will most likely end overpaying the stuff, and looking stupid. In a like manner, we should counterattack our manipulators with exorbitant, improbable levels of hypocrisy and subterfuge, or else we will be permanently outwitted. If, say, we suspect a candidate to have doctored the election, we should publicly accuse him of also having falsified his diploma and cheating on his wife; in short, we should attack with ''proportionate'' countermeasures -- ''not'' with "truth"!
However, the last frontier, the decisive, masterful Mephistophelian move that finally check-mated us was:
*Incorporating the media. Turning the media -- not just through direct acquisitions, but also through board linkages, revolving doors, stock ownership, and their own expansion into non-media fields -- into just one of the many divisions in a corporation (like Accounting, Marketing, Human Resources). These [["new" media|http://hope.journ.wwu.edu/tpilgrim/j190/190structurelist.html]] could perhaps best be compared to internal newsletters: they present us with a biased, filtered view on the world, in order to give us the impression that, besides "important" (doublespeak for "marginal") events internal to the corporation, little else happens in the world. The funny thing is, we all understand that a corporate newsletter is just a self-aggrandizing PR publication, but apparently the vast majority of us have an extremely hard time grasping that the media, having long since turned into corporate newsletters, are nothing more than self-aggrandizing PR mouthpieces too. What were investigative journalists once have become embedded reporters now. We still somehow believe they are bound to certain values, such as truth, or objectivity, or, as it were, investigative journalism, when in fact they are nothing more than means of manipulation: a PR statement, only ''masterfully disguised''. Yet again it may be observed how, for vast masses of people, even phenomena that are quite transparent at a low level, apparently become extremely //hard to see through if done on a scale large enough//. When a used-car salesman tells us that a particular car had only one owner, an old lady who kept it in the garage at all times, made only 25,000 km in 10 years and never had as much as a parking accident, we know he's lying. However, when a politician invades an independent nation and tells us he's done it to help its democratizing process, or to disarm a dangerous dictator, or to avoid a humanitarian catastrophe, or -- this one is the best, as outright lies are bound to be, if only they can be made credible enough -- that he's //invaded// it to "protect" it from potential //invaders//, many of us tend to believe him. (In Chomsky's words: "And people believe the rationales.") Similarly, when a corporation tells us that regulating their particular industry will benefit consumers, we should all reach for our wallets -- when was the last time that a corporation ever did anything for //our// benefit? -- yet, "people believe the rationales" instead. (More often than you'd think, what "regulation" boils down to, is simply narrowing consumers' choices to the least affordable ones and thereby increasing and concentrating the industry's profits.) It took me very long to actually understand the mechanics underlying this. I made the mistake of always looking at //others//, mainly at the world's superpowers. The catch is, you have to look into //yourself// -- no other approach will make it. Deep down inside, we all long to be good, to be just, to make the world a better place to live in. And while we immediately perceive blunder in others (we see they're actually making the world a worse place, so how can't they see it?), we can't easily perceive it in ourselves. The manipulators know how to trigger that warm, fuzzy feeling in us. After all, they're our representatives, so not only do we wish they were magnanimous and good, we're also prepared to take even the most far-fetched clue as evidence that they actually are. We are eager to see them doing something good since, vicariously, that would mean we are doing something good. It's when I finally managed to grasp this mechanism that I saw why intellectuals, writers, peasants, scientists, professionals, journalists and workers alike would //eagerly roll over in awe// whenever a father figure announced they will be doing //something good// by overthrowing a class of wicked exploiters, or by civilizing a bunch of (potentially cannibalistic) savages, or by ridding an oppressed people of a tyrant, or by establishing a true democracy somewhere overseas, or by liberating Europe from the claws of a powerful Jewish conspiracy.
<<<
When the Japanese fascists were conquering China and carrying out huge atrocities like the Nanking Massacre, the rhetoric behind it brings tears to your eyes. They were creating an "earthly paradise" in which the peoples of Asia would work together. Japan would protect them from the Communist "bandits" and would sacrifice itself for their benefit so they would all have peace and prosperity.
Noam Chomsky, //Imperial Ambitions//, p. 62
<<<
<<<
Our task, I believe, should be to study the guts of the propaganda machine (of course -if possible- on both sides) in order to learn, to understand and eventually -a far day from now I'm afraid- to be able to retaliate in the name of humanity. It is important to differentiate among those that are employed by the slavemasters to tame the zombies with writings and images: in fact there are "criminals", "responsables" and "gullible ones". What really amazes me is that there are incredibly few that dare point out some pretty obvious "inconsistencies". Seems like money plays a greater role than truth for writers and journalists :-)
Fravia, //Common propaganda techniques: (applied reversing in the context of the NATO aggression* of Yugoslavia)//
<<<
**That's why we should always take great heed of any dissenting voices we may hear. As a rule, there won't be many, and they will be very muffled by the prevailing "patriotic roar". Critical minds capable of thinking outside of the allowed frames of mind and cutting through the manipulation like a beacon are extremely rare, perhaps a couple in a generation (if that), so we should cherish them as our most valuable asset. They are more precious than presidents, because presidents may (and will) be replaced in 4, or 5, or 6 years, while these thinkers are irreplaceable. If we forget this, we do so at our own peril, just as the Athenians did: the execution of Socrates, which he regarded as little more than a minor nuisance to himself, spelled sheer disaster for Athens and actually announced its final downfall.
**Actually the first step of the corporate takeover of the media dates back to the 19th century when the cover price was replaced by advertisements as the primary source of income of newspapers. With that, the media ceased to be "democratic", so to say, since the "patronage" of newspapers shifted from the readership as a whole to the ad-paying plutocracies. The physical corporate takeover of the media is just the last step in this one-way process, the final "punch line" into our stomachs.
**In the context of the media, the power of the Hollywood propaganda machinery can never be overestimated. In this day and age when hardly anybody can be bothered to actually read a book, the world at large is fed morsels of "history" through Hollywood movies. The same goes for politics, law, science, art, and so on. People learn of Darwin, Ho Chi Minh, Gauguin, Castro, the KGB, or the Stasi much less through history books than they do through movies. Hollywood has been, on a far wider scale than Stalin could ever have hoped to, ''rewriting history'' -- not only re-pasting the past but re-presenting the present as well -- for almost a century, and will increasingly continue to do so.
**Special consideration should be devoted to the Internet as the most "democratic" (and the first truly "mass") medium //par excellence//. Being the last stronghold of truthful media and the last resort of the dissidents, the Internet is the greatest pain in the neck of the corporate media owners. No wonder they are trying to zombify (or at least censor) it at all costs. Such initiatives may be extremely cunningly disguised, such as the attempts to ban one of the most bandwidth-efficient network protocols -- bittorrent -- because among its many many uses it also enables sharing of copyrighted media, or the recent Slovenian legislation aimed at banning offshore gambling sites. We must all realize the overwhelming importance of the Internet, the last truthful vehicle of information and oppose any such attempts with all our might. The time is not far when the corporate media will become so transparently predictable that many of us will resort to using the Internet as our sole source of information. Two prerequisites will be necessary to make that happen:
***the Internet must not be allowed to be censored, regulated, prioritized, bandwidth-limited, or otherwise dumbed down; and
***competence in effectively and thoroughly searching the Internet will become an essential survival skill; likewise, the capacity to discern reliable information from propaganda and fabricated news; and the ability to discern important info from factoids. Luckily, when these needs arise, the goldmine of Fravia's work will already be there, awaiting us.
Background: #fff
Foreground: #000
_PrimaryPale: #f9f9f9
PrimaryPale: #8cf
PrimaryLight: #fff
_PrimaryMid: #bf1238
PrimaryMid: #9f0018
PrimaryDark: #701
_PrimaryLight: #18f
_PrimaryMid: #04b
_PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
quotations-at-aliceadsl-dot-fr
The views expressed on this website don't necessarily reflect other views, or any views at all.
<<<
Many of the opinions expressed are personal. What it owes to scientific method is largely the awareness of its limitations: it does not offer proofs where nothing can be proved, nor does it pretend to be scientific where it cannot give more than a personal point of view.
Karl Popper, //The Open Society And Its Enemies//, p. 13
<<<
Disk Lamer version for those who think that, outside of their tiny English-speaking world, there be lyons everywhere:
If, after scrupulous scrutiny, this writings appear to you as though not wrote in the author's native garbage, your perceptive very right: English ''is'', in fact, unnatural garbage to me! Butt since it take me twice as long to right in English than you take, please teddy bear with me.
Can a programmer be completely oblivious of the ethics of programming?
''Is'' there such a thing as an "ethics of programming"?
Specifically, I'll concern myself with the widely known stance of //non-discrimination toward specific fields of endeavor//. Software is a tool, we say, and as such it may be used for whatever purpose the users see fit, without the maker being liable for their choices. At first glance, this thinking seems perfectly logical. It's also quite general, in that it seemingly holds true for any other tool, from a hammer to a spacecraft, from a car maintenance manual to an insecticide. What's wrong in producing, say, an insecticide? It's just an agricultural tool. A chemical. Yet, if we are to believe Wikipedia:
<<<
After the war, two directors of Testa were tried by a British military court and were executed for their part in supplying the chemical.
http://en.wikipedia.org/wiki/Zyklon_B
<<<
They were just producing a specific insecticide, and couldn't care less about what it was used for once sold. It was just a harmless insecticide, for goodness' sake! Yet, they lost their lives for being oblivious of the fact that the insecticide, Zyklon B, wasn't used to kill vermin, but for gassing over a million people in Auschwitz and Majdanek.
So, I'm gonna ask again: can you, as a software developer, stay completely oblivious of what purpose your software is used for? But the right question is not ''can you''. It's "do you ''want to''", "are you ''willing to''" stay completely oblivious? Of course, the oblivious stance increases practicality, distribution and portability of the product at hand; but so did the stance of the two Testa managers.
I'm not talking about ways of actually prohibiting certain uses of your software ... this probably can't even be done, since there will always be unscrupulous individuals who'll use and abuse your product for whatever base needs they see fit. I'm talking about this weird urge to //actually and explicitly condone any possible misuse of your creation//. Would it really be worse to take a stance and, at least in principle, at least declaratively, //disagree with certain misuses and abuses of your product//? It's not that your stance would be effectively binding in a legal sense, but it ''would'' express a moral statement. It ''would'' send a message.
FLOSS software for military use ... FLOSS software for obfuscating pedophile or prostitution networks ... FLOSS software for developing biochemical weapons ... FLOSS software for scientifically torturing prisoners (torturing to the very verge of killing, without actually killing) ... Where do you draw the line?
Or are you completely comfortable with not drawing it at all?
Are you?
Just to add a more fine-grained, grey-area example: suppose a Chinese company that produces fine, cheap consumer routers, and they run on FLOSS firmware, with printed GPL license and all? Should we support and commend them for supporting GNU/Linux and FLOSS, or should we boycott and condemn them because of the -- say -- child labor they employ (just as the majority of Chinese companies, I'm told)?
The Wikipedia article http://en.wikipedia.org/wiki/Deontological_ethics would be as good a starting point as any, to a scrupulous software developer.
In addition, since writing this piece, I've come across this: http://www.legalventure.com/clausulamariposa/?page_id=5
The above issue is, however, in dire need of a wider elaboration to put it in context. Unfortunately, I do not currently have enough time to do that, so, for the time being, I'm forced to just give the general frame here, well aware of the possibility of appearing ridiculous. Remember, however, that this is just a stub, simply documenting a train of thought of mine.
Contrary to the scientific research //strictu senso//, the wider social, economic and political context enveloping research is ''by no means a rational endeavor''. It would seem that people directly involved in research have generally only a marginal awareness of this fact, or perhaps simply find it hard to believe. Let me just quickly illustrate what I mean by that, in hope of future elaboration:
*Nuclear power. It was developed by a coordinated effort of many European and US scientist, who appear to have been generally oblivious to the potential consequences, and specifically to its potential uses. It seems that many of those scientists sort of "washed their hands", leaving the potential utilization scenarios to the pragmatists, specifically to the political elite. They never seem to have questioned this odd hiatus, this unaccounted-for short circuit; you develop this huge energy potential, and then just hand it over to some elected (or even, such as Truman himself, unelected) officials? Considering our huge past experiences with many of such elected and unelected officials, that's tantamount to handing your invention over to the first passer-by (who may be an escapee from a nuts hospital, for all you know). The underlying assumption that elected (or unelected) officials have any remotely defensible competence of managing such potentially dangerous stuff is, if not fundamentally flawed, at least ''yet to be'' demonstrated. Moreover, they are not known for being particularly fond of rational thinking. Or of ethics, for that matter.
*Drugs. You invent a new drug for treating AIDS, cancer, or lupus, and hand it over to pharmaceutical corporations who are "rational" only in as much as they apply rationality in pursuing ''absolutely irrational goals'', such as greed, profit and power. As they've demonstrated many times, they are not so much ''negligently unaccountable'' as they are ''premeditatedly murderous'': for all they care, millions of people who can't afford their exorbitantly-priced drugs may as well drop dead. They have cunningly rewritten the laws, so that, unlike you or me, they have no [[duty to rescue|http://en.wikipedia.org/wiki/Duty_to_rescue]].
*Drugs 2. You invent a powerful synthetic hallucinogen, and then, just like that, hand over its production and its proceedings to the drug mafia -- which is what the prevalent drug legislations, by outlawing its production and use, actually amount to -- thus actively contributing to drug-based regimes, drug wars, drug-related deaths, drug-induced fetal malformations and what not. ''Some'' scientists! In blood up to their elbows and still raving about "splendid isolation" in the academic ivory tower???
*New materials. Any new chemical introduced in our environment puts additional strain on our immune system. If I remember right, about 1000 new chemical compounds are introduced in general use every year. I strongly suspect that the high percentage of allergies found in recent generations of children are largely to be ascribed to this additional strain their immune systems are being exposed to. If we were to weigh both effects (the importance of ever newer and newer materials vs. ever growing autoimmune diseases), I think we should chose to ban new materials.
*GM food. You develop "better" food (I have personal reservations on it being better, but whatever) and then hand over its management and commercial exploitation to transnationals such as Monsanto. Again, the results of strictly rational research put to totally non-rational uses: empowering GM transnationals, making profits, taking over traditional agriculture and eventually kicking out any non-patented, naturally produced food. Seems rational to anyone?
*Human genome. Scientifically speaking, a titanic endeavor. Commercially speaking, we may soon all be genetically owned by some corporation. Natural reproduction will be regulated: to have sex, you'll have to pay royalties to the genome patent holder. You chuckling? Keep chuckling, your giggle is bound to turn into a grin soon enough.
*New weapons (including chemical and biological ones, and weapons of mass destruction of all sorts). This one is a limit case and thus both extremely telling and harder to apologize: how can a scientist develop inventions that have the specific, unambiguous purpose of killing human beings, potentially on a mass scale? Can such research still be called "rational"? "Rational" in what sense?
In short, how can you effectively separate the arguably "rational" process of any R&D activity from the arguably "mad-scientist" process of its utilization? In my view, this ''irrational'' bungee jump off the cliff of rationality into the irrational chasm should be thoroughly, systematically looked into, and for the time being, until some scientific results are obtained, the passage of new inventions from the rational realm (R&D) into the irrational realm (Production & Marketing) should be prohibited. It would be extremely interesting, in this view, to make an articulated analysis of how are inventions actually utilized. Does their "rational" use at least remotely come close in scope and quantity to all their "irrational" (largely destructive and inhumane) uses? In view of this: assuming that it could be reasonably ascertained/demonstrated that inventions do us more ill than good all in all, would our civilization be better off if inventions and technology were somehow "banned" or relegated? Or, if at least their ''use'' was prohibited?
What I want to say is, we may find ourselves, in a not so distant future, forced to make a tough decision: do we prefer to go on like this and face destruction, or are we willing to drop many of our destructive habits and advantages in order to survive?
Side note: perhaps it could be hypothesized that in the race to utilization, the "evil forces" in human society hijack any new invention/discovery for their selfish purposes ''much faster'' than the good forces manage to figure out a more positive utilization scenario. In other words, the human history suggests that the ''negative'' and ''self-centered'' forces in us are generally more vital than our altruism and sense of solidarity: notwithstanding mere technological obstacles, a newly invented medicine is ''regularly'' used for achieving a competitive edge (or bring profits) first, and only secondarily for providing health. Missiles have been deployed as weapons first, and only later used for manned flight. The nuclear bomb was deployed ''before'' nuclear power plants were even considered. It would also seem that ''this hasn't always been so''; the "blasphemy" paradigm (Bruno, Galileo, Copernicus, Darwin) has been replaced by the "evil exploitation" paradigm (from Nobel and Edison on; new inventions seldom meet with any opposition now, they usually meet with attempts at exploitation for war/profit/supremacy).
As you may very well know, especially if you're a newbie, there ''are'' things that could be improved in GNU/Linux. Of course, once you've used GNU/Linux for, say, 6 months or so, you begin to get a grip on things and gradually everything starts to look less difficult, but let's not forget the newbies we all were! This random list of "missing features" is compiled primarily from a newbie's point of view.
!!!The Current No. 1 On My Wish List:
A filesystem (I am looking at you, btrfs!) with a robust and transparent roll-back capability, such as ZFS. You simply select some previous date, and your entire partition rolls back to exactly the state it was on that particular date: everything that got modified, installed, broken, borked, deleted -- ''everything'' reverts to that clean, working state, when your video driver was not broken yet, when your kernel wasn't panicking yet, and when you haven't yet inadvertently erased your online banking certificate, or your address book with all your contacts (or both).
Now, one of the most prominent features missing from GNU/Linux is a consolidated, central place, where ''your graphics card/drivers could be selected and configured''. A utility that would actually try the selected driver and only enable it if the test succeeds and the driver can safely be enabled -- something like """openSuSE's""" {{{sax2}}}, only better. Agreed, some distros have better ways of doing this than others, some have come a long way (Ubuntu, Mandriva and """openSuSE""" come to mind), but, for the time being, we are still lacking a fool-proof, point-and-click GUI tool with an exhaustive help that would "just work", allowing a newbie to configure a working graphical subsystem. And when I say point-and-click I don't mean a gun (although that's what many a frustrated beginner would fain use). The prerequisite to this is, of course, a full-proof -- never mind if it's non-accelerated, and has a 800x600 resolution -- default configuration that can get you to a working desktop environment ''on first boot''. There are still far too many stories of people trying out live """CDs""" and getting a black screen or a cryptic CLI prompt at most, and finally giving up on GNU/Linux. They should at least get to a working desktop environment before deciding whether this GNU/Linux thingy is suited for them or not.
An interesting point:
<<<
Linux`s achilles heel lies in the fact that the numbers of distros are too numerous to even count. When does it end. How many distros are enough. It`s a fucking joke. The community claims it`s to beat MS. It will never beat MS this way. It`s like nagging a hot girl to have sex with you when she`s already said no 100 times. All that manpower wasted on creating all the distros could be used to improve the pre-existing software. Especially the libraries, sysutils and core material. Some distros work their asses off on making fancier GUI`s for KDE and GNOME to impress folks and make it more user friendly. That`s like putting a band-aid on a compound fracture. The Linux world needs to and must let go of this idea of beating MS. The `software war` is completely dumb and all the energy of this OS needs to change direction. It needs to embrace its own unique place in the world and stop trying to pander to political and legal type conflicts which it will never win.
http://blogs.csoonline.com/why_i_hate_linux
<<<
or, to put it more concisely:
<<<
[...] the penguin faces an identity crisis.
http://blogs.zdnet.com/projectfailures/?p=1235
<<<
However, this view (with which I tend to agree) must be integrated with the following observation: the Internet is full of allegations about GNU/Linux being inherently more secure than, say, Windows. Well, I am quite persuaded that -- if those allegations contain any truth -- this alleged security is somewhat connected to the distro fragmentation. One of the sources of this alleged security (among other, architectural and systemic sources) is precisely the difficulty to contrive sufficiently effective lines of attack when you are faced with a continuously moving target. As we all know, every GNU/Linux distro comes with different kernels, and even the same kernel may vary from distro to distro. Different optimizations and flags get enabled at compile time. Thousands of users even compile their own specific kernels. The same goes for the choice of software. With the exception of some canonical packages, the selection of default software varies hugely from one distribution to another. Vi or Emacs? Lilo or Grub? Network Manager or Wicd? Gnome or KDE? VLC or Mplayer? And, most importantly (the Internet being the main venue of malware attacks): Firefox or Konqueror? Thunderbird or Evolution? Balsa or Kmail? The list could go on and on. And then there is the vast variation of startup scripts. Different choices of runlevels. Different system directory structures. Even different file systems. I'll just stop here, you get the point. The sheer variation one has to cope with in GNU/Linux is orders of magnitude above that of the known Windows flavors. This complexity is an additional line of defense we, GNU/Linux users can rely on, as opposed to proprietary, more monolithic Operating Systems.
Another very positive idea I encountered in the Web was to make GNU/Linux binaries distro-independent. I don't have the faintest idea if this is technically feasible at all, and what additional interoperation layers it would have to introduce if it was, but just imagine: a world in which a compiled program would work on any distro, with any kernel ... !!! Gosh, that would be like, a GNU/Linux Nirvana! And what if the same could be done for kernel modules too???!!!
Update: I know of at least 2 distinct projects trying to achieve that; apparently though, both involve static linking and/or library bundling, resulting in bloat and in something not unlike the well-known "DLL hell" of Windows reminiscence.
Also, this guy definitely has a point or two:
<<<
As a Linux sysadmin, when :
* /home on NFS support is not optimal ( sqlite usage, akonadi, digikam database, ... ) : I do care
* when applications have regressions ( printing support, lack of complete POSIX ACL support in NFSv4 ) : I do care
* when applications are slow or slower under Linux than under Windows ( openoffice, PDF printing with okular vs acroread, Kmail 3 vs Kmail 4 ) : I do care
* when applications crashes ( plasma ) or are buggy ( system-config-printer ) : i do care
* when french accentuated characters are not correctly handled : i do care
* when sound is not working correctly ( pulseaudio, pulseaudio support in phonon, mute mixer entry ) : i do care
* when setting a wireless connection may be buggy ( unstable drivers ) and the connection is unreliable : i do care
* when using a video-projector ( for presentations/meetings ) is not evident for the users and easy : i do care
[...]
Good wallpapers ? most users just put their childrens photo as desktop background, and put a lot of icons on the desktops. Good theme ? most of the time, they don't care. ''Consistency ? they don't care : they just want to be able to distinguish closed and minimize buttons''
[...]
Plasmoïds ? they don't use them. i trained them to use the folder view to have faster access to services directories, but they are not using them most of the time, they'd rather create shortcuts on the Desktop. When we switch from KDE 3 to KDE 4, they ''do only care about the fact that everything was still working as expected.''
http://www.linux-wizard.net/blog-as_a_linux_sysadmin_i_do_care_about-304.html
<<<
Incidentally, many of the above points are universally valid, say, for web pages -- and just as universally disregarded. For instance, the two points I ''emphasized'' seem to be consistently disregarded by many webmasters too: just as there are countless colorful, original, flashy Gnome themes in which the "close" and "minimize" buttons are virtually indistinguishable, there are web sites in which almost nothing "works as expected". Buttons get replaced by barely visible custom graphics, links get obscured, css gets used so clumsily that it unintentionally hides/overlaps content, simple html standards get replaced by convoluted and buggy javascript workarounds, user text size settings get overridden by some microscopic font, in addition to which some "creative" color scheme gets thrown into your eyes (such as, light magenta text on dark magenta background). Now, just how stupid one must be to keep repeating these essential usability mistakes over, and over, and over again? See also [[/srv/www]].
And now for something completely different (pronounced with John Cleese's tone of voice):
Although we GNU/Linux users are just a minority, we could still exert some pressure on the market if we stopped buying unsupported hardware. Instead, many a GNU/Linux user buys the hardware first, then discovers that it's unsupported under Linux (the kernel), and then floods the GNU/Linux support forums for advice and help (frequently in vain). If we selected our hardware more carefully, it would also send a message to the industry; not necessarily an explicit message, but a message nonetheless. Namely, just by increasing a manufacturer's market share, we could help GNU/Linux manufacturers prosper. Personally, I would commend HP for some of their laptop line that is more or less GNU/Linux compatible, and particularly """TP-Link""", who not only make network gear with GPL firmware, but actually state on their site that:
<<<
The source code should be complete, if you think """TP-LINK""" need to provide any additional source code files under GNU General Public License (GPL), please contact us at support@tp-link.com. """TP-LINK""" is committed to meeting the requirements of the GNU General Public License (GPL) and will make all required source code available.
http://www.tp-link.com/support/gpl.asp
<<<
A commendable attitude indeed! As a small token of appreciation, I am placing an order for one of their cheapo home routers (a [[TL-WR741ND|http://www.tp-link.com/products/productDetails.asp?class=wlan&pmodel=TL-WR741ND]]) this very moment and will [[report on its performance|TP-LINK TL-WR741ND]] later.
!!!Improving The ... erm, "Market Share"
This may be regarded as a dubious and double-edged goal, and is regarded as such by many a GNU/Linux advocate, me included. On the other hand, there definitely are many projects in the GNU/Linux world already pursuing that goal (making GNU/Linux more popular and GNU/Linux adoption more widespread), so I guess writing about it is somewhat legitimate. Personally, I'm one of the "freetards" who couldn't care less about wide adoption //per se// -- in fact, as mentioned elsewhere on this site, I immensely like being one of the //happy few// -- except for the fact that wider adoption would, in turn, bring about things that ''are'' immanently and definitely Good Things™:
*more freedom in the area of computing;
*acknowledgment on the part of the hardware manufacturers, hopefully eliminating the need for reverse-engineering everything;
**which means, all the immense effort put into reverse-engineering could be devoted to making better software instead;
*acknowledgment on the part of the software manufacturers, hopefully making them produce more GNU/Linux software of all sorts (games included);
**which means that effort could be re-directed from reverse-engineering (which is, if you think about it, tantamount to reinventing the wheel) to something far more worthwhile, namely developing actual software; just imagine ''where Open Office would be now if it had not been forced to devote half of its manpower to deciphering the obfuscated MS file formats'', and trying to be //compatible// with those obfuscated, idiotic formats; I mean, really, just try and imagine;
**additionally, my personal view on reverse-engineering is that it's a somewhat degrading activity; forcing somebody to reverse-engineer things is tantamount to treating them as underdogs, which is insulting, if you catch my drift; it's like saying to them, hey, you're not worthy of having our information disclosed to you, you're absolutely third-rate customers to us, if that. There definitely ''are'' more honorable ways of showing off your reverser skills than reverse-engineering as such (for example, decrypting some of the many ancient languages/scriptures that are still a riddle to our palaeolinguists);
**whose job do you think you're actually doing when reverse-engineering the undisclosed .doc format or the obfuscated Windows Networking protocol? And who do you think will take the flak when Microsoft breaks your compatibility again (which doesn't happen by accident; it's been their ''policy'' from times immemorial)? It's a lose-lose situation for you, and a win-win situation for them: far worse odds than, say, entering a casino. Who do you think you're doing the biggest favor to when porting .Net or Silverlight to Linux? Well, think again! If actively perpetuating obfuscated, proprietary lock-in is the price to pay for GNU/Linux adoption, well, screw GNU/Linux adoption! It's ''them'' who should honor standards, Open Document formats and unobfuscated network protocols, not the other way around! The answer to Facebook is not "porting" Facebook to new platforms -- the answer is ''breaking free from it'', as the Diaspora project is trying to do. The same goes for """Apple Store, iTunes, PayPal, DRM, ooxml, pdf, Samba""", and many more.
***if you just "have" to port that Windows/Apple Fascinating New Thingy™ to a free operating system, at least take a step further: don't make it a port, don't spread the disease to GNU/Linux -- invent a better, ''non-compatible'' alternative instead. //Then// port this better, open alternative to Windows so that you can interchange your data or whatever with the zombie world. If you really care, you can then expand and extend the Windows port (but ''not'' the GNU/Linux original) to make it compatible with the Fascinating New Thingy™; thus, at least, you'll be contributing to Windows bloat, not to GNU/Linux bloat. Again, as always -- don't follow footsteps, take the lead! We ''will'' follow.
*advancement of open, non-royalty-infested formats at the expense of various patented, vendor-imposed formats which frequently result in vendor lock-ins (various document formats, encryption/compression algorithms, codecs, and, most prominently, Digital Restrictions Management, which would in all probability eventually be done away with, once the open, free formats for data interchange prevailed);
*progressive abandonement of proprietary protocols, application interfaces, formats, etc., which would in itself eventually bring about a host of positive developments, such as (but not limited to):
**the establishment of open, cooperative protocols and formats as industry standards;
**it would make protocols and formats better thought out, because they would be the outcome of //many// people's interchange of ideas and open comments;
**it would make them far more robust than the obfuscated ones, because they would be subject to a wide, and incessant, peer review;
**consolidation and simplification of the now vendor-infested Sargasso sea of proprietary, obfuscated protocols/formats/interfaces;
*and probably many many more.
So here's a first idea on how the adoption of GNU/Linux could be improved (provided, as I said, this is a legitimate goal at all):
!!!!!Taking The Lead Instead Of Following Footsteps: Making A """Killer-App"""
Simply put: the world of computing being the dynamic, ever-moving world it is, it presents one distinctive advantage to GNU/Linux -- or to any newcomer, for that matter, as proven by the successes of Google, Facebook et al. New demands and needs arise -- or are concocted -- almost on a daily basis. The field is by far not a consolidated one, so new services/software/solutions/whatever may be invented almost daily -- and succeed. If not "easy" per se, it's comparatively easier than succeeding in a consolidated field such as the automotive industry, applied physics, or power plant building. Just as Macs have succeeded, for a while at least, to become the preferred tool for video/graphical/music/multimedia professionals, the time has now come for GNU/Linux to become a synonym for the new professional, it just has to find which professional profile will that be. This killer application (or application suite) should initially work on GNU/Linux only, and should not be ported to other platforms. Given that such a provision probably couldn't be made to comply with GPL, at least //no effort whatsoever should be made on the part of the GNU/Linux community// to make such ports; if the MS, or the Mac, or any other platform wishes to make the port, we probably can not stop them, but given that they would need to GPL the stuff (and give it away for free), the chances that they'd actually do that are meager. After a couple of years, the application should already have established itself as the de-facto standard in its field, so the appearance of potential ports shouldn't harm its diffusion anymore.
Developing the idea a little further: ''several'' such killer apps should be put in place, for several emerging professions/profiles. Perhaps one of those could be backed up by Fedora, and the other by Ubuntu or whatever. In a few years, GNU/Linux could eventually become the de-facto standard for everybody planning of engaging in particular activities/professions.
As a matter of fact, such killer apps already exist, and can be an excellent guideline in creating this new killer app. There are, however, some things to keep in mind in relation to these existing apps:
*as a rule, in the past, they have been server-oriented. Unsurpassed pieces of software, such as apache or squid come to mind; as excellent as they are, they address a different type of user. If "GNU/Linux desktop adoption", as they like to call it, is to be furthered, server applications are apparently not the way to go. In addition, there are certainly far fewer servers than workstations in the world, so being strong in the server field isn't necessarily going to increase your overall presence by all that much. Those apps are of utmost importance though, in that they consolidate the name of GNU/Linux as a system that's sturdy, reliable, and resource-sparing; they are also excellent starting points from which a lot can be learned;
*or, they have been appliance-oriented. Excellent open router firmware projects come to mind, or home-theater projects such as """MythTV""". Magnificent as they may be, they are relegated to remain niche apps, and that would exclude them by definition from becoming true desktop "killer apps"; on the other hand, future industry development ''may'' lead into a consolidation of home computers and home theater systems into integrated computing/multimedia arrangements -- in that case, projects such as """MythTV""" could well become the next great "killer apps". Remains to be seen;
*the only truly desktop-oriented "killer project" I can come up with off the top of my head is KDE 4. It remains to be seen, however, if a Desktop Environment -- no matter how innovative -- can fulfill the role of a "killer app" in all its facets. My first answer -- again, off the top of my head -- would be that a Desktop Environment in itself is not enough: there apparently has to be a true ''application'' -- or a suite thereof -- to drive a system toward becoming a de-facto standard for a given industry.
Personally, my vision doesn't stretch far enough to be able to propose this "profession of the future" towards which such a killer app should be geared; perhaps, such a profession hasn't even emerged yet, or shall be engendered -- a daunting task, I know -- by the killer app itself. What I can propose, though, is that there seem to be user niches that could yield themselves to adopting such a "killer app" or suite. Students are one of those, as are kids, and seniors; each of these groups has different needs which, in my view, aren't catered to well enough by the current GNU/Linux distros. What are the needs of the respective social groups? At least one of them could, in time, become the driving force of GNU/Linux adoption, if we play our cards well enough.
!!!!!Making A Killer Game
The same as above applies. The game should be addictive, state-of-the-art -- meaning it should have perfectly designed graphics, sounds, ambience, playability, user interface, ''plot'', in short: e-v-e-r-y-t-h-i-n-g -- and //complex enough not to be trivially portable// (at least in the short term). There ''are'' users who'll buy a """PlayStation""", or a Wii, just for one particular game they're addicted to: why not make them install GNU/Linux for the same reason? To avoid any misunderstandings: the game I have in mind should be a ground-breaking game, something of the caliber of Half Life, or The Syms. No less. Perhaps one of the many free game engines, such as http://www.syntensity.com, could be used for that. Again, the project should probably be funded by one of the GNU/Linux giants, such as Ubuntu. I am still not decided whether such a game should or should not be commissioned to one of the gaming majors: while it would make it easier to achieve (just by giving them an idea and a bunch of cash to start on), it is doubtful whether the leap from a Microsoft platform to a GNU/Linux one can be achieved without major bumps. More importantly, the "outsourcing" approach could also mean that the GNU/Linux community would lose part of the control over its eventual porting to other platforms -- which, if it's to be a "killer game", is a no-no.
!!!!!Implementing A Libre Replacement For Paypal
This doesn't strictly pertain to GNU or Linux as such, but more generally to the liberation of "we, the people" (mainly, but not exclusively, in our role of netizens).
It's not a straightforward "replacement" for paypal, or flattr, or anything else, I have in mind, it's more of a general free/libre online micropayment facility. It would preferably have to meet the following requirements:
#it should be implemented by a non-profit organization, not a Paypal-like enterprise; preferably by a charity (by one of the few charities that are ''not'' just tax reliefs and fronts to corporate interests, such as the Gates Foundation, donating obsolete computers to the poor in order to subsequently make them pay through their nose for Windows and Office, etc.);
##What is the goal of entrusting it to a non-profit organization? It is to make it really a form of ''micropayment'' instead of a ''business model''. In other words, its purpose is to make zero-overhead, transparent, and truly addressee-targeted ''micropayment'' possible, not some provider ''rich''; it would finally be a true ''alternative to micropayment as a business model'' as known in prior art; perhaps it could even supersede it eventually. To achieve these goals, it should have as little overhead as humanly possible, lest its very purpose be defeated; an it shouldn't allow anybody -- provider or else -- to make collateral profit (any profit, even infinitesimal microprofit) from it since:
###the very purpose of micropayment is to make the //entire// amount go to the addressee; this makes micropayment ''essentially different from any forms of payment'' implemented thus far in human society (where various in-betweens, such as banks, generally make some profit from charging end-users for the money transactions they do);
###trying to achieve two such opposing goals necessarily leads to a conflict of interests; the main imperative of serving the public need for transparent, zero-overhead, addressee-targeted micropayment can never be achieved ''equally well'' if additional -- even if subordinated -- imperatives (such as making revenue) are introduced; in addition, we already have many projects trying to reconcile such "agglomerates of disparate goals": what we're trying to define here is not another one of those, it's something different;
####as if this was not enough by itself, //some// imperatives -- notably the imperative of making profit -- have such prevailing, unstoppable power in our current state of things, that it's ''guaranteed'' to suffocate any other imperative it gets combined with: it's the well-known "money is a cancer that corrupts anything it touches" paradigm. If even such universal, powerful drives as sex or food got irretrievably corrupted by money (examples of the first: the porn industry, prostitution, child prostitution; of the second: GM food, fast food, additives that poison people but boost sales), then it's no wonder that higher values such as "honesty", "freedom", or "solidarity" have no chance whatsoever against it. Not to mingle with it ''at all'' is their only -- and quite meager at that -- chance of surviving;
###the very purpose of micropayment is to deal in extremely small amounts of money, usually just fractions of a ¢, or even far less; introducing even more infinitesimal overhead on these already tiny amounts would be irrational (the mechanism of diminished returns kicks in, as if you were trying to empty the Pacific with a teaspoon).
###the charge involved in micropayment should therefore just cover the bare minimum of running the servers on which the micropayment service were implemented, and covering their internet costs and maintenance; preferably, however, the maintenance should be performed by volunteers for free, and the equipment/servers should be gathered from donations; it goes without saying that the micropayment software should of course be developed as a FLOSS project;
###any "profit" or "gain" should be so utterly absent from the implemented micropayment service that a potential greedy leader or an "entrepreneural" new clique in management could not change the direction of the project and start making it closed source, or for-profit; the project's statute should categorically prevent that in advance -- similar to those terms that exist in many jurisdictions and essentially force charities to stay profit-free ''or else immediately loose their charity status with all the benefits -- effectively making it shut down''. Effective provisions should also be put in place to prevent anybody, such as an infiltrated entrepreneur in the management, from bringing the charity down, and then cheaply collecting its personnel, resources and trade names and re-establishing it on a new basis. The purpose of all this is not so much to prevent any possibility of "forking" the thing and trying to make a "commercial" fork of it -- the cancer of money corrupts everything it touches, so it is bound to happen eventually -- as it is to ensure that the original, profit-free implementation goes on regardless; I trust that micropayment users, when faced with the possibility to entrust their micropayments either to the non-profit one, or to the for-profit fork, can be entrusted with making the right choice. For this to happen, however, the users will have to clearly see and understand the advantages of the non-profit implementation; that's why some of its defining points are so important (such as not appropriating any money for itself; devolving the, well, almost, ''entire'' amount to the target artist/programmer/activist the user wishes to support; not making profit; being ethical; having equipment ''donated'' and not purchased; having maintenance -- and preferably even accounting -- done by volunteers, and so on). The list of advantages should be so overwhelmingly positive and ethical that virtually no human should actually have any problems in making his/her choice.
#it should make micropayments possible in the manner flattr does now -- roughly, it should allow the adherent to click on a micropayment link on adherent web sites of artists/projects/authors/programmers/activists/charities, and upon each such click, a fraction (1/1000, 1/100 000 or something like that) of the user's micropayment account yearly balance would be paid to the artist/project/author/programmer/activist/charity in question, only that:
##there should be no minimum monthly -- or otherwise -- amount imposed onto users to spend; if they wish so, they must be free to choose to only spend 1€ in 25 years time, if they so wish. It's to be FREE, remember? An additional billion people spending 0.1€ each is still better than they not spending //anything// because of the monthly minimum being too high for them, right?
##the non-profit organization managing it shouldn't take anything, not even 0.0000001% of the transactions, under any pretext whatsoever, not even as "a minimum for making the servers and the internet connections run". They're to be non-profit, remember? As in many jurisdictions, the non-profit should have virtually no mode of ''spending'' any money it may receive, not even in employee wages. Optionally, the user ''may'' -- but is not obliged to -- subscribe for optionally giving an optional, extremely small percentage of their transactions to the non-profit organization as such (or to other optional charities). Volunteers should be engaged in making the project run, collecting donations in equipment and in man-hours, and so on. Any excess donations should be automatically funnelled, in explicitly predetermined percentages, to a published, transparently prioritized list of other charities, preferably connected with freedom, openness, transparency.
##the method should cover micropayment to internet artists, programmers, FLOSS projects, libre activists (in the areas of free art, free literature, free content, transparency, patent abolition, copyright abolition, heritage, commons, internet freedom, political freedom, including conservative urbanists, liberal activists, free culture advocates, government transparency activists, censorship fighters, civil rights advocates, G8 critics, GM opponents, ecologists/environmentalists, cover-ups researchers, whistle-blowers and many more);
##the implemented protocol should be secure, yet extremely simple, and easily supervised by the user (checking that no unapproved micropayments are being effected behind their back should be straightforward and easy for the user);
##it would be a further improvement if such micropayment could be made tax-deductable; or, alternatively, if one could devolve the optional per-mille of their taxes to internet micropayment instead of the Roman Catholic church such as in some jurisdictions; one could, for example, chose to devolve 5% (the current amount in Slovenia, IIRC; that would of course vary from one country to another) of their taxes to micropayments, to be effected in the course of the following fiscal year, with the provision that, should they fail to do so, or fail to spend the entire 5%, one could choose to what entity/charity/artist/programmer/activist the unspent rest should be micropayed/devolved;
##there should be a straightforward, transparent way for the user to check what links they have been clicking on, so that no room for fraud could remain; and also a straightforward way for the users to report any discrepancies in the links they've been clicking on, and the actual micropayments processed; additionally, e-mail reports could be sent to users on a weekly/monthly/whatever basis and micropayments processed only after the user confirms the e-mail.
Suggested further reading:
http://www.techradar.com/news/software/operating-systems/24-things-we-d-change-about-linux-906017
<<<
''Why should I give it away for Free?''
Are you looking for a way to distinguish your business from your competitors? Do you want new customers? Do you want to increase sales? One way for commercial businesses to distinguish themselves in competitive marketplaces is by providing free public """Wi-Fi""" access for their customers.
http://www.wififreenet.com/free.html
<<<
<<<
I never say "hello" to my neighbors. Why should I? It won't increase my sales.
//Klistvud//
<<<
You can hardly find a discussion -- be it on a forum, a mailing list, a blog, or a magazine article -- about wireless networking nowadays, without it being overly concerned with security, WEP, WPA, PSK, and MAC filtering. It seems that preemptively (doublespeak for "aggressively") locking up your wireless home LAN is one of those memes that most people just take for granted without ever taking even a //nanosecond// of their time to think about it first. (But isn't that so with everything, actually? I mean, taking everything for granted, going with the flow?)
Now, while I can understand such preemptive attitude in a corporate environment, where encryption is a method of protecting your asse(t)s, I find it much harder to understand when individual home consumers, just like you and me, go to great lengths -- in fact, sometimes much greater than many a corporation -- to select the strongest method of encryption, to enforce long, unbreakable passwords, and pass copious advice as to how often the password should be changed, what alphanumeric characters it should comprise, and so on. Gosh, people, who are you so damn afraid of? Home wireless equipment is so flaky that, half the time, you can't even make half of your devices half-connect at all -- and you're afraid somebody other will? You fear some script kiddie might break into your home WLAN and steal your dog's precious vaccination certificate? Or break into your bank account and -- what? cover all those debts on your overdrawn credit cards? I mean, come on, guys, can't you see what all this hypo about wireless encryption is //really// about? Must you //always// have it spelled out for you? You //really// think encryption is there for ''your'' benefit? Do you?
No, you don't actually "think" that. I know. That is precisely the problem: you don't think, period. For all you care, you're actually so much more comfortable being a mindless lemming than exerting your free will. I know, I know, all those tough ''decisions'' to make, all the time -- and ''on your own!'' -- can be such a royal PITA. Let's go with the flow instead!
Encryption is just one of the many methods employed to push us into the "hoarding", "this is mine and not yours" mood. It's the corporate agenda. Divide and conquer. Convince the slaves that sharing is bad; that sharers are leeches. Let them pay the full price of an Internet connection each. Let it never cross their minds that, actually, they could get together, form a group (say, a neighborhood community) and only pay for one ISP account between them -- and then share it wirelessly. Let it never cross their minds what a wonderful world it would be in which all home routers were open for anybody to connect -- you'd share your wireless connection with the casual passer-by for free, but you would also get wireless connectivity for free almost anywhere you went. But you're right -- that would be a corporate nightmare if ever I've seen one.
Actually, there //are// some initiatives for shared, open wireless internetworks (see the links provided at the bottom), it's just that they have a //real hard// time taking off. Now, how can that be? Well, there are two main reasons for that. The first and foremost is that the corporate agenda has made quite a good job at ''criminalizing'' any form of wireless sharing (see http://en.wikipedia.org/wiki/Legality_of_piggybacking). Actually, if you've noticed lately -- but no, of course you haven't, you couldn't care less, how dumb of me asking you -- they've made an exceedingly good job at criminalizing any form of lending, sharing, or giving away anything whatsoever. The second, not less important reason is our lemming mentality letting them do it. Our lemming mentality ''embracing'' the corporate reasoning -- and to say //corporate// is to say //biased beyond repair//.
Ssshhh, wanna know a secret? Those very corporations who are so strongly against it -- they do it all the time. Yep, they do it regularly, ''as a rule'': they share their //one// (and //only//, of course) ISP account among all their local offices; sometimes, spanning several floors. More often than not, entire buildings. And, at times, whole blocks. Well of course they do it -- they'd be stupid not to. Just goes to show how enslaved we are -- actually paying attention to all their PR mumbo-jumbo instead of judging them by their deeds...
Well, I, for one, think that "share-wireless-and-share-alike" is just as good a "business" model as any. Why shouldn't I let other people use a part of my bandwidth, as long as they don't try to abuse that? Why shouldn't I let a weary passer-by rest in the shadow of my apple-tree, as long as there's shadow enough for both of us?
By the way, my home WLAN has no encryption and no MAC filtering enabled. It will stay that way unless/until someone stupid enough comes by and, instead of gratefully using it, sets out to wreak havoc on my LAN.
Suggested further reading:
http://en.wikipedia.org/wiki/List_of_wireless_community_networks_by_region
http://kiberpipa.net/
http://wlan-lj.net/wiki/OOmrezju
http://www.schneier.com/blog/archives/2008/01/my_open_wireles.html
http://www.openwaves.ws/chapters.htm
http://tools.ietf.org/html/rfc3271
http://www.ex-parrot.com/~pete/upside-down-ternet.html
http://www.howtoforge.com/wifi_hotspot_setup
http://www.howtoforge.com/wireless_hotspot_howto
http://www.pcadvisor.co.uk/forums/index.cfm?action=showthread&threadid=230302&forumid=21
http://www.dslreports.com/forum/remark,13140936?hilite=hotspot
http://www.infotoday.com/cilmag/mar06/Mutch_Ventura.shtml
http://en.wikipedia.org/wiki/Piggybacking_(Internet_access)
http://en.wikipedia.org/wiki/FON
http://www.wififreenet.com/faqs.html
<<tiddler ToggleRightSidebar>>
Great! As if the Day of the Dead (November 1st) wasn't creepy enough, on November 2nd [[this article|http://www.networkworld.com/news/2009/110209-windows-7s-share-jumps-40.html?ap1=rcb]] came out, according to which I'm living in some sort of a greenhouse or, in other words, the ''world's most-windowed country'':
<<<
Of the top 25 countries by Windows 7 usage, 17 are in Eastern Europe or formerly part of the U.S.S.R. Slovenia, where 7.8% of the computers ran Windows 7 last month, led the list [...]
<<<
You can't imagine how great that feels. Way to go, Slovenia! You've really become ''extraordinary'' in the art of being as mainstream and as ''ordinary'' as it gets! Oh, break some windows already and let us get some air to breathe!
!!![Update] August 2010
According to http://www.perrier.eu.org/weblog/2010/08/07#devel-countries-2010, Slovenia is the only country in this region of Europe without a single Debian developer to show. All -- and I mean ''all'' -- neighboring countries have at least a handful: Italy boasts no less than 46 Debian developers (of which 32 are active), Austria has 23 (14 of which active), Hungary has 11 (5 whereof active), even our fellow Croatia has 3 (which are apparently all active). Slovenia is just a dead spot on the Debian map, as opposed to the above record in Windows 7 presence.
I think I'm gonna throw up.
A great musical site; in fact the best one out there if you're into CC music, as I am.
Initially, though, audio streaming in Rhythmbox didn't work. My first guess, given the intrinsic obsoleteness of Debian Stable packages, was that Jamendo had changed their player """URLs""" since the Lenny version of Rhythmbox came out. And, sure enough, there it was: by playing songs from Jamendo's own web interface, i traced back what the actual working Jamendo """URLs""" were, and compared them to the Rhythmbox code. Needless to say, they were not the same.
So, in short, what you need to do to be able to access Jamendo through Rhythmbox, is, basically, just update the Rhythmbox """URLs""", thusly:
* Enable the Jamendo plugin in Rhythmbox (if it's not enabled by default);
* Edit the file {{{/usr/lib/rhythmbox/plugins/jamendo/JamendoSource.py}}} by:
**finding the line
{{{
stream_url = "http://www.jamendo.com/get/track/id/track/audio/redirect/%s/?aue=ogg2"
}}}
(it's quite close to the start of the file, one of the first uncommented lines)
**commenting it (by placing a # in front of it), and adding, beneath it, a line:
{{{
stream_url = "http://api.jamendo.com/get2/stream/track/redirect/?id=%s&streamencoding=mp31"
}}}
**do ''not'' (repeat: do ''not'') -- no matter how tempted you may be -- try to replace the string {{{mp31}}} with {{{ogg2}}}, because it ''will not work'' (at least for the time being; however, Jamendo may hopefully choose to change that in the future)
*Fire up Rhythmbox, click on Jamendo in its left (navigation) pane, and wait a bit for all the tens of thousands of songs to load.
*Enjoy. Allison Crowe, Maja Filipič, Perrocker, Major Major, The Skampis and other great artists/entertainers are all there, waiting for you. Need I say more?
In the near future, I will add a few words about my favorite Jamendo musicians, and rant a bit about Jamendo torrents not working (with the exception of a dozen most popular albums, there are virtually no seeders to speak of; not only, but despite the fact that I'm currently seeding something like 50 albums, nobody seems to want them).
Does a klist, falling alone in the vud ...
As I purchased the WD20EARS and Debian Squeeze came out a couple of weeks later, the time has come again to clone some partitions. Until now, I've always used {{{dd if=/dev/sdax of=/dev/sday}}}, but with the WD20EARS I got burned. I don't know whether it was the fault of the {{{dd}}} command or of the "advanced format" of the WD20EARS, point is, it appeared as if by cloning a partition to a larger partition may have left the system in a somewhat messy state. S.M.A.R.T. read errors were popping up as if the system couldn't determine where the cloned partition actually ended, and was trying to write past the actual end. For more info, please read the relative heading WD20EARS.
Anyway, the occasion was as good as any not only for trying some alternative methods of cloning, but also for doing a write up on the experience (a sort of "notes to self"). The task at hand was twofold. My laptop was already running Squeeze on a "spare" partition, but it still had a fallback Lenny partition fully functional. In addition, the laptop's {{{/home}}} was formatted with {{{ext3}}}. In finalizing the conversion of my laptop from Lenny to Squeeze I set out to:
#copy my {{{/home}}} partition to a temporary store over the network;
#reformat the partition to {{{ext4}}} which is faster (just "converting" from {{{ext3}}} leaves large areas unconverted and I wanted a clean slate start);
#copy {{{/home}}} back to the freshly formatted, faster partition.
Secondly, I wanted to
#archive my obsolete Lenny root partition to the network server, just in case;
#do away with the Lenny install, which -- without major modifications and additions -- wouldn't work with my new {{{ext4 /home}}};
#clone my current boot partition (Squeeze) over to the partition that up to that moment held Lenny.
I'm not keen on employing humongous GUI tools for doing simple tasks that can be easily accomplished with {{{coreutils}}} or other GNU command-line utilities. So you won't find anything about Clonezilla or similar tools here. The tools I've tried out are the omnipresent [[rsync|Rsync As A Synchronizer]] and {{{cpio}}} -- the tools that are most likely to pop up when you google for "linux+cloning".
Of course, neither of the two can produce a true "clone" of a partition, they both just do a thorough file-per-file copy. For many intents and purposes, this may suffice, but it won't make a bootable clone, not even from a bootable source partition. So for root partitions, you'll still have some manual work to do, such as setting up {{{grub}}}.
Allegedly, {{{dd}}} can clone a partition over a network, which is a mighty great capability, but the drawback is, as we all know, that {{{dd}}} will copy over even the empty bits of a partition. Now, the exact opposite of this is the parsimonious {{{rsync}}} which will never copy any redundant bits. It will only copy over what's absolutely necessary, even going as far as resuming at exactly the point where it was previously interrupted -- and use compression in doing that.
So for copying my {{{/home}}} subtree to a network drive, permissions and all, {{{rsync}}} was the obvious choice. I first run
{{{
root@asterix:/# rsync -turboSzxpvg --stats --log-file=.rsync.log /home/aspirinix obelix:/media/depo/backup
}}}
and, after reformatting the laptop partition to {{{ext4}}}, copied it back just by reversing the source and the destination:
{{{
root@asterix:/# rsync -turboSzxpvg --stats --log-file=.rsync.log obelix:/media/depo/backup/aspirinix /home
}}}
I had to allow root logins in the remote {{{sshd}}} daemon first, and run the command as root, but that was it -- the command then copied everything, permissions, ownerships and all.
For the other task -- archiving a root filesystem to a network drive -- {{{rsync}}} turned out not to be the optimal tool. We all know the problems of cloning {{{/proc}}}, {{{/sys}}} and other virtual locations (which are part of the marvelous UNIX metaphor "everything is a file", but are not "real" disk files nonetheless). I tried adding some arguments to the above {{{rsync}}} arguments, such as {{{-H}}} to preserve hard links, and experimenting with {{{--specials}}} and {{{--devices}}}, but still {{{rsync}}} kept warning me that many files weren't being copied. It may well be that the cloned system would function without those particular files, but I wasn't inclined to rely on that. Luckily, the copied Lenny installation would probably never be used again, and anyway, the essential bits and pieces were successfully copied -- the modified files in {{{/etc}}}, some configuration files in {{{/var/lib}}}, some private scripts I stored into {{{/usr/local/bin}}}, and so on. However, for making a clone of my working Squeeze install which clone should hopefully boot to a working system, I couldn't rely on {{{rsync}}}. So I decided I'd follow http://trinux.sourceforge.net/stories/disk-cloning and use {{{cpio}}} instead. The commands I ultimately used were
{{{
root@asterix:/ cd /
root@asterix:/ find . -depth -print -xdev | cpio -pmduv /mnt/lenny
}}}
wherein
{{{-depth}}} takes care of permissions,
{{{-xdev}}} takes care of not descending into other filesystems,
and the {{{cpio}}} arguments are easily understood by consulting its {{{man}}} page (actually, in the case of {{{cpio}}}, by consulting its {{{info}}} manual).
Of course, this didn't give me an autonomous system, but it did give me a system whose kernels were found by the {{{update-grub}}} script and could be booted from the {{{grub}}} boot screen. The only things I had to modify after "cloning" the partition was to edit {{{fstab}}} and substitute the original UUID with the new one.
The two great absentees in this write up are, of course, {{{scp}}} and {{{tar}}}. Explaining the absence of {{{scp}}} is easy -- it can't be forced to preserve source permissions/ownership. So, for my needs, it was a no-no.
It's a totally different story with {{{tar}}}. At some future occasion, I must absolutely put {{{tar}}} to the test. In addition to being an excellent, well tested archiver one should definitely take the trouble to get acquainted with, it's also highly recommended specifically for such "cloning" necessities. I didn't consider using it just because I assumed that at one moment in the process, you have to have the "tarred" archive available locally, and the space into which to unarchive it. Sometimes, you just don't have all that space available. However, I've learned that you should never "assume" anything in GNU/Linux. For example, you could probably untar the archive from a remote location to the target partition, without having it available locally first. Or, you could place the {{{tar}}} archive on another local partition (instead of the target one), if available. Or perhaps {{{tar}}} can copy files directly, without ever creating an intermediate archive file? Or, in case it can't, you can probably just pipe {{{tar}}} to "{{{untar}}}", eliminating the need of having a huge intermediate storage area available. And so on.
Well, after much fiddling and research, I finally managed to find what seems to be the solution to the ever-worsening problem of overheating laptops. Why is this problem ever-worsening you ask? Well, because laptops, just as processors and RAM, get meaner all the time; meaner, but not leaner. It's that meaner sells; leaner doesn't (as we all know, consumers can be strange bedfellows). Luckily, underpowered netbooks seem to be partly subverting this rat-race trend; for the time being, however, many laptops are full-fledged desktop replacements in every respect. Unfortunately, that goes for their power consumption and generated heat too.
So what's this solution I've stumbled upon? Actually, it's only the "crucial part" of the solution if I may call it so, given that the solution as such consists of several parts. I'm talking about the thermal kernel module which is responsible for the temperature trip points in your laptop. Admittedly, it needs an operating ACPI stack, but with the current kernels and fairly recent laptops this shouldn't be a problem. For those among you who don't know this yet: kernel modules are capable of taking certain startup options. For example, the thermal module can be instructed to set the active trip point at 50°C, the passive trip point at 80°C, and the critical (hardware shutdown) point at, say, 90°C. In theory, you could simply append this to the kernel boot line, but I've found out that, at least in Debian Lenny, this doesn't work. The alternative method is to write these options in a file and place it in /etc/modprobe.d; apparently, you can name the file whatever you like, some proposed names would be "thermal" or "local". There needs to be just one simple line in that file, namely:
{{{
options thermal act=50 psv=80 crt=90
}}}
The "psv" argument tells the kernel when to activate the passive cooling (in degrees Celsius); generally, passive cooling means throttling down the CPU and/or scaling down its working frequency; i suppose it may even have provisions for scaling down the GPU speed/power, but that will most certainly depend on the model of your laptop.
The "act" argument tells the kernel when to trigger the active cooling method (in degrees Celsius again); this generally means spinning up the fan(s). Unfortunately, you may only give one temperature here, although your system may contain four fans or more: if you want more granularity, I'm afraid you'll have to rebuild the initramfs with custom DSDT tables -- something I'm not even capable of mentally grasping, let alone doing, just as yet.
On my laptop, the act argument triggers the lowest-tripped fan, and it can only be set as high as the next fan in line. So, if you have, say, 3 fans all in all, and your hardware manufacturer has set them to spin up at, say, 40, 50 and 60°C, respectively, you will only be able to modify the first active temperature (40), and only set it as high as 50 (the trigger temperature of the next fan in sequence), any higher values will be disregarded (at least on my system it is so).
And finally, the "crt" argument instructs the kernel at what temperature (in °C again) to perform a hardware shutdown in order to prevent thermal damage to the machine: for the hopefully rare occasions when all other thermal management techniques fail epically.
You may first try adding the said options to your kernel line (the line generally found in Grub's menu.lst) as arguably a more intuitive and transparent solution; if you do so, be forewarned that the options must contain a dot, like this:
{{{
thermal.act=50 thermal.psv=80 thermal.crt=90
}}}
As said before, however, this may not work. If, on the other hand, you go with the /etc/modprobe.d/ solution, you MUST remember to update your initramfs after adding the options file to /etc/modprobe.d. Otherwise, the kernel won't pick up your changes! The usual RTFM applies (the "M" standing for "man page" in this particular case).
Further reading: explore your /sys/class/thermal subtreee, especially the directorie(s) named thermal_zoneX, and also have a look at the /proc/acpi/processor subtree, although /proc has been deprecated for quite some time now.
An additional trick for fine-tuning your CPU power consumption is to use the cpufreq-set utility. In Debian, it's in the cpufreq-utils package; if you don't have it, just fire up your favorite package manager (there are surely plenty to choose from on a Debian system, one for every taste, and then some). When I feel like playing with my laptop's warmth and/or noise, I set the maximum CPU frequency to 1800 or even 1600 """MHz""", thus effectively reducing its temperature and the noise of its fans; of course, its performance gets somewhat impoverished too, but there are situations and locations where this isn't much of an issue.
Now, with the above two approaches, I almost never resort to changing the CPU governor anymore (which had been my main method of cooling my laptop for a long time). Of course, an optimal solution would be a combination of the above methods; a way to switch to a more power-savvy governor depending on the temperature of the system or the noise of the fans, and reverting to the faster governor when thermal and noise conditions allow it. This, however, would be too close to ideal and, as such, must be marked as TODO. The final goal of course would be to maintain a low consumption profile, a low thermal profile, and a low noise profile, without noticeably sacrificing performance; having a snappy, responsive computer which runs cool and quietly, and can afford to have all subsystems enabled (including Bluetooth, wifi, USB, and so on). Is that possible at all, with modern """CPUs, GPUs""" and the relative power-hungry chipsets? Of course it is! If you want to find out how, just purchase my 320-page report on Why you'd never want to be judged by a jury of your peer2peers ... whooops, sorry, that's from another paper.
[[Proceed to Part 2|Laptops In Heat Part 2]]
!Musings, considerations
There is something called hysteresis in ACPI thermal management. If I understand correctly, this means that the trip points get reassigned on-the-fly by the ACPI implementation. If you think about it, it's quite logical; say a fan gets triggered at 55°C: there's a reason why its tripping point gets temporarily lowered to 50°C -- otherwise, the fan would only operate for maybe a second or two, until 55°C were reached again. So, many kernel developers and linusers in general were/are opposed to exposing trip temperatures to userspace where unsavvy users could mess with them. With ACPI, you never know what trip point could be dynamically changed at what moment; so making informed decisions is tricky, next to impossible, and consequently, many think, best left to the ACPI as configured by the vendor. I can only give some private observations and considerations here, only valid for my hardware (a HP Compaq 6715b): what you ''can'' do is separately configure the ''passive'' and the ''critical'' trip point. Of the active trip points, you can only modify the ''lowest active trip point''; other(s), if any, get modified automatically as you modify the three forementioned ones. In my case, depending on the values I set for //act, psv// and //crt//, the intermediate active trip points would either assume the values 50, 60, and 70 °C, or the values 55, 65, and 75°C, respectively. I reckon other combinations would be possible.
In conclusion: lowering the passive trip point should have no ill effects on your hardware (on the contrary, it may prolong its life cycle), but does have side effects: the lower you set the passive trip point, the sooner the CPU trhrottling/downscaling will kick in and the sooner your computer will start feeling sluggish. In my opinion, there is absolutely no point in trying to //raise// your passive trip point. Setting it //too// low, on the other hand, will make your machine sluggish.
Now, for the critical temperature point: this one could ''easily fry'' your computer if set too high. No, I shouldn't say easily, I should say with ''extreme prejudice and in a blink of an eye''. Literally. With any luck, it will just take seconds to reach, say, 120-130°C, and fry an egg (also frying your CPU in the process). Hardly gives you time even to hit the hardware switch-off button (and no, even swiftly unplugging your laptop will not help, if there's any power whatsoever left in the battery). If set extremely low, on the other hand, the critical trip point may effectively lock you out from your machine. It'll just keep shutting the machine off at whatever critical temperature you told it to (trust me, been there, done that; not that I'm proud of it, mind you). I was lucky enough to have an older kernel lying around, so I booted with it, reconfigured the trip point and updated the initramfs before rebooting the target kernel. All in all, an extremely low critical trip point could be used as a freaky and convoluted way to protect your laptop from unauthorized booting. Hmmm ... and from authorized booting as well, methinks ...
A sidenote: on my laptop, I hardly ever see throttling kicking in (as observed in /proc/acpi/processor/C000/throttling); the bulk of thermal management is apparently done by scaling down the processors to lower frequency regimes (in my case, from the max 2GHz to 1800 or 1600 or even 800MHz). Throttling will kick in if you set your passive point fairly low, as low as 50°C in my case: at which temperature, of course, the machine will become barely usable. Very quiet -- yes, very cool -- that too; but also very useless.
After setting the tzp parameter, the kernel started to log messages of the type:
{{{
ACPI: Transitioning device [C399] to D0
}}}
I suppose this just means that now the kernel is activating the fan in question, whereas before that was left to the hardware ACPI? Or is it the other way around? Well, I wouldn't be a newbie if I could answer that, now, would I?
As you may already have noticed, dealing with heat in laptops (and, in a lesser manner, in any personal computer) is a multi-headed monster. There are many approaches to the problem at hand -- from the vendor's ACPI implementation to kernel fine-tuning, to user space control -- each with its own set of advantages and shortcomings. So we should break down these factors, if for nothing else, for the sake of clarity. Being on GNU/Linux, we are in luck here: virtually ''every'' level is accessible to the user through this interface or that, hardly anyhing is obfuscated by the OS.
#ACPI DSDT tables -- these are implemented in hardware/firmware and are the most unwieldy interface of all; they may be modified/updated by a BIOS upgrade, but there should also be methods for modifying DSDT tables at runtime, by modifying your //initramfs//, I've just never digged into it (which does not mean I might not do just that, some day) and therefore will not write about them here. I'm going to concentrate on the following three instead, as they don't require particular hacking skills and are perfectly accessible to the average Joe, Jim or Jenny;
#kernel modules -- (notably, the //thermal// module), are either built-in or loaded at boot time. These are configured via startup options, but may also be modified on a running kernel, to an extent;
#user space programs -- the most powerful and wieldy interface, but also mostly limited to individual users; the question is, should power-related issues be solved on a user level at all? Should an individual user be allowed to (maybe inadvertently) meddle with power settings, override the sane defaults, and potentially lock-up or even fry the machine? Or is the user space to be prevented from accessing power and heat management?
#individual tweaks and tricks
!Kernel modules
I'm going to concentrate on the //thermal// module here. You interact with it via startup options (which should work from the kernel command line in Grub's //menu.lst// or //grub.cfg//, only that, on my machine, they don't) or through a configuration file in /etc. There are several possible locations and names for this configuration file, I haven't tried them all: what works for me is a file called //local// -- but I think you can pick any name -- placed into ///etc/modprobe.d//. There may already be such a file on your system for configuring other kernel modules; if you're positive that the OS won't modify the file, you can add your options there. The options consist of just one line of the form
{{{options thermal tzp=80 act=40 psv=80 crt=90}}}
wherein //thermal// is the name of the kernel module, //tzp// is the ''polling interval'' in 10ths of a second, //act// is the ''active trip point'', //psv// is the ''passive trip point'', and //crt// is the most important of all, the ''critical trip point''.
''Warning: whatever you do, never raise the default critical trip point!'' The critical trip point is responsible for shutting down the computer to prevent it from burning up. It kicks in in unpredictable circumstances, such as, say, when you leave your laptop for a couple of minutes, and a piece of clothing, or a pillow, or similar, falls on the laptop, effectively preventing its cooling mechanisms to cool it down. In such circumstances, a laptop will build up temperature in an amazingly short time and burn up, potentially starting a fire. For such occasions, there is the critical trip point which //shuts the computer down ''before'' such accidents could take place//.
In fact, as you'll see further on, I strongly advise to ''lower the critical trip point'' or, that not being an option, at least ''leave it be'' (by simply not specifying any //crt// argument on the above line).
[[Back to Part 1|Laptops In Heat]]
[[On to Part 3|Laptops In Heat Part 3]]
!Other methods
Now, the four methods of interacting with your computer's power and thermal management may be complementary and probably a combination of all four should be used for achieving the best results, but this also depends on the usage your computer is exposed to. For example, not being a hard-core gamer, I usually tweak my power management so as to have a relatively cool and relatively quiet machine; to achieve this, I must sacrifice some speed now and then. In particular, I have set my user space configuration (via the Gnome sensors-applet) to switch the CPU governor from //ondemand// to //powersave// when my hard drive reaches 45°C or my ACPI thermal zone reaches 70°C. If you're a hard-core gamer, you probably wouldn't want your computer to abruptly drop its CPU clock just as you spot a three-headed space monster charging. So, not every tweak will work for everybody. Hard-core gamers will probably endeavor to //always achieve the highest speed, maybe putting up with some excess temperature//. This could best be achieved by thoroughly cleaning up your laptop's orifices with a good vacuum cleaner, by disabling certain services and hardware that is not used (many unused devices, such as fingerprint readers and the like, may be disabled via BIOS settings), by setting other devices to suspend when not in use, by experimenting with various drivers (some graphics card drivers run cooler than others -- consider switching your video driver if that's an option), by passing certain arguments to your hard drive and your file system. //Powertop// and //hdparm// come to mind, as well as certain kernel options and ///sys// subtree arguments to be //echo//ed to the right place in the ///sys// or ///proc// subtree.
!Observations
I will share my personal experiences here. I've tried many approaches and am currently using a combination of kernel-module arguments, Gnome sensors-applet user space settings, and manual CPU governor switching (although the latter is hardly ever needed anymore, since it's magnificiently taken care of by the Gnome sensor-applet). In addition, I am experimenting with some of the individual hardware tweaks as suggested by Intel's //powertop//, and have also disabled some BIOS settings in order to achieve a cooler, quieter laptop. Be warned: the success has been marginal at best; very little has been achieved without sacrificing the computer's speed.
My first approach involved the CPU governor - which is just a catchy name for the CPU clock policy. There are several governors available, of which, if we are to believe many a GNU/Linux guru, only {{{ondemand}}} and {{{powersave}}} are of practical use. I soon discovered that the CPU governor could easily be switched via the Gnome Configuration Editor, and I soon hacked together a quick and dirty script to do that. Now, what I didn't like of that script was that I had to manually call it every time I wanted to change governors, and the {{{gksu}}} syntax was also somewhat messed up. Let's just have a look at the script before going on, we can refine it at a later time:
{{{
#!/bin/bash
state=`gconftool --get /apps/gnome-power-manager/cpufreq/policy_ac | cut -d\ -f1`
light=`gconftool --get /apps/gnome-power-manager/backlight/brightness_ac | cut -d\ -f1`
if [[ -n $1 ]]; then
if [[ $1 == "--powersave" ]]; then
gksu "cpufreq-set --max 1600000"
state="ondemand"
light="90"
else
gksu "cpufreq-set --max 2000000"
state="powersave"
light="60"
fi
fi
if [[ $light -ge "75" ]]; then
countdown=`echo {99..1}`
if [[ $state == "powersave" ]]; then
gconftool --type int --set /apps/gnome-power-manager/backlight/brightness_ac "60"
else
gconftool --type string --set /apps/gnome-power-manager/cpufreq/policy_ac "powersave"
gconftool --type int --set /apps/gnome-power-manager/backlight/brightness_ac "90"
fi
else
if [[ $state == "powersave" ]]; then
countdown=`echo {1..99}`
gconftool --type string --set /apps/gnome-power-manager/cpufreq/policy_ac "ondemand"
gconftool --type int --set /apps/gnome-power-manager/backlight/brightness_ac "90"
else
countdown=`echo {99..1}`
gconftool --type string --set /apps/gnome-power-manager/cpufreq/policy_ac "powersave"
gconftool --type int --set /apps/gnome-power-manager/backlight/brightness_ac "60"
fi
fi
state=`gconftool --get /apps/gnome-power-manager/cpufreq/policy_ac | cut -d\ -f1`
light=`gconftool --get /apps/gnome-power-manager/backlight/brightness_ac | cut -d\ -f1`
if [[ -z $1 ]]; then
for i in $countdown; do echo $i; sleep 0.01; echo "#";done|zenity --progress --auto-close --title=$state
fi
echo CPU governor switched to $state, brightness set to $light%.
}}}
I was very relieved when I discovered Gnome sensors-applet; with it, you can set a notification and/or script to get triggered every time a certain temperature is reached. The only disadvantage of the script and the sensors-applet is that they don't apply when nobody is logged in. The laptop, however, can build up heat even when nobody is logged in. That's why I considered my solutions to be half-baked. I needed something more reliable. And here's where the notorious thermal kernel module comes in.
!Some Personal Experiences
Let me begin my tale of woe with my {{{/etc/modprobe.d/local}}} (it's the file where I put the settings for the thermal kernel module in). Currently, the file consists of the following lines:
{{{
# psv is passive trip point value in degrees C
# act is active trip point value in degrees C
# crt is critical trip point value in degrees C
# tzp is the polling time in 10ths of a second
# nocrt should *not* be included in this line
options thermal tzp=100 act=30 psv=80 crt=90
}}}
Now, how did I arrive at these values? By trial and (mostly) error, I must admit. I will now write down every set of values I've actually tried, and don't forget that after writing each and every set, {{{initramfs}}} had to be updated and the computer rebooted in order to evaluate the operating temperatures. Trials were conducted by issuing the command
{{{yes|sha1sum}}}
in four separate gnome terminals -- which quickly ramped up CPU usage on both cores to 100%.
Now, the default (factory) trip points of my laptop are set to 40, 55, 65, 75, 95, and 105°C, wherein the first four values are the fan triggering temperatures (active trip points), the fifth value is the passive trip point (where cpu scaling/throttling down kicks in), and the last temperature is the critical trip point, when the emergency shutdown occurs in order to preserve the hardware. The allowed CPU clocks on my Turion are 800, 1600, 1800 and 2000 """MHz""". It should be remembered that, for the time being, you can only modify the lowest active trip point, even if your machine has several; the others will be readjusted dynamically, but you can't set them manually.
The first thing I wanted to change is to set the highest trip point to a lower value, I didn't want the computer to wait up to 105°C before initiating emergency shutdown. I decided that around 90°C would be more to my liking. Then, I thought I'd set the passive trip point accordingly, say around 80°C. Here my tale of woe began.
But first, let me just list the main locations where you can check the various thermal-related parameters:
{{{/sys/module/thermal/parameters}}} shows you if your kernel parameters stick. If they are not correct, rebuild {{{initramfs}}}!
{{{/sys/class/thermal/thermal_zone0}}} shows you the trip point temperatures and the actual TZ temperature.
{{{/sys/devices/system/cpu/cpuX/cpufreq}}} stores the values of available, allowed and current governors and CPU frequencies.
{{{/proc/acpi/fan}}} lists your fans and their state (on or off).
{{{/proc/acpi/processor/C000}}} shows you your processor's capabilities and its actual throttling state.
{{{/proc/acpi/thermal_zone/TZ1}}} -- here you can see the polling frequency and some duplicate entries of what may be seen in {{{/sys/class/thermal/thermal_zone0}}}.
[[Back to Part 2|Laptops In Heat Part 2]]
[[On to Part 4|Laptops In Heat Part 4]]
!!!!Postscript
I'm thinking of disabling thermal management altogether. That way, I'll be able to solve the perennial problem that has been afflicting computer users from times immemorial: keep my cup of coffee hot all through the day just by placing it next to my laptop's ventilation exhaust.
!Putting The HP Compaq 6715b To The Test
I began with setting
{{{
options thermal psv=80
}}}
the remaining trip points adjusted dynamically to 40:50:60:70::105°C. I could distinctly hear the first fan activating, then the second one, then the third and finally the fourth one. The result was, the temperature rose steadily to 94-95°C, whereupon the CPU was both throttled down ''and'' scaled down to 800 """MHz""" at the same time.
I then tried
{{{
options thermal act=50 psv=80
}}}
the trip points settled at :50:60:70::105. The result, however, was identical as above: the temperature rose steadily to 94-95°C, whereupon the CPU was both throttled down ''and'' scaled down to 800 """MHz""" at the same time. This was starting to befuddle me: although I distinctly changed the passive trip point to 80°C, the laptop seemed not to detect the change and kept on honoring its default factory setting of 95°C!
Then I changed to
{{{
options thermal act=50 psv=75
}}}
the remaining trip points stayed at :50:60:70::105; surprisingly, the results were yet again identical as before.
{{{
options thermal psv=75
}}}
yielded the exact same results. The same goes for
{{{
options thermal act=50 psv=75 crt=85
}}}
It was then that I discovered that the Lenny kernel (2.6.26) can not detect the passive power state change; it can only sense it when another "thermal event" takes place -- say, if you set the passive trip point near enough to an active trip point, or so that their ranges overlap. Maybe newer kernels will be capable of detecting that, for now we are forced to use the {{{tzp}}} setting to forcibly poll the thermal zone. See this interesting snippet from http://www.mail-archive.com/linux-acpi@vger.kernel.org/msg08481.html:
<<<
Note that the thermal.psv in this series is writable by root at run-time. But as it requires a trip-point-changed event to get noticed after module load time, that will get you almost the feature you are looking for, but only on systems with active cooling -- the more common ones with just critical and passive will not be implementing hysteresis and thus would not be changing trip-points at run-time. For those, you'd have to rmmod thermal and modprobe thermal to force the new passive trip point to get noticed.
<<<
The [[ACPI howto|http://www.columbia.edu/~ariel/acpi/acpi_howto.txt]] may also be of interest:
<<<
Linux should poll the temperature every so many seconds. In practice, however, Linux tries to figure out how often to poll by invoking the _TZP method, which many vendors don't provide. When that fails, Linux disables polling altogether.
<<<
//The above may ultimately be the cause, or at least related to, why some laptops tend to overheat and shutdown with certain kernels/distros!// I remembered how this very laptop kept overheating and shutting down while I was installing Lenny from the Debian 5.0 DVD. No wonder it did -- passive cooling never kicked in at all! To test my surmise, I tried
{{{
options thermal psv=75 tzp=10
}}}
This yielded an extremely odd behavior: the ACPI TZ temperature remained at 67° and ''never moved a notch'', whereas the temperatures of both the cores jumped to 98°C and more. This, of course, simply couldn't be true -- there was some misconfiguration involved. I shut down my four terminals in order to stop the test. The remaining trip points settled at 40:50:60:75::105°C. With
{{{
options thermal tzp=1 act=50 psv=80 crt=90
}}}
the polling was reset to 0 seconds. The ACPI temperature stayed at 68°C again, while the cores went to 95° and over (whereupon I manually interrupted the test again). The frequency stayed at 2 """GHz""" constantly. Eventually, the machine would overheat and hopefully shut down by the thermal protection circuit. Passive cooling was ''obviously'' not working again.
So I tried to exclude the {{{tzp}}} argument. Setting the thermal module options to
{{{
options thermal act=50 psv=70
}}}
finally worked. At least, the oddities ended, but now, around 69-74°, the last fan kept turning on and off continually every second or two, which is acoustically too unpleasant to be of any use. It would seem that throttling is not used, only the fans and the frequency scaling are employed to keep the temperature in check. The same goes for
{{{
options thermal act=50 psv=70 crt=85
}}}
With the following setting
{{{
options thermal act=50 psv=72 crt=85
}}}
the remaining trip points settle at :50:60:70: and the fan oscillates around 69°C. The line
{{{
options thermal act=50 crt=98
}}}
works, but is actually useless, as it only changes the autoshutdown temperature, without affecting either the power consumption, or the temperatures, or the fan noise. The next setting I tried was
{{{
options thermal act=50 psv=68 crt=85
}}}
The remaining trip points settled at :50:60:75:°C. Accordingly, the obnoxious oscillating noise of the fan turning on and off became less frequent (most of the time, passive cooling kicked in before the fan with the highest trip point could ever turn on). Well, this was almost like crippling a 4-fan computer to a 3-fan one, which, for me, is a no-no. However, in the rare event that you want, or need, a configuration without the {{{tzp}}} argument, this is the best setting: it keeps the computer cool and minimizes the noise of the fourth fan. Update: after using this configuration for several weeks, I noticed that sometimes, the passive trip point just never kicks in. Thus, I can not really recommend a configuration without a {{{tzp}}} argument set.
The effect of
{{{
options thermal act=50 psv=69 crt=85
}}}
is the same as above, only the fan begins to start and stop more frequently. With
{{{
options thermal tzp=30 act=50 psv=80
}}}
the other trip points settle at 50::60:70::105. A good, working setting if it were not for the critical point which remains at its default (105°C which seems a tad too high for my taste). The following setting is quite good and was actually my default for a while:
{{{
options thermal tzp=30 act=50 psv=75 crt=85
}}}
The trip points are at 50::60:70::. Possible variations would be {{{psv=80 crt=90}}} or even {{{psv=85 crt=95}}} -- if we wanted to expand the upper operating boundaries of the laptop, which, in my opinion, is not a good idea. The only real drawback of this setting were the kernel messages that started appearing (actually, they may have started appearing earlier and I just failed to notice them):
{{{
ACPI: Transitioning device [C399] to D0
ACPI: Unable to turn cooling device [ffff810077b6e270] 'on'
ACPI: Transitioning device [C39A] to D0
ACPI: Unable to turn cooling device [ffff810077b6efd0] 'on'
}}}
Apparently, the fan had trouble starting or, more probably, was already rotating when the kernel tried to switch it on. This was obviously a consequence of the polling argument ({{{tzp}}}). The fans ''were'' actually operating, I could very well hear them. With
{{{
options thermal tzp=100 act=50 psv=80 crt=90
}}}
the kernel stopped cringing -- well, for the most part at least -- but I may have dangerously extended the reaction time of the thermal protection circuitry (10 seconds are a lot when thermal buildup is involved). With
{{{
options thermal tzp=50 act=50 psv=80 crt=90
}}}
the trip points settled at (50):55:65:75::. The kernel kept "{{{Transitioning}}}" occasionally, and very rarely complained about being "{{{Unable to ...}}}". With
{{{
options thermal tzp=60 act=55 psv=80 crt=90
}}}
''the target {{{act}}} value gets overridden'' by the ACPI (or, less probably, by the kernel), so the points get set to 50:50:65:75:80:90. The only thing achieved is that at 50°C ''two'' fans activate simultaneously; they deactivate simultaneously too, letting you enjoy blissful silence for a while. This, however, could -- at least in theory -- be just a tad stressing to the power circuitry (two devices activating at the same moment) and to the processor(s), since they get no cooling whatsoever up to 50-51°C. However, I //may// be overcautious here. The line
{{{
options thermal tzp=60 act=70 psv=80 crt=90
}}}
brings nothing new; the lowest two trip points are 50:50°C again. With
{{{
options thermal tzp=60 act=30 psv=80 crt=90
}}}
the first fan is active from 30°C on, the next trip point oscillates dynamically between 50 and 55°C, the third one between 60 and 65°C, while the 75°C point remains static ... The line
{{{
options thermal tzp=80 psv=80 crt=90
}}}
works admirably. Trip points :55:65:75::. Most of the time, the temperature hovers above 45-47°C, as opposed to the 50-52°C+ of the default "factory" configuration. This is most certainly owed to the powersave governor, which I set to activate at 50°C by configuring the Gnome sensors-applet accordingly, and to the particular hardware tweaks described at the very end of this article.
As may be readily seen, configuring the trip points yields only limited results and is most useful in the upper temperature range, whereas in the low range it doesn't allow for much configuration, or (if {{{psv}}} is involved) may quickly make your computer sluggish. At intermediate temperature ranges, on the other hand, the {{{act}}} trip points allow no configuration/modification whatsoever.
It's worth noting that, even with the powersave governor dynamically kicking in on a when-needed basis and without any power-hungry programs (viz. Iceweasel/Xulrunner) running, it's hard to get the """TZ1""" and hard drive temperatures to drop below a given temperature range: in my case, below around 45 and 43°C, respectively. Which is not good news, especially for the hard drive. As a side note: one of the determining factors is the actual support on which the computer is placed -- for example, pillows, thick rugs and laps are a no-no. Yes, despite their name, laptops are becoming increasingly hard to use on your lap, at least for any length of time. In my humble opinion, it is better to put your laptop on a flat surface, for better ventilation, and to reserve your lap for your pet, your kid, or your better half.
Whew! I fear that, in hope to be exhaustive, I ended up being exhausting ...
!WARNING
@@''YMMV. I am in no way to be held responsible if you fry your machine and, consequently, your building, by heedlessly and superficially applying the tweaks described herein, without a deep understanding of what each particular tweak actually does and how individual tweaks may interact when applied in combination. This is potentially hazardous stuff which should never be tried at home! In particular, never ever attempt to modify your computer's default //crt trip point// if you're not absolutely positive about what you're doing!''@@
!Sparse Tips And Suggested Further Reading:
Following the advice given to me by {{{powertop}}}, I implemented the following tweaks:
*enabled SATA ALPM link power management with
{{{
echo min_power > /sys/class/scsi_host/host0/link_power_management_policy
}}}
*typed
{{{
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs
}}}
actually, I've put the above lines in my {{{/etc/rc.local}}}, together with my {{{modprobe}}} commands and my {{{Xmodmap}}};
*enabled USB autosuspend by appending
{{{
usbcore.autosuspend=1
}}}
to the kernel command line in {{{/boot/grub/menu.lst}}};
*issued
{{{
mount -o remount, noatime /
}}}
actually, I did that to my {{{/home}}} partition too, but by modifying {{{/etc/fstab}}}, not by manually issuing the command after every boot; and by replacing {{{noatime}}} with {{{relatime}}}. You may wish to implement this tweak for your other partitions as well, if you have any.
After some time, I noticed that the first tweak was causing my SATA controller or drive to spurt out weird kernel messages, so I disabled the tweak. The other tweaks seem to work OK.
Browsing the web, I stumbled upon some additional tips. For instance, you could issue (as root)
{{{
echo -n x >/proc/acpi/processor/C000/throttling
}}}
to manually throttle (introduce additional waiting states) your CPU; here, x is an integer between 0 and (on my machine) 7. This will help it run cooler and may be useful if even at the lowest frequency your CPU is still running too hot. However, introducing additional waiting states will noticeably slow down your machine.
Another thing you could tinker with is manually switch the fan(s) on and off; however, on my computer, this doesn't work as expected. Namely, you can switch the fans //off// if they are switched on by the ACPI; but you can't switch fans //on// if their ACPI trigger points haven't been reached yet. Anyway, it's done by issuing (as root):
{{{
echo -n 3 > /proc/acpi/fan/C399/state
}}}
to switch the fan off, and
{{{
echo -n 0 > /proc/acpi/fan/C399/state
}}}
to switch it on. As for the above, of course, you will have to explore the exact location(s) on your machine and modify the commands accordingly.
For more tweaks, you shouldn't miss [[LessWatts.org|http://www.lesswatts.org/tips/]]. Also, there are some incredibly well written tutorials over at [[Gentoo|http://www.gentoo.org/doc/en/power-management-guide.xml]] and, of course, [[DebianWiki|http://wiki.debian.org/HowTo/CpuFrequencyScaling]].
[[Back to Part 3|Laptops In Heat Part 3]]
!!!Don't Use Your Love As A Weapon!
Transnational copyright corporations, the RIAA, the MPAA and the like are insistently promulgating the implicit notion that certain ''actions'' as such are ''illegal in and of themselves''. Thus, they seem to always imply that "downloading" as such, or "torrenting" as such is a Bad Thing™ and that, consequently, the bittorrent protocol should be banned. They should be taught once and for all that it's only the ''objects'' of the actions that make them legal or not. For instance, it's the existence of protected proprietary software that makes downloading software illegal; just as it would be unreal to ''ban the making and existence of all proprietary software'' (although it //would// solve the problem of illegal software downloads once and for all), it would be unreal to penalize downloading GNU/Linux distribution """DVDs""" and [[other free content|http://ostatic.com/blog/ten-sites-for-free-and-legal-torrents]]. If proprietary/copyrighted/patented software may not and must not be penalized by the mere existence of free software, the reverse is also true.
Likewise, browsing the Web shouldn't be criminalized just because it consists in actually "downloading" web pages; for god's sake, even reading your personal mail implies "downloading" it in some way or another! Should matches be banned because they "can" be used to commit arson? Should civil air travel be outlawed just because civil aircraft "can" be used to destroy skyscrapers?
In my opinion, there is no need to reinvent the wheel here. The legislators have already given the answer to these riddles ages ago, when defining the illegal act of counterfeiting money. Did they penalize/restrict cash ''circulation'' as such? Did they ban the use and ''exchange'' of money?
Of course not.
They only outlawed ''counterfeited'' money.
!!!What Our Government(s) Could Easily Do To Prevent Frauds But Choose Not To
Almost every day we hear of a new buyer getting scammed. Once it is a buyer of a house that later discovered the house had already been sold to another person, another time it's a used car buyer who later learned the hard way that the car had been actually stolen, possibly in a far country, another time it's a goods vendor who cashes in the checks from hundreds of customers and then just skips abroad without ever delivering the goods ... you name it. Now, there's one extremely simple step our government(s) could do to prevent many types of such scams if they just wanted to. I'll call it money freeze. Let me explain the concept.
The vast majority of transactions involve some sort of goods exchanged for money. Now, as a buyer, once you're stuck with the goods (or actually aren't because you never got them), there's not much you can do. The seller, on the contrary, can do with the money received whatever he or she pleases. It is readily apparent that, from this perspective, the buyer and the seller are in a very unequal position. What the government(s) should do is establish an Agency that would act as an intermediate in ''all'' transaction between citizens. The Agency would have three main duties:
# ''Thoroughly check'' and warrant the state of the goods and the money involved. In accordance with the various government agencies and their respective databases, it should be extremely easy for such Agency to:
## check that the money paid for the goods is not counterfeited, stolen, laundered and so on;
## check that the goods in question are not stolen, mortgaged, that the seller is their real owner, that they are actually, entirely in the seller's property (i.e. not burdened with mortgages or leased and not yet paid out) and so on.
# act as the ''Ultimate Warrant'': once the Agency performs all the above checks (and others, to be further defined and refined as-we-go) and the //Intermediate Ownership Period// (see below) expires, it will issue a Final Document of the transaction after which no further complaints and objections will be accepted and the exchange of goods and money is considered ''finalized to all effects''.
# act as the ''Intermediate Owner'': for a certain amount of time (say, a year or maybe even ten years, perhaps depending on the type of the goods involved and to be further refined as-we-go), the Agency will be the owner and the curator of the money and the goods involved in the transaction and will only hand them over to the new legitimate owners if no impediments, obstacles, faults, deficiencies or scams have surfaced during said interregnum. This would achieve two things:
## it would force the Agency to become really thorough in their background checking, since if any ill-doings or shabby work or misinformation were discovered during the intermediate period, it would be the Agency's (as the intermediate owner) responsibility to correct them or else cover them from their own pocket; potential professional scammers trying to defraud the Agency may even spur the Agency into eventually becoming more skilled, cunning and resourceful than any professional scammer, hopefully making the Agency virtually unbeatable, or at least highly resilient;
## this intermediate ownership would act as a capital and goods resource which could -- after an initial budget funded by the Government -- partially, if not entirely, sustain the Agency in the long run; if needed, a portion of the property transfer tax could additionally be used to support the Agency.
After the expiration of the above intermediate period, the transaction would be ''irreversibly'' finalized, meaning that even if faults were to be discovered, the Agency would still warrant the transaction, covering/repairing any potential faults discovered. For instance: if a sold house was discovered to actually have been mortgaged, or a sold car was discovered to actually have been stolen, the house or the car would not be taken from the new owner, but, since the background check was performed by the Agency (and was obviously performed badly), it would be the Agency's burden to prosecute the car thief, or to force the mortgage taker to finish paying the mortgage; in extreme cases where this wasn't viable, the Agency would actively take over the //original// mortgage burden or reimburse the //original// owner of the car; the goods in question would remain the property of the //new// legitimate owners in all cases. The new owners of the goods would thus enjoy ''total and unalienable warranty for the goods acquired, at all times''.
As it is now, the system seems geared toward professional or semi-professional scammers or, in the very least, it decidedly deprivileges square deals and honest little citizens, actually //privileging// smart guys operating on the edge of legality!
!!!The Rule Of Law Is Actually The Rule Of The Bullies
Which would not be a problem in and of itself, if, semantically, the notion "the rule of law" didn't imply it was actually about justice //for all//, about playing by the rules, //the rules being the same for everybody//. It's somewhat similar to the old adage "exporting Democracy" which in fact boils down to "exporting (i.e. expanding) the free-market and the ultra-liberal capitalism". They are just ''carefully thought-out misnomers''.
Let me explain.
When Banks and Financiers actually bring the world economy to its knees as it just recently happened, do they get punished? Hardly. Instead, they get all the support the Government(s) can give them, including loads of small taxpayers' money to salvage them from bankruptcy. On the other hand, what happens to thousands, if not millions, of small, hard-working people? They never had anything to do with the financial balloon in the first place, so one should think they're far more entitled to financial incentives in this time of recession. But do they get any help? Nope. //They// get punished instead. The grocery prices go up. Their taxes go up. Their wages go down. And, eventually, they get fired, as if the financial breakdown was //their fault//! All this happens legally. According to the rule of law, precisely.
In the US representative system (which admittedly I don't know that well, so you should take my musings //cum grano salis//), corporations are legally allowed to lobby (in other legislations, this would be tantamount to corrupting), whereas individuals have ''no analogous instrument'' to directly influence political decisions. They do have other instruments, of course -- such as vote, demonstrations and so on -- but nothing //equivalent to lobbying as such//.
(More examples to come)
The Big Guys and Transnational Megacorporations are overprotected every step of the way. As if they weren't powerful enough, the Legislator(s) gave them any additional legal advantages they possibly could wish for, and then some. On the other hand, the small citizen, which has no power to begin with, is additionally deprivileged by the legal system every step of the way. Obviously, in the modern Western world, only impersonal entities, lifeless economic subjects are considered as worthy of salvaging, whereas living human beings are considered as being perfectly expendable.
We've let our world degenerate into a sick distopia in which we, the people, are nothing but nuisances, tolerated only in as much as we can still be of service to the lifeless ''things'' we once created to serve us.
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
major: 1, minor: 1, revision: 0,
date: new Date("mar 17, 2007"),
source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};
if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};
bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){
url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
}
return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
//Peer to peer// seems almost as big an issue to the media majors as //beer after beer// is to me. They've been trying to outlaw one of the best p2p protocols ever, bittorrent, from time immemorial. But I'm not here to write about that today (except implicitly). I'd like to jot down a couple of annotations on my encounter with arguably the best all-round p2p client in the FLOSS arena: mldonkey.
When I first switched from Windows, my biggest preoccupation was, will I find a p2p client comparable to the great Shareaza, and, first and foremost, will I be able to import my gigabytes upon gigabytes of half-finished downloads more or less seamlessly. I must admit that Shareaza, although a great client that supported gnutella, gnutella2, edonkey and (i think) bittorrent, would slow my Windows system down to a crawl. Downloading hundreds of warez and media was simply taking too much overhead.
Enter GNU/Linux. I soon discovered there were over a dozen bittorrent clients, but other networks would not be that easy to set up. Moreover, I'd probably have to run several clients in parallel, as they -- generally -- only support one, dedicated network each. So, for a time, I ran Ktorrent, which was a very good bittorrent client, then shifted to Deluge for a short while, and finally decided that, if I had to run a separate client for each p2p network, each of the clients would have to be extremely lightweight. On the other hand, it should still be wieldy enough, not a command-line utility in which you'd have to type in the -- sometimes extremely long and convoluted -- torrent """URLs""" by hand. So, for the time being, I settled for Transmission, a relatively lightweight client that's wieldy enough. Now, what about the gnutella and gnutella2 networks, and edonkey, and browser downloads (FTP and HTTP)? ... The problems just seemed to pile up.
In the end, I concocted a simple script to use as a HTTP downloader; HTTP and FTP downloads are being progressively integrated in recent browsers anyway. That leaves us with gnutella and gnutella2 which, in all truth, are all but extinct by now. But there is one emerging protocol that's quickly replacing them, the DC++ protocol. So even if I may do away with gnutella, I should still find a worthy client for DC++. And then there is the undying edonkey, of course. What can I do, where should I turn?
As always, when needed most, aptitude came to my rescue once again. I searched and searched and finally wound up with mldonkey. It promised a lot. Now, would it keep up to all those enticing promises?
Downloading the stock Lenny version of mldonkey was something of a disappointment. If I remember well, DC++ wasn't even compiled in. And soon I would discover that its bittorrent implementation lacked the upload/download ratio support. So, despite the fact that you uploaded as crazy, certain trackers would simply ban you after some time, because they perceived you as a total leecher who hasn't been uploading zilch.
In a word, I had to do something about it. What I did is, I downloaded the Squeeze version and it somehow worked on Lenny. DC++ support was compiled in, and bittorrent hopefully had upload/download ratio support (that remains to be ascertained yet). The thing 'just works'. What's best, mldonkey can be run as a service (daemon) at boot time, so you don't have to be logged in to run it; and, conversely, it doesn't stop running as soon as you log out (as my GTK Transmission does); actually, you can run mldonkey-server on a separate machine, located on the other side of the world, and still control it via its browser interface! Now, is that cool or what?
The only drawback I've come across so far relates to importing half-finished (or finished, for that matter) torrents. I have dozens, if not hundreds, of [[Jamendo]] albums in my Transmission directory, and would just ''love'' to seed them, but, alas, the procedure to import them into mldonkey would be too much hassle and manual labor. As opposed to some other clients, where you just copy the .torrent files and the torrents in the respective directories of the new client, which then "picks them up" by itself -- or by just a teeny-weeny itsy-bitsy help from yours truly -- mldonkey requires you to manually edit an .ini file, replacing ''hundreds'' of zeros (0) with twos (2). Now, while that may sound as something doable on a single-file basis, it's not quite so when you start multiplying that with the number of Jamendo torrents I have. Therefore, no thanks, for now. Maybe a dedicated script will emerge somewhere on the net, or maybe the great mldonkey developers will implement that feature in time. Or maybe I'll get jailed for downloading copyright-protected warez anyway. [[(Just kidding)|Modest Proposals]]. I'll wait and see. For the time being, I'm running Transmission to seed my Jamendo albums, with the huge drawback that it stops running whenever I log out or shut the laptop down. As opposed to that, mldonkey runs on my desktop box, 24/7/365; the only complaint I have so far is that it uses 10-20% of CPU, which is too much in my view. It used even more until I disabled the geo IP location "plugin" and "niced" its daemon script. I will try to share less files (currently a whopping 124GB) to hopefully further reduce CPU usage.
It should be noted that [[this wikipedia article|http://en.wikipedia.org/wiki/Comparison_of_BitTorrent_clients]], despite being fairly written, can't quite do justice to mldonkey; comparing single-protocol clients, in fact, you can't adequately assess the advantages of one single client covering several p2p networks, thus sparing you the trouble of running additional, separate """CPU-""" and """RAM-consuming""" clients for other p2p networks. And, as an added bonus, mldonkey seems to run on almost any operating system you throw at it!
To think about it -- had I known about the state of Wine support way back when, I might have stayed with Shareaza and never got to know all these magnificient p2p clients of the free software world.
!!!Update, February 2015
!!!!Some notes to self
How do you move downloaded files, and specifically torrents, out of the way (say you no longer want to share them, or, you must make room for new downloads, or, the original torrent/tracker has disappeared from its site, as happened to some debian 7.x ISOs which were getting a bit long in the tooth). Apparently, there is no "canonical" way of doing that from within {{{mldonkey}}}, or at least its http interface doesn't offer one. One mode of proceeding is simply to {{{mv}}} the downloaded file or directory from mldonkey's {{{./incoming}}} location to another location of your liking. Doing so won't confuse mldonkey in the least -- on the contrary, in a few minutes mldonkey will automatically move the corresponding {{{.torrent}}} file into its {{{./torrents/old}}} directory. By issuing {{{rm_old_torrents}}} you can then proceed to delete the {{{.torrent}}} files in {{{./torrents/old}}} if you should so desire, thus purging the last vestiges of your download from {{{mldonkey}}}. As a sidenote: once you move a download out of the way, and {{{mldonkey}}} proceeds to move its corresponding {{{.torrent}}} into {{{./torrents/old}}}, the {{{.torrent}}} will remain there even if you should later decide to {{{mv}}} or {{{cp}}} the file backo into {{{./incoming}}}. If you would like {{{mldonkey}}} to pick it up and restart seeding it, you could try {{{mv}}}ing its {{{.torrent}}} from {{{./torrents/old}}} to {{{.torrents/seeded}}} or something like that.
Another approach for moving your downloads out of the way I've come across on the forums is to remove the {{{.torrent}}} file (or move it manually to {{{./torrents/old}}}). That way, {{{mldonkey}}} will stop seeding the related download even though it remains in its {{{incoming}}} location.
[[/home]]
[[Laptops In Heat]]
[[Silence The Roaring Beast]]
[[Broadcom Blues]]
[[TP-LINK TL-WR741ND]]
[[WD20EARS]]
----
[[/srv/www]]
[[/usr/games]]
[[MLDonkey]]
[[That Sneaky Iceweasel]]
[[Jamendo]]
[[Klone Dat Disk!]]
[[Rsync As A Synchronizer]]
[[Squid As A Web Accelerator]]
[[Migrating From NFS To SSH]]
----
[[Why Not Windows]]
[[Why Not Systemd]]
[[Why GNU/Linux]]
[[Why Debian]]
[[Why Less (Precise) Is More]]
[[Why Major Overhauls Suck]]
[[Freenternet, Anyone?]]
[[For A Better GNU/Linux]]
[[Operating Systems]]
[[Software]]
[[Thanks]]
----
[[/dev/random]]
[[Modest Proposals]]
[['Global Conspiracy' Debunked]]
[[The Under-Lying Mechanics]]
[[Can We Still Jump Ship?]]
[[Outsourcing Atrocity]]
[[The Red Queen]]
[[I Mourn For Thee, Slovenia]]
----
[[The Law Of Fives|http://en.wikipedia.org/wiki/Discordianism#Law_of_Fives]]
[[5 Must-Have Firefox Add-ons]]
[[5 Utilities I Can't Do Without]]
[[5 Life-Changing Sys Calls]]
[[5 Most Useful Web Services]]
[[5 Ass Mnemonics 4 Grandma]]
[[5 Must-See Charitable Sites]]
[[5 Worst Computer Mistakes]]
[[5 Unabashed Bashisms]]
[[5 Unbelievable Benchmarks]]
[[5 Best Nanny Proggies]]
----
[[My Computer]]
[[My Bookmarks]]
[[My Pasteboard]]
[[My World By Numbers]]
[[My World By Words]]
[[My Pledges]]
----
<<search>>
----
[img[CounterSite|http://www.w3counter.com/tracker.php?id=45416][http://www.w3counter.com/]]
[img[CounterSight|http://www3.clustrmaps.com/stats/maps-no_clusters/bufferoverflow.tiddlyspot.com-thumb.jpg][http://www3.clustrmaps.com/user/aad9f617]]
<!--{{{-->
<meta name="google-site-verification" content="_dald-MjVGVhSZn3mxuHRpdjmwX4bloEmYtPfMxDgCg" />
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
There's probably a pretty common path any ex Windows™ user follows after migrating to Free software. If you are one, you probably know the drill:
# dual-booting with Windows™;
# getting rid of dual-boot, and setting up a Windows™ virtual machine instead;
# doing away with the Windows™ virtual machine and dedicating a noisy, ugly surplus machine to some oldish Windows™ installation instead, just so you can access some "legacy" files through Samba;
# junking Windows™ altogether, and setting up all your machines with a Free OS, replacing Samba with NFS in the process;
# dumping NFS, deemed too insecure, for ssh, scp, and eventually sshfs;
#--dumping GNU/Linux and reinstalling Windows™.--
Now, some of the above steps may be modified, or swapped, or skipped altogether, but this is the general procedure.
Thus, for me, the time has come to get rid of NFS networking, "deemed too insecure", and migrate to sshfs. Well, ''as almost everything in GNU/Linux, this is not a trivial task''. After all, if it were, where would all the fun be? (And, as you must surely know, working with GNU/Linux ''is'' fun!) In defence of GNU/Linux, however, I must say that the other steps enumerated above were extremely painless to me, and accomplished over a fairly short timespan. Debian was extremely user-friendly to me, and if you need hand-holding, there are online resources in abundance on most any topic. Samba, SSH, NFS, Squid and other packages I needed were either already installed and configured by default, or virtually just one {{{aptitude install <package name>}}} away, and with self-explaining configuration files that were a joy to tweak. Not so with {{{sshfs}}}. Admittedly, the package is a bit complex. For one, it works in userspace, with all the related ownership/permission quirks that come with that. For two, I wanted it to work with the {{{autofs}}} automounting daemon. Well, I've learned that you shouldn't try to accomplish two interrelated tasks at once -- such as setting up {{{sshfs}}} and {{{autofs}}} unless you're quite GNU/Linux savvy. Which I'm not. In addition, I wanted my {{{autofs}}} to work without my intervention, just with a passphrase-less rsa key. Well, that all piled up to make the whole task just a tad too complex for me to handle it in parallel. I should've broken down the task in three separate, relatively simple tasks, I know that. Now.
!Legalize It!
I know nobody will agree with me on this but ... I was thinking ... being a convert from a proprietary OS ... why not make my passage to free software just a first step of a broader, more general liberating process ... say, now that I have no need to download cracks and warez anymore ... may be a good time to stop downloading copyrighted music too? There's plenty -- and I mean //plenty// -- of [[free music|Jamendo]] on the Internet actually //begging// us to be downloaded ... young, fresh, unadulterated music ... it might even help me broaden my musical horizons a bit ... yup, and stop downloading copyrighted movies too ... shouldn't be hard, since I never did that anyway: I have no interest whatsoever in current Hollywood crap ... I mostly download classics which are in the public domain now ... and for those rare occasions when I just //have to// watch something newer, I leave my TV recorder on overnight, recording from, say, MGM or """TV1000""" or the """SciFi""" channel, staying legal all the way ... yeah, and while we're at it ... why not hop over to Gutenberg's to get some good reading too. Legally again. Books must be at least 100 years old to be any good anyway.
Hmm ... actually, this "staying legal" thing ain't that hard at all, now that I think of it. Makes me wonder why the heck I let them impose their [[DRMs|http://www.eff.org/wp/digital-rights-management-failure-developed-world-danger-developing-world]] on me when there's so much good, free, legal material just a mouse click away. Must have been really --stupid-- blind, I guess.
!Consumerism Is A Right!
As such, it should be regulated as sternly as Vote, Military Service, Driving License, or any other rights you acquire with age. Accordingly, non-adults should not be exposed to targeted commercials if their power of purchasing equals zero (and no, just as for driving, there is no such thing as "parents' power of attorney"). If we aren't allowed to drive, or marry, or carry guns, or join the military, or apply for a job before we meet certain requirements (which are in most systems related to age/adulthood), the same should go for the power of purchasing. Exposing financially immature children to commercials should be regarded as child abuse, similar to exposing them to porn, violence and gore. As for the classic counter-argument that "commercials for children are actually aimed at their parents" (who admittedly do have power of purchasing): if that is so, then commercials should be aired between 10:00 PM and 7:00 AM, preferably between 1:00 AM and 5:00 AM.
!Sobre La Venta Del Mundo
In some legislations, corporate funding of political elections has become an ever greater problem for democracy. For example, if you look at some data on various U.S. election processes, you may learn that:
<<<
A study by the Massachusetts Money and Politics Project tells the story of the 1995-96 election cycle for the state legislature:
*Four out of five races were uncontested.
*Most campaign funds were given to incumbents who faced no opponents in either the primary or the general election.
*In races that were contested, winners generally spent twice as much as their opponents.
*Just 3 in 10 challengers raised enough money to run a competitive race.
*The candidate who spent the most money won 9 out of 10 legislative races (as well as all statewide races).
*Less than half of one percent of all contributors gave 74 percent of all campaign gifts.
*More than one-third of all cash gifts, much of it given to incumbents by lobbyists, was given in non-election years.
*Big donations came from heavily regulated industries like health care and insurance. During this period of giving, legislators put aside popular legislation -- opposed only by insurers and drug makers -- that would have reduced auto insurance premiums and lowered the cost of prescription drugs.
http://www.pushhamburger.com/feb04.htm
<<<
There are many disparate proposals for solving similar problems, so let me propose a potential solution too (actually, it's more of a seminal idea than a full-fledged proposal):
Let politicians and parties organize fundraisers at will, let corporations and private citizens and interest groups alike donate to parties and campaigns, let lobbyists take as much cash as they like -- provided that ''all donations are then channeled to a common federal fund, specifically established for financing all candidates, all parties, all campaigns, all lobbyists equally''. Since there would be politicians and parties reluctant to part with the money, a deterrent should be put in place: say, a law to the effect that if you don't transfer the donations received to this common fund, you can't be registered as a political party or a lobbyist, can't run for office etc. -- and, as such, are no longer entitled to receive or keep donations, but must give the donations you received back to the respective donors.
In the least, such legislation would achieve the following essential democratic goals:
#Politicians wouldn't be forced to lose so much of their time raising funds. They could finally devote themselves to improving the country full time. Isn't that precisely what efficient politics is about?
#Donors wouldn't have to worry about keeping two irons in the fire anymore (supporting both Democrats and Republicans in order to retain influence no matter who wins). They would just donate and never look back; the common fund would take it from there, taking care that the money got distributed to all political options alike. Isn't that exactly what "equal opportunities" is about?
#It would enable many more people to run for office, vastly increasing the choice of available candidates and of political options. And isn't that precisely what democracy is all about?
#Instead of enhancing the odds for only one candidate/party in a campaign, every donation would enhance the odds of dozens, if not hundreds, of candidates/parties. Now, isn't that exactly what democracy is all about?
!The Palestinian Problem
Given that the British are responsible for how the Israeli state was established, robbing the Palestinians of a place to live, it would be only fair that they gave a portion of //their// land -- Scotland would be fine, or maybe Wales -- to the Palestinians and thus end the Middle East hostilities once and for all.
!Power to Recall Politicians
The voters should simply have (I won't say "be given" because it's ''implied in the right to vote'' as such, but somebody at some point pervertedly separated the right to vote from the related right to revoke your vote) the right to recall any elected official if they think he's not keeping up his electoral promises. To that effect, some sort of (perhaps electronic/virtual/internet) ballot boxes should be kept in every city, into which every voter could drop his revoke tag for the official in question. The revoke tag would be a specific part of your ballot card; you'd tear the revoke tag from the ballot card prior to dropping the card into the ballot box, and take the revoke tag home (it could have two purposes, as a "certificate of exerted right to vote" and as a "revoke tag" to be used later if the need should arise). When the percentage of votes thusly drops below a certain level, the official is taken out of office and a new election takes place. From a practical point of view, electronic voting should most easily yield to implementing this; you'd simply log in with your personal voter certificate, and revoke/cancel the vote you've given to the official in power. The computer would then automatically re-calculate the current percentage of voters still supporting the official in power, and notify the media of the result. You, as a voter, would also have immediate insight into the numbers at the web site.
!It Would Be Easy To Control Car Speed. If We REALLY Wanted To
It would be rather cheap to implement a system of sensors in public roads (preferably beside the road, perhaps mounted into the security poles or guard rails with which many European roads are equipped already), which could then communicate with a sensor in every car and motor-cycle engine and limit its speed. If this hasn't been done already, the reason is certainly not technological, and most certainly not cost-related.
!Replacing """PayPal"""
I think it would be technologically feasible (although logistically a nightmare) to establish a GSM system of payment in which you could simply, by typing a numerical code into your GSM phone, transfer small amounts of money from your pre-paid GSM account to another person's GSM account. This would be almost ideal for executing micro-payments to various web services and lone programmers or artists from which we daily download software utilities, music, or video art. I, for one, would gladly transfer a € or two to these hard-working individuals, whereas opening a """PayPal""" account is simply too much of a hassle for the non-Internet-savvy majority, or anyone using such micro-payments only sporadically, once or twice per year, or even per lifetime. Why would this be a logistical nightmare? Because you'd have to make all 9999999999 GSM operators in the world adhere to the standard in order for the system to really have any sense.
!"Police" Records For Impersonal Entities And Public Officials
Just as for registered pedophiles, and actually even more so, a sort of publicly-accessible database of impersonal entities and public officials should be kept. Political Parties, Corporations, Foundations, Banks, Insurance Companies, Stores, Restaurants, Sports Clubs, Schools, Tourist Offices, Political Figures, Government Agencies, The Military, The Police, The Ministry Of Education and the like should all have their records made public and easily accessible, in order to make it possible for the general public to make ''informed'' choices about who to support, who to vote for, whose products and services to choose, who to give credit to. Such records should contain things such as:
*humanitarian and charity work done by the entity or person;
*scandals they were involved in;
*their court convictions and suits pending;
*their statements, pledges, slogans and verbal promises (and whether they were/are kept);
*any ill-doings they were involved in (such as sponsoring state killings of union workers in Colombia, exploiting child work, selling arms, polluting local communities and the like);
*in case of physical persons, a track of their past employers and (political and other) "connections" and "lineages" should be made available;
*all and any other particulars that may be of interest to the general public in forming their informed choices with regard to the entity or person in question.
Some of the above information is readily available already, the problem is:
#not all of it is;
#it's not kept in one central place, and
#it's not systematized into files or easy-to-consult-and-understand "personal forms".
!"Mental" Property: A Rule Of Thumb
Well, I may be beating a dead horse here (meaning I may be stating something overly obvious, or already widely known), but, anyhow, just for the record, here it is anyway. It relates to the known fear of those opposing software patents, namely the fear that some patent troll may jump onto an open-source method/algorithm and patent it, pushing the original inventor not only out of business, but ''effectively preventing them from using their own discovery any longer''! It is a very real fear, and an extremely moronic situation we've allowed to arise. Well, if our patent law is to be anywhere near "fair" -- I'm not holding my breath, though, for, as laws go, that would be an all-time first -- then the following should apply:
# inventions/discoveries priorly used, provably used, by somebody -- though not patented -- shouldn't be patentable by third persons, but only by the original inventor/discoverer, and only if (s)he should choose so. After all, proven prior use -- unless only known by the single, isolated individual who arrived at it -- constitutes knowledge ''known in the field'' and in many cases knowledge that, in its inventor's view at least, given that (s)he never filed a patent for it, could have been ''arrived at by any person skilled in the art'' -- which is what "prior art" is all about. In this regard, even marginal prior use, such as an one-line patch submitted to some obscure subroutine in some obscure open-source software, if documented in an online bug report or a {{{svn}}}/{{{git}}} repository, or an inventive concept expounded on a blackboard to a smallish audience of experts (which may be considered witnesses), //et similia//, should constitute "knowledge known in the field" and, accordingly, "prior art" for all intents and purposes;
# if, in a particular case, the Patent Office should establish that ''the particular prior use doesn't constitute prior art'' (in other words, it should grant a patent to a third person on the grounds that the priorly used invention/discovery and the invention/discovery seeking a patent grant are "not the same", but are two distinct, separate inventions/discoveries which don't mutually overlap/interfere) -- if, as stated, the invention/discovery priorly used doesn't constitute prior art -- then ''the reverse must also be true'', namely: the granting of a patent must in no way influence/interfere with the continued use of the previously used invention/discovery by the primary user, and potentially by the industry, or the public at large. In other words: if the two inventions/discoveries are distinct, then the patent filed has no job interfering with the continued unpatented usage of the unpatented prior invention/discovery, just as the latter has no job interfering with the patent filed;
# this approach is in no way limited in scope, or to any particular field of endeavor -- on the contrary, it should constitute a general rule of thumb for testing the patentability of ''any'' invention/discovery. Just as a non-limiting example: it would make the field of genetic manipulation fairer -- and saner -- too. A patented seed has no job interfering with me seeding old, unpatented natural seeds, and if cross-pollination should take place (as it is eventually bound to), the ''patented-seed owner'' is to be held liable for polluting my unadulterated seeds, ''and not vice-versa''.
If you think about it for a moment, it's the only sane approach there is.
The patent law as we know it has patented itself into a corner.
<<<.viewer {-moz-column-width:30em; -moz-column-gap:2em; padding-top:
0em;}
div[tags~="singlecolumn"] .viewer, div[tags~="systemConfig"] .viewer,
div[tags~="quickedit"] .viewer, div[tags~="css"] .viewer,
div[tags~="lyrics"] .viewer, div[tags~="l"] .viewer,
div[tags~="tablenoborder"] .viewer {-moz-column-count:1;padding-top:
0em;}
>>>
''~BufferOverflow'' is actually a [[single-page reusable non-linear personal web notebook|http://tiddlywiki.com]] hosted at http://tiddlyspot.com/.
!!!All Your Asses Are Belong To US
[[George Draffan, The Corporate Consensus|http://www.endgame.org/corpcon1.html]] is an insightful, quite detailed but still manageable horror story of the actual powers that be and the mechanisms underneath. A chilling account of who owns us. If you read only one document in your life, read this, and learn it by memory if need be; in the not-so-distant future, when others will be at a loss as to what's happening, you will have been forewarned (and prepared to save your ass, if you're smart).
[[FraVia|Bookmarks For Klistvud]] is the hands-on compendium and complement to the above. It's the web site -- or what still remains of its various incarnations and mirrors -- of the late reverse-engineering and searchlores guru. If Draffan explains the theoretical background, """FraVia""" gives you practical guerilla tools which will enable you to think independently in this day and age of internet and mass-media, when every single piece of information must be reverse-engineered first (and only then, if at all, given credit). More than a web site, it's a breathtaking adventure.
As a homage to """FraVia""" and in line with his legacy, no clickable link is provided; search, and you shall be found.
!!!Debian:
[[The Universal Operating System|http://www.debian.org]]
[[Debian Help|http://www.debianhelp.org/]]
[[Debian Mailing Lists|http://www.debianhelp.org/forum/78/]]
!!!GNU/Linux:
[[Gerald Holmes|http://geraldholmes.freeyellow.com/]]
[[Why Windows Is Better|http://unixsucks.com/resources.aspx]]
[[Why Windows Server Is Better|http://www.microsoft.com/windowsserver/compare/default.mspx]]
[[Why Windows Server Is Better Than Red Hat|http://www.microsoft.com/windowsserver/compare/windows-server-vs-red-hat-linux.mspx]]
[[Why Linux Sux|http://linuxhaters.blogspot.com/]]
[[The Longest Lin*x Blogroll (300 Sheets!)|http://gulfmanufacturing.com/eng/index.php?main_page=popup_image&pID=35]]
!!!Digital Restrictions Management:
[[CRAP|http://wiki.openrightsgroup.org/wiki/Digital_Rights_Management#Users.27_Rights_Versus_Content_Providers.27_Rights]]
http://questioncopyright.org/
!!!Pr0n:
[[The Pronstar With No Preservatives|http://www.bimed.si/images2/85_1.jpg]]
!!!Corporate Ethics:
http://en.wikipedia.org/wiki/Chisso
http://en.wikipedia.org/wiki/Minamata_disease
http://en.wikipedia.org/wiki/Amoco_Cadiz
http://it.wikinews.org/wiki/Seveso:_trent%27anni_fa_il_disastro_della_diossina
http://en.wikipedia.org/wiki/Bhopal_disaster
I am currently running Debian Lenny on both our computers, an
*//HP Compaq 6715b// laptop, with a dual-core 2GHz Turion processor, an ATI 1200 on-board graphics card, and various additional devices, such as Broadcom wireless, bluetooth, ethernet, and the like,
and an oldish
*//Pentium III 800EB// I built from various spare parts (total cost: 10€ for a """Via VH6T""" motherboard w/ processor, everything else was either donated, found lying around, swapped for other equipment -- the case was gotten in exchange for a used VCR -- or rummaged from older, legacy boxes). I'm rather proud of this rig, since I built it myself and even managed to make a Belkin wireless card work in Lenny (with ndiswrapper)
The desktop has very little provisions for power management, although there is an ACPI setting you can activate in the BIOS, whereas the laptop has almost every power management feature you could wish for. Despite that, the desktop box, which has no thermal management whatsoever, runs below 40°C as a rule, whereas the laptop runs at about 55°C, with peaks as high as 80 or 90°C.
!HP Compaq 6715b
{{{lspci}}}:
{{{
00:00.0 Host bridge: ATI Technologies Inc RS690 Host Bridge
00:01.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (Internal gfx)
00:04.0 PCI bridge: ATI Technologies Inc Device 7914
00:05.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 1)
00:06.0 PCI bridge: ATI Technologies Inc RS690 PCI to PCI Bridge (PCI Express Port 2)
00:12.0 SATA controller: ATI Technologies Inc SB600 Non-Raid-5 SATA
00:13.0 USB Controller: ATI Technologies Inc SB600 USB (OHCI0)
00:13.1 USB Controller: ATI Technologies Inc SB600 USB (OHCI1)
00:13.2 USB Controller: ATI Technologies Inc SB600 USB (OHCI2)
00:13.3 USB Controller: ATI Technologies Inc SB600 USB (OHCI3)
00:13.4 USB Controller: ATI Technologies Inc SB600 USB (OHCI4)
00:13.5 USB Controller: ATI Technologies Inc SB600 USB Controller (EHCI)
00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 14)
00:14.1 IDE interface: ATI Technologies Inc SB600 IDE
00:14.2 Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
00:14.3 ISA bridge: ATI Technologies Inc SB600 PCI to LPC Bridge
00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:05.0 VGA compatible controller: ATI Technologies Inc RS690M [Radeon X1200 Series]
02:04.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b6)
10:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5787M Gigabit Ethernet PCI Express (rev 02)
30:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)
}}}
{{{lsusb}}}:
{{{
Bus 006 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 03f0:171d Hewlett-Packard Wireless (Bluetooth + WLAN) Interface [Integrated Module]
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
}}}
But, as I said elsewhere, I've disabled some of the inbuilt devices in BIOS since I don't need them and I hate them drawing current needlessly (the fingerprint reader and Smart Card come to mind).
!Via """VH6T""" w/ Pentium III 800EB
{{{lspci}}}:
{{{
00:00.0 Host bridge: VIA Technologies, Inc. VT82C693A/694x [Apollo PRO133x] (rev c4)
00:01.0 PCI bridge: VIA Technologies, Inc. VT82C598/694x [Apollo MVP3/Pro133x AGP]
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
00:07.4 Host bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)
00:0d.0 CardBus bridge: Ricoh Co Ltd RL5c475 (rev 81)
01:00.0 VGA compatible controller: nVidia Corporation NV11DDR [GeForce2 MX200] (rev b2)
02:00.0 Ethernet controller: Airgo Networks Inc AGN100 802.11 a/b/g True MIMO Wireless Card (rev 01)
}}}
{{{lsusb}}}:
{{{
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 004: ID 044f:b30a ThrustMaster, Inc.
Bus 001 Device 003: ID 05e3:0606 Genesys Logic, Inc. USB 2.0 Hub / D-Link DUB-H4 USB 2.0 Hub
Bus 001 Device 002: ID 093a:2468 Pixart Imaging, Inc. Cammaestro 2.5DU/X-EYE/Orite SC-120/ICGear TravelCam/Easy Snap Snake Eye WebCam
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
}}}
!Intel """D915GAG"""
!!!Update, May 2010
Well, the kids finally got their way. Tired of their perennial complaints, I eventually replaced the old Via motherboard with a newer one, an Intel """D915GAG""" with a Pentium 4 HT @ 3 Ghz. Although it has only 512 MB of RAM and a slowish Intel on-board graphics card, the stationary box is much snappier now. I am just a bit disappointed because I managed to fry one of the fan headers (controllers) on the mobo in the process. Anyway, I also ditched the Belkin PCMCIA wireless card, partly because of Belkin's notorious ignorant stance toward GNU/Linux. I've also committed myself to never ever buying another Belkin product in my life. Moreover, while browsing the Belkin site, I noticed that they don't even support the wireless card in Windows anymore (besides XP, that is)! So much for their support policy. As an added benefit, no ndiswrapper needs to be running on my box and tainting the kernel!!! Which also means: no endless rows of strange warnings from ndiswrapper in dmesg, and //hibernation now finally works//!
Just a few sparse notes about setting up the new mobo:
I seized the opportunity to also complement the on-board NIC with an additional PCI ethernet card, joining the both into a bridge. We don't have wired ethernet, only wireless in our apartment, the wireless router being placed in the apartment underneath us and therefore not readily accessible. Until now, I managed with the above-mentioned Belkin PCMCIA wireless, plugged into a """PCMCIA-to-PCI""" adapter card, and, connected to the printer (an ethernet-equipped HP multi-purpose jerk-off -- oh, sorry, I meant inkjet), an """ASUS WL-330gE""" mini wireless repeater/bridge/gateway/AP/hotspot configured as a wireless adapter. So, I ditched the PCMCIA wireless, and re-configured the ASUS """WL-330gE""" as a repeater. I connected its only ethernet port to one of the two ethernet ports on the Debian box, and connected the other Debian ethernet port to the printer. The bridge-utils are a grrreat piece of software!
When I assembled the box, a strange quirk started appearing: at random times, the keyboard would start spurting out endless lines of a random letter, once it was a "j", then a tab, then some other random characted. Given that the mobo I had purchased was an used one, I immediately suspected it. Well, nothing could be further from the truth. As it turned out, the wireless keyboard suffered heavy interference from the adjacent ASUS """WL-330gE""" repeater. So, from now on, never again trust any assertions that wireless keyboard/mice can not interfere with 802.11 wireless equipment! Which is noteworthy, because if you search the Net, you'll see it's a recurring cyber legend (or aptly injected vendor spin, you choose). Well, it's just a legend, worthy of a Mythbusters episode on its own. Yes, they do work on totally different wave bands, but no, that doesn't mean they can't interfere! Anyway, I solved the problem by placing the two offending pieces of equipment further apart from each other.
Another interesting point: the default Debian install forgot to install some "required" modules, such as modules to detect the mobo thermal sensors, and modules to enable frequency scaling/governors. After searching all over the Net, I installed and modprobed them manually; by the way, the correct CPU scaling driver for this Pentium 4 is p4-clockmod, not acpi-cpufreq. Well, much to my dismay, the "ondemand" governor works ''noticeably'' worse than on my laptop. While on the laptop the CPU frequency jumps up as soon as required and thus you never even notice you're not using the "performance" governor as opposed to the "ondemand" one, on the stationary rig it takes quite a while to reach the higher frequency, thus making mouse clicks responsiveness, tab switching in Iceweasel, and other GUI stuff ''noticeably'' laggy. So all that work was more or less for nothing -- eventually I had to revert to using the good old "performance" governor. Another funny thing is, the "ondemand" governor -- although running my CPU at 375 MHz instead of the nominal 3 GHz most of the time -- never managed to [[decrease the CPU working temperature|Silence The Roaring Beast]] not as much as by a single degree Celsius! Again, a ''huge'' difference from my laptop, where using the "ondemand" governor yields several degrees of benefit (in terms of cooler operation). So, the new rig now runs at about 50 degrees Celsius (CPU temperature), with the two hard drives in their forties. For the time being, I only use the "ondemand" governor from 23:00 to 8:00 (via crontab). The rest of the day, it's "performance" all the way. I didn't buy a better mobo just to get the old sluggish "user experience" again.
By the way, the new addition set me back 50€, and it wasn't just a mobo: I bought an entire PC because the prices of used equipment in Slovenia are what they are -- a mobo costs roughly as much as a comparable PC //including the mobo//. So besides the mobo I now also have an 80 GB SATA WD drive and an ugly, badly ventilated micro-ATX Wearness chassis, with a rather quiet PSU I might use some day, all of which -- apart from the hard drive -- will go in the attic for the time being.
{{{lspci}}}:
{{{
00:00.0 Host bridge: Intel Corporation 82915G/P/GV/GL/PL/910GL Memory Controller Hub (rev 04)
00:01.0 PCI bridge: Intel Corporation 82915G/P/GV/GL/PL/910GL PCI Express Root Port (rev 04)
00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Integrated Graphics Controller (rev 04)
00:02.1 Display controller: Intel Corporation 82915G Integrated Graphics Controller (rev 04)
00:1b.0 Audio device: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 03)
00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 03)
00:1c.3 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (rev 03)
00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d3)
00:1f.0 ISA bridge: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (rev 03)
00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
00:1f.2 IDE interface: Intel Corporation 82801FB/FW (ICH6/ICH6W) SATA Controller (rev 03)
00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
06:08.0 Ethernet controller: Intel Corporation 82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller (rev 01)
}}}
{{{lsusb}}}:
{{{
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 004: ID 044f:b30a ThrustMaster, Inc.
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 093a:2468 Pixart Imaging, Inc. Cammaestro 2.5DU/X-EYE/Orite SC-120/ICGear TravelCam/Easy Snap Snake Eye Webcam
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
}}}
By the way, the only thing needed for making the webcam work was to install gsane through my favorite package manager. It's ''real sluggish'', though!
<<<
The interpretation is mainly a point of view, whose value lies in its fertility, in its power to throw light upon the historical material, to lead us to find new material, and to help us to rationalize and to unify it.
Karl Popper, //The Open Society And Its Enemies//, p. 174
<<<
<<<
The closed society itself does not know this problem. At least to its ruling members, slavery, caste, and class rule are ‘natural’ in the sense of being unquestionable. But with the breakdown of the closed society, this certainty disappears, and with it all feeling of security.
Karl Popper, //The Open Society And Its Enemies//, p. 179-180
<<<
<<<
this treacherous attitude had not changed when Aristotle wrote his Politics, more than a century later. We hear there about an oligarchic oath, which, Aristotle said, ‘is now in vogue’. This is how it runs: ‘I promise to be an enemy of the people, and to do my best to give them bad advice!’13
Karl Popper, //The Open Society And Its Enemies//, p. 183
<<<
<<<
Our constitution does not copy the laws of neighbouring states; we are rather a pattern to others than imitators ourselves. Its administration favours the many instead of the few; this is why it is called a democracy. If we look to the laws, they afford equal justice to all in their private differences; if no social standing, advancement in public life falls to reputation for capacity, class considerations not being allowed to interfere with merit; nor again does poverty bar the way, if a man is able to serve the state, he is not hindered by the obscurity of his condition.
Perikles, in:
[[Thucydides,2,37|http://en.wikisource.org/wiki/History_of_the_Peloponnesian_War/Book_2]]
<<<
<<<
A nation adopting this policy is a novelty in the world; so much so, it would appear, that many are unable to believe it when they see it. By one of the practical paradoxes which often meet us in human affairs, it is this nation which finds itself, in respect of its foreign policy, held up to obloquy as the type of egoism and selfishness; as a nation which thinks of nothing but of out-witting and out-generalling its neighbours. An enemy, or a self-fancied rival who had been distanced in the race, might be conceived to give vent to such an accusation in a moment of ill-temper. But that it should be accepted by lookers-on, and should pass into a popular doctrine, is enough to surprise even those who have best sounded the depths of human prejudice.
John Stuart Mill, [[A Few Words on Non-Intervention|http://oll.libertyfund.org/?option=com_staticxt&staticfile=show.php%3Ftitle=255&chapter=21666&layout=html&Itemid=27]]
<<<
<<<
If we define "rogue state" in terms of any principle, such as violation of international law, or aggression, or atrocities, or human rights violations, the United States certainly qualifies, as you would expect of the most powerful State in the world. Just as Britain did. Just as France did. And intellectuals in every one of these empires wrote the same kind of garbage that you have quoted from Ignatieff. So France was carrying out a "civilizing mission" when the minister of war was saying they were going to have to exterminate the natives in Algeria. Even the Nazis used this rhetoric. You go to the absolute depths of depravity, and you'll find the same sentiments expressed. When the Japanese fascists were conquering China and carrying out huge atrocities like the Nanking Massacre, the rhetoric behind it brings tears to your eyes. They were creating an "earthly paradise" in which the peoples of Asia would work together. Japan would protect them from the Communist "bandits" and would sacrifice itself for their benefit so they would all have peace and prosperity. Again, I'm a little surprised that some editor at the New York Times or a distinguished professor at Harvard doesn't see that it's a little odd to just be repeating what's been said over and over again by the worst monsters. Why is it different now?
Noam Chomsky, //Imperial Ambitions//, p. 61-62
<<<
<<<
Telford Taylor, who was chief prosecutor at the Nuremberg war crimes tribunal, pointed out that the tribunal was prosecuting post facto crimes, that is, crimes that were not on the books at the time they occurred.2 The tribunal had to decide what would be considered a war crime, and they made the operational definition of a war crime anything the enemy did that the Allies didn't do. This was explicit—and it explains why, for example, the devastating Allied bombings of Tokyo, Dresden, and other urban civilian centers were not considered war crimes. The U.S. and British air forces did much more bombing of urban civilian centers than did the Germans. They aimed mainly at working-class and poor civilian areas. But since the Allies did it much more than the Axis, bombing urban centers was removed from the category of war crimes. That same principle showed up in individual testimonies as well. A German admiral—Karl Doenitz, the submarine commander—brought as a defense witness an American submarine commander, Nimitz, who testified that Americans had done the things that Doenitz was charged with. He was exonerated.
Noam Chomsky, //Imperial Ambitions//, p. 66-67
<<<
<<<
You recall the reaction when for about thirty seconds it looked as though the special tribunal for Yugoslavia might investigate NATO crimes. Canadian and British lawyers urged the tribunal to look into NATO war crimes—which of
course took place—and for a brief moment it looked as if it might. But the United States quickly warned the tribunal that it had better not pursue any U.S. or allied crimes. Crimes are something others do, not something we do.
Noam Chomsky, //Imperial Ambitions//, p. 68
<<<
<<<
These people need a realistic picture of the world. They own it, they control it, they dominate it, they have to make decisions in it, so they'd better understand something about it. That's why, in my opinion, the business press tends to have better reporting than the other national press. Quite often you find stories in the Wall Street Journal or the Financial Times going into considerable depth in exposing corruption—not just robbery but the way the system undermines fundamental human needs. You are much more likely to read these stories in the Wall Street Journal than in the so-called liberal press, because that constituency has to have a reasonably realistic conception of the world. There is a doctrinal slant to what's reported to make sure readers see the facts in the right way, but the basic facts are there.
Furthermore, journalists generally have professional integrity. Typically they are honest, serious professionals who want to do their job properly. None of that changes the fact that most of them reflexively perceive the world through a particular prism that happens to be supportive of concentrated power.
Noam Chomsky, //Imperial Ambitions//, p. 149-150
<<<
<<<
Well, the terminology we use is heavily ideologically laden, always. Pick your term: if it's a term that has any significance whatsoever-like, not "and" or "or"-it typically has two meanings, a dictionary meaning and a meaning
that's used for ideological warfare. So, "terrorism" is only what other people do. What's called "Communism" is supposed to be "the far left": in my view, it's the far right, basically indistinguishable from fascism. These guys
that everybody calls "conservative," any conservative would turn over in their grave at the sight of them-they're extreme statists, they're not "conservative" in any traditional meaning of the word. "Special interests" means labor, women, blacks, the poor, the elderly, the young-in other words, the general population. There's only one sector of the population that doesn't ever get mentioned as a "special interest," and that's corporations, and business in general-because they're the "national interest." Or take "defense": I have never heard of a state that admits it's carrying out an
aggressive act, they're always engaged in "defense," no matter what they're doing-maybe "preemptive defense" or something.
Or look at the major theme of modern American history, "containment" - as in, "the United States is containing Soviet expansionism." Unless you accept that framework of discussion when talking about international affairs in the modern period, you are just not a part of accepted discourse here: everybody has to begin by assuming that for the last half century the United States has been "containing" the Soviet Union.
Well, the rhetoric of "containment" begs all questions-once you've accepted the rhetoric of "containment," it really doesn't matter what you say, you've already given up everything. Because the fundamental question is, is
it true? Has the United States been "containing" the Soviet Union? Well, you know, on the surface it looks a little odd. I mean, maybe you think the Soviet Union is the worst place in history, but they're conservative whatever rotten things they've done, they've been inside the Soviet Union and right around its borders, in Eastern Europe and Afghanistan and so on.
They never do anything anywhere else. They don't have troops stationed anywhere else. They don't have intervention forces positioned all over the world like we do.1 So what does it mean to say we're "containing" them?
We've been talking about the media and dumping on them, so why not turn to scholarship? Diplomatic history's a big field, people win big prizes, get fancy professorships. Well, if you look at diplomatic history, it too is in the framework of "containment," even the so-called dissidents. I mean, everybody has to accept the premise of "containment," or you simply will not have an opportunity to proceed in these fields. And in the footnotes of the professional literature on containment, often there are some revealing things said.
Noam Chomsky, //Understanding Power//
<<<
<<<
The population can keep voting, we'll give them all the business, they'll have electoral campaigns, all the hoopla, two candidates, eight candidates-but the people they're voting for will then just be expected to read off a teleprompter and they won't be expected to know anything except what somebody tells them, and maybe not even that.
Noam Chomsky, //Understanding Power//
<<<
<<<
Yeah, population control is another issue where it doesn't matter if you do it, everybody has to do it. It's like traffic: I mean, you can't make driving a car survivable by driving well yourself; there has to be kind of a social contract involved, otherwise it won't work. Like, if there was no social contract involved in driving-everybody was just driving like a lethal weapon, going as fast as they can and forgetting all the traffic lights and everything else-you couldn't make that situation safe just by driving well yourself: it doesn't make much difference if you set out to drive safely if everybody else is driving lethal-weapon, right? The trouble is, that's the way that capitalism works. The nature of the system is that it's supposed to be driven by greed; no one's supposed to be concerned for anybody else, nobody's supposed to worry about the common good-those are not things that are supposed to motivate you, that's the principle of the system. The theory is that private vices lead to public benefits-that's what they teach you in economics
departments. It's all total bullshit, of course, but that's what they teach you. And as long as the system works that way, yeah, it's going to self-destruct.
Noam Chomsky, //Understanding Power//
<<<
<<<
So suppose all of us here convinced everybody in the country to vote for us for President, we got 98 percent of the vote and both Houses of Congress, and then we started to institute very badly needed social reforms that
most of the population wants. Simply ask yourself, what would happen? Well, if your imagination doesn't tell you, take a look at real cases. There are places in the world that have a broader range of political parties than we
do, like Latin American countries, for example, which in this respect are much more democratic than we are. Well, when popular reform candidates in Latin America get elected and begin to introduce reforms, two things
typically happen. One is, there's a military coup supported by the United States. But suppose that doesn't happen. What you get is capital strike - investment capital flows out of the country, there's a lowering of investment, and the economy grinds to a halt.
Noam Chomsky, //Understanding Power//
<<<
<<<
It's amazing in Europe: Europe has become extraordinarily colonized culturally by the United States, to an extent that is almost unbelievable-Europeans aren't aware of it apparently, but if you go there it's kind of like a pale United States at this point, yet they still have this feeling of great independence, so it's even more dramatic. I mean, Western European intellectuals like to think of themselves as very sophisticated and sort of laughing about these dumb Americans-but they are so brainwashed by the United States that it's a joke. Their perceptions of the world and their misunderstandings and so on are all filtered through American television and movies and newspapers, but somehow by this point they just don't recognize it. And one of the issues where this is most clearly demonstrated is with respect to the Middle East. I mean, it's not ancient history, but on the issue of the right of self-determination for the Palestinians, the Europeans have just forgotten what they stood for, at least on paper, until around the time of the
Gulf War-because anything like self-determination is completely out of the Oslo Agreement.
Noam Chomsky, //Understanding Power//, p. 175
<<<
<<<
But on the other hand, don't forget, the people with power in the society are watching all these things too, and they have institutions. They can learn, they can see what didn't work the last time and do it better the next time-
and they have plenty of resources to tryout different strategies. On our side what happens is, people forget. I mean, it does take skills to organize, it's not that simple. You want to organize a demonstration or a letterwriting
campaign or do fundraising, it does take skills-and those skills tend to get lost. You can see it happening over and over. The people who do it the first time around work hard and learn how to do things, then get burnt out and
drift off to something else. Then another issue comes up, and others with a roughly similar understanding, but maybe a little younger or less experienced, have to start over again and learn all the skills from the beginning.
Noam Chomsky, //Understanding Power//, p. 182
<<<
<<<
In fact, this is part of an ongoing battle that stretches back to the seventeenth century. If you go back to the beginnings of the modern version of democracy, it's the same conflict: people are trying to figure out ways to
control their own lives, and people with power are trying to stop them.
Noam Chomsky, //Understanding Power//, p. 182
<<<
<<<
Well, it depends which planned economies you mean. There are lots of planned economies-the United States is a planned economy, for example. I mean, we talk about ourselves as a "free market," but that's baloney. The
only parts of the U.S. economy that are internationally competitive are the planned parts, the state-subsidized parts-like capital-intensive agriculture (which has a state-guaranteed market as a cushion in case there are ex-
cesses); or high-technology industry (which is dependent on the Pentagon system); or pharmaceuticals (which is massively subsidized by publicly-funded research). Those are the parts of the U.S. economy that are functioning well.
And if you go to the East Asian countries that are supposed to be the big economic successes-you know, what everybody talks about as a triumph of free-market democracy-they don't even have the most remote relation to
free-market democracy: formally speaking they're fascist, they're state-organized economies run in cooperation with big conglomerates. That's precisely fascism, it's not the free market.
Noam Chomsky, //Understanding Power//, p. 195
<<<
<<<
For example, in 1831 there was a big slave revolt in Jamaica-which was one of the things that led the British to decide to give up slavery in their colonies: after some slave revolts, they basically said, "It's not paying anymore." So within a couple years the British wanted to move from a slave economy to a so-called "free" economy, but they still wanted the basic structure to remain exactly the same-and if you take a look back at the parliamentary debates in England at the time, they were talking very consciously about all this. They were saying: look, we've got to keep it the way it is, the masters have to become the owners, the slaves have to become the happy workers-somehow we've got to work it all out.
Noam Chomsky, //Understanding Power//, p. 204
<<<
<<<
I mean, the job of mainstream intellectuals is to serve as a kind of secular priesthood, to ensure that the doctrinal faith is maintained.
Noam Chomsky, //Understanding Power//, p. 207
<<<
<<<
There's nothing about socialism in Marx, he wasn't a socialist philosopher-there are about five sentences in Marx's whole work that refer to socialism. He was a theorist of capitalism.
Noam Chomsky, //Understanding Power//, p. 228
<<<
<<<
Like, I wouldn't say that no meaningful work takes place in the schools, or that they only exist to provide manpower for the corporate system or something like that-these are very complex systems, after all. But the basic institutional role and function of the schools, and why they're supported, is to provide an ideological service: there's a real selection for obedience and conformity. And I think that process starts in kindergarten, actually.
Noam Chomsky, //Understanding Power//, p. 236
<<<
<<<
In fact, Bengal was one of the first places colonized in the eighteenth century, and when Robert Clive [British conqueror] first landed there, he described it as a paradise: Dacca, he said, is just like London, and they in fact referred to it as "the Manchester of India." It was rich and populous, there was high-quality cotton, agriculture, advanced industry, a lot of resources, jute, all sorts of things-it was in fact comparable to England in its manufacturing level, and really looked like it was going to take off. Well, look at it today: Dacca, "the Manchester of India," is the capital of Bangladesh-the absolute symbol of disaster. And that's because the British just despoiled the country and destroyed it, by the equivalent of what we would today call "structural adjustment" [i.e. economic policies from the World Bank and International Monetary Fund which expose Third World economies to foreign penetration and control].
Noam Chomsky, //Understanding Power//, p. 257
<<<
<<<
Not everyone — not even every author! — agrees that restricting the spread of knowledge and culture is a good business model, let alone good social policy. Historically, the business copyright was designed to support was actually *distribution*, that is, publishing. It wasn’t invented for artists or by artists. It was designed by the publishing industry to support the inherently high up-front costs and the risk structure of publishing. It probably made some sense, too, back when applying ink to dead tree pulp (or cutting grooves in vinyl platters) was the only way to distribute information.
Now we have a way of distributing information that is essentially zero-cost and 100% reliable (the copies are indistinguishable from the masters). Copyright law is beginning to look rather silly.
Remember, it’s not about attribution: artists deserve credit for their work, but that can be protected by separate laws. Also, having lots of copies spread around the Internet actually protects attribution more effectively than any law could. That’s why we don’t have attribution problems in the open source world, for example. Quite the opposite: open source is one of the most conscientious crediting communities ever.
Justin’s point about “fair use” is good, though the law is unfortunately quite fuzzy on exactly what constitutes fair use. But it would be even nicer for that phrase to go away entirely, and for all uses to be fair.
http://www.pixelmonkey.org/2009/02/28/beautiful-code-and-a-beautiful-bug
<<<
<<<
Are we to have a new Big Brother slogan, "Choice is Restriction" to add to "Freedom is Slavery", "War is Peace", and "Ignorance is Strength"?
http://penguinpetes.com/b2evo/index.php?blog=1&cat=23&page=1&disp=posts&paged=6
<<<
<<<
It happens all the time. You're at a party, someone asks about your work, and yet again, you have about 45 seconds to describe one of the greatest innovations in human history.
There's the public utility metaphor. The shared infrastructure "like a bridge or a road" idea. Waterworks. Rural electric co-op's.The car with the hood welded shut. The Wikipedia analogy. The scholarly tradition. Libraries. The scientific method. Bucket brigades, quilting bees, and barn raisings. Seed banks and sustainable agriculture.
http://opensource.com/life/10/11/open-thread-how-do-you-describe-open-source-uninitiated
<<<
To which, the Penguin Pete's metaphor of a TV set wherein the manufacturer gets to control which programs you're allowed to watch should be added. And perhaps my own comparison of "fair trade" shops as opposed to """Wal-Mart""".
!!!I Hereby Solemnly Pledge That:
!!!!I'll never buy another piece of Belkin equipment in my life, or encourage others to do so
In fact, I'll dissuade anybody I can from doing so, if at all in my power. The reason for this is, of course, the particularly caustic and hostile attitude of Belkin towards anything GNU/Linux/FLOSS, and is aimed at "striking back where it most hurts them". I am of course aware that my individual decision is infinitesimally marginal for Belkin, and that its value, if any, is purely symbolic and personal. I am likewise aware that singling out Belkin specifically may be extremely biased -- in fact, there are loads of similar enterprises out there who would deserve my boycott every bit as much as Belkin; and they ''will'' get it once I've had such an experience with their ware as I've had with Belkin's. Thing is, this is much less likely to happen in the future because I'm ''much more'' cautious now when shopping for any new equipment: as a rule, I now really do put my money where my mouth is.
!!!!I'll never buy any pre-recorded medium again
(Goes for VHS, CD, DVD, bluray or any other media format the "discontent providers" may invent in the future.) Not even as gifts to third persons. And I will discourage all persons close to me from buying me such media, be it as gifts or otherwise. I will, on the other hand, continue burning open-licensed music and movies onto blank media, be it for my personal use or as gifts to other persons, with the added benefit of introducing people around me to the wrongfully ignored underdog world of great free music and great free movies and videos.
I am well aware that blank media are taxed by the media majors anyway. It is not in my power to rectify that, it is, however, in my power to choose the lesser of the two evils.
This pledge will be particularly hard on me, as it means that I'll never be able to buy the music albums of some of my favorite Croatian/Dalmatian artists, such as Gibonni, Oliver Dragojević, or Ljiljana Nikolovska, but I am aware that ''freedom was never free''. A pledge gains its value and power proportionally to the hardships one must endure in order to keep it. On the other hand, who knows -- I may live to see, one day, some of their material re-issued under an open license, in which case I would gladly get it.
The issue is not quite so limiting with movies, since they may (still) be freely and legally recorded from TV (goes for the rare French, Italian, Russian, or "third world" movie I do care about -- not for the recent Hollywood crap). Hunting down a good concert on TV is much, much tougher these days.
I have yet to make up my mind about that other, more recent channel of distribution for closed license music and video, namely the various itunes, online music stores and the like. Since I never bought into that "business" model, no question arises for me personally. It was just so damn counterintuitive and illogical to me to actually pay for the same stuff over and over again (whenever I change my provider, or my player, or my account, or my country of residence, or whatever), that it never came into consideration at all. I value my personal freedom far too much for that. I find it hard to grasp how the younger generations can comply with such a mobster/extortionist "business" model that easily; they effectively turn over the freedom of their data to any random thug, and do so willingly. Sure beats me...
For the same reason, no kindles and other readers ever came even close to consideration with me. Paper books for us dinosaurs, I say -- so we can let others read them too, without going to court and eventually to jail!
!!!!!What's Killing Us
http://en.wikipedia.org/wiki/List_of_preventable_causes_of_death
http://dying.lovetoknow.com/Top_Causes_of_Death_in_the_U.S.
http://en.wikipedia.org/wiki/List_of_causes_of_death_by_rate
http://www.ritecode.com/aerobicgardening/topkill.html
http://www.healthaliciousness.com/articles/top-causes-of-death.php
!!!!Blah Blahs vs. Commitments
As of November 2008, 193 countries are bound by the Convention on the Rights of the Child, including every member of the United Nations except the [[United States and Somalia|http://en.wikipedia.org/wiki/Child_sexual_abuse#International_law]].
With the distinction that Somalia
#can hardly be said to have a stable government; and
#has (FWIW) promised to at least stop [[exploiting kid soldiers|http://www.washingtonpost.com/wp-dyn/content/article/2010/11/03/AR2010110305749.html]], as opposed to the US, to whom killer kids are perfectly OK, provided they kill for [[US|http://www.fortliberty.org/obama-administration-promotes-use-of-child-soldiers.html]] and not for [["THEM"|http://www.andyworthington.co.uk/2008/11/22/the-pentagon-cant-count-22-juveniles-held-at-guantanamo/]].
!!!!Children Dying of Starvation
According to various estimates, somewhere between [[16.000|http://en.wikipedia.org/wiki/Starvation]] and [[30.000|http://www.starvation.net/]] children die of starvation every day (although ''substantially less than $1 per child per day'' would suffice to prevent that).
In comparison, and according to [[NY Daily News|http://www.nydailynews.com/sports/more_sports/2010/03/24/2010-03-24_messi_is_soccers_highest_paid_player.html]], that very day the world's top three soccer players get paid somewhere between $111.000 and $122.000 each.
Yes, per day!
!!!!Intrusive Surveys
Researchers at Carnegie Mellon made a survey about our tendency to reveal or not reveal "touchy" information about ourselves. The survey yielded interesting results (a download link for the paper is provided at http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1430482). They first made a list of pertinent questions and submitted it to the New York Times; its readers then rated those questions as to their perceived tameness/intrusiveness. These ratings were then used as basis for the Carnegie Mellon survey.
I find these ratings every bit as revealing as the subsequent survey.
"Intrusive" questions included various "grave deeds", such as:
#Have you ever tried to gain access to someone else's (e.g., a partner, friend, or colleague's) email account?
#Have you ever had a fantasy of doing something terrible (e.g., torturing) to someone?
"Moderate" questions included:
#Have you ever let a friend drive after you thought he or she had had too much to drink?
#Have you ever known about or witnessed a serious crime and failed to report it or stop it?
#Have you ever looked at pornographic material?
"Tame" questions, on the other hand, included an illegal activity fiercely persecuted by the multimedia cartels:
#Have you ever downloaded pirated songs from the Internet?
It would thus seem that //actually committing illegal online acts// makes people feel ''far'' less uneasy than just //fantasizing// about doing "something terrible". Thought police, anyone?
On the other hand, letting a drunk person drive, or failing to report a serious crime is not perceived as grave as, say, trying to get access to your partner's e-mail.
Having a peep at some nudies, then, is apparently more embarrassing than illegally downloading songs.
Wouldn't you call those results interesting? I do.
!!!!After You've Killed Arab Children For US
<<<
For the second year in a row, the U.S. military has lost more troops to suicide than it has to combat in Iraq and Afghanistan.
http://www.congress.org/news/2011/01/24/more_troops_lost_to_suicide
<<<
!!!!The Callous Mechanics Of "Humanitarian" Aid
The case of Haiti magnificently illustrates how "humanitarian" aid funds actually translate into hand-outs to corporations. What's worse -- not even to local corporations, but to western corporations in general, and the U.S. ones in particular. To think that this is an isolated case limited just to Haiti would be a moronic blunder, of course. On the contrary, it's the ''universal mechanism how "humanitarian" aid is deployed''. So the next time you're tempted to donate to a humanitarian organization, think twice -- you will be giving 98.4% of the money to some crass western corporation! Actually, you'll be giving even less than 1.60% to the destinee, because the charity will also subtract a fee for its "handling costs".
<<<
A report on U.S. contracts for reconstruction found that only $1.60 of every $100 awarded goes to Haitian firms, essentially meaning that the brunt of Haiti funding actually functions as stimulus for economies elsewhere.
http://www.ezilidanto.com/zili/2011/01/our-government-funded-mission-to-make-haiti-christian-your-tax-dollars-billy-grahams-son-monsanto-and-sarah-palin/
<<<
The tyranny of democracy (Tocqueville? Mill? Chomsky?)
Selective journalism
!!!!OSSEC Effect
''OSSEC Effect'': The alteration of a computer user’s behavior when they know their actions are being monitored, but do not realize or understand the extent of the monitoring. Users will, without provocation, volunteer information they believe could be seen as questionable, whether the monitoring system would have known about it or not.
http://www.immutablesecurity.com/index.php/2010/04/09/the-ossec-effect/
!!!!Silencing History
<<<
We're the only nation that ever used atomic weapons on other human beings.
Timothy Hutton (as Christopher Boyce) in //The Falcon and the Snowman// (1985)
<<<
Now, the interesting thing about the above quote is, how utterly silent the entire Internet is about it. It's obviously one of those facts that even the "democratic" Internet prefers to not mention. In fact, as of 2 July 2010, the above literal quote can only be found (Googled) on ''two'' """URLs""": http://www.script-o-rama.com/movie_scripts/f/falcon-and-the-snowman-script.html and http://www.mooviees.com/titulky/81919.srt (which is to say, a movie scripts site and a movie subtitling project). ''No //memorable movie quotes// site on the entire Internet deems the above phrase worth quoting,'' although they do quote such "extremely" poignant sentences from the movie as:
*Can't you admit that just once, I was right about something? http://www.imdb.com/title/tt0087231/quotes
*I don't know your father. http://www.moviequotes.com/fullquote.cgi?qnum=110339
*Do you have any fruits and vegetables? http://www.moviequotes.com/repository.cgi?pg=3&tt=75731
Talk about self-censorship and suppression ...
!!!!Who's The Mengele Here?
There's [[more|http://en.wikipedia.org/wiki/Human_experimentation_in_the_United_States]] to [[Tuskegee|http://en.wikipedia.org/wiki/Tuskegee_syphilis_experiment]] than [[Tuskegee|http://www.cityprojectca.org/blog/archives/7067]] ...
Volunteer activities that are actually just externalized costs and should, consequently, be provided for by the perpetrators, and not by the conscientious citizen or, even worse, by the general public:
#"""Clean-Up""" Initiatives (picking up old stoves and bikes from river beds and public parks): the municipality should simply provide costless pick-up of bulkier garbage and obsolete machinery at the local dumpster. You should be allowed to leave your used fridge beside the local dumpster, and the local garbage collectors should be required to collect it (perhaps only once a week, with specialized vehicles). Thus, there would be no need for ecologically-minded model citizens to dump their garbage into rivers, lakes and the like. More generally: the costs of dismantling appliances (and all other products) should be covered by the producer of the same, and not by the buyer. It's the only way to force the producers into making more environment-aware products. It's a never-ending war, actually. The producers will //always// try to cut corners in order to increase profits -- no matter what we do and what legislation we may put in force. The only way to prevent this is by constantly monitoring their strategies of externalization, which are not something permanent, but are always meticulously custom-tailored to the general legislative and political environment. Remember, these are people that devote 8 (and frequently 24) hours of each day of their living lives to the task of externalizing costs. The only way of countering such unfair efforts is to make externalizing expensive, turn externalization -- any externalization -- into //net profit loss//. ''They won't act on ecological awareness alone!'' (Admitting they had any)
#Garbage Differentiation: We'll do our part when the producers do theirs (meaning: when they, firstly, minimize the packaging, and, secondly, make it of one, preferably degradable, material only). Various dolls come to mind in which the bulk of packaging virtually exceeds that of the doll as such; in addition, the packaging usually consists of at least three distinct types of material: the picturesque cardboard, printed with doll and brand name and colorful photos and drawings, the transparent plastic protective cover, usually extremely sturdy, sharp-edged and thick, and some wires, threads and rubber bands used to keep the items in place. A garbage differentiation nightmare if ever I saw one. Just an illustration, I found the following notice on a leaflet accompanying a beauty-salon plastic toy set produced by Theo Klein (H. K.) Ltd., 12/F Fortis Bank Tower, 77, Gloucester Road, Hongkong:{{bold
{
<<<
''N.B.!
Important note:'' the cords/wires/polystyrene components/film components/cardboard blanks etc. (bands, clips, swings tags, loops) used to secure the toy in its packaging during transport are not part of the toy and must be removed before the toy is given to a child.
<<<
}}}
#Charity: the burden of amending the mistakes done by the government and other centers of power should not fall on the individual's shoulders. It should not be left to me to distance-adopt a parentless child in a distant country who lost the parents in a bombing done by my own government. Let those who ordered the bombing provide for that. Likewise, it should not be left to my individual donations to ease the unbearable situation of the homeless and the beggars; the authorities, who are paid to regulate employment, housing and social services, should provide for that, since the existence of the homeless and the beggars is mainly a consequence of their failure to provide the above-said services.
#The consumer shouldn't pay an overprice for non-polluting alternatives (as in fridges or spray cans). It should be the other way round, the producers of polluting products should pay an additional overtax ''on their profits''. Yes, not the retail price, but //only the net profit// should be taxed! This overtax should be calculated such that it would actually pay for them to produce "clean" technology, or, in other words, //producing cheaper, polluting products, would ultimately yield lower net profits than producing clean, more expensive alternatives//.
And so on.
Of course, nobody says these activities couldn't be integrated and enriched with //additional// individual work on a volunteer basis; I'm only arguing that there's no intrinsic reason whatsoever they should ''rely'' (mostly, let alone solely) on volunteer work.
These are just //additional// forms of outsourcing/externalizing, which should be counted alongside the more obvious ones, such as ''anything environment- and health-related''. Actually, it should simply be required by law that any (commercial or not) activity leave the environment, the public health (and so on) ''in their pristine state'' or provide for reinstating such state, along the principles of hunting regulations, as we know them in many countries: yes, you do get to shoot game, but you also
#take care of re-populating any animal populations if needed, and
#you must pay the government to take care of re-population and other related activities aimed at preserving the pristine state; however,
#if you kill an animal in breach of regulations (roadkill, or aircraft killing flying birds, or the like), you pay a fair fine.
As may be readily seen, in a fair system where externalizing costs were prohibited -- meaning that you, and not others, must cover your own costs -- the sheer costs of production (of almost anything) would soon eat out any prospect of profits. It could perhaps be inferred, as an interesting corollary, that in a fair system in which everybody pays his or her own expenses and doesn't try to dump them on others, most of the market system would probably [[collapse of its own|The Under-Lying Mechanics]]. It would simply yield no profits, or, worse, yield negative ones. And, as a second inference: the market as we know it and as we've been taught to perceive it, may turn out to be, not a market in which "added values" are exchanged, but just a con game of global proportions: a ''con as con can'' in which ''everybody tries to dump their own costs on everybody''. In other words, to rob/con/swindle/outwit everybody. Thus, the only "wealth" that is ever produced in the world, is just wealth //stolen// from unaware dupes -- such as colonies, dependencies, and protectorates -- and //re-distributed// to the cunning ones. In our market economy, very little //new, actual wealth// is actually ever produced.
Thus, a seemingly trivial question, such as "how many third-world children have to be starved to death in order to build a Space Shuttle", suddenly ceases to be just an academical one.
<!--{{{-->
<div class='header' macro='gradient horiz [[ColorPalette::PrimaryMid]] [[ColorPalette::PrimaryLight]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div style='position:absolute; top:1.25em; right:.35em;' id='headerToolbar' refresh='content' tiddler='HeaderToolbar'></div>
<div style='position:absolute; bottom:-.25em; right:0em;'><a href="http://www.debian.org"><img src="http://www.debian.org/logos/bouton.jpg" width="204" height="82" alt="[Debian powered]"></a></div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div id='SiteFooter' refresh='content' tiddler='SiteFooter'></div>
</div>
<!--}}}-->
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
major: 1, minor: 0, revision: 2,
date: new Date("Apr 19, 2007"),
source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
coreVersion: '2.2.0 (Beta 5)'
};
config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");
merge(config.macros.option.types, {
'pas': {
elementType: "input",
valueField: "value",
eventName: "onkeyup",
className: "pasOptionInput",
typeValue: config.macros.option.passwordInputType,
create: function(place,type,opt,className,desc) {
// password field
config.macros.option.genericCreate(place,'pas',opt,className,desc);
// checkbox linked with this password "save this password on this computer"
config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);
// text savePasswordCheckboxLabel
place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
},
onChange: config.macros.option.genericOnChange
}
});
merge(config.optionHandlers['chk'], {
get: function(name) {
// is there an option linked with this chk ?
var opt = name.substr(3);
if (config.options[opt])
saveOptionCookie(opt);
return config.options[name] ? "true" : "false";
}
});
merge(config.optionHandlers, {
'pas': {
get: function(name) {
if (config.options["chk"+name]) {
return encodeCookie(config.options[name].toString());
} else {
return "";
}
},
set: function(name,value) {config.options[name] = decodeCookie(value);}
}
});
// need to reload options to load passwordOptions
loadOptionsCookie();
/*
if (!config.options['pasPassword'])
config.options['pasPassword'] = '';
merge(config.optionsDesc,{
pasPassword: "Test password"
});
*/
//}}}
!!!Or: On Ideas, And The Circulation Thereof
In my younger days, I was a fervent proponent of "fair payment" for book authors and writers in general. I live in a country (Slovenia) where the tariff for written text has been steadily declining from the nineteen nineties: in the early nineties, the base unit of text used in the Slovenian publishing industry (32.000 printed characters; if you're used to calculating in terms of words or pages, just do your math), was roughly equivalent to the average Slovenian wage. Today, it's roughly equivalent to ''25%'' of the average wage, and steadily declining.
This piracy policy is caused by many factors, the main factor being -- in my opinion -- the fact that only strong social groups get to have a say in the dialog with the government: the so-called social partners, mainly represented by the various trade unions, entrepreneurs and other financially, socially or politically strong entities. Well, there are certain lines of work (artists are a good example) that can never achieve such levels of integration; putting sculptors, or writers, in a trade union would be something like herding cats. And even if they could be stuffed into a union, it's not that it would be an important union, as it would be outnumbered by almost any other trade.
But that's a topic for another day. I just wanted to say that nowadays, I'm not that much a proponent for fair payment for authors. Not because I don't appreciate their work, on the contrary. The reason lies elsewhere: it's that original -- or even just good -- ideas have such a ''damn hard time surviving'' you simply can't restrict their outreach by subjecting them to the additional burden of ''generating profit''. At least here, in Slovenia, I witnessed so //many// good ideas simply go to waste because there was nobody to take heed, let alone embrace them. Now, if you're an endorser of such ideas, you soon come to realize that propagating those ideas -- especially in an environment hostile to any really great ideas, such as Slovenia -- is actually a reward in itself. You just can't ask money for that! You must be thankful if these ideas reached at least one person. Maybe that's one of the crucial points of all those alternative publishing licenses (Creative Commons, Copyleft, and the ultimate one -- Public Domain). Maybe the success of an idea -- and by extension, a book, or any work of art -- is measured by the rate of its adoption, and not by the money it brings in? At least, it would appear that to most authors -- as opposed to their publishers and the copyright industry in general -- it's more about ''getting the message across'' than about earning the most bucks in the process. Money is apparently not why they create what they create; if any cash comes in, it's welcome of course, but it is not the bottom line.
It appears that the converse is also true: those that have no message to speak of, will go after the money.
To illustrate what I said above regarding the circulation of ideas and the hard time they have surviving, we could take almost any progressive idea. We could, say, take environmentalism: Slovenia did have a Green Party sometime in the early nineties, and although it was never radically "green" in any sense of the term, it was still just too "new" or "odd" to have any success. So now, with the exception of a local government here or there, the Greens are never heard of anymore; they may still exist in some dark cellar, but it's as if they didn't exist, really, and only God knows what color they've turned down there.
Or, we could just as well take the NATO treaty: when Slovenia became a sovereign state in the early nineties, I was hoping it could do without turning into a militarized country; I was hoping it could follow Switzerland's model and stay neutral (not becoming a member of the EU would be an additional bonus). Of course, neither had any chance of happening -- Slovenia just followed the predictable path of becoming the most bland and unoriginal country in Europe, fast. It hastened down its own private road to hell as if it was a road to salvation. [Incidentally, in November 2010 I bumped into [[this article|http://www.guardian.co.uk/politics/2010/nov/05/does-britain-need-the-military-army-navy-raf]], proposing something similar for the UK; as always, //the reader comments are the most interesting to read//].
The funny thing is, Slovenians are completely baffled as to why, on the international level, //Slovenia's image// is largely unknown. They won't admit that it's because Slovenia just //doesn't have one//: it's struggled so hard to become the most average, the most mainstream, the most //default//, the most nondescript country in Europe, and now keeps wondering why in the world it's so unrecognizable ... (actually, this is not //completely// true; Slovenia //is// known, in certain circles at least, for being one of the fictional countries bordering on Molvania).
Or, we could just as well take nuclear power plants: in Slovenia, you will bump into strong, overwhelming opposition if you dare mention wind power plants; but you'll get plenty of sympathy and approval if you suggest we should build additional nuclear plants. Nuclear plants are considered "clean energy" here, whereas wind turbines are an "environmental burden".
Or, we could take GNU/Linux adoption: another good idea that just can't succeed in Slovenia. Slovenia just prefers to be the [[most windowed country in the world|I Mourn For Thee, Slovenia]].
But we could take almost anything, it really doesn't matter -- the result would be the same. All I can say is that, apparently, //the greater the idea, the fewer supporters it will find//.
And there seem to be many little Slovenias in this bigoted world of ours.
As you surely know, the debate as to which is the best backup/synchronization solution is never ending. While I seriously doubt there will ever be such a beast as "the best all-round backup tool", I, for one, have since long ago done away with any high-level -- or, God forbid, GUI -- tools for such low-level tasks. The reason, while not being hard to understand, is a definitive deal-breaker IMHO: sometimes, you'll have to restore your backup onto a broken system which quite simply does not have a working desktop environment. Of what use will all those complex GUI tools be to you then? Or, you'll have to restore your backup onto a half-installed stub of a system; again, there will be no GUI environment in which to run GUI archivers. In addition, in the hoarding world of proprietary software, said high-level archivers frequently employ obfuscated, lock-in archive formats (yet another of the deal-breakers I got rid of by moving to GNU/Linux), so that, unless you have a working GUI OS from which to run ''just their'' archiver, you can't possibly restore your backups. Kinda funny, considering that most of the time it is //precisely the GUI OS// that you want to restore...
To put it simply, just as I've been an avid user of {{{arj}}} in my Windows™ days, I'm an avid user of {{{rsync}}} now. I don't need frontends for that, just as I don't need them when using {{{wget}}}, {{{find}}} or {{{cpufreq-set}}}. GNU/Linux has given me back the almost forgotten joy of using no-frills, straightforward command-line tools again. Tools in which //all the developer's energies have been channeled into making them work, and work ''exceedingly'' well// -- instead of having a shiny GUI. Windows™ -- from 3.11™ through 95™, 98™, and finally XP™© -- has progressively made me all but forget the incredible ''power'' of command-line programs. It purposely made it harder and harder to access the underlying workings of the OS, progressively turning what was once an Operating System into a dumbed-down, appliance-like interface, with nothing more left for you to tinker with but perhaps to change your wallpaper and select another font size. Now I understand what GNU/Linux savants have been talking about all along. Say, for example, you want to check if there are any warnings in your multi-megabyte {{{squid}}} log file. What's easier: loading it into a text editor (or a dedicated log viewer, or a pager, such as {{{less}}} -- which is, as they say, tantamount to {{{more}}}) and then searching for the string "WARNING", and pressing "search again" to skip to the next occurrence, and then pressing "search again" again, and again, and again, for dozens, if not hundreds of times -- or just typing
{{{
grep WARNING cache.log | pager
}}}
and having all your results neatly displayed? Using command-line tools, at least in GNU/Linux, doesn't give you the feeling of reverting to an obsolete, surpassed way of doing things. On the contrary -- having so much power at your hands gives you a sense of speed, and elegance, and of really being in charge, a sense that can never be achieved by cumbersome mouse-driven interfaces. Those are good for accomplishing certain complex, rarely needed tasks, because, with their colorful graphics, they may give you clearer feedback, at times, and -- being less powerful -- may stop you from doing some really stupid things to your system. At times. Once you get to know some of the command-line utilities, however, and their options and arguments, or the incredible flexibility of {{{bash}}}, you really find it hard to believe that (at least some of them) could ever be competently replaced by a GUI tool -- //any// GUI tool. The "future" of GNU/Linux may be on the desktop, but I'll bet its definitive power, its real comparative advantage will rest on the hundreds of inconspicuous, lightning-fast, ''scriptable'' command-line utilities for years to come.
<<<
[...] what makes proud and bright software engineers tick. For example, for Kernighan it is the simplicity and minimalism that is embodied in UNIX. For Matz, it is the notion that the programming language should be as syntactically flexible as our real languages are. For simonpj, it’s that complicated can be made easy, given the right abstractions. And for Jon Bentley, in one of the more thought-provoking essays in the book, beauty and elegance was only perceived as the size of his code shrank.
http://www.pixelmonkey.org/2009/02/28/beautiful-code-and-a-beautiful-bug
<<<
I've written this //unnecessarily// long introduction to hopefully explain why I've never seriously considered any alternatives to {{{rsync}}}, not even {{{unison}}}, although I've never heard nothing but good things about it -- such as it being based on {{{rsync}}} or something along that line. Instead of deploying a bunch of slightly different tools for slightly different tasks, I prefer to make my preferred tool accomplish those tasks if at all possible. My brain just doesn't have the capacity for learning new tools every day; thus, instead of learning ''several tools'' //superficially//, I'd much rather -- with each new use I put it to -- learn ''one tool'' //in more depth//.
It's high time I explained my task at hand now. What I set out was to mirror the {{{/home}}} directories across two hosts on our home LAN, let's call them Tom and Jerry for the sake of brevity. For the sake of simplicity, let's also assume that the {{{/home}}} directories of the two machines have already been synchronized/mirrored at some point in the past -- with {{{scp}}} or {{{tar}}} or whatever -- so that, at present, they are rough, though not up-to-date, copies of each other. Although {{{rsync}}} is not generally considered the best tool for the job, it's actually quite sufficient. The only thing is, you have to run it twice: the first time you copy any files that have changed (or have been created) on Jerry over to Tom, and subsequently you copy any changed/new files on Tom over to Jerry. However, to achieve that in a two-pass scenario such as above, you have to make sure that the two machines have synchronized clocks. In my case, that was not the case, the two clocks were something like a few minutes apart. Now, when doing a manual backup, that could perhaps be tweaked and dealt with somehow -- but I was planning to set this mirroring as a {{{cron}}} job. I envisioned a slight potential problem may arise: to compare file versions on Tom to those on Jerry, {{{rsync}}} uses time stamps. You guess it -- how reliable would that be if the two clocks were actually off by several minutes? Considering that {{{rsync}}} is a lightning-fast tool (I know, that's hard to believe, but only until you actually try it out yourself), it //could// actually get so messed up with the two clocks being off as to overwrite a newer file on one machine with an older version fetched from the other machine [update: after studying its {{{man}}} page more thoroughly, I've found out that {{{rsync}}} has inbuilt provisions to prevent that from happening!]. So, before deploying my "solution", I installed {{{NTP}}} on both hosts (for the record, they both run Lenny). After that, it was just a matter of setting up a {{{crontab}}} entry on Tom with something like:
{{{
15 */6 * * * nice rsync -xpturbo /home/ jerry:/home/
45 */6 * * * nice rsync -xpturbo jerry:/home/ /home/
}}}
In its default configuration, and ''with the colon after the target host name'' as written here, {{{rsync}}} will use {{{ssh}}} for the transfer. Therefore, you'll have to also arrange the right permissions, passwords -- or ssh keys -- and other paraphernalia accordingly. Initially, pay extra attention to {{{cron}}}'s mails for any errors -- although there are no "delete" options in the {{{rsync}}} line, you never know. It's always best to double-check if anything got deleted inadvertently. It's also important from //which user's// {{{crontab}}} you actually run the {{{cron}}} job. In my case, I don't mirror entire {{{/home}}} directories, thus my {{{rsync}}} line is actually something like:
{{{
15 */5 * * * nice rsync -turboSzxp --stats --backup-dir=BK --log-file=rsync.log --bwlimit=20 /home/klistvud/Documents/ jerry:/home/klistvud/Documents/
}}}
When I got it (second-hand), the [[D915GAG|My Computer]] motherboard with its companion Pentium 4 3.0GHz HT @ 800FSB processor was housed in a tiny, dusty Wearness chassis and would roar like a lion unwilling to be tamed. Only if you let it alone, at idle, would it quiet down a bit, just like a wild beast.
First thing I did was place it in a larger, better-ventilated enclosure. Still, the CPU temperature would never drop below 50˚C, while the hard drives reached 45˚C and more. When taxed by my 9-year-old kiddo, the CPU would ramp up to over 65˚C in no time. Steps had to be undertaken and measures put in place.
I began by installing an additional 12-cm front case fan and set its minimum speed to OFF in the BIOS. So it only gets triggered when the processor temperature exceeds about 60˚C or so (I'm writing from memory; the only thing I know for sure is, the fan stays put most of the time -- until my kiddo comes from school that is). I have to admit that it does gets quite loud then -- it's not a silent fan by any stretch of the imagination -- but it's still ''way'' quieter than before, when all ventilation was entrusted to the stock CPU fan and the slowish stock fan inside the PSU. The CPU fan would frequently reach such speeds then (over 4000 RPM if I recall correctly) that it would actually set the motherboard (or perhaps some other part) ''vibrating'' and actually ''rattling'' obnoxiously. It was excellent for waking up the dead (a welcome feature in this //Zombie Windowland// called Slovenia), but not much good for anything else. Now, the 12-cm fan kicks in betimes, magnificiently assisting the CPU fan and allowing it to rotate within more humane specifications. Not content with the temperature hysteresis though, I added an undervolted 9-cm fan at the rear of the case, just in case (pun indented). It stays on all the time, but is extremely quiet at 7 volts, and sucks air ''out'' exactly around the spot where the CPU is situated. As an added benefit, it hopefully assists the PSU fan ensure that the case has a negative pressure most of the time -- until the capable front fan kicks in, sucking air ''into'' the chassis.
However, there was no noticeable temperature decrease with the installation of the additional rear fan. The idle CPU temperatures would still hover around 50˚C, although air circulation was visibly (or should I say touchably) improved. I knew all along that the next step would be in order: thermal grease.
When I first brought the motherboard home, I uninstalled the heatsink and its fan, but could not apply new thermal grease because I had none at the moment. So I didn't even clean the residue of the old baked-up grease, thinking that old crap was better than none. I just washed the heatsink and reinstalled it, and that was it.
Now, at last, there was again a tube of thermal grease lying around somewhere, and the time has come to apply it.
I cleaned the processor's poopy lower back, the heatsink and the CPU fan thoroughly, applied a drop of thermal compound, and reassembled the whole bunch.
The result was incredible.
!!!At Idle
The average temperatures of the CPU dropped from 50-51˚C to 44-47˚C at idle.
The motherboard and "ambient" (or "remote") temperatures dropped from around 40˚C to around 36˚C.
Now, I'm waiting for kiddo to return from school. Will see how the temperatures behave when he fires up wine and starts playing """FIFA99""" (yep, the game is actually older than he is ...).
!!!When Taxed
Even under """FIFA99""", the CPU fan now hardly ever exceeds 3000 RPM. The absolute max temperatures reached by the CPU are //still around 65˚C//, but when this happens -- which only ever lasts a few seconds -- the fan now only needs to speed up to around 3600 RPM to keep it in check, instead of over 4000 as before. The 12-cm front fan has an interesting idiosyncrasy: it either rotates at about 330 RPM or at about 660 RPM, as if it had a "//stepping//" motor, and not a continuous one. The "board" and "remote" temperatures reach about //45˚C max//.
The computer never ever rattles and vibrates anymore, but //its hum at idle is almost identical// as before; must find a way to further silence //the idling state// now. I keep the box running 24/7/365 and the room in which it is located doubles as our sleeping room at night and as our working room during the day. So at night, we could do with a quieter computer by all means. While I'm not shelling a single € for those specialized silencing kits [there's a great Serbian/Croatian word for that -- //mamipara//; consult a good online dictionary about it], I've already taken the first step in the right direction: I've padded the computer's four plastic "legs" with some felt to prevent them from transferring the hum to the wooden desk/cabinet it's located in. I've also made sure that the chassis doesn't actually touch any of the wooden walls surrounding it. Now I'm looking for a DIY burn-proof damping material to pad the chassis internal walls with.
Hmmm...
Update.
By installing some makeshift padding into the chassis (not permanently, because it's not burnproof), some interesting points may be observed:
* not all sources of noise are muffled in equal measure. For instance, the rear PSU fan which communicates directly with the ambient, is just as loud as ever, which is -- well, //loud//.
* while the padding causes the internal chassis temperature to rise a bit (by obstructing fissures bound to be found in any metal chassis), it re-defines the relationship between the CPU fan and the frontal fan. Since the motherboard is now a bit hotter, the frontal fan is set off a bit sooner. As a result, the CPU now reaches 62-64˚C instead of 65˚C max, and -- more importantly -- when the max CPU temperatures are reached, the CPU fan (the loudest one in the system) only has to go up to about 2800 RPM (as opposed to 3000), because the frontal fan kicks in sooner. So the cooling is now distributed a bit more fairly between the frontal (not so loud) and the CPU (loud) fan. Which is fine.
* as a side note, the above fact helped me assess that not the CPU temperature, but the ambient temperature determines when the front fan will kick in. I now seem to recall reading somewhere that on this Intel mainboard, not all three sensors are equally precise, or equally fast (in registering sudden temperature changes).
[Update, Nov. 27, 2010]
Still going on the makeshift padding for now. Will report when my house burns down.
The obnoxious hum at idle I complained about was the fan in my PSU dying. When it finally died, it gave me the chance to re-use the PSU I originally got with this motherboard. It's quite quieter. Cute. Of course, this completely changed the thermal situation in the box. For one, the airflow of the replacement PSU is somewhat lower that the previous one, for two, this PSU is less powerful and quite a bit cooler as a result.
The external temperatures are well below the summer ones now, making any comparison only relatively valid. For what it's worth, the current situation is as follows.
The fan4 header has the PSU fan control wires connected to it now. So the fan4 you see below is the speed of my Power Supply Unit fan. The prior PSU had no such connector, although it was newer and more powerful and possibly of better quality; if I could only replace its fan, I would probably put it back in. But I won't disembowel a winning horse, for the time being.
When taxed, the large 12 cm frontal fan (that would be fan3) becomes barely audible, for the rest the box is as quiet as when idle.
*Room temperature about 21˚C.
**CPU fan speed idle 2200 rpm, taxed 2155 rpm
**fan3 speed idle 0 rpm, taxed 995 rpm (large frontal fan)
**fan4 speed idle 1854 rpm, taxed 2088 rpm (PSU internal fan)
**Cpu temp idle 41-43˚C, taxed around 62˚C (between 59-65˚C)
**Board/Remote temp idle 31-33˚C, taxed about 44˚C (between 42-46˚C)
Yep, it's not a mistake: when thermal management shuts the frontal fan down, the hystaeresis apparently makes the CPU fan speed up -- although the overall temperatures are actually much ''lower''! Goes to show (once more) that in no way is thermal management a simple, straightforward, linear system.
All in all, the beast has become bearable now. If I could replace the PSU fan with an even quieter one, I'd be king. It's the only one making audible noise now, but it's bearable, although barely so.
[Update, May 16, 2012]
Dustbuild inside chassis caused the machine to roar again. I proceeded to eliminate all padding for fear of fire hazard and cleaned the computer thoroughly with compressed air. For the rest, all as per above, the machine is pretty quiet again.
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)
Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release. Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 6, date: new Date(2008,10,17)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
config.options.chkSinglePageMode=eval(v);
if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
config.lastURL = window.location.hash;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
config.options.chkSinglePageMode=true;
if (config.options.chkSinglePagePermalink==undefined)
config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
if (!config.options.chkSinglePageMode)
{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
if (config.lastURL == window.location.hash) return; // no change in hash
var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
if (tids.length==1) // permalink (single tiddler in URL)
story.displayTiddler(null,tids[0]);
else { // restore permaview or default view
config.lastURL = window.location.hash;
if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
story.closeAllTiddlers();
story.displayTiddlers(null,tids);
}
}
if (Story.prototype.SPM_coreDisplayTiddler==undefined)
Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
var opt=config.options;
var single=opt.chkSinglePageMode && !startingUp;
var top=opt.chkTopOfPageMode && !startingUp;
var bottom=opt.chkBottomOfPageMode && !startingUp;
if (single) {
story.forEachTiddler(function(tid,elem) {
// skip current tiddler and, optionally, tiddlers that are folded.
if ( tid==title
|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
return;
// if a tiddler is being edited, ask before closing
if (elem.getAttribute("dirty")=="true") {
if (opt.chkSinglePageKeepEditedTiddlers) return;
// if tiddler to be displayed is already shown, then leave active tiddler editor as is
// (occurs when switching between view and edit modes)
if (tiddlerElem) return;
// otherwise, ask for permission
var msg="'"+tid+"' is currently being edited.\n\n";
msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
if (!confirm(msg)) return; else story.saveTiddler(tid);
}
story.closeTiddler(tid);
});
}
else if (top)
arguments[0]=null;
else if (bottom)
arguments[0]="bottom";
if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
config.lastURL = window.location.hash;
document.title = wikifyPlain("SiteTitle") + " - " + title;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
var isTopTiddler=(tiddlerElem.previousSibling==null);
if (!isTopTiddler && (single || top))
tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
else if (bottom)
tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
} else
this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
var tiddlerElem=document.getElementById(story.idPrefix+title);
if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
// scroll to top of page or top of tiddler
var isTopTiddler=(tiddlerElem.previousSibling==null);
var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
// if animating, defer scroll until after animation completes
var delay=opt.chkAnimate?config.animDuration+10:0;
setTimeout("window.scrollTo(0,"+yPos+")",delay);
}
}
if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
// suspend single/top/bottom modes when showing multiple tiddlers
var opt=config.options;
var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
this.SPM_coreDisplayTiddlers.apply(this,arguments);
opt.chkBottomOfPageMode=saveBPM;
opt.chkTopOfPageMode=saveTPM;
opt.chkSinglePageMode=saveSPM;
}
//}}}
[[Disk Lamer]]|[[T&A|Turds And Conditions]]|[[FAQ|Fervently Axed Questions]]|[[Legal Noticed]]|[[Piracy Policy]]|[[All Wrongs Deserved]]|[[Compact Us]]|[[Career Opprobrities]]
Many Lefts Reversed©®1918-2018
™je bo te pas SA
Lamenting Liberty Lost: Softwear, Casualwhere, Elseware
!!!On //free as in beer//
It's not a minor factor that any production software for Windows or Macs costs so much (there are non-free softwares for GNU/Linux too, of course). Apparently, it all boils down to freedom of choice again: if you have the money, buy software with printed manuals and paid support; if you don't, download freebies but be prepared to tinker, configure, explore, and jot down your own "manual" -- in other words, either invest your money or invest your time. Limit cases: if you're unlucky, you will have to invest both; if you're lucky, neither (such is the case with Open Office Writer which is not only an excellent piece of software, but has an excellent help and excellent online tutorials too); if you have no money to invest, you are not left any choices and, consequently, your freedom equals zero (your "freedom to choose" is restricted to either having freebies or not having anything -- not much of a choice, huh?)
!!!And An Ad/Flash/Crud Blocker To Boot
/*{{{*/
.viewer {-moz-column-width:28em; -moz-column-gap:1em; padding-top:
0em;}
div[tags~="singlecolumn"] .viewer, div[tags~="systemConfig"] .viewer,
div[tags~="quickedit"] .viewer, div[tags~="css"] .viewer,
div[tags~="lyrics"] .viewer, div[tags~="l"] .viewer,
div[tags~="tablenoborder"] .viewer {-moz-column-count:1;padding-top:
0em;}
#SiteFooter {clear:both; margin-top:2em; padding:2px; text-align:center; color:[[ColorPalette::PrimaryLight]]; background-color:[[ColorPalette::TertiaryDark]];}
* html .tiddler {height:1%;}
html {text-align:justify;}
body {font-size:1em; font-family: serif; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none; color:black; text-align:left;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.50em;}
h2 {font-size:1.40em;}
h3 {font-size:1.30em;}
h4 {font-size:1.20em;}
h5 {font-size:1.10em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:2em 0 1em 1em; left:-3px; top:-1px;}
.headerForeground {position:absolute; padding:2em 0 1em 1em; left:0px; top:0px;}
.siteTitle {font-size:5em;}
.siteSubtitle {font-size:1.25em;}
#mainMenu {position:absolute; left:0; width:14em; text-align:left; line-height:1.1em; padding:1.6em 0.5em 0.5em 0.5em; font-size:1.10em; background:[[ColorPalette::TertiaryPale]]; font-family:Arial, Helvetica, sans-serif;}
#sidebar {position:absolute; right:3px; width:16em; font-size:1.15em; font-family:Arial, Helvetica, sans-serif;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:1em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2.25em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.45em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.45em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:1.15em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px; -moz-border-radius-topleft: .25em; -moz-border-radius-topright: .25em;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0em 14em;}
.toolbar {text-align:right; font-size:1.15em;}
.tiddler {padding:1em 6em 0;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.85em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.35em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:left;}
.tagged li {display:inline;}
.tagging, .tagged {font-size:1.15em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:1.15em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:1.1em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.1em; line-height:1em; overflow:auto;}
.viewer code {font-size:1.1em; line-height:1em;}
.editor {font-size:1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:1.15em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.35em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::SecondaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::Foreground]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity=60)';}
/*}}}*/
!!!Or, Goodbye, Router Brick Road
As [[promised|For A Better GNU/Linux]], I ordered one of the cheapest routers available on the Slovenian market, and after some days, it promptly arrived. The """TP-LINK TL-WR741ND""" was only 25€. I was extremely pleased to see that the nice greenish box included -- among obnoxious things, such as a Windows-only drivers mini CD and a sticker across the LAN ports urging you to run the CD before connecting the cables -- a ''printed copy of the GNU General Public License''! I had never before seen this license in large-scale consumer appliances, printed on actual paper, in black on white. It made me like this cheap piece of ---cr---electronics even before I plugged it in to see whether it worked at all.
The first thing I discovered, though, was that the router doesn't support wireless bridge or wireless repeater modes. The advertised "bridge" mode is actually just WDS, a pathetic excuse for a standard which is notorious for not working between different brands. As my main router is a Belkin -- which are notorious for not working, period -- I paid a visit to uncle G to see what alternative firmwares were available for my new toy, in order to hopefully get it working in "real" bridged or repeater mode. What do you know -- the thingy is supported by """OpenWrt"""! I promptly downloaded the latest stock Backfire (v10.03) """OpenWrt""" firmware for my model and flashed it via the web interface. Cool. After a reset, I was greeted with the new, FLOSS firmware, and its stern webif (it's how they call the web interface these days). I later found out that there's also an "advanced" web interface with far more menus and options. Flashing in itself is extremely easy. You just use the router's web interface. Reverting to the original """TP-LINK""" firmware is equally easy -- you just flash it back, using the """OpenWrt""" web interface this time. As I was soon to find out though, to make """OpenWrt""" really do anything useful, you must get your hands dirty and no web interface, no matter how elegant and sophisticated, will do.
"""OpenWrt""" is quite Debianish in its look and feel. It has a package manager called opkg, it has configuration files neatly grouped together (under /etc/config), it has /etc/init.d to start and stop services, it has vi(m) (but not nano), it's a bit stripped down, so there are no man pages, you get the picture. Just imagine -- a GNU/Linux distro that fits in just under 4 MB! However, you really have to read the wiki and the forums through and through to get any useful answers. The knowledge is scattered all over the place, the oldwiki is in the process of being rewritten, all in all, a newbie nightmare if I ever saw one. But since impatience is a newbie's middle name, I googled some results on bridged client mode, mashed up a test config file (what would be /etc/network/interfaces in Debian and is /etc/config/network in """OpenWrt"""), and merrily rebooted the router.
Well, that was the end of it. I could never connect to the """TL-WR741ND""" again. In the hurry, I had bridged the wrong interfaces, so they weren't accessible anymore. I pinged all the possible IP numbers, but the router never once replied. I was toast. I bricked my new toy ... Wait! No, there was something in the wiki about debricking ... lemme see ... click ... click ... enter ... click ... scroll ... scroll ... the "tpl" trick ... the """U-Boot""" loader, the ... bingo, here it is: you just have to press the reset button on the router while it's booting, and """OpenWrt""" will revert to its defaults! Right -- I should be so lucky! As I found out the hard way, the feature was not supported on this router ... But wait, there's the notorious [[30/30/30|http://www.dd-wrt.com/wiki/index.php/Hard_reset_or_30/30/30]] reset procedure! ... Alas, no go. The router was still thick as a brick. Hmm, well, then there's the last resort: tftp the firmware while the router is booting up. ... Nope. That didn't work either. The creators of """OpenWrt""" had forgotten to enable the boot_wait variable in NVRAM. Oh, wait, they haven't forgotten -- the NVRAM is simply not writable anymore under the newer kernels ("""OpenWrt""" 10.03 runs the 2.6.32 kernel). Great. What else can I do? Mumble mumble -- use it as a paperweight? Naaah, the thingy is waaay too light for that! I'm ashamed to say that, in utter despair and contrary to all advice I could google out, I even tried randomly short-circuiting or grounding the contacts of the Hynex memory chip. It yielded no results whatsoever. What now? Maybe I can still try to access the serial console? There //was// a pictorial howto somewhere on the """OpenWrt""" wiki. But ... uhm, I'd need a serial converter circuit which costs more than my router did. Or ... I could use a specific Nokia USB cable to access the serial console, but that cable too costs about 30€ ... I'm a cheapskate and a smart ass to boot, so what'll I do? I'll try to connect the serial console pins directly to the serial interface of my desktop box. I know, I know, the computer serial ("""RS-232""") uses +15V and -15V levels, whereas my router works at 3V, so I'm most certainly gonna fry it, but what the heck, I wouldn't be a cheapskate if I was prepared to shell out more dough for a Nokia cable than the entire router cost me!
So, I smartly soldered some resistors to the serial console headers, in the hope they'd protect the router not from getting fried, but at least from catching fire, and went for it. What do you know, the contraption actually "worked" (sort of). I mean, all I got was some garbled output, beeps and weird characters in gtkterm, just enough to convince me that the serial console actually worked and that it ''was'' the way to go. So, after letting the prodigal idea simmer for a few days, I bought a used Nokia cable that seemed to have the right connector -- it was called """CA-53""". Well, it was no less than 5€ second hand and it didn't work. Uncle G told me, with an indifferent shrug, that it was just a common USB cable, nothing to get excited about. So, with a deep heartbreaking and purse-tearing sigh, I went online and actually ordered a fake Nokia """CA-42""", which is the newer version/replacement for the old """DKU-5""". It too came with an obnoxious Windows-only mini CD. By the way, ''don't buy other cables'' -- only the """DKU-5""" and the """CA-42""" will work, as they incorporate a chip ( a TTL level shifter) that is needed for accessing the router's serial console. In the end, the cable set me back for no less than 15€ postage included, but I will probably use it for other future routers I may purchase, so it was sorta worth it.
To cut a short story long, I was able to access the serial console and reset the router to its defaults. What a relief! The serial interface hadn't been fried by my experiments! However, that was the least of my problems. Now, I had to start from the beginning and find out whether client mode ("sta") would work at all. There's a tutorial in the """OpenWrt""" wiki about routed and masqueraded client modes (explaining also why bridging can't work in a standard 802.11 network without hacks -- basically, the MAC of the sender gets lost in the process). I found out that even routed client mode would not work with my main router -- so I went for the last possible option, the masquerading client. With this option, you put the client router (and all the PCs behind it) on a different subnet than the main router, and while it enables your new subnet to talk to the main LAN, the main LAN won't see your subnetted machines, but only one address -- your masquerading client. The other machines behind it are hidden and unreachable from the main LAN. Oh, well ...
So I followed the official wiki and never could make it work. I struggled for an entire day and for half of the next day, tried with adding routes and so on -- all in vain. Then it finally occured to me that I'm using a static IP on the machine connected to the router. I should try changing it to dhcp, since dhcp will then hopefully take care of gateways, routing and so on. And what do you know -- as soon as I changed /etc/network/interfaces to dhcp, my computer could surf the net! Masquerading client mode really works! Of course, I can only copy files ''from'' my subnetted LAN ''to'' my main LAN, and not the other way around, but, well, you get what you pay for. Besides, if I only knew something about networking, I could probably improve on this configuration with proper port forwarding, iptables rules, MAC spoofing or something. As it is, I must stick with the stock firmware and stock config files lest I brick the thingy again ...
Keep in mind that I've only reported the main bulk of my router woes here. I haven't even mentioned the workaround I had to implement so my router would autoconnect to my main router -- by default, it wouldn't do that no matter what. Can you imagine? Having a wireless station for making your wired machines go wireless, and having to telnet into the wireless station every time the wireless connection is lost, or there is a power outage, or the router is rebooted, or whatever, to ''manually'' issue {{{iwconfig wlan0 essid "<My WLAN ESSID>"}}}? I had to edit the default script in /lib/wifi to make it autoconnect. The most hilarious thing, however, is that, although """OpenWrt""" stock firmwares are targeted at specific models with known, specific chipsets, they come ''without the wireless kernel module''! Can you imagine the joke? A wireless router -- without wireless! Now, if it also came without routing, that would be perrrfect.
Although I may be making a bit of fun, such a decision is actually not that hard to understand: it's probably because permanent memory is at such a premium in these devices that some people who don't wish to utilize the wireless capabilities may choose to install some optional packages instead. Fact is, the packages that are "incorporated" in the openwrt firmware, can't be deleted to make place in the flash RAM. You can uninstall them, but no RAM gets freed when you do (of course). So it makes sense to restrict the bulk of stock packages as much as possible. By the way, the wireless module you must download for this router is {{{kmod-ath9k}}}. Not to mention that my new router only provides about 400k/s throughput, whereas my laptop's wireless card can easily reach speeds of 1M/s and more. On the other hand, you must understand that """OpenWrt""" is a project in progress -- and a mighty great one at that. Its hardware compatibility list is downright impressive. To think of it, it actually turns a simple appliance, such as a cheap wireless router, into a full fledged diskless and headless GNU/Linux machine in its own right! Now how about that!
All in all, I have a strong hunch that my adventures with this cheap router and this free firmware are by no means over yet ... I'm also quite sure that this is not the only router I'll be installing """OpenWrt""" on.
!!!Famous Last Words, October 2010
<<<
All in all, I have a strong hunch that my adventures with this cheap router and this free firmware are by no means over yet ...
<<<
One day, while trying to log into the router routinely, over ssh, just to check how it's doing today, I found out it was down. My first thought was that probably the wireless just got disconnected from my main router, so I unplugged the """TP-LINK""" from the mains and re-plugged it again. However, wireless login still didn't work. I then tried to log in directly, by connecting to one of its ethernet ports, but couldn't. Apparently, the device wasn't even setting up an internal IP number where it could be reached at. Luckily, during my ongoing adventures with this cheap router, I had drilled a hole in its case (between the power jack and the ethernet ports) and routed its serial connection to a stereo headphone jack. So, connecting with my nondescript """CA-42""" cable was just a matter of seconds. Firing up {{{GTKTerm}}}, I found out that the u-boot loader was stuck in a loop, apparently unable to unzip the kernel (or to read it at all). I waited for the {{{Autobooting in 1 second}}} message to appear again, and quickly typed "tpl" to get into its recovery mode. At least, the u-boot loader was still working. Or so it seemed. At first, I tried to find some tutorial to help me rescue the {{{jffs2}}} partition, but didn't have any luck with that. I later found out that I should have been looking for the /dev/mtdblock/3 partition, instead of the /dev/mtdblock/4 that's cited in all the tutorials and the howtos. Whatever. As already noticed, the """OpenWRT""" forums conceal a wealth of information, but, unfortunately, "conceal" ''is'' the word. On the plus side, they are an interesting read -- if you're not in a hurry. You'll find info on how to make custom buttons scripts, or how to enable torrenting or ntfs on your router - but if you are looking for a very specific piece of information, such as rescuing a {{{jffs2}}} partition, chances are, you won't find it. Of course, you may well stumble upon it weeks later, when your {{{jffs2}}} partition is ancient history.
So, unable to rescue my partition quickly, I decided, impatient as I am, to simply re-flash the router's firmware. Of course, all my personal settings, modifications and scripts would be lost in the process (because, as always, I had no backups. Real men don't need no backups).
So I went for it anyway.
However, all my attempts to {{{tftp}}} the firmware again were unsuccessful! {{{Wireshark}}} told me that my computer was trying to upload the firmware to the router, but was bumping into a {{{port unreachable}}} situation -- although the two devices had obviously established a connection and acknowledged their respective IP numbers. For a moment, I thought I was lost there.
Then, as always, uncle G came to the rescue again. I found [[some|http://wiki.openwrt.org/toh/tp-link/tl-wr1043nd?s#oem.installation.using.the.kermit.and.rs232.method]] instructions on how to upload the firmware via [[serial console|http://wiki.openwrt.org/oldwiki/OpenWrtDocs/Troubleshooting#serial.console]] with {{{kermit}}}. Some settings had to be configured specifically -- regarding the serial port, the speed and the packet lengths to be used, the "robust" option had to be enabled, and so on -- and then the firmware was nicely uploaded by issuing the {{{loadb}}} command in u-boot (it automatically chooses the 0x81000000 start address for the upload). I then proceeded to copy the firmware image from RAM to its working flash address, which is 0x9f020000. However, when I rebooted the thing, I found it was still stuck in its never-ending loop. Either the firmware image hadn't been uploaded at all, or it hadn't been copied to flash RAM. So I had to upload it again. But, this time, it didn't work anymore. Kermit was spitting out write errors by the dozen: it seemed that the router's RAM wasn't writable anymore! Some deep-buried nvram setting must have gotten borked -- that's why the router ceased to operate in the first place, and that's why it gave me {{{port unreachable}}} when trying to {{{tftp}}} the firmware over ethernet. This is the u-boot command I used in order to be able to flash it with {{{kermit}}} again:
{{{
protect off 0x81000000 +0x3c0000
erase 0x81000000 +0x3c0000
}}}
Now, I could finally upload the firmware image with {{{kermit}}}. As soon as it had finished uploading, without rebooting the router, I went into the u-boot interface in {{{GTKTerm}}} and issued:
{{{
protect off 0x9f020000 +0x3c0000
erase 0x9f020000 +0x3c0000
cp.b 0x81000000 0x9f020000 0x3c0000
bootm 0x9f020000
}}}
Afterwards, I made a 30/30/30 reboot, and then I logged into u-boot again, adding
{{{
protect on 0x9f020000 +0x3c0000
}}}
You know -- for good measure, just in case...
All these hex addresses weren't easy to come by. Other """TP-LINK""" models have different addresses, and some even have 8 MB of flash RAM -- as opposed to 4 -- so the ranges to use are completely different.
Having figured all this out, however, I was tempted to play with the router some more (well, it's cheap enough even for me not to be too reluctant to possibly bricking it). And, having combed the Internet left and right to finally get it re-flashed again, I stumbled upon some dd-wrt forums stating that there ''was'' a dd-wrt firmware available for """TP-LINK TL-WR741ND""" after all. So, you already guess -- my next step was to try and see how dd-wrt fared on this router. From my initial attempts it would seem that, unfortunately, client bridging mode is broken in dd-wrt, although, according to hearsay evidence, it had been working in some previous versions. Further report follows.
!!!The Dresdner-wrt Interlude
After trying out the august and the october (2010) builds of dd-wrt, I'm a bit disappointed. They both lack support for wireless bridging, although it appears that it just "might" work in a future release. I suppose this cheap device just isn't high on their priority list (they are a for-profit company, after all). Currently, they are using the madwifi drivers instead of the atheros athk9 ones, so that may be (one of) the problems. I must admit though that their web interface is far better thought out than the open-wrt one, but, on the other hand, their command-line configuration was inscrutable to me. Just couldn't find where the configuration files were kept. So I had to do everything through the webif. In summary, the router "hooked up" to my main "broadcast domain", even got itself an IP number served on a dhcp plate, but pinging anything (other than the """TP-LINK TL-WR741ND""" itself) from a machine wired to it yielded no response. So its ethernet interface was obviously not "connected" (or "bridged") to the WLAN interface at all: it was "only" its wireless signal that was apparently "hooked up" to my main router. According to some reports, this is a known problem - in recent builds, the client bridge mode is not working. According to other [[reports|http://www.dd-wrt.com/phpBB2/viewtopic.php?t=73937]] on similar models, the tp-link builds are riddled with even greater problems than that, such as slowdowns, hang-ups and the like. All this, of course, is a complete deal-breaker for me.
The webif, although very nicely laid out, isn't designed for easy re-flashing. My attempts to upload the openwrt and the original tp-link firmwares both ended in an error message. In this respect, their webif is much less capable than the openwrt -- or the factory -- ones, which let you flash back and forth at your pleasure. With dd-wrt, I would have to hunt down and download a special firmware image, specifically configured for webif re-flashing, but rather than doing that, I opted for the delicate {{{GTKTerm}}} + {{{kermit}}} serial-port procedure again. I re-flashed it with openwrt Backfire -- only, this time, I used the 10.03-rc3 version. Despite being only a "release candidate", it is ''very'' much nicer than the 10.03: for one, the wireless module works out of the box, so, after you comment out a line in {{{/etc/config/wireless}}} that's locking down the wireless interface, and provide the ESSID of your WLAN, the router connects of itself, grabs an IP number (if served one), and allows you to surf the internet from a computer connected to its ethernet port. There are no additional deep-buried files to edit in order to get it working. Working with openwrt has been really polished up, and made a lot easier, which I like.
Currently, I'm trying to make {{{cron}}} work -- it just won't pick up the {{{@reboot}}} directives I gave it...
...Well of course it won't, they're using the lean and mean Dillon's cron -- which knows nothing of such sophisticated, refined options as {{{@reboot}}}... Oh, well, nothing lost. I'll use the {{{rc.local}}} instead. Namely, I have a little script that keeps checking if the router is online, and if it's not, resets the wireless and wired interface, and if this doesn't help, resets the router. It runs all the time, almost like a daemon of some sort. The openwrt firmware has a somewhat flaky web interface, but it's optimal for a fire-and-forget router. You just have to know how to configure it, and then you can probably forget about it.
!!!Other Useful Info
A procedure supposed to [[reflash a router|http://wiki.openwrt.org/toh/linksys/wrt54gl]] without a web interface (not tested yet):
{{{
mtd -e linux -r write /mnt/<firmwarefilename.bin> linux
}}}
Command for [[reverting|http://wiki.openwrt.org/toh/linksys/wrt54gl]] the router configuration to the openwrt defaults (can be issued, for example, in failsafe mode):
{{{
mtd -r erase rootfs_data
}}}
[[the great openwrt TP-LINK TL-WR741ND wiki|http://wiki.openwrt.org/toh/tp-link/tl-wr741nd]]
[[installing openwrt|http://wiki.openwrt.org/doc/howto/installing]]
[[tftping openwrt|http://wiki.openwrt.org/doc/howto/tftp]]
[[openwrt documentation hub page|http://wiki.openwrt.org/doc/start]]
[[openwrt client mode wireless wiki|http://wiki.openwrt.org/doc/howto/clientmode]]
[[openwrt masqueraded/natted routed client|http://wiki.openwrt.org/doc/recipes/routedclient]]
[[openwrt bridged AP recipe|http://wiki.openwrt.org/doc/recipes/bridgedap]]
[[openwrt multi-WAN configuration|http://wiki.openwrt.org/doc/uci/multiwan]]
[[the openwrt uci configuration system|http://wiki.openwrt.org/doc/uci]]
[[openwrt wake-on-LAN|http://wiki.openwrt.org/doc/uci/wol]]
[[openwrt traffic shaping|http://wiki.openwrt.org/doc/howto/ts]]
[[openwrt NFS|http://wiki.openwrt.org/doc/howto/nfs]]
[[the openwrt howtos|https://forum.openwrt.org/viewforum.php?id=17&p=7]]
[[openwrt atheros repeater with madwifi driver thread|https://forum.openwrt.org/viewtopic.php?id=23705]]
[[openwrt TL-WR841ND HowTo|http://wiki.openwrt.org/toh/tp-link/tl-wr841nd]]
[[entering failsafe on TL-WR1043ND|https://forum.openwrt.org/viewtopic.php?id=26329]]
[[entering failsafe on TL-WR841ND|https://forum.openwrt.org/viewtopic.php?id=26439]]
[[openwrt emergency access daemon|http://wiki.openwrt.org/doc/howto/ead]]
[[running openwrt on TL-WR841ND|https://forum.openwrt.org/viewtopic.php?id=26561&p=2]]
[[installing openwrt on TL-WR841ND|https://forum.openwrt.org/viewtopic.php?id=21425]]
[[successfully resetting TL-WR841N|https://forum.openwrt.org/viewtopic.php?id=26671]]
[[using|http://wiki.georgweiss.de/Hardware/ASUS-WL500pg#wifi-on.2Foff-toggle_with_EZ-SETUP-button]] [[QSS|http://eko.one.pl/?p=openwrt-button]] [[button|https://forum.openwrt.org/viewtopic.php?id=26871]] to [[toggle|http://wiki.openwrt.org/doc/howto/wifitoggle]] [[wifi|https://forum.openwrt.org/viewtopic.php?id=11903]]
[[a WL500GP success story|https://forum.openwrt.org/viewtopic.php?id=26597]]
[[writing to the jffs partition|https://forum.openwrt.org/viewtopic.php?id=66]]
[[script for testing if interface is up|https://forum.openwrt.org/viewtopic.php?id=24719]]
[[only g mode working?|https://forum.openwrt.org/viewtopic.php?id=24682]]
[[wireless bridge with gargoyle ebtables patch|http://projectgus.com/2010/03/wireless-client-bridging-with-openwrt/]]
[[tackling u-boot|https://forum.openwrt.org/viewtopic.php?id=24203]]
[[x-wrt interface bricks the router|https://forum.openwrt.org/viewtopic.php?id=22742&p=31]]
[[openwrt on the RouterStation|http://www.ubnt.com/wiki/RouterStation_OpenWRT_SW_Setup_Guide]]
[[an old openwrt howto|http://cyberforat.squat.net/openwrt/OpenWrt-HOWTO/x830.html]]
[[kamikaze doc|http://downloads.openwrt.org/kamikaze/docs/openwrt.html#x1-80001.2.1]]
[[client mode woes|https://forum.openwrt.org/viewtopic.php?id=26110]]
[[dd-wrt firmwares for the TP-LINK TL-WR741ND|ftp://dd-wrt.com/others/eko/BrainSlayer-V24-preSP2/10-12-10-r15437/tplink_tl-wr741ndv1/]]
[[dd-wrt faq|http://www.dd-wrt.com/wiki/index.php/Firmware_FAQ#Why_does_my_router_hang_when_using_P2P_applications.3F_.28BitTorrent.2C_eMule.2C....29]]
[[dd-wrt ssh and telnet access|http://www.dd-wrt.com/wiki/index.php/Telnet/SSH_and_the_Command_Line]]
[[dd-wrt wireless bridge|http://www.dd-wrt.com/wiki/index.php/Wireless_Bridge]]
[[dd-wrt client mode|http://www.dd-wrt.com/wiki/index.php/Client_Mode]]
[[dd-wrt bridged client|http://www.dd-wrt.com/wiki/index.php/Client_Bridged]]
[[dd-wrt wireless-n support|http://www.dd-wrt.com/wiki/index.php/Wireless-N_Configuration]]
[[dd-wrt and sshfs|http://www.dd-wrt.com/wiki/index.php/Sshfs]]
[[dd-wrt repeater bridge|http://www.dd-wrt.com/wiki/index.php/Repeater_Bridge]]
[[another dd-wrt TP-LINK TL-WR741ND thread|http://www.dd-wrt.com/phpBB2/viewtopic.php?t=77173]]
[[another atheros repeater/bridge thread|http://www.dd-wrt.com/phpBB2/viewtopic.php?t=47708&postdays=0&postorder=asc&start=0]]
[[preventing router slowdowns|http://www.dd-wrt.com/wiki/index.php/Router_Slowdown]]
[[the DD-WRT controversy|http://www.wi-fiplanet.com/columns/article.php/3816236]]
[[proxy_arp and 255.255.255.255 netmask|http://www.faqs.org/docs/Linux-HOWTO/Wireless-HOWTO.html#s10]]
[[parprouted|http://www.aracne.name/linnotes/2009/05/openwrt-kamikaze-wi-fiethernet-bridging-with-parprouted/]]
[[parprouted|http://www.johnlewis.ie/parprouted-your-friendly-network-spanning-friend/#more-1099]]
[[the longest wireless bridge thread|http://forums.anandtech.com/showthread.php?t=1115]]
[[unbricking legwork|http://forum.fw5.net/viewtopic.php?f=7&t=6]]
[[making a host always accept incoming ssh connections|https://forum.openwrt.org/viewtopic.php?id=25853]]
[[alternative firmwares for specific (older) routers|http://home.x-pec.com/~ivc/sites/ivc/wrt54g/]]
[[backing up openwrt|http://www.tedcarnahan.com/2007/02/08/backing-up-openwrt/]]
A huge thanks to all you, named and unnamed, unanimous and anonymous, GNU/Linux developers, supporters, promotors etc. Yes, we ''do'' notice, yes, we do appreciate!
!Iceweasel's Split Personalities
If you're using a dozen different Iceweasel/Firefox profiles like me, you're bound to develop the so-called Manic Surfer Syndrome; more widely known as Multiple Browsonality Disorder, this syndrome is most clearly manifested by not being able to distinguish which browser profile you're currently in. The most common symptom is the so-called Browser Bookmark Blunder, which basically consists in inadvertently saving your bookmarks into the wrong profile, such as saving booze-related bookmarks into the //"Healthy Living"// profile, or saving your naughty bookmarks into the //"Office"// profile (which gets synchronized with your bosses computer on an hourly basis).
How do I distinguish among this many personalities? Most of the Net healers recommend downloading additional browser themes and dressing up your profiles in different skins, but it's been a while now since I was into skins, wigs, cross-dressing and other Norman Bates stuff. In addition, given the sheer number of profiles I use, I'm not sure I could remember which skin goes with what profile. So I looked around for a simple, conspicuous alternative. This is what I came up with in the end:
Grab yorself {{{mozilla-ctxtextensions}}} at your nearest repo, it's a great package for power users (some would say a "must-have"). It will install an additional menu of goodies in your Iceweasel menu bar, and add some new entries to your context menu as well.
Now, fire up each of your Iceweasel profiles and do the following:
#Answer to the prompt (the extension will ask you if you want to run the full version or the light one; I chose the light one which is faster, but you can choose whatever you like, of course).
#The extensions window should open. Select the installed extension and click on //Settings//.
#A dialog, titled //"""Preferences of ContextMenu Extensions"""//, will pop up. Select the last heading, //Custom Scripts//, and click on the button //New Item//. An entry dialog will pop up.
#Type in your new script name (I named my script ''changeBrowserTitle'').
#In the script editing window that opens, type: {{{document.title="Here you put in the name of your Iceweasel profile. (Quotation marks are required.)"}}}
#After that, select the //Options// tab and tick (enable) the option //Execute automatically when pages are loaded//. Optionally, you can also enable //Execute automatically when Navigator starts up//.
#Click on //OK// to close the //Property// dialog. In the //"""Preferences of ContextMenu Extensions"""// window, click on the //General(1)// category. Select the //Misc// tab. Tick //Custom Scripts//. You're done. Now, when you start up the profile, your browser windows should have the profile name in their title bar. If you want the original page title(s) to be displayed as well, it would be trivial to extend the script's functionality to show both (the page title ''and'' the profile name). An example:
{{{
var myTitle=document.title
if (myTitle.indexOf("[WORK PROFILE]")){
myTitle="[WORK PROFILE] --- "+document.title;
}
document.title=myTitle
}}}
An additional refinement to improve readability would be to ''replace'' the string //Iceweasel// in the title bar instead of ''adding'' your own string. A side note: I haven't been able to force this on browser windows with several open tabs: only the foremost tab (i.e. the visible one) gets its title changed, the other tabs must be refreshed in order to get their title bars updated. Also, some pages which rely heavily on javascript, don't pick up the script -- this very page being one of them.
<<<
Yep, son, we have met the enemy and he is US.
//Pogo//
<<<
The generalized //Peter principle// states that systems facing (evolutionary) problems tend to quickly tackle the simple ones, but get stuck in the difficult ones. It has been observed that, even if an evolutionary system were to overcome all its problems, the so-called //red queen principle// would kick in. This principle states that //in evolution, systems tend to develop up to the limit of their incompetence//. In the words of the red queen to Alice, "in this place it takes all the running you can do, to keep in the same place". In biology, this would imply that "rabbits fleeing faster foster faster foxes". As foxes go, I wouldn't exactly say that such relative improvements are necessarily absolute improvements. On the contrary, it would seem that running faster just to capture the same amount of prey is a case of //decreased fitness// and useless expenditure of energy, since running faster generally involves ''non-linear'' increases in energy dispersion. The case is actually not at all dissimilar to the case of a forest, with ever taller trees competing for ever the same amount of light. We could perhaps speak of absolute improvements if the rabbits, in addition to getting faster, also got bigger, thus compensating for the over-expenditure of energy involved in chasing them.
Anyhow, on one of my countless web ramblings, I've ran into an interesting objection to this principle:
<<<
If some species is ever fortunate enough to overcome all its obstacles, then there is no reason why new obstacles should arise. Indeed many species have managed to survive, largely unaltered, for millenia, just because they have evolved to the point where they are fully able to cope with their environment. It is only when the environment changes, which it need not necessarily do, that they will once again have to start running just in order to stand still.
http://pespmc1.vub.ac.be/Annotations/PETERPR.0.html
<<<
The objection is indeed very smart and sounds quite truthful; it immediately brings to mind sharks, crocodiles, and many insects that have been around -- virtually unchanged -- for tens or even hundreds of millions of years. However invalid the red queen principle may be for some species, though, it would appear that it retains its validity at least for some species; notably, for humans. You just have to take a quick glimpse at our recorded history to see that, far from being close to solve all our problems, we have been creating new ones at a far faster rate than solving them. Not only are we creating many more problems than we're solving, we're also creating problems that are ever more //intricate// and -- as they steadily increase in scale -- ever more //pernicious//. As Einstein reportedly said, ''the significant problems we face cannot be solved at the same level of thinking we were at when we created them''.
On the other hand, the vast majority of what we call "solutions" are, in fact, nothing more but //problems with a PR spin//. Why is it so?
Well, my first guess would be that, at least for us humans, a specific corollary should be established; namely:
//Well before they could ever overcome external problems, the humans start creating new ones.//
Which could also be expressed as:
//Humans are their own greatest problem.//
Or, as Pogo said:
//I have seen the fnords and it is US.//
From the above, we could safely infer a sort of "human entropy theory":
//We will sooner run out of humans than out of problems//.
In other words:
//The Earth will struggle with problems created by us for a long time after our extinction.// But, at least, then, it will have a chance.
<<<
Well, trade is only "efficient" because a lot of force and international violence keeps oil prices from going too high, so if you really wanted to measure the "efficiency of trade," you'd have to figure in all of the other costs which make it that way, like the costs of the Pentagon for one. And if anyone ever did that, you couldn't possibly say that trade is "efficient." If anybody ever bothered to calculate these things, the efficiency of trade would drop very, very low, and it would in fact prove to be extremely inefficient.
Noam Chomsky, //Understanding Power//, p. 258
<<<
Suppose, just for a moment and just as a mental experiment, it was possible to quantify almost everything that is involved in capitalist production; suppose environmental repercussions of the industry could really be transposed into actual figures, suppose the health impact on a society employed behind a transporter could really be translated into dollars or euros, suppose the overworking strain of young women and their missed motherhoods could really be transformed into precise amounts of money, suppose the 8 hours of free time you forfeit every day could really be measured in wealth equivalents (they can't: how many millions would it take to make you work from the moment you were born to the moment you drop dead, without as much as a minute of pause; is there ''any'' amount you'd be willing to make such an exchange for?).
Now suppose we could enforce all these "negative externalities" (''damn real'' costs that are cunningly hidden and subsequently dumped on the society -- or the Earth -- at large) to be covered by the enterprise: suppose enterprises were required to reinstate any manipulated environment to the //status quo// (prior, or pristine, state) after exploiting it; suppose enterprises were somehow forced to ''really'' compensate for any health impacts on their workers caused by their work conditions; suppose child labor and proxy sweatshops were ''really'' eradicated; suppose there was a way to calculate ''adequate'' compensations for the victims of chemical poisoning, mutagenic contraceptives, enterprise-induced landslides and the like, and a way to actually make the enterprises ''pay'' such compensations; suppose there was a way to calculate the actual damage caused by the BP oil spill, and make BP, ''not the taxpayers'', pay -- would you still consider enterpreneural capitalism to be viable at all? What I mean to say is: would capitalism, //stripped of all and any negative externalities and forced to actually support itself, still bring any profit// and thus be a viable economic system?
/%
!info
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|show/hide right sidebar (SideBarOptions)|
Usage
<<<
{{{
<<tiddler ToggleRightSidebar>>
<<tiddler ToggleRightSidebar with: label tooltip>>
}}}
Try it: <<tiddler ToggleRightSidebar##show
with: {{config.options.chkShowRightSidebar?'►':'◄'}}>>
<<<
Configuration:
<<<
{{{
config.options.chkShowRightSidebar (true)
config.options.txtToggleRightSideBarLabelShow (◄)
config.options.txtToggleRightSideBarLabelHide (►)
}}}
<<<
!end
!show
<<tiddler {{
var co=config.options;
if (co.chkShowRightSidebar===undefined) co.chkShowRightSidebar=false;
var sb=document.getElementById('sidebar');
var da=document.getElementById('displayArea');
if (sb) {
sb.style.display=co.chkShowRightSidebar?'block':'none';
da.style.marginRight=co.chkShowRightSidebar?'':'1em';
}
'';}}>><html><nowiki><a href='javascript:;' title="$2"
onmouseover="
this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
+encodeURIComponent(encodeURIComponent(this.onclick))
+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
var co=config.options;
var opt='chkShowRightSidebar';
var show=co[opt]=!co[opt];
var sb=document.getElementById('sidebar');
var da=document.getElementById('displayArea');
if (sb) {
sb.style.display=show?'block':'none';
da.style.marginRight=show?'':'1em';
}
saveOptionCookie(opt);
var labelShow=co.txtToggleRightSideBarLabelShow||'sidebar ◄';
var labelHide=co.txtToggleRightSideBarLabelHide||'sidebar ►';
if (this.innerHTML==labelShow||this.innerHTML==labelHide)
this.innerHTML=show?labelHide:labelShow;
this.title=(show?'hide':'show')+' right sidebar';
var sm=document.getElementById('storyMenu');
if (sm) config.refreshers.content(sm);
return false;
">$1</a></html>
!end
%/<<tiddler {{
var src='ToggleRightSidebar';
src+(tiddler&&tiddler.title==src?'##info':'##show');
}} with: {{
var co=config.options;
var labelShow=co.txtToggleRightSideBarLabelShow||'sidebar ◄';
var labelHide=co.txtToggleRightSideBarLabelHide||'sidebar ►';
'$1'!='$'+'1'?'$1':(co.chkShowRightSidebar?labelHide:labelShow);
}} {{
var tip=(config.options.chkShowRightSidebar?'hide':'show')+' right sidebar';
'$2'!='$'+'2'?'$2':tip;
}}>>
/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{
// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'bufferoverflow';
// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = false;
window.readOnly = false; // make sure of it (for tw 2.2)
window.showBackstage = true; // show backstage too
// disable autosave in d3
if (window.location.protocol != "file:")
config.options.chkGTDLazyAutoSave = false;
// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}
// create some shadow tiddler content
merge(config.shadowTiddlers,{
'WelcomeToTiddlyspot':[
"This document is a ~TiddlyWiki from tiddlyspot.com. A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //What now?// @@ Before you can save any changes, you need to enter your password in the form below. Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
"<<tiddler TspotControls>>",
"See also GettingStarted.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working online// @@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// @@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick. You can make changes and save them locally without being connected to the Internet. When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Help!// @@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]]. Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help. If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
"",
"@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// @@ We hope you like using your tiddlyspot.com site. Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),
'TspotControls':[
"| tiddlyspot password:|<<option pasUploadPassword>>|",
"| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
"| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),
'TspotSidebar':[
"<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . . " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n"),
'TspotOptions':[
"tiddlyspot password:",
"<<option pasUploadPassword>>",
""
].join("\n")
});
//}}}
!!!Or, On Political Correctness
We live in a society where discrimination is regarded as perhaps the ultimate in political incorrectness and is fought against everywhere, every step of the way. But is it really so? In my opinion, alas, it's just words, words, words. We are actually as discriminating (if not worse) as, say, 100 years ago. We're just much better at PR and at calling a spade an "agricultural implement". Underneath all those fancy words, however, a spade remains a spade, or, as I like to put it, it's the same old turds, only with new condiments. Let me just point out ''one'' of the many ways we can hide discrimination under the cloak of apparent Political Correctness. Remember, this is just one of the many ways; some nations, just as some individuals, are better at certain ways, other nations at others, so probably not everybody will relate to what I am about to say. Maybe everybody should think for themselves and try to discover their own specific ways of discriminating.
The way I'm going to describe is a way of //de-privileging// certain groups without, ahem, "discriminating" them, but rather through //privileging// groups that fulfill certain conditions. But before doing that, let me quote, as some sort of introduction to my musings, an insightful article by Dean Baker:
<<<
It is ridiculous to argue that the inequality in the U.S. is simply the result of free markets. Markets are structured by governments, and the rich have used their control of the government to structure the market in ways to make themselves richer.
The mechanisms for upward redistribution can be seen everywhere. Most bakerrecently the government bailouts of too big to fail banks meant that the top executives of Citigroup, Goldman, and the rest could continue to draw paychecks in the tens of millions of dollars. The implicit government guarantee enjoyed by these institutions amounts to a subsidy of tens of billions each year that is divided among their higher paid employees and their shareholders.
Patent and copyright monopolies are another way in which the government redistributes income upward. The income from these government granted monopolies flows overwhelmingly to people in the top 10 percent of the income distribution. These interventions in the market serve a purpose, but there are other ways to support research and creative activity that are more efficient and lead to less inequality.
The pattern of trade pursued by the United States over the last three decades, in which less educated workers are placed in competition with low-paid workers in the developing world, while the most highly educated workers are largely protected, also increases inequality. This effect is increased as a result of the over-valued dollar.
Federal Reserve Board policy that explicitly sacrifices employment in order to insure against inflation also has the effect of redistributing income upward. When the Fed raises interest rates to keep the unemployment rate from falling too low it is factory workers and store clerks who lose their jobs, not doctors and lawyers. Of course, the main beneficiaries of lower inflation are bondholders who would see their wealth eroded by higher inflation.
http://www.counterpunch.org/baker01132011.html
<<<
Now, I'd like to elaborate on the concept, actually, take it into a different direction:
Some people can ride on trains for free. Generally, it's the people that work in the railroad agencies (or once did). Others can't. But that's not discrimination, or course.
Some people get guaranteed minimum wages. Others don't. In many lines of work, there is no such thing as a minimum wage. On the contrary, frequently their wages are determined on a "how low can you go" basis. But that's not discrimination, of course.
Some people are entitled to charity clothing or food packs. Generally it's the people that can prove they are regular citizens of that particular country (as proof, they may have to show their ID, or SSN, or whatever number/card is required). Others aren't. They may be war refugees, thousands of miles from home, and they may be in even greater need of charity than any locals, it doesn't matter: the point is they aren't regular citizens here -- so let them starve! But that's not discrimination, of course.
Some people, or groups of people we call Trade Unions, regularly engage in negotiations with the Government. (Almost) each time they do, these groups score a small victory, be it in their job security, their social security, their health security, their wages, their working hours, their bonuses, or whatever. What we seldom notice is how, each small victory that pushes them up a notch, leaves a notch behind many people which don't have Trade Unions to engage in such negotiations on their behalf. So, each small victory for those Unions is, comparatively speaking, another small stale mate for many many others. And this happens //every single time// they meet with the Government to reach an agreement. //Every single time, year after year, decade after decade//, a non-negligible segment of the population stays degraded a notch. And another notch. And another. But that's not discrimination, of course.
Some people -- more precisely, certain biogenetic corporations -- engineer seeds and, although these are but minor modifications of preexisting natural seeds, actually obtain patents for them. If then, say, their patented seeds pollute your //natural// crop, they are not treated as polluters as they should be; oh, no. Instead, //you// are treated as a thief who has stolen their seed. Since you obviously can't patent natural seeds that have been used by generation after generation of your people, while they can -- and did -- patent theirs, //they will win in any court of law//. But that's not discrimination, of course.
Some people -- in Europe, it's the citizens of the European Union -- have the privilege of their basic human rights being respected and actually enforced: say, their right not to be sold into prostitution. Other's don't have that privilege. Just because they don't have an European passport to show, the authorities will tolerate their human rights being forfeited, and happily turn a blind eye. But that's not discrimination, of course.
Well, I, for one, am sick of that. In my view, if a person's human rights have been trampled upon on European soil, it doesn't matter which passport -- or no passport at all -- that person had. It's just like a woman was raped, or a child was severely beaten in my own house, and I did absolutely nothing to prevent it. What does it matter if the woman is from another town, or if the child is not my child -- it ''happened in my own house!'' For goodness sake, ''I let it happen in the sacredness of my own house!'' I'll feel ashamed till the day I die, and even then nothing -- nothing! -- will ever wash that shame away.
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 06/03/2012 08:54:18 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%2Fdev%2Frandom]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
| 09/05/2012 07:42:23 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%5B%5BLaptops%20In%20Heat%20Part%204%5D%5D]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
| 16/05/2012 09:37:18 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%5B%5BSilence%20The%20Roaring%20Beast%5D%5D]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
| 31/05/2012 05:48:25 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#Thanks]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
| 16/01/2013 20:42:21 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%5B%5BThe%20Under-Lying%20Mechanics%5D%5D]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . | ok |
| 16/01/2013 20:43:09 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%5B%5BThe%20Under-Lying%20Mechanics%5D%5D]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
| 16/01/2013 20:45:00 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%5B%5BThe%20Under-Lying%20Mechanics%5D%5D]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
| 09/02/2015 00:11:51 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#MLDonkey]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . | ok |
| 09/02/2015 01:03:47 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%5B%5BAll%20Wrongs%20Deserved%5D%5D]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
| 09/02/2015 01:51:44 | Klistvud | [[/|http://bufferoverflow.tiddlyspot.com/#%5B%5BWhy%20Not%20Systemd%5D%5D]] | [[store.cgi|http://bufferoverflow.tiddlyspot.com/store.cgi]] | . | [[index.html | http://bufferoverflow.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
major: 4, minor: 1, revision: 3,
date: new Date("Feb 24, 2008"),
source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
author: 'BidiX (BidiX (at) bidix (dot) info',
coreVersion: '2.2.0'
};
//
// Environment
//
if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false; // true to activate both in Plugin and UploadService
//
// Upload Macro
//
config.macros.upload = {
// default values
defaultBackupDir: '', //no backup
defaultStoreScript: "store.php",
defaultToFilename: "index.html",
defaultUploadDir: ".",
authenticateUser: true // UploadService Authenticate User
};
config.macros.upload.label = {
promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
promptParamMacro: "Save and Upload this TiddlyWiki in %0",
saveLabel: "save to web",
saveToDisk: "save to disk",
uploadLabel: "upload"
};
config.macros.upload.messages = {
noStoreUrl: "No store URL in parmeters or options",
usernameOrPasswordMissing: "Username or password missing"
};
config.macros.upload.handler = function(place,macroName,params) {
if (readOnly)
return;
var label;
if (document.location.toString().substr(0,4) == "http")
label = this.label.saveLabel;
else
label = this.label.uploadLabel;
var prompt;
if (params[0]) {
prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0],
(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
} else {
prompt = this.label.promptOption;
}
createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};
config.macros.upload.action = function(params)
{
// for missing macro parameter set value from options
if (!params) params = {};
var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
var username = params[4] ? params[4] : config.options.txtUploadUserName;
var password = config.options.pasUploadPassword; // for security reason no password as macro parameter
// for still missing parameter set default value
if ((!storeUrl) && (document.location.toString().substr(0,4) == "http"))
storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
if (storeUrl.substr(0,4) != "http")
storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
if (!toFilename)
toFilename = bidix.basename(window.location.toString());
if (!toFilename)
toFilename = config.macros.upload.defaultToFilename;
if (!uploadDir)
uploadDir = config.macros.upload.defaultUploadDir;
if (!backupDir)
backupDir = config.macros.upload.defaultBackupDir;
// report error if still missing
if (!storeUrl) {
alert(config.macros.upload.messages.noStoreUrl);
clearMessage();
return false;
}
if (config.macros.upload.authenticateUser && (!username || !password)) {
alert(config.macros.upload.messages.usernameOrPasswordMissing);
clearMessage();
return false;
}
bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password);
return false;
};
config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir)
{
if (!storeUrl)
return null;
var dest = bidix.dirname(storeUrl);
if (uploadDir && uploadDir != '.')
dest = dest + '/' + uploadDir;
dest = dest + '/' + toFilename;
return dest;
};
//
// uploadOptions Macro
//
config.macros.uploadOptions = {
handler: function(place,macroName,params) {
var wizard = new Wizard();
wizard.createWizard(place,this.wizardTitle);
wizard.addStep(this.step1Title,this.step1Html);
var markList = wizard.getElement("markList");
var listWrapper = document.createElement("div");
markList.parentNode.insertBefore(listWrapper,markList);
wizard.setValue("listWrapper",listWrapper);
this.refreshOptions(listWrapper,false);
var uploadCaption;
if (document.location.toString().substr(0,4) == "http")
uploadCaption = config.macros.upload.label.saveLabel;
else
uploadCaption = config.macros.upload.label.uploadLabel;
wizard.setButtons([
{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption,
onClick: config.macros.upload.action},
{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
]);
},
options: [
"txtUploadUserName",
"pasUploadPassword",
"txtUploadStoreUrl",
"txtUploadDir",
"txtUploadFilename",
"txtUploadBackupDir",
"chkUploadLog",
"txtUploadLogMaxLine"
],
refreshOptions: function(listWrapper) {
var opts = [];
for(i=0; i<this.options.length; i++) {
var opt = {};
opts.push();
opt.option = "";
n = this.options[i];
opt.name = n;
opt.lowlight = !config.optionsDesc[n];
opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
opts.push(opt);
}
var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
for(n=0; n<opts.length; n++) {
var type = opts[n].name.substr(0,3);
var h = config.macros.option.types[type];
if (h && h.create) {
h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
}
}
},
onCancel: function(e)
{
backstage.switchTab(null);
return false;
},
wizardTitle: "Upload with options",
step1Title: "These options are saved in cookies in your browser",
step1Html: "<input type='hidden' name='markList'></input><br>",
cancelButton: "Cancel",
cancelButtonPrompt: "Cancel prompt",
listViewTemplate: {
columns: [
{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
{name: 'Option', field: 'option', title: "Option", type: 'String'},
{name: 'Name', field: 'name', title: "Name", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
};
//
// upload functions
//
if (!bidix.upload) bidix.upload = {};
if (!bidix.upload.messages) bidix.upload.messages = {
//from saving
invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
backupSaved: "Backup saved",
backupFailed: "Failed to upload backup file",
rssSaved: "RSS feed uploaded",
rssFailed: "Failed to upload RSS feed file",
emptySaved: "Empty template uploaded",
emptyFailed: "Failed to upload empty template file",
mainSaved: "Main TiddlyWiki file uploaded",
mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
//specific upload
loadOriginalHttpPostError: "Can't get original file",
aboutToSaveOnHttpPost: 'About to upload on %0 ...',
storePhpNotFound: "The store script '%0' was not found."
};
bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
var callback = function(status,uploadParams,original,url,xhr) {
if (!status) {
displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
return;
}
if (bidix.debugMode)
alert(original.substr(0,500)+"\n...");
// Locate the storeArea div's
var posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
bidix.upload.uploadRss(uploadParams,original,posDiv);
};
if(onlyIfDirty && !store.isDirty())
return;
clearMessage();
// save on localdisk ?
if (document.location.toString().substr(0,4) == "file") {
var path = document.location.toString();
var localPath = getLocalPath(path);
saveChanges();
}
// get original
var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
var originalPath = document.location.toString();
// If url is a directory : add index.html
if (originalPath.charAt(originalPath.length-1) == "/")
originalPath = originalPath + "index.html";
var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
var log = new bidix.UploadLog();
log.startUpload(storeUrl, dest, uploadDir, backupDir);
displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
if (bidix.debugMode)
alert("about to execute Http - GET on "+originalPath);
var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
bidix.upload.uploadRss = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
if(status) {
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
bidix.upload.uploadMain(params[0],params[1],params[2]);
} else {
displayMessage(bidix.upload.messages.rssFailed);
}
};
// do uploadRss
if(config.options.chkGenerateAnRssFeed) {
var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
var rssString = generateRss();
// no UnicodeToUTF8 conversion needed when location is "file" !!!
if (document.location.toString().substr(0,4) != "file")
rssString = convertUnicodeToUTF8(rssString);
bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
} else {
bidix.upload.uploadMain(uploadParams,original,posDiv);
}
};
bidix.upload.uploadMain = function(uploadParams,original,posDiv)
{
var callback = function(status,params,responseText,url,xhr) {
var log = new bidix.UploadLog();
if(status) {
// if backupDir specified
if ((params[3]) && (responseText.indexOf("backupfile:") > -1)) {
var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
}
var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
store.setDirty(false);
log.endUpload("ok");
} else {
alert(bidix.upload.messages.mainFailed);
displayMessage(bidix.upload.messages.mainFailed);
log.endUpload("failed");
}
};
// do uploadMain
var revised = bidix.upload.updateOriginal(original,posDiv);
bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};
bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
var localCallback = function(status,params,responseText,url,xhr) {
url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
if (xhr.status == 404)
alert(bidix.upload.messages.storePhpNotFound.format([url]));
if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
alert(responseText);
if (responseText.indexOf("Debug mode") >= 0 )
responseText = responseText.substring(responseText.indexOf("\n\n")+2);
} else if (responseText.charAt(0) != '0')
alert(responseText);
if (responseText.charAt(0) != '0')
status = null;
callback(status,params,responseText,url,xhr);
};
// do httpUpload
var boundary = "---------------------------"+"AaB03x";
var uploadFormName = "UploadPlugin";
// compose headers data
var sheader = "";
sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
sheader += uploadFormName +"\"\r\n\r\n";
sheader += "backupDir="+uploadParams[3] +
";user=" + uploadParams[4] +
";password=" + uploadParams[5] +
";uploaddir=" + uploadParams[2];
if (bidix.debugMode)
sheader += ";debug=1";
sheader += ";;\r\n";
sheader += "\r\n" + "--" + boundary + "\r\n";
sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
sheader += "Content-Length: " + data.length + "\r\n\r\n";
// compose trailer data
var strailer = new String();
strailer = "\r\n--" + boundary + "--\r\n";
data = sheader + data + strailer;
if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
if (typeof r == "string")
displayMessage(r);
return r;
};
// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
if (!posDiv)
posDiv = locateStoreArea(original);
if((posDiv[0] == -1) || (posDiv[1] == -1)) {
alert(config.messages.invalidFileError.format([localPath]));
return;
}
var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
store.allTiddlersAsHtml() + "\n" +
original.substr(posDiv[1]);
var newSiteTitle = getPageTitle().htmlEncode();
revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
return revised;
};
//
// UploadLog
//
// config.options.chkUploadLog :
// false : no logging
// true : logging
// config.options.txtUploadLogMaxLine :
// -1 : no limit
// 0 : no Log lines but UploadLog is still in place
// n : the last n lines are only kept
// NaN : no limit (-1)
bidix.UploadLog = function() {
if (!config.options.chkUploadLog)
return; // this.tiddler = null
this.tiddler = store.getTiddler("UploadLog");
if (!this.tiddler) {
this.tiddler = new Tiddler();
this.tiddler.title = "UploadLog";
this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
this.tiddler.created = new Date();
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
}
return this;
};
bidix.UploadLog.prototype.addText = function(text) {
if (!this.tiddler)
return;
// retrieve maxLine when we need it
var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
if (isNaN(maxLine))
maxLine = -1;
// add text
if (maxLine != 0)
this.tiddler.text = this.tiddler.text + text;
// Trunck to maxLine
if (maxLine >= 0) {
var textArray = this.tiddler.text.split('\n');
if (textArray.length > maxLine + 1)
textArray.splice(1,textArray.length-1-maxLine);
this.tiddler.text = textArray.join('\n');
}
// update tiddler fields
this.tiddler.modifier = config.options.txtUserName;
this.tiddler.modified = new Date();
store.addTiddler(this.tiddler);
// refresh and notifiy for immediate update
story.refreshTiddler(this.tiddler.title);
store.notify(this.tiddler.title, true);
};
bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {
if (!this.tiddler)
return;
var now = new Date();
var text = "\n| ";
var filename = bidix.basename(document.location.toString());
if (!filename) filename = '/';
text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
text += config.options.txtUserName + " | ";
text += "[["+filename+"|"+location + "]] |";
text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
text += uploadDir + " | ";
text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
text += backupDir + " |";
this.addText(text);
};
bidix.UploadLog.prototype.endUpload = function(status) {
if (!this.tiddler)
return;
this.addText(" "+status+" |");
};
//
// Utilities
//
bidix.checkPlugin = function(plugin, major, minor, revision) {
var ext = version.extensions[plugin];
if (!
(ext &&
((ext.major > major) ||
((ext.major == major) && (ext.minor > minor)) ||
((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
// write error in PluginManager
if (pluginInfo)
pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
}
};
bidix.dirname = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(0, lastpos);
} else {
return filePath.substring(0, filePath.lastIndexOf("\\"));
}
};
bidix.basename = function(filePath) {
if (!filePath)
return;
var lastpos;
if ((lastpos = filePath.lastIndexOf("#")) != -1)
filePath = filePath.substring(0, lastpos);
if ((lastpos = filePath.lastIndexOf("/")) != -1) {
return filePath.substring(lastpos + 1);
} else
return filePath.substring(filePath.lastIndexOf("\\")+1);
};
bidix.initOption = function(name,value) {
if (!config.options[name])
config.options[name] = value;
};
//
// Initializations
//
// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);
// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");
//optionsDesc
merge(config.optionsDesc,{
txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
txtUploadUserName: "Upload Username",
pasUploadPassword: "Upload Password",
chkUploadLog: "do Logging in UploadLog (default: true)",
txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});
// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');
// Backstage
merge(config.tasks,{
uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");
//}}}
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'><a href="http://www.debian.org/"><img src="http://www.debian.org/logos/openlogo-nd-25.png"></a> </div>
<div class='subtitle'><span macro='view modifier link'><img src="http://www.gravatar.com/avatar/31bc0553ec7c693256797a037cdd895a?s=80"> </span>, <span macro='view modified date'>edited on </span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagged' macro='tags'></div>
<div class='tagClear'></div>
<!--}}}-->
I've recently purchased a Western Digital WD EARS "Advanced Format" hard drive, a 2 TB "green" (power saving) model. Let me tell you about it.
!!!!!First Things First
The first thing of notice is that the {{{Load_Cycle_Count}}} of the drive heads increases every 8 seconds by default. As seen on the Internet, this may pose a problem in the long run, since these drives are "guaranteed" to sustain a limited number of such head parking cycles. The number given varies from 300.000 to 1.000.000, depending on where you look. The first thing I did was, therefore, launch a shell script that wrote something to the drive every second. Not being content with this dirty workaround, I proceeded to download the WD proprietary utility {{{wdidle3.exe}}}, and the first link obtained by googling for "wdidle3.exe" did the trick: http://support.wdc.com/product/download.asp?groupid=609&sid=113.
I then proceeded to download a freedos bootable floppy image and copied it to a floppy disk using dd. Once the bootable floppy was thus created, I copied wdidle3.exe thereto.
Reboot computer, change BIOS boot order to floppy first, save&exit, the floppy boots and I run wdidle3.exe. The utility offers three command-line switches, for viewing the current status of the {{{Load_Cycle_Count}}} parameter, for changing it, and for disabling it. No drive is specified, so if you change/disable the parameter, you are doing this to ''all'' and ''any'' WD drives in your system. I chose to disable head parking, and since I also have an older 160GB WD IDE disk in the box, the utility disabled head parking cycles for ''both'' drives.
Except that ... there be problems. As opposed to the old 160 GB drive, the setting didn't work for the new 2 TB drive. Instead, the frequency of the load cycles increased 16-fold, to a whopping 7200 cycles per hour! This quickly increased my {{{Load_Cycle_Count}}} parameter (checked by issuing {{{smartctl --all /dev/sda}}}) by several thousand ticks overnight. Interestingly enough, the drive loaded and unloaded its heads at the amazing rate of twice per second even while sustained copying was underway (copying a 10 GB directory subtree from one drive to another). I didn't notice the increased cycle count until the next morning, however. When I did, I rebooted the machine with the freedos floppy again and set the interval from "disabled" to "every 300 seconds", which appears to be the maximum interval allowed. It would seem that, for the time being at least, this made the {{{Load_Cycle_Count}}} stay put at 22413. Whew!
So, setting this bugger straight is probably the first thing you'll want to do after getting one of these WD drives.
Now, for the second issue:
!!!!!The Hardware/Logical Sector Alignment
Since it will affect real-world transfer speeds, let's first check out the theoretical speeds of this drive in this particular environment -- a 3GHz Pentium IV motherboard with a humble integrated SATA controller (I think it's an early """SATA-I""" generation).
Before partitioning and formatting:
{{{
obelix:# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1726 MB in 2.00 seconds = 713.98 - 862.86 MB/sec (several iterations performed)
Timing buffered disk reads: 336 MB in 3.01 seconds = 100.01 - 111.72 MB/sec (several iterations performed)
}}}
After partitioning the drive, aligned on modulo 8 sector boundaries:
{{{
obelix:# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1264 MB in 2.00 seconds = 631.97 MB/sec
Timing buffered disk reads: 252 MB in 3.08 seconds = 81.80 MB/sec
}}}
Hmm, while we're at it, why don't we also check the antiquated 160 GB drive on the obsolete IDE interface?
{{{
obelix:# hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 1348 MB in 2.00 seconds = 674.14 MB/sec
Timing buffered disk reads: 206 MB in 3.02 seconds = 68.26 MB/sec
}}}
Well, so much for the alleged superiority of serial ATA over IDE...
Anyway. I have to prepend here that, Squeeze still not having reached stable, all of the following was performed on a stock Lenny i386 system (the reason being I have no Squeeze system yet). So, many of the following points may become obsolete in a matter of weeks when Squeeze, with a newer kernel and updated partitioning tools, reaches stable.
The first thing is, {{{fdisk}}} in Lenny doesn't support GPT partitioning, so I had to use {{{parted}}}. I first used its Gnome variant, {{{GParted}}}, and must say that it cant't align the partitions. Even if you align the first sector by hand (in {{{parted}}}, since {{{GParted}}} can't do it) and de-select the "Round to cylinders" option in {{{GParted}}} as recommended in http://www.ibm.com/developerworks/linux/library/l-4kb-sector-disks/index.html (which was my main guide and reference in this adventure), {{{GParted}}} will end your partition on an aligned sector -- in other words, ''by default, the next partition will start on a non-aligned sector again''. Be as it may, I then proceeded to use the new partitions created by {{{GParted}}}, doing some cursory "benchmarks". The typical copy speed reached in {{{mc}}} was about 20 MB/s, while {{{rsync}}} reported speeds of up to 51MB/S. {{{Rsync}}} reached a maximum 51MB/s on unaligned partitions, when copying from hda (WD1600AAJB) to sda (WD20EARS).
Then I tried to re-align my partitions by manually calculating the starting sectors of all the partitions so as to have them divisible by 8. This could only be done in {{{parted}}}, not in {{{GParted}}}. On the other hand, {{{parted}}} couldn't create {{{ext3}}} filesystems, and so the manually created partitions had to be subsequently formatted in {{{GParted}}}. In short, a combination of both tools had to be used to successfully create ''and'' format the partitions. Here's my final result as seen in {{{parted}}} ({{{fdisk}}} doesn't understand GPT):
{{{
(parted) print
Model: ATA WDC WD20EARS-00M (scsi)
Disk /dev/sda: 3907029168s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 128s 8194055s 8193928s linux-swap
2 8194056s 49154055s 40960000s ext3 primary
3 49154056s 90114055s 40960000s ext3 primary
4 90114056s 1998569479s 1908455424s ext3 primary
5 1998569480s 3907024064s 1908454585s ext3
}}}
I was just curious if aligned partitions would yield any noticeable speed improvement (especially in the file write department, since file reads, according to the above IBM article, should not be that heavily hit by misalignment). The "benchmarks" I performed, consisting in copying random files from the other drive to the WD20EARS using mc and rsync, generally yielded something between 15 and 35 MB/s, sometimes falling under 10 MB/s and at times going as high as 56 MB/s; the latter figure, however, was usually reached in the initial moments of a large file rsync (an Ubuntu CD ISO file) and would decrease after several seconds to about 40 MB/s, so it may very well be due to the 64MB cache on these drives. Just for the heck of it, I decided to re-align the partitions modulo-64, thus:
{{{
Partition Table: gpt
Number Start End Size File system Name Flags
1 128s 8194047s 8193920s linux-swap linux-swap
2 8194048s 49154047s 40960000s ext3 ext3
3 49154048s 90114047s 40960000s ext3 ext3
4 90114048s 1998569472s 1908455425s ext3 ext3
5 1998569473s 3907024064s 1908454592s ext3
}}}
Rsyncing the good old ubuntu ISO file yielded transfer rates of around 60 MB/s, with the exception of the last partition, which was written to at under 50 MB/s. It made me wonder. I checked the mount options in fstab, double checked that the CPU governor was set to max performance, all to no avail. Then, I fired up parted again and noticed that the 5th partition was actually one sector off. I corrected my error thus:
{{{
Partition Table: gpt
Number Start End Size File system Name Flags
1 128s 8194047s 8193920s linux-swap linux-swap
2 8194048s 49154047s 40960000s ext3 ext3
3 49154048s 90114047s 40960000s ext3 ext3
4 90114048s 1998569471s 1908455424s ext3 ext3
5 1998569472s 3907024064s 1908454593s ext3 ext3
}}}
As expected, the rsync results for the last partition became consistent with the other partitions (i.e. around 60 MB/s).
!!!!!Conclusions:
By default, these WD drives are ''not Linux-ready''. They ''do work'' out-of-the box, to be sure, but are not configured optimally speedwise. Given that we're talking about "green" (marketing slang for "slow") drives, this additional performance hit is noticeable and quite undesirable. By aligning the partitions on 8-sector boundaries, the transfer speeds are improved by almost 20%; aligning them on 64-sector boundaries doesn't yield further noticeable improvements though. Or, more precisely: the tests I performed were too coarse to substantiate potential small differences, because as differences become smaller, other factors, such as the CPU governor used, fstab parameters, or actual load on the CPU at a given moment may prevail, completely masking such small differences. The CPU governor seems to be the most crucial of those secondary factors (see below). So, there are indications that using 64-sector alignment "may" give a slightly better performance over 8-sector alignment, but they are nothing more than indications, really. Proper benchmarks would be required to ascertain that.
!!!!!Curiosa:
*All testing was done with a ~700-MB ISO file; copying many smaller files may (and will) incur additional performance hits.
*Dropping the CPU governor to {{{powersave}}} reduced file writes to under 20 MB/s and less, which means to about a third of the maximum speed achievable.
*Mount options for the partitions, and the performance of the source disk are also major factors in these tests. In my case, the source from which the files were copied was an oldish 160 GB WD IDE drive (model WD1600AAJB).
*The only downtime needed was about 10 minutes -- the time it took to actually install the drive into the chassis; had WD provided a tool for online modifying the drive's S.M.A.R.T. {{{Load_Cycle_Count}}} parameter, no further reboots would be needed, i.e. once the hard drive was installed, it could be taken to production use without as much as a single reboot. Due to my own mistake, however, a superfluous reboot was needed. Namely, while messing with {{{parted}}} and {{{gparted}}}, at some point I deleted the partition table without first unmounting the partitions . After that, I kept getting the warning that a reboot would be required for the kernel to re-read the partition tables, preventing me from creating the last two filesystems and wrapping it up. Neither {{{umount}}} nor {{{swapoff}}} would help. Instead of digging for the offending process and killing/restarting it, I preferred to reboot the system, since it wasn't in use at the moment anyway.
*Beside the physical installation of the drive in the chassis, which was done during off hours, virtually everything else was done remotely via {{{ssh}}}, without interrupting the work of the currently logged-in user. To enable graphical tools such as {{{GParted}}} to be used, {{{ssh}}} was run with the {{{-XC}}} option, and then {{{GParted}}} was launched remotely by issuing {{{gksu gparted}}}. The flexibility of GNU/Linux is simply mind-boggling.
*I have no kind words for WD. Their drives as provided are severely underoptimized for GNU/Linux. On the drive label and on their site they state that no further configuration is required for using the drive in Linux; which is quite simply untrue. In addition, the head parking feature is heavily flawed, and is only accessible via a DOS proprietary tool, and only by taking the entire system offline. I am quite disappointed in WD, but am thoroughly confident that the GNU/Linux community will provide for the WD's shortcomings, as always.
*What particularly pisses me off is the second-rate treatment that we GNU/Linux users get from many hardware manufacturers -- it's as if we somehow got the hardware at a lower price that a Windows user. Well, while that may hold true when buying a computer without a preinstalled OS (or with GNU/Linux preinstalled), it doesn't hold true for the majority of other hardware. And it's a little frustrating and unfair. Oh well, I guess we should take the manufacturers literally, and respond to those who "do not support Linux" in the only logical, consistent way: by doing our shopping elsewhere.
*We'll see what {{{hdparm}}} and {{{smartmontools}}} in Squeeze will bring along. The Lenny versions are too old to be of much use with this disk (for example, the {{{hdparm -B}}} command doesn't work).
The foregoing user experience is nothing more than that -- a user experience; copying a handful of files is not to be considered a "test" or "benchmark" in any meaningful sense whatsoever, so take it with a huge lump of salt!
Happy computing!
P.S. A suggestion given by Stan Hoeppner on the debian-user mailing list made me realize that {{{dd}}} is a far better choice when doing quick and dirty disk-writing benchmarks. Not only does it incur less overhead than both {{{mc}}} and {{{rsync}}}, it also eliminates a crucial variable -- the source drive. By creating a file of zeroes on the fly instead of copying a pre-existing file, {{{dd}}} achieves results that are much closer to the theoretical maximum speeds. Thus, using the command
{{{
obelix:# dd if=/dev/zero of=/media/krama/newfile count=100000 bs=8192
100000+0 zapisov na vhodu
100000+0 zapisov na izhodu
819200000 bajtov (819 MB) prepisanih, 9,85968 s, 83,1 MB/s
}}}
the drive reached 83.1 MB/s -- a figure substantially closer to the theoretical maximum than achieved by either {{{mc}}} or {{{rsync}}}.
Stan also suggested using the deadline elevator, thus:
{{{
echo deadline > /sys/block/sda/queue/scheduler
}}}
However, that made no noticeable difference on my system, so your mileage may vary.
!!!!!Notes to Self
Moving my system to the new drive and doing away with the old one (i.e. moving it to an older machine) was straightforward and hassle-free; I'm increasingly finding out that that's how most of the down-to-earth, system-maintenance tasks are, in GNU/Linux. It would seem that the most reliable and error-free tools in GNU/Linux are the oldest, the most low-level ones. What I want to say is that, if they fail -- like {{{fdisk}}} does when faced with a GUID partition table -- they'll do so gracefully and without doing actual ''damage'' to your system; as opposed to high-level, desktop-oriented tools which may well hose a thing or two. A case in point: in Lenny, {{{gnome-commander}}} seems to have problems when updating its own display at times -- or perhaps keeping the disk state consistent with the state displayed. The thing is, while setting up the new drive, I also wanted to refresh my son's {{{FIFA 99}}} install, so I opened {{{gnome-commander}}}, renamed his existing {{{~/.wine}}} subfolder to {{{~/.wine_old}}} and launched {{{Wine}}}, just so it recreates a new {{{~/.wine}}} folder. I then closed {{{Wine}}}. Then, still with {{{gnome-commander}}}, I copied the new {{{~/.wine}}} subtree to another location where i keep custom {{{.wine}}} configurations, and proceeded to delete it, with the intention of later renaming {{{~/.wine_old}}} back to {{{~/.wine}}} again. Immediately, I noticed that the deletion was taking far too long, considering that the subtree, having just been created from scratch, had no contents to speak of yet, so I gasped in awe when I realized that {{{gnome-commander}}} was actually deleting the {{{.wine_old}}} subtree, which contained nearly 10 GB of data. And inb4 user error, no, I did not make a mistake, I definitely did place the cursor on {{{~/.wine}}} and pressed the {{{delete}}} key and confirmed the deletion. Somehow, something didn't get updated on the screen, and {{{gnome-commander}}} deleted the wrong subtree, as if it wasn't aware of the rename that took place in the meantime; as if it was still internally associating the displayed {{{~/.wine}}} with the physical location of the previous {{{~/.wine}}} subtree on the disk. Fortunately, I had a backup, and copied it over the destroyed {{{~/.wine_old}}}; reinstalling a bunch of Windows applications would be no funny task.
But what I was actually trying to jot down is, how I moved my Debian Lenny install from the old drive to the new one.
Most of the work was, yet again, done remotely via {{{ssh}}}.
#Once the partitions were set up as described above, I copied the old {{{/home}}} partition to the new drive with a simple recursive {{{cp}}} (the exact command-line parameters to use are easily found on the Internet, or gathered from the {{{man}}} page); of course, it had to be done with root privileges.
#I then edited {{{fstab}}} to point to the new location of {{{/home}}}. And that was all. I was now enjoying my new {{{/home}}}. Now, if I was a mean person, I'd challenge the reader to try and accomplish the analogue task in Windows™©.
#I then used {{{dd if=/dev/hda2 of=/dev/sda3}}} to copy my {{{/}}} to a partition on the new drive. Again with root privileges, of course. It can be done from a live system and doesn't have any hiccups. I prefer not to use {{{cp}}} for this task, because, if I remember right from times past, {{{cp}}} has problems copying certain "virtual" locations, is bound to enter an infinite loop due to some directory links recursively pointing to themselves, and also keeps asking you questions; none of this happens with {{{dd}}}. Of course, all this can be changed just by issuing the right command-line parameters to {{{cp}}}, but, lazy as I am for learning the correct usage for various CLI comands, {{{dd}}} is my preferred way of cloning partitions because it is dead simple and capable of ''cloning a live system'' -- without even the need of dropping to a single-user mode (meaning that your desktop users may continue their sessions without being forcedly logged out of their desktop environments). As powerful as {{{Clonezilla}}} allegedly is, it ''does'' require you to take your system offline and reboot from a live CD in order to clone your partition(s); on the other hand, you don't clone partitions on a daily basis, so a little downtime may not be such a big problem. However, as I already said, low-level tools such as {{{dd}}} have my highest trust since they've been around for the longest time and have confirmed their reliability countless times. That's what I like about GNU/Linux.
#To my surprise, {{{gparted}}} (launched remotely again) didn't show any change in partition size (the new {{{/}}} is larger than the old one was, so I expected {{{dd}}} to "shrink" it to the size of the original. I should look into this more deeply when I find the time. I was always told that {{{dd}}} will copy over a partition, leaving any surplus space unused and unusable.
#The most hassle of all was persuading {{{Grub}}} to boot my new drive instead of the old one. After cloning, the original {{{/}}} partition and its clone had, of course, the same UUID, which will confuse {{{Grub}}}. The path I chose was to let the clone keep the old UUID, and change the UUID of the ''original'' instead. My old system was still live at this time, so i simply used {{{tune2fs -U random}}} on its partition. Checking it out with {{{blkid}}} confirmed that the UUID of the original {{{/}}} (to which I was still logged in) had been modified. I then issued {{{grub-install}}} and {{{update-grub}}} to hopefully make the new drive bootable. However, knowing {{{Grub}}}, I was almost sure that I would have some fine-tuning to do. I issued {{{reboot}}} and crossed my fingers.
#When the machine rebooted, I immediately pressed <F2> to get to the BIOS configuration screen, and changed the boot order. Saved, rebooted, the machine booted from the new drive. A single white word appeared on a black background: {{{GRUB}}}. The boot wouldn't move on from there.
#So I rebooted and reverted the BIOS boot order again. The machine booted, the {{{Grub}}} greeting screen appeared, but almost immediately the boot stopped with a message about {{{initrd}}} not being found. I pressed "ctrl-c" to get into interactive mode. Issuing {{{ls}}} listed all the partitions of the old {{{IDE}}} drive; the new GUID drive, however, was showing as a single-partition device. Typing {{{insmod /boot/grub/gpt.mod}}} and issuing {{{ls}}} again at the {{{Grub}}} prompt finally showed all 5 partitions of the new drive. What the old {{{Grub}}} installation was missing, therefore, was the {{{gpt.mod}}} module for understanding GUID partition tables (legacy {{{Grub}}} has no way of recognizing them; the second-generation {{{Grub 1.96}}} I'm using just needs the related module to be loaded). I tried booting by pressing "ctrl-x", but it wouldn't work. Rebooted the machine again.
#Pressed "e" as soon as the {{{Grub}}} boot menu appeared -- without letting it try to boot first. Added a line at the beginning of the configuration saying {{{insmod /boot/grub/gpt.mod}}}. Then pressed "ctrl-x" and the machine booted. Modified {{{fstab}}} to point to the new {{{/}}} partition. Rebooted again.
#Pressed "e" again, added the {{{insmod}}} line again; with the modified {{{fstab}}} I was finally able to boot into my new {{{/}}}; I was still using the {{{Grub}}} of the old {{{/}}} though. But being logged into the new {{{/}}} now, I simply issued {{{grub-install}}} and {{{update-grub}}}. The two commands would hopefully install on the right partition now.
#Rebooted. Got into BIOS, modified boot order to boot the new drive first. Saved, rebooted. Bingo. The boot went flawlessly. I had feared that I'd have to add the {{{insmod /boot/grub/gpt.mod}}} line manually again and figure out how to add it permanently, but things turned out as I had hoped they would: the {{{grub-install}}} command I issued detected a GUID partition table and added the required module automagically.
#All in all, moving {{{Grub}}} is ''still'' not as intuitive as it could be, but is still very robust, and not tedious at all.
!!!!!D.U.M.B., D.U.M.B.E.R. & S.M.A.R.T.
After several days of operation, I noticed a recurring error in my {{{/var/log/messages}}}:
{{{
Jan 7 02:19:04 debrain kernel: [40536.469670] res 51/40:00:f8:95:e0/40:00:03:00:00/e0 Emask 0x9 (media error)
Jan 7 02:19:04 debrain kernel: [40536.483669] ata1.00: configured for UDMA/133
Jan 7 02:19:04 debrain kernel: [40536.483686] sd 0:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
Jan 7 02:19:04 debrain kernel: [40536.483691] sd 0:0:0:0: [sda] Sense Key : Medium Error [current] [descriptor]
Jan 7 02:19:04 debrain kernel: [40536.483698] Descriptor sense data with sense descriptors (in hex):
Jan 7 02:19:04 debrain kernel: [40536.483701] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Jan 7 02:19:04 debrain kernel: [40536.483716] 03 e0 95 f8
Jan 7 02:19:04 debrain kernel: [40536.483722] sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed
Jan 7 02:19:04 debrain kernel: [40536.483750] ata1: EH complete
Jan 7 02:19:04 debrain kernel: [40536.490434] sd 0:0:0:0: [sda] 3907029168 512-byte hardware sectors (2000399 MB)
Jan 7 02:19:04 debrain kernel: [40536.506557] sd 0:0:0:0: [sda] Write Protect is off
Jan 7 02:19:04 debrain kernel: [40536.514234] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jan 7 02:19:04 debrain kernel: [40536.514234] sd 0:0:0:0: [sda] 3907029168 512-byte hardware sectors (2000399 MB)
Jan 7 02:19:07 debrain kernel: [40539.286128] res 51/40:17:f8:95:e0/40:00:03:00:00/e3 Emask 0x9 (media error)
Jan 7 02:19:07 debrain kernel: [40539.380566] ata1.00: configured for UDMA/133
Jan 7 02:19:07 debrain kernel: [40539.380566] ata1: EH complete
}}}
Apparently, the system was trying to write something to the drive, but without success. I also noticed that sometimes, the computer seemed to stall for half a minute or so, apparently trying to write something to the drive, without succeeding. It seemed there was a problem, perhaps between the SATA controller and the drive. I also suspected that the system -- this is going to be a wild wild guess, so don't get upset -- might be trying to write ''past'' the end of the accessible partition boundary (given that this partition was {{{dd}}}'ed from the original, to a larger one, I surmised there was at least a remote possibility that the system may be confused about where the partition //actually// ends). Not to worry, I thought: I'll fire up {{{GParted}}}, shrink the partition as much as possible, and then re-expand it. The process would hopefully bring the two conflicting partition endings into synchronicity again. Much to my dismay, after doing that nothing changed. If I recall correctly, I then tried running {{{memtest}}}, fiddling with the BIOS settings, powering the drive from some other PSU cable, re-seating the SATA cable firmly at both ends, replacing the SATA cable with a brand new one, attaching it to some other SATA port and what not -- all to no avail. Well, the messages might have varied slightly, but the overall problem still remained. At some point, the problem even surfaced at boot, protracting the boot time into minutes! I was starting to get cold sweat.
The {{{/var/log/kern.log}}} file was somewhat more explicit. There were thousands of lines stating that:
{{{
Jan 9 17:22:20 debrain kernel: [165240.488209] EXT3-fs error (device sda4): ext3_free_blocks: Freeing blocks not in datazone - block = 997748784, count = 1
Jan 9 17:22:20 debrain kernel: [165240.491889] EXT3-fs error (device sda4): ext3_free_blocks: Freeing blocks not in datazone - block = 1043275810, count = 1
Jan 9 17:22:20 debrain kernel: [165240.492078] EXT3-fs error (device sda4): ext3_free_blocks: Freeing blocks not in datazone - block = 1735223612, count = 1
Jan 9 17:22:20 debrain kernel: [165240.519274] EXT3-fs error (device sda4): ext3_free_blocks: Freeing blocks not in datazone - block = 1029990688, count = 1
Jan 9 17:22:20 debrain kernel: [165240.520076] EXT3-fs error (device sda4): ext3_free_blocks: Freeing blocks not in datazone - block = 1952543266, count = 1
Jan 9 17:22:20 debrain kernel: [165240.520777] EXT3-fs error (device sda4): ext3_free_blocks: Freeing blocks not in datazone - block = 1600613993, count = 1
}}}
Beside that, what I saw was also:
{{{
Jan 15 03:36:19 debrain kernel: [241502.326062] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Jan 15 03:36:19 debrain kernel: [241502.326111] ata2.00: BMDMA stat 0x65
Jan 15 03:36:19 debrain kernel: [241502.326176] ata2.00: cmd 25/00:08:b0:3c:e4/00:00:16:00:00/e0 tag 0 dma 4096 in
Jan 15 03:36:19 debrain kernel: [241502.326194] res 51/40:08:b0:3c:e4/40:00:16:00:00/e0 Emask 0x9 (media error)
Jan 15 03:36:19 debrain kernel: [241502.326228] ata2.00: status: { DRDY ERR }
Jan 15 03:36:19 debrain kernel: [241502.326251] ata2.00: error: { UNC }
Jan 15 03:36:19 debrain kernel: [241502.343953] ata2.00: configured for UDMA/133
Jan 15 03:36:19 debrain kernel: [241502.351321] ata2.01: configured for UDMA/133
Jan 15 03:36:19 debrain kernel: [241502.351432] sd 1:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK
Jan 15 03:36:19 debrain kernel: [241502.351481] sd 1:0:0:0: [sda] Sense Key : Medium Error [current] [descriptor]
Jan 15 03:36:19 debrain kernel: [241502.351534] Descriptor sense data with sense descriptors (in hex):
Jan 15 03:36:19 debrain kernel: [241502.351564] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
Jan 15 03:36:19 debrain kernel: [241502.351686] 16 e4 3c b0
Jan 15 03:36:19 debrain kernel: [241502.351736] sd 1:0:0:0: [sda] Add. Sense: Unrecovered read error - auto reallocate failed
Jan 15 03:36:19 debrain kernel: [241502.351800] end_request: I/O error, dev sda, sector 384056496
Jan 15 03:36:19 debrain kernel: [241502.351953] ata2: EH complete
Jan 15 03:36:19 debrain kernel: [241502.355409] sd 1:0:1:0: [sdb] Write Protect is off
Jan 15 03:36:19 debrain kernel: [241502.355450] sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
Jan 15 03:36:19 debrain kernel: [241502.355903] sd 1:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jan 15 03:36:19 debrain kernel: [241502.359925] sd 1:0:0:0: [sda] 3907029168 512-byte hardware sectors (2000399 MB)
Jan 15 03:36:19 debrain kernel: [241502.359925] sd 1:0:0:0: [sda] Write Protect is off
Jan 15 03:36:19 debrain kernel: [241502.359925] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00
Jan 15 03:36:19 debrain kernel: [241502.371910] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jan 15 03:36:19 debrain kernel: [241502.372579] sd 1:0:1:0: [sdb] 156301488 512-byte hardware sectors (80026 MB)
Jan 15 03:36:19 debrain kernel: [241502.372838] sd 1:0:1:0: [sdb] Write Protect is off
Jan 15 03:36:19 debrain kernel: [241502.372886] sd 1:0:1:0: [sdb] Mode Sense: 00 3a 00 00
Jan 15 03:36:19 debrain kernel: [241502.373307] sd 1:0:1:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
Jan 15 03:36:24 debrain kernel: [241508.838321] ata2.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
Jan 15 03:36:24 debrain kernel: [241508.838327] ata2.00: BMDMA stat 0x65
Jan 15 03:36:24 debrain kernel: [241508.838335] ata2.00: cmd 25/00:08:b0:3c:e4/00:00:16:00:00/e0 tag 0 dma 4096 in
Jan 15 03:36:24 debrain kernel: [241508.838337] res 51/40:08:b0:3c:e4/40:00:16:00:00/e0 Emask 0x9 (media error)
Jan 15 03:36:24 debrain kernel: [241508.838341] ata2.00: status: { DRDY ERR }
Jan 15 03:36:24 debrain kernel: [241508.838343] ata2.00: error: { UNC }
Jan 15 03:36:24 debrain kernel: [241508.856709] ata2.00: configured for UDMA/133
Jan 15 03:36:24 debrain kernel: [241508.862288] ata2.01: configured for UDMA/133
Jan 15 03:36:24 debrain kernel: [241508.862288] ata2: EH complete
}}}
And so on. As witnessed by the lines saying {{{end_request: I/O error, dev sda, sector 384056496}}}, the drive, not even a month old, had finallly developed some unreadable, perhaps even unrecoverable bad sectors! Now, while all this was happening, I tried uncle Google with these messages. Usually, I'd get various forum pages which unanimously ended with the advice "RFM the damn drive". Very helpful indeed. The only page that actually helped me was a page with advice how to track down a bad sector, zero it out and repair hard drives that ''appear'' as though they are failing, but are actually not. All that time, S.M.A.R.T. was more of a fear than a help for me. S.M.A.R.T. is apparently incapable of detecting whether there's a real surface problem or perhaps just a flaky PSU/controller/cable/connection. So you can easily run into a situation where the S.M.A.R.T. data may seem so severely critical that S.M.A.R.T. won't let you boot the disk anymore -- unless you disable S.M.A.R.T. altogether, that is. On top of that, it won't let you reset its data (the Internet is again full of advice that this would be tantamount to allowing a car's mileage counter to be rolled back, complete with insinuations that whoever tries to do that must necessarily be some hard core criminal trying to resell a dying hard drive to some poor naive buyer). Particularly annoying was the parameter {{{Raw_Read_Error_Rate}}} which decreased from the initial 200 to about 120 fairly quickly. Given that its threshold is 051, I was sure it would soon reach the threshold and never allow me to use S.M.A.R.T. on this drive again... Here's the output of {{{smartctl -a /dev/sda}}} from quite early on, when this parameter hadn't yet assumed worrying proportions and was still at a heart-warming value of 197:
{{{
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
=== START OF INFORMATION SECTION ===
Device Model: WDC WD20EARS-00MVWB0
Serial Number: WD-WMAZA1648548
Firmware Version: 51.0AB51
User Capacity: 2 000 398 934 016 bytes
Device is: Not in smartctl database [for details use: -P showall]
ATA Version is: 8
ATA Standard is: Exact ATA specification draft version not indicated
Local Time is: Fri Jan 7 02:16:13 2011 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
General SMART Values:
Offline data collection status: (0x85) Offline data collection activity
was aborted by an interrupting command from host.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 113) The previous self-test completed having
the read element of the test failed.
Total time to complete Offline
data collection: (37080) seconds.
Offline data collection
capabilities: (0x7b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 255) minutes.
Conveyance self-test routine
recommended polling time: ( 5) minutes.
SCT capabilities: (0x3035) SCT Status supported.
SCT Feature Control supported.
SCT Data Table supported.
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 197 197 051 Pre-fail Always - 108
3 Spin_Up_Time 0x0027 253 253 021 Pre-fail Always - 1175
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 49
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 100 100 000 Old_age Always - 507
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 47
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 39
193 Load_Cycle_Count 0x0032 193 193 000 Old_age Always - 22421
194 Temperature_Celsius 0x0022 115 109 000 Old_age Always - 35
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 35
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 33
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 33
SMART Error Log Version: 1
ATA Error Count: 96 (device log contains only the most recent five errors)
CR = Command Register [HEX]
FR = Features Register [HEX]
SC = Sector Count Register [HEX]
SN = Sector Number Register [HEX]
CL = Cylinder Low Register [HEX]
CH = Cylinder High Register [HEX]
DH = Device/Head Register [HEX]
DC = Device Command Register [HEX]
ER = Error register [HEX]
ST = Status register [HEX]
Powered_Up_Time is measured from power on, and printed as
DDd+hh:mm:SS.sss where DD=days, hh=hours, mm=minutes,
SS=sec, and sss=millisec. It "wraps" after 49.710 days.
Error 96 occurred at disk power-on lifetime: 496 hours (20 days + 16 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 f8 95 e0 e3 Error: UNC 8 sectors at LBA = 0x03e095f8 = 65050104
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 08 f8 95 e0 e3 0a 00:16:27.132 READ DMA
ec 00 00 00 00 00 a0 0a 00:16:27.110 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 0a 00:16:27.110 SET FEATURES [Set transfer mode]
Error 95 occurred at disk power-on lifetime: 496 hours (20 days + 16 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 f8 95 e0 e3 Error: UNC 8 sectors at LBA = 0x03e095f8 = 65050104
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 08 f8 95 e0 e3 0a 00:16:24.399 READ DMA
ec 00 00 00 00 00 a0 0a 00:16:24.377 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 0a 00:16:24.377 SET FEATURES [Set transfer mode]
Error 94 occurred at disk power-on lifetime: 496 hours (20 days + 16 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 f8 95 e0 e3 Error: UNC 8 sectors at LBA = 0x03e095f8 = 65050104
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 08 f8 95 e0 e3 0a 00:16:21.665 READ DMA
ec 00 00 00 00 00 a0 0a 00:16:21.643 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 0a 00:16:21.643 SET FEATURES [Set transfer mode]
Error 93 occurred at disk power-on lifetime: 496 hours (20 days + 16 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 f8 95 e0 e3 Error: UNC 8 sectors at LBA = 0x03e095f8 = 65050104
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 08 f8 95 e0 e3 0a 00:16:18.932 READ DMA
ec 00 00 00 00 00 a0 0a 00:16:18.910 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 0a 00:16:18.910 SET FEATURES [Set transfer mode]
Error 92 occurred at disk power-on lifetime: 496 hours (20 days + 16 hours)
When the command that caused the error occurred, the device was active or idle.
After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
40 51 08 f8 95 e0 e3 Error: UNC 8 sectors at LBA = 0x03e095f8 = 65050104
Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC Powered_Up_Time Command/Feature_Name
-- -- -- -- -- -- -- -- ---------------- --------------------
c8 00 08 f8 95 e0 e3 0a 00:16:16.198 READ DMA
ec 00 00 00 00 00 a0 0a 00:16:16.176 IDENTIFY DEVICE
ef 03 46 00 00 00 a0 0a 00:16:16.176 SET FEATURES [Set transfer mode]
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed: read failure 10% 502 65050108
# 2 Short offline Completed: read failure 90% 502 65050108
# 3 Extended offline Completed: read failure 90% 499 65050108
# 4 Short offline Completed: read failure 90% 498 65050108
SMART Selective self-test log data structure revision number 1
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
1 0 0 Not_testing
2 0 0 Not_testing
3 0 0 Not_testing
4 0 0 Not_testing
5 0 0 Not_testing
Selective self-test flags (0x0):
After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.
}}}
As you see, the {{{Current_Pending_Sector}}} value had already increased to 35, but despite that I could not get those sectors to be actually reallocated, no matter what I tried. They were just perennially "pending" (and increasing in number).
The funny thing (well, for me it wasn't really funny at all) was that the actual "failing sector" was changing over time -- indicating that potentially the entire disk was somewhat failing. These S.M.A.R.T. test results may give an indication how it was changing (disregard test results # 1 which completed without error, ''after'' the problem was solved, and # 5 which was interrupted prior to completing):
{{{
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Short offline Completed without error 00% 806 -
# 2 Short offline Completed: read failure 90% 764 384056496
# 3 Short offline Completed: read failure 90% 732 384056496
# 4 Extended offline Completed: read failure 90% 722 384056496
# 5 Short offline Aborted by host 10% 722 -
# 6 Short offline Completed: read failure 10% 719 379846368
# 7 Extended offline Completed: read failure 90% 615 379846372
# 8 Short offline Completed: read failure 90% 612 379846372
# 9 Short offline Completed: read failure 90% 594 379846372
#10 Short offline Completed: read failure 90% 594 379846372
#11 Short offline Completed: read failure 90% 593 379846372
#12 Short offline Completed: read failure 10% 592 379846372
#13 Short offline Completed: read failure 10% 592 379846372
#14 Extended offline Completed: read failure 90% 590 379846372
#15 Short offline Completed: read failure 90% 590 379846372
#16 Short offline Completed: read failure 80% 526 65050108
#17 Short offline Completed: read failure 10% 502 65050108
#18 Short offline Completed: read failure 90% 502 65050108
#19 Extended offline Completed: read failure 90% 499 65050108
#20 Short offline Completed: read failure 90% 498 65050108
}}}
How did I resolve this?
At some point, I decided to {{{dd}}} the entire ''free'' space on the suspect partition(s) with zeros. As that didn't solve the issue, I then proceeded to {{{cp}}} the entire ''used'' space on {{{dev/sda4}}} to {{{/dev/sda5}}} -- although I suspect that even copying it to {{{/dev/zero}}} would do. Anyhow, this finally gave me at least ''some'' result: I found out that 3 files had developed read errors and were uncopyable. What I did then was simply {{{aptitude install wipe}}} and {{{wipe}}}d the offending 3 files ({{{wipe}}} overwrites the sectors used by a file with random patterns and is mainly used for shredding sensitive data). This procedure finally forced the disk to re-write the "pending" sectors and either re-allocate them or mark them as good. Of course -- if S.M.A.R.T. reports can be relied upon at all -- the sectors were found to be good, in fact S.M.A.R.T. indicates no {{{Reallocated_Event_Count}}}.
{{{
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x002f 144 117 051 Pre-fail Always - 5256
3 Spin_Up_Time 0x0027 253 253 021 Pre-fail Always - 1158
4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 65
5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0
7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0
9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 952
10 Spin_Retry_Count 0x0032 100 253 000 Old_age Always - 0
11 Calibration_Retry_Count 0x0032 100 253 000 Old_age Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 63
192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 44
193 Load_Cycle_Count 0x0032 193 193 000 Old_age Always - 22432
194 Temperature_Celsius 0x0022 121 109 000 Old_age Always - 29
196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0
197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 0
198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 33
199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0
200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 33
}}}
The {{{Raw_Read_Error_Rate}}} attribute has since started increasing back, but this is happening at a very slow rate and I have doubts whether it will ever increase to the initial value of 200 anymore. So much for the "smartness" of S.M.A.R.T.
!!!Debian, a //distro with an aptitude//
Why do I like Debian so much? Wow, that's a hard one. A million things come to mind and it's hard to weed out the less important ones.
*Well, I might as well start with Debian's default configuration: it's solid, sturdy, stripped-down and comes with particularly strict security settings by default. It's amazing how a distro manages to be so stripped-down (you can even de-select the desktop task at installation time, thus getting a desktopless, server-oriented, command-line Debian), yet comes with arguably ''the'' richest repository in the GNU/Linux arena! So yes, you ''can'' have a frugal Debian installation if you want, but if you'd prefer a ''rich'' installation with a selection of ten e-mail clients, five Internet browsers, and three different Desktop Environments plus a mind-boggling number of software packages, that's also just a task-select away! The same goes for the in-built security: by default, Debian is a pretty secure system which can be made even more secure with just a few configuration changes (see http://www.cyberciti.biz/tips/linux-security.html, http://www.techradar.com/news/internet/10-easy-steps-to-secure-your-linux-machine-644742, and http://www.freesoftwaremagazine.com/articles/protect_your_server_with_deny_host); anyway, you get a damn secure system from the get-go and it's not left to you as the user to fill up security holes: the Debian updates team does that for you.
*If you're at least as concerned about the great divide between FLOSS and non-free software as I am, you can select whatever you like: remain as candid as it gets (Debian's default), or taint yourself with semi-free and non-free repositories - which aren't part of the Debian system, but can be enabled fairly easily. I hardly ever use them, except for certain proprietary drivers that make my hardware work. The same goes for the multimedia repository (which I don't use at all; I can live without Real Media, thanks). The choice is completely yours. On a personal, user level, I think that, sadly, a boycott is the only weapon at my disposal when I want to obstruct the introduction and spread of unnecessary new formats, standards, codecs and so on. Just as in web design and in software design, in multimedia too, the designers themselves are usually far too prone to experimenting with new gadgets and therefore far too easily lured into trying out new "features" (which are more often than not neither really new nor true features): so they must be ruthlessly curbed by end users, unless we want our cyberworld to quickly become an unwieldy, and completely unnecessary, mess of disparate and incompatible tools, standards, codecs, formats and protocols, taxing our computers and (through patenting, royalties and similar) our wallets alike.
*Debian is the base of so many distros -- """sidux, MEPIS, Linspire, gNewSense, CrunchBang, Mint, Damn Small Linux, Knoppix, Kanotix""" and last but not least, Ubuntu with its own crowd of spins-offs -- that investing time and effort in Debian is the smartest way to see your effort propagated as quickly and as widely as possible throughout the GNU/Linux community.
*Offering Gnome as the default desktop environment. KDE has been going through some very heavy development with the passage from 3.x to 4.x and wasn't too stable during the transition; moreover, the direction it's taking doesn't suit my taste at all: it's promising to become the most feature-filled (I hate [[feature-driven design|http://www.pixelmonkey.org/2009/12/22/the-danger-of-feature-driven-design]]) and resource-hungry Desktop Environment in the GNU/Linux world, with Gnome only a ''distant'' second -- which is exceedingly good. For Gnome. If Gnome, god forbid, were to take that direction one day, I will probably switch to a leaner meaner desktop environment; thank god, there are many to choose from.
*It's prevalently a volunteer, community effort (as much as a project of this magnitude can be anyway). Unlike openSUSE, Fedora, Mepis, or Xandros, it's not backed up by "wealthy" corporations. Its ultimate goal is not shareholder profit. It's not just a "FLOSS branch" of a non-free, for-profit entity. It's the most incredible proof of the heights a creative, fervent community can achieve. The results put me in sheer awe; the Debian distro and its crowd -- encompassing Ubuntu, Knoppix and other Debian-based projects -- are probably the most unbelievable achievement in the FLOSS landscape, paralleled only (in separate fields of endeavor) by GNU and FSF.
*I simply love the fact that it remains one of the distributions which don't embrace the pragmatist //Open Source// term and stubbornly persists along the GNU/Copyleft/FLOSS guidelines -- although in its own special way, which is not endorsed, or even shared, by the FSF/GNU movement. Debian beats its own path in the FLOSS arena and is definitely a GNU/Linux distro "with an aptitude", if I may be forgiven the pun.
And some additional reasons for loving Debian:
http://rentzsch.tumblr.com/post/232596837/apps-i-love-debian
http://www.itpro.co.uk/blogs/danj/2008/02/12/debian-apt-why-i-love-it/
http://www.internetling.com/2008/07/30/5-reasons-to-choose-debian-linux-over-ubuntu-linux/
http://vivapinkfloyd.blogspot.com/2008/05/10-reasons-to-love-debian.html
!!!Or: Why We Should Choose GNU/Linux Over Proprietary Software Even If Proprietary Software Were Technically Superior
For those who can't be bothered to read through to the end of the page (which, admittedly, ''is'' rather long), the answer to the above rhetorical question is: because GNU/Linux is ''ethically'' superior. What else.
<<<
Studies have found that unpatched Linux systems left on the Internet last at least four months without being broken into. Unpatched Windows machines last, on average, about 70 minutes.
//The Easiest Linux Guide You'll Ever Read//, by Scott Morris, p. 16
<<<
In my time, I've only used a handful of operating systems thus far. Actually, some of them may not even be regarded as full-fledged operating systems by today's standards. I began with a borrowed ZX Spectrum, then went on to a [[Commodore Amiga|http://www.linuxtoday.com/developer/2008112103535PS]], have played a little with a C64, and used various flavors of """DOSes""" and Windowses. Therefore, my opinion may not have much weight, but here it is anyway: the main reasons I prefer GNU/Linux to proprietary """OSes""", in descending order of importance.
*Tux Racer (just kiddin').
*The continuing loyalty to the ideas and achievements of Richard M. Stallman and the wild bunch of old-time geeks who authored the basic GNU utilities, compilers, and editors. Their legacy still lives on "under the hood" of modern GNU/Linux distros; just browse through the man pages, and you'll be surprised how many renown names from the past you'll encounter (yes, including Ian Murdock).
*The amazing inner workings of the Kernel, the ingenious invention of a young geek from Finland who in his youthful fearlessness embarked on a humongous project that instilled fear in many an older programmer. There is poetry in these two rivers, one from the Old Continent, and the other from the New World, which were eventually joined in this community achievement called GNU/Linux. That's an additional reason why I consider it the "Unix for the rest of us". Just like good poetry, its beauty takes time, effort and inclination to grasp in full; but gives immense gratification to those who can. That is why, although being the OS for the masses, it's definitely not an OS for everybody.
*The *nix legacy, on which GNU/Linux is built; although I've never used a true *nix, I have deep respect for this incredibly old, yet incredibly modern OS. I consider GNU/Linux a modern incarnation of the unices of yore, a Unix for the rest of us and, more importantly, a Unix for the future.
*No [[Digital Restrictions Management|http://www.eff.org/wp/digital-rights-management-failure-developed-world-danger-developing-world]]. GNU/Linux does not encourage purchasing """DRM-ed""" content which will ''stop functioning the moment you buy a new computer, or reinstall your OS, or your DRM provider goes broke, or the file format changes, or whatever''. Just read the following premises:
<<<
When I bought my first mp3 player I could take my exising CD collection, rip it and be able to play it on my new device. This meant I got an immediate benefit of having my entire music collection with me all the time, just by buying the player. If I buy an e-reader then in order to get all my existing books on it I have to go and buy them again. What's worse is they'll cost me the same or more than I paid for the paperbacks. I can't go and exchange my Pratchett collection for the electronic versions for a nominal fee. I can't easily scan them in myself and produce some decent ebooks. I can't even go and buy the entire set for £20; I'd have to spend something like ten times that.
http://www.earth.li/~noodles/blog/2009/11/playing-with-an-e-reader.html
<<<
**The robbers who like to euphemistically call themselves "content providers", don't think that preventing you from sharing information with your neighbor is enough, so now they are preventing you from sharing information ''even with yourself''??!! To me, the only logical conclusion of this is to ''never'' buy into ''any'' DRM, ''ever''. Why in the world would you spend money for a banana you can't eat? Yet that's exactly what millions of people do. Especially the young, poor things, obviously don't know any better. They can't remember the time when you [[actually owned what you bought|http://wiki.openrightsgroup.org/wiki/Digital_Rights_Management#Users.27_Rights_Versus_Content_Providers.27_Rights]]. As times go by, the memories of that fairy era will fade, and new generations will be (in fact, they already are) perfectly willing to pay multiple times for the same content, ten times over. I could bet that, when it becomes technically feasible, these [[malcontent providers|http://www.gnu.org/philosophy/words-to-avoid.html]] will prevent you from showing your legally purchased e-book to your neighbor, or letting your neighbor listen to the newest single on your player. The gadgets will detect the presence of other persons around you and simply refuse to play. Luckily, that won't be my problem anymore. No operating system in the world can save you if you're //non-compos-mentis// enough to ''pay'' for stuff that can ''inherently never become yours''. It's you who shouldn't let --your-- media own you.
*Similarly, you shouldn't be owned by your software, it should be the other way round. Your {{{/home}}} is the digital, electronic counterpart to your physical home: and, as such, ''nobody has the right to meddle with it without a search warrant''. You shouldn't be exposed to potential legal repercussions for every little thing you may inadvertently do with the OS hard drive in your obsolete computer (say, recycle it or give it away, which may eventually result in it being reused by somebody else, which, in case you didn't know, makes you a legal offender) or a software CD (say, forget it on a park bench where somebody finds it and starts making/selling unauthorized copies of it). With GNU/Linux ''you'' own the software, you're not just "''licensed to use'' it, on just this computer, on just certain days of the week, and restricted in the number of hardware changes you're allowed to make". You may reinstall it on any machine, anywhere, anytime, and you never have to "register" with your "vendor" if you want to get updates and security fixes. Likewise, the OS will not nag you or even plain stop working if you fail to register it. You may change any hardware components you like, the OS will merrily keep on chuggling as before. Not only are you allowed to use and misuse it as you see fit, but are allowed -- even encouraged -- to pass it on to your friends! Downloading and even copying a GNU/Linux CD/DVD is not a crime and not prosecuted by any law. You can even throw it in the garbage without fear of any prosecution!
*Related to the above: "fire-and-forget". No need to register in order to get your "genuine advantage". Once your system is installed, once your drivers are installed, once your preferred softwares are installed, you don't have to visit your system's or hardware's or software's vendor's website again. Ever. In most GNU/Linux distributions the package management system does that for you, you never ever have to return to any almost-impossible-to-find download subpages to download the newest driver for your graphics card or yet another patch for your word processor. You're also free of the perennial dilemma: do I download my graphic card driver from the video chip maker, from the card manufacturer, or from the OEM who put the card in my laptop? Oh, yes, and who was it that currently owns AMD, who, in turn, owns ATI, who, in turn, owns the original maker of my card?
*The caustic, incredibly hostile [[EULA|http://www.cybersource.com.au/cyber/about/comparing_the_gpl_to_eula.pdf]] (I wonder how anybody could ever agree to all that aggressiveness; I suspect we just never bothered to read it in full) is replaced -- or should I say retaliated? -- by the viral GPL. To me, GPL just makes sense. Even more importantly: it's humane. If I must be called a "freetard" for that ... so be it.
<<<
Unfortunately, the EULA for every piece of Microsoft software and update is exceedingly long, verbose, and nearly impossible to understand. I do not have the time and patience to go through every term and make sure it is something I can agree to. And when I find a condition in an update that I'm not willing to comply with, I don't know what to do. It keeps pestering me every so many minutes to install the update - which may be necessary for subsequent updates, but I can't agree to the terms.
http://scruffylookingcatherder.com/archive/2007/06/04/is-microsoft-evil.aspx
<<<
*GNU/Linux is virtually never ''rammed down your throat'' when you buy a new computer. On the contrary, if you want it, you must explicitly //ask// for it (and most of the time, that's not enough either). Now, that's what I call freedom to choose.
*The amazing synergy between the GNU/Linux developers and the GNU/Linux "crowd". It never ceases to impress me how GNU/Linux programmers, although mostly programming to "scratch their own itches", never fail to listen to their users' feedback and implement their suggestions if at all possible. I've never seen such a relationship in proprietary software circles. Surely that must be the reason why, in GNU/Linux, with a little patience, you'll eventually get exactly the features you need (even if you were unaware you needed them). More often than not, new versions of FLOSS software bring along (not surprisingly, given the intercommunication process described above) exactly those improvements you most need! How immensely different from proprietary software which is always full of unwanted, and sometimes extremely unpleasant surprises -- be it
**Digital Restrictions Management, hijacking your hardware and claiming ownership over //your data//,
**redundant, obfuscated file formats, such as Real Media, .wmv, .wma and the like,
**completely unneeded new proprietary codecs (as if there weren't too many around already),
**non-standard format extensions which only bring additional chaos to areas which are in full development and extremely hard to standardize as it is (html, css, DOM, ooxml "extensions" come to mind),
**absolutely superfluous frameworks with //huge// runtimes, such as .NET, MONO, and so on.
*The virtual-desktops metaphor. I always set myself 8 virtual desktops and hop from one to another by means of convenient keyboard shortcuts. A method for evading desktop clutter that has not been surpassed yet and will not be surpassed easily; in fact, the wibbly-wobbly metaphors introduced in recent accelerated desktops seem a step backward to me.
*The 7 virtual consoles.
*The GUI (Global Unix Infrastructure) underlying your usual GUI (Graphical User Interface): whereas to automate any repetitive task in certain Operating Systems, you must install additional bloated "scripting hosts" ''on top'' of your GUI, in Unix and GNU/Linux, you write automated scripts by ''descending'' to a lower level, to the infrastructure of your OS. Not only is this leaner, sleeker, faster, more universal and less error-prone: it has the additional benefit of not being tied to any particular "scripting host" or "high level scripting language". Thus, it can be easily ported to any other GNU/Linux system, and, with due modifications, to Unix systems as well. And it will not be obsoleted as soon as your "scripting host" goes belly up and is replaced by the new fad.
*GNU/Linux is (still) a minority OS. According to certain indirect data (say, this [[table on search engine users|http://chitika.com/blog/2009/08/21/chitika-study-open-source-users-love-google-hate-microsoft/]]), we may guesstimate that we are outnumbered by Windows users by as much as 100 to 1 -- and probably more! And, yes, I admit: it feels damn good to be among //the few, the happy few//.
*The war of the """OSes""" is progressively shifting from the technological to the social ground. Actually, almost everything these days -- consumer technology in particular -- seems to be primarily a social issue or quickly becoming one, from mobile phones to various Twitters and Facebooks, from shared music and photo collections to cloud computing. Notwithstanding the high respect I have for the (mostly nameless) crowd of FLOSS developers, I must admit that -- on a certain level -- capabilities, speed, pizazz, hardware compatibility, the selection of available applications, //even security//, are not the ''main'' reason why I prefer GNU/Linux any day of the week. To me, the crucial difference between a FLOSS and, specifically, a Windows OS, is //the type of community they represent// and, conversely, //engender//. It's perhaps best illustrated with the metaphor of a home threatened by fire: I see the proprietary OS as a gang of 'hood thugs stepping out of a shiny car and telling me very loudly that, if I don't pay them protection money, one of these nights my house might just burn down; the FLOSS, on the other hand, is a bunch of good-willed neighbors, who may be unnoticed, quiet, shy, or grumpy, but are prepared to step in and start passing the bucket the moment the need should arise. Their buckets may be leaky while the cars of the thugs may be shiny, but that doesn't make me falter one second when deciding which of the two groups I can relate to.
*What do these have in common:
**"""NYSE, YouTube, Wikipedia, Akamai, Amazon, Google""";
**"""Garmin Nuvi880, Nokia N810, Asus Eee PC, Amazon Kindle, TiVo, BMW, Mercedes, and the majority of high-performance supercomputers""";
**"""Linus Torvalds, Cory Doctorow, Cindy Margolis, Stephen Fry""";
**Avatar, The Day the Earth Stood Still, Gladiator, The Matrix, Titanic;
**"""The city of Munich, the West Yorkshire Police, the French Gendarmerie, the University of Sao Paulo, the US Postal Service and the US Federal Courts""";
**[[This|http://www.jonobacon.org/2010/08/30/incredible-stories-of-free-software-and-open-source/]] African kid;
**(yes, you guess right, all of the above either use, run on, or are otherwise related to GNU/Linux)!
*Who said GNU/Linux wasn't [[s-|http://www.nixiepixel.com/blog/]][[e-|http://ww2.cs.fsu.edu/~motta/]][[x-y|http://tille.garrels.be/old/linux/]]?!?!?!
*No viruses to speak of.
*No spyware to speak of.
*No adware to speak of.
*No cost to speak of.
*No users to speak of (just kiddin' ...).
The sudden lucid moment I realized what the problem is obscurity Tiddlywiki program, which is written The present site. The author Jeremy Ruston, like most writers of software is prone to precision, not to mention scientific expression and unambiguous terminology. That is why for each software package and its installation program, also came up with impressive special efforts precise term used by denotira. Unfortunately, the problem is that the end user in an endless sea of innovative entries, such as a "tiddler" or "shadow tiddler" just confusion, so that in the end simply does not know what all we spoke. My poor, only the user and in no way an expert opinion that it would be much more accessible Tiddlywiki and perhaps even more successful if his composure to avail himself less innovative, wishes to run the terms and codes, so that the program would "help" was understandable and intuitive mere accessible. As evidence of how quickly the tendency to precision and clarity Mon turns into its opposite and becomes incomprehensible obskurnost.
In order to form the present record komplementiral its contents, I wrote in Slovenian and gave it to translate stričku Google. The result is just stupid, so I am surprised to come across on the Internet more and more compositions in "English" that are direct, uncorrected translation of Uncle Google. How many people allegedly at least somewhat understand the English language, then vzlic all decide to be launched directly, absolutely nekorigirano Google skrpucalo.
But if you think better (this should read "on Second Thought", but it certainly will not), it is perhaps one of the best ways you can make non-English nations "knock back" the monopoly of English, which undeserved - and artificially actual representation of peoples and cultures - monopolizing the whole Internet.
PS: And a stupid phenomenon I noticed while I assembled the present record. If you are aware that writing for the stupid electronic translator, a man inadvertently starts to write a sort of "butlju customized" version of his thoughts, so that, finally, the result is worse than it could be. When translated to butlje motherfucker written text is the result of failures even for Dummies. Hmm, interesting: Uncle G is the motherfucker motherfucker!
V nenadnem preblisku sem ugotovil, kaj je glavni problem nerazumljivosti programa Tiddlywiki, v katerem je pisana pričujoča stran. Avtor Jeremy Ruston je, kot večina piscev softvera, nagnjen k preciznemu, da ne rečem znanstvenemu izražanju in nedvoumnemu izrazoslovju. Zato si je za vsak programski sklop in objekt svojega programa s prav občudovanja vrednim trudom izmislil poseben precizen izraz, ki ga denotira. Težava je žal v tem, da končnega uporabnika to nepregledno morje inovativnih izrazov, kot je na primer "tiddler" ali "shadow tiddler", samo zmede, tako da na koncu preprosto ne ve, o čem sploh teče beseda. Moje skromno, zgolj uporabniško in nikakor ne strokovno mnenje je, da bi bil Tiddlywiki veliko dostopnejši in morda celo uspešnejši, če bi se njegov sestavljavec poslužil manj inovativnih, utečenih izrazov in oznak, tako da bi programski "help" bil razumljivejši in že zgolj intuitivno dostopnejši. Kar priča o tem, kako hitro se lahko stremljenje po preciznosti in nedvoumnosti prevesi v svoje nasprotje in postane nerazumljiva obskurnost.
Da bi tudi s formo pričujočega zapisa komplementiral njegovo vsebino, sem ga zapisal v slovenščini in ga dal prevesti stričku Googlu. Rezultat je prav neumen; zato me preseneča, da srečujem na internetu čedalje več sestavkov v "angleščini" ki so direktni, nekorigirani prevodi strička Googla. Koliko ljudi, ki domnevno vsaj nekoliko razume angleški jezik, se torej vzlic vsemu odloči, da bo objavilo direktno, absolutno nekorigirano Googlovo skrpucalo.
Ampak, če bolje pomislim (tole bi se moralo glasiti "on second thought", a se zagotovo ne bo), je to nemara eden boljših načinov, kako lahko neangleški narodi "udarimo nazaj" ta monopol angleščine, ki nezasluženo -- in neproporcionalno dejanski zastopanosti ljudstev in kultur -- monopolizira celotni internet.
P.S.: Pa še neki butasti pojav sem zaznal, medtem ko sem sestavljal pričujoči zapis. Če se zaveda, da piše za butasti elektronski prevajalnik, začne človek nehote pisati nekakšno "butlju prilagojeno" verzijo svojih misli, tako da je nazadnje rezultat še slabši, kot bi lahko bil. Ko butelj prevede za butlje pisan tekst, je rezultat porazen celo za telebane. Hmm, zanimivo: za strička G je butelj motherfucker!
Suggested further reading:
http://www.elenkist.com/bushido_burrito/blog/?p=5
If you follow the FLOSS world long enough, you soon begin to notice two opposing tendencies in the developers vs. users relationship:
#some developers appear to not give a dog's turd about what their users want, or what objections and reservations may users express wrt using their software;
#some developers are excessively accommodating and make it their duty to implement even the most wacky, far-fetched suggestions and requests made by the most marginal and unrepresentative user of their software;
of course, there are infinite gradations of the above, I only specify the two extreme points, rarely encountered in real life. But you get the point, right?
I may as well tell in advance that I'm about to argue for the former approach; I'll try to point out why major overhauls -- ''even when badly called for'' -- may be something BAD™ per se. I'll try to illustrate my points with common examples, such as the idea that man pages should eventually be done away with, and why that would be a BAD IDEA™ (just as any major overhaul is very likely to be). And why, when faced, as FLOSS projects generally are, with personnel deficiency, making a schism is still better than the entire team jumping onto the overhaul bus; yes, //even when both the original and the forked project may result in being severely underpowered because of the fork//.
In addition, I'm going to show why achieved best practices, learned behaviors, and old tools are to be given precedence in all cases over new overhauls. I'm going to demonstrate how and why is it that, more frequently than not, the undisputed "Hey, why don't we ..." innovative approach is, counter-intuitively, ''less'' productive than the "Why the heck should we ..." conservative approach; in other words, why simply "being innovative" (for the sake of it) is not necessarily a GOOD THING™ in all circumstances. I'm going to cite some examples of how major overhauls only resulted in the sad demise of the related FLOSS project, or in the ''original'' project eventually being picked up from sheer need by the user community, and eventually outliving or at least thriving side-by-side with the overhauled one. I will not forget to mention one of the best things since sliced bread: the fact, noticed by Penguin Pete, that //there is no "abandonware" in the FLOSS world -- there are just "projects put on hold"// and waiting to be resumed. I will also expound at length how, with the cancerous concept of "overhauling", one of the chief advantages of human knowledge -- the fact that ''knowledge is cumulative'' -- gets thrown into the trash, forcing every new generation to reinvent the wheel instead of building on the shoulders of giants. I will also show why every single decision of dumping anything as "obsolete", "old-fashioned", "old-school", "not sleek", "not sexy" and so on, should be scrutinized with utmost attention and for the longest of times (perhaps decades) before the decision is actually reached to deprecate and dump it. I will unequivocally show how, while we usually know the pros and cons of the old solution at the practical experience level, we only know the pros and cons of the new proposed solutions at the theoretical inference level -- which is orders of magnitude inferior to the former; it's the difference between actually ''knowing'', as opposed to just ''supposing''. I will likewise suggest that even in the rare cases when new solutions ''are'' eventually put in place to supersede old, proven ones, the old and proven ones shouldn't be "dumped" in any real sense of the word; instead, they should be kept in parallel for an indeterminate time. In the case of software, for example, the old-school {{{/proc}}} subtree should be kept indeterminately in parallel with the new {{{/sys}}} kernel interface even after being officially deprecated. Likewise, if we were fools enough to actually do away with GNU/Linux {{{man}}} pages, they should nevertheless be kept in the standard GNU/Linux distributions, preferably as part of the ''stock, default install''. The rationale being that, in general, new softwares use far more resources than software from, say, 20 years ago. Thus, even if manual pages were deprecated, it would still be foolish to not let users have continued access to them, given that they only take -- what, several megabytes? -- of disk space whereas the rest of a modern GNU/Linux distribution gulps up anything from a few //hundred// megabytes to a couple of //gigabytes//. I am going to argue, and convincingly so, that the usefulness of those "old-school", proven solutions, even if only ever used by a fraction of remaining "old farts", immensely outweighs the //comparatively tiny// overhead of installing them. With forthcoming, multi-gigabyte distributions, this should increasingly become a non-issue, making the decision to actually dump those old tools not only pointless, but outright stupid.
I will also try to explain why many users actually prefer their operating systems to evolve at an extremely slow pace, with many years passing between any two major editions. If you happen to be one of those Debian users that value Debian's approach (in the stable branch) of not actually touching your installed application base (introducing new packages, for example, or bumping the upstream package versions), but nevertheless continually improving their security and fixing their bugs, then you know what the advantages of a stable, fire-and-forget system are. I will show first-hand what a royal pain it can be to update your configurations, convert your data, shuffle your partitions etc. every couple of years, when observed from a perspective of, say, 20 years of computing life. I will explain to you how, what may seem just ordinary administration for a six-months old box, may turn into pointless overhead -- or even a bittering chore -- in a real-life scenario, such as when you extend those 6 months to 6 years, with several hardware and software upgrades in between, throwing in an additional laptop, and perhaps a netbook or two later on. I won't even mention the tales of woe that sysadmins of larger installations could tell you ...
I will also show, hands-on, how, in 9 instances out of 10, the energy and the man-hours put into any major overhaul could be put to far better use by making the //already available// packages stabler, sleeker, faster, more cross-platform, more compatible, more concise, or more standards-compliant.
I will raise the blasphemous question as to whether GNU/Linux really needs Yet Another Mail Client (or Yet Another Bittorrent Client, or A Brand New Plain Text Editor, for that matter); I will seriously ask myself, and you, wouldn't we be far -- far! -- better off if there were just a couple of mail clients, both stable as hell, and permanently polished, improved and robustified, and perhaps a bunch of lightweight GUI front-ends for them instead of KDE having their own mail client written from scratch, Gnome having their own mail client written from scratch, Mozilla having their own mail client written from scratch, and so on. There's an immense wealth of robust command-line tools that JUST WORK™ -- instead of reinventing the wheel, powerful and flexible GUI front-ends are all that's needed for the era of "GNU/Linux on the desktop". (Of course many such solutions do exist and I am well aware of that; the reason I wholeheartedly endorse the approach is the deduplication -- or rationalization, if you will -- of efforts; it's the art of //getting the most with the least possible effort;// there's something Zen-like in that.)
I will not forget to point out how seemingly obsolete command-line tools, memory-saving and disk-space-saving techniques, assembly programming and stripped-down algorithms we were almost beginning to dump and forget forever, are recently re-emerging more alive than ever in the world of smart phones, routers, and other appliances; suddenly, old programming tricks and ingenuity -- from the dawn of (computer) time, when the seas were still blue and programming was still an ''art'' -- are revived again, thanks to the memory, space and processing-power constraints of these new devices; which are, by the way, already //outnumbering the installed computerbase//.
And I will conclude with a proposal, or a vision if you will, of a Free Software World in which both these trends can peacefully coexist, without any need whatsoever to fight an "either/or", "it's either me or you" internecine battle. I will demonstrate convincingly how there is no need whatsoever to push old software out with axes and pitchforks, because ''old software is getting out of the way to new solutions anyway,'' all the time; and is doing so in the most peaceful and intelligent of manners: by way of taking a (comparatively) ever smaller footprint, until that footprint, given big enough distributions, virtually approaches 0%. I will disclose how, if we're smart enough, we can leverage this "natural", self-regulating mechanism wisely in order to get the best of both worlds, to the mutual satisfaction of both "old-timers" and "modernity freaks" alike. I will suggest that all we have to do is actually just ... do nothing; just proceed cautiously, and ''never throw away anything lightly''. Damn -- not throwing away anything is even environment-friendly!
Yes, that's what I will write; all that, and more.
When I find the time.
Because a long story should be cut short. So, in short: systemd is everything I do not want my operating system to be.
!!!Or: Why Not Windows (Anymore)
I ditched Windows exclusively on ethical grounds (I still think that technologically Windows XP is as competent an OS as any). The migration coincided with my decision to stop buying or "pirating" copyrighted content once and for all, and rely solely on public domain works from now on. I was fed up by the ever-tightening grip of the [[Digital Restrictions Management|http://wiki.openrightsgroup.org/wiki/Digital_Rights_Management#Users.27_Rights_Versus_Content_Providers.27_Rights]] which insulted me, a long-term loyal consumer of LP's, audio cassettes, and VHS cassettes first, and """CDs""" and """DVDs""" later, by treating me as some suspicious, sinister pickpocket. The problem is not a practical one, as everybody knows that ''technically'' DRM can be circumvented in minutes, but an ethical one: as soon as you do that, you've ''broken the law''. And I can never do that light-heartedly.
I was likewise nauseated and insulted by Microsoft's marketing strategies, as may be savored from the following news snippets (in which text is ''emphasized'' by Klistvud), or from [[Roy Schestowitz|http://www.boycottnovell.org]]. For those interested in mere technical merits, [[msfree|http://www.msfree.com/]] may be a better resource.
<<<
Gates shed some light on his own hard-nosed business philosophy. "Although about 3 million computers get sold every year in China, but people don't pay for the software," he said. "Someday they will, though. As long as they are going to steal it, we want them to steal ours. They'll get sort of addicted, and then we'll somehow figure out how to collect sometime in the next decade."
http://news.cnet.com/2100-1023-212942.html
<<<
(And in fact, in the next decade:)
<<<
Microsoft said it had slashed the price for Office 2007 Home and Student Edition to 199 yuan ($29) from 699 yuan ($102). The promotion, which started on Monday, will last through next week's National Week holiday.
The price cut is designed to make Microsoft's products in China more affordable and more promotions are likely in future, said Jim Lin, the company's public relations manager in Beijing.
"With this price, we believe more customers can enjoy authorised software products," he said.
http://www.reuters.com/article/rbssTechMediaTelecomNews/idUSPEK1362420080923
<<<
<<<
In 2000, the Redmond, Wash., software maker was found to have maintained an illegal monopoly in the desktop operating system market. Its illegal conduct included retaliation against original equipment manufacturers that promoted non-Microsoft middleware, namely the Netscape Navigator browser.
http://www.eweek.com/c/a/Government-IT/Did-Microsoft-Threaten-Linux-OEM/
<<<
<<<
The Court concludes that Microsoft maintained its monopoly power by anticompetitive means and attempted to monopolize the Web browser market, both in violation of §2. Microsoft also violated § 1 of the Sherman Act by unlawfully tying its Web browser to its operating system.
http://news.bbc.co.uk/2/hi/in_depth/business/2000/microsoft/700702.stm
<<<
<<<
EU commissioner Neelie Kroes has lashed out at Microsoft in comments to European parliamentarians Thursday, saying it is 'unacceptable' that ''the company continues to gain market share using tactics that were outlawed'' in the Commission's 2004 antitrust ruling against the software vendor.
http://politics.slashdot.org/politics/07/03/22/1923240.shtml
<<<
<<<
In Nigeria Microsoft made persistent attempts to revoke the government plans to use OS software in a national School Laptop Programme. In both Namibia and Nigeria, where it has sought government contracts, ''Microsoft hired family members of government officials''.
http://www.netzpolitik.org/2009/misconceptions-and-failed-attempts-microsofts-strategy-for-africa/
<<<
<<<
So if a public school buys a higher spec netbook'with Windows XP, they get a $156 discount ''from the government''. If they buy a lower spec one netbook with Linux they do not.
http://cafuego.net/2008/09/09/linux-victorian-education
<<<
<<<
So Microsoft does that to maintain its product stranglehold, while at the same time emphasizing its ''license donations, which is akin to presenting us with the Trojan horse''. They want us to utilize taxpayers' money to build a critical mass of school teachers, who will in turn teach their students how to use the software of a multinational monopoly. And then a chain reaction sets in: drugstores, bakeries and other small businesses in small country towns -- where information technology is accessible only in schools -- will have to use Microsoft´s proprietary software.
http://www.linuxjournal.com/article/7654
<<<
<<<
Presented to the European Commission, the study concluded that it's better for students to learn general IT skills rather than just proprietary software.
Otherwise, it's less likely that software from other vendors will be used if people are only trained in programs from one vendor, said Rishab Aiyer Ghosh, of the United Nations University-Merit in Maastricht in the Netherlands. Ghosh is one of the authors of the study.
Microsoft's educational donations look less generous when the company spends "it in order to create a market that's forced into buying its products," he said. But Ghosh added it's hard to argue that struggling schools "should refuse the computers altogether if there's no money."
http://www.nytimes.com/idg/IDG_002570DE00740E18802573D800322758.html?ref=technology
<<<
<<<
Cette semaine, le géant mondial de l'informatique Microsoft a signé un accord de partenariat avec l'université de Lyon 1 . Une première pour une université française.
Le groupe privé devrait apporter 180 000 euros sur trois ans à l'université dont 60 000 euros seront alloués à l'attribution de bourses aux étudiants défavorisés.
Pour Lyon 1, cet accord ne devrait être que « le premier d'une longue série ».
[...]
L'accord ne comporte ''« aucune influence ni sur l'enseignement, ni sur la recherche »'' de la part de l'entreprise, affirme de son côté Microsoft. Aucune influence mais des « propositions ». « On va apporter du contenu pédagogique avec IT Academy mais les enseignants seront libres de les utiliser ou non. C'est la même chose pour les logiciels libres, l'université pourra les utiliser si elle le souhaite », reprend Eric Le Marois.
http://www.usinenouvelle.com/article/l-universite-de-lyon-1-s-ouvre-aux-entreprises.124191
<<<
<<<
Fine words, but the reality is that if those "local software industries" do indeed emerge, they will be formed from programmers who are completely dependent on American software for the livelihood: it's neo-colonialism, pure and simple.
http://opendotdotdot.blogspot.com/2009/05/microsofts-neo-colonialism-in-africa.html
<<<
<<<
Some compare Monsanto’s hard-line approach to Microsoft’s zealous efforts to protect its software from pirates.
http://opendotdotdot.blogspot.com/2009/10/monsanto-making-microsoft-look-good.html
<<<
<<<
Still, here we have Microsoft approaching at least one person to ''"correct" Wikipedia for money''.
http://www.linux-watch.com/news/NS9314284615.html
<<<
<<<
Microsoft asked for references to free software to be removed from a document presented at last week's UN World Summit on the Information Society (WSIS) conference, the software giant admitted on Friday.
http://linux.slashdot.org/article.pl?sid=05/11/25/1947219
<<<
<<<
Inside Higher Ed has a story detailing Microsoft's attempt to alter a report created by the Secretary of Education's Commission on the Future of Higher Education. Gerri Elliott, corporate vice president at Microsoft's Worldwide Public Sector division, complained about recommendations in the report to look into 'open source' and 'open content' at higher education institutions across the country. Elliott, who is on the voting committee, waited until the last minute and tried to have the report changed ''after a public vote''.
http://politics.slashdot.org/politics/06/09/01/1418252.shtml
<<<
<<<
A few years ago, Be's CEO Jean-Louis Gassée used the phrase "peaceful co-existence with Windows" to describe his company's intended relationship with Microsoft on the consumer's hard drive. Later, when it became clear that Microsoft had no intention of co-existing with a rival OS vendor peacefully, Gassée recanted, saying, "I once preached peaceful coexistence with Windows. You may laugh at my expense -- I deserve it."
http://www.birdhouse.org/beos/byte/30-bootloader/
<<<
<<<
Want to know why Microsoft has so many people saying good things about it, despite endless security problems, high prices, product lock-in and a big brother attitude toward using their products? Microsoft bribes people.
Microsoft blogger Long Zheng tells us that he, and many other bloggers, from the "A list to Z list" received an early Christmas present: Acers Ferrari laptops.
http://www.eweek.com/c/a/Linux-and-Open-Source/Bribing-Bloggers/
<<<
<<<
I've been thinking long and hard about this, and the only conclusion I can come to is that ''this is ethically indistinguishable from bribery''. Even if no quid-pro-quo is formally required, the gift creates a social obligation of reciprocity. This is best explained in Cialdini's book Influence (a summary is here). The blogger will feel //some// obligation to return the favor to Microsoft.
http://www.joelonsoftware.com/items/2006/12/28.html
<<<
<<<
What started off as a worthy project to bring laptop systems to the worlds children, now is facing production delays, and the systems may not get into the hands of children until late 2007. Rumors have surfaced that there could be some kind of manufacturing difficulties from the company that is going to produce these laptops, however, it seems very strange that two companies, Microsoft and Intel, may be playing a part in the delay as well.
http://www.lockergnome.com/blade/2007/04/28/one-laptop-per-child-production-delays-caused-by-microsoft-intel/
<<<
<<<
Moreover, Bill Gates announced that Microsoft would give a discounted $3 package, including Windows, Microsoft XP student edition and other educational software, which also was meant to sabotage Negroponte's XO laptop.
It was meant to be the other way around: industry giants should have been shaking hands and work together for the benefit of hundreds of millions of children - their possible future targeted market. Instead, they have made out of poverty another battlefield in search for profit.
http://news.softpedia.com/news/One-Laptop-Per-Child-Sabotaged-by-Microsoft-and-Intel-71941.shtml
<<<
<<<
For-profit companies threatened by the projected $100 price tag set off at a sprint to develop their own dirt-cheap machines, plunging Mr. Negroponte into unexpected competition against well-known brands such as Intel Corp. and Microsoft Corp.'s Windows operating system.
http://online.wsj.com/article/SB119586754115002717.html
<<<
<<<
The European Commission, in its March 24, 2004 decision on Microsoft's business practices,[2] quotes, in paragraph 463, Microsoft general manager for C++ development Aaron Contorer as stating in a February 21, 1997 internal Microsoft memo drafted for Bill Gates:
"The Windows API is so broad, so deep, and so functional that most ISVs would be crazy not to use it. And it is so deeply embedded in the source code of many Windows apps that there is a huge switching cost to using a different operating system instead...
"It is this switching cost that has given the customers ''the patience to stick with Windows through all our mistakes, our buggy drivers, our high TCO, our lack of a sexy vision at times, and many other difficulties'' [...] Customers constantly evaluate other desktop platforms, [but] it would be so much work to move over that they hope we just improve Windows rather than force them to move.
http://en.wikipedia.org/wiki/Vendor_lock-in
<<<