*boop*

Jan. 9th, 2020 04:58 pm
kickaha: (Default)
Ok, so that was me being *REALLY* lax in posting...

Life looks not at all like it did in 2010, and I'm okay with that.

How're all y'all doin'?

Heh

Jul. 26th, 2010 12:11 am
kickaha: (Default)
I Am A: True Neutral Human Wizard (6th Level)

Ability Scores:
Strength-12
Dexterity-16
Constitution-15
Intelligence-18
Wisdom-14
Charisma-16

Alignment:
True Neutral A true neutral character does what seems to be a good idea. He doesn't feel strongly one way or the other when it comes to good vs. evil or law vs. chaos. Most true neutral characters exhibit a lack of conviction or bias rather than a commitment to neutrality. Such a character thinks of good as better than evil after all, he would rather have good neighbors and rulers than evil ones. Still, he's not personally committed to upholding good in any abstract or universal way. Some true neutral characters, on the other hand, commit themselves philosophically to neutrality. They see good, evil, law, and chaos as prejudices and dangerous extremes. They advocate the middle way of neutrality as the best, most balanced road in the long run. True neutral is the best alignment you can be because it means you act naturally, without prejudice or compulsion. However, true neutral can be a dangerous alignment because it represents apathy, indifference, and a lack of conviction.

Race:
Humans are the most adaptable of the common races. Short generations and a penchant for migration and conquest have made them physically diverse as well. Humans are often unorthodox in their dress, sporting unusual hairstyles, fanciful clothes, tattoos, and the like.

Class:
Wizards are arcane spellcasters who depend on intensive study to create their magic. To wizards, magic is not a talent but a difficult, rewarding art. When they are prepared for battle, wizards can use their spells to devastating effect. When caught by surprise, they are vulnerable. The wizard's strength is her spells, everything else is secondary. She learns new spells as she experiments and grows in experience, and she can also learn them from other wizards. In addition, over time a wizard learns to manipulate her spells so they go farther, work better, or are improved in some other way. A wizard can call a familiar- a small, magical, animal companion that serves her. With a high Intelligence, wizards are capable of casting very high levels of spells.

Find out What Kind of Dungeons and Dragons Character Would You Be?, courtesy of Easydamus (e-mail)

Mildly surprised I ended up true Neutral instead of Neutral Good, otherwise... not surprised.

Well.

Mar. 4th, 2010 06:04 pm
kickaha: (Default)
End of next to last day at IBM. How... odd that sounds. Definitely mixed feelings. I am, ironically, happier here now than I have been in the entire four year stint, and I'm leaving. I guess that's the timing of life, but I suppose it's better to leave the dance early than to hang on past my time.

I am going to greatly miss everyone here, and that has really hit home the last few hours. Last night we had a going away dinner, and it was truly bittersweet. Today I went around and said goodbye to some folks who couldn't make it last night.

The office is packed, most of it is home. Tonight I take home the last box of papers, my comfy lawn chair, and some odds and ends.

Tomorrow the truck arrives for us to start to pack. Monday the truck leaves. Tuesday we leave NY.

Tomorrow is my last day.




Tuesday is the first day of a new adventure.
kickaha: (Default)
Just over two weeks until the journal article is due.

Eek.

Just over three weeks until the moving truck arrives.

Eek.

Just over four weeks until I start at the new job.

Eek.






EEEEEEEEEEEEEEEEEK
kickaha: (Default)
Effective March 15th, I will be at a new job. In Kirkland, WA. [livejournal.com profile] ginkgo and I are moving to the Seattle region in the next few weeks.

Ironically, I'm happier now at IBM than I have been in the past four years (my four year anniversary is in two days), but this was the right offer at the right time, and I had to take it. Going to miss everyone in NY, and continue to miss folks in NC, but... it'll be good to see family and friends in WA again. :)

Probably going to be busily offline for the next few weeks, but we'll crawl out of our hole eventually in the PNW, and reconnect with everyone.

NC peeps, we're hoping to get back down there on about the same schedule - 2, maybe 3 times a year.

WA peeps, we'll see you soon. :)

NY peeps... wanna come hang out with us while we pack? :D
kickaha: (Default)
How many times have you heard (at least in your head), an SUV owner saying that they just don't get little SmartCars, Priuses, and so on? "You can't haul anything in them." "They do so *little*!" "Sure, the mileage may be great, but I need room for four kids, not four grocery bags." "They're just not *fun* to drive..."

And often times, the (stereotypical green-oriented) geek's response is "But not everyone needs an SUV!"



And not everyone needs a PC. )
kickaha: (Default)
One year ends, the sun rebounds, the northern hemisphere is starting to warm up again, and the days grow longer.

Best to everyone on their observances of rebirth, hope, and redemption from the darkness, no matter what form they take.
kickaha: (Default)
Just signed a contract.

_Elemental Design Patterns_, from Addison Wesley Publishing, coming to a bookstore near you ~Q2 2011.

(Eek?)
kickaha: (Default)
While you can use booleans all day long inside a template in XSLT 1.0, you can *NOT* pass them as values across template application or call boundaries. They invisibly become strings, leading to interesting things such as:
 

<xsl:template name="check_something">
<xsl:value-of select="true()"/>
</xsl:template>
 
 
<xsl:template match="anElement">
<xsl:variable name="flag">
<xsl:call-template name="check_something"/>
</xsl:variable>
<xsl:message>flag? <xsl:value-of select="$flag"/></xsl:message>
<xsl:message>not(flag)? <xsl:value-of select="not($flag)"/></xsl:message>
<xsl:choose>
<xsl:when test="$flag">
<xsl:message>flag is true...</xsl:message>
</xsl:when>
<xsl:otherwise>
<xsl:message>flag is false...</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
 
 
When check_something returns true, as above, then you get the following output:
 

flag? true
not(flag?) false
flag is true...
 

But if you change that true() in check_something to false(), you get...
 

flag? false
not(flag?) false
flag is true...
 

Why? Because value-of, the only way to transport a function value back out of the template, converts the boolean to a string. Either 'true' or 'false'. Which means in the second case, the string is 'false', leading to the correct output for the first line, has a boolean value of true (non-empty), which when not-ted, gives the *boolean* value on the second line, and when checked as a flag, is of course again true.  Note complete lack of any differentiation in the output between the booleans and the strings.

You have to do an explicit check against the *STRING* 'true' at the call site. Change the xsl:if in the template to use test="$flag = 'true'" and it works as expected.



If you're expecting a really insane language model, that is.

Hmmm.

Oct. 20th, 2009 11:10 pm
kickaha: (Default)
Tue night.

Racked up 30 hrs for the week already at work.

Something about this seems... not quite right. Can't put my finger on it...
kickaha: (Default)
Adobe Acrobat Reader seems to have a hard limit on the size of a PDF it will display, at 200"x200". Anything larger than that that I throw at it, version 8 or 9, Windows or MacOS X, gets rendered blank, and that's the size the document properties shows. No errors given to either the user, or at the console, just... silent invisible failure.

Preview works fine, Acrobat biffs it.

Go Team Adobe. *facepalm*

IT'S YOUR GODDAMNED FORMAT YOU USELESS FREAKS!
kickaha: (Default)
rm -rf * in aDirectory != rm -rf aDirectory/*

Python syntax sneaking into csh is a BAD THING.

Thank god for Time Machine...
kickaha: (Default)
Zombieland.

Drive in.

Back of Jeep, hatch popped.

Lots of pillows and (not quite enough) blankets.

Nice.

Thanks hon! :D
kickaha: (Default)
Note to self: the coffee cup does not make calls, the phone does not deliver coffee, even when you lift them to the wrong orifices.

Revelation

Sep. 17th, 2009 04:29 pm
kickaha: (Default)
I put a lot of work into my presentations, and I'm a firm believer in Tufte's philosophy that a PowerPoint (or Keynote) presentation slide deck should never do double duty as presentation slides and transcript of the presentation. It just doesn't work. Slides that are sufficiently detailed enough to be a transcript are boring to sit through, and slides that are interesting to sit through are rarely ever enough to be fully explanatory as a transcript. (If they were, you wouldn't need a *presenter*.)

Most of my slides are minimalist - an image, two or three words, and that's it - a mnemonic designed to make a central point while I talk about it for a few seconds, then blam, off to the next one.

As a corollary, I hate bullet point lists. Despise them. Throw twenty slides up in a row with (literally in some presentations I've been forced to sit through) fifteen items on each, and *no one* is going to absorb it. It's just asinine to expect anyone to read all that text while the presenter is saying something *different*, or, just as bad, sit through being read to off the slide like a kindergartener. (Pet peeve, presenters who toss up a slide like that, and say "Oh, just read this" and then continue to keep blathering on... for about five seconds, and then skip to the next slide before anyone has actually read the slide they said to read.)

Today I've been struggling with a presentation that is going to have to be doing some double-duty after all - slides are expected, but there's going to have to be a lot of text since I'm not going to be there to do the presentation in person, and it is expected that this will be passed around for critique as a primary artifact among people who won't be attending the presentation.

Obviously, the rational thing to do here is just to write a report proposal, but no, it's got to be slides. (Viva la corporate culture!)

So I've been gnashing my teeth doing these god awful bullet lists, but then... I saw this site: http://www.subtraction.com/2009/09/15/our-craigslist

It's a writeup on how a design group tackled redesigning craigslist for fun, and at the bottom they have a set of slide images... with... text. In paragraphs. And they don't suck.

They are using a nice grid layout frame, and providing plenty of negative space, but are letting the long text flow like columns in a newspaper instead of essay format on a letter-format page. The use of image placement is also gorgeous.

Revelation.

I am redoing the slides, adding *more* text, making it basically the writeup it *should* be, and you know what? It looks freaking *stunning*.

Another tool in the arsenal. "When you do need to use a lot of text, emulate long-standing text-oriented media that have worked well."
kickaha: (Default)
MacOS X 10.6 (Snow Leopard) is a cleanup/tweaking of 10.5 to streamline it, get it multi-core optimized, bring new under-the-hood technologies, etc to the Mac platform. User-directed changes will be small, but one has me nearly bouncing out of my seat.

File and disk sizes in the Finder will now be properly reported in base-10 decimal SI units.

kB = 1000 bytes
MB = 1000 kB
GB = 1000 MB

"What?" you say, "Aren't those 1024 at each step?" Welcome to the wonderful world of Kidnapped Units. Back in the mists of early CS, the boffins realized that 2^10 (1024) is awfully close to 10^3 (1000) and started using the SI unit kilo- to represent it.

Problem is, 1024 != 1000, even for small values of 1024.

When you're dealing with small amounts, this isn't so bad for a rough estimate. 1024 is only 2.4% larger than 1000, after all. But... the larger the Kidnapped Unit, the bigger the discrepancy. At the MB level, you're off by 4.85%, at GB, 7.37%, and at TB, you're basically at 10% difference.

Which means that when you buy that 1TB drive and take it home, your computer says it's only about 900GB in size. Why?

Because the drive manufacturers (physicists, mostly) use the base-10 system version of Giga-, but the software folks who write your OSs use the base-2 definition of Giga-. Whoops. This has led to more than one class-action lawsuit against the drive manufacturers, accusing them of false advertising. It isn't, they're the ones who are *right*. The SI units are, by definition, powers of 10. The CS folks have it wrong, and always have.

Luckily, a full decade ago, the SI came up with a solution... unfortunately, none of the major OS makers have jumped on it. (I believe KDE's Konqueror comes with an option for this.) The solution is the binary-unit. Instead of kilobyte, you have the kibibyte. The megabyte becomes the mebibyte, the gigabyte the gibibyte, etc, written kiB, MiB, GiB, and so on. These are the 'traditional' CS units, written appropriately, and they've caught on in academia for the most part, and in industry where it seems to make marketing look good. (Naturally.)

So what is reported in every major OS has had the wrong units applied to it. This is why a 500GB labeled drive will frequently end up 'missing' nearly 9% of its space when reported by the OS. The OS is calculating GiB, but labeling it GB. It's like fluid ounces vs. weight ounces. Not the same.

Finally, the SI units are being used appropriately.

Hi, I'm a geek, why do you ask?
kickaha: (Default)
My family has FINALLY decided that golly, gee, maybe their bailing wire and spit mail and web system for the family business isn't worth the hassle. (Lesson learned: quality costs money. You don't get quality by piggybacking off of someone else's server, and relying on a friend of the family admin to let you use it.)

This is something I've been telling them for several years - usually any time they call to freak out that omgitsbrokenyouhavetofixit, nevermind that I have nothing to do with those servers, have access to them, or even really know how the whole thing is juryrigged. I'm the Computer Guy, so apparently I'm the one who has to call the friend of the family (who I don't even know), and pass along messages. What the fuck ever.

They've FINALLY decided that this isn't going to work. Apparently it was when Mother Dearest was told she had to use a webmail client as a workaround to a problem with the IMAP server. That simply WOULD not DO. Baby brother got tired of the shitstorm, and... called me.

They're looking for a cheap (duh), easy (er), simple (hm) way of hosting their mail and web. They know *NOTHING* about techie crap, and I'll be damned if I'm going to be their sysadmin.

So.

Recommendations on a either a dirt simple hosting setup or someone (preferably in the Seattle area - see, one less reason they have to call me) to handle the whole shebang. It's ridiculous, we're talking about half a dozen email addresses and a frighteningly primitive web site with maybe a dozen pages. No databases, no ordering, just static pages. They need registrar and basic hosting. I've been using dyndns.org for my stuff recently, but not for hosting, so I don't have any experience there. Dreamhost is of course the standard answer, but I have zero experience setting anything up there.

Gmail isn't likely to be acceptable due to the funky interaction between their version of IMAP and Mac Mail client that assumes an actual standard implementation. (See above for Mother Dearest's response to being asked to do anything new.) For that reason alone, I'm striking it from the list. (Otherwise this would be pretty bloody simple. Gmail for mail, frickin' MobileMe for their web site, domain mapped to both, and done.)

Any and all recommendations welcome, my webby peeps. A word of advice though... don't volunteer yourself. Find some other poor bastard to take this one.