Monday, November 30
With a kitten.








Posted by: Pixy Misa at
01:38 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 5 words, total size 1 kb.
Sunday, November 29
Forge. I mean, Filter Forge.
For $49 (it's currently half price; I paid $99) you get 6702 Photoshop filters.
Not all of them are useful, but there's 6702 of them. If I only find a use for 60 of them for my theme library, that's as many as Photoshop and the Alien Skin library combined.
Update: Playing some more with FilterFrog. The filters range from humdrum to how did they do that?! Many of the effects are both striking and attractive. I'm tempted to upgrade to the Pro version, even though it doesn't really give me any features that I actually need. (It does allow you to edit the filters and create your own, and work with very high resolutions, but with 6702 existing filters I don't really need the former, and for web work I don't really need the latter.)
Update: The Starter, Basic, and Standard versions support two cores; the Pro version supports as many as you have. That does make it more tempting, because some of these filters aren't terribly fast.
Posted by: Pixy Misa at
02:05 PM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 175 words, total size 1 kb.
Meet Strawberry and Pocky.

She's a crazy gun-wielding notary public. He's an endangered Iberian Lynx on the run from the mob.
Together, they blow the crap out of monsters.
Posted by: Pixy Misa at
01:16 AM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Post contains 35 words, total size 1 kb.
Saturday, November 28
Photoshop's batch processing allows me to apply multiple effects to each image, and save the results of each effect to a different director. So I can set the whole thing up to run as a single process.
So each time I add new images to the library, I don't have to run 40+ different batch jobs, just the one. Which is 40+ times less work for me.
Don't know if my CPU is ever going to forgive me, though.
Update: Must remember to include "close image" command at the end... Otherwise it doesn't.
Posted by: Pixy Misa at
10:40 PM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Post contains 96 words, total size 1 kb.
So I was binkling merrily away in Snap Art 2 and found an oil painting effect which I quite liked, and applied it to a sample photo to see the results full scale, and
BEEEEEEEEEEEEEEEEEEEEE
What the?!
Okay, it's stopped now. Sounded like maybe something got stuck in a fan? Don't know. I mean, it couldn't have been anything to do with the program, after all, if I undo it and do it ag-
BEEEEEEEEEEEEEEEEEEEEE
Oh.
Where's that coming from? I didn't think I had the case speaker hooked up. It doesn't seem to be coming from the main speakers. Let's crank this image up to 4x size and redo the filter, so that I have time to track it down -
BEEEEE BEEEEEEEEEEEEEEEEEEEE BEEEEEEEE
It's coming from the motherboard. Aha! It's the CPU temperature alarm. It's the first time I've run heavily multi-threaded floating-point code, and it's been a warm day, so I've probably had the alarm set too low all along and this is just the first time I've tripped it. I'll just reboot, bump up the temperature alarm in BIOS to whatever the next higher setting is, and all should be well.
Hmm, currently set to go off at 70°C. I can bump that up to 80°C, but that seems rather high. Still, my CPU is rated to run at what, 85°C? So that's okay.
(Actually, it's not - after rebooting and looking it up, it's only rated for 61°C. Older AMD chips were indeed rated that high, but more recent chips are generally in the 60-70°C range. Anyway...)
La la la... (Prepares dinner while Windows boots.)
So open Photoshop, open the image, run the filter ag-
BEEEEEEEEEEEEEEEEEEEEE
Crap.
Well, let's find a program that will tell me what the CPU temperature is so I can see what the alarm should be set to.
Okay, CPU temperature is 35°C (and ambient is 25°C), and it jumps up to
BEEEEEEEEEEEEEEEEEEEEE
43°C for a couple of seconds when I run the filter. In other words, the temperature alarm is worse than useless.
So I'm going to shoot it.
Update: Yup, that did the trick. Bumped the image up to 5x size (so 25x the number of pixels) and re-ran the filter, which took a while. Temperature climbed to 53°C, which tells me not to run heavy multi-threaded floating-point apps when the ambient temperature is over 33°C. (If it's linear that way, which it almost certainly isn't.) But if room temperature is comfortable for me, it's comfortable for my CPU, no matter what I do to it.
Also of interest is that my CPU is spending most of its time running at half speed. The little temperature monitoring app I downloaded shows me the clock speed of each core. I thought it had it wrong, because it showed them at 1.2GHz. But when Photoshop gets busy, they go up to 2.4GHz, and then drop back down again afterwards. And single-threaded apps push just one of the cores up to full speed. So AMD Cool&Quiet™ really is good for something other than messing up the clock in VMWare.
Posted by: Pixy Misa at
12:40 AM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Post contains 528 words, total size 3 kb.
Friday, November 27
So, I have a library of images to process through a library of filters in a range of different sizes (for the Minx 1.2 theme gallery).
Photoshop has a batch mode that's a little awkward but not too painful. But the actual processing of 2500 images at a time is not quick.
Then I upgraded my copy of Snap Art to the new version, which supports multiple cores.
On my quad-core CPU it runs about four times as fast. Fancy that.
I'm still trying to reproduce the "Colourful Abstract Pencil Sketch" preset in the new version (all the presets are different). But since the new version doesn't overwrite the old, I can just run that one the old way.
Posted by: Pixy Misa at
05:50 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 120 words, total size 1 kb.
Thursday, November 26
My KVM works perfectly. The problem was that (a) I had Nagi connected on port 3 rather than port 1, and (b) the USB connection to Nagi was loose so it wasn't registering.
Since I only had Nagi switched on when I first tested it, all I got was a blank screen - the KVM doesn't pass through the video if there's no USB connection.
Now I just need to swap around the cables to the intended order (from Haruhi-Yurie-Nagi-Tanarotte to Nagi-Haruhi-Yurie-Tanarotte, ick) and all will be well.
But first I have a report to write for work, and then some spammers to kill.
Update: And when I say it works perfectly, I mean if you don't mind having your monitor randomly blank out or change resolutions. Bleh.
Posted by: Pixy Misa at
01:48 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 129 words, total size 1 kb.
Monday, November 23
He said as his roof blew off...
Well not quite. But 42° ten hours ago, and 21° now. You don't get that much of a shift without a certain amount of atmospheric disturbance.
With any luck, my neighbour's blasted windchime will blow away too.
Posted by: Pixy Misa at
12:42 AM
| Comments (2)
| Add Comment
| Trackbacks (Suck)
Post contains 51 words, total size 1 kb.
Sunday, November 22
Well, it's a whole lot cleaner under there, and somewhat better organised. But the KVM switch seems disinclined to, well, switch, or indeed to K or V or M, which kind of defeats the exercise.
I do have considerably more legroom now. And I swapped my keyboard for a new one while I was at it, so it's no longer an all-you-can-eat buffet for ants.
Oh well. I could always read the manual, I guess.
Posted by: Pixy Misa at
10:01 PM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Post contains 78 words, total size 1 kb.
If it's 42° in November, you could equally be in Sydney or Minneapolis.*
If during such weather conditions you find a venomous spider** while cleaning under your desk, probabilities favour the former.
* As I write this, that is indeed the temperature in those two metropoli.
** Only a redback; in other words, deadly but not dangerous. I promptly reduced it to a brown smear. A funnelweb would have seen me vacating the vicinity with extreme precipitousness.
Posted by: Pixy Misa at
03:29 PM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 80 words, total size 1 kb.
Saturday, November 21
Linux gets the job done. It may not be actually good in comparison with what is possible, with what has been achieved in the past (and indeed the present) in some minicomputer and mainframe operating systems. But it turns inexpensive commodity hardware into a powerful and flexible computing platform.
And it doesn't require a reboot to change the hostname.
Posted by: Pixy Misa at
11:53 PM
| Comments (6)
| Add Comment
| Trackbacks (Suck)
Post contains 62 words, total size 1 kb.
Yurie is now up and running with Fedora 12, which - apart from the complete failure of software RAID on the boot partition - is quite nice. The video driver issues of 9 and 10 are gone (this was already fixed in 11) and the latest version of KDE, while still plagued by some terrible design choices in its application menu, is certainly pretty.
So now I'm installing Windows 2008 R2 on Haruhi. And look! Complete failure of software RAID on the boot partition! The motherboard supports "fakeraid", and has a driver for Windows 2003, but I can get the installer to even acknowledge the existence of the driver disk, much less load the driver.
Windows Server supports software RAID (as distinct from motherboard fakeraid), but there's no install-time option for that at all.
I think you can clone a drive into a RAID-1 set once installed. We'll soon find out, anyway.
Update: Oops. Picked the wrong install option and got Windows without windows. Starting again...
Update: Yes, you can mirror the system volume after install; indeed, once you find the right place (computer management, not storage management) it's quite painless.
I think, as with Yurie, this will protect the operating system and my data, but the system will not be bootable if the boot drive fails. Still, not too shabby. Also, it only seems to have RAID-1, so I'm left with a 750GB mirrored system volume and a single 750GB unprotected disk. I guess that can be for backups.
Now all that's left is to pull the capybara's nest of cables from under my desk, vacuum, and then plug all four computers into the KVM switch.
Update: Oh yeah, there's still the question of what to do with Nagi, with its three 1.5TB Seagate InstaBricks™ (the 7200.11).
These drives have two major firmware problems: First, they intermittently suffer from lengthy delays, which can cause problems if they're in a RAID array - they get marked as failed. Second, there's a bug where if you're on the last entry of the SMART event log ring buffer when you power up, it writes to the following memory location rather than the first buffer location, and permanently bricks itself.
There's a firmware upgrade, but the first couple of releases of the upgrade also bricked the drive. So for the past year my strategy has been frequent backups and try not to think about it.
I'm inclined to pull them out and replace them with a six-disk RAID-5 array of 1TB Seagate 7200.12 drives, which is what Tanarotte has. Bit expensive though.
Posted by: Pixy Misa at
01:08 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 432 words, total size 3 kb.
Friday, November 20
If you install Fedora 12 with /boot on a RAID array - either as its own
partition or as part of a root partition that is on a RAID array - and
also install the bootloader to that partition rather than to the system
MBR, the partition will not be marked as bootable, as it should be.
This renders the installed Fedora unbootable. To work around this
issue, you must manually mark the appropriate partition as bootable
with a tool such as fdisk.Yeah, I NOTICED.Of course, this is the default behaviour. Nice testing there.
Yeah, I know, open source, plenty of betas etc etc. But you'd think someone would have bothered to actually install it at some point.
Update: Oops, I'm wrong. The default behaviour is to install the bootloader to the MBR. However, that doesn't work either. I'm now trying it with the bootloader actually on the RAID array. If that doesn't work, I'll try fdisking it with the rescue CD. If that doesn't work, then screw it, I'll run an un-RAIDed boot partition. Of course, by that point I will have installed it SEVEN TIMES.
Update: The Fedora installer is a blight.
Apart from being entirely unable to set up a proper software RAID boot partition (something Linux has supported for years), it crashed twice during disk partitioning,* once skipped the package selection stage entirely, and once failed to load the video driver. Oh, and once it just failed in the middle of the install process with a read error, though that's not necessarily its fault.
On top of that, the install menu doesn't support my keyboard. The keyboard works in BIOS, works after the install menu, but won't work in the menu itself. I had the exact same problem in openSUSE, though... Actually, openSUSE also failed to boot after installation just like Fedora.
Anyway, what with three failed attempts to get a working RAID /boot, one trial of a non-raid /boot, one trip into rescue land, one read error, and four outright installer failures, it's taken me ten tries to do a fairly simple install of a modern version of Linux. And that's ignoring the failure with openSUSE. And I'm hardly an inexperienced user; I've been using Linux continuously since RedHat 6.1.
This is just crap.
* Not an outright crash, but the installer's error handling is basically nil. At the first sign of trouble, you get a dialog box that allows you to reboot. No options, just reboot.
Posted by: Pixy Misa at
11:38 PM
| Comments (5)
| Add Comment
| Trackbacks (Suck)
Post contains 418 words, total size 3 kb.
Thursday, November 19
It's Doctor Who. And Doctor Who is better than no Doctor Who. This does not imply, however, that it is actually good.
Posted by: Pixy Misa at
12:07 AM
| Comments (4)
| Add Comment
| Trackbacks (Suck)
Post contains 29 words, total size 1 kb.
Monday, November 16
This is the police. We have you surrounded. Put down the regex and step away from the keyboard.
Posted by: Pixy Misa at
08:25 PM
| Comments (3)
| Add Comment
| Trackbacks (Suck)
Post contains 31 words, total size 1 kb.
That Anime Blog reviews episode 6 of Kimi ni Todoke.
SMASHED INTO ATOMSSpot on. KimiTodo is the second coming of Gurren Lagann.
Posted by: Pixy Misa at
08:16 PM
| Comments (7)
| Add Comment
| Trackbacks (Suck)
Post contains 24 words, total size 1 kb.
When you're used to maintaining Linux boxen on the other side of the planet (I'm in Sydney, the servers I herd are variously in Seattle and Dallas) it's amazing how responsive a server that's five metres away (as the packet routes) can be.
When you've just spent four days working on a server five metres away, though, it's no fun to come back and work on machine three thousand times that distance. No fun at all.
Posted by: Pixy Misa at
02:24 PM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Post contains 84 words, total size 1 kb.
It's no Kimi ni Todoke, but 'tis enough, 'twill serve. At least they have someone who can cry for the crying part.
Update: Okay, you got me. I roofled.
Posted by: Pixy Misa at
01:57 AM
| Comments (4)
| Add Comment
| Trackbacks (Suck)
Post contains 31 words, total size 1 kb.
Sunday, November 15
openSUSE locks up at the start of installation. Feh.
I'm going to play with Citrix XenServer now, and see if that's any good.
Update: XenServer is good, except that they go out of their way to make it hard to use software RAID, and they officially support exactly one RAID controller. So if you don't have a 3Ware 9650SE, it's not much good to you.
Mmph. Fedora 12 is out in three days.
Posted by: Pixy Misa at
02:21 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 74 words, total size 1 kb.
Take your standard high school teen romance angst-fest... And attach a JATO unit and smash it into the side of a cliff at 600MPH where it explodes into a shower of rainbow-coloured sakura petals.
This one is actually good. Double bonus points for teenagers who aren't all jerks and/or idiots by default.
Update: Okay, so Sawako's pretty much a poster-girl for but the show carries if off with such grace and charm that it... Um... Comes out charming and graceful.
Update: Oh, and some really gorgeous artwork.
This is also a 12-episode series, but unlike Nyan Koi, I think I'm going to miss it when it's over.
Update: I'm quite taken with the score as well.
Posted by: Pixy Misa at
02:14 AM
| Comments (6)
| Add Comment
| Trackbacks (Suck)
Post contains 121 words, total size 1 kb.
This is actually enjoyable. Not ground-breaking, but fun. The incipient harem is countered by the fact that our hero knows who he likes, and so do most of the girls. And the cats are, well, cats.
It's only a 12 episode series, which is a good thing - the premise couldn't sustain much more (or at least, not without more inventive writing than we've seen so far). Will keep watching this one.
Posted by: Pixy Misa at
12:07 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 74 words, total size 1 kb.
Saturday, November 14
I'm rebuilding all my computers over the next few weeks - Haruhi, Yuri, Nagi and Tanarotte are all set the be backed up and reinstalled, and Potemayo to at least be upgraded.
Nagi and Potemayo will be going to Windows 7, that's pretty simple.
Haruhi most likely to Windows Server 2008 R2. (It costs me nothing, and I want to play with SQL Server.)
Tanarotte will be going to CentOS 5.4. It currently has 5.3, but the installation was done in something of a rush so I'm going to wipe it and reinstall with a little more care. That will be my main development/test systems (and a 5TB file server as well), running OpenVZ to provide multiple virtual test
environments.
And Yurie will be going to... Either Fedora 12 (though I haven't been too impressed with Fedora lately; the user interface has taken major steps backwards) or Kubuntu 9.10 (don't like Gnome) or openSUSE 11.2 (I haven't used SUSE in years, but I have a chameleon plushy here somewhere). Leaning towards the lizard right now.
Oh, and I have a four-port DVI/USB KVM switch too. Only the single monitor version; there's a dual-monitor version, but it costs $600... And only one of the computers actually has dual-DVI out; the rest are DVI+VGA.
Update: Tanarotte is happily reinstalling now. Since I can do that while preserving the 3.2TB of files I've already loaded up, it should be pretty quick and painless.
Update: Pretty much painless, except when I tried to add CentOS Extras during install and the installer dropped dead. Up and running with the file share intact and OpenVZ installed and updated to the latest stable kernel. Now I just need to refresh the backups of Haruhi and Yurie and I can attack them too.
Update: Yurie backed up. Moving on to Haruhi.
Posted by: Pixy Misa at
12:06 PM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 306 words, total size 2 kb.
Friday, November 13
Meh.
You seen one flock of rocket-propelled panties overtaking an SR-71 Blackbird, you seen them all.
Posted by: Pixy Misa at
06:05 PM
| Comments (1)
| Add Comment
| Trackbacks (Suck)
Post contains 19 words, total size 1 kb.
Thursday, November 12
Code
Resultsimport lua
import time
N=100000
t0=time.time()
def timer(f,n):
t0=time.time()
f(n)
print f.__name__, time.time()-t0
def pyinc(n):
a=0
for i in range(n):
a+=1
def pyclassinc(n):
a=myclass()
for i in range(n):
a.inc()
def luainc(n):
lua.execute('a=0')
for i in range(n):
lua.execute('a=a+1')
def luabulkinc(n):
lua.execute('a=0')
lua.execute('n=%s' % n)
lua.execute('for i = 1,n do a=a+1 end')
def luaclassinc(n):
lua.execute('a=python.eval("myclass()")')
for i in range(n):
lua.execute('a.inc()')
def luabulkclassinc(n):
lua.execute('a=python.eval("myclass()")')
lua.execute('n=%s' % n)
lua.execute('for i = 1,n do a.inc() end')
def luasandboxclassinc(n):
lua.execute('a=python.eval("myclass()")')
lua.execute('python=nil')
lua.execute('require=nil')
for i in range(n):
lua.execute('a.inc()')
class myclass(object):
def __init__(self):
self.value = 0
def inc(self):
self.value+=1
timer(pyinc,N)
timer(luainc,N)
timer(luabulkinc,N)
timer(pyclassinc,N)
timer(luaclassinc,N)
timer(luabulkclassinc,N)
timer(luasandboxclassinc,N)
pyinc 0.0194What does this all mean?
luainc 0.5534
luabulkinc 0.013
pyclassinc 0.071
luaclassinc 0.7851
luabulkclassinc 0.2597
luasandboxclassinc 0.7885
Well, first, Minx is getting a real scripting language. You can program stuff using the template language (real programming as opposed to just doing data selection and layout) but it gets hairy pretty fast.
Second, the scripting language runs faster than the application language - or would, except that the application is run using a JIT compiler. There's a JIT compiler for the scripting language too, but I don't know how to get that working as an embedded environment.
Third, the work I'm doing to make the Minx code simpler and more efficient - via a set of "magical" classes that do lazy evaluation for all the database-to-template-tag translation - transfers directly to the coming scripting language. There is an overhead involved - about 2.5μs per cross-language method call - so you don't want to do anything insanely complicated in the scripting language (or at least, not without caching the data in native variables). And the overhead of transferring execution into the scripting environment in the first place is on the order of 5μs, so a few tens of thousands of script calls and things will start to add up...
Update: It pays to read the descriptions of all the branches; someone's already done what I've spent the past two hours failing to do, i.e. localise the Lua state.
Update: Of course, the branch that does what I want doesn't actually compile. However, the changes in the branch that compiles don't interfere with the changes in the branch that does what I want... I think.
Update: A bit more hickory-hackery* and it compiles and installs correctly. The installation of the previous version prevent it from running correctly unless the interface file is copied into the working directory, but that's a minor issue; I can hunt down the old libraries and killerise them.
There may still be a problem with Lua 5.0 vs. 5.1; I'll take a look for that, since that's fixed in the other version. I'll also note that the guy who did the changes to localise the interpreter state has done a better job of it than my hackish attempts, so many thanks to him.
Update: Aaand... Working? Seems to be! Test results:
pyinc 0.0196Possibly even a little faster, though the difference isn't significant.
luainc 0.5294
luabulkinc 0.0135
pyclassinc 0.0692
luaclassinc 0.7695
luabulkclassinc 0.2589
luasandboxclassinc 0.7672
Now to test it out with many interpreters.
Update: Many interpreters work fine; no obvious memory leaks. However, creating a new interpreter context takes about 170μs; the 5μs I mentioned earlier was running a script inside an already-created environment. Since most pages will only need one context anyway, that doesn't matter a great deal. 170μs is slow in computer terms, but pretty fast in human terms (about 250 times faster than the shortest interval you can notice).
* Editing the code with an axe.
Posted by: Pixy Misa at
12:20 AM
| No Comments
| Add Comment
| Trackbacks (Suck)
Post contains 587 words, total size 5 kb.
Powered by Minx 1.1.2-pink.








