Author Archives: Christopher Roe

About Christopher Roe

The Artist Formerly Known As Mel Ebbles. I'm a programmer, 3D modeler, papercraft designer, gamer, and tinkerer. I live in the Republic of Texas with my wife Gin and 4 cats.

Blessed by Nurgle

I’ve been under the weather for nearly the whole month! That’s gotta be a new record.

First, it started out as some sort of cold/flu bug, then my allergy-induced asthma kicked in overtime and stretched it out. Normally the asthma isn’t a big deal, and I used to be able to keep it in check with an over-the-counter inhaler. Unfortunately, all OTC inhalers containing chlorofluorocarbon propellants were taken off the market on December 31, 2011. Apparently, a few years ago, some green eco-friendly legislation was passed by Congress to ban CFCs because they make the hole in the ozone layer bigger, and the clock ran out on December 31 for Primatene Mist.

Anyway, that means I now have to visit a doctor and get on a prescription regimen if I want to feel like my old self again. That’ll cost me $150 if I go to one of the local clinics. We’ve been eating ramen noodles and pretzels for most of the month because my wife got screwed out of her January teaching hours at the last minute by her pointy headed boss, and my earnings alone are barely enough to keep the bills paid. I don’t have $150. In comparison, a Primatene Mist refill only cost me $18 at the local grocery store back when it was available. That was nice while it lasted.

I’ve had to improvise by substituting the Primatene tablets, which are still available. Unfortunately, the reason I was using the inhaler in the first place is because it was faster-acting, more effective, and didn’t have the side effects that the tablets do. The ephedrine (the bronchodilator component) in the tablets is a stimulant that also wires me like caffeine, and the guaifenesin (the expectorant component) makes me pee like a racehorse every 45-60 minutes. So, between the overstimulation and the full bladder, my sleeping patterns are out of whack.

In addition to that, the 20-plus minutes it takes for the tablets to kick in and their relatively short half life means they’re just not an adequate substitute for a fast-acting inhaler if an actual attack occurs, and I’d just as soon avoid an expensive trip to the emergency room, which also means I have to use them prophylactically instead of only when I need them. It’s not an ideal treatment regimen by any stretch, but it’ll have to do until I can afford to see the doctor.

I guess nobody told our politicians that sunburned Antarctic penguins aren’t a voting constituency! 😆

Life update

Been a while since my last blog post, hasn’t it? Sorry about that!

This morning, Mrs E and I helped deliver packages of gifts and food to needy people as part of the Operation Blue Santa program. It was nice to see such a huge turnout–so many volunteers showed up at the local police substation to help deliver the goodies that there was a long line of cars spilling out of the substation’s parking lot, and by the time Mrs E’s truck reached the loading zone, we’d already unloaded half of the big truck that came from the warehouse. We delivered to 7 households ourselves in 2 trips (big boxes!), and when we loaded up for the second trip, the warehouse truck was practically emptied and there were several cars behind us. It was very heartening to see so many volunteers. Lots of them even brought the kids and made it a family thing.

We took a break to eat breakfast at home after our second delivery run, and it was at this point that I broke into a little old lady’s house with a screwdriver.

Well, actually, I just wanted an excuse to say “I broke into a little old lady’s house with a screwdriver” with a straight face. The little old lady was our next door neighbor Mrs Grace, and she and her husband Mr John were locked out of her house.

Anyway, we went to the central Operation Blue Santa warehouse after our breakfast. I was expecting to make at least another delivery run, but there were apparently so many volunteers there that it was practically emptied before noon. They were bringing back undeliverable boxes at this point, and they started the volunteers’ barbecue early. The line for that took nearly half an hour to get to the food itself, and they had some entertainment to keep the volunteers amused while in line.

There was a local boy band which I’m told put on a good show, a screen/projector showing video footage from earlier in the operation, Blue Santa and Mrs. Blue Santa (yes, exactly like it sounds), and my favorite part of the entertainment: the spangly blue-suited Elvis Presley impersonator. That was hilarious–the man had the pelvic moves down pat, some seriously impressive sideburns, and he had a bunch of silk-ish scarves that he was handing out to women who caught his eye. Mrs E was one of them, and I nearly died laughing when he danced up to Mrs E and put a pink Elvis scarf around her neck.

The barbecue was good. Nice brisket and awesome sausages that had a nice spicy afterbite to them. We came home, passed out on the sofa from the ensuing meat coma, and came to about an hour ago. It was a pretty good day, and the sheer number of volunteers who showed up really did a lot for my flagging opinion of the human race as a whole.

I mean, there’s so much negativity and sensationalism in the news that you’d think we were a modern Sodom and Gomorrah in dire need of a visit from a bolide of significant size, but that quickly gets put into perspective by something as simple as visiting a local charity or taking part in one of these programs that help other people. You see how many genuinely nice people there are out there, and you get to see the faces of the people who are being helped by these programs. It makes a guy feel pretty good.

What else have I been up to…well, besides our modest little part in Operation Blue Santa today, not much that’s newsworthy. 2 birthdays in November (Mrs E and her dad), Thanksgiving with the stepkids, a wedding reception (My stepdaughter Sara and her husband Alan got married in South America a while ago), I turned 37 earlier this month, I added 6 new items to the Ebbles Labs section of the WWG catalog, and…I think that’s the entire remainder of the list of notable events.

Okay, on the hobby/work front: Mrs E also introduced me to one of her friends back in November, who is a dollhouse miniatures enthusiast. I came away from that conversation rather taken with and fascinated by that hobby. I’m planning to dip my toe in those waters, because I see intriguing modeling possibilities in the much larger size of 1:12 and 1:6 scale items, and I think it’d be a fun thing to do. I mean, can you imagine the amount of detail I could pack into a model that big? It’s a good thing I have a printer that can feed up to 13×19″ paper.

This is also the time of the year where my fascination with whimsical toys resurfaces and I find myself experimenting with one of my longtime projects. I’ve been working on a sort of paper minifig (think of a little block person like Lego people, Kubricks, or Minimates, except made of paper) for a few years now. Normally, I complete the holiday quarter without being fully satisfied with my efforts for any number of reasons, but I’m getting very close to something that I’m happy with this year. In particular:

  • I lucked out with a combination of size and proportion that allowed me to do distinctly recognizable and separate male and female bodies.
  • My experience and comfort level with round wheels and cylinders, over the past year or two, has allowed me to make certain parts of those minifigs pleasingly rounded without being fiendishly difficult to assemble.
  • My experience with the Ares Vulcan, M722, and UD-41 has provided me with the engineering solutions I needed to make the individual parts modular, interchangeable and poseable.
  • The tools I have now made some things possible that weren’t very easy to do before, like being able to “sculpt” hairstyles out of a common master hairpiece without having to model, unfold, and export every unique hairstyle separately.

I’m hoping that I finally nail it this year. I’m planning to start a separate part-time side business selling preprinted paper toys and dollhouse furnishings sometime in the new year. It’s a different market and a new challenge for me, and it lets me scratch a creative itch that I can’t in my current line of work.

Okay, that’s it for now. 🙂

Fun With Localization

I implemented something pretty fun today. You know how I said a while back that the whole point of the experimental storefront was to push the envelope to ridiculous lengths? In that spirit, I added realtime currency conversion to the price widgets.

This is what you see in the United States, in a region outside of my sales tax responsibility:

This is what you would see if you were another unfortunate denizen of the Republic of Texas, where digital goods are somehow considered to be “tangible personal property”:

And now for the fun of it, some other currencies (GBP, CAD, and EUR):

Okay, here’s how it works. It polls OpenExchangeRates.org for the latest exchange rates, then saves them to the database. Every hour and 30 seconds afterwards, it polls OpenExchangeRates.org for a fresh set of rates. So, the storefront updates the rates every hour, shortly after OpenExchangeRates updates their values, and in between, the buttons and catalog price strings pull the rates stored in the database and apply them to the default USD pricing.

The actual PayPal transaction will probably still display in USD–I don’t have any foreign currency to test it with, and this is something I guess we’ll need to find out after the public beta starts, but I’m pretty sure it’ll still be transacted in USD as that’s the default currency in my account. However, the storefront rates will still give you a good ballpark figure in your own currency, plus or minus a few percentage points, and that’ll save you the bother of hitting up Google for a conversion for every item on the page.

About those few percentage points of difference…well, there are actually a few different currency exchange rates. The interbank rates are what large blocks of currency are traded at by banks and financial institutions, then there are the retail rates, which are generally higher and assessed against smaller amounts of currency. Most currency converters and the newspapers generally display the interbank rates, while the retail rates are what you get zapped with when you exchange cash in another country or make an international transaction. To address that, I’m planning to add both a “quoted rates are approximate at best” disclaimer and add an extra 3.5% to the displayed total to account for PayPal’s conversion fee, which should bring the displayed total pretty close to what you’d actually end up paying in a non-USD currency.

Work on the experimental storefront will be somewhat spotty over the next few days, since there are a few things I have to do over at WorldWorks. Nothing sexy, mostly just time-critical administrative stuff, so I wanted to post this update to tide you guys over in the meantime. 🙂

Ouch II: The Brainhurtening

I’m surfacing for air briefly so you guys know what I’m up to. 2 biggies:

First, the USSC gunboat has actually been more or less finished for the past few days. 15mm and 28mm sizes both. Second, there was a good reason for that post a while back about online shopping being unnecessarily sucky. 🙂

I’ve spent the last several days up to my elbows in some pretty cutting-edge stuff. HTML5, CSS3, AJAX, PayPal’s brain-hurting APIs for Express Checkout and Digital Goods, and more. I wanted to see, as an experiment, what I could do with that kind of power at my fingertips. So, it’s not really a production environment, it’s more of an experimental testbed that pushes the envelope.

I don’t want to bore you people with another textwall of dry technical details, so let’s just go to a couple of screen captures and go over the high points. Below, you can see a snapshot of the partially completed front page, with placeholder graphics. Just to give you a sense of where things will be visually.

Nothing too special there, just some news posts on the left side and what will eventually be a list of the last X new releases ordered from newest to oldest.

Okay, here’s the part that really made me work for it. This is the product page–ignore the placeholder graphics. I basically just grabbed the first promo on my hard drive and used it as a placeholder all over the place. This is where the fun stuff starts.

Below the header, on the right side of the nav strip, is a location widget. Instead of filling in crap at checkout, you just set your location on the nav strip. The first thing you’ll see is a dropdown selector for countries, then if you happen to select a country that has states or provinces associated with it, a second dropdown selector will magically appear next to it. That’s all it needs from you, a country and sometimes a state or province.

Below that, on the right side, you’ll see a price and a PayPal button. This deceptively simple looking arrangement required a staggeringly disproportionate amount of work to set up. Here’s why:

When you click it, the next thing you’ll see is a PayPal dialog right there on the same page.

When you click the Log In button, it pops up a secure mini-browser:

Then once you’ve logged in, it takes you right to the confirmation step:

Clicking on “Pay Now” returns you to the store, immediately displaying a summary dialog with a download link:

Note that I did NOT leave out any intermediate steps. What you just saw is literally what a PayPal account holder will see, step by step. I’m not kidding. That’s all there is to it. No forms to fill, just a simple PayPal login and a couple of simple button clicks. In fact, if you let it remember you, you can collapse the purchasing process into two clicks. Well, three, if you count closing that last confirmation dialog.

Okay, here’s another surprise. There is zero user account management. You don’t register or log in or anything like that. This part makes use of some pretty fun HTML5 functionality. Your download links, when you buy something, are saved to local storage on your own machine. It starts right after you buy something (note how the buy button has been replaced by a direct download link):

It’ll stay exactly like that, and the links don’t disappear unless you happen to delete your cookies and flush your browser cache. You don’t log in at all, you just visit the page and it’s all there for you. Now, if you deleted your cookies and flushed your cache, or you’re just accessing your stuff from a different computer, this is what you would see:

Uh-oh, no downloads found. However, here’s the other fun bit: syncing your downloads. All you have to do in order to sync your downloads is enter your PayPal email address and any invoice ID from any previous order:

Bam, just like that, your download shows up in your collection again:

Anyway, this is all a work in progress, and it’s very much an experiment. I don’t know how much of it is going to be practical in a production environment, and I’m pretty sure it won’t play nice with older browsers and what have you. But if you’re using a current version of a modern browser, it’s a fun peek into the future.

Some of the stuff under the hood, mostly to do with the PayPal API backend, will likely make it into the next version of the WorldWorks storefront, and having a separate experimental storefront lets me play around with some ideas and prototypes that we wouldn’t normally dare implement on a production storefront. 😀

Thoughts on online shopping

Introductory Waffle

I’ve been thinking for the past few days about the differences between now and back in 2003, when I first got started. Specifically, in the area of online shopping.

It’s amazing to me, that after all this time, the user experience during online shopping still sucks. It’s not so bad the first time, but when you find other stores you want to shop at, you’re likely to run into differences in the user experience. I don’t really like this. For me, the optimal user experience should be similar to walking into a real store. You pull out some cash or you swipe a debit/credit card, and you leave with a bagful of goodies. Short, sweet, easy. No passwords to remember, no worrying about the safety of your personal information, just pay the cashier and leave with your purchases.

Of course, this isn’t literally possible online–if only to prevent fraud and maintain some sort of accountability, there needs to be some step to establish that you’re really who you say you are. So, online businesses have to ask for your name, address, card number, and all that, and they pass it along to their payment gateway, which will verify or decline the transaction. That’s unavoidable, but it can be made relatively painless. Not completely painless, but relatively painless. I’m gonna share some purely hypothetical thoughts on that subject over the next few pages of this post.
Continue reading