Boo will finish his eyeballs once and for all so he does not rise again!
EVIL, MEET MY SWORD! SWORD, MEET EVIL!!
Thursday, January 26
So to speak.
Alive and Brilliant
Posted by: Pixy Misa at
01:10 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 16 words, total size 1 kb.
Wikipedia:
The science wars were a series of intellectual exchanges, between scientific realists and postmodernist critics, about the nature of scientific theory which took place principally in the United States in the 1990s. The postmodernists questioned scientific objectivity, and undertook a wide-ranging critique of the scientific method and of scientific knowledge, across the gamut of the disciplines of cultural studies, cultural anthropology, feminist studies, comparative literature, media studies, and science and technology studies. The scientific realists disintegrated them with a laser.
Posted by: Pixy Misa at
01:19 AM
| Comments (7)
| Add Comment
| Trackbacks (Suck)
Post contains 83 words, total size 1 kb.
Wednesday, January 25
Feels like Friday.
Tomorrow's a public holiday, and I've had a hell of a week so far, so my brain was already busy planning for the weekend (sleep, set up blogs).
Um, no, brain. Not quite yet.
Posted by: Pixy Misa at
11:29 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 40 words, total size 1 kb.
Rich Burlew has been putting out the Order of the Stick on the web, for free, for 800+ pages now.
He's earned a degree of popularity in the process.
How much?
Well, he recently launched a pledge drive on Kickstarter to see if there was enough interest to reprint one of the out-of-print collected editions.
The pledge drive will run for 30 days; 3 days in, he's already doubled his target.
Posted by: Pixy Misa at
09:54 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 75 words, total size 1 kb.
Rough: InnovaEditor, the standard editor we've been using on mee.nu since the beginning, has been end-of-lifed.
Smooth: It's being replaced by InnovaStudio's new Live Editor, which looks awesome.

Smoother: Existing customers get a free license for the new editor.
Rough: The new editor doesn't come with source code, where the old one did.
Rougher: A source code license is $1099.
Roughest: Which goes up to $1500 after Saturday.
Smoothest: They're already working on the features I need, so I don't need to buy the source code license.
InnovaStudio Live Editor and InnovaStudio tech support get the coveted doesn't suck award. Recommended. Just $70 for an unlimited site single developer license.
Updates after the jump.
more...
Posted by: Pixy Misa at
10:16 AM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Post contains 436 words, total size 3 kb.
Monday, January 23
Should be required by law to offer three options: Agree, Disagree, and TL;DR.
Posted by: Pixy Misa at
08:32 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 15 words, total size 1 kb.
Sunday, January 22
Oh yes, other thing: MongoDB has indexes. And while they're not quite as flexible as CouchDB (which lets you do anything that can be produced by an idempotent function on the record) or Riak (which lets you do anything at all, consistent or not), MongoDB can do what I need, which is building an ordered compound index where one of the components is the elements of an array.

MySQL can't do that (it doesn't have arrays, to start with). PostgreSQL can't do that (it has arrays, and can index them, but can't build an ordered compound index where one component is an array). CouchDB has no problem; Riak will do anything you like; MongoDB can do it, but you can't have two arrays in the index (which would be nice to have available, but isn't going to kill me).
The other database that I know can do it - and might be suitable for Minx - is OrientDB. I'd like to take a look at that too.
But MongoDB, now that those issues have been fixed, is fast enough, flexible enough, and scalable enough. Might not be perfect, but what is?*
* Well, Kimi ni Todoke, but apart from that?
Posted by: Pixy Misa at
11:46 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 204 words, total size 1 kb.
Genki girl meets super-science flying battle robot.
Thoughts:
- Which one, though? One of the stable ones or one of the metastable ones?
- Wan.
- Where did those come from? I'm sure they weren't there before.
- Aww, now they're gone again.
- Guess it's one of the metastable ones then.
- Wan.
The robot fights are formulaic, but the characters and the character designs work for me, as does the art style generally and the music, both op/ed and incidental.
It's nothing groundbreaking, but it has a beat and you can dance... I mean, it's enjoyable enough so far.
Two and one half little fishies out of four. Wan.

Posted by: Pixy Misa at
05:44 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 115 words, total size 1 kb.
When I first met MongoDB, I was unimpressed, because in my testing it very quickly died and lost all my data. The proximate cause for this was that I was running it under OpenVZ, which will switfly kill any process that runs out of memory (which Mongo did). The reason MongoDB ran out of memory is that...
Well, it didn't, not really; MongoDB works by memory-mapping the entire database and treating it as a persistent data structure, relying on the operating system to provide the persistence layer. One problem with that is that an inopportune event at an inopportune moment can leave you with a pile of unreadable crap where your database used to be. And another problem is that OpenVZ treated it as having run out of memory and killed it... Which meant that on my test bench server - which runs OpenVZ precisely so that I can test things - MongoDB could be consistently made to crash and corrupt itself on small but realistic workloads.

Contrast that with CouchDB, the Redis AOF, or Riak's Bitcask, which are all append-only and pretty much bullet-proof: If the entire server crashes before it can write a record, well, you lost that record. But short of going in manually and deleting files, that's the worst that can happen.
So the problem I had was that while MongoDB had the closest semantic fit of all databases I'd seen to what I was trying to achieve with Minx, handing your data to it was like handing your collection of Wedgwood china to an inebriated juggling troupe - it's only a question of when. You could replicate, but then you'd have to make damned sure that the same problem didn't happen to both copies. And running it on OpenVZ was like handing your collection of Wedgwood china to an inebriated juggling troupe - and then setting your house on fire.

MongoDB now has (has for two releases, actually) a journalling facility that will replay lost writes after a power/hardware/software failure. On the whole I'd rather have a persistence mechanism that was inherently safe than an unsafe mechanism with a bungee cord attached for when it inevitably runs into trouble. But while diving off a perfectly serviceable bridge never struck me as a particularly bright idea in the first place, diving off a bridge while firmly attached to it with a bungee cord is rather less likely to end in tears and crocodiles.
Still, if you wanted to run MongoDB, you needed either full-stack virtualisation, a ton of memory, or a dedicated server. For me, the obvious solution is to add a ton of memory and leave the rest of the architecture intact. The problem with being hosted at SoftLayer is that while they offer great support and a great network, their pricing is not so great, and their memory pricing is abominable; a ton of memory costs about three tons of money.*
Apparently that's also now been fixed from the other end: The latest versions of OpenVZ (based on the Red Hat Enterprise Linux 6 branch) bring with them a feature labeled VSwap (virtual swap), which both simplifies and flexiblises memory management and keeps MongoDB under control without mandating either a fiscal or architectural arrow to the knee.

But our current server is running on RHEL 5 - actually, I think it's CentOS 5, but basically the same thing - so that requires a reinstall. And if we're going to do that, we'd want to build a new server, test it, and swap over once it's all working. And if we're going to do that, we'd be best advised to wait for a hardware refresh, which didn't happen at all for mid-range Intel servers in 2011, and still won't happen for another couple of months.
Which means... I'll play around with MongoDB a bit more, I think.
* I'm looking into alternatives if they don't smarten up their game, and quickly.
Posted by: Pixy Misa at
05:32 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 680 words, total size 5 kb.
Saturday, January 21
A game for 2-6 players ages 7 and up.
You will need: One six-sided die.
Rules:
- Each player rolls the die in turn. The resulting number is the age at which they would have died of a childhood disease now readily treatable or prevented entirely by routine vaccinations.
- The winner is all those who can rely on modern technology instead of ancient wisdom.
Posted by: Pixy Misa at
11:37 PM
| Comments (6)
| Add Comment
| Trackbacks (Suck)
Post contains 65 words, total size 1 kb.
I was struck by a thought today* and posted on Twitter:
Is the Pushmi-Pullyu** a kind of palindromedary?Then I was struck by another thought* and Googled the term palindromedary.
And got 27,000 hits.
Which is impressive and depressing simultaneously.
* Ow!
** From Doctor Dolittle.
Posted by: Pixy Misa at
10:47 PM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
Post contains 49 words, total size 1 kb.
Wednesday, January 18
Also known as spoiler.
This one is actually good - funny, well-written, well-acted, beautifully drawn, and willing to hit the tropes head-on or dodge them balletically as its whim takes it.
One thing that intrigued me while watching the show was when it was set. One, no cell-phones or computers anywhere; can't be twenty-first century. Two, skirt length, can't pre-date the mid-60's. Architecture (the school has a large, curving glass wall, for example) and transport (the very few cars we see are neither boxy nor sleekly curved) both suggest the 80's or 90's. The male lead has a Super-8 film camera, and it's not highlighted as an anachronism, which points to the early 80's. But there are shelf stereos - CD only - and the cordless phones are bulky but not that bulky, which suggests at least the late 80's, probably the 90's.
That aside, it has a busty redhead, a tomboyish girl who goes hmph, and a twintailed girl who goes ufufufu.
Oh, and railcars. All in all, it's a real throwback, a 90's style comedy with 2012 production values, and definitely one I'll be watching.
A solid three little fishies out of four.





Posted by: Pixy Misa at
11:35 PM
| Comments (6)
| Add Comment
| Trackbacks (Suck)
Post contains 221 words, total size 2 kb.
Papa no Iukoto wo Kikinasai! Also known as Oh, right, the whole of Wikipedia is blacked out.
A college-aged boy ends up looking after his niece and step-nieces after their parents are lost in a plane crash. Some genuine moments of comedy and tragedy, but the storytelling is heavy-handed and it strays too close to ick territory for my liking.
Could be worse. Knowing the Japanese, could be a lot worse.
Two little fishies out of four. Maybe half a point more if we get to see more of the monorail. Monorails are good.
Posted by: Pixy Misa at
11:21 PM
| Comments (4)
| Add Comment
| Trackbacks (Suck)
Post contains 97 words, total size 1 kb.
more...
Posted by: Pixy Misa at
08:39 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 3 words, total size 1 kb.
Monday, January 16
One of the things I like most about CouchDB is its index definition mechanism: Javascript.* For each index you want to attach to a database, you write a short Javascript function that assembles the key (or keys) from the fields in the record. CouchDB then manages the underlying B-Tree based on those key values.
This means that if you want to index an array, or a user-defined data structure, or build a partial index, or a full-text index, or anything that can be implemented on top of a B-Tree, you can do it. Write the code once and CouchDB will ensure that it's applied consistently. Far more powerful than standard SQL indexes, and much cleaner and more efficient than using secondary tables, joins, and stored procedures, which are the canonical way to tackle this problem with SQL.
As of version 1.0, Riak supports indexes as well as the basic key/value access and link walking. The way Riak handles things is slightly different to CouchDB.
In CouchDB, each record is a JSON document. Since that's predefined, CouchDB can allow you to inspect the contents of the records and manipulate them using an embedded Javascript interpreter.
In Riak, records are arbitrary binary-safe blobs; you can store anything you want without having to encode it in any special way. To index your records, you provide the index names and values along with the record.
Just like CouchDB, this allows you to build indexes in any way you like. Riak stores the index values twice, once in the index structure and once as metadata alongside the record, so that it can maintain index consistency on updates and deletes without you having to worry about it.
You can have as many indexes as you like (the developers note that they've tested it with 1000 indexes), and like CouchDB, you can do anything you can do with a B-Tree (or rather, with an arbitrary number of B-Trees).
It's a very powerful feature.
* Lua would be better, of course.
Posted by: Pixy Misa at
01:35 AM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
Post contains 338 words, total size 2 kb.
Saturday, December 31
Redis is cool. Erlang is... There are some really cool apps written in Erlang.
Edis is Redis in Erlang.
It's protocol-compatible (with a few caveats); that is, an application written to use Redis will run happily against Edis.
But it uses an on-disk, log-structured database (Google's LevelDB, in fact) rather than an in-memory datastore. So it's not as fast, but it's not limited by the size of your memory either.
Posted by: Pixy Misa at
04:15 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 74 words, total size 1 kb.
Thursday, December 29
While I'm posting Youtube videos of stuff I'm slightly too young to remember, I sure remember this:
But I don't think I ever saw this:
[wavy lines]That was such an awesome show.[/wavy lines]
Posted by: Pixy Misa at
12:08 AM
| Comments (8)
| Add Comment
| Trackbacks (Suck)
Post contains 32 words, total size 1 kb.
Wednesday, December 28
We're all familiar with this, of course:
But I'm apparently just a little too young to remember this:
Or, for that matter:
more...
Posted by: Pixy Misa at
11:18 PM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Post contains 28 words, total size 1 kb.
If anyone's interested - and has too much time on their hands - Terraria is $2.49 on Steam today, 75% off.
And it's a bargain at full price, if you like exploring and shaping new worlds, so at that price it's a steal.
Posted by: Pixy Misa at
09:35 AM
| Comments (4)
| Add Comment
| Trackbacks (Suck)
Post contains 45 words, total size 1 kb.
Tuesday, December 27
So I was looking for something to do while my keyboard dried out* and this is what I found: The best explanation of what Terraria is about that I've yet seen.**
* I spilled my drink on it, after which it wasn't working terribly well, so I took it outside and hosed it down to get the sugary liquid out... And now it doesn't work at all. I'm typing this on the spare PS/2 keyboard I keep for when the BIOS decides it can't see my usual wireless keyboard.
** For values of "best" slightly skewed from normality.
Posted by: Pixy Misa at
07:09 PM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 101 words, total size 1 kb.
Sunday, December 25
Doesn't apply in Terraria-land. I rescued the wrench wench (the Mechanic) from captivity and can now start building fancy stuff. I have a bomb factory (churns out a new bomb every ten seconds, very handy since they cost 5 silver coins each) and I just tried setting up a little fountain outside Pixy Base.
And turned it off before it flooded my house: More water comes out the outlet pump than goes in the inlet pump.
I can think of some interesting uses for that...


Posted by: Pixy Misa at
09:19 PM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 111 words, total size 1 kb.
I've been playing Terraria again.
Today I've managed to knock off the first two bosses (the Eye of Cthulhu and the Eater of Worlds), score a full set of Demonite items (sword, axe, hammer, pickaxe, bow, helmet, armour, greaves), and have enough ore left over from my mining expedition to afford a Minishark ("Half shark, half gun, completely awesome.")
Skeletron awaits.
For those who haven't played it, Terraria is what Nethack would be if it were reimagined as a 2D platformer around 1992.* I haven't yet got to the neat parts where you can build mechanical widgets like the obsidian generator or the goldfish dispenser: I have to rescue the game's wrench wench from the Dungeon where Skeletron stands guard, and pre-shark, I got splatted fairly quickly.
Update: Twenty minutes later, Skeletron is no more. What a difference full-auto makes! Particularly if you're upgrading from an axe...
* Though it would have been rather impractical the way it's actually implemented - with a large world, the game uses around 600MB of RAM, which would have cost something like $20,000 at that time.
Posted by: Pixy Misa at
12:05 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 187 words, total size 1 kb.
Thursday, December 22
This is real code:
# Python
def readfile():
for line in open("/some/file"):
yield line
# Ruby
readfile.to_enum.each do |line|
puts line
end
# Python
def iterate_list():
for item in [ 1, 2, 3 ]:
yield item
# Ruby
items = []
iterate_list.to_enum.each { |item| items << item }
puts items == [ 1, 2, 3 ] # => trueAt least, it's real code if you are running RubyPython.You can embed JavaScript in Ruby, and Lua in Python, so that gives you four languages in a single environment. Five if you count CoffeeScript, which is a CoffeeScript to JavaScript compiler written in CoffeeScript.*
And you can of course chain things so that Lua can call back to Python which calls back to Ruby which calls a CoffeeScript function which you precompiled to JavaScript.**
* They used magic.
** Because it was there.
Posted by: Pixy Misa at
01:26 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 133 words, total size 1 kb.
Wednesday, December 21
Dead.
Well, that and playing mining engineer, but mostly just dead.
Posted by: Pixy Misa at
12:12 PM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Post contains 13 words, total size 1 kb.
Saturday, December 10
NooooOoOo 12/9 (Fri - 8:25): Did you DG summon the AgentBrand? Because when he said last drop, he also said badger, so I was kinda thinking he meant the Frozen Rose. He also said it after the last Zenovia went down too...
Mappy 12/9 (Fri - 8:50): Anyone with The Beast, remember to get your Fresh Fruit today.
Cactusshin 12/9 (Fri - 9:09): No--it's just a freak coincidence. Once my WKai goes down, I plan on summoning Jasticus, Fayt, and Zenovia for my own ultra badger.
Posted by: Pixy Misa at
01:16 AM
| Comments (8)
| Add Comment
| Trackbacks (Suck)
Post contains 89 words, total size 1 kb.
Powered by Minx 1.1.4-pink.









