Ossa Sepia

August 3, 2019

Silently Unhappened on TheOdinProject.com

Filed under: Dark Modern Ages, Outreach — Diana Coman @ 2:49 p.m.

From the series of "I must be doing something right if *they* are so afraid of me", I had today the lulz surprise of finding out that a derpy forum1 "unhappened" silently my account2. As in literally, vanished entirely not only my "page" but also what comments I left for others leading to the great achievement that now there are replies to my non-existing comments3. Wouldn't you say that's great for learning? You get for once a user who can and is willing to actually help others around and then you ...unhappen this user without a word even because... what exactly? No idea but possibly they have a bucketfull of "oh noez" that I kicked over without even trying or something4.

Oh noez and all that but imagine it - after making an account and engaging with some newcomers there for their benefit5, the loss on my side is... what exactly? That I will now totally set the bozo bit on this particular derpy forum? That they give me now an excellent antecedent as to why exactly it's a mistake to even take any notice of their "forum" interface and accounts and all that pretense at all? And that clearly from now on I'll document upfront each and every descent I still deign to make into such sad holes? Or perhaps that they are slowly but surely adding concrete fuel to my otherwise sluggish motivation for pillage and burning, that must totally be their gain I'm sure.

  1. Since can't derp without pretense, it's called theodinproject and I'm not going to link it, no. It has a stylised hunting trophy icon and is otherwise a sad trap for web-developer wannabe misguided souls. It runs on "Discourse" too so that it's in *that* bucket rather than in a different bucket (e.g. flarum, *BB and so on.) for all the difference that makes to the caught crabs within. 

  2. Here's what it says today at the link for my account, preserved in amber for the future: archive.is/FcGC6 

  3. Here's an example of a reply to one of my comments and I'll let you judge how terrible my comment must have been given the reply: "That's an excellent point - I did take some statistics/logic and reasoning courses as well, though, so hopefully that'll help with the literal-ness!" 

  4. By now it's probably extremely easy too as I'm clearly alien to them. 

  5. In fairness it was all of 20 minutes first-pass sort of thing, to get the pulse of the place - apparently it didn't even survive the lightest touch, who knew there are such wallflowers on the internets. 

July 20, 2019

The Young Hands Club

Filed under: Outreach — Diana Coman @ 9:08 p.m.

Since I already have a eager young hand and it turns out that even online young hands still need some space in which to mess around as much as their growth requires, I've went ahead and set up The Young Hands Club precisely for this purpose. A sort of very public learning club if you want - and even if you don't!

Now let's see what comes out of it in one year's time. The opportunity is there, the options are all yours supposedly so... what will you *do* about it?

July 12, 2019

My First Hours on Dev.to

Filed under: Dark Modern Ages, Outreach — Diana Coman @ 2:46 p.m.

As I really have too little time to waste any of it on fretting about how to start on things, I just picked Dev.to as the first online place to explore in search of young hands that grow from their right place and not from arse1. The choice was quite arbitrary really - it popped out on my unordered list as a relatively lively place and it uses GitHub old accounts so at least I did not have to make yet another "account". As a result, I now have in there too, that same old end-of-uni photo of mine that GitHub also has but so what. Anyway, to start it off, I gave them some content for free, sure, what's a few paragraphs to me now, here it is:

Come work on what matters, so you matter too.

I'm part of TMSR - the place where well-thought Bitcoin innovation happens steadily, publicly, unfashionably and with inescapable, far-reaching consequences. From a new model of software development to a MMORPG and building up a working market for computer artists plus everything software and hardware in between, the focus is at all points on owning what you do and growing your knowledge and ability at a sustainable pace.

The programming language of choice is Ada (with a fully-documented rationale as to why Ada) but work with legacy code includes C, C++, Python, Lisp and potentially anything else really.

Come work with me on things that matter, if you want to matter too. I write (and have been writing for a while) at http://ossasepia.com

The post above quickly got a few "hearts" and so far (1 day later) precisely no comments at all. Apparently love is easier to get than conversation, did you ever notice that? And what does it actually tell you, hmm?

The easy love aside, I didn't really wait (or expect) for any conversation to actually start from my first post, no matter what I'd have written there2 and so I just started looking around at the whole thing instead, trying to figure out its structure and therefore some way to *systematically* explore it. That quickly bumped into the obvious fact that the whole thing seems rather on purpose built *against* systematic anything. There are tags for instance to group supposedly by interests the content and you can "follow" tags even with "weights" attached but you can't see ALL tags (I know because I asked them, right there, in the "hello" thread, yes). You can see "the top 100" tags and supposedly that should be enough for everyone, screw the unpopulars, apparently I'm not supposed to be able to find them even if I am willing to go through as many tags as it takes to precisely reach them too! There are also profiles of course and you can "follow" those too but again, no way to actually see a list of them and be able to just go and talk to each one, no. Gotta try and map the space through the conversations that they feed you (literally, it's a "feed", right?) or otherwise go pretty much by chance, here and there, looking under each stone in search for people nowadays. Oh, and the platform is some Open Source pile of code, of course. Anyways, doesn't it strike anyone as really weird this thing where precisely online stuff that is by its nature exactly fit for systematic organisation and access is instead by design anti-systematic? Note that it's not just a matter of "offering also a fuzzy path to follow" but rather limiting the option to that and nothing else.

Anyways, 100 tags at least are better than none, so I started reading from there, for lack of any other better strategy really. Reading3 and commenting of course, since the whole point is to engage with people, what else. So after a few hours yesterday reading and commenting around there, here's how my dashboard on dev.to looked like:

Looking at the numbers this morning (after another 15 minutes spent on dev.to), I have: 1 post published (with "under 100 views"), 29 comments written, 10 "followers" and 4 "total post reactions." Hopefully I find a way to get faster at this as I do it more since I can't say I really have as much time as the current rate promises to eat up.

As for people actually following on what they said and making their way to irc and/or to this blog (or Stan's, since there was one DrBearhand whom I pointed towards FFA), I'll believe it when I see it happening and not earlier. But in any case if those I reached already fail to actually act on their own words now, it's their failure and nobody else's anymore, certainly not mine - from here on, it's on them entirely. What do you think the actual rate will end up like, 1 in 100? 1 in 1000? 1 in 1mn?

  1. It's Stan's term-of-art, see the logs

  2. I suspect I'm getting old really, there's no other explanation for this sort of lack of silly expectations here. 

  3. Really, having read lots and lots of legacy code prepared me for everything and anything, there is that. 

July 3, 2019

Growing Young Hands

Filed under: Outreach — Diana Coman @ 5:11 p.m.

A recent conversation in the forum highlighted the need for me to re-adjust some of my priorities and push more to the forefront and into the light of purposeful activity the building of helpers too, not only of code. While this part is certainly not new to me nor otherwise entirely neglected up to now, it's clearly also not where I'd want it to be.

Over the past few years, in addition to the technical work that is indeed over-represented on my blog1, I have also spent some hours every week with young people (other and older than my son) mainly on Maths, occasionally on bits and pieces of programming. As such, I effectively planted some sanity seeds in fertile soil but this hasn't yet yielded any new direct contributors to Eulora or even to the wider TMSR. In part this is perhaps because they are yet too young2 but it might also be the natural outcome of my very leisurely (as opposed to tightly focused) approach to this side of things, doing it occasionally and selecting only out of the relatively small pool of those who are physically close enough to come to me with any regularity and have moreover searched enough to find me in the first place. While this has the significant advantage of a strong initial auto-filtering, it also has the crippling disadvantage that it's so slow as to be in the end not practical. I can improve on this a bit perhaps by selecting a few and simply immersing them more in Eulora/TMSR work directly, see where that leads. However, even at best, that'll be currently 1 or at most 2 people that I'd even consider at all so what's that going to do exactly anyway?

The low numbers above are not "too low" for what it is - if anything, they are actually quite good results I suppose. Given the natural scarcity of quality combined with modern artificial abundance of everything else, the above leisurely approach is really nothing more than playing the lottery and with very few tickets too. So no wonder as to results, but let's screw this semi-passive wait for repeated lottery wins and look instead for some more active and pointed ways to find the ones I care to find in the first place and to specifically aim the whole time at the most pressing need - help grow those who can actively take part in Eulora and TMSR.

The first obvious and most straightforward avenue is to go again to the local Uni but this time specifically aiming to choose some helpers, adjust, repeat and keep at it. I'm still mulling this part over mainly in terms of whether to spread the word and then simply set up some workshop right in their campus since a laptop and a few drinks is all it takes anyway. Alternatively or in addition I suppose I can even do the same at the local pub3 and it might even have better seats and better drinks than their caffeteria. The only hurdle here is really to reserve some time on a regular basis specifically for this (or similar public meetings basically). This would be prong 1: regular public workshops as selection grounds.

While the above should be anyway an improvement in terms of number of candidates seen at least, it still doesn't strike me as enough at all. And moreover, there are the hard limits of location and of how many can physically fit around me at any given time. Looking to the wide online space, there is of course plenty of room there and supposedly plenty of eager young hands looking for a place where they can matter too. A quick look around shows at least in theory more gaming/programming/learning forums than you can shake a stick at, so in parallel with the above, I'll have to set up additional time to trawl those systematically and see what really is there, if anything. I suppose a "come work with me on what really matters so that you matter too" is just as good a starting message as any and it's not written in stone anyway. This would be prong 2: systematic trawling of gaming/programming/learning forums and talking to all their members.

Speaking of the multitude of forums and learning platforms and courses and summer schools and hackathons and whatnots, it's worth perhaps mentioning that I'm not particularly worried about their huge number and supposed competition. They are many indeed but they are as far as I can see quite alike, a lot of the same thing under slightly different wrappers, pretty much like all the latest and bestest "innovations" - at this stage they really seem to me more of a way to drown the few young ones that look for meaning than to actually help them in any way. For all the hype that seems to be around pushing and shoving youngsters into computing, from where I sit it really looks increasingly more like pushing and shoving them towards becoming the slaves and guinea pigs of tools and not at all their masters. So those who want the first are plenty served while those who want the last (and might not even know yet how to say it) are more starved than ever. The same situation shows in schools too in fact and to the extent that those looking for meaning will do just about anything to stick with it once they finally find the slightest shred of it.

All the above mulling out of the way, the next main step is to move my schedule around again and as soon as possible to make space for all of the above even if it's only a couple of hours per week, as long as it's every week. The mountain of work seems to only grow so that's not easy and it'll take a while to readjust so that I don't otherwise drop any major ball. But while this readjustment is ongoing, I'll be able at least to mull it all a bit more in case I can add to the list above and even cut out more clearly some tasks that I can drop newcomers into since that's the fuzziest part for now - there's quite a steep climb at the moment to everything I'm in and that's not really ideal for someone new and green. Still, the ideal is never available, so whatever it is, they'll follow along as best they can and that's what it will always be.

  1. While I can always go "why didn't I write the rest too?" there is this fact that writing takes time too and at some point I can either spend my limited time on doing or on writing about doing/having done it. No matter how I go about it, there will always be some amount of selection as to what gets written and what doesn't. This being said, there is as always plenty of space for doing better at this, certainly, especially since I know very well how much worse it was before I specifically set about to make it better, step by step. 

  2. One just went off last year to study Medicine for instance, am I going to consider that as a waste now or what. 

  3. Cafes haven't yet sprouted right on my doorstep and I'm not going to go to the town centre for this sort of thing just to be somewhere more crowded and noisier. 

December 10, 2018

My Talk of Bitcoin at Reading Uni

Filed under: Outreach — Diana Coman @ 11:01 p.m.

As mentioned already in the logs1, today I gave a talk for students at Reading University (UK) about Bitcoin. Following the very useful advice from the forum, I centred my talk on "What Is Bitcoin?" and then I built on that with a discussion of actual innovation in Bitcoin (WoT, V, Deedbot) as opposed to the attempts at subversion of Bitcoin ("blockchain technologiezzz") that are usually touted about as "innovative!!" by all those "involved" through mere talking and repeated mentioning of all the buzz words in whatever happens to be the current consensus-approved sequence. Since there is no recording of the talk2 I decided it's best to do this write-up now, while everything is still quite clear in my memory. Who knows - it might help someone else who is looking to actually understand this Bitcoin thing rather than just copy/paste the most commonly copy/pasted stuff.

Initially the University had this bright approach to schedulling of talks and rooms so that they could not even guarantee that I'd have some sort (any sort!) of board on which to write during the talk and so I decided to make the most of it and make some supporting slides, despite the fact that I rather hate doing those things. Nevertheless, I've made them now so you can download the slides for this talk - just be aware that they are meant precisely to support the talk not to replace it so they don't actually contain even 10% of the talk, they just help *illustrate* what I say. So no, here as everywhere else, you can't really replace the person doing the talk and not see any difference, such is life, totally unfair. I'll try though to summarize in here the main ideas I covered - keep in mind that the whole talk was 90 minutes, of which I'd say about 30 minutes were Q&A throughout (i.e. not all at the end, as I took questions as and when they were able to actually ask something).


After an initial brief presentation of myself and Minigame establishing some basis on which I am actually giving this talk, I collected the existing "definitions" that students had about Bitcoin. As expected, they were not much in terms of meaning but surprisingly enough they were also rather difficult to extract - perhaps shyness or in a more optimist interpretation some well-placed notion that no, they don't actually have any idea what the thing is. Anyway, for the record, I got only two definitions: "a very volatile currency" and "an immutable ledger of transactions." So I noted that those touch a teeny tiny bit on what Bitcoin has in common with "currency" and "ledger of transactions" respectively while missing at the same time the much wider part of what is actually new, different and essentially disruptive about it. And I noted that the only way to actually get an idea of a complex notion (such as Bitcoin) as a whole, is by starting from its basic principles and following their characteristics and implications. So without further digression, I moved on to enumerating the 4 basic principles of Bitcoin (asymmetric cryptography, databases, peer-to-peer (p2p) and anonymity/pseudonimity) and then presenting each of them in turn.

For explaining asymmetric cryptography, I used Mircea Popescu's excellent approach of starting with the simple example of obtaining the 2 prime factors of a given number vs obtaining the number itself from those 2 prime factors when they are known. I took though rather bigger numbers because my audience was - it is to be hoped at least - made of people able to use their computers for such a task at short notice (I hope!). Based on this, I introduced the notion of public and secret (private) key, using the slides to graphically build up the whole thing piece by piece, aka keys, arrows, locks and all that bling. Basically I showed them a mini animated cartoon, what! And I'd say it worked - I could clearly see some ears pricking up!

Following on from the above, I discussed how that makes it possible to send messages without divulging the content but also without divulging the intended target either! Cue more animated cartoons with people simply trying to decrypt messages from a pile until they find the one (or at least one) that they *can* decrypt with their private key - hence, if they can decrypt it, then (and only then), it is meant for them! At this point they actually started to sit straighter and even nod from time to time as it - apparently - made sense. I finished this first part with a summary of what I had said so far, essentially the slide behind me in that picture.

The database and p2p principles I covered much faster as it was really just the main ideas that were of most interest to me for the task at hand: a database is essentially structure applied to data and that means any structure; p2p allows participants to find and obtain all the different parts of information out of a given set, without having to rely on any central authority /middle man but simply by communicating and interacting with the other participants. Nevertheless, p2p was also good for another mini-cartoon to illustrate that one needs to be able to assess what part of the whole they might have at any given time, what parts they are missing and to what degree a proposed part is what they are looking for.

After this brief interlude of databases+p2p I got back to building on the asymmetric cryptography introduced earlier aka introducing anonymity and pseudonimity. As the students were by now rather intently listening, I asked them what they could tell about those 3 messages on slide 30: there are 3 signed messages (encrypted with secret keys) of which 2 verify (decrypt correctly) and one doesn't verify with one given public key. After a few hesitations and false starts, they actually got it - yes, one can say that both that decrypt correctly were actually encrypted with the *same* private key! So I took this further and pointed out that this implies authorship (the one controlling the pair of this public key is the author of the first 2 messages), continuity (whoever signed the first message, also signed the second) and repudiability - one can easily prove that they did NOT sign the 3rd message! All very useful things since together they allow one to obtain pseudonimity - in other words, to have a way of gaining authorship and continuity without having to give up privacy and mix up in there personal information such as date of birth or where they hang out with friends on a Saturday night. So no more of "verify your identity by giving us the keys to your house and generally whatever else we might think of asking". Instead, pseudonimity by means of public/private keypair - one neat and simple way of enjoying the results of your work (aka building your reputation) without having to give up more private information than you choose to. This was the first time I mentioned reputation and I took the time to give a few examples since I was preparing the ground for the WoT later on. Judging by the large amount of questions that the WoT sparked, I'd say it hit home.

Putting everything together, I showed this boring slide 36 with classic bullet points. To make up for it and to check to some extent how much of the head-nodding actually meant some sort of understanding, I asked the students to identify in that definition what exactly "caused" each of those main characteristics listed there. They were fine with p2p -> no middle/central authority and they worked their way on pseudonimity. I explained the other two (reputation vs blind trust; irreversibility) in more detail since there were some important aspects there that weren't apparently all that obvious - including the "trust" in banks and governments and parents and what-not. Basically when many still trust without even realising that they really just ..."believe" and nothing more.

For the next step, I pointed out that innovation with/in Bitcoin is simply something that *maintains* all those main characteristics of Bitcoin while attempting otherwise to adapt the world ("how things are done") to it and NOT the other way around. By contrast, anything that tries to chip away even in the slightest at *any* of those main characteristics is nothing more but an attempt at subversion. As soon as one tries to change Bitcoin to fit the world ("what people expect/need/want"), one is - whether they admit it or not, whether they know it or not - trying to subvert Bitcoin, not innovate with it. So the difference being clear and easy enough to make hopefully, one can tell for anything whether it's innovation or subversion and they can then *also* tell whether the author is at least honest about it! At which point of course, they can therefore update the reputation of this author... even quite publicly if they are using the WoT!

From this point on I went online to show the WoT and V directly, exploring it a bit and discussing the actual meaning and use of the WoT and then linking it to deedbot and the voice system + wallet in #trilema. By this point there were several hands raised at the same time so questions started to really pickup. Quite a good number of questions focused on the "but it's not fair" aspect of an existing WoT + a signed-patches-only V:

  • So a newcomer needs to trust implicitly the deedbot owner in order to get into the WoT?
    • No, a newcomer needs first to find at least one person in the WoT who is willing to give them a rating. Unless and before they do that, they are just not part of the WoT and therefore there isn't much that they can do really. This is NOT meant to be (and nothing can be) a replacement for talking to people or getting to know people!
  • But then it's not fair for those that are not in the WoT!
    • Sure, life is not fair, nor will it ever be fair. Yes, it can be hard to get in the WoT if nobody knows you. So make yourself a key and start building up your reputation so that people CAN get to know you!
  • How do I know you did not rate yourself?
    • You talk to those people who rated me. If you can't talk to them, their rating is meaningless for you anyway. And yes, one can make as many "identities" (aka private keys) as they want to but remember that building up each of them takes time and effort. So why exactly would I waste this time and effort in bogus identities instead of increasing my real reputation?
  • But what if everyone negrates me for a tiny mistake I make in a patch and I can't participate to the community anymore3?
    • What of it? You TALK to them and see what you need to do to get them to change their rating; and if they are indeed as unreasonable as you assume them to be then why would you actually want to work with them?
  • Why isn't the WoT stored in the blockchain so that there isn't a "single point of failure" in the person owning deedbot?
    • You are confusing there the WoT with its *representation*! Deedbot simply stores a representation of the WoT but it is NOT the WoT, nor does it own the WoT. It is participating people who actually make and own the WoT. So if deedbot goes away or its owner turns rogue -as it actually happened with assbot before4 - the WoT simply moves/splits/migrates following the people. The ratings I give are neither fixed in stone nor anyone else's property and it is always and everywhere the people that matter, not the bots. And for that matter there can be *any number of WoTs*, what.
  • But what if the owner of deedbot cheats with the ratings?
    • Well, how exactly? People who gave those ratings know what ratings they gave and they will shout/negrate as soon as they notice any foul play. As for "bots" - what of them, their ratings are worthless since nobody rates *them* (and pure circular ratings you to bot and bot to you won't get you anywhere really, at least not with any sort of thinking people, no).
  • Why is the WoT implemented through deedbot, with a central model? Wouldn't it be better5 to rely on the blockchain only for the WoT so you don't have to trust a single person?
    • Why would the WoT need the blockchain? Ratings are NOT immutable. And at any rate, I'd much rather trust a person (who I can negrate if things go wrong!) than a... network as a whole (which for that matter is not even all that trustful, read about mining cartels to start getting some idea on this matter). Once again: there is no substitute to talking to, interacting with and ultimately trusting (or NOT trusting) individual people!
  • But what stops deedbot's owner from running with all the money?
    • Nothing can ever stop anyone from doing what they want to do. But the incentives here are stacked *against* this: his considerable reputation is on the line; and he can much more easily earn money AND increase his reputation by simply charging a fee for services rather than running away with the piggy banks. It's the same with any sort of contracts too, really: what stops the other party from breaking their contract? "The law!" No, the law doesn't and can't *stop* anything. You may trust some particular state that it will enforce that law and therefore give you some compensation for the breach of contract but it is just that - trust, blind-faith.

There were in fact many other questions but those are the ones that I think are rather usual so the answers can help others perhaps as well as the students who asked them this time. Obviously, the answers given above are those given at a talk - without the time to go deeper into details and without the luxury of linking related logs/posts from the abundant existing materials. I still did point out to students that there is much more to read on the subject both in the logs (which I demonstrated a bit) and on the TMSR blogs but whether they will do any reading of this sort or not is entirely up to them - since the benefits to reap for doing so as well as the losses to enjoy for failing to do so will also be for each of them personally and only for them.

All I can say is that I'm genuinely rather curious whether any of them gets to actually register a key and do something with it, now that they nodded at the talk, they asked the questions, they came at the end to me to say that they liked the talk and now that they have in front of them this opening, this way to get into it all6 - for as long as they actually have it, of course, since nothing is for ever!

  1. Yes, that's where pretty much everything worth the mention is... mentioned. Where else? 

  2. And barely any photos as the prof I asked to take some photos followed the talk so intently that he...forgot to take any! So he had to take a couple at the very end, while students were still asking questions, what can I do. 

  3. I let pass the whole community participation as there were bigger fish to fry this time. 

  4. Yes, I did give them the summary of the #bitcoin-assets debacle. 

  5. I honestly think he just-about-said "fairer" 

  6. Yes, I did tell them about #eulora and #ossasepia and even that I will rate them if they show up and convince me that they were at the lecture. Not that it makes in itself a difference - those who would come would come and find their way anyway and those who won't still won't, I know that. 

October 2, 2017

Some Costs of Importing... Randomness

Filed under: Dark Modern Ages — Diana Coman @ 12:14 p.m.

At least on the surface - and quite often on the least suitable or meaningful surface - people around here seem to like order. Admittedly, this "order" often translates into "cut to same size"1 and "here" is this island north of the European continent geographically, a few hundred years back in time preferably and otherwise rather aimlessly drifting on a sea of... well, let's be charitable for once and call it cluelessness. In other words, current day UK is on the surface committed to maintaining grass and hedges properly trimmed, everything else endlessly and pointlessly -also quite strictly- regulated.

In this orderly environment, I decided to import... randomness. And not any randomness at that, but true and fully auditable sources -yes, more than one- of randomness, long and narrow, fit-in-your-pocket-but-better-plug-in-your-computer electronic boards that go by the name of Fuckgoats and are exquisitely made as well as flawlessly packaged&posted by No Such Labs. Obviously, there was bound to be some bureaucrat to be paid for such disorderly conduct on my part. And so the bureaucrat's card came first instead of the box with my stuff that I had paid for. Hey, it's only piracy if it brandishes the cutlass, says "arrrgh" and wears an eye patch/hand hook/all that. Otherwise it's... bureaucracy, all right and proper dontcha know, the oh-so-Royal Mail's on it too so that makes it doubly orderly and properly, here you go-ey:


Get this: "unfortunately" they can't deliver my item (I guess that acknowledgement of it being mine is an oversight on their part really, possibly soon to be corrected under a more properly red - red in tooth and in claw as nature is, naturally - administration). The reason for this unfortunate event being that... they want some money2 on this too, what? It's a bag of money passing them by so they *should* get some of it, a bit of it or it's... not fair!

The "what to do next" is particularly funny really in the way it lists "options" that are really the same. What to do next? Well, what, pay, what ELSE? No else, no, we are in the land of the free here where all options are duly listed and properly stamped, devoid of any difference other than in form: do you want to pay online, to pay in person, to pay standing, to pay sitting, to pay through your nose or through your ass? Oh, no, *not* pay is not an option, no, wrong century, wrong planet, wrong currency, wrong, wrong, wrong.

And so, for my sins of importing true randomness to this island of many options that are the same3, I paid therefore £19.42 for them to split as spoils - pretty much robber-in-the-woods style (if poor robber, yes). Still, they are - of course! - very orderly in *how* they split it, it's all set up and neatly detailed and glued and attached to my box, here you go:


According to those numbers there I paid therefore £11.42 VAT, apparently payable on *anything* with a value above £15 - so anything more than a toothpick and change basically - and coming from outside the European Union. The fact that there is no equivalent of this item that I could possibly buy in the fabled European Union is of no import, of course. Furthermore I also paid £8 to the not-so-Royal Mail for their service in assisting the road-side robbery as it is, as a precondition of handing me my own parcel. Well, it's a hard life by the side of the road and nobody can possibly be in any way all-that-bad if they give you one third of the loot at the end of the day, can they?

Anyways, once ransom was therefore paid to bureaucrats, the box of goodies finally made it into my hands, apparently unmolested too (they simply stuck the paper on top of the box, otherwise the packaging itself looked really too neat to have been the result of *their* efforts). And inside the little box, there stood my brand new and shiny FGs, perfectly packaged in anti-static pouches and bubble wrap. Here's one to feast your eyes on, emerging from its packaging, measured as no more than a third of a usual ace card in width and about one card and a half in length:

fg_packed fg_antistatic fg_size

And now it's time to go and play with those things of course!

  1. and that in turn can't ever mean anything *other* than lowest common denominator i.e. bottom of the pit i.e. as shitty as it can get. Nature being very helpful in this direction there is of course no bottom to that pit but that's just... evolution, innit? 

  2. No, the sum there is not the issue here at all really. It's the principle behind all this that is the trouble and if you think that oh, but it's only a little sum, what's all the fuss about it, then go get fucked already, only a "little" in the ass too as that doesn't matter as long as it's just a little, does it? 

  3. Hey, I would have bought it HERE if it EXISTED, you know? It sucks to have to import cool stuff from half way around the world, yes, but how does it follow then that one also has to *pay locals* for their failing to have the cool stuff locally? 

May 28, 2017

Cica-mi lipsesc vizitatorii

Filed under: Dark Modern Ages — Diana Coman @ 8:27 p.m.

Ca la balci ori la talcioc ma tot intampina strigari automate - si uneori kilometrice de-a dreptul - de si-au gasit cumva calea-n spamul blogului de fata: ca sutele de vizitatori, unicii, zilnicii, meleoanele, aia-mi lipsesc! Si hai frumoaso, hai draguto, hai ochioaso vin si da banutu' ici ca-ti da baba stirba1 ori aia ori ailalta ori cealalta da' in fapt toate acelasi lucru - apa de ploaie in sticlute colorate2 - numai ambalate diferit. Solutii inutile la probleme ireale pe post de trai imaginar al tinerilor care nici macar pana la Paris n-au mai avut nevoie a-si trambala prea-importantul posterior nici nodul cravatei n-au invatat sa-l faca la rigoare sub slaba scuza ca ei au tricoaie nu camesi. Asa tinere sperante cu asa cariere si independenta de nu le-ajungi la o adica nici cu prajina la nas - desi ar fi mai de folos sa le-ajungi vreo cateva la cur, drept e.

Uneori stand eu asa in linistea si tihna roditoare a trudei cu folos, a muncii oneste si fara cersetorii, ma intreb in trecere cum o fi aia cu adevarat sa te dai rotund si important si tanar pe-o parte in vreme ce pe partea cealalta nu poti mai mult - nici macar *la fel de mult* - decat poate o baba stirba de n-o mai duc nici picioarele nici mintea nicaieri ca nu mai are mult oricum? Cum o fi sa te crezi unic si exceptional cand faci fix si exact si demonstrabil copiat acelasi lucru - inca si copiatul e acum automat cum ar veni ca doar sunt aceiasi boti, acelasi spam, aceleasi taieri ale aceleiasi frunze pentru aceiasi caini? Cum si de ce ar vrea cineva - altcineva in afara celor de acelasi calibru indoielnic pana la urma - "trafic" din asta de oi fara minte? E ca si cand mi-ar oferi cineva mai mult praf ori mai mult noroi in casa ca "sa fie plina casa" - plina adica asa fara discriminare cu orice o fi, numai plina sa fie, ca tot nu conteaza.

Numai ca va zic voua marilor experti SEO si producatori de publicitate si alte asemenea specimene: conteaza! Pentru mine conteaza *cine* vine, nu cati vin, ca nu de idioti duc lipsa ba dimpotriva si asa-s  prea multi ciopor pe capul meu la o adica. Si nu, n-am sa va tolerez prostia ca imediat puieste de sufoca totul. Asa ca luati-va spamul la spinare si duceti-va unde mai gasiti fraieri sa va plateasca pentru mizeria de-o faceti - cat or mai avea si fraierii aceia bani sa va dea voua, ca si banul fuge pana la urma de prost, asa-i mersul lumii asteia careia nu-i pasa de toata galagia voastra nici cat negru sub unghie. Lasati aerele si pretentiile si incepeti - cat o fi de tarziu ori de greu - viata in lumina nu in minciuna. Asa, ca oamenii adica, nu ca viermii.

  1. Din ceva motiv asa-mi inchipui toti expertii SEO - drept babe stirbe cersetoare. Chit ca realitatea e mai dezgustatoare in fapt dat fiind ca-s mai degraba tineri fara nici o scuza la asa cersetorie la care se preteaza. 

  2. SEO!! Agregatorul/motorul/situl/cacatul *nostru* care-ti trimite unicii aia de care n-ai nevoie 

February 18, 2017

The open sores of monkey code

Filed under: Dark Modern Ages — Diana Coman @ 6:34 p.m.

The signs were there plain and clear from the very beginning, as they always are. Signs of trouble, of curse. Of what else could signs ever be? It really is only insanity, misery and ineptitude that scar the fabric of the world so much as to leave signs at all, after all. Sanity, happiness and competence work basically all too well *with* reality for one to notice - or to otherwise need to notice - much at all.

The signs started in this case with the dubious names linked to significant parts of the project1 The magic numbers scattered all through the code like so many stinky droppings. The inexistent design documents. The outdated and incomplete documentation overall. The crashes. The total lack of automated tests despite the huge code base. The 20-or-more-levels deep errors thrown occasionally at the unsuspecting user. The arbitrary and abusive limits imposed on users - thou shall not have more than 100 inventory slots or thou shall not store containers inside containers. The sheer size of it to start with - the unjustified and unjustifiable2 tons of lines of code piled deep and piled high in a tangle that actively resists sanity already. Such as this tiny bit of mess, part of a whole larger mess of the same kind:

classAdminCmdDataAssignFaction__coll__graph (NB: this gnarly graph -and I stress that it is only a part of the whole tangle- is extracted by me out of the Planeshift code and most pointedly NOT present on Planeshift wiki at the time when I looked for such things everywhere - that time being February 2016 for the record.)

Still, I naively thought it to be more or less what it claimed to be - a piece of *working* code written perhaps by monkeys as the best of humans are anyway, but at least by knowledgeable monkeys as it were. Still written through pushing keys and pressing buttons of course, but with movements directed by some actual thought and inner workings of a brain that has grasped the more abstract concept of a banana and that of fruit even, as more powerful tools than the mere image of any given banana in front of one's eyes. After all, it IS a working game, isn't it? And if it's working, it means - or so I thought in my happy world of sane code and educated programmers - that there is clarity at its core, there is thoughtful planning in its design and there is structure to its code. Alas, in the wider world of open sores it turns out that "working" code is in fact nothing more than a total mess of bits and pieces glued together with mud and thrown at one another haphazardly, propped up with random things pompously called supports and then those supports further propped up in turn and then again until the whole thing is but a pile of hardened idiocy and nonsense that just keeps growing. And the more it grows, the more it eats up not only the time of those involved but also all light and beauty and good in the world for no such things can ever be grown out of such cursed soil.

Still, being of a rather inexplicably happy disposition, I could not quite imagine the full extent of the horror that "working" code can be. With happy and naive thoughts that there still is something sane at the core of the whole thing, I took the plunge. Since documentation was missing and useless, since the code itself was too tangled to provide any means to get the bigger picture first, I went straight into the code, as one would go into the unknown jungle - slowly and carefully, looking 10 times first and making a tiny step only afterwards. And tiny steps worked for a while. They worked for fixing small things - an unintended truncated result of division due to using int operands here, a lack of checks on pointers here and there, a missed case at an "if" crossroads or an incorrect sorting of an array.

Such tiny fixes worked for a while, but they soon became harder and harder to perform. For they were essentially the code equivalent of draining a swamp that was not merely a little puddle somewhere on the outskirts of the project, but rather the very soil on which the whole code had grown - as twisted and foul as it had grown, of course. And the swamp - like any swamp - effectively hindered any and all attempts at building something solid, high and dry and safe: the tangle ensured that no bit of code *could* actually be tested on its own because there was no way to isolate it even for testing purpose; the magic-number droppings meant that changing even one single thing required changes through all the code base without really knowing the consequences; the sheer size of the code meant that others had been lost in it before and giving in to it they had simply copy/pasted code again and again and again until there was the same thing done in five places and slightly different ways for slightly different cases with very similar results; there were pointers anywhere and everywhere, for reasons long forgotten if they even existed in the first place; there were weird calculations with the magic numbers - one can be forgiven for hating magic alltogether after seeing this source of it; there were identifiers, but not only IDs as one might expect - oh no, there were instead pIDs and eIDs and uIDs and in some cases they all referred in fact to the same thing, while in other cases they referred to entirely different things; there were items and there were containers and sometimes items were containers while containers were actionLocations while at other times items were items but containers were items*100 and the containerID could refer at the same time to a container, to a location or to the number of horns on the latest devil incarnation for magic-number purposes.

Despite the above and many more adventures of the same type3, I kept going on. I kept thinking that all of that nonsense is in fact just the accumulated rot of countless eager contributions that the unsuspecting and unprotected open sourcesores project might encounter in its unhappy life in the wild. I kept basically entertaining the delusion that there still was - if there ever was - something that can be used as it is, once all the rot has been cleared away. And I held on to this illusion until that vomit-inducing moment when one significant piece of the mess became very, very clear: the whole thing, the server and the client and the feeble attempts at logic on both sides were made *starting* from and ending with... graphics. In other words, those monkeys pushing the keys knew indeed nothing of the abstract concept of a banana, they were totally innocent in fact of any notion of abstraction. Their world really was nothing more than what met the eyes - what met *their* eyes even.

In one of the most horrible exhibits of this innocence, the server effectively searches through a list of graphical representations (meshes) to find a wanted object; in another, both server and client identify objects not by their id or even by their type+name or any other such key essentially related to the object itself, but by their... place in the world. And if that was not enough, this place in the world is not even always the same thing, for it can change in puzzling ways: to give but an example, containers in the world have places inside them from 0 to 15 but same container taken in somebody's inventory has places (of a kind as they are "simulated" for added points of idiocy) from 1 to 16 all of a sudden. Moreover, containers in inventory are not even containers anymore (fancy that!) - they are instead "simulated." Simulated how? Well, in a very, very simple way, like all horrible solutions: by multiplying the container's slot with 100 and then adding to that 1 to 16 for the container's slots themselves. So that first slot in container on slot 15 in inventory becomes 100*15+1 = 151, isn't that neat? And doesn't that make it impossible to change the number of slots in inventory alltogether beyond the magic number of 100? And doesn't it mean that all server and client code keeps going back and forth with div 100 and mod 100 and * 100 and fuck 100 and oh, no, we forgot 100 for ever and ever and in all places?

Still, I guess it shows that some of them knew at least about mod and div and 100. Well done, have a banana!

  1. Amir Taaki as "programmer" of Crystal Space comes to mind for all the wrong reasons, but that doesn't mean he is the only one. 

  2. No, there is no possible sane justification for more than half a million lines of code for a computer game that is overall barely noticeable in terms of game play. 

  3. They each deserve a detailed story I guess, but I'm still quite in the thick of it, quite raw in places from it, quite busy with the rest of it. 

November 7, 2016

Cum n-am vrut si nici nu vreau sa "ma obisnuiesc"

Filed under: Dark Modern Ages — Diana Coman @ 9:22 a.m.
La primul loc de munca (eram inca in facultate de altfel) am avut o saptamana (neplatita) de "training" la care m-am dus de altfel cu entuziasm si cu placere. Am lucrat toata ziua, am terminat tot ce era de facut ba chiar si peste. Iar la final de zi, la 6 fara 5, ni se adreseaza intrebarea ca daca nu vrem sa stam peste program ca sa mai facem X si Y. Liniste si tacere ca de mormant. Asa ca am zis eu simplu clar si raspicat ca NU, nu vreau sa stau peste program, vin maine la prima ora, sigur. Asa ca am plecat cu totii dupa o zi de munca iar pe drum am intrebat colegii daca ei chiar voiau sa stea mai mult, de n-au zis nimic? Si am avut urmatorul dialog de l-oi tine minte cate zile oi avea:
- Eh, nu voiam, nu.
- Pai si atunci de ce n-ati zis nimic? Nici macar dupa ce am zis eu.
- Pai cum sa zicem, nu se face.
- Cum adica nu se face? Stam acolo pana seara si pe degeaba si e ok, sau cum?
- Eh, asa e pe peste tot, te obisnuiesti tu.
Si mda, niciodata n-am vrut sa "ma obisnuiesc" cu diverse magarii. Cred ca de aia nici nu m-am potrivit niciodata, nici nu ma voi potrivi vreodata. Nu printre cei care se tot obisnuiesc cu una ori cu alta, numai sa nu iasa cumva in evidenta, ca daca si-or pierde locul? Caldut sau rece sau asa si asa ca toata viata lor traita la nivelul solului ori chiar dedesubt ca nu cumva sa-i bata vanturi reci daca se ridica fie si un pic. Nu, sper sa nu ma obisnuiesc chiar niciodata cu asa ceva.

March 5, 2015

Date Bac - toamna 2014

Filed under: Bac data — Diana Coman @ 11:03 a.m.

Pentru ca m-a contactat lumea cerand datele de la sesiunile de Bacalaureat din toamna, revin la tema asta1. Asadar datele de la sesiunea din toamna 2014 sunt la un loc cu celelalte date de la Bacalaureat. Pentru cei curiosi, iata si o poza de cum stau lucrurile toamna (stau la limita unui 5 adica):


Din 63391 candidati, s-au prezentat 52400, din care 248 au fost eliminati si 12458 au reusit sa obtina nota de trecere. Histograma de mai sus ia in calcul doar pe cei care au obtinut o nota (indiferent daca e de trecere sau nu) la toate cele 3 probe notate numeric (profil scris, romana scris, alegere scris).

Poftiti cu incredere la comentarii mai jos.

  1. Doar notez ca sa fie clar pentru toata lumea ca eu fac aici pe gratis treaba pe care n-o face Ministerul Educatiei desi e in atributiile sale, sa fim intelesi. 

Older Posts »

Theme and content by Diana Coman