Internet and its Uses

Back in the days of the ’90s, when the economy was booming and two-digit years were a thing, I remember it was a time of optimism. The Cold War was over. The world was building an International Space Station.

And the World Wide Web was blossoming.

This created enormous opportunities. Now, we could get our news whenever we wanted it: not just from the morning paper and the evening news broadcast. Email and chat rooms connected ordinary people (not just the tech literate) around the world. Information that once required hours of research in a library was now available at our fingertips.

Surely (we thought back then), this new Information Age would lead to a golden age of enlightenment and learning, where the light of science and knowledge would forever be a beacon to a human race as it transitioned into something far grander than ever before!

Last night, I sat with friends as we watched Tik Tok videos of people eating dandelions.

What the heck happened?

Continue reading

Eight Years of Raspberry Pi

This morning I was digging through some drawers trying to find something when I came across this dusty old first-generation Raspberry Pi B.

Raspberry Pi B. Dusty like a bottle of fine wine, but not as pleasant to drink.

If you’re not familiar with Raspberry Pi, it’s a single-board computer priced at around $35, originally designed for educational use.

Over the years I’ve used these boards in quite a few projects. Seeing this old one made me think about how far Raspberry Pi has come in the past eight years.

Continue reading

What are StackExchange’s Pronouns?

The phrase “dumpster fire” gets bandied about a lot, but such is the current state of the venerable StackExchange network. In the past two months, the leadership team has clashed with the longstanding community:

Now, new CEO Prashanth Chandrasekar fiddles as Meta StackExchange burns down over the latest controversy: the abrupt and unexplained termination of a community moderator. This action has led to the resignation of close to 80 other moderators, and caused some to question whether the corporate leadership is listening to the SE community.

What’s the latest casus belli?

Third-person pronouns.

I’ve never heard of such a brutal and shocking injustice that I cared so little about!

Zapp Brannigan, Futurama
Continue reading

Mounting my Google Drive on Ubuntu 19.04

…is supposed to work right out of the box. Just open the Gnome settings app, choose “Online Accounts”, and add your Google account. You’ll have to enter your credentials, and make sure that “Use For…Files” is turned on.

Then open Nautilus file manager, look at the locations panel on the left, et voilà, you should see a “<your.google.account>@gmail.com” drive ready to be mounted.

And I did… except when I tried to mount it, I got a timeout error.

Continue reading

Stop Snoring?

I wish I could.

I’m a snorer. I snore. I snore loudly and nightly. Like my father before me, and his father before him. I snore so loudly that I get complaints. From my wife, my kids, roommates, house guests…

Maybe there’s a seismology team at the university scratching their heads over those low-magnitude earthquakes they detect every night.

But y’know, there’s an app for everything nowadays, so why not try one?

Continue reading

Summer Ventures ’99

It was the end of June, in a long-gone year when we were yet naïve enough to use two-digit years, though Y2k loomed large on the horizon, and cameras still required film.

I was a high school student. It was summer. I set foot on the campus of Appalachian State University, in the heart of Boone, NC. I was enrolled in Summer Ventures. And I had no idea what to expect.

It was the Summer of ’99.

Continue reading

Project: Dremel-carved Clock

It’s been quite a while since I’ve done a hands-on project, but I had an 8″ x 10″ x 1/2″ block of basswood, and one of those DIY clock movements from the craft store.

So due to my fondness for Star Trek, I thought I’d take my Dremel and carve out a TOS Enterprise clock. (The results are not pretty.)

Continue reading

Struct Unions in .NET

Suppose that you have an array of bytes that you need to convert into a fixed-size struct. This might happen, for example, if you’re parsing a data stream from a hardware device.

In C, it’s easy enough to do this with pointers. Or you could create a struct union between a byte array and your fixed-size struct.

If you’re using VB.NET, your options appear more limited. You can get an IntPtr to the array, and use Marshal to create an instance of the struct. But if you try to create a union between a byte array and a struct, the runtime throws a TypeLoadException.

TypeLoadException: “Could not load type […] from assembly […] because it contains an object field at offset 0 that is incorrectly aligned or overlapped by a non-object field.”

But… here’s a weird trick (not VB.NET specific) that a coworker ran across, which we experimented with, and which I do not endorse.

Continue reading

New Website

Greetings all! It’s been a long time since my last update — over four years!

This site started out as a personal blog, but most of the content falls into two categories: machining, and other stuff.

Trouble is, the machining stuff is by far the most popular content. People still regularly read my articles on MTConnect, even though most of the information is five years out of date.

So I’ve decided to spin that content off to a new website. None of the current articles on this site are going away — but I am trying to update the content, and will direct readers to the new site as I do.

So if you’re here for MTConnect, Okuma THINC, or other machining content, please check out the new Machining Code site. And if you want to see updated content on a particular topic, send me a comment there.



Coding for Everybody

Recently I read a post entitled The Hypercard Legacy. For those not familiar with HyperCard, it was a tool that in the 80s and 90s enabled ordinary Mac users to create their own computer programs.

More than a quarter-century after HyperCard’s release, I find it interesting how far we have strayed from this “anyone can code” mentality, into today’s walled-garden environments where only approved applications may be downloaded from an app store.

Continue reading