20220208

Top SciFi/Fantasy Book Recommendations

I've had a couple people asking me for book recommendations recently, so here's my list of recent favorites. 

* Martha Wells

I've previously reviewed her, but everything she writes is still great. The only thing I can add to my last post is her new series, Murderbot Diaries about a lovable yet emotionally damaged cyborg who works as a bodyguard. I've seen it called an "IT Thriller" because it has a lot of computer-hacking.

* Terry Mancour

Spellmonger Series: I can only describe this as Lord of the Rings meets Dune... He has somehow managed to re-invent a Tolkien-esque fantasy world from the ground up, in a way that makes it seem so fresh that I'm surprised when I recognize his creations as classical fantasy tropes halfway through. The classic story elements of Necromancers, Elves, and Dwarves are re-built and characterized from the ground-up. The present fantasy world is unified with the SciFi remnants of older civilizations in probably the best and most coherent SciFi/Fantasy blending I've ever seen. The series of chalk full of politics on the order of Dune, and every book features some level of medieval institution that gets torn down and re-constituted with an in-depth examination of how Feudalism works in practice. I feel like reading the institutional analysis and flux in this series has leveled up my understanding of institutional politics and changed the way I think about other fantasy settings. 

* Christopher G. Nuttall

Schooled in Magic: This is an isekai-style magic-school series, where a girl from Earth starts introducing Earth-knowledge to revolutionize the medieval fantasy world that had previously been relying on decaying institutions maintained by magic. This is probably the best fantasy magic-school series I've ever read. He's 24 books in now, and the characters have all graduated and gotten caught-up in larger social issues. Besides the adventures, the series also examines the various social changes that take places paralleling similar historical developments on Earth like the Industrial Revolution, and how various crises formed or were averted.

The Zero Enigma: Another magic-school series (this time without an isekai) where civilization has been reconstructed from the remnants of a fallen empire. This series focuses a lot more on inter-house style politics and coming-of-age story-lines than Schooled in Magic, and the mechanics of the magic is much less of a focus. Not quite as good as Schooled in Magic in my opinion, but the story is still growing into it's larger world-changing issues. 

A Learning Experience: A bunch of Libertarians on Earth get advanced technology create a Libertarian utopia in space and then end up in inter-galactic wars. It's been a long time since I read this, and the books jumped forward in time to watch how the society evolved with new characters, so I'm a little fuzzy on the details, but I remember liking it.

* T. Kingfisher

A Wizard's Guide to Defensive Baking: The funniest coming-of-age fantasy story I've ever read.

Minor Mage: A boy gets sent on a quest to save his town because he was all they had. Somehow he manages to use his meager abilities to great effect.

* Kanata Yanagino

The Faraway Paladin: Another isekai story, where the protagonist spends his childhood training to become a Paladin under the tutelage of undead legends. The author is clearly an Ursula K. Le Guin fan, and this series has an unusually in-depth and positive treatment of the personal side of religion and the value of dedication.

* S.J. Ryan

The Star Wizards Trilogy: A man from the post-singularity future finds himself on a primitive world fighting a remnant from his old world. This has very unique world-building, although it was at times hard for me to follow as I had to fill in some of the details. But the interplay of future technology and trying to transplant modern values across cultures was great, as well as the exploration of what a post-singularity world would look like. I blow through a lot of random one-off self-published books on Kindle and forget about them, but the first book of this intrigued me so much I kept checking back until there was a sequel.

Timesense: A novella about aliens who perceive time very differently. I can't say more without spoiling it but it blew my mind.

* Okina Baba

So I'm a Spider, So What?: A isekai light-novel where Japanese school-girl is reborn as a Spider in a dungeon, and has to level-up her abilities to survive and find a way out. There are a lot of moving parts in this novel that slowly come together to reveal a picture of how the world is broken, and honestly I wish they'd focus on the spider-girl more than the rest of the characters, but still one of my all-time favorites.

* Dojyomaru

How a Realist Hero Rebuilt the Kingdom: A Japanese civil-servant is isekai'ed into a fantasy kingdom and promptly made King, where he tries to salvage and modernize it's corrupt bureaucracy. I enjoy the politics more than the slice-of-life subplots, but the interplay between the individual "Great Men" and how that translates into national and international politics is great.

* J. P. Valentine

This Trilogy is Broken: Hilarious parody of classic fantasy quests.

The Nothing Mage: I have only vague memories of this series, but I remember liking the meta-magic.

* Cath fach
Erryn's world: A dungeon recreates the world after an apocalypse, and wants an isekai'ed boy to judge it.

* Becky Chambers
Wayfarers: Deep soul-searching science-fiction stories about the meaning of individuals and the bonds between them

20211218

The Gifts of the INTJ Magi

This is a parody of "The Gift of the Magi", by O. Henry.

Once upon a time, there were two INTJ's, Alice and Bob, who fell in love, and after a brief explosion of their inner INFP child, got married.

They were very poor, but like many INTJ's, had great ambition.  Unfortunately, they were so poor, that their first Christmas together as a newlywed couple, they were unable to buy each other meaningful Christmas gifts.  Alice and Bob talked it over, and since they already knew they loved each other very much, they really didn't need to buy each other expensive gifts to prove their love.  And they were both content.

But Alice and Bob were too proud of the fact that they had so efficiently solved their Christmas conundrum, and they bragged about it to their friends, who had other Myers-Brigg's types.

"You can't do that!" they cried.  

"Your first Christmas together is an important milestone for your relationship," they cried.

"Think of the memories... You'll never have another chance at a first Christmas together again!" they cried.

Alice and Bob just laughed... "We don't need memories like other Myers-Brigg's types", they said, discounting sentiment.  "This is more efficient."

But privately, after they had left, their friend's words gnawed at them.  What if they were right?  What if this was an important first Christmas precedent?  They liked setting good precedents.  Sure, things might be good now, but think of the long term consequences if not getting each other gifts became the norm... Maybe one day, when hardships came, they wouldn't be quite as sure of each other's love, but by then the pattern of not buying gifts would be too entrenched to be changed.  Many of their friends had been happily married longer than themselves... Maybe this was some great secret of happy marriages?  

And so, being young and foolish, they heeded their friends advice.  After all, they each cared more about the long-term stability of their marriage than their own happiness.  Heck, if they had to choose one or the other, they each thought, they cared more about their spouse's happiness than their own.

Now, being an INTJ, Bob knew Alice would never agree to a plan where he sacrificed so that only Alice would get a nice Christmas gift, and vice-versa Alice would knew Bob would never agree to a plan where she had to sacrifice for his gift.

But, being INTJ's, they were no strangers to conspiracies and plots...

So Bob secretly sold his video-game console to buy Alice an expansion for her favorite board-game, while Alice secretly sold her favorite board-game to buy Bob a new video-game.  As Christmas approached, each felt smug that they had secretly solved this relationship hurdle, and anxiously awaited Christmas to reveal their victory (and make their spouse happy).

On Christmas morning, Bob made the first move, and pulled out an uncharacteristically well-wrapped present.

"I thought we agreed we weren't getting each other anything?" she asked with an eye-brow raised.

"Well... I thought about it and figured all our friends might be right... We only have one chance to have a first Christmas."

"I guess I can't be upset... because I got you something too!" Alice replied with a twinkle in her eye, and she ran to get her present so they could open them together.

They briefly basked in the moment, feeling confident that not only had their plot succeeded, but they were each so discerning as to find the wisdom in their friends words, and so discover for themselves this secret to a happy marriage.

And then they opened their gifts, and saw with horror what they had done.

Bob's new video-game was worthless without his gaming console.  And Alice's board-game couldn't be played without the base game.

By failing to coordinate, they had each acted against the maximal global happiness, and now neither could enjoy their gifts.  They both burst into tears (since their Feelings-function was 3 sizes too small, and easily overwhelmed).

"I"m sorry!" they cried.  "In my arrogance, I thought I could solve all our relationship problems by myself!"

They swore right then never to take unilateral action on any significant relationship concern again (unless it had to be taken in a timely manner without the ability to seek counsel).  The next day, they sold the new video-game and board-game expansion, and used the money to buy themselves a nice breakfast (something they could both enjoy together).

Later, once the pain had settled, they told the story to their friends, who had other Myers-Briggs types.  Their friends swooned, and tried to convince them that they had given each other the best possible gift: selfless love and devotion.  But, as INTJs, Alice and Bob knew better.  They already had selfless love and devotion.  All they had given each other through their secrecy and plotting was a lesson in humility.

And so, with this lesson learned, they lived happily ever after til the end of their days as Utilitarians.  Never again did they make sacrifices without being in coordinated agreement.  But years later, they would tell the story to their grandchildren as one of the secrets to their long and happy marriage...

"Did we ever tell you about the time we made Christmas a Zero-Sum Game by discounting our own happiness and failed to achieve Pareto Efficiency?"

TL;DR The Gift of the Magi always bothered me because of it's terribly inefficient outcome, and I swore as a child never to make that mistake.

20170111

Pidgin Errors with Gmail

I discovered yesterday that my Pidgin client is refusing to connect to GMail/GoogleTalk with the error:

"SSL peer presented an invalid certificate"

After half an hour of digging, I finally found this Pidgin bug with a work-around:

https://developer.pidgin.im/ticket/17118

I have no idea what's going wrong here, and I can only assume Gmail has some new cert that's not playing nice with something on my system.  But seeing as it took me so long to figure out, I thought I'd help make this easier to find for anyone else who runs into the same problem find it.

UPDATED:
After a few days, this stopped working.  I can only guess that gmail is rotate SSL certs faster than I can keep up.

But I found this Gentoo forums post:

https://forums.gentoo.org/viewtopic-t-1057862.html

Which pointed the problem at gnutls, and sure enough, emerging pidgin without the gnutls use-flag solved the problem.

20151129

Piwigo Thumbnails

I've been trying to find a nice way to host images on my Piwigo server... The problem I've had is that I don't have enough disk space on my server to host all of my full-size photographs, so until recently I'd been sshfs-mounting them off of an AWS instance that was connected to my Dropbox.  Then my year of free AWS ran out, and I was back to searching for a solution.

I eventually ran across this post at Odd One Out who had figured out how to generate the thumbnails Piwigo needs offline.  So I hacked his script up, and now I'm sshfs-mounting my photos off a much slower (and cheaper!) network connection, and pushing the thumbnail images there separately.  (I figure it's very rare for someone to actually download my full images, so I can live with that being a little slower.)

20130720

Gentoo, ReadyNAS, and iSCSI

I recently bought a Netgear ReadyNAS 104 while trying to recover from a failure of my old RAID-5 enclosure.  Now that it's all put together, it looks like I can pull a maximum of 50 MB/s, with typical speeds of 30-40 MB/s.  I'm not sure what the limiting factor is at this point, since it doesn't seem to be network bandwidth, or CPU on either end.  I think something in the system is latency bound, since it seems to pull a little faster when my desktop CPU is completely idle.

At first I was going to set it up using sshfs, but the little ARM CPU in that thing can only push about 3-4 MB/s when it has to do the encryption itself.  So what I finally settled on was exporting it as iSCSI, and having my desktop do the encryption with cryptfs (LUKS).

I get the feeling that iSCSI doesn't get a lot of love on Gentoo, so I figured I'd post my troubles and what I finally got to work.  This post from the Gentoo Wiki Archives was the most helpful, though I skipped all his interface setup, which I'm assuming was designed for a dedicated storage network.

iSCSI Basics:
A target is a server which is offering up a drive for clients to use.
An initiator is the client which consumes a drive to read or write it.

Init Script:
The init script for open-iscsi was kind of primitive... I had to install the unstable version (sys-block/open-iscsi-2.0.872-r2) since it hadn't been updated since modprobe stopped supporting "-l" (which still makes me sad...).  At that point, I had to go redo all my kernel setup since I compiled the iSCSI stuff into my kernel, and the init script assumes that it can manually load and unload the modules.  I eventually commented out all the do_modules calls to work around that.

I also installed net-libs/libiscsi although I never figured out if it was required or not.

I never did figure out how to get it to automatically connect to my drive, but I got the init script to stop complaining at me by setting AUTOSTARTTARGETS="no" in /etc/conf.d/iscsid.  At this point (plus commenting out the modprobes) I could start and stop the daemon cleanly.

To manually mount a drive:
#Start a session to a target
iscsiadm -m discovery -t st -p 192.168.1.100

#Open a drive named "group1"
# on the target "iqn.1994-11.com.netgear:host:a1b2c3d4f"
# (as generated by my NAS) at IP 192.168.1.100
iscsiadm -m node --targetname iqn.1994-11.com.netgear:host:a1b2c3d4f:group1 --portal 192.168.1.100 --login

#At this point /dev/sde should appear and you can mount/format it.

#Disconnect from the target to make the drive disappear 
iscsiadm -m node --targetname iqn.1994-11.com.netgear:host:a1b2c3d4f:group1 --portal 192.168.1.100 --logout  


You can add "-d 8" (with a number 1-8) for increased debug messages if things are going wrong, but I can't say I found it very helpful myself.

The drive letter it shows up at will increment as you keep connecting/disconnecting.  Which was enough to convince me I wanted to manually mount the thing so I've given up trying to get the init script to autostart it anyway.

CHAP:
CHAP is the iSCSI authentication protocol, and was the biggest pain point of the whole experience.  I couldn't get my NAS or open-iscsi to give me any kind of useful error message other than "it didn't work" (or more precisely "iscsiadm: discovery login to 192.168.1.100 rejected: initiator error (02/01), non-retryable, giving up" ).

There are two kinds of CHAP, one used to authenticate initiators (clients), and one used to authenticate the targets (servers).  Since I was already encrypting my data on my desktop, I didn't bother setting up the server authentication, but I think it works basically the same way.  Here's what finally worked:

First I had to generate an InitiatorName and tell my NAS to restrict access to only that initiator.  My NAS only had a field for one "Initiator (IQN)" entry, while the Linux settings had 3 different values.  I don't really know what the difference is supposed to be, but I had problems until I set them all to the same thing.
## -*- mode: Conf-space;-*-
##/etc/iscsi/initiatorname.iscsi
## For examples, see /etc/iscsi/initiatorname.iscsi.example

InitiatorName=iqn.2008-10.com.example.mybox:openiscsi-a1b2c3f
InitiatorAlias=iqn.2008-10.com.example.mybox:openiscsi-a1b2c3f

Uncomment the following lines in /etc/iscsi/iscsid.conf, and set them accordingly.
##/etc/iscsi/iscsid.conf 
node.session.auth.authmethod = CHAP
node.session.auth.username = iqn.2008-10.com.example.mybox:openiscsi-a1b2c3f
node.session.auth.password = ThisIsAPassword

For whatever reason, CHAP passwords have to be between 12 and 16 characters.  I spent a while failing to get it to work with an 8-character password before I figured this out.

It probably goes without saying, but make sure you type the same password into your NAS.  (And set it for your initiator, instead of what my NAS called the "bidirectional authentication" for letting clients know they're talking to the right server.)

There are also settings in iscsid.conf for using CHAP during discovery.  You might have to set those too, but my NAS didn't seem to support it, so I left them alone.

After some trial and error, I finally figured out that my NAS was picking up password changes immediately, but my client was saving some kind of a session that was making things difficult.  Eventually I determined that to actually get my new settings to take effect I had to stop my daemon, rm -rf the session folder it had created in /etc/iscsi/nodes/, start the daemon again, and then start over from the discovery phase.

And there you go!  Good luck.

20121223

Alarm clock

In a sudden stroke of genius (the kind that can only occur at 1:30 in the morning), I have just invented the most annoying alarm clock ever.

while true; do beep -f `random 100 2000` -l `random 5 300`; done;

(Where random is a script I wrote that does the obvious.)

Not only is it incredibly annoying, but you can't control-c it, since the beeps are running so fast.  I also had the luck (misfortune?) of running it while sudoed as root, so it ended up with some kind of weird reparenting and so it didn't even stop when I closed my terminal... I finally had to rmmod pcspkr to get it to quit while I hunted down the offending process.

I don't yet know how I will fully use this newfound power, but if nothing else I can guarantee I will be waking up tomorrow morning.

20121214

Book Reviews 2012: Martha Wells

I discovered a new fantasy author while touring a used bookstore, Martha Wells.  I've since bought everything of hers I can get my hands on.

The Books of Raksura, Martha Wells
The Cloud Roads (The Books of the Raksura)
The Serpent Sea (The Books of the Raksura)
The Siren Depths (The Books of the Raksura)
I rate them as 5/5 all the way across.  The series chronicles the adventures of a clan of "Raksura", sentient fantasy creatures (people?) in a realm of other sentient fantasy creatures.  There was some magic here, but it was fairly subdued, and mostly taken for granted.  The series was mostly about the cultural differences of the various peoples, and one misfit's attempt to assimilate, with some villains and adventure thrown in for fun.


The Books of Ile-Rien, Martha Wells
The Wizard Hunters (The Fall of Ile-Rein: Book 1)
The Ships of Air (The Fall of Ile-Rein: Book 2)
The Gate of Gods (The Fall of Ile-Rein: Book 3)
The Death of the Necromancer
The Element of Fire
Also 5/5 all the way across.  The first three books are trilogy, set in a fantasy world that has 1900's era technology (ie simple cars and air ships, electric lights, but not much else) and well-established schools of magic and sorcery.  The country of Ile-Rien finds itself fighting a war, and the characters set off in search of a powerful magic to defeat their enemies.  The world that she creates here has enough depth to it that I found even the back stories enthralling.

The last two books are stand-alone novels set in the same world but during earlier time periods.  They have some familiar characters, but were essentially distant back-stories for the events in the trilogy.


Wheel of the Infinite, Martha Wells
Also 5/5.  At a high level, this book follows the main characters as the restore balance to the "Deep Magics" that govern the world (my term, not hers).  Magic is assumed everywhere, but not actually exhibited much by the characters.  I thought this one was a little more adventure driven, with a little bit of deeper issues thrown in, and much less cultural focused than most of Wells' other works.


City of Bones, Martha Wells
I rate this at 4/5.  City of Bones was a set in a post-apocalyptic world with survivors struggling to survive.  The male lead (named Khat) carried this book in my opinion.  He was another cultural misfit trying to survive in a foreign city, honest enough to be endearing and with enough character flaws to get himself into trouble.  The world was interesting and all, but I found him fascinating.

Khat kind of reminded me of a more interesting version of the male-lead from the Ile-Rien trilogy.  And the overall crisis the characters solve felt a lot like the one in Wheel of the Infinite by the end.  So that's mainly why I rate this as only a 4/5.  But the book might stand better on it's own if you hadn't have just read her other books. :-D


And that's all the motivation I have for the evening, so I'll stick to one author for now.

New Computer

I recently upgraded my main system from a Phenom II to an Ivy Bridge (Xeon E3-1270), and this may be stating the obvious, but dang is it faster...
I have a little benchmark program I wrote to test a simple C-library of data structures, that normally took 10 seconds on my old machine, that now completes in just under 4. If I launch eight of them at once (two per real core), the hyper-threading lets them complete in just under 6 seconds a piece. Wow!
With my spare cycles, I normally run GIMPS work units, which is a distributed prime number search that consists of heavy floating point operations. The new machine processes work units about 6 times faster than the old one. I'm assuming the new AVX instructions are mostly responsible.
Which brings me to an awkward problem... I normally run 4-threads of GIMPS at a niceness of 19, which usually translates into very little CPU usage, and I just let it run without typically noticing any performance hit. But with hyper-threaded cores, the Linux scheduler notices that I've got spare CPU's, and happily schedules them with GIMPS tasks. So what ends up happening, is I get my interactive workload on a core, and a GIMPS thread on it's hyper-peer, and they split CPU roughly 50% (modulo the hyper-threading boost). That kind of hurts, but I also hate to turn off hyper-threading since it was a 30% throughput boost when I do have real multi-threaded workloads.
At the moment I'm just living with it, and turning off GIMPS if I run into a situation where I care, but that kind of sucks. I tried playing with cgroups, but from all I can tell, they're not really designed for this. You can use them to limit things to a percentage of the CPU when you're under load, but when there are spare cores they optimize for throughput, and schedule things anyway.
After digging through the Internet, I finally found a utility called cpulimit that is almost what I want. It'll let me limit the total CPU of a process tree to X% of a core, so I can limit GIMPS to 3 cores, and leave one completely spare, but I still have to manually pay adjust to it if I want to give it my whole CPU while I'm gone.
What I really want, is for it to check my load average, and automatically scale up/down the limit it's applying to GIMPS based on how busy my system is. After pulling the source for it, I think I know how to make it do that, so sometime when I get really motivated I'm going to give it a try.
Among the other fun things I've learned while setting up this machine is what happens when you don't have your static /dev setup right (the kernel can't launch init...), when you don't have a /run folder (your hostname never sets, and you can't successfully halt or reboot among other things), and Gentoo live cd's haven't setup the net.eth0 symlink by default since at least January. Oh, and don't dd your disk while you have it mounted... It doesn't end well.
I have also now become well-acquainted with NewEgg's return policies, having sent them back a bad motherboard, and a set of four 8-GB RAM chips (which I mistakenly ordered despite the fact that registered memory wasn't compatible with my motherboard). Props to NewEgg for painlessly taking it all back.  (Update: NewEgg has since refused to accept my motherboard back... :-(  )

I'd like to think this experience has made me wiser, but if nothing else, at least I now have a faster computer. :-D

20120807

Joining the morass

This blog has officially not been updated for over a year... Such is life.

20110612

Ubuntu 11.04 "Window Grippers"

In case anyone else was as annoyed by the Ubuntu 11.04 "Window Grippers" (aka the obnoxiously large resize handles), instructions to disable them can be found here.

Saving the world, from one obnoxious UI change at a time...

20110524

grep 2.8

So I was sitting around today, lamenting the fact that grep isn't multithreaded, and decided to actually do something about it.  Since all of the appropriate Google searches just seem to list other people lamenting the same fact, I started messing around with things.  Turns out, I can get a 20-50% speedup just by doing this:

find $files -type f -print0 | xargs -0 -n10 -P8 grep -H $ARGS "$pattern"

(Word to the Wise: There is also a similar, but very wrong way to do it...)

find $files -print0 | xargs -0 -n10 -P8 grep -H -r "$pattern"

 So after tuning the threading numbers there, and feeling pretty good about myself, I decided to look up the mainline GNU Grep source, and see if there wasn't something I could do to help.  So I pull up the current source, and upgrade my box to use grep 2.8 instead of Gentoo's stable 2.5.4, and Holy Snapdragon!  (Yes, I actually said that...)  I got a 10x-60x speedup on the workloads I was testing.  Yes, you read that right.  My tests that were taking 48-80 seconds, were now finishing in 1-2 seconds.  I dunno what kinda magic they threw into grep 2.8 but good work guys.  Still no multithreading, but with the new version, I have real trouble just finding a workload that needs it.

So, my Gentoo countrymen, if ever there were a time to use unstable, this is it!

20110507

Skype and Gentoo amd64

I have a weird problem where my skype video intermittently (read mostly) doesn't work.

I found a solution here:
http://papers.ch/?p=94

Apparently it doesn't figure out it needs to load the 32-bit versions of v4l ...

20110505

Bash-ism

Fun fact of the day: "echo *" and "echo */" do not do the same thing... (with the obvious distinction).

20110419

Standards of Proof

Standards of Proof in the Internet Age

The Dark Ages
1960?-1970?: Published Work

Birth of the Internet
1970-1979: Electronic Article by a University Professor
ca 1980: a posting on Usenet

The Web
late 1980s - early 1990s: some grad student's personal website
ca 1992: AOL encyclopedia article
ca 1996: a page on GeoCities
late 1990s: corporate sponsored web pages

Social Networking
early 2000s: some guys Blog
ca 2006: a video on YouTube
2007: a Wikipedia article
2009: some celebrity's Twitter feed
2010: a poll of your Facebook followers

Source: My Personal Thoughts, April 2011.
(Some of the above mentioned sources were consulted for historical accuracy... the rest was fabricated.)

20110323

Firefox 4 animations....

I just installed Firefox 4, and the juries still out, but I needed to disable the tab animations just to make it usable.

What is with people and fancy UI animations these days?  I mean, they're fun to write, and they're cool for about 10 seconds, and then it's just annoying.  Like, after I've clicked a button, or closed a tab, I'm done with it.  I've already moved on, and am paying attention to something else, so if it suddenly starts flashing, or blinking, or sliding, it's completely distracting.

But thank you Firefox 4 developers for adding an option to disable it!  The nice thing about open source is there's usually someone who complains loud enough to get an option added.  :-D

20110227

Copyright and Eminent Domain

Can Congress legally restrict the copyright terms if it wanted to?  Or, having granted a property right, are they restricted to claiming eminent domain, and issuing compensation for seizure of private property as required by the Constitution?  They certainly seem capable of extending copyright (having previously done so). 

Perhaps one could argue that a copyright is essentially a state-granted monopoly rather than a property right, and is thus subject to various restrictions, that Congress has the right to change and regulate at any time.  Of course, those with vested (and yet unvested, if Congress extends it again) interests in promoting the term "Intellectual Property" would no doubt disagree.  Perhaps we should start calling it "Intellectual Monopoly Rights" and see if it remains as popular.

Dunno.  Food for thought.

Ungrammatical Constructions?

I would like to take a moment to lament the construction of the word "do-gooder."

My postulated etymology for the construction of the word is as follows:

First, we take the transitive use of the verb "to do," meaning "to bring about or accomplish."  So far, so good (no pun intended).

Next, we need to give it an object.  Take the noun "good."  Well, it's not really a noun... it's more of an adjective.  WordNet defines it as "having desirable or positive qualities."  To turn an adjective into a noun, we (of the English language persuasion), typically add the suffix "-ness."  But in English, the term "goodness" has more of a moral connotation, and loosely means "the quality of being good," just like "redness" and "coldness" denote abstractly the quality of being red or cold respectively.  What we really want is a way to refer to the set of things having goodness, at least to the degree at which the adjective "good" can be applied.  So really, we want the object of our verb to be the compound noun "good things," where the word "things" is implicitly restricted by the context to mean "things one can do," or more commonly, tasks or deeds.  So our basic particle of meaning here, is "to do good deeds," but in the interest of brevity, we're going to neologize the noun "good" to mean "good deeds."  It's perhaps a tiny stretch of meaning, but I don't want begrudge a man the lack of an obviously implied word.

Now, we're going to conjugate our phrase, yielding "do good."  Which, if you are willing to accept in parlance my derivation for the noun form of "good" above, becomes a perfectly acceptable action.  One can say "I do good," and "he does good" with impunity.  But for the purposes of our future construction, we really need to consolidate the phrase "do good," into a single word.  So, we create an intransitive form "do-good" by binding the word "good" as the object of the action "to do."  This is not entirely well-formed English, as one cannot reasonably say "I do-good" or "he is do-gooding" without the obvious problem of conjugating what used to be a noun.  But nevertheless we will operate!  (Cardano ca 1545).

To finish our construction, we will add the common suffix "-er" as in "woodcutter" or "farmer" to add the role distinction of "one who performs a task" (or at least "that which performs a task" if you want to include such inanimate persons as "staplers" in it's ranks).  Thus, we finally have "do-gooder," meaning "one who performs the task of doing good deeds," or more succinctly "one who does good" (by performing redundancy elimination, and dropping the implied "deeds" and "task").  But, if one is willing to admit it acceptable to restrict the category of "good things" to "good deeds," and drop the qualifier to accept the neologism "good" to mean "good deeds" in context, then I call to question, why we needed to include the operative verb "good" in this at all?  A "potter" is not "one who pots," but "one who effects pots," so to speak.  Why then, can't we simply refer to a "gooder" as "one who performs good things" and call it a day?  This seems to me, both more succinct, and avoids the grammatical awkwardness of the "do-good" construction.  But alas, 'tis not so.

To summarize then, we have:

"to do" + ("good" + "deeds") => "to do good deeds" => "to do good" => "do good" => to "do-good" => "do-good" + -er => "do-gooder"

QED?

20110210

Essence of Anime

I recently typed up a list of anime reviews for one of my friends, with a one-line essential summary.  I thought they were pretty funny, and since this is my blog, that means the editors think it's pretty funny too, and it posts.  :-D


Without further ado:  Essence of Anime
(Some spoilers ahead.)

Title: Rating
Executive Summary: "Better than it sounds."

Ah My Goddess! 5/5
Shy, quiet guy has a magical girl enter his life.  Her siblings rage magical war.

Black Cat 2/5
Little girl hunted by bad guys.  Lone wolf kicks butt with a pistol.

Bleach 5/5
Highschool boy gets a giant sword, and hunts monsters.

Chobits 2/5
Pervert finds a girl with amnesia.  He proceeds to treat her like his daughter, and they fall in love.

Cowboy Bebop 3/5
Iconoclast bounty hunters have misadventures.  Vaguely reminiscent of Firefly.

Death Note 5/5
Highschool student turns meglomaniac when he discovers he can kill people.

Element Hunters 4/5
Elementary school students fight Pokemon.  Some science words are used.

Escaflowne 2/5
Girl ends up in Wonderland.  All the boys love her.

Evangelion 1/5
Boy pilots mecha.  His life sucks.  Then everyone takes LSD.

Full Metal Alchemist 6/5
Two brothers use magic to do good, and save the country.
Series rebooted as "Full Metal Alchemist Brotherhood."  Both are awesome.

Full Metal Panic 5/5
15 year-old soldier saves violent girl from Russians.  Some mecha.

Gin Tama 4/5
Chaotic-good Samurai fights aliens in post-Modern Edo.
Random episodes are perverted (in a toilet humor sense), but the rest are awesome.

Great Teacher Onizuka 4/5
A Real-Man teaches highschool.

Hakuouki 3/5
Girl pretends to be a boy, but is found out.  Period drama, Edo Japan.  Magic?

Haruhi Suzumiya 5/5
A 14-year-old girl is all-powerful, but doesn't know it.

Honey And Clover 5/5
Art students live life.  One of them is a little girl.

Ichigo Mashimaro 5/5
5th graders play afterschool.  One of them is a narcissist.

InuYasha 6/5
Girl time-travels to Feudal Japan and falls in love with a half-demon.  Epic.

K-ON! 5/5
Highschool girls form a band and eat cookies.

Minami-ke 3/5
Three sisters try to be normal.

Mushishi 4/5
A man solves problems caused by magical bugs.

Nabari No Ou 2/5
A kid has undisclosed magical powers.  Ninja fight over him.

Naruto 6/5
Ninja children fight and make friends.

Ninja Scroll 0/5
Really slow.

Nodame Contabile 5/5
A concert pianist and a conductor... fall in love?

Ouran Host Club 4/5
Poor boy is enslaved by rich kids at a private school.  They find out he's a girl.

Saiunkoku 4/5
Girl dreams of being a man, but everyone keeps being smitten with her.  Vaguely set in China.

Saiyuki 1/5
Some demonic-ish people fight on a quest.

Samurai Champloo 4/5
Girl convinces two Samurai to stalk her.

School Rumble 5/5
Forget love triangles, these high school students have a love dodecahedron.

Seirei No Moribito 5/5
Kid swallows something magical and alive.  Epic fantasy drama.

Shamanic Princess -5/5
Most awful series ever.

Shaman King 2/5
Kids fight using ghosts.

Skip Beat 3/5
Girl swears revenge on her childhood friend, because he's a jerk... but he's a rock star.

Soul Hunter 1/5
Gods run China.

Suzuka 2/5
Loser falls in love with track star.

Toradora 5/5
Chibi misfit with anger problems finds a friend.

Trigun 4/5
Super-human gunslinger refuses to kill anyone.

Tsubasa Chronicles 5/5
Counterpart to xxxHOLiC.   Fantasy quest.

Witch Hunter Robin 3/5
Girl can shoot fire... but why?

Working!! 5/5
So... many... crazy people!

xxxHOLiC 5/5
Kid meets a witch.  They become friends.

Zetsubou Sensei 0/5
Social commentary.  Also creepy.

EDIT: Apparently, in order to get the right timing and emphasis on my terseness, it helps to read some of them as if you were Strong Bad... or so I'm told.

20110102

How to disable middle-click clipboard URL loading in Firefox

It has always annoyed me that if I accidentally middle-click somewhere in Firefox, it tries to load whatever is in my clipboard as a URL.  Granted, I'm not one of the old-school Unix folks who actually uses middle-click to paste things normally, but that's always seemed crazy to me.  I mean, if I want to enter a URL, I click on the address bar, where URLs are normally entered, and not in the middle of the window.  Weird.

At any rate, go to "about:config" and set "middlemouse.contentLoadURL" to false, and this obnoxious behavior goes away.

20101205

Things I've Learned from Anime

I recently watched some particularly bad children's anime on Hulu, which has inspired this list.

  1. It's important to keep your promises... even if it kills you.
  2. If you love enough, you can gain magical powers.
  3. People who are trying to kill you, might become your friends if you fight them enough.
  4. Violence is a great way to show affection.
  5. Attacking your teachers is a great way to pass tests.
  6. If you're not willing to die with your friends, you don't truly love them.
  7. Repeatedly blowing up your school has no meaningful consequences.
  8. Animals are named after their favorite word.
  9. Saying random syllables after every sentence just means you have an accent.
  10. The harder you are beaten, the more likely you will power up.
  11. Americans.... speak... really... slowly....and.... clearly.
  12. Girls can pull anything out of their purse.
  13. Girls can pull hammers out of thin air.
  14. Everyone has a tragic backstory.
  15. Flashbacks occur when you most expect them... even if you've seen it before.
  16. Fighting someone is a great way to understand them... especially if they die.
  17. Every party needs a Chinese girl.
  18. The coolest weapon is a sword.  Other weapons pretend to be swords to look cooler.
  19. The worse a girl cooks, the more often she shares.
  20. If you are different, children will bully you.
  21. Children do best when their parents are never seen.
  22. Grocery store lotteries are the great enabler.
  23. Angry women can do anything.
  24. High schools are run by student councils.
  25. Songs with more English make less sense.
  26. Tantrums are a great way to get what you want, but only if you're cute.
  27. The standard unit of skill is 100 years.  (You're 100 years too early to...)
  28. Promises made to 6 year old girls are legally binding.
  29. There's always another conspiracy.
  30. Small children always run away after you give them something.
  31. Defeat builds character, especially if you win the rematch later. 
  32. A fall from any height is safe, as long as someone catches you at the bottom.
  33. Wings can make anything fly (no matter what they're made of).
I'll post more if inspiration strikes again.