A New Drawing

A New Drawing

I’ve been trying to raise the quality bar of my illustrations lately. No, this image is not unique, it’s from the cover of a Supergirl comic I saw in a store today. However, I did pencil and ink this myself.

Supergirl

The Squirrel’s Up on Glass in the Aquarium

I used to work for Technicolor Videocassette back in the day. We’re talking about 1990 here. Back when the videocassette was king, and the Intel 486 pretty much ruled the world. In those days Technicolor made about 70% of all the VHS cassettes in the world (including all of Disney’s stuff).

Anyway, we were flying out to Westland, Michigan every week, doing our development work on their videocassette packaging and shipping pipeline that they were integrating with Walmart for what’s called “JIT” delivery (“Just In Time”) services. This meant they’d get the order for the specific video tapes, pick them from inventory and ship just the ones the store had requested.

So we were working on a database driven system that fed a monstrous device called the A-Frame, which was little more than a big conveyor belt from which video cassettes were picked from the stacks standing along its pathway. The cassettes would be selected by computer, be popped off the bottom of the stack, hit the belt, and end up in a box at the end. It made the job of finding the cassettes in the warehouse for each order moot, and saved a lot of steps for the people who had to run around and fill the individual orders. We had spent months on the project, and were working in a small long room with windows in one side that had previously been a shop floor production office. We called the thing The Aquarium because it resembled nothing more than a big fish tank, about the same proportions and glass on the one side, you get the idea.

We had sort of a pointy-haired IT manager, who shall remain nameless (partly because I don’t remember his name, so it’s just as well). We put a sign in the window of the Aquarium that said Do Not Tap On Glass, just like you’d see at a pet store, but when he saw it he didn’t get it at we had to explain it to him. Not the brightest crayon in the box, this guy.

The real story was the database server. Today everybody talks about SQL servers, and they’re commonplace, but back then it was brand new and nobody really had a good handle on what they could do and how they worked – except this one guy in his early 20’s we’d hired away from Microsoft, because he was an expert in SQL. You pronounce it “sequel”, but back then nobody could agree on how it was pronounced, and this ex-Microsoftie called it “Squirrel”. It was as apt as any other pronunciation, and we liked the confused expressions people got when we talked about it in front of them, being the incurable geeks that we were, and so for us, it stuck.

Then came the problem of connecting the SQL server to the A-Frame. In those days we had pretty bad networking. The best you could get was something called ARCnet, and the cards cost about $300 each, and that was in 1990 dollars. They failed a lot, and these days your average cable modem outperforms it by about ten to one or more. So to cover the great distances involved in the warehouse where we were, we needed something better. There was no wifi then, but there was optical fiber.

This was the glass stuff. It was expensive, and fragile. Once a forklift ran over a cable and broke the fragile strands, and a thousand dollars worth of this glass cable had to be restrung. Finally, the networking problems and the SQL server and the A-Frame were all connected together, and we ran our first communications test. We all held our breaths, and sent the message from the control station. The A-Frame responded.

We had been working for months getting to that point. you never saw a bunch of programmers whooping and hollering with excitement as we did that morning.

While all this was going on, the Pointy Haired IT manager happened by and asked what all the commotion was about.

“The Squirrel’s up on glass in the aquarium!” we happily exclaimed.

Mr. Manager just looked quizzically confused, and not wanting to admit that he had no idea what we were talking about, gave us a vague, slightly open-mouthed smile, and excused himself.

-- Gene Turnbow

– 30 –

Words Have Power

All men dream, but not equally. Those who dream by night in the dusty recesses of their minds, wake in the day to find that it was vanity’ but the dreamers of the day are dangerous men, for they may act on their dreams with open eyes, to make them possible.
~ T. E. Lawrence

Dream big. Seriously, dream big. Everyone has dreams, but most dismiss them as undoable, unworkable or unrealistic. And these people are the ones whose dreams never come true. Explore, find out what you were meant for. Shake the box and tip the crumbs out and see what’s really there. There’s more potential inside you than you realize, and the difference that makes a success instead of a failure can be surprisingly  small.

-- Gene Turnbow
What to Look For In a Good Cheap Guitar

What to Look For In a Good Cheap Guitar

asheville guitarsI recently got an email from one of my coworkers who wanted to know what she should be looking for in a good used guitar in the $100 range.  I thought I’d share the answers with you, because people get asked this a lot and it’s one of the most common questions a new guitar player asks:

Hi Gene,

I’m going to start looking for a full-sized guitar, for myself.
In looking at used guitars, what brands do you think are better than others?  Or, does it matter?
I’m going to try and find something that is around $100.

At the $100 price point, your best measure of the quality of a guitar is you.  You can often get a little better quality if you get a used one rather than a new one, but here are things to look for:

  • Does it feel right in your hands?  Everybody’s hands are different, so get a guitar that feels good in yours.
  • Does it sound right (even playing all the way up the neck)?
  • Does it have a cutaway so you can reach the high notes (if that’s important to you)?
  • Are the machine heads (the tuning heads) firm or do they slip or rattle? (“What the – where’s that buzz coming from??”)
  • How high are the frets compared to the fretboard?  Taller frets make a guitar harder to play than slimmer frets and will require more energy to get a clean sound out of them.  The difference can be small, and you can often only see this by comparing one guitar to another.
  • Does it speak well?  Some guitars are quieter or sound tinny compared to others, some guitars are brighter, or have a stronger bass content in their voices.  Remember that there are things you can do to make a guitar’s voice change depending on how you play it, but that its fundamental character will remain fairly constant.
  • Does it have a truss rod in the neck so that the bow in the neck can be adjusted?  Surprisingly, some at this price point don’t.  A guitar with a truss rod in the neck will have a little hex bolt head inside the sound hole just under the end of the fretboard.

After that it’s more like picking out a comfortable pair of shoes than anything else.  Listen to the guitar’s voice, and find one that sounds like an old friend.  That’s the guitar you’re going to get the most out of.

Brands to look for are Taylor, Martin, Ovation, Yamaha, Fender – but there are dozens more really excellent brands, and again, at this price point the well known name brands are as likely to be lemons as any other guitar.

If I get a nylon string guitar, will it have the same great twang as your guitar?  Or, will it always be softer?

No, it will always be softer.  Nylon is uncommon, most guitars are steel string.  They have an inherently softer sound than metal does, and they tend not to break strings as often (but a guitar string usually costs a bit under $2 and can last years).

I just don’t want it to sound like a harp, like the little 1/2 size guitar that’s my daughter’s. And, if I buy a nylon string guitar, can I get it strung with steel strings, in the future?  Or, is the guitar just made for one type of strings?

A guitar is made for one particular kind of string, and you can’t use nylon strings on a guitar made for steel strings, and vice versa.

That said, I used a Kawasaki nylon string guitar (with no truss rod in the neck) for about 25 years before it finally broke in half on its own standing against the wall one day, just from the string tension.

A last point to mention is that at the $100 price point, adding an extra $20 – $60 can make a huge difference in the quality of the guitars in your price range.

Guitars can range from a hundred or so into the thousands of dollars.  The difference between a $100 guitar and a $150 guitar can be substantial – the difference between a $2000 guitar and a $3000 guitar may be one only a professional musician could appreciate.

Good luck in your search!

– Gene Turnbow

Superman Classic

Superman Classic

Robb Pratt gave us Superman fans a new little work of art to geek out over:

The character design is a departure from anything I’ve ever seen before on this subject material – it has an appeal that’s hard to define, but is immediately engaging.  The biggest problem is that it’s over all too quickly – but then, it’s also hand animated, and it really does take time to do this at all, let alone do it well.  It all makes more sense when you go to Mr. Pratt’s web site and discover that he’s a Disney animator and storyboard artist.

What an amazing discovery this one was.

— Gene Turnbow

Links

What the World Needs Now is More Ukelele

No, seriously.  It’s hard to listen to this and not feel all your stress and anxiety melt away.

Israel “IZ” Kamakawiwoʻole

— Gene Turnbow

The Major Scales on Guitar

The Major Scales on Guitar

Major scales on Guitar

I made up this for my guitar classes at the studio where I was working at the time. Click here to see the full sized image, then right-click and select ‘save’ to copy it to your own computer.

I used to teach beginning guitar to technical directors at Rhythm & Hues one day a week on my lunch break. I’d been relying on material made by other people for my classroom materials, but I couldn’t find anything to teach people the major scales that worked well with the way I teach, so I finally made one up myself.

Feel free to grab a copy of this and print it out for yourself if you’re struggling with this, or if you’re teaching a class yourself and need something like this for your students.

If you like this and use it, and want to help me out, consider signing up to donate a dollar or two to the SCIFI.radio Patreon campaign.  It’s cheaper than a cuppa coffee and it would help my radio station stay on the air.

— Gene Turnbow

Warp Drive – One Step Closer

Warp Drive – One Step Closer

The main problem with developing working warp drive apparently isn’t the math. We’ve figured that part out. What we need, though, is an unimaginably monumental supply of energy to power the thing.

The spokesman for CERN’s ALPHA experiment—Jeffrey Hangst of Aarhus University, Denmark—says that trapping these atoms was a bit of an overwhelming experience:

What’s new about Alpha is that now we’ve managed to hold on to those atoms. We have a magnetic bowl, kind of a bottle, that holds the antihydrogen […] For reasons that no one yet understands, nature ruled out antimatter. It is thus very rewarding, and a bit overwhelming, to look at the ALPHA device and know that it contains stable, neutral atoms of antimatter.

Well now we’re one step closer.  At CERN, scientists have successfully captured antihydrogen and can hold atoms of it for study in a magnetic bottle.  They know they’ve got antihydrogen, because when they release it, the expected annihilation takes place.

You’ve just gotta see this.

Why have I been writing about leaps in scientific knowledge and technology lately?

Because I feel that Humanity is reaching for its future with both hands, and that if we can solve the mysteries of the universe, it’ll make it easier to solve the problems of your everyday garden variety human beings as individuals. It is an exciting time to be alive. We are on the verge of a new frontier, and it all begins right here, right now. Our perspective and perceptions are shifting as our awareness and understanding of the very nature of reality itself expands.

On seeing the Enterprise’s warp engine while visiting the set of Star Trek: The Next Generation (where he would briefly play himself in the 1993 episode Descent, Part I), Stephen Hawking smiled and said: I’m working on that.

I feel like a kid on Christmas morning. I can hardly wait to see what’s under the tree.

— Gene Turnbow

 

Links

That Whole ‘Stop and Smell the Roses’ Thing

I think I’m finally beginning to understand it.

When your life is a blur of work and driving to and from work and being so tired from work that you don’t even have the energy to sit up and watch television when you get home – when things you thought were being handled for you aren’t being handled at all and it all winds up on your shoulders anyway – you start to lose the meaning of it all.  Nothing matters anymore look what i found.  You start to wonder why you keep doing it day after day after day with no reward and no purpose, and no joy.

Stop and look around you.  No matter what, that tremendous weight of responsibility you carry is only made worse if you forget who you are, what makes you you and why you started down the road you took in the first place.  If you can’t remember why you started down that road, and you realize it’s taking you to places you no longer want to go, it’s not too late to turn around, go back up the road a piece, and pick a different one.

Better choose – you only get to travel so many roads in your lifetime.  You’d better make each mile count.  And on the way, don’t forget to look around and enjoy the things you enjoy.  You have a right to it.

Look yourself in the mirror every morning and ask yourself, “If I got to choose what I’d be doing today, would I voluntarily choose to do this?”  We’re not guaranteed a tomorrow.  Your lifetime might be ninety years – or only thirty-two years, and only one more day after that.  Your days are the most precious thing you have.

So it’s not idle frivolity to “stop and smell the roses”.  You need to stop and smell the roses once in a while to make sure that the roses are actually still there.  And if they’re not, you need to go find some.

— Gene Turnbow

Code

Code

A very very small OpenGL engine.

I wrote this thing ages ago for a commercial project for the now-defunct subsidiary of Sony, Sony Development.  We were trying to make a giant pinball machine where you tilted the entire machine to play.  To test the physical controller hardware as they worked the kinks out of the design, they needed a little 3D engine to hook up to them so they could see what it would do.  So in about a week, I wrote one.

It’s a little odd as engines go in that it loads Lightwave 6.x (or greater) scene and model files and renders them, and then lets you fly a camera around and look at them. It lights the scene according to whatever lights you put in the scene, but all lights are translated as point lights. I never got spotlights or area lights working. It does respect global ambience settings in the scene, though, as well as maintain the hierarchical relationship between all the scene elements (i.e., parenting of scene elements is preserved at runtime.
It eventually ended up being listed in the news section on the now defunct Flay.com, one of the world’s more important Lightwave 3D web sites, and OpenGL.Org also had my listing. I even found a web site in Japan that linked to the original page.  Too bad I can’t read Japanese! The engine has been downloaded tens of thousands of  times since I posted it after SIGGRAPH 2001.

The engine does do texture maps, but only UV textures, and there are a few ways to apply the textures in Lightwave that don’t actually work. The best approach seems to be to convert whatever conventional texture mapping you might have on your models into UV maps using the “Make UVs” tool in the “Map” toolset in modeler. Since the loader doesn’t handle DMAP chunks, models using cylindrical or spherical mapping need to have the vertices split at the seam, or you’ll get mapping errors.

The source code will compile under either Windows, using Microsoft Visual C++ 6.x or greater, or under Linux using GCC. Yup, it’s cross-platform code!

Download the source code, binaries and sample data here. It’s pretty tiny by modern standards – only 3 megs, even though it includes all the model files and textures and whatnot that you get with it. It’s a fairly modest example of a 3D engine. Once I got the object and scene loaders working, the rest of the engine was done in about five days. It does give some good example code for reading objects in native Lightwave LWO2 format, though. By the way, in the ‘credit where credit is due’ department, I started with the example ‘C’ loader code written by Yoshiaki Tazaki at D-Storm.

Once you’ve gotten it to compile (it shouldn’t be difficult if you know how to use the compiler at all), run it by giving a parameter of either a model file or a scene file. If you give it a scene file as a parameter, it’ll assume all the assets are right there in the same directory with you, even if the scene file says otherwise. If you give it a model file as a parameter, it’ll just load the model file and let you spin it around and look at it from different angles. If you can’t compile the project or don’t want to bother, binary executables are included for both Linux and Windows.

A comment: this project was set up to compile from KDevelop in versions prior to 2.x. If your version is more recent than that, you’re going to have a few problems getting to compile as a project using KDevelop. I’ll may revisit this and make a newer version with new project files (thought I can’t promise when.)

Interestingly, the Linux version runs significantly faster than the Windows version does, even though it’s exactly the same code. I think Linux just works better from the standpoint of interfacing the OpenGL API with the hardware. I know I could do a lot more about optimizing the rendering pipeline, though. Right now the only thing I do is sort the polygons by material; this cuts down on having to use the GL material commands for every single darned polygon, and it sped things up a lot. It’s still not a really quick engine as engines go, but it’s quicker than it first was. I never even  implemented tri-strips, and that would have sped it up at least double.

I’ve absolutely got to offer a caveat here as well: I wrote this engine as an exercise, and I stopped before I finished it. There are leftovers and leavings of various ideas in it that I never implemented. The object and scene loading classes themselves are fairly clean, however, and I did my best to keep that functionality as encapsulated as possible so they could be reused by somebody else if needed.

Could I write the same code now?  No. If you don’t use linear algebra for 3D for a few years, you forget how.  Could I learn to write the same code now?  Absolutely.  I did it before.  I can do it again.

Update: It Runs on a Raspberry Pi

My Raspberry Pi 4 running OpenGL code I wrote over 20 years ago and ported to the Pi in August of 2016. The fastest of these windows is running 120 frames per second, and the CPU is barely warm to the touch.

For a lark, I decided to try compiling this on a Raspberry Pi, and to my great surprise, apart from a small tweak to one of the headers, it worked! Thinking on it, the Raspberry Pi is actually much more powerful than the big bruiser of a desktop machine I developed it on in the first place, yet the computer is no bigger than a pack of cards and draws only about 15w of power. The lightbulb in your refrigerator, if you still have one that isn’t LED based, probably draws more.

 

— Gene Turnbow