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.

The iPad Pro Experiment

Happy New Year’s! I’m in my recliner right now composing this blog entry with a big grin on my face.

I got a 9.7″ iPad Pro for Christmas. I just spent a few days experimenting with it, figuring out everything that I could do with it. I was blown away by how much it could handle: pretty much everything that I do for fun can be done on it. That’s a big deal to me, because I like not being tethered to my PC after work. Especially when the tempo and intensity ramps up on work projects–at that point, when I’m done for the day, staying at my PC for a few more hours to work on personal projects ain’t gonna happen.

Most of what I do for fun involves some form of art. I’m used to the precision of a mouse cursor for certain tasks and pen tablets for other tasks, and going from that to a finger or some clumsy sausage stylus feels like a huge step down. The Apple Pencil remedies that very well, and is the biggest thing that the iPad Pro brings to the art party.

I had a lot of fun doodling in Procreate, and like it a lot as a virtual sketchbook. I might even be able to do paper figures in it, or at least the base art for them.

This got me thinking about papercraft design, which I normally do at a PC using 3D modeling tools and specialized papercraft software like Ultimate Papercraft 3D and Pepakura Designer. I’ve been accused in the past of being a “Pepakura button pusher” by competitors, but the truth of the matter is that I’d already been developing paper models with classical methods long before I discovered papercraft software, and even today, I’m still pretty comfortable doing things the old-school way. I mean, once you realize that everything is really a plane, cylinder, or a cone, it all comes together.

I tried out a number of vector drawing apps, but the only real standout was iDesign, which had a number of very convenient features for developing paper models the classical way: linear/angular measurement tools, the ability to rotate shapes around arbitrary points, and good object/grid snapping. I did a quick test development of an 8 sided chamfered cylinder to see how the drawing and manipulation tools held up, and it worked great.

So, iDesign is now my iOS go-to for developing reference geometry. Another very useful app I’ve incorporated into my iPad flow is EzyTriangles, a simple math app that streamlines the process of calculating accurate triangles from known side lengths.

The next thing on my list of papercraft fundamentals is something to texture the reference geometry with. Interestingly, this turned out to be one of the vector drawing apps that failed to make the geometry development cut: Autodesk Graphic (formerly iDraw). My PC texturing workflow used Photoshop, but was vector-heavy, and Graphic had 100% of the needed vector functionality. As an unexpected bonus, it also had much of the same layer styling and blending functionality that I used heavily in Photoshop.

It looks like I can get texturing to the 80-90% point in Graphic alone, and the hand-painted remainder (grunge, shading, glass, and other stuff I normally paint by hand) can be done in Procreate according to a quick test.

Next, I needed something for layout and graphic design so I could do product assets and instructions on the iPad, and here Graphic came out on top again. I was on the edge of my seat. Could I really do all of this on a tablet?

I started laughing when I discovered that my iPad Pro had a better camera than my iPhone 5S, and decided to go for the absurdity gold. I’d get a tripod and adapter for the iPad so it could be used to take model and instruction photos. (Can’t beat a huge viewfinder screen!)

That leaves one thing…organizing and zipping up the files. To that end, I’m testing a file manager app that seems to work nicely so far. Getting the zipped stuff up onto the Internet from there is trivial.

This is going to be interesting!

A shape other than round…

15 years of increasingly sedentary computer-related jobs has taken a severe toll on my physique and health. I don’t have the physical strength, stamina, or endurance that I used to have, and I got fed up with that and decided to do something about it several weeks ago.

I wanted to build a little workout space. It needed to be compact, easily moved, and not a complete eyesore just in case we move somewhere that doesn’t have a garage. I spent a lot of time researching various types of equipment, and decided on a set of dumbbells because of their versatility, compactness, and lower cost of entry. I also sprung for a weight bench and a floor mat.

Here’s the complete setup:

2016-08-13 18.19.27

While researching the various types of dumbbells on the market, one of the standouts I kept coming across was the Bowflex SelectTech 552, which is an adjustable-weight dumbbell that uses a pair of twist dial selectors to choose a weight between 5 pounds and 52.5 pounds. MSRP is $349.00 USD, but Amazon had them for $309 USD.

I was a bit put off by the price at first, but after we walked into a local sporting goods store and priced out conventional dumbbells, I got over my sticker shock pretty quickly. If I were to buy the cheapest set of metal hex dumbbells covering a weight spread of 5 pounds to 50 pounds, I calculated that I’d need 22 dumbbells with a total mass of 566 pounds and a total price of $689.78. If I bought the rack so I wouldn’t be tripping over wayward dumbbells every time I stepped into the garage, the total goes up to $759.78, and the whole thing would take up an amount of space equivalent to a short, wide bookshelf.

At about 40% of that price, about 19% of that total mass, and a little more volume than a pair of large shoeboxes, the SelectTech 552s just made a lot more sense to me, so I pulled the trigger on them.

Close up of a SelectTech 552 dumbbell in its storage tray:

2016-08-13 18.19.39

Dial selector. There’s one on each end of the dumbbell:

2016-08-13 18.19.57

When you set the weight and pull the dumbbell out, the unused weight plates remain in the storage tray:

2016-08-13 18.20.14

The selected weight plates remain locked to the dumbbell:

2016-08-13 18.20.37

My immediate reaction when I first unboxed them was “Holy shit, they’re enormous” followed by some concern about whether or not their size would cause range-of-motion issues. I found that their size wasn’t much of an issue and that it was easy to compensate for during workouts. I was also a little worried that they might be clanky given how they work, but they didn’t feel loose or sloppy. They feel solid and well-balanced.

Their size and length also has an interesting side effect–I can feel my stabilizing muscles also getting a workout while targeting a specific major muscle. After my first few workouts, it’s easy to see why the SelectTech 552 is consistently praised by reviewers.

The weight bench is an Adidas Performance Flat Training Bench. I picked it because it was the cheapest one that had a maximum weight rating that exceeded the total weight of myself plus 105 pounds of dumbbells by a comfortable margin. $80 USD for a bench rated for 600 pounds seemed like a good deal to me.

2016-08-13 18.21.07

The fit and finish is decent, and the construction is very solid. It doesn’t feel flimsy or wobbly at all when I’m sitting on it, kneeling on it, or laying on it. The padding is thick and firm, but comfortable. The biggest problem I have with it is the fact that I have to share it with my cat.

The 6×4 floor mat is made of foam rubber and consists of 6 interlocking 24″ square tiles, with border edging strips. This particular one is made by ProSource and is about half an inch thick. It’s firmer than the spongy stuff sold for kids, but just soft enough that it’s comfortable to do floor exercises on. The tiles lock together firmly enough that they won’t come apart readily, but I wouldn’t deliberately do any exercise that puts a lot of tension between the tiles.

In addition to weight training, I looked into things that would make getting in some cardio easy and fun. I opted for a DeskCycle compact exercise bike, which lives under my office desk. It’s fun to pretend I’m commuting to/from work in a pedal-powered office chair.

2016-08-13 20.55.57

It comes with a little stand and extension cord for the display unit, which I keep on my desk. I have it set to display my speed (in miles per hour) and distance traveled (in miles).

2016-08-13 20.57.14

When assembling it, the front and rear legs offered me some pretty good general life advice:

One of the primary differentiators of the DeskCycle is that it uses a magnetic resistance flywheel system. On bikes with friction knobs, pedaling frequently feels jerky or squeaky, and a lot of times even if you torque the resistance knob as tightly as you can, you don’t really feel much resistance and the jerkiness becomes more pronounced. With a magnetic resistance system, pedaling is extremely fluid and smooth. There are 8 resistance settings on the DeskCycle, with 1 being pretty much frictionless and 8 feeling like you’re pedaling a heavy load uphill. Settings 3-5 feel like pedaling a real bike over flat ground to a gentle uphill slope.

Another differentiator is its weight–at around 25 pounds, it’s heavy enough to stay in place without scooting forward while you pedal, especially on carpet. I found with normal compact exercise bikes that I constantly had to stop and pull them back after accidentally booting them forward. If you’re pedaling on a smooth surface, the DeskCycle includes a Velcro tether that allows you to strap your chair to the bike to prevent unwanted motion.

So far, I’m very pleased with it, and have been using it daily for 30 to 45 minutes. Between the upper body workout and the cycling, I’ve already noticed a pronounced increase in my sense of well-being, an increase in energy levels, and a generally better mood.

The next items I want to acquire are a 65cm exercise ball to replace the dining room chair that I keep stealing when I want to use the Mac in the dining room, a ring base for it, and a set of push-up handles (regular push-ups are murder on my left wrist, which hasn’t been right ever since that time I rode a 250cc 3-wheeler into a chain link fence when I was 12).

The Worst Buffet Ever

I’m on vacation for the next week, and this poor blog has been neglected for almost a year now.  So, time for an update.

Mrs E and I moved up to Washington State back in September, and we’re still getting to know the Pacific Moistwest. As part of that process, we’ve been going on little adventure drives to discover the local campgrounds, state parks, eating places, and things of that nature.

On one of these drives, we got hungry and decided to visit a nearby casino buffet, which looked pretty good on its website. Apparently, Tuesday was “international day”, so we were looking forward to eating our way around the world.

About five minutes after entering and being seated, we were pretty sure we’d made a grave mistake, but we decided to roll with it anyway for fun. Our basic assumption was that this place would at least be on par with a Golden Corral or something similar, but no. Golden Corral is…an aspirational dream for this place, an ambitious life goal, a nigh-unattainable Hollywood Dream waiting to be crushed by cruel reality.

We started at the right of the buffet, working our way towards the left. The international theme was, um, a bit loosely defined, but I’ll lend a helping hand and categorize the offerings by section the best I can.

The Briny Deeps

The offerings in this section were fried fish, fried shrimp, boiled crab, and an assortment of other seafood dishes that looked like the aftermath of an accidental torpedo detonation. The fried fish and fried shrimp were pleasantly edible, but I found the sweaty post-game ballsack aroma of the boiled crab a bit off-putting.

Meatland

The centerpiece of Meatland was an assortment of raw cooked-to-order beef, glistening moistly and unappetizingly under the harsh glare of overhead fluorescents, and something called a “top round” which resembled an enormous, blubbery tumor.  I opted to try the spicy marinated steak and the top round, because why not? It’s an adventure!

The meat-tender carved off a slice of the top round and dropped it onto my plate. Its striated pink character bore an unnerving resemblance to dissected vagina parts, and it made an epic effort at defeating a determined attempt to cut it into pieces, demonstrating a cheerfully rubbery insouciance the entire time. Thirty-five seconds after I succeeded in prizing away a forkful of this delicacy and put it into my mouth, I realized that I could now die a contented man, for never again will I need to idly wonder what beef-flavored chewing gum would be like.

I then turned my attention to the spicy marinated steak. As with the top round, I had to vigorously saw at it with my knife like a Civil War surgeon attempting to amputate a gangrenous toe. The marinade was apparently very light on the spice and very heavy on the sugar, so the reward for my efforts was a juicy explosion of gangrenous toe flavor in my mouth. I would definitely give this a miss next time.

I had also taken a dinner roll from the basket next to the meat display, and it made me wonder just how many people are out there toiling away in the wrong line of work, making miraculous, world-changing discoveries that never reach their fullest potential because they end up being used for the wrong thing. The dinner roll wasn’t just dry, it was essentially a black hole for moisture. My entire mouth, seconds after taking a bite, was drier than the Sahara, and several frantic sips of iced tea later, I’d finally saturated it enough to swallow.

So, anonymous dinner roll maker: Get out of the dinner roll business. Sell them as flood mitigation devices and mark them up 5000%, and you’re set for life. Just break up a dozen of them and scatter them across your front lawn, and your property will be bone dry the next time a flash flood occurs. You know where to mail the royalty checks.

On my return to Meatland, I decided to sample the rotisserie chicken. I was greeted by the sight of a tray filled with fist-sized, rock-hard lumps, of a fleshy color fading into deep reds and scorched blacks. I took one, of course.

Once I’d finally gnawed through the mummified, sun-baked husk of King Chickenhotep I’s remains, I was pleasantly surprised to discover a morsel of tender and flavorful meat deep inside the crunchy, leathery exterior, as if the spirit of Chickenhotep I had been pleased by my sacrifice of dental enamel and found me worthy of his deeply buried treasure. I like to imagine his spirit as a blue, glowing Yul Brynner in period Egyptian costume, giving me a single, solemn nod before slowly fading out of existence.

Amerixico

One tiny section, a handful of trays huddled together for protection. One contained refried beans, which had evolved a thick skin to protect it against the depredations of wild ladles. Breaking through the protective skin layer, I was struck by wonder and fear. Had I disturbed some sort of primordial muck? Would I soon see a methane bubble slowly form, swell, and pop? If I dug a little deeper, would I unearth a dinosaur skull? Are there things within that Man was never meant to discover? I backed away slowly from the primordial beans and hurried out.

Southwest Chexico

A tray of egg rolls, spring rolls, wontons, and something called Southwest Chicken. The Southwest Chicken appeared to be an earnest attempt at so-called “fusion cuisine”, trying to meld together the exotic flavors of Asia, Mexico, and the American Southwest. In practice, it came across as culturally indecisive. It wasn’t bad, it was just a bit like discovering that the middle of your lollipop was made of compacted bouillon cubes instead of Tootsie Rolls. I’m sure there’s someone out there who loves the idea of a surprise mouthful of bouillon after an hour of licking artificial cherry flavoring, but I’m not that guy.

As soon as I’d taken in a mouthful of the bland, stringy vegetables that accompanied the Southwest Chicken, I was overcome by nostalgic memories of my elementary school lunch lady, who lovingly ladled heaps of tasteless vegetable matter onto my tray and promised me that it would make me big and strong one day.

The wontons were another treacherous surprise. Instead of the expected sort of cream-cheese-ish filling I was expected, there was a wad of tasty mystery meat hiding within. It may have been chicken, it may have been pork, but regardless of whatever it was, it was tasty.

Sovegetable Union

Your garden variety salad bar, 50 years after Marx and Lenin got their hands on it. I tried the tomato and cucumber salad, the 4 bean salad, and some kind of pasta salad. All were imbued with some sort of soggy, gray listlessness. Supposedly, there was a five-year waiting list for flavor, but knowing the right party official could reduce it to as little as one year. Illegally smuggled bacon bits and ham chunks from Meatland are a hot black-market commodity, and liven up their otherwise dreary existences. The parsley that immigrated to Meatland is a successful stand-up comedian.

Democratic Republic of Diabeetus

A dessert bar, offering a selection of things like cakes, pies, cookies, brownies, and varieties of nondescript glop in assorted colors. The carrot cake was surprisingly decent. The chocolate brownie wasn’t bad, once I got past the moment when the thick troweled-on layer of frosting delaminated and fell off of it in a single solid piece. The tan brownie, on the other hand, was distressing–it was an unholy abomination, as if everything that made a brownie a brownie was somehow vampirically drained out of it, leaving behind a bland, beige remnant of its former self, doomed to wander the earth for eternity as a parental warning to naughty little brownie bites.

Mrs E had a slice of mint chocolate cream pie, which came across like an overwrought after-school special about not judging others by their looks. Until I beheld its blindingly neon, radioactively green majesty, I had no idea that warning coloration was a thing for food as well as venomous insects and snakes. It looked like a rabbit pooped on a pile of Nickelodeon green slime, but anticlimactically tasted like a perfectly normal mint chocolate cream pie.

And thus our eventful meal came to an end. Groaning, we staggered out to Mrs E’s truck and headed home to sleep it off and plan our next adventure.

Road Trip!

I had a week of vacation time earlier in the month, so we drove up to Vancouver Island to meet the guys and gals at Cloudhead Games. I’ve worked with them since 2012 (before there was actually a Cloudhead Games!) and it was great to finally to meet them in person.

We drove up through New Mexico, Utah, Colorado, Idaho, Oregon, and Washington State, then across the border into Canada. We rolled onto the Queen Of Alberni, an enormous ferry, for the hop from the mainland to Vancouver Island.

No, we're NOT gonna need a bigger boat, Brody.

No, we’re NOT gonna need a bigger boat, Brody.

Me and the missus on the ferry.

Me and the missus on the ferry.

The island is beautiful. The guys weren’t kidding when they told us it was paradise. The first thing we did once we got on the island was head to Coombs to drop by the office, meet the guys, and hang out for a bit.

2015-07-18 10.16.37

Blurry selfie of yours truly and Denny Unger

It’s an awesome office. It’s amazing how far the company has come–from a couple of people working out of Denny’s garage in 2012 to over a dozen employees and remote contractors in 2015.

It's a log cabin. With a mounted dragon head on the wall.

It’s a log cabin. With a mounted dragon head on the wall.

The guys at work

The guys at work!

We also attended the second annual Cloudhead summer barbecue at the beach, which was a blast. We got to meet the families and some of the other remote workers there, and it’s nice being able to put a face to everyone’s name now.

Ah, the beach.

Ah, the beach.

Chowtime!

Chowtime!

I’m also jealous of them because they live near what is officially now my favorite grocery store in the world, the Qualicum Foods store in Qualicum Beach. The hot breakfasts there are fit to make a farmer nudge his ox aside, assume the yoke himself, and plow 80 acres before sundown. Coming back to Texas, the HEB seems positively low-rent in comparison.

Yum.

Yum.

We stayed at the Casa Grande Inn in Qualicum Beach, which was delightfully old-fashioned (real keys, not key cards), and had a very nice view of the beach, and even better, a pub right across the street.

Balcony view of the beach!

Balcony view of the beach!

Pub across the street! Beer, here we come!

Pub across the street! Beer, here we come!

On the way back to the U.S. border, we crossed off a major item on our bucket list: we conquered a Timmy’s.

2015-07-19 15.14.14

What? Yes, we’re easily amused.

Protip: When the U.S. border guard asks you if you have any food to declare, "Ooo, ooo, yes, I'm smuggling some Timbits in my colon!" is not the best answer to give.

Protip: When the U.S. border guard asks you if you have any food to declare, “Ooo, ooo, yes, I’m smuggling some Timbits in my colon!” is not the best answer to give.

The return leg of the trip took us through Washington State, Idaho, Montana, Wyoming, Colorado, New Mexico, and then back into Texas. We stopped at various places in the States to pick up tchotchkes and mementoes of the trip. I got a couple shots of Gin with a bear on Route 66 and with a bunch of inflatable aliens in Roswell, New Mexico.

Are we there yet? Bearly.

Are we there yet? Bearly.

Aliens. They exist. Albeit in novelty form.

Aliens. They exist. Albeit in novelty form.

It was a great trip. We’re looking forward to visiting the Pacific Northwest and Vancouver Island again!

Bonus feature: some scenic moments during the trip that I captured with my phone.

Rock formation, New Mexico

Rock formation, New Mexico

2015-07-11 15.12.24

Rock formation, Utah

Old cabin, Oregon

Old cabin, Oregon

Bozeman Trail scenic overlook, Montana

Scenic overlook, Washington State

Scenic overlook, Washington State

On board the Queen Of Alberni ferry, aft view

On board the Queen Of Alberni ferry, aft view

Qualicum Beach

Qualicum Beach

Coombs, BC at sunset

Coombs, BC at sunset

Deaf fish in a hearing pond, Part 3

This post is Part 3 in a series. You can read Part 2 here.

Server Hardware

I’m going to start off by saying that the Raspberry Pi 2 Model B is the cutest little thing ever, and at only $35 it’s an amazing little computer. I’ve got one hooked up to my 16000 mAh Anker portable battery along with the TripMate Nano travel router. I was expecting it to be larger because it just looks bigger in Internet photos, but it’s so tiny. I installed the Pi in a small black plastic enclosure and the whole thing is barely the size of my wallet.

Raspberry Pi

I can’t remember the last time I was this excited by a piece of hardware.

I set things up so that I could remote into the Pi using SSH over my phone, as well as copy files over from the Mac via SFTP. I’m still getting to grips with Linux as a desktop OS but so far it hasn’t given me much trouble. In fact, I kind of enjoy managing things from a terminal/command prompt, since it brings back nostalgic memories of when I first started messing around with computers.

There was a brief hiccup where I couldn’t find the Pi on the network, but I fixed that by adding a crontab entry that pings the router once a minute. I was also able to successfully make a SSH connection to administer it after setting that up. I then installed Node.js on the Pi, whipped up a quickie test socket server using Socket.IO, and did some test connections from other machines. Success!

The Client Hardware

I mentioned in the previous post that I was going to source a couple of cheap tablets and keyboard folios to serve as the client hardware. I did a lot of window shopping and review perusal over several days before making a decision. The big thing about cheap tablets is that there’s a line where if you go too cheap, “you get what you pay for” becomes a distressing truth, so there’s a lot of chaff to sift through. I went for a pair of HP Stream 7 Signature Edition tablets, which were on sale for $79.

Tablets

The keyboard folios were a little harder to source–reliability is very important to me because it just won’t do for the keyboards to spontaneously disconnect every 5 minutes or misbehave in the middle of a conversation, and so many keyboard folio vendors treat the keyboard as a cheap thrown-in extra rather than an important part of the package. The other thing is that a lot of those cheap keyboard folios put size before layout, so you end up with stupid issues like you have to press Fn+L for apostrophes and nothing’s where you expect it to be.

I decided on 7″ Zagg Auto-Fit folios for them. They’re rigid clamshells with a spring-loaded top cover that holds the tablet in place, and it makes the things look like little bitty baby laptops. The key layout is good, much better than on my Dell keyboard folio, and the build quality is good. Not exactly premium, but good.

I changed the Bluetooth power management settings for both tablets to not turn off the radio to save power, and I also set it up so that the Bluetooth radio can wake up the device. This does two things: pressing a key wakes up a sleeping tablet, and prevents the keyboard from being disconnected when the radio turns off.

Software

I went through three prototype iterations for the client application. The first one was mocked up in Unity 3D since it was a good opportunity to get to grips with the new Unity UI system for work while I was at it. The second one was done as a WebRTC webapp displayed in a fullscreen instance of Google Chrome because I’m a sucker for bleeding edge web stuff and wanted to take that for a test drive.

For the third prototype, I finally got serious and fired up Visual Studio to do a proper native Windows app. The last time I did any Windows desktop application development was in 2010, I believe, and I kinda like how far things have come since then.

Initially, I started out doing it as a Modern UI app (formerly known as Metro apps), but I changed my mind in a hurry when I saw what a gongshow that was shaping up to be. I’m not really sure what Microsoft was thinking there, but maybe they’ll get it right with Windows 10. Once I switched targets to a desktop application, things started to shape up beautifully.

Dev setup!

I’ve now got the tablets running native Windows desktop apps that talk to the Raspberry Pi server. In the shot above, I’m running Visual Studio on my big XPS 18 tablet, I have the Raspberry Pi temporarily plugged into one of my work monitors, and the tablets are running deployed instances of the client application. At one point, I was tapping away on 4 keyboards!

The setup is getting closer and closer to what I’d consider stable enough to use in a production environment. There are a few more software and hardware tweaks I want to do, then I’ll move on to more extensive field-testing.