From: Lucian Mogosanu Date: Sun, 23 Apr 2017 12:59:32 +0000 (+0300) Subject: posts: 061, 062 X-Git-Tag: v0.10~15 X-Git-Url: https://git.mogosanu.ro/?a=commitdiff_plain;h=d9f519510f2b4ce31979de28f08fe45026d03c58;p=thetarpit.git posts: 061, 062 --- diff --git a/posts/y03/061-development-log-ii.markdown b/posts/y03/061-development-log-ii.markdown new file mode 100644 index 0000000..1555d97 --- /dev/null +++ b/posts/y03/061-development-log-ii.markdown @@ -0,0 +1,248 @@ +--- +postid: 061 +title: The Tar Pit development log [ii] +date: April 17, 2017 +author: Lucian Mogoșanu +tags: tech +--- + +In our [previous log entry][development-log-i] we set the goal of +hosting The Tar Pit on its own HTTP server, as opposed to a +general-purpose setup, and then using it to serve dynamic content, +e.g. comments. We skimmed through a few Common Lisp HTTP server +implementations -- why reinvent the wheel when we can steal the +blueprints? -- and found at least two such implementations that are +minimal enough to be useful for us: Sven Van Caekenberghe's +[s-http-server][s-http-server] and Tomo Matsumoto's +[cl-http-server][cl-http-server]. To continue, we'll give a brief +overview of one of the former and afterwards get a better look at the +latter. + +Let's begin with s-http-server. Its interface is fairly simple to use, +as stated in the README: creating, starting and stopping servers as well +as setting handlers for given URIs are all a piece of cake, +except... the whole thing doesn't really work. On a first glance, we +notice that the `start-server` method calls +`s-sysdeps:start-standard-server`, while `stop-server` calls +`s-sysdeps:kill-process`, which denotes a confusion between the two +abstractions[^1]. Then we notice s-sysdeps contains its own +general-purpose `stop-server` routine, so we can make that public and +then use it (instead of `kill-process`) to stop the HTTP server. + +All this turns our server into a working machine until trying to serve a +static file, any file at all. Leaving aside the fact that for some +reason SLIME doesn't integrate too well with SBCL's `add-fd-handler` +(`sb-impl::serve-event` needs to be called manually to trigger the +handling routine), the HTTP connection handler[^2] ends up trying to +write a sequence of raw bytes to a stream that expects characters. I'm +not willing to put up with that; what other bugs await in the rabbit +hole of s-http-server? If you're interested, find out yourself and let +us know. + +cl-http-server is very similar to s-http-server, only it's somewhat +heavier on the dependency side: it depends among others on Bordeaux +Threads, CL-FAD, flexi-streams and trivial-shell, which themselves have +some dependencies, which make our in-depth exploration somewhat +difficult. There's also no tutorial on the cl-http-server page, so we're +going to go through the first steps ourselves. Let us proceed. + +Assuming that all the packages are in place and ASDF knows how to load +them[^3], let's begin by importing the library: + +~~~~ {.commonlisp} +CL-USER> (asdf:load-system :cl-http-server) +... +CL-USER> (in-package :cl-http-server) ; ... for convenience +~~~~ + +Now that we have `cl-http-server` loaded, how do we use it? The examples +directory has a file called [test.lisp][cl-http-server-test] which gives +us a basic idea. Also, looking at the definition of `start-server` +(`server.lisp`), we see that the default value of the `server` argument +is the result of a call to `make-server`, the constructor of +`server`. Let's take a look at how a `server` object looks: + +~~~~ {.commonlisp} +(defstruct server + (host "127.0.0.1" :type string) + (port 8080 :type integer) + ... + (public-dir "/tmp/cl-srv/public/" :type string) + ... + (session-save-dir "/tmp/cl-srv/session/" :type string) + ... + (thread)) +~~~~ + +There are quite a few fields whose meaning we don't understand exactly +quite yet, but we notice there is a `public-dir` which can be used to +serve static files[^4], some fields related to session management[^5] +and finally some configuration related to logging, cookies and garbage +collection. We don't care about most of them right now, but we'd like to +be able to do the bare minimum of serving The Tar Pit in its current +form, which means that we can set `public-dir` to wherever the site +is. Let's give it a try: + +~~~~ {.commonlisp} +CL-HTTP-SERVER> (defparameter *my-server* + (start-server (make-server :public-dir *lbs-site* + :port 8000))) +*MY-SERVER* +CL-HTTP-SERVER> (describe *my-server*) +#S(SERVER.. + [structure-object] + +Slots with :INSTANCE allocation: +... +~~~~ + +Where `*lbs-site*` is the path to The Tar Pit +[Lisp Blog Scaffolding][i-wrote-a-blog] site defined in +[config.lisp][config-lisp]. + +Now, pointing the browser at `localhost:8000` displays us a "Default +index page" message, which is actually the same page as that returned by +the `index-page` function, which we notice is called from +`default-page`. Either way, by trying out `localhost:8000/index.html` we +actually get the index of our site. This is pretty incovenient, since +we'd like `/` (the root) to point to this page. Before looking at how to +do that, let's get an overview of a few of the abstractions that +cl-http-server offers us: + +* `(get-page path)`: retrieves the page associated with `path` +* `(set-page path fn)`: associates the page given by the handler `fn` + with `path` +* `(page-lambda (args ..) body)`: macro that creates a handler to be + used in conjunction with `set-page` +* `(defpage name (args ..) body)`: alias for `set-page` and + `page-lambda`; read the code +* `(page path args)`: sort of an alias for `get-page`; read the code +* `(serve-file path)`: pretty self-explanatory + +We notice that `default-page` tries to get the page named `default` +(which, intuitively enough, maps to the URI `/default`). If it finds a +definition for it, then it serves it; otherwise, it returns the "Default +index page" message. So all we need to do is to define it using +`defpage`: + +~~~~ {.commonlisp} +CL-HTTP-SERVER> (defpage default () + (serve-file + (merge-pathnames #p"index.html" + (namestring (public-dir))))) +~~~~ + +Pointing the browser to `/` or `/default` should throw up the index page +now. + +Now we want to test dynamic stuff, so let's say that we wanted to create +a dynamic page, `/my-page`, that increments a variable on each access +and displays it. First, let's define the variable: + +~~~~ {.commonlisp} +CL-HTTP-SERVER> (defparameter *my-lispy-var* 0) +*MY-LISPY-VAR* +~~~~ + +Now let's define the page. For convenience, we'll use cl-http-server's +`html` utility function that returns a very simple HTML page with a +title and a body. We won't need this for the actual blog, since we +already use CL-WHO for templating, but for this prototype it should +suffice. We will wrap the page definition in a `progn` that does two +things: it increments `*my-lispy-var*` and it calls a templated `html` +which formats the value of `*my-lispy-var*` to a string: + +~~~~ {.commonlisp} +CL-HTTP-SERVER> (defpage my-page () + (progn + (incf *my-lispy-var*) + (html :body + (format nil "Lispy var: ~s" + *my-lispy-var*)))) +~~~~ + +Now let's suppose we want to do more sophisticate things. Let's say that +we want to do some processing of the URL of `/my-page`, e.g. if we want +to search for a specific page when `/my-page/a` is entered[^6], etc. For +this, cl-http-server provides us with the `uri-path` function, which +tokenizes the URL by slashes and it allows us the access the nth token +in the URL. Let's put this into an example: + +~~~~ {.commonlisp} +CL-HTTP-SERVER> (defpage my-page () + (progn + (incf *my-lispy-var*) + (html :body + (format nil + "URL suffix: ~s, lispy var: ~s" + (uri-path 2) + *my-lispy-var*)))) +~~~~ + +Now pointing the browser to `/my-page` will display "URL suffix: NIL, +lispy var: 7"; then if we point it to `/my-page/a`, it will display "URL +suffix: "a", lispy var: 8" and so on. + +Now we can stop the server (not that we would ever need to): + +~~~~ {.commonlisp} +CL-HTTP-SERVER> (stop-server *my-server*) +T +~~~~ + +To sum things up, I am quite satisfied. At some point I will need to do +some basic benchmarking and stress testing to make sure that the server +performs well under basic workloads, but even as a test setup this is +quite satisfactory. The achievement here is that we've managed to throw +together a basic server that adheres to the fits-in-head principle, +i.e. even if the length of this post is above the tarpitian average, it +still fits within the bounds of decency. + +In the following instances of our series we will adapt The Tar Pit LBS +to output posts and their metadata as S-expressions and we will +integrate the HTTP server component to serve said S-expressions as web +pages from what will be a database of blog items. + +[^1]: Servers are processes that listen, i.e. wait for incoming + connections on a given network address, e.g. an IP/port pair. That + said, looking at the server as an abstract data structure, as + defined for example by the `s-sysdeps` package, it contains other + items such as one or more sockets, a reference to the connection + handler routine and others. Thus servers and processes, as defined + in this framework of ours, lie at two distinct levels on the + abstraction ladder. + +[^2]: `handle-http-server-connection` calls + `handle-one-http-request-response` which does all the bookkeeping, + e.g. calls the particular resource handler for a given URL. + + For static files, the resource handler points to + `host-static-resource`, wherein our pesky bug lies. + +[^3]: Many people use Quicklisp for this. If you've been reading The Tar + Pit, you know that I don't think much of the `apt-get` method when + it comes to software engineering. This is why The Tar Pit is a + monolithic beast, containing all the software needed to run it save + for SBCL. + + Anyway, you can have a look at [blog.lisp][blog-lisp] to see how the + blog loads its dependencies at boot time. It's ugly, but what can I + say, it hasn't failed me so far. + +[^4]: Why not multiple public dirs? No idea. Depending on how things go, + I might have to hack this. + +[^5]: I am unsure of how useful this is, but... we'll see. + +[^6]: This is, of course, a potential security issue, but fortunately + cl-http-server already does some URL preprocessing on GET requests, + which at least gives us some level of guarantee that we're working + with a sane URL, e.g. an URL that doesn't contain double periods. + +[development-log-i]: /posts/y03/05c-development-log-i.html +[s-http-server]: https://github.com/svenvc/s-http-server/ +[cl-http-server]: https://github.com/tomoyuki28jp/cl-http-server +[blog-lisp]: https://github.com/spyked/thetarpit.org/blob/master/blog.lisp +[cl-http-server-test]: https://github.com/tomoyuki28jp/cl-http-server/blob/master/examples/test.lisp +[i-wrote-a-blog]: /posts/y03/053-i-wrote-a-blog.html +[config-lisp]: https://github.com/spyked/thetarpit.org/blob/master/config.lisp.example diff --git a/posts/y03/062-greenspan-assault-on-integrity.markdown b/posts/y03/062-greenspan-assault-on-integrity.markdown new file mode 100644 index 0000000..814c7e2 --- /dev/null +++ b/posts/y03/062-greenspan-assault-on-integrity.markdown @@ -0,0 +1,352 @@ +--- +postid: 062 +title: Greenspan's Assault on Integrity, annotated +date: April 23, 2017 +author: Lucian Mogoșanu +tags: cogitatio +--- + +Alan Greenspan is a well-known and supposedly knowledgeable economist +from the United States; supposedly, not unquestionably, for two +reasons. The first reason is that while I'm not an economist myself, I +fancy myself a thinker -- and hopefully more than just fancy, but I'll +leave this judgment to thinkers -- and as a supposed thinker, I am not +convinced. The second reason is history itself, more precisely the +unquestionable fact that under Greenspan's long-lived leadership of the +Federal Reserve, the US suffered blow after blow economically, from the +ongoing "tech bubble" started in the late 1990s to the recession of +2008. + +But instead of trying to answer such nonsensical questions as "was +Greenspan a good economist?", we will attempt a practical exercise in +understanding the man, by commenting on a text he published more than +twenty years before he started playing with federal money +policies. Below you have a copy of The Assault on Integrity, published +in August 1963 in The Objectivist Newsletter, later republished and +edited by Ayn Rand, etc., and now annotated by yours truly. + +> Protection of the consumer against "dishonest and unscrupulous +> business practices" has become a cardinal ingredient of welfare +> statism. Left to their own devices, it is alleged, businessmen would +> attempt to sell unsafe food and drugs, fraudulent securities, and +> shoddy buildings. Thus, it is argued, the Pure Food and Drug +> Administration, the Securities and Exchange Commission, and the +> numerous building regulatory agencies are indispensable if the +> consumer is to be protected from the "greed" of the businessman. +> +> But it is precisely the "greed" of the businessman or, more +> appropriately, his profit-seeking, which is the unexcelled protector +> of the consumer. + +But how is this so-called "greed" measured? For their pretended +adherence to science, said regulatory agencies are markedly lacking in +rigorousness with respect to their claims. How do we quantify greed? By +measuring profits? But any rational (and thus self-interested) agent +will try to make a profit. By measuring the amount of people with +E. coli infections? But that could be explained in a million other ways +(say, incompetence). Which drives us towards the point that intent does +not matter one bit in the interaction between economic -- or political, +for that matter -- actors[^1]. + +> What collectivists refuse to recognize is that it is in the +> self-interest of every businessman to have a reputation for honest +> dealings and a quality product. Since the market value of a going +> business is measured by its money-making potential, reputation or +> "good will" is as much an asset as its physical plant and +> equipment. For many a drug company, the value of its reputation, as +> reflected in the salability of its brand name, is often its major +> asset. The loss of reputation through the sale of a shoddy or +> dangerous product would sharply reduce the market value of the drug +> company, though its physical resources would remain intact. The market +> value of a brokerage firm is even more closely tied to its good-will +> assets. Securities worth hundreds of millions of dollars are traded +> every day over the telephone. The slightest doubt as to the +> trustworthiness of a broker's word or commitment would put him out of +> business overnight. + +So, you see, it's not what you intend to do that matters, but what you +have done so far to deserve sitting at the discussion table. It's +basically just acting +[from causes, not towards purposes][cauze-si-scopuri]. In other words, +Greenspan proposes the Web of Trust as a form of organization. + +> Reputation, in an unregulated economy, is thus a major competitive +> tool. Builders who have acquired a reputation for top quality +> construction take the market away from their less scrupulous or less +> conscientious competitors. The most reputable securities dealers get +> the bulk of the commission business. Drug manufacturers and food +> processors vie with one another to make their brand names synonymous +> with fine quality. +> +> Physicians have to be just as scrupulous in judging the quality of the +> drugs they prescribe. They, too, are in business and compete for +> trustworthiness. Even the corner grocer is involved: he cannot afford to +> sell unhealthy foods if he wants to make money. In fact, ill one way or +> another, every producer and distributor of goods or services is caught +> up in the competition for reputation. +> +> It requires years of consistently excellent performance. to acquire a +> reputation and to establish it as a financial asset. Thereafter, a +> still greater effort is required to maintain it: a company cannot +> afford to risk its years of investment by letting down its standards +> of quality for one moment for one inferior product; nor would it be +> tempted by any potential "quick killing." Newcomers entering the field +> cannot compete immediately with the established, reputable companies, +> and have to spend years working on a more modest scale in order to +> earn an equal reputation. Thus the incentive to scrupulous performance +> operates on all levels of a given field of production. It is a +> built-in safeguard of a free enterprise system and the only real +> protection of consumers against business dishonesty. + +No argument here, at least that's how business works in the civilized +world, as opposed to the troglodyte tribes of McDonaldia. Greenspan's +explanation is plain, but this does not explain why socialists prefer +regulation (that is, a boot stamping on a human face, forever, to quote +Orwell) over reputation. Let's read on. + +> Government regulation is not an alternative means of protecting the +> consumer. It does not build quality into goods, or accuracy into +> information. Us[^2] sole "contribution" is to substitute force and +> fear for incentive as the "protector" of the consumer. The euphemisms +> of government press releases to the contrary notwithstanding, the +> basis of regulation is armed force. At the bottom of the endless pile +> of paper work which characterizes all regulation lies a gun. What are +> the results? + +Greenspan identifies the three basic constituents of any and every +totalitarian state: a bureaucracy to "make the policies" +([freedom is slavery][freedom-is-slavery]), a circus to keep people +distracted while gathering intelligentia in the field (ignorance is +strength) and an armed force to dispose of inconvenient adversaries (war +is peace). + +> To paraphrase Gresham's Law: bad "protection" drives out good. The +> attempt to protect the consumer by force undercuts the protection he +> gets from incentive. First, it undercuts the value of reputation by +> placing the reputable company on the same basis as the unknown, the +> newcomer, or the fly-by-nighter. It declares, in effect, that all are +> equally suspect and that years of evidence to the contrary do not free +> a man from that suspicion. Second, it grants an automatic (though, in +> fact, unachievable) guarantee of safety to the products of any company +> that complies with its arbitrarily set minimum standards. The value of +> a reputation rested on the fact that it was necessary for the +> consumers to exercise judgment in the choice of the goods and services +> they purchased. The government's "guarantee" undermines this +> necessity; it declares to the consumers, in effect, that no choice or +> judgment is required-and that a company's record, its years of +> achievement, is irrelevant. + +More precisely, socialists identify that +[at the bottom of the food chain][slither] there squirms a category of +people (most likely themselves) who are not equipped intellectually to +make a choice. Given this, the former propose making a choice for the +latter, but since this would be discriminatory and all, they in fact +propose making a choice for everyone, including those who can and who +would otherwise prefer making a choice for themselves. Nevermind that +people are not "equal" by any standards except biological ones (and very +often not even those), and nevermind that this doesn't work in practice +-- this is *exactly* what the regulators in question will propose[^3]. + +The results? People who are not equipped to choose will still be unable +to choose, while those who at least have a potential in this sense will +be disincentivised to learn how to make a choice. Meanwhile, people who +can and want to make a choice other than the one officially approved by +the committee of proper-choice-making will find it harder to do so than +if there were no committee at all. You do the math on that. + +> The minimum standards, which are the basis of regulation, gradually +> tend to become the maximums as well. If the building codes set minimum +> standards of construction, a builder does not get very much +> competitive advantage by exceeding those standards and, accordingly, +> he tends to meet only the minimums. If minimum specifications are set +> for vitamins, there is little profit in producing something of +> above-average quality. Gradually, even the attempt to maintain minimum +> standards becomes impossible, since the draining of incentives to +> improve quality ultimately undermines even the minimums. + +That isn't to say that minimum standards aren't appropriate in high-risk +contexts such as nuclear plants and buildings in areas with high seismic +activity -- Taleb has the details on risk and fragility, refer to him +for further details. However, this is orders of magnitude removed from +what ecologists have done with light bulbs and the automotive market, to +give only a couple of examples of an unsustainable planned economy +model. + +Either way, minimum standards aren't established so much for statal +entities to enforce as they are for interested parties to use for +verification. Any standard is useless unless the one who pays can verify +compliance. + +> The guiding purpose of the government regulator is to prevent rather +> than to create something. + +That is precisely so. And sometimes prevention is necessary. But it's +not necessary unless it's necessary, and please to not underplay the +meaning of "necessary". + +> He gets no credit if a new miraculous drug is discovered by drug +> company scientists; he does if he bans thalidomide. Such emphasis on +> the negative sets the framework under which even the most +> conscientious regulators must operate. The result is a growing body of +> restrictive legislation on drug experimentation, testing, and +> distribution. As in all research, it is impossible to add restrictions +> to the development of new drugs without simultaneously cutting off the +> secondary rewards of such research -- the improvement of existing +> drugs. Quality improvement and innovation are inseparable. +> +> Building codes are supposed to protect the public. But by being forced +> to adhere to standards of construction long after they have been +> surpassed by new technological discoveries, builders divert their +> efforts to maintaining the old rather than adopting new and safer +> techniques of construction. + +Greenspan's rhetoric is subtly propagandistic here. The property of any +of the items in discussion of being new, modern and whatnot is not +relevant. Coincidentally, in the field he mentions (among others), it +may take years to prove that a new technology is also safer, during +which said technology will have stopped being new. + +It may be that he is referring to a particular policy related to +construction. "Any material is permitted that withstands a force of x +meganewtons per square meter and has the elasticity coefficient y, etc." +is a decent policy; at the same time "any material is permitted that is +one of alloys x, y and z" is a shitty policy, because construction +materials may indeed change easily in time, while wind pressure, soil +types, etc. are mostly invariant in a given place. Or if we're not able +to comprehend the science behind buildings, we should rather leave that +to those who do, shouldn't we? + +Moreover, even letting aside risk factors, a badly engineered building +is easy to build and hard to demolish, and even if clients make the +choice of putting the construction company out of business, the town +will be left with an unused building that wastes real estate space, +which is a pretty scarce resource. So it's not all that evil for the +town to hamper trigger-happy constructors from trying to reach their +(potentially overinflated) projections. + +> Regulation - which is based on force and fear - undermines the moral +> base of business dealings. It becomes cheaper to bribe a building +> inspector than to meet his standards of construction. A fly-by-night +> securities operator can quickly meet all the S.E.C. requirements, gain +> the inference of respectability, and proceed to fleece the public. In +> an unregulated economy, the operator would have had to spend a number +> of years in reputable dealings before he could earn a position of +> trust sufficient to induce a number of investors to place funds with +> him. + +That's a very good observation. Inasmuch as the town doesn't act +unequivocally, trigger-happy constructors will have no problems buying +the right people in the right places -- just in case you thought "lupta +împotriva corupției"[^4] was anything but gargle. + +> Protection of the consumer by regulation is thus illusory. +> +> Rather than isolating the consumer from the dishonest businessman., it +> is gradually destroying the only reliable protection the consumer has: +> competition for reputation. +> +> While the consumer is thus endangered, the major victim of +> "protective" regulation is the producer: the businessman. Regulation +> which acts to destroy the competition of businessmen for reputation +> undermines the market value of the good will which businessmen have +> built up over the years. It is an act of expropriation of wealth +> created by integrity. Since the value of a business -- its wealth -- +> rests on its ability to make money, the acts of a government seizing a +> company's plant or devaluing its reputation are in the same category: +> both are acts of expropriation. + +"Expropriation", that is, rape. + +> Moreover, "protective" legislation falls in the category of preventive +> law. Businessmen are being subjected to governmental coercion prior to +> the commission of any crime. In a free economy, the government may +> step in only when a fraud has been perpetrated, or a demonstrable +> damage has been done to a consumer; in such cases the only protection +> required is that of criminal law. +> +> Government regulations do not eliminate potentially dishonest +> individuals, but merely make their activities harder to detect or +> easier to hush up. Furthermore, the possibility of individual +> dishonesty applies to government employees fully as much as to any +> other group of men. There is nothing to guarantee the superior +> judgment, knowledge, and integrity of an inspector or a bureaucrat -- +> and the deadly consequences of entrusting him with arbitrary power are +> obvious. + +The crux of this particular problem is that not only is economic agents' +reputation devalued, but bureaucrats themselves are not subject to a +judgment of their reputation. By Constitution, each n years a bunch of +people are elected, which may or may not lead to some bureaucrat or +another taking the office in another's stead[^5]. How does the reputable +constructor know that the new bureaucrat isn't just there to get him? +Or, as it happens in Romania's case, what do you do when you know that +the newly-instated bureaucrats are there specifically to put down their +adversaries and not for any sort of imagined public interest? + +> The hallmark of collectivists is their deep-rooted distrust of freedom +> and of the free-market processes; but it is their advocacy of +> so-called "consumer protection" that exposes the nature of their basic +> premises with particular clarity. By preferring force and fear to +> incentive and reward as a means of human motivation, they confess +> their view of man as a mindless brute functioning on the range of the +> moment, whose actual self-interest lies in "flying-by-night" and +> making "quick kills." They confess their ignorance of the role of +> intelligence in the production process, of the wide intellectual +> context and long-range vision required to maintain a modern +> industry. They confess their inability to grasp the crucial importance +> of the moral values which are the motive power of capitalism. +> Capitalism is based on self-interest and self-esteem; it holds +> integrity and trustworthiness as cardinal virtues and makes them +> payoff in the marketplace, thus demanding that men survive by means of +> virtues, not of vices. It is this superlatively moral system that the +> welfare statists propose to improve upon by means of preventive law, +> snooping bureaucrats, and the chronic goad of fear. + +Meanwhile, note that a bunch of decades later, Greenspan helped grow +exactly that sad state of affairs which he decries in this essay. So, +what next? + +Next is not exactly much. Since we've remembered Orwell, we remark that +he was correct in his prediction that "the proles" cannot come to have +anything even faintly resembling political awareness[^6]. That said, it +is ridiculous to believe that the boot can stamp the [human][humanity] +face forever; the human will continue to live much despite this attack +on integrity, and long after the unsustainable etatist will have rotten. + +[^1]: Samsung might or might not have intended to sell phones that blow + up, but regardless of Samsung's intention, terrorists might have + used them to their own purposes in airports. + + Speaking of which, why do so-called terrorists blow up people in + airports? Is it, as they say on BBC, "senseless violence", or is it + really trying to purify the souls of Westerner heathens? And, more + importantly, does that really matter, as long as they kill a hundred + and instill fear in millions of others? + +[^2]: Did he mean "its"? This one looks like an OCR misscan. + +[^3]: The anecdote goes that in Sweden, (at least some) university + campuses give students a free coffee each afternoon. Nevermind that + some of them don't drink coffee, and nevermind that producing coffee + comes with a cost, here's your free coffee, signed and approved by + the committee of coffee-giving. + + In Romania a while ago there was a similar much-derided programme + for public schools called "cornul și laptele" (the croissant and the + milk). I don't know what happened to that, but yes, it was the local + socialists' doing. + +[^4]: I.e. the fight against corruption, a very common phrase in Romania + nowadays. + +[^5]: In communist Romania they called this "rotația cadrelor", in the + USSR they called it "ротация кадров" and so on. + +[^6]: How did that saying go... [deșteaptă-te, române!][desteapta-te] + not now, not ever. + +[cauze-si-scopuri]: http://trilema.com/2015/causes-and-purposes/ +[freedom-is-slavery]: /posts/y03/04f-freedom-is-slavery.html +[slither]: /posts/y02/048-slither-io-unfairness.html +[humanity]: /posts/y01/032-your-worth-to-humanity.html +[desteapta-te]: /posts/y03/054-desteapta-te-romane.html