What is that?
It's a duck pond.
Why aren't there any ducks?
I don't know. There's never any ducks.
Then how do you know it's a duck pond?

Sunday, April 27

Geek

To Sleep, A Chance To Successively Approximate

I'm sure that many of my readers are quite capable of figuratively extracting square- and cube-roots in their sleep, but does anyone else literally do this?

Just woke up from a nap with an accurate but unhelpful answer to a problem in my head...

Posted by: Pixy Misa at 07:36 PM | Comments (1) | Add Comment | Trackbacks (Suck)
Post contains 51 words, total size 1 kb.

Saturday, April 26

Geek

No Habla PHP

Just got a spate of error reports from Minx...

Because someone's trying to run a phpBB attack against my blog.  The gobbledegook that's supposed to decode into a code injection decodes instead into a request for a null page, which raises an exception.

Posted by: Pixy Misa at 03:13 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 46 words, total size 1 kb.

Friday, April 25

Geek

Of Cheetahs And Men

A little background is needed for this one.

I was recently arguing in the comments at LGF with someone who claimed that the Theory of Evolution provided the basis for the Holocaust, much as Ben Stein does in Expelled.

He (the commenter, not Stein) provided a blatantly racist quote from T. H. Huxley in support of this claim.  I countered that Huxley was morally and scientifically wrong; that such racism was endemic in the mid-19th century, even among abolitionists; and that the quote was taken from an essay Huxley wrote arguing for the abolition of slavery.  And I provided a similarly racist quote from a abolition speech by Abraham Lincoln.

So said commenter asked me - rather condescendingly - what grand change had taken place in Evolutionary Theory since Huxley's day to make him scientifically wrong in this.  And I pointed out that while race is a valid evolutionary concept, it doesn't apply to humans, because we lack sufficient genetic diversity.  We're all one race.

The response asked, don't I think that this is miraculous?  Clearly implying the hand of you-know-who.

And I said no; it just means we went through a genetic bottleneck in recent times, evolutionarily speaking.  Much like cheetahs, which almost went extinct.  But, I speculated, humans are more diverse than cheetahs, so we likely weren't as close to extinction as they.

But still too damn close for comfort.  Just 70,000 years ago, our species may have been reduced to as few as 2000 individuals.

(via Slashdot)

Posted by: Pixy Misa at 11:57 AM | Comments (6) | Add Comment | Trackbacks (Suck)
Post contains 254 words, total size 2 kb.

Wednesday, April 23

Geek

Nonstandard Library

/images/new_pet.png

(xkcd, obvy.)

Posted by: Pixy Misa at 01:23 PM | Comments (4) | Add Comment | Trackbacks (Suck)
Post contains 4 words, total size 1 kb.

Sunday, April 20

Geek

The Only Thing Worse

Than an ever-expanding cloud of rogue self-replicating robots is an ever-expanding cloud of rogue FTL self-replicating robots.

That can really ruin your entire day.

Posted by: Pixy Misa at 02:30 AM | Comments (6) | Add Comment | Trackbacks (Suck)
Post contains 28 words, total size 1 kb.

Wednesday, April 16

Geek

Pixy's Actually Useful Tip Of The Day, Part Two

If you INSERT IGNORE into a MySQL table with an auto-increment primary key, the counter will increment even if the INSERT is IGNORED due to a duplicate secondary index.

And if you're abusing this process in horrible ways, you can pretty quickly wrap a 32-bit int, in which case all your INSERTS will be IGNORED.

Solution: Use a 64-bit int.

Hey, I'm not saying it's a good solution.

Posted by: Pixy Misa at 06:20 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 77 words, total size 1 kb.

Monday, April 14

Geek

Pixy's Actually Useful Tip Of The Day

MySQL will automatically convert integer values into strings when needed.

Mostly.

When you are supplying an index key, it will do the conversion, and actually work, but the query analyzer won't recognise it and won't use the index.  Even if you use a FORCE INDEX clause.

Yay for subtle but deadly behaviours.

Posted by: Pixy Misa at 11:36 PM | Comments (2) | Add Comment | Trackbacks (Suck)
Post contains 59 words, total size 1 kb.

Geek

Pixy's Tip Of The Day

If you create something twice, the second time you may find it is already there.

Posted by: Pixy Misa at 10:52 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 20 words, total size 1 kb.

Tuesday, April 08

Geek

I Can Has Annex M

My ISP - iiNet - just announced (as of April 1) that they are now supporting ADSL2 Annex M, which increases the upstream bandwidth from 1Mbps to 3.5Mbps.  (Well, up to 3.5Mbps, depending on your distance from the exchange and overall line quality, but I'm pretty close to the exchange and have good S/N and attenuation levels.)

To do that, I first needed to upgrade to a business plan, which cost an extra $eek per month.  Before, the only worthwhile extra I got with the business plan was a static IP, which I desperately needed but which wasn't worth $eek per month.  Now I get a static IP and much faster uploads (plus less useful stuff like priority support), so I jumped on it.

Twice.  Maybe three times.  I tried to used the online plan changer thingy, but it refused to work, so I left it for another day.  Only today I got an email billing me the extra business plan fees, and when I looked, there it was, a little tick box for enabling Annex M.

First I have to swap the modem.  My old DG834v2 doesn't support Annex M, but my new DG834Gv4 does.  Only they're on the wrong lines, respectively.  Once that's done, though, whoosh.

Update: Weird.  I swapped the modems around, and ended up with two perfectly functional connections, instead of the expected zero.  This probably means I'll get hit by a bus tomorrow.

Posted by: Pixy Misa at 02:53 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 243 words, total size 2 kb.

Monday, April 07

Geek

Time Trials

I've been doing some benchmarking of Minx 1.2a5 (the latest alpha) against 1.1.1 (the current live version) before I commit to code-freeze and a very short beta.  After a little tweaking, the scores look like this:
374kb generated in CPU 0.4, elapsed 0.4216 seconds.
113 queries taking 0.1052 seconds, 645 records returned.
Powered by Minx 1.2a5.
374kb generated in CPU 0.4, elapsed 0.4102 seconds.
110 queries taking 0.0707 seconds, 633 records returned.
Powered by Minx 1.1.1-aoi.
I was getting very worried an hour ago because the times for the 1.2 code were coming out 60% slower than 1.  That would have sent me back to do a couple more weeks of profiling and performance tweaks.

Then I remembered that I'd turned off the JIT compiler to do a code coverage analysis.  Turned that back on, and got the results you see here.

We've lost about 11 milliseconds overall in this benchmark, of which
35 ms went to database queries.  Which means that excluding database queries, it's actually faster.

On the database side of things, well, I'm now pulling in one or two additional joins on the most common queries to provide the necessary data for cross-site and multi-site functionality and the expanded comment (and related item) listings.  The query time shown in the stats includes not just the database time, but also the processing of the data into native structures on the application side.  That accounts for about a 25% increase in query processing time; where the other 25% went I'm not quite sure yet.

But the bottom line is that despite a whole raft of new features, Minx 1.2 is within a couple of percent of the speed of 1.1.  And if I can just find one more performance tweak...

Posted by: Pixy Misa at 05:04 PM | No Comments | Add Comment | Trackbacks (Suck)
Post contains 290 words, total size 2 kb.

<< Page 1 of 2 >>
71kb generated in CPU 0.0507, elapsed 0.2094 seconds.
55 queries taking 0.1968 seconds, 372 records returned.
Powered by Minx 1.1.6c-pink.
Using https / https://ai.mee.nu / 370