Just a heads up that South Africa has again voted not to approve OOXML as a standard remaining one of the P-member “NO” votes.
The recent comments by the Minister suggests that the government is strongly in favor of ODF and has standardized on it already. The governments clear unhappiness with the attempt to illegally patent OOXML in South Africa (where software is not patentable) probably doesn’t boost our confidence in it becoming a standard (and the idea of an ISO standard that is patented is outright absurd anyway in my view).
Either way, kudos to SABS and the government for doing it right and not caving to the big M.
You can’t see any, you’re too young.
Am I the only person who believes there is a fundamental flaw in the movie/TV/music/game rating systems ? I don’t mean there is a problem with how they work – I mean that the very existence of these systems are a flaw. In fact, this censorship against the youth is one of the most discriminatory and outright unconstitutional set of laws in our society today. No less so in America than here as I can gather.
So why do I say this ? Well firstly, I believe that the burden of proof isn’t on me. It’s not up to the individual to proof that I what she wants to do is harmless, it’s up to the government to prove that it is harmful before they are allowed to restrict the activity. This has, as far as I can tell, never been done at all. The ‘harm’ of sexually explicit and or violent media is completely unproven and taken at face value. I am instinctively more wary of violent than sexual material around children but I fundamentally reject the notion of censoring either.
So that is my first point: there is absolutely no proof that it is harmfull. Moreover there never can be. We are talking here about the impact of media on individual psychological makeups. Which makes it dependent on not just the specific media but each individual’s personality and prior experiences, so contextual that there can hardly even be a trend. The effect of sexual imagery on a young victim of sexual abuse for example is likely to be very different from the impact of the same imagery on a child with a happy family (they are still the majority after all).
So we’re restricting the activities of people based on little or no evidence whatsoever. Isn’t that by itself opposed to the very idea of a free society ?
In fact, the film and publications board in South Africa is so aware of how fundamentally unproven their premise is that they never even state it. In one propaganda leaflet they handed out at cinema’s a while back they say: “Depictions of sexual interaction in the media is generally very unrealistic”. It is never stated that viewing depictions of human sexual interaction is harmful in any way. The implication is given though that the unrealistic nature of the depiction is harmful, and it’s later implied that ‘false expectations of the opposite sex’ would be the major harm.
Now false expectations of the opposite sex seems to me to sum about 95% of anybody’s non-professional interaction with said opposite sex anyway so this can hardly get worse. But the claim they make is at odds their actions anyway.
If it’s the unrealistic depiction of sex and sexual relationships that cause harm… why is it then that the more realistically we depict sex the higher the age restrictions become ? Softcore porn is usually given an 18 rating here, hardcore an R18 (meaning you cannot show it on TV and it can only be sold in sex shops).
Sure a claim can be made that the actual interaction prior to the sex is very unrealistic in porn movies, but in my opinion it is no worse than most popular romantic comedies (which are generally rated all ages).
Even then it holds no water, imagine a voyeuristic recording of a married couple having sex, made without their knowledge. Now stop imagining it and concentrate please, can you think of a more realistic depiction of both the sex and the relationship ? Do you think for one second the film and publications board would rate it all ages ?
So we’ve basically blown apart the premise of it being harmful, try selling that one to the religious right though (odd how they tend to be a lot more lax about violence though isn’t it ) ?
For the sake of argument however, let’s assume that exposure to certain media can be harmful under certain conditions for minors.
In that case we must find the best way to handle the situation. A UK parliament report recently had a very good analogy. We can compare movies with sex in it to a public swimming pool. Swimming pools are potentially harmful (of course, the analogy’s flawed in that this is actually proven). Children have drowned in swimming pools. So we put up signs around swimming pools to warn about safe and unsafe behavior while swimming. We may post lifeguards. What we don’t do is to refuse anybody under the age of 16 or 18 access to the pool. Quite the contrary because we’ve long since learned that by far the best way to reduce the risk of drowning is to teach children to swim. Prepared knowledge is a far better preventative than restrictions could ever be.
The same logic goes for media and art. We should not withhold this media from children, but we should be there with them when they first encounter it – to teach them how to appreciate it safely and correctly. After all imitating what is seen in the media is often dangerous – any afternoon educational chemistry program will have some ‘don’t try this at home’ warnings. Surely the only real risk with any media is if it’s imitated too much – and that can best be prevented with education. All media can teach us something, but that something isn’t always what to do (in fact, I would venture that this is hardly ever the lesson).
Teaching children this basic principle is fundamentally the task of parents, not the government and currently the law, if anything, makes their job harder. We can’t teach our children to swim since the government won’t let us take them to the pool.
This should mean that, at the very least, anybody ought to be able to enter any film theater in the presence of a parent, odd that isn’t the case. If the purpose here was truly protection, rather than moralism and abuse of power (think of the children is usually just an excuse for censorship – and the slippery slope may be a falacy in philosophy but it’s an observable fact in politics).
Finally, there is the simple reality that these anti-child censorship laws are not even in line with our actual laws about sex !
According to South African law the age of consent is 16. It used to be 16 for girls and 18 for boys but because this was decried as being discriminatory it was set at 16 for both. Now it isn’t actually important to us whether this age is a good age for sexual consent, it merely matters that this is the age according to the law at this time.
So what does this mean ? It means that the law believes a 16 year old to be quite mature enough to make decisions about her own sexual activity, and yet believes her entirely unable to make her own decisions about watching sexual material, even entirely fictional. She can legally have sex, but she cannot watch it on television ? To the full extent: she can record herself masturbating or engaging in sexual activity with a partner, and not legally watch the recording she just made when she’s finished.
In short, the law makes no sense.
It’s worse than censorship, it’s censorship that discriminates by age, it’s censorship that does not prevent harm – but could well be preventing adequate measure to control risk, and it’s censorship that is completely in contrast with other laws causing a discrepancy that borders on the comically ridiculous.
Lotto odds: in their own words
So tonight was the 8th birthday of the South African state lottery. To celebrate, they boasted some figures – figures we can use to work out the chances of winning over a million rand in the South African lottery.
They told us that the Lotto has contributed around 6 Billion rands to charity.
They told us that this amounts to 34% of the total earnings.
They told us that during the same 8 year period they made over 700 millionaires (just less than 100 a year).
So, 6 billion is 34% of 24 billion.
A lotto ticket costs R2.
That means 12 billion tickets were sold in these past 8 years.
700 millionaires, out of 12 billion tickets.
That’s great odds aint it.
Truly the lottery is a tax on stupidity.
OpenID login support !
This site will now accept openID logins for comment authentication.
That means you can use your loginname from liveJournal, Yahoo!, technorati or any of the many other openID providers to sign in here for posting comments.
I really like the openID concept, hence my adding it not only here but at outkast as well. A true distributed sign-on system will be a major enhancement to the web – I just wish we could speed up the adoption process, and convince most current sites to have an easy way to migrate an existing account to an openID signon. Yahoo for example offers openID provision, but no means to log on with an alternative openID.
We need the support to become two-way with everybody who is offering also accepting openID logins, and sites like Yahoo with large userbases should provide an option for users (when logged in with your current credentials) to link your account to an openID, once this is done, you should be able to discard your old credentials and use your openID exclusively without losing any data.
I think that, that part – the fact that migration is complex and most providers do not also accept openID is the biggest single impediment to the growth of openID at this stage and I hope we’ll see a change in this.
Then if google added support to sign-on to your google-account with an openID wouldn’t that be great. They seem to have some beta level support for offering openID’s from blogger, and apparently a limited support for comment-authentication with openID at blogger -but I really think google will benefit from adopting openID across the board, and so will the project and the web.
They call themselves the first ever ‘rocknoir’ band, and site Phillip K. Dick and Edgar Allan Poe as their major influences. They are also the first ever unsigned band to be put on the grammy ballot.
Please welcome indie rock’s most impressive band of recent times German rockers: BellaDonna.
The track I chose for this is their powerful and moving ‘Mysitcal Elysian Love’. I’m pretty sure everybody can figure out what it is about all by themselves.
In a small change from the norm – I am putting up not just lyrics this time, but also a video – mostly because so few people will have heard these unsigned wonders.
Belladonna: Mystical Elysian Love
Toxic oxygen Opium for my brain
Poison fantasy I do not feel ashamed
When I look at you – My libido takes control
When I look at you its mystical Mystical Elysian Love
High on estrogens Venom for my veins
Long lost innocence But nothing is in vain
When I am with you – my hormones take control
When I am with you were magical Magical Dionysian Gods
Overwhelmed by one obsession
On an Odyssey obscene
Overflowing fire oozin free
Ecstasy everlasting
Excess so exquisite
Experiencing the bliss extreme
Mystical Elysian Love
Drunk on luxury Elixir divine
When its just skin deep Sin is not a crime
When Im touching you Venus takes control
When youre touching me its mystical Mystical Elysian Love
Overwhelmed by one obsession
On an Odyssey obscene
Overflowing fire oozin free
Erotica everlasting
Excess so exquisite
Experiencing Eternity
Mystical Elysian Love
Overwhelmed by one obsession
On an Odyssey obscene
Overflowing fire oozin free
Ecstasy everlasting
Excess so exquisite
Experiencing Eternity
Mystical Elysian Love
As those who follow my tweets know, I have been on a Full Metal Alchemist marathon lately. In fact I just finally finished watching the entire series of this very dark and obscure anime last night. Actually it was about 2am this morning.
Then today, as I am browsing the news, I come across a list of ‘funniest tux icons‘ – I find some cute and follow the link to the tuxfactory. where I browse around (a bit bored actually) – and come across this…


Hence the question in the topic stands… do Alchemists use Linux ?
Chesscode – the #sporks esoteric language mostly by me (updated now even more TC)
So on #sporks today, we discussed Aargh! I compared it to assembler for chess players, and EvilTerran suggested the idea of an esoteric computer language using chess rules/moves.
I subsequently (with the help of #sporks) designed one. Yes it is possible, it is Turing complete and I believe it can be implemented. A particular thank you to Maximinus who contributed a number of useful ideas.
Starting principles:
Your program is represented by the pieces on a chess board and the board itself. There is a two-byte stack providing state.
Pawns are value pieces, all other pieces are operations. White pawns represent 1, Black pawns represent 0. White blocks on the board are 1 black blocks are 0.
When a pawn is taken, the block it is on represents a bit, the pawn itself another, the piece taking it represents an operation performed on those bits. The result goes in the stack.
When there are 8 bits in the stack, the ascii value represented by the byte they make up is placed on the 2-byte stack.
When operational pieces are taken – the operation they represent cannot be used again in the current game.
If a pawn takes a pawn, nothing goes in the stack, but the pawn is no longer available for arithmetic.
A program consists of a series of games. Each game is started by feeding in a set of starting positions for pieces. All pieces move as in normal chess rules.
Once all the pawns are taken (unless pawns take pawns this means 2 bytes have been placed into the stack – but using pawn-take-pawn you could split stack over several games), the ‘game’ ends and you
feed in values for the next game.
Since you have a theoretically infinite amount of games, the language will be Turing complete if all required operations are supported.
The operations pieces (white) are:
Rook: AND
Bishop: OR
Knight: XOR
Queen: ADD
King: SUB
The black operations pieces represent the NOT’s of their white counterparts:
Rook: NAND
Bishop: NOR
Knight: NXOR
Queen: SUB
King: ADD
A game is begun with a call to start and a set of values representing the initial layout of the board for this game.
The values are given as chess coordinates for all pieces.
The first 8 values represent the white operations pieces’ locations.
The next 8 values represent the black operations pieces’ locations.
Basic example:
start A1 A2 A3…H6 H7 H8
(whatever layout you need) However you can NOT place any pieces on the two center-rows.
Then you need to place the pawns, which are used as input. There are 2 ways to do this.
You can call:
const_pawns …
const_pawns takes 16 parameters each a chess coordinate, the first 8 places the white pawns the next 8 places the black pawns. You can place them on
any unused space on the board.
Alternatively you can call:
stack_pawns
Stack_pawns works by itself without any parameters, and places 16 pawns representing the two bytes in the stack.
In this case you may not have a normal chess setup of 8 white and 8 black pawns. The Center rows hold the two stacks as input, it is up to you move the pawns so the values they stand on
represent what you want (initially this is simply a matter of which bit in the byte you have)
The first byte in the stack is placed on the row D1-D8 the second on row E1-E8.
Calling stack_pawns without the stack being full results in an error.
Operating on the stack:
From here on, you write down a set of valid chess moves. Those moves that take a pawn are done as operations and the result added to the output stack.
For example: C7 B4
Means: Piece moves from C7 to B4 (only a knight could do this move btw. But we don’t need to specify the pieces as it’s the interpreter’s job to remember the current location of each piece).
Each operation is written on a new line below the last.
Please note that while you can place any piece ANYWHERE during the start call, you can ONLY make moves for each piece that is allowed under chess rules for during a game.
Once all pawns are removed, you must call start again with a starting position that will allow you to do your next operation. White moves first just like in real chess and moves then take turns.
Some have suggested a variant where games cannot end by merely removing the pawns but require a state of checkmate or a draw to occur – this is still being debated.
Displaying output:
The print command prints out the ascii character represented by a byte from the stack. It takes one argument, either a 0 or a 1.
If it is 0 it prints the first byte in the stack. If it is 1 it prints the second byte in the stack.
Example: print 1
Loops and branches:
The if statement
The program can branch by using the if statement.
If works by performing a boolean test on the two bytes in the stack in the following form:
if OPERATOR then
actions
else
actions.
fi
OPERATOR can be any valid boolean comparison: AND, OR etc. if the result is 00000000 then the if is false, otherwise it is true. It is up to the programmer to place values in the stack that evaluate as he wants it.
Additionally you can also do a boolean operation using the value (0 or 1) of a specific piece (regardless of the type of piece, merely the color determines this).
To do so:
if A5
Where A5 can be any valid chess coordinate. It returns true if the piece on A5 is white, false if it is black or the block is empty.
Actions represent blocks where the programmer can write any valid chesscode commands including nested loops and branches, output or games (which changes the stack).
Calling if without two full bytes in the stack causes an error.
The while loop
Chesscode supports while loops. Like if statements while loops do a boolean operation on the bytes in the stack.
They take the following structure:
while OPERATION
actions
elihw
The actions once more is any valid chesscode commands including games. In fact failing to put games in the loop which will change the stack (and use input from it) to something that ultimately returns false will cause an endless loop.
Like an if statement, calling while on an incomplete stack causes an error.
You can also use a query by coordinates for a while loop e.g.
while C7
In this case, if the piece there is white the loop starts, moving it out or taking it with a black piece leads to a false and ends the loop.
Getting user input.
Like the print command can write a value from the stack to the screen, the read command can read a value from the keyboard to the stack.
It takes a single parameter, which indicates a byte in the stack.
For example: read 1
The user hits a key on the keyboard, the binary representation of the ascii value of this key/letter is then stored in the second byte in the stack.
If you use read 0 instead, then it will go in the first byte of the stack (replacing any value already there).
Ending the program:
Using these structures, you can write all the code to do whatever you need your program to do. When you are finished, call
end
To tell the interpreter/compiler that your program is finished.
Final notes:
Note that all indentation is done for clarity and completely optional. Also note that the EOL character is used as an end of command marker throughout (as opposed to ; for example) so all commands must be placed on a single line.
You are welcome to hate me until the end of time.
Comments are very much desired, and if somebody is up for trying to create a working implementation I would love to know and maybe help.
You came into my world and turned it upside down.
Sometimes you scare me.
Sometimes loving you is a rollercoaster ride.
But it’s never boring.
You make me want to spend my life holding you.
Every time you smile you make me feel that my life has purpose.
I love you, and I hope we’ll celebrate your birthday together at least 500 more times.


