From da177d7177d80c334dc3dd880422609867a6596a Mon Sep 17 00:00:00 2001 From: Lucian Mogosanu Date: Sun, 2 Apr 2017 13:33:38 +0300 Subject: [PATCH] posts: 05d, 05e --- posts/y03/05d-despre-oameni-si-melci.markdown | 115 +++++++++++++++ .../05e-the-generative-model-of-computing.markdown | 156 ++++++++++++++++++++ 2 files changed, 271 insertions(+) create mode 100644 posts/y03/05d-despre-oameni-si-melci.markdown create mode 100644 posts/y03/05e-the-generative-model-of-computing.markdown diff --git a/posts/y03/05d-despre-oameni-si-melci.markdown b/posts/y03/05d-despre-oameni-si-melci.markdown new file mode 100644 index 0000000..775ad13 --- /dev/null +++ b/posts/y03/05d-despre-oameni-si-melci.markdown @@ -0,0 +1,115 @@ +--- +postid: 05d +title: Despre Oameni și Melci +date: March 26, 2017 +author: Lucian Mogoșanu +tags: video +--- + +

+*"**V**ivre à même l'éternité, c'est vivre au jour le jour."* +

+

+***V**ă mulțumim pentru realizările de azi! +**V**ă așteptăm mâine cu forțe noi, cu inițiative noi!* +

+ +Despre Oameni și Melci[^1] is a practical illustration of our previous +discussion [on the unfairness of nature][slither], taking place in the +setting of early post-communist Romania. Which sets the premise for an +interesting story. + +You see, if you're a Romanian, then you should understand that, +regardless of what those other socialists would have you believe, the +2017 nationalist agenda of the children of the +[Romanian Communist Party][tezele] -- that is, PSD, ex-PDSR, ex-FSN, +ex-paștele pizdii mamii lor de viermi împuțiți[^2] -- is not entirely +baseless. About a decade and a half before that hopeful beginning +consisting of promises on which the EU dream[^3] didn't deliver, at +least for some... well, about a decade and a half before that, Romanians +were being fed the same kind of concocted promises of freedom coming +right after the dictator's bloody death[^4]. This so-called freedom +meant "we want the Americans to come and give us their cocks" and +"Americans" meant pretty much everyone from the West. + +Thus, the act of destruction depicted in the movie was conceived, +prepared and executed by two sides: the Romanian side, represented by +Vladimir (Vișan), and the American side, represented by two Frenchies +(Stévenin and son) who want to exploit the opportunities offered by this +new banana republic, namely to make sure that the small Aro Câmpulung +plant stays down and gets sold piece by piece of scrap metal[^5]. + +Their plan is almost -- but not quite -- thwarted by an otherwise smart +wannabe influencer cum union leader, George (Vasluianu), who comes up +with the not-entirely-bad idea of buying the plant. But not in any +conventional way, oh no: his proposal is to crowdfund the acquisition by +having the workers cash off sperm donation. This is where the pure, +unadulterated Romanian comedy part comes in. Really, there's nothing +more amusing than a bunch of guys -- some of them young, most of them in +their forties -- trying to save the company by donating their seed to +Western families[^6], while their conservative wives are all outraged by +this heresy. And unlike depicted in bad Hollywood movies, the business +proposition fails because that's just how the story goes. + +The rest of the Romanian parts are also as Romanian as they could be: +the French teacher wants to impress the Frenchies communist-style, but +fails; Manuela (Bârlădeanu) studied her telenovella Spanish and her +mother makes great jam, which Frenchie son likes, so he gives the girl +the opportunity of her life, anyway, certainly better than being +George's fuckgirl; George herds the derp-flock made up of company "men"; +Romanians are unimpressed by them fancy snails; and, among others, +Romanians are easily impressed by him Michael Jackson -- piece by piece, +exactly what you'd expect from a minor culture trying to assimilate into +itself that of the conquerors. + +And this about sums it all up: ever since the beginning of time[^7], for +each Romanian who attempted to do something productive, there were seven +others who sat and watched doing nothing, and two others who conspired +the former's demise... or something like that. + +[^1]: Englishized as "Of Snails And Men", though I'd say it's rather Of + Men and Snails. 2012, directed by Tudor Giurgiu and written by Ionuț + Teianu. Starring Dorel Vișan, Andi Vasluianu, Monica Bârlădeanu and + some French guys. + +[^2]: I couldn't possibly express that in today's English, and I don't + know enough of Shakespeare's variety to write down a proper + equivalent; and besides, you wouldn't understand anyway. + +[^3]: A dream entirely concocted by Romanians, mind you. + +[^4]: To quote: + + > **Vladimir**: Remember how you did during the Revolution? + > **George**: How we did what? + > **Vladimir**: You gathered here in front of the plant + > (gesticulates): free-dom! free-dom! + > **Vladimir**: Well, you got it. + +[^5]: This was a common occurence in 1990s Romania. Why? Well, I'll hand + the mic over to the economists to give an explanation of the + phenomenon. + +[^6]: To quote: + + > **Ion**: Good night. + > **Carmen**: (Playful.) Are you tired? + > **Ion**: No, but y'know, tomorrow I'm going with the boys at + > Bucharest. + > **Carmen**: Oh, I know-I know-I know... + > **Ion**: Nighty... (resisting:) wait! C'mon, you know I can't! You + > know that very well! It was very clear in those questionnaires, what + > the heck. + > **Carmen**: I know, but c'mon, just a little, those guys won't + > catch on so easily. + > **Ion**: I can't... Don't you understand? + > **Ion**: Woman, we need to save that plant, what the heck! + > **Carmen**: (Upset.) You don't love me anymore. + > **Ion**: I do love you. But I can't do it tonight. I'm working for + > export. + +[^7]: Read up on some Romanian folklore sometime. It's not bad at all. + +[slither]: /posts/y02/048-slither-io-unfairness.html +[tezele]: /posts/y03/05a-july-theses.html +[aferim]: /posts/y01/039-aferim.html diff --git a/posts/y03/05e-the-generative-model-of-computing.markdown b/posts/y03/05e-the-generative-model-of-computing.markdown new file mode 100644 index 0000000..e93ae71 --- /dev/null +++ b/posts/y03/05e-the-generative-model-of-computing.markdown @@ -0,0 +1,156 @@ +--- +postid: 05e +title: The generative model of computing +date: April 2, 2017 +author: Lucian Mogoșanu +tags: asphalt, tech +--- + +*Once upon a time I [wrote a piece][modelul-generativ] that turned out +decent enough to deserve being re-written in English. This is the result +of that re-write.* + +One of the fundamental properties of computing is that it can be +represented at various layers of abstraction: what constitues a program? +Is it made up from a bunch of electrical signals? Or from evolving bits? +Is it a set of registers changing their values in time? Or variables +that are read, written and executed? Any of these is a valid +representation, only one of them may be more useful to us than the +others at a given time. + +At the same time, one of the fundamental problems of software is that it +is inherently replicable. Mind you, this is not *my* problem; I myself +am very happy with how computing and software work -- at least when they +do[^1] -- which makes this ease of replication the exact opposite of a +problem. It is however a problem for halfwits; for those people who +believe that something that was read, and thus learned, can and +sometimes must be magically un-learned; or who believe that something +that was uttered can be magically un-uttered. No one sane knows why +anyone would ever wish for this piece of nonsense to be possible[^2], +but computer engineering is supposed to give practical solutions to +technical problems, and I'm feeling particularly generous today, so +let's indulge this intellectual wankery. + +As I was saying, software is replicable, and the problem is whether it +can be made impossible, or at the very least extremely hard to +replicate. That is, it is easy for virtually anyone to download a +program off the Internet and run it on their computers; or a movie, or a +secret document, and open them using a program. This works even when one +is not legally authorized to do so, and it's simpler and a lot cheaper +than actually stealing things, which forces the *actual* economic value +of intellectual property to asymptotically go towards zero. + +This pernicious issue can be easily described at the instruction set +architecture level. Generally processors contain an instruction dubbed +`mov`, which moves a numeric value from a register to another. The +problem, however, is precisely that it *doesn't* move data: it copies +it! That is, when saying `mov r0, r1`, we read for example "move data +from `r1` to `r0`", but we mean "copy data from `r1` to `r0`"; in other +words, upon setting `r0` to the contents in `r1`, `r1`'s value doesn't +change at all[^3]. This is so for very good practical reasons: firstly, +it is more expensive to actually move data from one register to another, +as we need to do two operations (set destination to source value; then +erase source) instead of one; secondly, we don't know what the value of +an "erased" (or otherwise "empty") register should be. + +But let's leave aside these details for a moment and specify in more +precise terms what it is that we want: a computer that cannot *copy* +data per se, and that can only *move* it. This is, of course, +impossible: one must *put*, i.e. create, or otherwise generate an +object somewhere in able to be able to then move it somewhere else. So +what we really want is a computer with two basic operations: + +* a `move` operation: from register to register, from main memory to + register, from disk to main memory, etc. +* a `generate` operation, that "puts" data into a memory unit (register, + a cell in main memory, on disk, etc.) + +An intuitive way to look at this is that any memory unit can be in one +of two states: either "empty", in which case it cannot be read +(i.e. used as a source); or "full", in which case it could be used as a +source or destination if the user desires. Thus `move` cannot read from +an empty register, while `generate` is pretty much equivalent to our old +`mov`: it can read and write from and to anything. The advantage of this +separation is that it would allow hardware manufacturers to limit the +use of `generate`, by imposing a price on every instruction call and/or +other policies, possibly used in conjunction with cryptographic +approaches. Simply put, the possibility of having an instruction set +with a `move` and a restricted `generate` opens up the possibility of a +whole new different type of computing. + +Let's look at some of the practical design and implementation challenges +of this model. Performance is an issue, as discussed previously, at +least as far as the fabrication technology remains the same. Space is +also an issue, as every memory cell now needs at least an extra bit to +represent empty or full state. Since the data in memory cells is usually +moved around, then a. all `move` instructions need to be transactions, +i.e. if and when a `move` is completed, we are guaranteed that the +destination contains the desired data and the source is empty, otherwise +the `move` has failed and the state hasn't changed; and b. all memory +must be persistent, such that e.g. following a power outage the system +can be restored to its previous state without any data loss. These +engineering problems are perfectly approachable, if not necessarily +trivial. + +Then there are deeper problems: is this type of computer +Turing-complete? This question cannot be given an off-the-top-of-head +answer, and shall not be explored here due to space constraints. + +Then there are other practical problems: how easy is it to program such +a computer? Adding costs to copying would conceivably put a limit on the +development of software, as it would emphasize economy over the writing +of code; but that aside, how usable would the machine be from the point +of view of the user/programmer[^4]? + +Then there is the problem that software producers themselves would need +need to pay for every software copy that they sell, because they would +need to copy it before selling it. Which brings us to the crux of the +problem: software and hardware vendors concoct all these technologies, +e.g. SGX, various DRM "solutions", without thinking of many of the +trade-offs involved. One can't stop copying without putting limits to +it; and then once they've done this, they can't copy without actually +copying[^5]; no, you can't have your cake and eat it too. + +[^1]: See "[The myth of software engineering][software-engineering]". + +[^2]: Oh, yes, I do very well, thank you. But this doesn't make you any + less of an idiot. + +[^3]: This also holds true for other operations, e.g. the arithmetic and + logic ones. For example `add r0, r1` typically adds the value in + `r1` to that in `r0` and stores it in `r0`, but leaves `r1` intact, + and so on. + +[^4]: To be perfectly clear: I can write code in assembly as easily as I + can write it in Python or almost any other language you'll give me, + because I practice these kinds of things and I can easily determine + the strengths of each particular language. However, I cannot as + easily program a quantum computer, because I don't know how to, and + because much of the knowledge of how to generally do it hasn't been + discovered yet. Sure, we know what the basic primitives are and + quite a few algorithms are well-specified, but let's say I wanted to + make my own Nethack implementation on a Quantum machine. + + Contrary to what you might think, Nethack is an important cultural + product of this era, so why would not this be a legitimate question? + +[^5]: Take the DRM technologies used for video streaming for example: + they've come so far as to keep the DRM code and decryption keys + secret in a processor mode that is controlled by the manufacturer -- + which assumes *implicit* trust on the user's part, which is stupid, + that is to say, a socialist measure, which is to say, entirely + tyrannical yet pretending to be something else -- but the data still + needs to reach your display decrypted, so that useful data, and not + garbage, is displayed. And even if the decryption algorithm and keys + were embedded in the display, you could still film what the display + is showing, which makes the whole charade pointless. + + In other words, they are implementing a solution which *provably* + doesn't work, and by the by, they are also running secret software + on your computing device. Secret software which, of course, could + not possibly spy on you or impersonate you in ways you haven't even + imagined. But using PGP is bad and, y'know, generally a terrorist + thing to do. + +[modelul-generativ]: http://lucian.mogosanu.ro/bricks/modelul-generativ-al-software-ului +[software-engineering]: /posts/y02/03c-the-myth-of-software-engineering.html -- 1.7.10.4