Tuesday, August 19, 2014

Goodbye Utah

When asked where I'm from, I've had trouble giving the expected quick answer.  For the last decade, I may have traveled from my home in Utah, but I couldn't bring myself to say I was from Utah.

I do like to say that I moved to Utah for a job at Novell, back when that was a good idea.  I suppose I missed out on their true glory days, but the projects I worked on were exciting.  Netmail was exciting enough that I followed it through various names and to a different company.  Now that company (gradually re-branding itself as "Netmail") will let me work from anywhere.

When we moved, I made a deal with my wife.  This was for my job, and if she didn't want to live here in ten years, we could move.  More than fair.

That was an apartment, a house, and three cars ago.

As it happens, a couple months shy of ten years later, it was time to get going.  Not due to a bargain struck when we moved, but because we each felt and knew it was time.  But I didn't start babbling here to talk about the move and the future - this is about our time out there and what I've learned about the place.

The Mormons

The white elephant in the room, if you'll pardon the awful mixed metaphor.

Until I moved to Utah, I couldn't have told you the difference between a Mormon and a Jehovah's Witness.  They were all just those people who knocked on your door and wanted to tell you about their God.


I know quite a lot more now, and could probably write post after post of sweeping generalizations about the religion and its members, glowing and/or scathing accounts of individuals, or just go on at length about how strange I find this or that piece of doctrine or practice.  I'm quite sure I could do that about any religion though, so I'll just hit the highlights people ask about.

  • "Mormon" == "Church of Jesus Christ of Latter-Day Saints" member.
  • A "good Mormon" tithes 10% of their income to the church.
  • The church is massively wealthy and owns land all over the planet.
  • Most Mormons are not polygamists.
  • There are polygamist families, even in "mainstream" areas.
  • Mormons are fine with modern technology. (Were you thinking of Amish?)
  • Mormons are fine with science (including evolution), mostly.
  • Mormons are fine with birth control, but many have tons of kids anyway.
  • God changed his mind about black people in the 1970s (they're OK now).
  • That episode of South Park is surprisingly accurate.

Mormons raised elsewhere find Utah Mormons to be a strange bunch too.  And "strange", I have no quarrel with.  I'm strange myself, and almost proud of it.  I tend to build opinions about churches based on how their members treat others, including non-members.  This is where things can start hitting fans.

While we were moving into our house, a neighbor started chatting with Kim and offering to help.  I emerged from hoisting a box out of the trunk, exposing my beard and my "drink beer" cap.  This neighbor interrupted herself to ask, "Are you LDS?"  We indicated that we weren't, and she turned and left.  I don't think she said another word to us while we were neighbors.  There were plenty of other times where we were snubbed or judged or ignored or just generally made to feel crappy based on not being Mormon, but this is our go-to example.

We also had neighbors who are completely wonderful.  They've treated us as peer human beings from day one, and are just generous and fun people.  They are what I would have previously called quite devout - they go to church every Sunday and attend plenty of other church functions.  Around here, though, that's not enough.  Others in this particular block of houses go to one specific church building, and our neighbors go to another.  They began doing so when one of their children had hearing trouble, since the other church does sign language.  He can hear fine now, but they like the place and still go there.  Some people here look down on these neighbors due to this.  Even more scandalously, the mother had been divorced, and their eldest is even from a previous marriage.  There are families in this neighborhood who don't want their children to play with our neighbors'.

So, in Utah the Mormons are everywhere, but there is quite a spectrum.  Judgmental and closed-minded all the way through as lovely a person as there could be.  Groupthink and tribalism are dangerous, there and anywhere.

The Drivers

I've touched on this a few times before.  I've spent time on roads all across the nation and a couple of places beyond.  I was raised in the polite-as-Canada midwest and have a very strong "get out of everybody's way" mentality.  (This is the recessive counterpart to the easily-spotted "me-first" gene.)  I have never feared for my life as often or as intensely as on Utah roads, nor have I seen such anti-social and self-destructive behavior outside of "reality" TV.

East coast driving can be nerve-wracking with its close quarters.  California freeways have wild speeders and sudden stops.  A number of places have more horn-honking than Utah.  But nowhere else have I experienced so many attempts on my life from negligence and/or aggression.

Like anyone, I find any newly-installed stoplight annoying.  But I would have absolutely welcomed one near our house.  There's a four-way stop, but schools here must not teach people how to count all the way to four.  Or two, sometimes.  Or to look both ways.  Or to look at all.

These bad driver flames are fought with kerosine.  Road signs may or may not mean something, and that something may or may not pertain to the present, local situation.  A lane might be coned off for no reason, a sign may warn of a condition that hasn't been true for a month (if ever), a "right lane ends" sign may announce the left lane being closed, or my favorite, "detour".  Just "detour".  No arrow, no distance, no road name.  Is it for a road up ahead?  Is the street I'm on now part of a detour?  Do I need to turn somewhere unusual?  Is something nearby closed?

I suppose it would be a waste to have clear, well-placed signs since these people are only going to ignore them anyway, but it feels like a chicken-and-egg problem.  Why heed a sign if so many of them lie in the first place?

The Politics

Seems like I've touched on this before too.

Presently, Utah is spending its precious few taxpayer dollars (wouldn't want to tax the giant crazy new NSA data center here) fighting gay marriage at the supreme court level.  Utah, the territory which re-defined marriage in order to become a United State.  Highest individual bankruptcy rate in the nation.  Second highest per capita water consumption.  Fastest population growth.  Insane waste and pollution.  All this in a desert.  But the most pressing issue is to stop those monogamous gays.  Yeah, it was time to get out of there.

The Culture

Given the ultra-conservative politics, one would think the culture would reflect a very individualistic attitude.  I had never come across the concept of a Homeowner's Association until we moved there.  Our house (not anymore!) is part of two HOA's - a master and a subdivision.  Doors in the block must use one specific color and type of paint.  Same goes for fences and patios.  The neighbors we like have gotten citations.  So did the neighbors we didn't like.  So have we.  And part of the appeal of that neighborhood is how little HOA involvement there is.  Most places a person can live out there have very steep HOA fees and strict rules, all in the name of keeping property values up, or looking like proper ant colonies, or something.

And God forbid you want a drink.  In Salt Lake City there are a handful of good bars, including some excellent local breweries.  Beyond that, there isn't much to speak of.  All liquor stores are state-owned, restaurants are not allowed to serve alcohol unless food is ordered, and there are all kinds of wacky drinking laws written and enforced by people who don't drink.

Somehow, in the reddest of red states, we've got this little police state full of people who claim to swear by their personal freedoms.  Maybe it just depends which freedoms.  Concealed weapon laws there are truly American - a pistol in every glove box, and two cops for anytime someone gets pulled over.  One coworker (that I know of) wore a concealed gun at work when I was at Novell.  I don't know if the company was OK with that, I sure wasn't, but the state is.  But maybe I'm just sore about gun nuts since one of them tried to burn down my neighborhood.

The Friends

I've done enough harping on Utah.  One can find stuff to gripe about anywhere.  What has made these last ten years good, and what we will miss now that we've left, are the people here who have become our family.

The guys I work with and their families have all welcomed us into their lives.  We talk, we barbecue, we play with their kids, we joke about Mormons (the Mormon coworkers moreso than the others!), and we help each other out.


I couldn't dream up a set of people I'd rather call friends.  I'll miss them the same way I've missed my midwest friends all these years. I think "family" is not a genetic measurement, but a living substance that grows and catches on us like a vine.  Whether buried or up where it's visible, it acts as roots and tangles you up.  We've gone, leaving bits of ourselves there, and carrying pieces of others with us.

The Growth

As Kim pointed out to me the other night, 10 years is not far from a third of our lives.  Plenty of time for personal development.  Though we made new friends and found supportive people, we started out a thousand miles from anybody we would normally turn to.

As I like to say, everything seems like a big deal until you do it.  Our van stopped working in the middle of nowhere.  Kim didn't have her credit card and I didn't even own one yet.  We came out of that OK.  We raised a tiny, neurotic runt of a cat with a huge personality.  We bought, worked on, lived in, hated, loved, and sold a house.  By the time our previous car committed suicide on the freeway coming home one day, it felt like a minor inconvenience.  Entire years might go wrong, and we could laugh it off.

Of course, there have been other things that actually are big deals, whether they're familiar or not.  We had to let go of our beloved runty cat.  We've moved back to the midwest with one fewer parent.  There were scary trips to the emergency room.  There are events where the only option is to grow and come out the other side changed.

As a couple, we've loved each other for what feels like forever.  We've also relied on each other.  Even on the worst days, we each knew there was one solid ally.  We can still worry about changes or situations or possibilities, but I feel like as a couple, we're indestructible.  Whatever is next, we can handle it.

The End

So, we've emerged from our time in the desert.  I'll leave the rest of the allegorical reference there as an exercise for the reader - we've got the next hours, days, years of our lives to figure out.

Saturday, August 16, 2014

Hello, Minnesota

After some crazy days of packing (weeks, if you happen to be Kim), a day of movers loading most of our stuff, and two days of driving across the country with everything else (including our fish, in a mason jar, in a cupholder)...  We have arrived in Minnesota.



Getting settled, finding more permanent housing, and all that good stuff will happen, but for now we're happy to be done with the long drive, and to have the use of our rear-view mirror back.  :^)


Monday, July 14, 2014

House For Sale

Well there it is, our house is on the market.  We're packing up and we're getting out of Dodge.  For certain values of "Dodge".  "Utah", mainly.

 


Wisconsin, you've gone nuts since we left you.  You're full of roundabouts and corrupt politicians.

Minnesota, here we come!  Well, soon.  :^)


update:
...and Sold!  Well, under contact, anyway.  The midwest and its boundless bouquet of  cheeses, sausages and beers feels closer already!

Monday, May 19, 2014

Always Look on the Bright Side of Life

*whistles*

I was a bit bummed about my old server dying when it happened, but it has quickly gone from sad to funny.  In preparing to take that machine (and a bunch of other old stuff) to a nearby electronics recycling event, I removed its hard disks and a few other parts.  During its autopsy, onslow reminded me about its storied history and gave me a few farewell chuckles.

  • Huge case, no room at all inside it.  Crunchy SCSI cables everywhere.
  • Nothing I removed had an even number of screws holding it in place.
  • Of the odd number of screws I removed, none matched each other.
  • The rear fan had a big chunk smashed off of its outer brace.
  • The rear fan was twisty-tied to vent holes in the case.
  • The CPU fan was not a CPU fan.
  • The CPU fan was twisty-tied to cables that sort of ran by the CPUs.
  • Three CD drives (including a caddy loader) were installed.
  • Only one CD drive remained attached to the power supply.

Finally, the unused drive bay which served as onslow's name plate had damaged clips.  It was held in place by duct tape.

Saturday, May 03, 2014

R.I.P. onslow

The oldest computer I still had running stopped last night after a power failure.  It was known early on as "fatbastard" and, in its final hardware configuration, "onslow".  It's the biggest computer I've had (and I've had some doozies), it's heavy, and it's packed with parts that modern computers can't use.  After running almost continuously for 14 years, it's time to say goodbye.

(Yes, I'm enough of a geek that I'm eulogizing a computer.  I'm also retiring its internal IP address.  Just give me this one.  :^)

Onslow started out as a streaming server for RealAudio, if I remember right.  A friend from UWRF's student center went on to work there and bought or inherited some hardware, and I bought or inherited that machine from him.  It was the first PC I owned which never ran Windows - by then I'd fully become a Linux guy.  It was my first multi-CPU machine.  (Back when that was worth noting.)  It had such ridiculous high-end specs in 2000 that it was still worth running now.

Onslow lived with me in two college dorm rooms, my parents' basement, two apartments in two states, and in my first house.  It was part of what made a place home.  Over the university's broadband and a series of awful DSL connections, it has served up my home shell as well as a bunch of websites.  Most of those were of no real consequence, and I'll probably restore at least a few of them on my newer webserver.  But accessing my home network remotely and being greeted by a machine other than onslow, that will take some getting used to.

When the power came on again and I was checking that all my servers and drives were coming online, a few pokes of onslow's power button told me what I knew had to be coming.  I had to echo its namesake in sarcastic disappointment...

"Oh, nice."

Tuesday, April 15, 2014

Eclipse


Photo by John Johnson, creative commons by-nc-sa license.

I took a walk around a nearby park last night, with my gaze mostly fixed on our old pal the moon, during its complete eclipse.  I'm very tired today and my neck is as sore as it's ever been, but I'm glad to have done it.

The last eclipse I saw was while I was in college.  There was a partial lunar eclipse with some cloud cover, and a handful of fellow students gathered to see it.  I impersonated the lecture voice of our astronomy professor and said whatever silly, vaguely-scientific-sounding crap I could think of.

This time was pretty different.  Clearer night, no company, and of course a very beautiful and somewhat rare event.  No loud English accent or laughter, just my footsteps and my own thoughts.

Everyone should spend some quality one-on-one time with the moon, whether it's putting on a big show or not.  I let it be a metaphor for pretty much everything.  It's one of life's constants, and it's also always in motion.  It's a mirror of our own little sphere, and it's also in stark, alien contrast to our familiar home.  That reddish shadow was cast by more area than I'll ever visit, and I could cover it all up with my thumb at arm's length.

I let it represent the end.  There have been some tough endings recently.  The reason I was walking alone instead of with my wife is that she's away for a friend's mother's funeral.  She was in the same hospital as my father-in-law for a while.  Both are gone now, but still connected by the people who love them.  And there was our cat.  She went through her own waxing and waning cycles, and slowly moved her sleeping spot in an arc to keep in the sunlight.  We miss her small steps and giant leaps.

I let it represent the beginning.  If my wife stays where she is for a little while, she might get to meet our new nephew.  His beginning will mark the beginning of two new parents.  Great ones, I suspect.  Beginnings are what make us explorers, what make us want to understand the things around us.  Things like the moon disappearing.  Our beginners' ignorance is valuable; it gives us somewhere to test new ideas and build new knowledge.  It's also scary, so sometimes we fill it with comforting nonsense too.

While I walked and stared, I let the moon and its eclipse represent inevitable change, immovable resolution, good, bad, fiction, fact, fear, joy, miraculous, mundane, and anything else i could think of.

I also imagined spouting nonsense in a loud English voice.

"Now we can see that the Earth is not particularly good at shadow puppets.  Never mind dog or bunny, the Earth is only able to do basic shapes like rock, paper, and scissors.  Tonight, it would seem, it has chosen rock."

Wednesday, November 27, 2013

Giving Thanks

This year has been ... well it's sucked.  I'm not superstitious, but I'm entirely ready for this particular "13" to be over.  Regardless, I have plenty to be thankful about, and I want to give credit where credit is due.

Thank you, smart people.

All kinds, all flavors of smart people.  Smart philosophers who ask interesting and hard questions.  Smart scientists who seek to understand the nature of the universe.  Smart engineers who combine knowledge with craft and create new tools.  Smart businesspeople who enable small pockets to afford big ideas.  Smart politicians who balance demand with reality, present with future.  Smart educators who perpetuate smartness itself.

Everything I'm thankful for leads to some obvious (and many less-obvious) smart people I should thank.

I'm thankful for my wife.  A person couldn't ask for a better partner, and I feel lucky every day.  The main smart person to thank here is her.  Thank you, Kim!  Next come the smart people who helped her become who she is - her parents, her teachers, the various professors who helped her earn her various degrees.  Thanks to all of you!  Then of course there are the smart people responsible for a type-1 diabetic being able to live a normal life.  Canadians Frederick Banting and Charles Best were the first to make use of insulin, and a lot of people before and since have helped too.  Many thanks are needed to many people I've never heard of, living and dead.

I'm thankful for my work.  Programming is both something I enjoy and something I can do well enough that people will pay me to do interesting things.  I have my own set of family and teachers to thank, as well as people like the late Dennis Ritchie.  He created the C programming language and co-authored Unix.  (To me, that's like creating oxygen and co-authoring the atmosphere).  Elsewhere in the web of Newton's shoulders-of-giants are today's Linus Torvalds, Richard Stallman, and Patrick Volkerding, back through Alan Turing and Ada Lovelace and beyond.  Thanks, all you smart geeks.  The fact that I get paid implies I have a string of smart businesspeople to thank too.

Just a couple items in, and already I'm hitting up Wikipedia to figure out whom to thank for what.  That means I should probably add Jimmy Wales.  Not that he single-handedly runs Wikipedia, let alone researched and wrote up the particular information I'm after.  Some "shoulders of giants" are actually "giant collections shoulders".  Thank you, giants, and thank you, shoulders.  That work rests on the web, which rests on the internet, which rests on TCP, which rests on machines and designs that join back in around Turing or so, giving me another bunch of smart engineers, smart mathematicians, and even smart statesmen (yes, including Al Gore) to thank.

At this rate, I'd never get through all the smart people I'm thankful for.  Whether you're a big name smart person whose deeds are clearly visible, an obscure smart person doing interesting things, or you're just smart enough to try and make the world a little better, I'm thankful for you.

Thursday, October 31, 2013

Tuesday, October 01, 2013

Halloween Artist, Revisited in Geeky Detail

A while back, I made a little toy that simulates carving pumpkins. http://penduin.blogspot.com/2011/10/halloween-artist.html
It was during that narrow window when the WebOS-running TouchPad was new and hot, and before HP decided they hated success and killed it.

Since then, web browsers have gown up a lot, and nowadays Mozilla is executing Palm's vision of a browser-based operating system even better than Palm did.  (Sorry, WebOS, I still love you, I'm just sayin'...)  In any case, I've been digging back and dusting off some of my old apps.  When you get your app running on FirefoxOS, you don't just port it to yet another device - you port it to the web.  So now, Halloween Artist runs on damn near anything, including those awesome (and cheap!) Firefox phones that are starting to spring up everywhere.

The platform-agnostic web app:
http://halloweenartist.penduin.net
Play around with it before reading on, if Halloween Artist is new to you.

But enough history; the point of this post is to dive into the jack-o-lantern guts and talk about how the program actually works!

Before we begin, some links!
To this day, I start here whenever I tinker with canvas:
https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial
Back in the day I only used mouse events, and just recently added actual touch support.  Nowadays, I'd suggest going the other way 'round, or at least keeping both in mind:
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Events/Touch_events
There are many guides for doing simple drawing programs using canvas.  This one is very detailed:
http://dev.opera.com/articles/view/html5-canvas-painting/

The first step is to get ourselves a pumpkin image in the background, and a canvas layered on top.  This canvas will track mouse and touch events and let the user trace out shapes.


Next, we need an "inside" image that will show through the carved shapes.  Over that, we'll draw the pumpkin but with the user-drawn parts cut out (made transparent).  As luck would have it, the canvas API has some handy compositing modes that are perfect for these tasks.  The main operation we need is "source-out".  Keep the destination image, except where it intersects with the source shape.  Then it's just a matter of doing a normal, source-over composite.



It's a start!  But to look like an actual carved pumpkin, we need to add some 3D magic to draw the inside edges.  Actually, scratch that - we're going to cheat.  :^)  We'll start with a lower-resolution, slightly-blown-up pumpkin image:


...then we'll lighten it up using canvas's "lighter" globalCompositeOperation and a globalAlpha value of, oh let's say 0.5:



...then we'll "source-out" the face, same as we did with the foreground:


...then shrink it a bit, center it, and draw it between the inside background and the outer face:


We're getting there!  But depending on the shape, our corners might not look very convincing.


Fortunately, all this cheating we've been doing - these composite operations and scaling - it's all very fast.  Even on mobile browsers.  Let's turn up the cheating to maximum and draw that middle layer in a loop, shrinking it less each time.

...While we're at it, each step could lighten up the current layer to a lesser degree than the previous (more "inner") one.  And while we're at that, let's lighten it using a more yellow color; our first pass looks a little pinkish.

By putting that middle-layer step inside a loop and making a few tweaks, we get much more realistic edges:


So, we draw a whole bunch of these middle layers, only to draw right over most of it during the next pass.  It's a bit wasteful if you think about it that way, but consider how much simpler this is than trying to simulate all these arbitrary cut-out surfaces "for real".  Instead, this code builds little bits of pumpkin shell, one layer at a time, from the inside out.  It's a fairly elegant illusion if I do say so myself; we can make a passably-realistic image with a sense of depth, without actually doing any complex calculations or intensive processing.

Warning: more history ahead.  I'll try to keep it brief and on-point.  :^)

Figuring out how "deep" to start (how much to shrink), and how many steps to draw in between, all while keeping the "carve" function reasonably fast, was one of those fun bits of experimentation and compromise.  On a high-resolution display, there can still be artifacts if you draw very steep, jagged shapes.  But as far as bang per buck, compatibility with low-end devices, and the 99%-of-shapes use cases, I'm pretty pleased.

I wanted this to be pick-up-and-play friendly, so every day I'd load the latest version onto my TouchPad and hand it to my coworkers, giving them no instructions.

Early on, it was suggested that the carved image should flicker as if the candle inside were burning unevenly.  Easy!  The carve function now produces two images, the normal one and a slightly brighter version, which is positioned (using CSS) right over the main one.  It fades in and out using a randomized timeout and CSS animation on the "opacity" property.  A few minutes of polish, and the illusion was even better.

I forget who, but one coworker went right for the "Carve" button before drawing anything.  Natural enough instinct.  So, added some logic to see if any shapes had been drawn yet, and if not, give the user some quick instructions.  I'm really glad I caught that, because in showing the app to more people later, about a quarter did the same thing.  Much better to show a hint popup than have users wonder why nothing's happening.

What if the user drew outside the pumpkin?  All kinds of goofy artifacts, that's what.  So, I used that handy canvas compositing and masked the user's input before carving.  As a nice side effect, you can now carve all the way out to the edge of a pumpkin, as though you'd chopped it in half.


This solution led to another problem.  When people realized they could recklessly carve giant holes, they'd see the empty, glowing inside surface of the pumpkin.  Where was the light coming from?


So, between drawing the background and drawing the scaled flesh layers, I dropped in a candle.  I actually took some photos of a nice white candle and GIMPed it into the shape of my blocky "penduin" avatar.  May as well include some kind of signature in this program, eh?  I made two different versions, one for each of the flicker-fading images, and made the flame a bit bigger on the brighter version.  It gives a nice little touch of animation, and adds a bit more to the illusion.

Well, that about covers it.  You're free and encouraged to poke around in the source if you'd like to learn more or add your own tweaks.  (Mind the mess; I left some experimental tweaks and previous-attempts in there, commented out.) Halloween Artist is GPLv3, and since you mignt not feel like scraping down the source from the web app itself (and since my lousy DSL might be down at any given moment) I've made it available on GitHub:
https://github.com/penduin/halloweenartist

Have fun, and Happy Halloween ... season.  :^)


Friday, July 12, 2013

Clipface

Here's "Clipface".  I don't know his real name yet.  He showed up today during a long conference call.



Friday, June 07, 2013

Murphy 2003-2013

Yesterday, after some heartbreaking weeks of decline, we had to have Murphy put to sleep.  There were so many things wrong with her, so many organs not working right, and the road before her was full of aggressive treatments - more drugs, strong painkillers, possibly major surgery...  We just couldn't put her through that.

It was the hardest decision we've ever made, individually or together.  It was the right thing, and the kind thing, but it's left a big hole in our hearts and our home.  We've each lost pets before, but Murphy was as much our child as our cat.  We miss her dearly, but we've done what she needed us to do.  She got to go with those who loved her most right there with her, quietly, quickly, and in comfort.  We're hurting now so that she doesn't have to.  And we'll never stop loving our baby girl.

Tuesday, November 20, 2012

Googly-eyed Ork

I'm not sure what to do with this yet, but I'd like to share it anyway since it's cute.
Ork is an alien critter I've been scribbling since childhood.  This particular version has some good personality to it -- he might need a platformer game or something, someday.  :^)

Tuesday, November 06, 2012

Whew!

Well, it was disgustingly close, but (enough of) the votes are in, and the campaigns are over.  We've said "no thank you" to the worst of the regressives.  Little by little we've said "we are equal" to gays.  And of course, we've said "yes we can" once again.

There's a great deal of work to do to keep this nation great, but we've made some positive moves.  Today, I'm relieved.  Today, I'm proud.

Voted!

Oh, the polls in Utah.  I've seen some crazy stuff here before, but I've never seen a polling place this crowded.  We probably have the LDS church to thank for that - gotta make sure all the good little drones go vote to fulfill their prophecy.  (Nope, not kidding.  Wish I was.)

On our way in, we passed an old couple leaving.  The husband wore two "I voted" stickers - his and his wife's.  The symbolism was priceless.

We were corralled into two lines by last name: A-E and F-Z.  I'll let you guess which one snaked around and out the door while the other actually ran dry a couple of times.  This, folks, is Utah planning at its finest.  After a while, they changed it to A-H and I-Z.  This all took place in a public school, where doubtlessly-stellar alphabet, arithmetic and problem-solving lessons are taught every day.

To everyone who's voted, even the ones whose rationale escapes me:  Thank you.  To everyone else:  What's wrong with you?  Get out there already!  You'll have no right to whine about the state of things if you don't even try to have a voice.

Monday, November 05, 2012

Vote!

It's time to earn your right to complain, citizens!  Get out there and vote!

I won't tell you whom to vote for, but if you support anybody from the anti-equality, anti-science, rape-is-a-gift-from-god party, you really ought to have your head examined.

Friday, September 28, 2012

Open webOS Cameo

Today, Open webOS 1.0 made its way into the world!
http://blog.openwebosproject.org/post/32462950628/open-webos-1-0-edition

This is a big deal to me; it represents a certain kind of immortality for a platform and project that I've got very attached to.  Enough pieces are in play to keep webOS alive now in ways never anticipated, despite the heartbreaking series of corporate blunders that nearly destroyed the project.  I feel a lot like I did when Blender was rescued and turned open-source.

Anyway, I have a small cameo in the Open webOS announcement video.  Not me per se, but my "penduin" symbol, specifically its use in my Picross icon.  At about 1:09 in the video, you can spot it near the upper-left of the app launcher.
To the Palm and HP teams and the entire enthusiast webOS community:  Thank you.  You've made me very happy today.  :^)

Tuesday, September 18, 2012

Tong on Wii

Well here's another fine mess I've gotten myself into: Tong can now be played on Wii!

It's fitting. Back in ... 1997? Some friends and I came up with the idea, and imagined it as a multiplayer game on Nintendo64, the party machine of choice at the time. That didn't happen, of course, but years later I did finish a single-player PC version. Years after that, I ported it to the GP2X/Wiz handhelds. Now, it's come all the way to a home console, and a Nintendo one at that.

...Plus, the line-breaking sound effect is me saying "Wheeee!"

Now before you go off to the Wii Shop Channel looking for Tong, let me save you some time. Nintendo doesn't endorse this kind of open/free homebrew, but unlike some manufacturers, they don't fight it either. Read up on the Homebrew Channel, then visit this site and use its handy packager to get homebrew running on your Wii (they've made it very easy, you won't break anything!) Once you have the Homebrew Channel, you can grab Tong for Wii here; just unzip it to your SD card.

My favorite bit of feedback about Tong has always been that it's a "bad idea well implemented". Nowhere is that clearer than on Wii, with tilt-controlled paddles. I've gotten pretty good at it, but it's probably the hardest and most insane version yet. Why I would be happy about that is a bit of a mystery.

For anyone interested in the technical details, "devkitPro" and "devkitPPC" are what you're after. Cross-compiling to Wii is mostly painless, and I only ran into a few snags. First, libfat needs to be initialized before doing any file access. That isn't the first thing that occurs to those of us who normally build stuff for OSes instead of raw hardware. Second, the guys who ported SDL to Wii did a pretty good job, but when it came to SDL_mixer, I think they got it working for their own stuff and then moved on. The easiest workaround is to resample your sound data to 32000Hz, which struck me as very odd considering how common 41000 and 20500 are. Also, simultaneously playing a Mix_Music and a Mix_Chunk causes some fascinating interference if they're both using tremor (ogg vorbis decoder). In my case that meant saving the short Mix_Chunk sound effects as raw .wav data instead. Finally, as much as I love to use my own simple-as-possible Makefiles, I had a much easier time working from devkitPro's examples. They're very flexible and general-purpose, I'll give 'em that. Everything's checked in; have at the CVS repository if you're curious.

To non-geeks who waded through all that, I should reward you with something clever and witty. ...Too bad. Play Tong for a few minutes; your brain will forget all about such small-scale confusion. :^)

Saturday, June 23, 2012

Evacuations Lifted

This evening, things got well enough under control that officials lifted all evacuations in the area. There's still a raging fire burning up a mountain, and even when it's out, mudslides will now be a problem for people living around there, for years to come. I hope it was worth the thrill of shooting off guns at the dump, whoever you are.

So, our important stuff is back in the house, which I'm told is now as safe as the Subaru it was crammed into. All our servers are alive again, and the rest... will be dealt with in due time. :^)

We have two fundraising suggestions for the mayor, or for... whoever. After all, there's a great deal of effort and treasure being spent fighting this blaze.
- T-shirts: "I survived the great dump fire of o-twelve" etc
- A punching post
...The second one might need some explaining. Basically, we find the dumbass who started this whole mess (before he gets more ammo...) and tie him to a post. All residents of the towns he tried to burn down get one free punch, and additional punches are a dollar a pop. Fire fighters get a full minute free, those who were evacuated get an extra free punch (kids get double!) ...Well the details aren't that important, but you get the idea.

Friday, June 22, 2012

Ready to Evacuate

I've got the reader's-digest version of my life (and my wife's, of course) packed up in the car, and am prepared to grab the cat and flee should the need arise. Whether that actually happens will come down to which way the wind blows. Truly!

http://www.ksl.com/?sid=20945567&nid=148&title=eagle-mountain-fire-expands-to-more-than-4000-acres&s_cid=featured-1

In any case we're safe, the stuff we wouldn't be able to replace is packed, and life's good, just sort of on standby. :^)


update, Saturday afternoon:
No evacuation notice here as of yet. All is still well, if a little smoky-smelling outside. Links to up-to-date information:
http://www.inciweb.org/incident/2928/
https://www.facebook.com/pages/Eagle-Mountain-City-UT/251442428207349?ref=tn_tnmn

Wednesday, June 06, 2012

Dear Restaurant Owners

Stop catering exclusively to rednecks and hillbillies by playing country music and/or hanging TVs on the walls in your establishments. Life is already too easy for these people; they've been wrecking things for the sane for some time now.

I go to your businesses to eat, not to be nauseated by twangy whining and have my peripheral vision harpooned by wrong-aspect-ratio sports talk.

Dear Technology Columnists

Stop calling webOS "dead". The world of technology is not full of "products", it's full of "projects".

Read and digest the documentation over at http://openwebosproject.org/ or at least play with http://enyojs.com/ for ten minutes. This stuff is very much alive and useful. There aren't any Palm/HP Pre or TouchPad devices to be found in stores right now, and that's a shame, but by the end of the year we're going to see webOS running on more devices than you've ever imagined.

That's the thing about opening a platform - it becomes un-killable. A project doesn't need to burn up sales charts in order to be solid, fascinating, and entirely not-dead.

Friday, May 04, 2012

Picross

Shameless plug ahead...

I've made a Picross game for webOS devices. (TouchPad, Pre, Pixi, Veer...) It also runs happily in a modern web browser, including those on iBerry and BlackDroid and AnPhone and whatnot.
web demo:
http://penduin.net/bits/picross/
webOS app:
https://developer.palm.com/appredirect/?packageid=net.penduin.picross

The idea behind the game is that the process of solving a puzzle, using numerical clues, creates a pixel-art picture. I didn't invent Picross; someone much more clever did. But, I turned the idea into an HTML5 toy, and spent many insomniac hours thinking up 8x8 pictures, then testing and re-testing them to guess at their difficulty and make sure the clues weren't ambiguous. I recruited some help too; my wife contributed a handful of puzzles, as did a coworker and an enthusiastic early adopter.

Like all my little pet projects, it's open (GPL3) and you're encouraged to peek inside and learn from or build on it. I do sell the 99-cent webOS app with all of the (384, but who's counting) puzzles and the builder tool enabled, but when I say it's open I mean it - it's not hard to enable that stuff anyway if you're broke/cheap/webOS-less. :^) For BlackBerry PlayBook users, I'll probably release the game and demo in the BlackBerry store too at some point, but for now the web version runs very nicely.

Happy Puzzling!

Fortune Cookie

Wednesday, February 22, 2012

Evil Potato

My wife got me a truly exceptional present for Valentine's Day, one so perfect it needs no explanation:


...Well okay. According to the spectrum of confused reactions this got at work, maybe it does need some explanation. It's a provide-your-own-potato kit, but more importantly, it's GLaDOS, the insane artificial intelligence from Portal, in humiliating potato-powered form, as seen in much of Portal 2.

I could explain further that Portal and its sequel are video games, crafted with wonderful dry humor. They are played in first-person, which means my valentine can't watch them in action without getting motion sick, but she has overheard much of the game's story and my resulting laughter. And now, we've got Portal's antagonist stuck in a spud in our home, ready to insult us and scheme about murder anytime.

So romantic, it brings a tear to my eye. ...Or is that the neurotoxin?

Thursday, February 09, 2012

The People of Utah: Mr. Ice Fisherman

I overheard a (Mormon) guy talk about an ice fishing trip he took recently. This is either a quote or a very near paraphrase:

"It's fun for the first hour, but then you're like, it's really cold here and there's not much to do."

...Well, I suppose those things would be true if you forgot the beer, or if your religion forgot the beer for you. What's next, beerless inner tube rafting? Silly Mormons.

Thursday, January 19, 2012

Censorship, Freedom, Soapbox

I don't want this blog to be primarily a political soapbox, so I won't harp on this topic again at least until the next specific outrage. But I have my own two cents to say about the specific power grabs Hollywood is currently pursuing, and about the shift of power to the elite in general.

In the 1990s, the DMCA was enacted in the name of fighting "piracy". It was wrong, it was overreaching, and it was immediately abused. It remains so today. The discussion should be about how much of it to dismantle, not how to give those same for-profit actors even more power over a fundamentally democratic, peer-to-peer network.

In the broader picture, here on Earth, speech and money are not the same thing. Corporations and human beings are not the same thing. The discussions should be about how to protect speech from money, and humans from corporations, not how to grant human rights to non-human entities while denying them to humans.

The great equalizer in an alleged republic like ours is that every citizen has his vote, and his voice. But this has been overturned: the strength of any citizen's voice is now directly proportional to his wealth. If your individual ability to spend political money makes a blip on a scale populated by billionaires, then you've got a voice. If not, then you have only your vote, and in fact that will be influenced by the voices you're able to hear. The wealthy voices. The voices which can coerce an otherwise deadlocked government into supporting broad, unaccountable, no-due-process censorship. These are voices we should fear, avoid, or at least hear with the heaviest of skepticism.

But we don't.

We keep looking for the next quick fix, the next promise of competence in a pool of puppets, the next lie we wish were true. And we keep ignoring the truths we don't like. We respond to marketing better than we do to fact, maybe because it's more seductive, maybe because we're just plain stupid. In poetic and political terms, we deserve the government we're getting, because we did nothing to prevent it. The government I refer to is of course not made of senators and presidents and governors, it's made of CXOs and boardrooms of corporations, accountable not to voters, not to justice, not even to popular opinion, but to profit.

Perhaps I'm just old now (I'm certainly younger than the old white men making the claims and decisions that bother me so) but I no longer can reconcile the world I live in with the loudest voices within it. They seem alien and factually null. But they've got nearly all the power, and can seemingly co-opt anybody as necessary.

Well there's my two cents. I need to give my brain a break from this stuff, it's just too draining. I'll translate that into giving my (admittedly puny) readership a break too. If I've made you depressed, my advice is to read up on something awesome and optimistic for a while, for example NASA's newly-launched Mars Science Lab mission.

Tuesday, January 17, 2012

Censored.

I've babbled about the rise of the wealthy and the corporate at great expense of the populous, a number of times. Well here it is again.

Today, myself and a few other folks who care about individual freedom are blacking out our websites in protest of some truly horrific stuff that our corporate overlords have in the pipeline, namely SOPA and PIPA.

(If this is new and/or confusing to you, there's another good article on slashdot.)

Watch the videos, read the commentary, and if you value anything about the internet as it exists today, voice your concern.

[edit: the following section is added years later, in November 2018.]

That last link is broken, but these battles continue.  The laws and acronyms have new names but all the same terrible ideas are still buzzing around.  Take a look here for some solid info on what's happening and what you can do about it:
https://www.wizcase.com/blog/ultimate-guide-internet-censorship/

I was on the fence about whether to add this link, since it has popup ads for VPN subscriptions (in addition to a section which also has affiliate links to sign up for such services) but there's real information to be found there, besmirched as it may be by commercialism.  VPN's are not a bad concept, of course, and in practical terms they're almost necessary now; I just hate that capitalism is doing its best to both destroy the internet and sell it back to us.

Saturday, December 31, 2011

The Curse of O-Eleven

We've had an interesting year. For values of "interesting" that border on comedy-of-errors. And for values of "comedy" that border on "tragedy". We actually started (and stopped, and started again) keeping a list of things as they went awry. I won't bother posting that, but here are a few highlights...

Things that destroyed themselves (or each other, we suspect):
- TV
- DVR
- Dish receiver (suspected of killing a crappy TV and a beloved DVR)
- Dryer
- Refrigerator
- Car (ruled a sudden suicide - melted its own engine)

Things that simply broke:
- Kim's tooth
- Kim's elbow and wrists (not "simply"; there was a spectacular fall)
- Bathroom light bulb (also not simple, burned Kim's fingers first)
- Neighborhood sprinkler control system
- UPS (details here)
- Internet access (including several entire weekends)

Things found in unusual, fun places:
- Detergent: entire bottle's worth, laundry room floor
- Orange pop: half can's worth, Kim's purse
- Wasps: old car's mirror

This year also marked a number of "firsts":
- Kim turned 30 (plans to do this many times)
- Owen published his first phone/tablet apps
- Owen made his first pony tail (Kim's hair, see her broken arm above...)
- We bought (instead of received for free) a television
- We now have the first "nice" car either of us has had

Plenty of other stuff happened this year, which we either can't think, of or refuse to speak of ever again. But from this point on, anything that goes wrong can no longer be blamed on the Curse of O-Eleven. We'll have to blame it on the upcoming end-of-the-world instead. ;^)

Happy 2012!

Tuesday, November 29, 2011

Uninterrupted Power Supply, Interrupted

Preface: a UPS is something a guy like me plugs his servers into. Picture a big heavy battery combined with a short power strip. If the lights flicker, stuff plugged into the UPS stays on.

Admittedly, I bought my last UPS in a rush. I don't actually remember doing so, but I must have picked it up somewhere last-resort-y since it has emblazoned upon it the logo of a certain squad of geeks who shall remain unmentioned. So it was definitely not the best ...purchase, I could have made.

But let us ponder a simple question not even of electrical engineering, but of common sense.
When the device eventually fails, should it become:
a) a heavy, non-battery-backed-up power strip
b) a brick through which no electricity passes whatsoever

I'll give you all a few minutes to think about that, a few more if you work for a blue-and-yellow price-gouging store or their branded-Volkswagen-driving subsidiary.

Did you get it? Do you think that a device, whose entire purpose in existing is to provide uninterrupted power, should be designed to fail in such a way that power will still be supplied? If so, good for you! You have the intelligence of a human being. Have a cookie!

If you got it wrong, then no, I don't wish I'd bought your damn extended warranty, so stop asking! The last thing I want at this point is another identical UPS with aspirations of one day growing up to be a brick.

Sunday, November 13, 2011

Freakyforms

Since before I can remember, all through school and well beyond, my notebooks and whiteboards and every hotel memo pad I have ever encountered has gotten filled with scribbled creatures. In elementary school, Kris and I filled a notebook with aliens whose names all end in "ork". The closest thing to a "party trick" I know is to have somebody scribble some random lines, and I'll make a drawing out of them. Nearly every time, it turns out to be some sort of weird-but-cute, possibly human-esque, creature.

Nintendo has just released a $7 toy (as a download for the 3DS) which not only encourages me to create all the critters I can dream of, it brings them to life.


Non-creative types don't get it at all, and perhaps the only audience for this kind of thing is a sufficiently weird person like myself, but I don't care how many peers I have; this thing is pure magic.


All the critters that make their way out of my brain and onto the screen spring to life and are at my command. They walk, swim, fly, and drive around a world inhabited by other stuff I've drawn, collecting gems for Ork or making deliveries for the Shmoe. Collectibles, secret blocks and hidden treasure chests are everywhere, often revealing yet more stuff to draw and customize as they're found.

I've been known to animate a handful of my drawings. Some have even found their way onto the web. But now, anything and everything I can scribble can be automatically animated and made interactive. I still want to tell stories and do some old-fashioned animation, but the bang for the buck here is unreal.

Thanks, Nintendo, 'cause releasing a new Super Mario, a new Zelda, and a new Mario Kart all within a month here apparently wasn't getting you quite enough of my money. ;^)

Tuesday, November 08, 2011

Election Day

As usual, I advise you to get out and vote. This time I will also add, "while you still can".

Of course I don't expect the institution of voting to disappear anytime soon. There's voting in all kinds of places where there is no actual representative government. The US is simply en route to becoming one of those places. Not that voter suppression efforts aren't also underway.

My guess is that historians and intellectuals, so long as either are permitted, will remember 2010 as the moment the fatal blow was struck to US Democracy. "Money is speech", said the supreme court. "Corporations are people". With that, the influence of us 99-per-centers is on its way out, and the richest of the rich have carte blanche to buy up control and run things as they see fit.

http://www.supremecourt.gov/opinions/09pdf/08-205.pdf

This is actually not a partisan matter, but depending on your views, it's bad for different reasons.

This state of affairs is clearly bad for us progressives, since it means if there's no profit in X, X won't get done. Medicare, social security, education, any and all regulation intended to keep a spark of human fairness alive... If nobody gets obscenely wealthy from it, it's out. Privatize any and all remaining programs. "Privatize" is simply another way of saying "unaccountable government for-profit".

For the "conservatives" (an odd term since they do very little conserving) the picture is no less bleak. Make no mistake, corporate-sponsored government is still government. You hate taxes, but I'm guessing you also hate being nickel and dimed by fees, getting gouged by inflated rates, and being trapped in unfair contracts with no alternatives. And if you think the "free market" will save you, remember that all pretense of fair competition would be long gone if the richest companies had their way. Think it's hard to start a business now? Let's see how it goes when those you'd be starting up against get to write all the rules. You can elect and recall people who tax and regulate you. When corporations pull this stuff, there's not a thing you can do about it.

Of course, there are some things we can do about it at this point, if enough of us realize it in time. We have to understand that from this point on, a great deal of money is going to be spent lying to us, and trying to buy us.

An obscene amount of money. But it's a drop in the bucket to the top 1%.

We still have the vote, and the rich aren't in charge simply because they're rich. Not yet. The campaign will now be to convince us to tear down the things that stand between we the people and unbridled corporate greed. Labor unions and collective bargaining. Environmental regulation. Transparency. Public services and utilities. And most critically, education. The messages will be crafted by the best marketing money can buy. Much of it won't even look like marketing. Those of us seeking to be well-informed will have a steep, uphill battle, since the process of discovering who funded what is already disastrously opaque. We will be lied to every which way. In many races for public office, whether they realize it or not, every single viable candidate will have already been co-opted by profit-driven forces.

Besides the vote, we can move our money away from the giants and into local institutions. This is a pain, but there's help available. Since money and power now have a direct exchange rate, voting with our dollars is one of the few real retaliatory tools we have. Not that there's much stopping the big multinational guys from buying up the small local ones.

The endgame here is simple, and it is the goal of all business: profit. It will be the task of all citizens to be productive and create profit. Not for ourselves, mind you. Profit for those few who already have everything. In order to maintain the status quo and prevent an armed revolt, just enough civil liberties and profit-sharing will be maintained and well-promoted, dressed up in feel-good, patriotic and probably religious language. But liberty as we knew it will have passed. The fatal wound from 2010 is already looking pretty infected. Just look at all the teabaggers elected since "money is speech", currently making great strides in breaking down the government and handing over all the control and money to corporate giants.

Prove me wrong. Go out, vote, and for Pete's sake prove me wrong. :^)

Monday, October 31, 2011

Happy Halloween!


We carved our pumpkins...


We put on our costumes...


We had ourselves a very successful Halloween as Pirate and Parrot.


...and Cat.

Monday, October 24, 2011

More Carving

As of this morning, Halloween Artist appears in the opening, "Recommended" section of the HP app catalog.

To celebrate, here are some designs courtesy of numerous anonymous Jamba Juice workers on Utah Valley University's campus:









No shortage of good jack-o-lantern designers out there. :^) Some pictures from older releases are making the rounds on twitter as well:
http://twitpic.com/74zvqw
http://twitpic.com/74e7ax
http://twitpic.com/74d900
http://twitpic.com/74d4u7
http://twitpic.com/74av37

Thanks for your interest (and downloads) everyone, and keep carving!

Thursday, October 13, 2011

Halloween Artist

I've put together an app for the HP TouchPad called "Halloween Artist". It was fun to develop, and it's even more fun to play with. It went from being an idea I was pretty sure I wouldn't have time for a week or two ago, to being available in the App Catalog as of yesterday.

Kids in particular love this thing. The idea is very simple: draw face shapes on a pumpkin, hit a "carve" button, and boom, your design gets cut into the pumpkin and has a nice flickering candle glow behind it. Undo if you mess up, save a JPEG file if you like the result.


There's a little demonstration here:
http://www.youtube.com/watch?v=rV_pYYDJCF8
...and a young friend of mine doing some beta testing here:
http://www.youtube.com/watch?v=vz9SJGFrM7w
http://www.youtube.com/watch?v=SKh-4b8tdDU

This is, I guess, just the latest in my established line of cute Halloween projects. :^)

Friday, September 30, 2011

Happy Blasphemy Day!

Yes, it's a real thing...

Let's celebrate today the idea that every once in a while, maybe we could be not so damn uptight about religion. I personally don't consider anything truly blasphemous, with the possible exception of operating a grill without a cold beer in your hand. I'm with Socrates here, the unexamined life is not worth living. So, I'd like to share some personal favorite life-examining "blasphemies" of mine with you, and what better day than today.

http://www.joelwest.com/tagged/Bible_study
Joel's a guy I used to work with. Great guy, and very dedicated. He's also extremely funny. This link is to a subset of his blog in which he explores the idea of not interpreting the bible as stories and lessons, but taking it as literal history and fact. Hilarity ensues.

http://www.jesusandmo.net/
"Jesus and Mo" is a favorite webcomic of mine. It's very smart, and very direct in holding up its societal mirror. It's also quite humorous, provided the reader has a sense of humor.

http://www.venganza.org/
Ah, the church of the flying spaghetti monster. Not much needs to be said about this; it's well-known enough that I can say things like "let's just pray to the flying spaghetti monster that it works this time" and people don't look at me with any more confusion or concern than usual.

I don't have much cleverness to contribute to this fine blasphemy day, but I will say that if forced to choose a god, I prefer organic, free-range deities to the ones kept in cramped, steepled cages. I just don't like the idea of cutting off a god's beak and pumping it full of artificial growth sacraments. Seems blasphemous.

Thursday, September 01, 2011

Penduin's Ping Pong Paddle


The office got a ping-pong-slash-air-hockey table, and we all got paddles.  They may be miniaturized sports, but I'm still massively bad at them.  We all scribbled on our paddles to identify them though, so I do have something to bring to the table.  :^)

Tuesday, August 02, 2011

The Yukon Blind Dream

I had many excellent teachers at UWRF, often taking the listed professor into greater account than the course description when signing up for classes. It's with no lack of respect for any of them that I single out Dr. Imtiaz Moosa as one of my absolute favorites. I may be a programmer by degree and vocation, but it's his philosophy classes I remember most vividly.

When I was in his classrooms, Dr. Moosa's eyesight was pretty lousy by most standards, but he could see. More importantly, he opened up students' metaphorical eyes by the roomful. This guy will make you think, hard, to the point of discomfort. And to me, that's a necessary and welcome element of growth.

Today, my dear old professor can no longer see, but he's as strong and bombastic (to use one of his favorite words) as ever. I recently got back in touch with him over email, and learned of a pretty extraordinary adventure he took this summer:

http://blog.mailasail.com/theyukonblind

There's a lot of reading there, but it's well worth the time. He and a friend chronicled their Yukon journey, along with some hints of the fascinating discussions they had. I feel like I knew Dr. Moosa pretty well, for a student anyway, but reading his co-adventurer's account showed me some new sides and surprises along with the classic, familiar moments:
He insists on walking without being connected to me, and is quite happy walking into the odd bush / tree for that freedom. I describe the terrain and scenery, and he just responds with: "I just love this".
That's him, all right. It's even a good metaphor for those of us who loved his classes - we may not have had all the faculties to fully appreciate what he presented to us, but there's nothing we'd have traded for the journey.

Dr. Moosa and I talked a fair amount outside of class, with topics covering a full spectrum, but as I read the second-hand story of his vision permanently failing, I recalled a conversation we had that at the time seemed pretty insignificant. He and I both had pretty good-sized bald spots (though his was much more age-appropriate) and he was telling me how it was a source of embarrassment. My view was, and remains, "Well, it's only hair; I could be losing something useful". I remember him being impressed with my attitude, and maybe even a bit comforted. And now of course, he has lost something useful, and it feels like a pretty stupid thing to have said.

But it wasn't his hair or his eyesight that made him my favorite professor. If today we were to get into a good old-fashioned debate, and he were to bring my old words back to me, then I think I could argue my way around them. ...And that's as much his fault as mine. :^)

Monday, July 25, 2011

Negotiations

I've got it! I have figured out where the Democrats learned how to negotiate. Behold:



...If you or your browser don't want to play the clip, here's the highlight: "As a gesture of good will, I'm gonna give you another hostage."

Tuesday, June 28, 2011

Failure in Lyrics

Once in a store, and once in an airport restaurant, I have recently encountered a certain song. I have no idea who sings, it and I don't much care. It's catchy, but not my style. In any case, the song fell onto my growing list of "terrible crap that needs to go away" because of the following lyrical tragedy:

Just wanna make the world dance
Forget about the price tag

...So, an alleged songwriter somewhere needed a two-syllable finance word that rhymes with "world dance". A two-syllable... finance... word... Oh! I know, "price tag"!

Come on.

Thursday, June 16, 2011

Wednesday, May 11, 2011

GIMP Color Range Mapping

[note: This first section was typed in early February]

I've been a fan of the GIMP (GNU Image Manipulation Program) for a looong time. It's helped me create and modify and fake many, many pictures over the years.

A while ago, one of its features vanished. The code behind it was a mess, and the developers didn't see its value. It would have been a pain to go through and make it work the way a modern GIMP plug-in should, so it (along with other stuff which richly deserved to get culled) was lost. Overall, GIMP got better, but a handful of people including myself really wanted our color range mapping back.

We had some tricks. An old binary of the plug-in would still load and run happily on newer versions of GIMP until pretty recently. But GIMP has moved on, and at this point, that crufty old plug-in just won't cut it.

Well, long story short:
https://bugzilla.gnome.org/show_bug.cgi?id=641893

I fixed up the code, and submitted a patch. With any luck, future versions of GIMP will include my refactor of that good ol' plug-in.

Here's what it does, if you're curious:


You define a pair of source colors (usually colors from your current image) and another pair of colors as a destination. All areas of the image that match your source colors get changed to your destination colors, and, most importantly, all colors that are in between your source color pair get translated as colors between your destination pair. It's very useful for altering images that have anti-aliasing baked in, or large patches of color with subtle-but-important variation.

...As you might see from the discussion on gnome.org, even the developers don't really understand why this is so great, so don't feel bad if you didn't follow all that. :^)

[note: the following section is from today]

I've given up trying to convince the developers to take my patch. Or even look at it, it sounds like. It's too bad, but anyone else like me who wants the feature back can apply my code and have it. I'm tempted to babble about some of the common things that open/free software gets wrong when dealing with its community, but they're largely known.

Probably, I should have brought it to them as "here's a new feature" instead of "this went away and I've revived it". Then I'd only have had to climb the shallower "not-invented-here" incline instead of the steeper "we already decided no" one. Either way I'd have still faced "why would you want to do that", which is particularly obnoxious and spans all of software (and many other areas, I'm sure).

Ahh well, live and learn. Or, just live. :^)

[update: 2011-08-19]
to patch against stable release code (as opposed to the latest from the git repository) give this a try:
http://penduin.net/projects/color-range-mapping-2.6.x.patch

[update: 2018-01-10]
If building from source is not your cup of tea, others have figured out another clever way of resurrecting this feature:
http://billauer.co.il/blog/2010/06/gimp-map-color-range-mapping-64-bit/
https://wtanaka.com/node/7904

Sunday, May 01, 2011

He's Dead

Holy crap. I've felt a lot of things upon hearing the news that someone has died, but this time, I feel like the world is lighter. Better.

http://www.npr.org/blogs/thetwo-way/2011/05/01/135905185/osama-bin-laden-is-dead-officials-say