Saturday, 13 December 2014

Unicode makes life easy!

Every now and then, the complaint is raised: "Unicode is hard!". My usual first response is that it's not Unicode that's hard, but human language; for instance, it's not Unicode's fault that:
* English is written left-to-right, Hebrew is written right-to-left, and you sometimes need to put both on the one line, like when you explain the name of PHP's scope resolution operator (Paamayim Nekudotayim, פעמיים נקודתיים‎, "double dot doubled");
* Some languages use some diacritical marks, others use different ones, so there are literally dozens of different marks that could be applied to letters; and each mark could be applied to any of quite a few letters;
* Not all letters in all languages have upper-case and lower-case forms, and in some cases, a single upper-case letter becomes multiple lower-case letters;
* And plenty more besides.

What Unicode does, of course, is bring a lot of these issues to the surface. A programmer who thought that "plain text" could fit inside ASCII, and now has to deal with all of this, will often tend to blame Unicode. But the truth is that Unicode actually makes so much of this easy - partly because you can push most of the work down to a lower-level library, and partly because of some excellent design decisions. Here's a little challenge for you: Make a way to transcribe text in any Latin script, with any diacriticals, using a simple US English keyboard layout. You'll need to devise a system for transforming an easy-to-type notation into all the different adorned characters you'd need to support. Your options: Use Unicode, or use eight-bit character sets from ISO-8859.

Here's how I did it with Unicode - specifically, in Pike, using GTK2 for my UI. First, translate a number of two-character sequences into the codepoints for combining characters; then perform a Unicode NFC normalization. And the second step is optional, done only because certain editors have buggy handling of combining characters (SciTE allows the cursor to get between them!), so really, the entire translation code consists of a handful of straight-forward translations - in my case, seven of them to cover all the combining marks that I need, plus four more for inverted question mark and exclamation mark, and the vowels not found on a US English keyboard (æ and ø); so there are a total of eleven transformations done.

To do the same thing with ISO-8859 character sets would require: First, figure out which character set to use, and then enable only a subset of transformations. Then, have full translation tables including every letter-diacritical combination supported, and make sure you have them all correct. There'll be hundreds of transformation entries, and you'd need to redo them for every single character set; with Unicode, supporting a new language is simply a matter of seeing what's missing, and adding that.

Unicode made my code smaller AND more functional than ISO-8859 ever could. Unicode is awesome.

Thursday, 25 September 2014

Science, the Bible, and the theories of scientists

This is an open letter to NaClHv, in partial response to some things said in recent posts, though not specifically to any one of them. I invite a response, either here or on his own blog; if the latter, I will link to the post from here, for the benefit of future readers.

You've said that observations of nature are as trustworthy as Scripture, and should be taken equally as demonstrations of God's character. Great! I absolutely agree with you. For instance, if you shove a stick in the ground at noon on the summer solstice, and look at the angle the sun's shadow makes, you can prove that the earth is round - and even calculate its radius, with a fair degree of accuracy. We can take that as good solid fact, and interpret Scripture in the light of it. That's science. So far, so good.

But that validity applies only to the raw facts - the purest observations. The raw initial data is what's infallible. Every interpretation based on that data is as fallible as the person who makes it - and more importantly, reflects the biases of the person who makes it, and we're all biased. When a big corporation commissions a scientific study to prove that Brand X Toothpaste produces whiter teeth and healthier gums than all its competitors, there'll be some raw data somewhere that's still perfectly correct, and then some massive interpretational bias (at least, I've yet to see any toothpaste ad that isn't subject to that). We know that the conclusion is heavily influenced by the funding, when it's that blatant. Do we acknowledge that, even when people are striving for true science, their initial preconceptions will affect their published conclusions?

If we do, then every piece of scientific consensus must be subject to review. Scientific consensus, especially today, generally means anti-Christian biases. If someone sets out to prove that God doesn't exist, and ends up concluding that everything happens by itself without any external influence, can we truly trust that declaration? No, because we know it's false - it contradicts the Bible. What if it's not quite so blatantly obvious? It's just as unreliable - it's still someone's interpretation of the facts.

So I ask you: Why are you going to great lengths to incorporate the popular anti-Christian view that we're descended from monkeys? There is no Scriptural support for this; there is no justification from the Word of God that suggests that this theory should be accepted. So what's the hard fact that you're incorporating? Where is the evidence that death occurred prior to Adam? (Romans 5 suggests that it didn't.)

I'm aware that there are messy convolutions in my own interpretation of Scripture, particularly the account of Creation. Convolutions are not, in themselves, fundamentally bad, but they're the equivalent of code smell in software - suggestive while not conclusive. The simpler solutions are the better ones, and I would love to find a pure, beautiful, clean theory, that explains everything perfectly. But until we have one, we have to accept a certain messiness. I hold to the Dr Humphreys theory that the "days" of Genesis 1 are perfectly literal, as observed from here on Earth's surface (we know that time is affected by gravity, so time and location must be bound up together, and any literal acceptance of those days must therefore stipulate an observer's location); that requires the assumption of an event horizon, crossing the observer probably during the fourth day of Creation. In contrast, your theory requires the assumption of two different types of person, genetically and visually identical, one of them bearing the image of God and the other not; it requires that there be people with whom the descendants of Adam and Eve interacted, yet who were not fully people, yet who were... and somehow, there has to be a boundary on the laws in Lev 18, which make it very clear that we're not supposed to interact in certain ways with non-humans. Where's the edge of non-humans, if it's not the sons of Adam and daughters of Eve?

But fundamentally, the question is: What facts are we using in forming our interpretations? Scripture is infallible. Raw observation of nature is infallible. Everything else isn't. If you can't duplicate my research yourself, you can't take my conclusions as perfect science - they're science filtered through me. If you were unable to read the Bible, you'd have to have someone else read it to you; would you allow your views of God to be based on an edited reading... by someone who openly hates God? And would you then go to great lengths to incorporate that into your world-view?

Then why accept it with science?

Tuesday, 9 September 2014

My not-so-secret chocolate stashes

Cecilia has a few different places to find chocolate. Scott Adams of "Dilbert" said that every strip he draws is based on truth, or is absolutely trumped by truth. So... I'm not a grad student, but how does my real-life chocolate stash measure up?

I'm not an artist, so I'll just tell you about the chocolate I have around, rather than combining it all into a nice pic. Let's see. There's my primary sharing chocolate, which everyone partakes of whenever we watch movies together - in a Cadbury Roses tin (without its lid; the lid is where my little Belle figurine is enjoying a picnic on the 'grass'). To restock the primary tin, I have a box of Guylian pralines, sitting on top of three spare hard drives and an Alice in Wonderland jigsaw puzzle. Also a case of Lindor bars, resting casually on the boxed Portal turret. The next most accessible is the makings of hot chocolate - in my In-Tray, which now contains nothing else. (What's more important than chocolate, after all!)

But the bulk of my chocolate is all in my bedroom. More barrels of hot chocolate, a variety of sharing chocolates, and a small collection of "presentable chocolate" - nicely boxed stuff that can become gifts.

I don't yet have any chocolate taped under the desk, but that's something I have definitely considered, ever since Ceci told me about her "ICE" chocolate. Seems a good idea.

Wednesday, 3 September 2014

Alice visits Sydney

The last time she flew, she didn't get to see much, so Alice has the fresh eyes of a first-time airline passenger. She'll be guest posting today, and I'll just make a few editorial comments along the way.

Well! The morning starts with everyone gathering and making sure they have all they need. My equipment's already safely stowed, so there's not a lot for me to do here, but if Chris needs help, I'm here.

A quick car trip (sisters are wonderful things; a day doesn't go by when I don't miss mine) gets us to the railway station with time to spare. A train pulls in, so we make haste and grab it. That buys us a few extra minutes' leeway, never a bad thing. We arrive at Southern Crustacean, disembark, and make our way toward Skybus. On the way, we spot a sign alerting us to coach services replacing the Melbourne->Sydney trains. Good thing we weren't going by train!

The Skybus ends up being as full as the Carpenter's theatre - even a few standing, which probably isn't meant to happen. It's an efficient service and gets us nicely to the airport in excellent time. We casually stroll around to the check-in, skip the queues and talk to the machine, and get our (shared) boarding pass. Through security next - I go through with Traal - and then to the gate. Melbourne Airport provides what Chris calls a "two rope", so he's happy. (That would be a TWROAPP, and while it's possible to grab any power point that isn't occupied, it's nice when they're formally provided. -- Chris) We're sitting fairly close to the front of Economy, so we expect to be waiting a good while before boarding; but they're using two doors, and somehow that gets everyone loaded up inside five minutes! (It's pretty much what Mythbusters tested as the "everyone all at once, assigned seating" plan, but the second door probably makes about a 4:1 difference in time.)

Pushback is 7:26, and I think there's something here that I don't understand, because there was a chap outside who seemed to have our plane on a leash. What would he do if it tried to run away? Chase after it yelling "Bad Seven Three Seven"? He dropped us off the leash at 7:30 and we started rolling around on our own. Six minutes later, we begin the optional part of flying: the take-off. (More on that later, though.)

The camera we're using has flattish batteries, and the weather's not great for photos anyway, so we don't take many. But I did like the sight of being above the clouds... come December I'll be doing that in a much smaller aeroplane, should be good fun! Traal comes out and tries to do something fancy, but there are problems that I don't understand, so I'll let Chris explain that. (As you wish. Turns out the in-flight wifi doesn't allow any sort of internet connection, so I don't get a trophy IP. Also, I had to install Silverlight to use anything... which I understood once I saw what they had to offer. Basically, it's the same as you'd expect to see on any other in-flight entertainment, but it makes use of the devices that people probably have already anyway. Huge advantage: I can pan and zoom the map at will. It'd be nice if it could be written in something open, though - or at least Flash, everyone has Flash - Silverlight is a pain. And you can't install it on board, you have to get it before take-off. I suppose there's a Microsoft licensing restriction that stops them from having the Silverlight installer on board the plane. But hey. Being able to explore the map is worth some teething troubles. Back to you now! -- Chris)

As we approach Sydney, the weather looks pretty Wonderlandian. It's sunny, fairly pleasant - and windy. The captain decides not to land, as it's so much smoother up here in the air. But then someone reminded him that while takeoffs are optional, landings are mandatory, and he sighed heavily, walked around the block once, and then came in for another try at the landing. I'm paraphrasing a bit, but that's how it happened. (Well... more or less. -- Chris) We get off once we're on the ground, walk into the terminal, and are greeted by the Sydney version of that "two rope" thing. Like the Melburnian variety, these don't have seats anywhere near them, but since seating was never a requirement, we stay here for a while and do some... stuff. I just look around, Chris and Traal hang out together. And then we move on, as there's a rather important appointment for us!

I love Wonderland. You don't need money for anything. But the real world is not so wonderful, as Nan would remind me, and it seems the $32.80 fare for a return trip to the main part of Sydney (comparable to the Skybus fare at the other end) is giving us the run-around. Not enough cash on hand. Not enough funds on the credit card, need to move some from another account. That needs an internet connection. No signal down here. Upstairs, get connected, downstairs again. Now the machine doesn't want to take the card. Back through the ophidian queueing system - why they can't shorten it when there's almost nobody in queue, I don't know. Back to the counter, and the card machine works. Yay! This is nothing like when the Mock Turtle was in charge of the Looking-Glass Line.

So we get on board the train, and float along to Town Hall Station. We're riding on the lower deck, and the platform is at our eye level. I'm sure it's easier for the regular travellers, but from the sound of the announcements ("change here for..." at every stop), this is a complicated rail system. All we do is ride it till we get to our station, then disembark. And then walk - it's a bit of a hike, as city travel goes, though nothing compared to a trek through my native terrain. (It'll be interesting when I start walking through other people's minds. Who knows what I'll find!) We arrive at Google's offices nearly an hour before the interviews begin, having been asked to arrive fifteen minutes ahead, so we settle down to watch the passage of persons and time. There's a pretty bird here who's apparently on loan from Maps (does that make sense to you?), and the receptionist was happy for me to be photographed on the Google logo - lovely people here!

The interviews went... well, actually, I've no idea. I've never been interviewed for this sort of position, and everyone seemed to use all sorts of words that I don't think were good English. And they told jokes that straight up weren't funny, I'm sure of that! (She asked me to explain a couple of them on the way home. I think we both wished we hadn't, although she was very courteous about it. -- Chris) But the conversations were pretty full-on, which I guess is a good thing, and I just sat there looking stern (in case anyone looked my direction).

A bit past three o'clock and the flight leaves at a quarter to six. That sounds like a long time, but it's best to arrive at the airport an hour before, and we have a long walk and then a train trip before that, so it's not worth the risk of hanging around or anything. We grab ourselves a train in a place that looks like Hatter Industries at its most Marchmousiest... I think there were six platforms? Maybe more? And each platform served multiple purposes. But we did get onto the right train, and hence to the airport in good time.

We have half an hour to spend before the flight begins boarding, so of course we look for the Two Rope. Chris says something about this not technically being one, but we can sit down, so that's good. (And Traal doesn't need a table, so I'm not bothered that this is really a Seat Within Reach etc etc. -- Chris) It's unofficial, so I guess the others were Virgin services rather than airport services, but it works. I collect my thoughts and think them over... what a day this has been! I ask Chris a bunch of "Why do people..." questions about what we've seen today, and he doesn't have any answers either. This world really is the strange one; Wonderland makes far more sense. Granted, my style of flying - open parachute, float over steam vent, jump and twirl and spin - is a lot slower than this form. But I don't have to empty out my pockets, walk through a barrier, go back through and remove more metal from pockets (they insist that he remove his belt in public, I'm quite sure that's improper!), then gather everything up and put it all back in the pockets. It can apparently get much worse; on international flights, you're not even allowed to take a bottle of water through, unless it's a tiny one. Is that really a safety requirement? How is it safe to carry bottled water within the country, but not if you're going overseas? Also: If we're all supposed to arrive an hour in advance, why are there so many repeated calls for people who haven't shown up? Best I can think of is that people buy the ridiculously overpriced airport food, and want to get their money's worth, even if it means delaying the flight - or missing it. Ah well. We may never understand airline travellers, but it passes the time.

The gloom's pulling in, so we won't be taking many photos of Melbourne on arrival... pity, that. We have fresh batteries for the camera, it would have been so easy. Ah well.

For the first time in... well, forever, literally, Traal's been asked to go into the overhead locker. (Or, I've been asked to stow him. Sadly, airlines aren't quite up to speed on the whole addressing of computers thing.) It's not safe to put him on the floor (we agree), and apparently he's too heavy for the pocket in front. (And they won't allow a laptop to ride on a lap. Nooo, that makes too much sense.) What next, will I have to hide up there??

There's not much in good music on the in-flight entertainment, but they have the Frozen sound track... that'll do nicely. The outside air temperature is minus fifty degrees, so it seems appropriate. (Also - sisters!) That lasts us the whole trip - all the way as far as descent into Melbourne. After that it's all pretty straight-forward - Skybus to the Shellfish, then a train most of the way home, and finally a bus. A mostly uneventful trip home, which is a relaxing change from the rest of the day.

Home. No place like it!

Thanks, Alice! I agree. No place like home.

Thursday, 14 August 2014

SI prefixes explained

This is a Tic Sliver:



Kilontic Sliver would be the new version of this guy, if Wizards ever print him. Otherwise, he'll have to stand in.



So you should have no question in your minds as to who's coming next.



Anyone want to guess at an appropriate mana cost for Yottantic Sliver?

Thursday, 7 August 2014

The Word became flesh

This is in response to a post by NaClHv regarding the interpretation of Genesis 1 and John 1. There are two points which I wish to elaborate on, in a way which goes beyond the scope of his post, and so this is more appropriate to its own post than to a comment against his.

Before I begin, I'd like to reiterate several points which have been made more eloquently on NaClHv's blog than I could state them myself. This is all about interpretations, not facts; and we can disagree on interpretations while still maintaining fellowship, respect, and the understanding that our salvation doesn't depend on getting the "right answers" to these questions. If you disagree with my position here, that's great! Disagree from an intellectual and Scripturally-valid basis, and we can discuss the matter. I'm not married to these ideas, and if other facts come up that disprove my interpretation, or if an alternative interpretation proves to be a better fit for the facts than mine, then I will adjust my thinking in response. So, with that out of the way, on to the content.

John 1:14 says that the Word became flesh. What does this mean? How are we to interpret it? The Greek word used here is Λόγος ("Logos"), the same root from which we get the English word Logic. John 1:1 talks of this Logos being "with God" and, in fact, being God. Is it too far-fetched to understand this "Word" as being a person of the Godhead, described as "The Logical One", later on acquiring the name "Jesus"? He then "became flesh", taking on the exact same form as one of his figurines, and spent some time among us, before achieving the ultimate purpose of dying and being resurrected.

And with that interpretation, quite a bit of John 1:1-18 becomes literally true. Jesus was there right from the beginning of time (albeit not with that name, but the same Person was present), and was directly involved in the work of creation. God sent the man named John, as a witness to Jesus and as a herald to carry a message in advance of the greater Person who followed him. Verses 11 through 13 basically summarize the transition from the Children of Israel to the Church of Christ - God is no longer primarily focusing on those of physical heritage, but of spiritual acceptance. The "We" in verse 14 is, of course, restricted to John's contemporaries, as those of us who live in the 21st century didn't actually witness Jesus' glory first-hand, but that's still literally true.

Verse 4 is the least clearly literal part of this passage. "In him was life, and that life was the light of all mankind." God is the source of all life, but a literal interpretation of that life being somehow contained within Him, and the life being literally light, does stretch acceptance somewhat. Similarly, the repeated reference to "light" is plausibly metaphorical rather than literal (although Book of Revelation suggests that this, too, may be quite literal). But interpreting these metaphorically isn't inconsistent with interpreting most of the chapter literally.

What does all this mean, then, as regards Genesis 1? Well, there are still some parts that cause confusion, but I would hold that again, most of the text can quite plausibly be taken literally. From what we know of nature (thanks to science), we understand that time can flow at different rates for different observers. We also know that the Bible often describes things as they appear to us here, even if that's not strictly accurate (look at Eccles 1:5-7, where a simple interpretation suggests a geocentric universe); so it would make sense for the days to be as observed here on the surface of the planet. (Yes, even though there weren't any people here until nearly the end.) This is the view posited by Dr Russell Humphreys in his book "Starlight and Time": to summarize, God created a ball of water at least two light years in diameter, the mass of which made a black hole, and then He directly spread it out (turning the black hole into a white hole), with the event horizon crossing this planet's surface about on the fourth day of Creation. While I do have neither the scientific nor mathematical skill to test his theories, I can at least look at his overall explanations and how well they fit the Bible, which they do quite adequately.

If it's true, then, that most of the universe is over a billion years old, but this solar system is less than ten thousand years old (courtesy of gravitational time dilation), then we solve a number of problems, but of course it has its own consequences. For instance, if we accept that this planet has experienced only those millenia, we MUST then accept that there was no time for evolutionary development, and therefore that God must have simply spoken all those different plants and animals into being - we must accept a literal (or at least largely-literal) interpretation of the week of creation. And fossils must have come from some form of cataclysm, not from being laid down over megayears of regular processes. All of this conflicts with the interpretations that many modern scientists make on the basis of the facts they see before them; but at no point is there a conflict with the facts themselves.

It's always possible to draw a metaphorical meaning out of something. Most of the Bible is meant to be taken literally, and I believe that literal interpretations are superior to metaphorical ones, if they have the same interpretive and predictive success. So I believe that it makes more sense to take Genesis 1 and John 1 at face value first, and fall back on calling them pure metaphor only once we have exhausted reasonable options for literal interpretations.

Monday, 4 August 2014

Sentient life outside of this planet

Yes, it's a popular scifi subject, but I'm going to look at this from the point of view of the Bible. (This post was partly inspired as a response to a post of NaClHv's, and I said I'd wait for his next post before engaging in detailed discussion, but I believe this is not the thrust of his series, so this can hopefully stand alone.)

Is there life on other planets? Frankly, the only answer I can give is "we can't know". But here are some points that we do know:

  1. All humans are descended from Adam and Eve. The New Testament is quite clear on this: Adam is the patriarch of our earthly race, just as Jesus is of the heavenly.
  2. The entire universe was affected by the sin of humanity. Even inanimate objects are affected.
  3. God is just, and will not punish people who have not sinned. It's hard to find a citation for this, because there are no such people; but we know that God is righteous, and detests injustice, and if He defends someone described as "innocent" in legal terms (who is still a sinner), how much more someone who has actually never sinned!

So our universe can't have anyone in it who was capable of deciding to not sin (apart from Jesus, who willingly and knowingly took on all the consequences of sin). That means that there cannot be any sentient humans who are not descended from Adam, nor any other sentient races. We're not going to send a spaceship out and discover alien races that look almost identical to humans except for some facial differences. What we'll find will either be nothing at all, or non-sentient life (plants and such), or actual humans whose ancestry traces back (even if they don't know it) to Adam and Eve, and who are themselves sinners in need of a Saviour.

(Aside: How could there possibly be humans on other planets? If we don't have space travel technology now, and aliens didn't give it to us, how could the ancients have travelled to other stars/planets? Well, that question assumes we're constantly getting better, which isn't exactly a proven fact. There are plenty of periods of history we know little about, and if someone hit on a means of using quantum tunnelling to flee from the oppressive Roman empire, or to find a new life away from the threat of Babylon, or whatever, then it's entirely possible the skills and technology departed with the small group of colonists who used it. This differs only in scale from the questions of "How did the so-and-so people get to such-and-such island?", and it's quite reasonable to believe that technology for ocean-going ships was discovered more than once in history. Personally, I would suspect that there aren't any humans on other planets, but scientifically and philosophically, I can't rule out the possibility. Which would mean that the Great Commission applies to space travel... this could be fun! End aside.)

The genealogies in the Bible never go beyond Adam (other than to conclude "the son of God"), and early humans can be identified by their generational positions relative to Adam. The entire Bible assumes that Adam is the beginning of the human race. We are told that Adam is not the son of some sort of "proto-human" or non-sentient primate, but was formed from dust and breathed into. God didn't take the product of millenia of evolutionary development and say "Okay, this one's good enough to be called human". He made people in His likeness. We, in some way, look like "little God figurines". (Or at least, we did when we were perfect. Now we're little damaged figurines, but I suspect we're still somehow recognizable.) And of course, we're genuinely capable of thought and action, unlike the figurines that we make ourselves, and we all have our own identities. In so many ways, humans are special; we're not just "really smart animals", and we're certainly a lot more than bags of chemicals and electricity. We are God's representatives here on earth.

Random thought to leave you with: Does that mean the church is an embassy? Or is it more like a High Commission?

Sunday, 3 August 2014

MUD client installation

EDIT: This is no longer the recommended installation method. Install Gypsum this way instead.

RosMud is still being partially supported, even though I'm not planning to do any major development on it. There is an issue with the current installer and some of the newer Windowses (most notably Windows 8) as regards security settings; the main program runs fine, but the installer is rejected. The simplest solution is to unzip the archive manually. Start by downloading this, which is exactly the same code but without the installer:

http://www.kepl.com.au/esstu/programs/rosmud170.zip

Then unzip that into c:\RosMud, overwriting any files you have from a previous installation. Don't worry, all your settings are safe! You should now be on RosMud 1.7.0.

But there's a better option, and that's to install Gypsum. Installation instructions can be found here:

https://github.com/Rosuav/Gypsum/blob/master/README.WIN
https://github.com/Rosuav/Gypsum/blob/master/README.OSX

Yes, Gypsum officially supports Mac OS X (the instructions are specific to OS X Mavericks, as that's all I've tested on, but may work on other versions too). Gypsum also supports Linux, and in fact that's where I do most of my development, but as there are so many Linux distros, it's harder to give step-by-step instructions. Check your package manager (apt, synaptic, yum, pacman, etc) for Pike and git; if you can get Pike 7.8.866 or 8.0, that would be ideal. Then clone the Gypsum repository and run Gypsum!

$ git clone git://github.com/Rosuav/Gypsum
$ cd Gypsum
$ pike gypsum.pike

If you're comfortable compiling C projects from source, building the very latest Pike will often improve Gypsum. Talk to me directly about why that is, or just spin yourself up a Pike 8.0.3 (as of 20140803) and see how things go.

The last time I posted, Gypsum didn't have many advantages over RosMud. That has now changed.

* The plugin interface is far less fragile than RosMud's, meaning that Gypsum doesn't have RM's occasional tendency to crash. It's also easy enough for anyone to work with - you don't need a C compiler now.
* Gypsum works with Unicode, rather than Windows-1252. You can work with text in other languages (even RTL languages like Arabic, although imperfectly), symbols and emoticons from the upper reaches of Unicode, everything. All text is sent UTF-8 encoded, as per many other clients and internet standards.
* Lots of ancillary information that RosMud had separate windows for is now on the status bar. Wastes less screen real estate that way.
* The Threshold Time Clock is now a full-on timezone conversion tool. If you don't use Thresh, you can still make use of this; it understands "local" (meaning your own time), "Thresh" (time in Threshold RPG), and every timezone in the Olsen database, like "America/New_York" or "Europe/Madrid". Conversions between timezones can be done extremely easily.
* Support for proportionally-spaced fonts. Probably not something you really want to do with MUDding, but if you like text to lay out that way, go for it.
* Command history search. Type the beginning of a command, hit Ctrl-Up, and it'll find commands you entered that start with that prefix.
* Idle killer / keep-alive. (This is the same as RosMud has, but is an advantage over most other MUD clients.) This is fully compliant with the rules of Threshold RPG, and does not affect the server's view of your idle time, but will help you get past routers that disconnect you for idleness.
* Numpad Navigation can use any key on your keyboard, not just the numeric keypad.
* Per-world aliases. RosMud theoretically had this, but it was never actually made available.
* Inbuilt pop-out editor. RosMud has this as a largely undocumented feature; it's now fully documented, and integrated into Minstrel Hall. (Integration with Threshold RPG would be welcomed; it will need server-side support though.)
* Settings import from RosMud. No need to throw away all that configuration you did!
* Live updates. Just choose Plugins|Update Gypsum and, normally, it'll bring you up to the most recent version! No restart required, you don't even need to disconnect.
* Quick reconnect. Just type "/c" in any tab and it'll reconnect to the world you last were connected to in that window. If you have, for instance, separate worlds for your main and alt (with autologin), this can keep them conveniently in their own tabs.
* And heaps of little features that I didn't think of while brainstorming this. :) Yeah, I know it's a cop-out, but given that I'm using Gypsum exclusively, and putting through an average of five commits (changes) per day, there are going to be all sorts of things done.

And that constant stream of improvements means there'll be more advantages as time goes on. If you're a programmer, feel free to dig around in the code; it's all open source, and should be mostly readable (there are a few obscurities here and there, but not too many). I want this to be the best MUD client for Thresh or Minstrel Hall, and you can help me make it so :)

Friday, 11 July 2014

Part IV in the Trilogy of Scientific Research

After over a year of silence, the story continues! Where are they now... deep inside a 150g box of Roses. (A rose by any other weight...) Three boxes matched this pattern consistently:

* 1 Chocolate Bliss
* 1 Hazelnut Praline Crisp
* 1 Strawberry Cream
* 1 Classic Fudge
* 1 Chocolate Supreme
* 2 Caramel Deluxe
* 1 Orange Chocolate Delight
* 1 Hazelnut Whirl
* 1 Turkish Delight
* 1 Vanilla Butter Caramel
* 2 Peppermint Cream
* 1 Cherry Heaven

We also have an unusual case of a statistical outlier. With some research into two 450g boxes, one perfectly matched the distribution from last episode, but the other had one extra Turkish Delight! Apparently the Cadbury authorities approve of our research, sending us a bonus of the best type of the entire set. Close with a Looney Tunes style focus on the FIVE Turkish Delight in a lovely small pile!

Friday, 9 May 2014

Christianity and physics

I came across a new blog recently, written by a man whose username is "Salt and Light": naclhv. He posts about Disney's "Frozen", about physics, about Christianity and salvation, and the future of science. Makes for great reading... go have a look!

What I want to focus on here is his predictions about science, based on a Christian world view. Among other statements, he declares that people are special - that we're more than just bags of chemicals or sophisticated neural algorithms. I want to go one further: This universe was built for people to observe. Yes, this entire universe has us as its focus - we are the pinnacle of God's creation, and as such, we are central to everything that this world, this solar system, this galaxy, this universe, has to show us. The heavens declare the glory of God, but it's to us, and not to animals or rocks or computers, that they declare it.

(Caveat: I am not a scientist, and some of the details of the science here may be wrong. Most of my "research" has just been reading Wikipedia. This is not meant to be a scientific analysis, but a philosophical one.)

What does that mean for science? Start with the well-known double-slit experiment: whether something's a wave or a particle depends on whether you're looking or not. Even more so, it's possible to "un-observe" between when the equipment sees something and when a person does. That is to say, it's not enough for a photon to pass through a known location based on which slit it went through; that state has to be collected and understood by a person.

In theory, it should be possible to construct an experiment in which the which-way information can be observed by a human, or by a monkey, or by a rock, or by a computer - and that, in each case, the other three entities will be unable to know which slit the photon went through. I predict that a human seeing something will collapse the quantum state, but the other three will not. That is how we are special: it is only a human's observation that "counts". Yes, this is a bald claim without any scientific basis. I might be proven wrong, but that's what science is all about anyway - make a prediction, see if you're right :)

This is similar to how virtual worlds are often built. Ray-tracing would be infinitely complex if every photon of light were simulated, so instead the simulation works backward, seeing what could possibly reach the observer (camera). In a MUD, it's common to represent connected users (observers) as primary references, and then quietly drop from memory anything that isn't referenced (directly or indirectly) from one of them; so, for instance, the room you're sitting in has to exist, because you can see it, and objects in that room have to exist in order to compose that room, but an art gallery with nobody looking at it (that's most of them, right?) could be flushed from memory and loaded the next time someone walks in. Maybe this universe is the same - if nobody's looking at that particular photon, it doesn't bother to collapse it, but if someone is, well, it needs to properly exist.

Adam's sin cursed the entire universe; if there were anything else as important as we are, then it'd be horribly unfair on it/them to have been tarred with our brush. We're not simply the next evolutionary level after monkeys, and we're definitely not just another evolutionary step along the way to an even better type of being; we are the masters of this universe. This isn't man's universe, but it's a universe for man to be king of; and it would make logical sense for the universe to take some shortcuts when it won't affect its king.

Maybe I'm right, maybe I'm wrong (more likely, a combination of both); but this is what my understanding of God leads me to expect of the universe, and that, at its heart, is science.

Wednesday, 29 January 2014

Installing Google Chrome on Debian Jessie

Today I installed the latest unstable Debian Linux (Jessie) on one of our computers, in order to be able to use a particular flat-bed scanner (needed a newer version of something than Debian Wheezy ships). That part worked beautifully, but as this is a workstation, I needed to install Google Chrome - which didn't, because of a dependency problem: Jessie ships libudev1, Chrome depends on libudev0.

So far, it appears that Chrome will run just fine with libudev1, which means that this is all that's necessary to run Chrome on Jessie:
Section: misc
Priority: optional
Standards-Version: 3.9.2
Package: libudev0
Version: 147
Depends: libudev1
Description: libudev0 dummy for Google Chrome

Run that through equivs-build (from the 'equivs' package), then install the resulting package. Chrome will then install (you may need 'sudo apt-get -f install'), but not run. Then locate libudev.so.1 (in /lib somewhere - for me, /lib/x86_64-linux-gnu/libudev.so.1) and symlink it to libudev.so.0:
sudo ln -s /lib/x86_64-linux-gnu/libudev.so.{1,0}

Et voila! Chrome working with Jessie.

Friday, 3 January 2014

RosMud version 1.7.0 - and probably last

Now that Gypsum has launched (see previous post!), I don't feel bad about not having released a new RosMud for a while. Today's release marks seven years of the project, and picks up the changes done in the last 18 months - namely, not many. One small bugfix and one small feature enhancement to the TinyURL plugin, and that's it. RosMud++ is now a working, stable product, and I'll support it for as long as is practical in terms of technical assistance and maybe bug fixes, but I'm not going to add major new features to it. Gypsum is where it's at, now!

Gypsum: New MUD client!

For some time I've been working on the official successor to RosMud. Seven years after RosMud started (to the day), I can now proudly announce version 1.0 of Gypsum!

Gypsum is intended to "feel right" to RosMud and Gmud users, and like them, it runs on Windows. Unlike them, though, it also runs and is officially supported on Linux and Mac OS (note however that Mac support is dependent on Mac testers, so I can't currently guarantee that everything works). Gypsum is open source and easy to work on, so new features can be added efficiently.

Why use Gypsum?
* Infinite scrollback (like RosMud, and unlike Gmud)
* Idle killer (ditto) - maintains a connection even when your router would kick you off, but doesn't disrupt the server's notion of idle time
* Can be updated without disconnecting from the server
* Inbuilt URL shortener will intelligently handle a number of easily-shortened addresses, and pass the rest on to TinyURL
* Comes with a character sheet engine for Dungeons and Dragons
* Handles statistical analysis and party loot splitting automatically
* Can tune out annoying people on OOC channels (Threshold RPG specific)
* Includes a pop-up editor (needs some server-side support, ideally)
* Supports simple aliases; more complicated ones (eg regular expressions) may be implemented later if there's demand
* Inline calculator: put an expression into your commands and have it evaluated, eg "say Six times nine is $[6*9], not 42!"
* Auto-synchronizing clock showing Threshold game time

For RosMud users, this is mostly "RosMud for Linux/Mac", and doesn't offer a huge number of cool features yet. But that'll change!

Download Gypsum v1.0.0, or download the most current version, or clone the repository with git clone git://github.com/Rosuav/Gypsum.git - the latter is the easiest way to keep up-to-date, if you're familiar with git.

You will need a Pike interpreter. Try your package manager first, if you have one; otherwise try pike.lysator.liu.se for your platform.

If you need help, find me on Threshold RPG - the trivia channel is perfect for this.