Day by Day Daily Cartoon by Chris Muir

The Mad Scientist... Mwahahahahahahahaha

Sunday, August 23, 2009

Infatuation

Not just the title of a John Farnham song, no.

Most people have at least one or two in their lives. They call it puppy love, or crushes - it's more or less just an abandonment of your reason and usually at the start of your adolescent life, when you fall head over heels for someone. It usually doesn't amount to much, really, but it does cause a lot of emotional turmoil when you're in it.

By the time I was seven, I was already sexually aware (girls aren't icky, and never were for me), but really, my first crush was when I was 13, and starting secondary (junior high) school. What can I say, it was a classmate of mine yclept Joy, and she was indeed a joy to behold. The second one was my friend Brandon's younger sister, and oh yeah, she was something else as well. But you know, I guess I think that of all my crushes. The third was May Young (not her real name, but awfully close), in my college days, and if you have ever seen Azumanga Daioh's Sakaki-san, you have a picture of her, more or less. And then there was Kristen and Joanne from Uni. Joanne's married, so that's that, but the rest? You kinda live in hope, you know?

These things never really panned out for me. Primarily because I have the socialisation skills of a thermonuclear device, but also because approaching girls/women in a courtship mode tends to have me go all to pieces. Especially ones that I like a whole lot. And then, there's the unmistakable fact that I've the mind of a dirty old man.

What brings this up? Well, the second girl I've ever had a crush on, my friend Brandon's sister? Just met her quite by accident today. Betcha she still thinks I'm a gibbering, blithering idiot. Which, {sigh} is still what she turns me into, after all these years. My heart still beats about 50% faster, my metabolic rate goes into overdrive, and damn me if my face isn't all red after that encounter. It was pleasant, even if it was only small talk, and for all I know she was all like 'ugh, just hurry up and get out of my life', but lacking evidence of the latter, I choose to live in hope.

Argh. Those people who have parents arrange marriages for them? Lucky buggers. They can skip all this nonsense.

Saturday, August 22, 2009

Author Review Intro - Lois McMaster Bujold

Okay, so this little disclaimer first. I'm not important enough to get sponsored or paid or opinions and stuff, so everything here is my take on the matter. The authors I put up here are those I personally like and have read - so you'll never get anything from J.K.Rowling here. I mostly read F&SF, Christian stuff, but back in the day I've read mysteries, children's books (so yes, you'll get Enid Blyton here maybe), detective-stuff, some mediaeval stuff, and even romance (although not much of that). I encourage people to purchase stuff they like; I do, although not as much as I should, maybe.

Well, I guess I should start with a short background. My family got into technology early - relatively speaking - as my father was an electrical engineer back in the 60s, and hence he was knee-deep in telecommunications and network gear. And computers that drove the electrical switches they had back then, of course.

Of course, our exposure to computers in the house started with the IBM PC. My cousin managed to persuade his parents to get him one. It was an incredible machine at the time; it had two 360K floppy disk drives, which meant you could boot DOS off one and play Karateka or Budokan off the other. You haven't lived until you played one of those games in monochrome, let me tell you.

In my primary (elementary) school days we had Apple IIs in school for the computer club and experimental lessons. Fun to play with Apple Basic back in those days, too.

My brother then managed to persuade my father to get us a 386DX-33. It was quite powerful back in the day; 8MB of RAM, 120MB hard drive, and we also had a second drive weighing in at 250MB. It came with DOS 5 and Windows 3.1 - and two floppy drives, one 1.2MB floppy and one 1.44MB microfloppy each. And a VGA screen, but no sound. it cost 5 bucks back then to copy a disk, and we had such classic games as X-Wing, Lemmings 2, and Wing Commander Privateer.

So, you know, when my father got a Toshiba Pentium-powered laptop, it was fully kitted with a 13' TFT and wow! It had a modem as well. Now, this was way back in 1995, so it was one of the very first ones with Chicago preloaded. Very expensive, and it had Internet connectivity through what was then known as the TM Intranet. Very cool, and so I made my first website at Geocities shortly after that.

Now, I had a bunch of book reviews on that site, and since Yahoo! decided to terminate Geocities, I figured, what the heck? I'm bringing it back now. And my first author to be reviewed here is Lois McMaster Bujold.

I'll keep this short. The MS keyboards are nice, but not conducive to very long posts, really. Lois McMaster Bujold is one of my favourite authors, and for some reason I cannot fathom. Somehow, she writes like a man, and her heroes are men, true men - even the women. Their characterisations resonate with me somehow, and they seem real to life.

So, what does she write? Well, everything, really. Science fiction was where I got my introduction to her. She started with a heroine called Cordelia Naismith, following up with her offspring, Miles Naismith Vorkosigan. Miles is short, and a cripple besides, but man! I really, really get into his character. Bujold then went on to write fantasy, with what I call the Chalion series. This one switches protagonists in each book (although in the same universe), but Cazaril (the first book's protagonist) really captures how a man in his position would feel (and how I would like to think I would react, really). HEr next big series is the Sharing Knife series, which is published by HarperCollins and a whole lot more romance-ish in feel. Still, very good.

Enough of my blathering, I guess. Some information:

  1. She is a Baen author. Which means, she's on (a) the Baen Free Library and (b) Webscriptions
  2. If paper is more your thing, here are some sample publications to get you started. (Links go to Amazon; for a full biblipgraphy click on her name further above in the post)
  • A Civil Campaign. This is one of the later books in the Vorkosigan saga, and details Miles (now 30) trying to woo the woman of his dreams, Ekaterin Niles Vorsoisson. Only problem is, as the title suggest, this is a civil campign, and Miles is far more familiar with military campaigns, Sun Tzu and The Art Of War-stuff. It can work, but if the girl is question finds out, which of course she does, watch out for the fireworks...
  • The Curse Of Chalion. What starts out as a search for employment for the strangely humble but very capable Cazaril turns into the three most harrowing moments of his life as he seeks to tutor a headstrong princess and navigate her way through perils, political intrigue and Prophecy (not to mention my alliteration). No, he doesn't get the princess, but he does get a Goddess living with him for a while, that should count for something.
  • Beguilement. Lakewalkers and farmers are not supposed to love each other. Die for each other, sure. Friends, partners, business associates, no problems. But love and marriage and especially the baby in the golden carriage? Absolutely not! So what happens when Dag, a morose and seeming epitome of the Lakewalker ideal falls head over heel for a half-pint, pregnant bundle of energy who's also, by the way, a barely legal farmer girl? Find out...
  • Legacy. Well, Dag got off easy with the woman's side, and now he's off home to show off his new bride to his family. You know this isn't going to turn out a bed of roses for them - or does it? After all, roses are thorny...
  • Passage. Walking the earth with your bride by your side is a tempting idea, but when your brother-in-law is tagging along...? And now your bride wants to go down the river in a boat, and her brother has fallen for the engaged boatmaster - or should that be boatmistress - and you have somehow or other acquired two hitchhikers on the run from their village elders. Well, Dag, you know no one said life would be easy...
  • Horizon. From my previous descriptions, you'd think this was just a standard romance story. But the romance has a serious backdrop; Lakewalkers have access to abilities which they call 'groundwork' but which everyone else calls magic. And they need it to fight off Very Bad Things called malices. Dag's had a good run at 26-odd malices so far, but he's ever met them one at a time. What happens when you get two?
--Preview of my next Author Review post--
Now, there's no doubt I prefer electronic formats in many cases, but not all. Isaac Asimov came up with an essay on why we should prefer paper-based books; he's got a point. They last much longer in terms of physical medium (properly treated, manuscripts can last thousands of years; try that with even optical discs), super-portable, required minimal energy to use (sunlight works quite well), etc and so forth blah blah blah. But you can't beat free.

Baen gets this right. There is even a site out there that serves up almost everything Baen has ever published for free, courtesy of Baen.
--End preview--

Thursday, August 13, 2009

Linux vs Windows

Truth be told, I hate Linux. Or rather, I hate using it in any significant way. It's not the kernel I hate, or the distributions, or even the interfaces. No, it's the Linux attitude.

Here's what I mean. Take your average Joe, who's trying to use computers in his own way. He's not terribly technologically-inclined, but he finds his way around. He's just installed Ubuntu, and now he's looking for a way to play his favourite MP3s. For whatever reason (we do not know, and Joe has even less clue at this point), he cannot do so.

Now, under Windows, WMP comes with a fairly complete help system, but nothing in there helps, so off goes Joe to the Internet, and starts searching for WMP troubleshooting tips. He can browse through Microsoft's immense support library, and he can see a whole lot of third party sites that may offer some advice as to why he cannot play his MP3s.

What is the situation on Ubuntu? Well, first thing Joe sees, he sees a site that looks something like this. Wow! That really reassures Joe! Let's quote a bit from here...

Eventually you need to install a current totem-pl-parser too.
But a simple download, unpack, ./configure, make and sudo make install is sufficient.
Guys, I dunno about you, but a Windows user can simply download - and in many cases, the download can automagically install itself as well (if the user selected the option). But I'm being unfair - this is not really a troubleshooting site, is it? Let's look on further.

We find this site on Fedora. But it does mention Rhythmbox (Ubuntu's media player, amongst many), and MP3s, so yahoo! However, the first few sentences say getting it to play MP3s is one hellaciously difficult task. But at least we're getting somewhere!

Now, Joe's not genius-level smart, but he figures, hey, I downloaded this Ubuntu, so maybe the people who let me download it know something about this issue. So off he goes and does what he should have done in the first place, right? Now he's at help.unbuntu.com, maybe that will get him somewhere. And it kinda does, really. Joe may have to dig around, but some persistent work and he will get the answer (in this case, the MP3 decoding libraries were not installed, so Joe has to install them)

Okay, so after a bit, we can say that someone with a bit of tenacity can get somewhere. What will happen, though, if you tried to post this issue in a Linux user forum? I'll tell you what. RTFM, GTFO, STFU, RTFM, did you RTFM, you luser? Go back to Windows, you n00b!

Yes, I think Joe will be taking their advice.

Saturday, August 08, 2009

An open letter to RapidKL

Like they will ever read my blog, right? But I shall do it nonetheless.

Dear upper management of RapidKL;

It is said that in China, ministers used to have to work for some time yearly in their area of expertise. Hence, if you were the Minister of Mining, you would have to spend a week or a month digging for coal or somesuch.

Perhaps you should consider such an exercise - or at least you should take public transport for a month or so exclusively. That way, you may better understand the frustrations of us who have to do so.
  1. It is ridiculous that you still cannot provide us with anything resembling accurate timetables after FOUR years of operation. The best you can do is "uh, we start at such a time, and we run every X minutes" and even then you cannot guarantee the timings, not even to within 15 mins. I have personally had to wait 90 minutes - that's ONE AND A HALF HOURS - more than once for a bus that's supposed to be on a 20 minute frequency.
  2. Have you had a look at the websites of many public transportation systems in the Western world? Just take a look at them, please. Not only do they have timetables, but they have ROUTE PLANNERS, inclusive of maps and detailed instructions. The technology is not difficult to implement; heck, you can ask Google Maps or Microsoft to help you out here. And they keep the information up to date. Your website, on the other hand, stinks. We have to use JavaScript, it is not viewable in alternative browsers such as Opera, you still boast of all-day tickets when you will be changing it over NEXT MONTH - in short, there is no value-add to your website at all. Tell me again, what the heck do you have it for?
  3. You ask us to carry small change - worse, to carry EXACT fare. Why? Why can't you allow your drivers to have some facility for making change? Are you afraid of fraud? Can't your drivers count? I am not asking that your bus drivers change for RM100 bills - obviously, there needs to be some limit to this sort of thing. But for crying out loud, if I have an RM5, you should be able to give me back RM4.
  4. I don't even want to discuss the LRT, which air conditioning is lacking at the best of times, which is perennially packed to the brim during peak hours, and where the rides are as smooth as using a Jeep to go across Taman Negara.
We are trying to achieve industrialised, First World status as a nation over the next decade. I fully realise that the general public have issues, but surely some measures can be taken towards resolving some of these problems with the public transportation network. For Malaysia, please.

Sunday, August 02, 2009

The Melancholy of Suzumiya Haruhi

Now, I've been watching (and reading) a series called Suzumiya Haruhi no yuutsu (and as you can tell from the title, that's what it means in Japanese).

Most people think this is a great series, because you cannot really narrow down the genre. Is it SF, or F, or is it a slice-of-life, or with a mythic arc? Yes, pretty much all that and more.

Suzumiya Haruhi is God - except she doesn't know that. This is the premise of the entire series in a nutshell. If Haruhi wants something, Haruhi gets something. Which is a really neat way of explaining omnipotence. She has the ability to rewrite all of existence, so when she wanted to meet up with aliens, ESPers, time travellers and sliders, she meets up with them.

The anime adaptation was done some years back, mid-2000s, of one or two of the light novels. This year, the news that they would be adapting a second season was met with hails of great joy, because the studio had been trolling the fans for years now concerning the second season.

Guess what? They're trolling the fans again, and in Magnificent Bastard, grand-scale, Haruhi-style trolling of epic proportions. They started off with repeating the first season, but then they slipped in a new episode. But after that, 6, count 'em, SIX entire episodes of the new anime was pretty much the same episode repeated over and over.

Now, the storyline they're adapting actually specifies that time has been looping August for 10k+ times, due to Haruhi not wanting to finish summer vacation. But the storyline only exposes the last loop. The anime has gone through 6
loops, and shows no signs of abatement.

That's how you troll, guys!

Edit: Make that seven. 7 loops. Of the same day. Over and over. This is trolling to incredible heights. It had better be worth it. You hear me? Make it worth it!


Tuesday, July 28, 2009

Bing! Microsoft's done it!

I'm a little slow to get on the bandwagon here, but over the weekend I went out and tried Microsoft's 'new' search engine, Bing. And no turning back - I've now set it as my default search engine on all my browsers, Speed Dials and all.

It really is something else, and far better than the previous Live Search. You get previews, better suggested searches, and the interface has been tweaked to give it a faster feel. Overall, worth a look, and mostly worth the switch.

Must say that Microsoft is slowly getting better at this. Windows 7 seems be what people expected and wanted Vista to be (and Vista is not a bad OS if you stick to the standard scenarios), they're much, much better with trials of their various software products (and even free versions in some cases), and their hardware has always been alright in my books.



Tuesday, July 21, 2009

Some random ramblings

Anime and manga make trannies look good. Guess you can get away with suspension of disbelief when you're the creator of the works in question.

They don't make games like they used to. Nothing beats old-style platformers, side-scrollers and console RPGs - which is why they remake 'em for the newer machines.

Losing weight is hard. 3500 kcals is a pound gained or lost, more or less, but you can eat your way through that in days. Try burning that off in the same amount of time.

President BHOmbastic is a first-class idiot. But he's currently a popular first-class idiot, so we shall have to leave it at that.

Evolutionists and animal wrongs groups should not get along. The one insists that Man is no different from the natural order (although maybe at its pinnacle currently), the other insists Man is a blight on the natural order and should be expunged (or at least severely curtailed).

Animals and even plants use sex as a tool of domination, as a weapon, as a form of play, and as a form of aggression. Being better than them, we humans should know better and use sex as a procreative mechanism alongside a way of showing intimacy. The fact that it can be pleasurable is just a bonus.

Intimacy in friendship can be expressed without sexual meaning and contact. The fact societies seem to be unable of recognising that any more leads to the conclusion that we are in fact degenerating, and not progressing.

By and large, subtitles are a superior solution to dubs, especially if they're soft subs. Plus, you get to learn dribs and drabs of foreign languages while you're at it.




Friday, July 10, 2009

Supremacy

Probably a bad word in the USA. White supremacists, after all, like the KKK, most likely corrupted the meaning of the term, and quite possibly beyond recovery. Weird, when the term 'supreme' simply means 'top', or 'paramount'. The Supreme Court, after all, exists as the highest court of the land, sure - but there are other courts, and it does not mean these courts are powerless, or without honour, or without meaning.

Notwithstanding this, I am not ashamed to to admit that I am a Chinese supremacist. Of possibly the worst kind. It is my sincerely held belief that the Chinese will someday TAKE OVER THE WORLD!!! MWAHAHAHAHAHAHAHAHAH!!!!

Hang on, though. When I say Chinese, I don't mean 'race' or nationality or governmental structure. No, none of that really matters, an adopted Indian into a Chinese family is a Chinese too, even if he's got darker skin. What I'm talking about is culture and mindset - mind you, an ideal culture and mindset. Not all Chinese will have the same background or the same understanding that I'm putting together here, especially since it only ever really existed in philosophy, but most of us will have an appreciation for these cultural values.

1. Filial piety.
The Chinese people are well known for this. Confucius himself commends honour and reverence towards one's parents - of course, he soon elevates it to ancestor worship which is where we part ways. Showing respect to our parents, taking care of them in their old age as they took care of us in our youth, loving them while they are still here... these are hallmarks of Chinese culture and tradition since time immemorial. Why is it important? Because the old fogeys have a lot to teach us, and the wisdom of the ages is not to be dismissed lightly. A culture that abandons its aged (or leaves them for welfare types to look after) denigrates all the contributions they have made before - and who then would want to sire children as ungrateful as they are?

2. Close-knit family structure.
Your old-time Chinese family was more of a clan structure than anything. Uncles, Aunties, Great-grandmothers, third cousins twice removed, all living in the same family compound as one big (mostly) happy family. Cuts down on the incest potential, due to the Westermarck effect, promotes unity within the clan (which is really, really good if the clan controls half of the area), and you will never really be alone (okay, good and bad, but at least you will always have playmates). In some places, this still exists - the Khoo family in Penang is a really famous example.

3. Fanatically numerical.
Okay, I could have said money-faced, but that's not true. Chinese understand the value of money is not in itself, but what it can do. You will notice that our acquisition of money is for varying reasons, but never as a form of boasting or high score. Our obsession with mathematics is partially at work here, but moreso our need to guarantee worldly security. Singaporeans, for instance, have a 4C saying which marks the financial success of a person; Car, Condo (because in Singapore, much like in Japan, owning an actual house marks you as high-class), Credit card, Cash (and some people are adding Country club to that list). We understand that cash is the real commodity, and it is our buffer, and so you will almost never see old-time Chinese run up obscene amounts of debt if they can help it. Heck, my sister paid off her first car in cash. Alas, gambling defeats many Chinese.

4. Education is King.
Or at least Mandarin-level aristocrat. No, seriously. This can
be (and sometimes is) taken too far, but Chinese kids are harangued at by their parents day and night non-stop to excel academically, even if that means having tuition, the purchase of expensive reference materials, the sadistic homework of 1000 mathematical equations to prove every day... Back in Imperial times, the national examinations was the proof of Chinese meritocracy. A farmer's son, if he applied himself diligently enough, could rise in sufficient rank to become Chief Imperial Advisor or somesuch. Or, you could get your balls chopped off and become a Chief Imperial Eunuch, which is also kinda powerful but the price is too high for most, I suspect.

5. Government: Truly the last resort, Less is Best.
By and large, the common people of China took this one to heart. Government to them meant three things; (a) Taxes and other onerous demands (b) Licences and other bureaucratic nightmares, and (c) the perilous pathway to true power. Unless you were aiming to become a scholar (and hence an Imperial civil servant, and therefore part of the system), you applied for your licences, paid your dues, and kept your head down hoping the Imperial Government took no notice of you. For its part, the Imperial Government acknowledged this. If you are properly licenced (that includes brothels and religious houses, by the way), and you paid your dues properly, by and large it left you alone. Yet at the same time, any citizen of the Empire could beseech justice and be heard. Of course, once you did this, the Magistrate became the plaintiff, and you a mere witness. This was meant to be used as a last resort, when self-arbitration and blood price could not work something out.

You will note that most if not all Asian cultures believe in these principles - shows you how influential China and India were back in the day. You will also note that a particular type of belief system - and political alignment - shares many of these values. I leave the rest as an exercise to the reader.


Saturday, June 20, 2009

Something different

Some of my posts here have lately been content heavy, not to mention rather speculative and philosophical. I thought I would go for something light and absurd for a change.

One of the things that bugs me about places like the USA, with a supposed 1st Amendment rights to freedom of speech, is the dichotomy between brothels and pornography - especially hard-core pornography. It seems to me (and correct me if I'm wrong), that the only practical difference between the two is who pays and gets paid. But before we even get into that, there is an even deeper issue, one that demonstrates the problem whenever you divorce law from morality. Bearing in mind, of course, that there are issues when you couple the two together.

Apparently, in many Western countries, you can be as much of a slut as you want to be, not a problem. As long as it is consensual on all parties, you can hop from bed to bed to bed in the same night, entertain multiple sex partners at the same time, and get up to stuff I don't even want to speculate about... but only if you don't get paid for it. Yes, that's right, if you want to monetise your body, it's illegal - as long as you don't go into the pornography business.

Okay... so taking it to its logical (and ludicrous) extreme, the easiest way to run a legal brothel is to, em, videotape everyone and everything? Can't be that easy; after all, porno actors get paid, and you probably have to join the SAG or something. And of course, there's the question of how widely you have to distribute the resulting 'film' in order to qualify as a publishing house. But, assuming you can get all those details out of the way... well... what's wrong with my logic, right? Right?

There is definitely something very wrong with this whole setup.


Friday, June 05, 2009

Evolution? Get real - Introspective Series part 4

One of the aspects of Christianity (and a number of other religions / belief systems) that has received a lot of flak and press ever since Charles Darwin came up with his infamous work on the Origin of Species is the Creation story, or as I like to put it, the Reason We're Here.

Darwin may not have started out this way, nor perhaps would he have gone as far as he did if he knew what we now know, and it is certainly not beyond the realm of possibility that he would not have approved of the current state of affairs as regards origin science. Nevertheless, the fact remains that he popularised the idea of (macro) evolution, which has been tweaked and played with and refined until it has become what it is today. Now, I used to be an evolutionist, so to speak, but my viewpoint on this matter has changed, and I am now comfortable with calling myself a Young Earth Creationist. Yes, I am one o'them YECs.

Let's clear up some terminology first, because as with many other issues, much confusion and flaming can be avoided or minimised with making clear the definitions of the argument. A lot of people refer to the Theory of Evolution, but really, this is a misnomer. Evolution is a model; nothing more, nothing less. A theory is something provable (and falsifiable, of course), something concrete that you can work with, and usually attached to an accompanying mathematical formula. Evolution is nowhere so clear cut. The next term we really need to clear up is 'evolution'. Macroevolution, which is what I'm talking about here, is generally understood to refer nothing less than the Grand Unified Theory of How All Living Things came about through {some random, undirected, veeerrryyy long-term process} (currently genetic mutations leading to beneficial traits that can be acted upon by the pressures of natural selection) that enabled the expansion of some progenitor life form into the myriad species, genus, family, order etc before us today. What a mouthful, isn't it? Here are the takeaway points, though - firstly, it is generally supposed to link all current life forms back to a single unicellular organism some few billion years ago. Secondly, the process is random and undirected. Thirdly, the mutations are beneficial and lead to new organs. That's all you need to remember about evolution.

Why don't I believe in it any more? Why have I switched from this model to the YEC model? Well, okay, let's take it a step at a time. Origins science is a misnomer all by itself. The scientific principle by which we try to understand the natural world around us is a logical one of cause and effect. You observe an effect, postulate a cause for that effect (hypothesis), devise a method of proving or disproving your hypothesis (experiment), and you refine until you have something that is reliably repeatable to provide you the results your hypothesis calls for. Then, and only then, do you have a theory - when other people can take your work, plug in new values, and within experimental error have the numbers your theory predicts they should get.

You can't do that with origins science. You cannot prove that chimpanzees and humans evolved from the same proto-primate, nor can you prove they were created separately by God. We weren't there to see it happen! What we do have are a bunch of observations - and all you can do with observations is form a model. Neither evolution, or OEC, or YEC, or for that matter panspermia, are theories; they're all models.

That doesn't answer the question. What does is that evolutionists require me to believe the following sequence of events happened in a completely undirected fashion and by random;

0. The complex, error-tolerant encoding systems of RNA and DNA
1. The move from non-life to life (abiogenesis)
2. The move from unicellular to multicellular organisms
3. The move from asexual reproduction to sexual reproduction
4. The specialisation of cells into various tissues and organs
5. The move from exoskeleton to endoskeleton
6. The move from cold-blooded to warm-blooded
...
X. The move from ground travel to wings
X + 1. The production of irreducibly complex structures
...
and so on.

Now, remember, none of these have been observed to occur. There is no eyewitness evidence, nor for that matter, is there sufficient forensic and circumstantial evidence for this. Yes, evolutionary biologists have come up with possible explanations for some of the above, but (a) not all and (b) while any one of them may be plausible, the sheer number that need to happen is ludicrous.

This is what nails the lid of the coffin shut for good, though. The number one underlying process that powers all these explanations? That's mutation - which is the only way genetic code can change, because meiosis and mitosis have very powerful error-correction built in. And not once, not once, has mutation managed to come up with a new structure. Modifications of existing structures, yes. Co-opting of structures from other life forms, sometimes. But inventing cone cells from rod cells or vice versa? No.

The field of genetic manipulation is known as genetic engineering. It is a very, very young field, and genetic engineers work with biological constructs rather than physical ones, or chemical ones, or digital ones. We now know that the 'simplest' biological organism is far, far more complex, with more moving parts and interactions than anything humans have ever put together. In fact, the closest metaphor we have is in the field of software engineering, because that's what genes are; they're software programs. How close is the metaphor? We're using algorithms based on genetic interactions in software engineering.

The fear of GM foods is, put in software terms, that if you introduced a feature into an existing software set, you run the real risk of also introducing bugs. No software developer would ever let a new feature set leave the dev lab without thorough regression testing, and genetic engineers should take that into account as well.

Here's the thing. Engineers work with things that are designed. The Information Technology field, including software engineering, is based on the fact that somebody came up with the programming languages, compilers, interpreters, storage systems and processors with which you ply your art. There is a certain elegance in the way living creatures are put together that collectively forms a giant flashing beeping sign pointing at the Great Software Developer. We talk about the design of the hand, or the eye, or the blood-clotting system, because there is no better word to describe what we're dealing with. A design implies a designer always... except when dealing with God, apparently.

Even the most strident atheist evolutionary biologist will not deny that life appears to have been designed. The simplest answer and solution to why this is so, well, is because life was designed. So I believe, and so I profess.

Sunday, May 31, 2009

A cult dissected

Are cults bad? Yes, they are, for the most part. It's not always what they teach, but it's the effect they have on their members, and the society at large. The problem is, they proliferate like cockroaches, because people have a need to congregate and belong to something larger than themselves. Cults are not only religious in nature; there are personality cults, for instance. It may be useful to know, generally speaking, just what a cult looks like.

Now, I'm not taking aim at any cult, but just laying out what I think the general characteristics of a cult are. Why do something like this when there are a few million other sites out there who can do the same thing (and in fact do the same thing)? Well, because I can - it's my blog, after all. But also because I think a lot of people can benefit from a mature discussion of cults and cultic behaviour. I know, I know, many atheists (especially of the strawman kind, of which there are distressingly a large number) believe all religions and belief systems are cults, but bear with me.

Doctrine
Contrary to popular belief, cults do not necessarily have to espouse different doctrines to mainstream religions. Heretic cults do, but not all cults. However, if you do espouse mutually antagonistic doctrines to the core doctrines of a mainstream religion, then by definition you are a heretic cult, and there are no two ways about it. For example, in Christianity, almost all denominations are in agreement that (i) the Triune God created the universe (let's not quibble over the amount of time it took, because let's face facts, time is a relative thing whether you're a YEC like myself or not); (ii) Mankind was created to be stewards over creation, but we screwed it up; (iii) Through God's plans, which included raising up a people and a nation unto Himself, the Israelites (or the Jews, as they are commonly called now), so that His Son Jesus Christ, a Jew born to Jews who is somehow both fully God and fully Man, having a dual-nature, may be born and raised in their midst, we now have the opportunity to become part of God's family, and (iv) we may become godly but not Godlike or Gods ourselves. Any group holding doctrines contrary to this and still calling themselves Christians are cults. Of course, if they
don't self-identify as such, then they may or may not be cults; not sufficient information.

Membership/Conversion/Retention
A surefire way of identifying a cult is by looking at the way they treat their members. Some or all of these may apply;
  1. Their idea of obtaining new members is aggressiveness and persistence. Sometimes annoyance, but that is a subjective issue. Unfortunately, the ways and means of such expansions are hard to pinpoint; at some stage, though, it may simply become the law of the land.
  2. As you delve deeper and deeper into the inner councils of the cult, there are initiation rituals that become less and less open to the rest of the world (and even the group itself).
  3. You are encouraged very strongly to limit your social exposure to fellow cult members. Your entire life must revolve around cult activities and group interactions, so much so that even your marriage is dictated by such membership. Marriage to a non-cultist (if permitted at all) must serve to bring them inside the cult, and your children must be indoctrinated into the cult as soon as possible. In some cults, your money is sucked away from you, and you're basically guilt-tripped into this.
  4. Exiting the cult is forbidden on pains of death, or worse. What could be worse? Well, a total severance of your former relationships, even with your spouse, or children, or other family. You will be shunned, a social pariah amongst the other cultists, generally blacklisted and blackballed. In severe cases, 'interventions' may be staged which include brainwashing, social reconditioning, etc.
No matter how large or outwardly respectable any organisation is, if two or more of these apply, then you are surely dealing with a cult.

Outsiders
All cults look on outsiders (non-cultists) in one of two ways (and there is no third way); (i) potentially future cultists, and thus to be persistently approached, or (ii) fools and enemies of the state, either to be destroyed on sight or to be judiciously used to further cult goals before discarded and destroyed, depending on how dangerous and intelligent they are perceived to be. Outsiders are never seen as neutral; if they cannot be brought into the fold then they cannot be trusted or relied upon as friendly.


All of this, by the way, is the default, 'ideal' operational mode of a cult. That is to say, it's the theory, at any rate. In practice, it's not so simple as all that. It depends on the size of your cult, as well as its influence on the neighbourhoods and communities the cult has a presence in. It also depends on how committed the individual cultists are - as with all groups, you can have those ranging from the most fervent fundamentalists, to those who are Cultists In Name Only. Of course, the range is not as great, and by the very definition of a cult you'd have far more committed members than not.

Applying these rules of thumb, however, can help you identify a potential cult before you enter into any kind of relationship with them. By these yardsticks, JWs and Mormons are cults, Islam potentially verges on being a cult, and sadly enough, historically speaking, Roman Catholics and Protestants both have acted in rather cultish manners.

Such cultish behaviour, by the way, is only exaggerated online. Go ahead; join any Internet forum you wish; say one on, oh, Manchester United. Then say something complimentary about Barcelona, or Real Madrid, or Liverpool. Just try. I guarantee you, you will instantly see what I mean.





Wednesday, May 27, 2009

The nature of identity

Typically, amnesiacs on TV are shown to ask "Who am I?" as the first question out of their mouths when they come to. For any number of reasons, the show usually then revolves around them trying to rediscover their memories, so that they can recover themselves and reclaim their self-identity.

This post is not so much looking at identity as how the world sees it, or what the legal definition of it is. What I am trying to discover here is how we perceive identity - that is, how do we see ourselves?

The nature of our identity is of primary importance - if we know who we are and why we are, then we can have a better idea of where we want to go, or what needs to be done to get us to who we want to become. The question then arises: who are we, and how do we construct our identity?

It's a complex issue. The Judaeo-Christian view of Man is holistic and threefold; body, mind and soul. We are expressed in three dimensions, that is to say; physically, mentally and spiritually. None of these are more important than the other - you cannot function as a proper human being without any of the three. So naturally, one would hope that people understood and accepted their identity as holistic in nature.

Alas, this is not the case. As we know, many people make a single facet of their being an identity unto itself. Bad enough that someone else does it to you, but to do it to yourself...? An identity is not a simple thing. I am a Chinese by descent (and if I had a choice, that too), Malaysian by nationality, male by right of XY chromosomal pairs, fat by genetics and behaviour, omnisexual by impulse and heterosexual by choice, a marketer by education and trade, a Christian by God's grace, an Anglican by birth, baptism and confirmation. That does not even begin to sum up my identity, or how I see myself, not by a long shot. I have yet to describe my temperament, my likes and dislikes, my hopes, dreams, goals etc.

But here's what really gets me. I am no stranger to discrimination; you cannot be a Chinese Christian living in Malaysia and say honestly that you have never been discriminated against in a systematic, non-personal way. And indeed, by no means am I race-neutral or colour-blind or what-have-you; Chinese are the superior race and destined to conquer the world one way or the other (although espousing Anglo-Saxon values alongside Chinese ones, speaking English and spreading the Gospel by preference so I'm not saying your typical Ah Pek is going to cut it). But that isn't all of who I am, not even a quarter. Yes, it underlies me, but I am certainly not going to march up and down the streets of Putrajaya just because of it - and when I see this Feminist Pride, or Gay Pride, or Black Power stuff disgracing themselves in front of the world, it really really bugs me.

Now mind you, it's not the 'in-your-face' stuff that bugs me - the dressing, or the strident voices, or the interminably anvilicious speeches. That's all an irritation, but I can turn off the telly, no big deal. No, it's the fact that... I dunno, that it demonstrates a certain degree of shallowness to the people who turn out in these things. It's one thing to take pride in an achievement, you see, so if you're in a parade because you're part of the police force, or the Navy, or the fire brigade, then march proudly, because you have made a conscious choice to serve in a particular capacity. The Scottish bagpipers can take pride in their mastery of that... unique musical instrument, shall we say.

But no, these jokers are going in the various X Pride parades and marches for something they (supposedly) have no control or choice over. Worse; they define themselves, and derive their identity, from a single facet of a single dimension of their being. And to such people, I would like to pose this question: W. T. F?!

Seriously, think about it. In the same way that racists react negatively to you because you are a Negro, you are the flip side of the coin, but you still accept other people's definition of you as a Negro, or a Latino, or a homosexual. You buy into their perception, only that you're saying it's a good thing, not a bad thing. You derive your self-worth and your self-identity from being part of a group largely defined not by actions or ideals, but by a singular characteristic (physical in many cases).

Isn't there more to you than that? Aren't you worth more than just your genitals, or your skin colour, or your prurient thoughts? Wouldn't it be better if you could say that you are proud, not because you are a woman, but because you are the Mayor of Tokyo? Or not because you are gay, but because you are a faithful husband and biological father of three? Or not because you are black, but because you are the CEO of AGL?

As stated earlier, identity is complex. There is no doubt that our physical selves are fundamental and core to the way we see ourselves. And of course, we shouldn't be defining ourselves solely on our achievements either. ALl I am saying is, we shouldn't accept other people's stereotypes of ourselves and adopt that as our identity; there needs to be more than that.

Sadly, I cannot see these people coming out in full force during Asian-American Appreciation Week as demonstrating any kind of depth to their character and showcasing the fullness of their identities. But then again, I'm tired and it's near bed time. Quite possibly my own brans have shut down by now.

Wednesday, May 20, 2009

And now, for something completely different

I have been saving up my leave, and will continue to do so for the rest of the year, so that I can go back to Australia for a visit. My siblings are there, after all.

One of the things I miss about Down Under is the food. Even though Malaysia truly has an outstanding selection of food choices, nevertheless there are certain economic peculiarities about Australia that make for a gourmand's paradise.

Some examples; in South Australia, where I spend most of my years, chicken breasts were muchly prized (presumably because they were lean meat) and hence most of the restaurants and hawker outlets cooked with chicken thighs, drumsticks and wings. Another thing is that Malaysian restaurants, especially the non-German and non-Chinese ones, are predominantly pork-free, this being a nod to economic reality with a Muslim-majority population. I miss my pork ribs and bacon, what can I say?

But the one thing I miss the most, which is available only in two North Adelaide shops AFAIK, is the AB. Usually bowdlerised as Atomic Bomb (because you'll feel like you'd explore after eating it), it's actually short for abortion, and it's as messy as the word implies. With a base of Aussie chips (sort of short, fat fries), yiros meat (chicken, lamb or both), garlic sauce (and lots of it), chilli and BBQ sauces, it is truly heart attack food. And oh boy, is it ever tasty...

Yes, it's silly to spend a few grand just to have some food. but oh, so satisfying.

Friday, May 15, 2009

TVTropes introduction

I have been spending the past 3 months or so rummaging through the most fascinating little site known as TVTropes. It is a listing of, well... let's explain a bit of terminology as used by the site first. The term trope, in context, is a kind of mnemonic shortcut based on a cultural understanding which allows storytellers (it says TV, but really storytellers in any medium) to tell their story without explicitly setting everything up. To give you an example, if I wanted to tell a fairytale, all I need to do is add a princess, a handsome price, maybe an evil stepmother, and a good witch. Once I have all these elements, the story practically writes itself! Each element (trope) carries a certain expectation with it, and tells the audience what to expect. Its usefulness, therefore, is limited to the viewer having seen (or at least possess some familiarity to) this kind of setup before; for example, if you have never seen Mythbusters or Top Gear (Braniacs, Smash Lab etc etc etc) before, then you might not understand why there is such a thing as Education Through Pyrotechnics.

It is an immensely time-consuming site, which is why I haven't resumed my old habits of dropping by my usual blog haunts. Not to mention, incredibly addictive. The worst thing is, you can now see all of these 'tropes' in real life; when I see two girls chumming up, immediately I'm thinking LesYay. Remembering my old schoolmate, who was a HotLibrarian as well as a Meganekko, whose voice never went above a whisper except that one time when it created an EarthShatteringKaboom, I am reminded that you really need to BewareTheNiceOnes.

Have no idea what I'm talking about? Go to the site and search the terms, one of the most fun things to do.

TVTropes is fun, don't doubt it. There is a seriousness behind it, though, in the sense that mostly, these tropes come about because there is a common body of knowledge and cultural osmosis, so to speak, that enables the storytellers to draw upon shared experiences that most people will be able to grasp. Because of this, there is a certain amount of realism in these tropes, which can be looked at in a deeper sense - and that is what I will be thinking about for the next few posts. Assuming I can tear myself away long enough to post, of course.

Wednesday, January 14, 2009

Programming Languages and Salvation

Ooh, I'm on a roll here.

How do these two compare? But first, some digression to set up the topic.

Here is a 1 year old comparison of the top 5 most popular programming languages in use (source is TIOBE, go ahead and quibble with their stats if you want, but I just want to make a point here).

19.022% Java
15.931% C
10.116% C++
9.161% Visual Basic
8.882% PHP

What do these languages have in common? You won't think they did, really, but here's what - they're not as 'correct' as Ada. Let's take them one at a time.

Java is really popular because it supposedly allows you to write code that's easy to port - move to a different system altogether. It is not strongly typed, though, and it is quite easy to write very buggy code.

C is the quintessential old-school programming language, and has been called the portable assembler, not without reason. Usually, you would use C to write really low level stuff such as device drivers, operating systems, and code for embedded systems. And it is super easy to write WTF code.

C++ is an object-oriented superset of C, which simply means you can write WTF code in even more ways. What fun.

Visual Basic is a Microsoft offering, and it should come as no surprise to everyone that a lot of Windows software is written using VB. And because it looks easy to use, WTFs wander everywhere amongst the VB community. A lot of programmers look down on VB programmers, to be honest.

PHP is really a web-centric scripting language; but even using it in its proper environment WTFs are also everywhere.

Now, let's look at the more 'safe' languages - where it's harder to write code because the language (and the compiler which enforces the language) forces you to write proper code which is more correct and more bug-free - and what are the numbers associated with them? Well...

Pascal (an Algol-variant, and hence kin to Ada) comes in at ~0.67%, and Delphi (another Algol variant) weigs in at 3.3%. C#, a stonger-typed language with Java-like (and hence C-like) syntax, comes in at 5.6%. Ada isn't even in the list.

We now know, therefore, that despite the various weaknesses of the top 5 programming languages, they are in use by over half of the programmers around. But why? All general-purpose programming languages are Turing-complete; that is to say, whatever you want to compute in one, you can theoretically compute in all the others. So why use an unsafe language, when there are plenty of safer ones around? Well, the answer is that programmers don't like safe languages. Let the runtime or the garbage collector take care of potential memory leaks, why should I have to write code that manages this? Why do I have to explicitly typecast? Let the language do the conversion for me. Now I must note here that not all programmers are like this; many just grew up with C, for instance, or its descendants, and Ada is very verbose.

Never mind that. In the early era of Windows, it was a cooperative multitasking environment. Windows 3.x as I mentioned earlier had no notion of security whatsoever. Microsoft assumed that if you screwed stuff up, it was because you didn't mean to (why would anyone deliberately stuff up, after all) , and so its safety precautions were based on that.

Strange, because the first PC virus came on the scene 1986 as a joke. And now, of course, we know that given the right way and the wrong way of doing things, people will inevitably choose the wrong way if it seems easier than the right way. Raymond Chen's blog is replete with examples of such behaviour.

Software engineers and developers, especially those who write operating system code, now know that they can no longer assume the 'user' or programmer to be benign. In fact, their default position is now to consider all the many millions of ways someone can try to break their system, and toughen it up even more. This is why system administrators lock down corporate and public computers, after all.

And now you begin to see how this ties in with salvation. You will not find a single IT guy out there worth his salt, who believes that people are by nature well-behaved on computer systems, they just need the proper knowledge and tools. Not one. To a man they will affirm that most if not all users are either incurably stupid, incorrigibly pig-ignorant, or far more convinced of their skills than they actually are skilled. To make things worse, they themselves slip up too.

Which is what Christians including myself have been saying all this time, really. People are not good by nature. We're lazy. We prefer the easy way, even if it's the wrong way. We're plain bad.

And we need someone who's like us, and yet not like us, to break the cycle.

Tuesday, January 13, 2009

Windows Vista and Jesus Christ

Hah! Betcha you didn't think I could write something coherent about the two subjects, right? Well, I can and I will. But first, some background.

One of the things that people get seriously flustered (and frustrated) about the Christian view (or doctrine) towards Jesus is our insistence that He is dual-natured; both fully God and fully Man (at the same time, but that goes without saying). Some claim He is merely a man (Muslims, you know), others that He is 'only' God (Arians come to mind). Still others say He's half/half. Hmm. Sorta biracial, you might say. Homo sapiens and Theos omnipoten, so to speak. We'll get back to that.


Moving now to the security models adopted by operating systems (and you may see why these security models are needed and how they came to be). in Unix and Unix-based (POSIX) systems, there are two kinds of users; root (superuser) and user. Remember that Unix came about on mainframes and dumb terminals; the root was the administrator and basically did all the systems work, and the users were the ones who ran programs and did their work on the computer. In Unix, it was an all-or-nothing scenario; either you were an ordinary user, or you were root.

The Microsoft approach in MS-DOS, Windows 3.x, and on through the 9x series to Windows ME was different. Because these operating systems ran on Personal Computers (PCs), the concept of root and user had absolutely no meaning, and no distinction was made. In fact, in MS-DOS, you had absolute freedom to do just about anything and everything you wanted.

Windows NT and its successors (Win2K, WinXP, Vista, Win2k3, etc etc etc) supported a more flexible security model. There are several different kinds of actions supported by every 'thing' (or object), and the combination of whether you were allowed to perform certain specific actions determined your security level. This allowed for a more granular control over which user can do what, although in the home, usually it amounted to the Unix model of having 'root' (called Administrator) and 'user' (called Limited User). In the corporate environment, it is possible to be much more fine-grained.

Now, you can probably tell what the shortcomings of the first two approaches were, and why I prefer the NT security model. Unfortunately, because a large number of people moved to Windows 2000 from Windows 9x, which made no security decisions and pretty much amounted to the 'Administrator' security level, a large number of applications made underlying assumptions that only held true if they maintained themselves at that level. Hence, even in Windows XP, if you switched to being a Limited User, oh so many programs got screwed.

In Windows Vista, Microsoft tried to change the way in which Windows worked, so that it was practical to run as Limited User and programs did not break. A lot of very interesting (and to me at least, clever) tricks were pulled off to make this happen, but I am only interested in one scenario; where you ran as a member of the Administrators group.

Strangely enough, in the usual way of things, you were a Limited User. You were given all the protections (and limitations) of the Limited User group... until you needed to do something only Administrators can do. At this point, Windows sort of stops everything and asks you whether you were sure you wanted to do something Administrator-ish. Once you said yes, Windows went ahead and did it, and then bang! you're went back to being still mostly protected as a Limited User. The difference between this and running explicitly as a Limited User is that as a Limited User, you needed to call upon a member of the Administrator group (or know the password, which is the same thing) - in this case, you're using your own authority. Doing something Administrator-ish is called elevating your rights, and when Windows asked you to confirm it, it was prompting for elevation.

Now how Windows Vista does this is not the issue here (in fact, it created two security tokens, IDs if you like, and if you could get away with using the limited one, that's what it did, otherwise it would prompt for elevation). So you could ask the question, "Am I an Administrator, or a Limited User?" The actual answer is, both. And at the same time. Go ahead and check; if you have Office 2007 installed, try to run Excel twice. You should get two windows of Excel, one with Book1, and the other with Book2. But, if you run Excel once, and then again using Run as administrator, both windows of Excel with report as Book1. That is to say, Excel is running both under you as Administrator, and you as Limited User.

Which goes back to the original issue of Jesus' nature; is He God, Man, both, or half of each? The answer is the same; He is both fully God, and fully Man, and at the same time - just as you are fully Administrator, and fully Limited User, at the same time. Now, no analogy is perfect, and the Trinity as well as the dual-nature of Jesus Christ, are and will likely remain mysteries. However, this one comes pretty close.

Are you fully Administrator (otherwise known as God-mode)? Yes; you can pretty much run everything as Administrator. One of the interesting things is that the Administrator token (or ID) is passed on, so if you initially ran Explorer in Administrator mode, everything is thereafter run using the Administrator token.

Are you fully Limited User? Yes; if you answer every elevation prompt (otherwise known as that pesky thing UAC) negatively, your privileges remain that of a Limited User for everything.

Are you both at the same time? Yes; you can mix and match all you like. As you've seen, you can run any program as Administrator and Limited User at once. In fact, that is how you are recognised by Windows, because of your two security tokens - Windows recognises you as both simultaneously, and will treat you in however you want it to.

Here's one more thing. If you were in the system as a normal Limited User, then if you needed to do something in God-mode, you needed the password of the Administrator. This is because you are actually using the authority of the Administrator to do it. In the scenario I created, you don't have to - because that authority is your own, and in your own right. Hmm, sort of like how Jesus could teach with authority, and the others could not, isn't it?


And that is how the topics of Windows Vista and Jesus Christ can be tied together.

Sunday, January 11, 2009

Are those tests useful for anything?

You may notice that I have a few of these personality test results on my blog. Do they mean anything?

Well... yes and no. I'm not trying to brag that I'm a dorky nerd or a geek... not exactly something mainstream guys are likely to admit to, right? Nevertheless, they do provide you some insight into my personality. Although, not the best method around, but it's close.

Strangely enough, I don't like being pigeonholed by others. I can pigeonhole myself, sure, but no one else had better do so. To make it slightly more difficult, I deliberately go out of my way to do stuff I otherwise won't do.

Hence, while my base personality outline is Male, Heterosexual, Christian, Nerd/Geek, there are elements foreign to the stereotypes (or what I perceive the stereotypes to be, any way - you're welcome to correct me).

For example, take a look at the theme I've got running on this blog. It's PINK, ain't it? Not something you'd expect from a guy, but there you are. And I read (present tense) romance novels (and series, like the Sweet Valley High stuff) and older classics like the Anne of Green Gable series. Also, not exactly something you'd expect from a straight guy, no?

Of course, F&SF genres don't usually mix with Christians - at least, some more fundie type Christians. Strange, because I consider myself as one of those fundies - YEC, plain reading of Bible, infallibility of original authographs as dictated by God's Holy Spirit, etc etc etc. But there you are - I'm a huge (A)D&D fan, not to mention Eddings, Feist, Goodkind, and so on.

And, of course, lasciviousness *is* something you'd associate with nerd-types, but hey! I'm not exactly unsociable...

Now, if you were trying to fit me in a category, like the abovementioned 'tests', then overwhelmingly by base type comes out. But some degree of 'skinning' and customisation has occurred, you know?

Friday, January 09, 2009

GeekBlogger Interlude 2

Reading Raymond Chen's blog (The Old New Thing) is an eye opener. Now, to be fair, I do not consider myself a programmer. I can program, true enough. But I'm a WTF programmer. Good enough to know that the code I read is pretty bad code, good enough to see how it can be made better, but crappy enough to know that a fair amount of my code will look like WTFs all by themselves. Nevertheless, I can criticise with the best of them, and providing I lurk long enough, can masquerade as a 'native'.

One of the things that come up in his blog (All The Time) is compatibility. Has anyone ever wondered if you can run 16-bit Windows 3.x code in Windows Vista? You can. You can run 16 bit DOS code in Windows Vista as well, should you really, really want to. And when you consider the sheer differences between the design of DOS (which is not really an OS by modern standards - well, a crappy, minimalistic one at any rate) and the design of Windows 16-bit and Windows 32-bit, this can boggle the mind. Some of the stuff Microsoft programmers manage to pull off will both awe and appall you. It's truly miraculous how Windows manages to run, and run reasonably well (as of writing, my uptime in Vista with two browsers (and ~10 tabs in total), 2 P2P programs, various TSRs - well, the Win32 equivalents thereof - an antivirus, a dual-pane file manager and various sundry programs executed and exited is 318 hours or 13 days 6 hours).

In 64bit Vista/XP, however, you can't. That's because the V86 mode (Virtual 8086) which Windows relies on to do 16-bit code cannot be switched to when you run in 64-bit mode. This is slightly beside the point - even moving between Win9x and WinNT code bases, and heading into WinXP, Raymond Chen and the rest of the Windows core teams had lots of fun (read: blood, toil, tears and sweat, not to mention swear words) ensuring that every buggy piece of Windows software managed to run in the next version of Windows - even when these buggy Windows software did stuff they shouldn't.

That's what compatibility means in the computer world. When we say that Jack and Jill are compatible, we usually mean that they were made for each other. But when some IT geek says Jill is Gina-compatible, he's not talking about lesbian soulmates; oh no, what's he's saying is something to the effect that JILL (e.g. Java Identity Login Layer) can masquerade or take the place of GINA (Graphical Identification aNd Authentication). BTW, I don't think JILL actually exists, okay? I just made it up on the spot. So when Jack goes out with Jill, he's actually thinking he's having a date with Gina. And when he's makin' sweet, sweet love to Jill, he's actually crying out "Gina! Gina! Gina!"

Let's face facts: this situation sucks. Because Jack expects Gina-like behaviour, Jill can't act like herself - even if Jill's way, way smarter, and far prettier, and much better in the sack. It would utterly crash Jack to find out that he's not gettin' jiggy with Gina.

A proposed solution from some people is virtualisation. This is where instead of ensuring Jill behaved and acted like Gina, it was like having a copy of Gina's personality (call her schizo-Jill) instead. That way, Jill remains Jill, and Gina's still Gina.

Now, normally people think of virtualisation as actually installing a virtualisation software like Virtual PC or VMWare or something, but wouldn't it be better if instead of virtualising the whole machine, you only virtualised the high-level stuff? After all, Jill's a Woman, and so is Gina. You don't have to fake the hardware bits much, really, just the parts that matter. Strangely enough, Windows could accommodate that sort of behaviour. And why not? The original Windows NT was designed to be as modular as possible. You had the low-level micro-kernel, the HAL (Hardware Abstraction Layer, which provides a single view of hardware regardless of what it was underneath), and then you had the subsystems which rode on top of the low-level OS. Windows NT and its successors (Win2K, WinXP, WinVista, and soon enough, Win7) supported almost every subsystem there ever was. OS/2 (which was the original default subsystem, believe it or not), DOS, Windows 16-bit (otherwise known as Win16), Windows 32-bit (Win32), Windows 64-bit (presumably Win64), and Unix (via the Interix subsystem). In fact, the only major desktop OS subsystem Windows has never implemented (or have implemented by someone else) on the NT platform is the MacOS - and the Mac's running BSD (a Unix) on Intel processors now. So the idea's not as stupid as it sounds.

One problem. When you speak of a subsystem in NT, what you're actually talking about is the API, or Application Programming Interface. This is a contract - if you're programming on Win32 APIs, it pretty much says that "As long as you promise to do ONLY what is documented functionality in these APIs, we guarantee that as long as we implement Win32 APIs, your program will work flawlessly". In theory, of course. In practice, there are a largish number of programs that don't do this. Instead, they peek and poke into internal structures and directly do stuff assuming these structures will never change. In effect, instead of calling Undress(Girlfriend), they look at what the Undress() procedure did, as well as which structures it was manipulating, and proceeded to call Unfasten(Blouse.Buttons); Unzip(Skirt.Zip); Unhook(Bra.MetalClasp); and so on. And then the next version of Undress() did something different like Unzip(Dress.Zip); Eat(EdibleBra) and the program blew up because it didn't expect that. And yet, both procedures are Undress(). And it is the same Win32 API you're talking about.

Is there a proper solution? I don't know. But it's surely interesting trying to find out :)

Wednesday, January 07, 2009

New Year Stuff

Okay, so the new year has rolled around - Merry Christmas and Happy New Year!

Still on my GeekBlogger Interlude, until the end of Jan, more or less (Chinese New Year falls on Jan 26th, which coincidentally is the very date for Australia Day). So, let's continue to roll, shall we?

When I consider all the possible programming languages in the world (at least those that vaguely look like English), I come back to my first ever programming language learned (aside from scripts/batch files); Ada. What do I like about Ada? Well, pretty much everything, really. It's clean, it's elegant, it's named after the first ever programmer (woman programmer, at that!), it's fully documented, but the biggest thing I love about Ada is that it's really, really hard to write WTF code with it. The IOCCC gives you an idea how easy it is to bugger up C source; doing the same with Ada requires two hundred times the amount of creativity and ingenuity (or sheer bad luck).

C is, as many people have put it, a portable assembler. We're not exactly at the MOV AX, CX level when we use C, but you can certainly emit some seriously bollixed source code in C. There are programming languages out there that will compile whatever you write (the compilers for these languages pretty much modify your code until it does something, just not necessarily what you want or thought it would do); Ada compilers pretty much sit on your code until you fix everything.

Considering that Ada is a real-time, concurrent, multi-threading, object-oriented language used by the military all over the world, it's really no wonder it's mighty hard to bring down. But see, here's the thing. If you learn to code in Ada, switching to any other language is going to suck balls, and suck hard. In Ada, there's a lot of stuff that the compiler enforces on you that other languages call 'good coding practices'. If you write code in Ada, it's practically impossible to get buffer overruns - simply because the language prevents it. Move over to another language, much less strongly typed and where your input is not sanitised... say, VB, or even C++, and bye bye! to your compiler checks.

Of course, you could always emit Ada-like code in such languages, but you also have to write your own buffer-overflow detection and prevention code. And that's stupid - the compiler should do that for you.

So, yeah, anyways, I like Ada a lot.

Friday, December 19, 2008

A GeekBlogger Interlude

Having finished a fun time of the US elections, being slightly disappointed that Mr BHOmbastic won, and moving towards the end of the year (thus having done even less work than usual), I thought I would switch my blog reading focus from the conservative blogs to the tech blogs instead.

Now, obviously, part of it is simply the fact that just reading political blogs can lead to a bit of a burn out (not that it's a real excuse), but really I just happen to be a geek. One who is overweight, nay, even obese, sure, but a real geek nonetheless. So I find myself perusing Shark Tank and The Daily WTF (What The Fuck!). Sharky, unfortunately, updates once a day only, whereas Alex over at TDWTF updates more often - but more importantly, I haven't read all of Alex's blog, and I've read all of Shark Tank.

What can I say? The comments are funny beyond belief, especially if you grok code (even pseudocode), and there are some posts that cannot be believed. :) More to the point; even though I'm a lurker (by choice; most people there code in C, .Net or Java or other OOPs and I code mostly in Ada) there's a sense of connection to the whole software development community (Raymond Chen, for instance, hangs out there every now and then, aside from his own blog).

One of the best posts I came across was on the abuse of the C preprocessor. For those of you who may not know what is going on, the C programming environment includes a pre-processor, which takes your source code (plain ASCII text, mostly) and applies some pre-defined transformations to it. This, amongst other things, allows you to abstract some of C's rather terse syntax and operators. For example, you could do something like

#define TRUE 0
#define FALSE 1
#define FILE_NOT_FOUND -1

in your code, and when the pre-processor swept through your code, it would automatically replace every instance of TRUE, FALSE and FILE_NOT_FOUND with the integers they were defined as. Hence, you could say something like "return TRUE" and it would be the same as "return 0".

Now, it goes without saying that the preprocessor is a pretty powerful tool, and while C is not the only language to have it, it is one of the languages that often gets seriously wacky evil code written, where the evilness depended on the preprocessor.

Well, you can read all about it yourself, but suffice it to say that someone beat up on C badly enough to turn it into a variant of Pascal or Ada. The true punchline for me, though, was the comment on skinnable programming languages. Don't like a specific language? Don't use it! Find one that you like, and skin the old language to meet the new one.

Maybe you need to be a geek or a nerd to appreciate the humour. It nearly killed me laughing. The thought of someone beating up on C++ to turn it into Visual Basic (while still using the C++ compiler and other tools) was bad enough, but even worse was my remembering that the IOCCC once had a winning entry that used precisely this method; the best thing was, it was a perfectly compilable program on two languages, but it did something different depending on which language compiler you used.

I'll stop boring you lot now, but the whole idea of skinnable programming languages greatly appeals to me. Just one last thought; a compiler converts your source code (in human readable text, however complicated it can seem at first glance) to machine language (binary bits of 0s and 1s). Compilers for different languages convert different source code to the same machine language. Won't you call that the ultimate skinnable programming language?