Category: Technology

Re-Infected by Smalltalk

I seem to be afflicted with a chronic, recurring condition, a sort of living nightmare in which I imagine myself a programmer. I’ve experienced this numerous times over the past several decades, but it appeared to be finally cured in my retirement as I focused my life more on spiritual matters.

But recently, I decided that I wanted to develop a couple of Web and mobile applications in support of my spiritual teaching as well as for the nonprofit Job One for Humanity volunteer work that I’m doing. Without much of a commitment to actually doing something, I started poking around in the world of mobile application and web development.

By a chain of circumstances I can only be described as being dragged down a dark rabbit hole, I encountered a language which I had explored previously as a possible development language and environment. I’m referring to the Smalltalk-inspired Amber language. In the three or so years I have been away from Amber, it appears to have undergone considerable growth and gained in popularity. More importantly, it appeared to have overcome most if not all of the packaging, delivery, and performance issues inherent in traditional Smalltalk.

Ever since I first discovered it something like 15 or 20 years ago, I have loved Smalltalk. It is my favorite, widely-used programming language by a lot. (If I omit the qualifier, “widely-used”, then that honor goes to LiveCode.)

So I was excited to encounter a vastly improved Amber product which is a tool that generates high-quality JavaScript code from working Amber applications. Even though I’m not a systems-level guy, I set out in an effort to install Amber on my Mac with complete confidence it would be a positive experience.

Man, was I wrong!

As it now stands, Amber does not apparently have any easy way to install on any platform. It involves so many dependencies and requires so much command console typing (which for me is far more painful than programming) that I was tempted several times to give up. But I persevered. However, I kept encountering roadblocks I could not decipher or understand, and when I sought help in the Amber community — or in one of the communities supporting one of the dependency modules — I got very little response and nothing definitive that actually worked.

As a result, after three days of mucking about with it, I gave up.

But that is not the end of the story. In the course of investigating Amber, I discovered that a newer dialect of Squeak Smalltalk — which, over recent years, has become the Gold Standard of free Smalltalk environments — was also capable of spitting out web applications using generated HTML, CSS, and JavaScript. This relative newcomer is called Pharo.

Not only does Pharo have a single-button install, its documentation is really outstanding. There are a number of free e-books available, several of them authored or co-authored by the original developers of the language, and they have a wonderful tutorial as well as an online video course spread over several weeks of in-depth training.

So now I’m off, once again infected by Smalltalk, learning this new dialect and the robust environment in which development takes place, for the moment at least happy as a clam. I truly hope the Amber team gets its act together on the installation side, because I’d love to explore it as well, but for now I’m sitting sale to master Pharo and make these new application ideas a reality.

P.S. to Laurence. You knew this would happen, didn’t you?


Of Algebra, Google and the Bible

Futzing around.

I know Google can solve math problems. But I was tinkering with Wolfram Alpha and comparing it with Google Search and I ran across the fact that WA can solve algebraic equations.

So I thought I’d see if Google could as well.

Spoiler alert: as far as I can tell, it can’t.

I typed in a completely arbitrary algebraic equation and Google brought up search results for sites and documents that contained that sequence of characters and similar ones. Not much help there.

So just to refresh my mind on what Google does with calculations, I entered this arbitrary expression:


The usual calculator image with the result (30.333333…) appeared as the first result. But I allowed my eye to scan below that expected result and was startled to find as the very next result, a reference to the Bible: “Matthew, chapter 12” from the site of the United States Conference of Bishops.


I wondered what portion of the search term generated that result.

So I trimmed the search term to 43+12/9. Now the posts following the calculator result were engineering-like entries dealing with connectivity and other esoterica.

43+12/ led to…ready? No math result, of course, but the first entry was to Isaiah 43:12!

WTF, again?

Same result if I omit the slash, but in that case, I get the calculator result, too.

It turned out that the only way to get the original citation to Matthew without the full original search term was to trim it to 43+12/9-1.

I spent way too much time on this but it was really fascinating. I cannot easily decode the reasons that some of those mathematical formulas produce Biblical citations when entered in the Google Search bar. I’d love to understand it, though.

Beware Dropbox! A Cautionary Tale

I have just been forced to undergo one of the most time-consuming, frustrating and anger-producing experiences with technology of my long career in the field and I feel an obligation to warn you of two things:

First, stay away from Dropbox. The services they provide in terms of an offsite storage location for important and shared files is quite good but their “customer service” is crap. In fact, it’s non-existent. Their Web site contains no obvious way to contact the company…and I spent more than an hour trying to find it. No phone number. No email address. No physical location.

Finally, I found a trouble ticket submission page. I filled out the form describing my problem (a billing issue in which they are continuing to bill me months after I cancelled a service) and submitted it. Several hours later I received an email saying, in effect, “Buzz off, buddy. We’ve designed the greatest self-serve customer service experience ever. Go use it.” Which, of course, I already had, without success.

Second, do not sign up for recurring payments on anything. As it turns out — and if I’d thought about it, I’d have realized this sooner — once you sign up for one of these payments, only the vendor can stop the billing. Your bank cannot help you because the vendor has your credit card information. So even if your bank would tell them to stop charging your account, there’s no way to enforce it. And most banks won’t even do that; after all, the vendors are generating a lot more revenue for them than you are.

Because I couldn’t reach anyone at Dropbox to request they stop dinging my card, I had to close the card and have a new one issued. Which is already resulting in messages from the places where I have my card on file for convenience (and not for recurring payments) crowding my email inbox. Each of these requires me to go to the vendor site and update payment information. But that’s only after I get the new card, which in the ordinary course of business apparently takes the bank 7-10 days (which is ludicrously indefensible). So I agreed to pay an additional $25 to expedite delivery of the card (which is what the bank claims FedEx charges but I doubt that).

So, bottom line. Avoid Dropbox like the plague. Avoid recurring payment arrangements lest you find yourself spending gobs of time undoing them when one of them decides to defraud you.


Mediocre Products Marketed Well Defeat Great Products Marketed Badly Every Time

Back in the day, when I made my living as a technologist, there was a saying that floated around among my friends and colleagues and throughout the industry: “Mediocre products marketed well defeat great products marketed badly every time.” We used it most often when scratching our heads over why Microsoft Windoze could possibly be clobbering the elegant Macintosh user experience in the marketplace.

Apple Newton

Apple Newton

I was reminded of that observation today when a news item crossed my desk. Strangely enough, it was about one of my all-time favorite technologies that didn’t make it. When Apple introduced the Newton hand-held Personal Digital Assistant in 1993, I was immediately taken with it. I bought an early version. I spent time learning the fairly slick scripting/programming language built to code applications with. I touted it. I loved it.

Oh, there were a lot of things wrong with it. Its size and format were bulky and blocky. Handwriting recognition became the industry’s favorite punchline. Still, I thought it was incredibly promising and I was willing to put up with the rough edges and flaws while Apple nurtured it through its premature release. But, as with so many other technology products of its day, the Newton fell sufficiently short of sales goals that, in a relatively short time, Apple killed it off. I remember a friend of mine in Apple’s research group who collected old Newton’s for replacement parts; several years later, he was still selling them. Obviously, some people found it still usable and useful.

I thought at the time that Apple demonstrated extreme impatience with this stunning new technology. Of course, this was in the days before Apple switched its focus from computing to consumer products, and the company’s financial reserves were much smaller than they are today. Still, it seemed to me then and still does that Apple failed to stay with promising but slow-moving new technologies on too many occasions for a company that touted itself as a research-driven outfit. They did a similar thing with HyperCard, a product that I also fell in love with — and clearly made a fair amount of money from — but that Apple never understood well enough to know how to market it. HyperCard lasted a little longer than the Newton and gave rise to some wonderful spin-off products from third parties (most notably for me the brilliant LiveCode language and environment I still love using). But ultimately, it was orphaned simply because of a lack of marketing insight at Apple.

Today, more than two decades later, I’m not sure we’ve significantly improved on handwriting recognition over what the Newton offered. At least, I haven’t seen any widely used commercial products that demonstrate that promise.

Oh, well. At least I enjoyed this brief trip down Memory Lane.

Harvard Intro to CS? Free? Sign Me Up!!

I did something rash today.

I signed up for a class through Harvard College and the school’s online presence at edX. That surprised me a little because I’m already in the middle of four college-level classes through Great Courses Plus. What was more surprising — astonishing, in fact, to those who’ve known me very long, is that the class I enrolled in is Harvard’s famous CS50 course, “Introduction to Computer Science”. The surprise? The course uses the C language, against which I have been an ardent battler and which I vowed more than once to go to my grave able to say I’d never learned it.

I even rented (whole other cool story) the recommended text for the class.

So why did I do this? Particularly after learning it was taught primarily in C and involved a series of non-trivial projects the instructor says should take 10-20 hours each to complete? Honestly, I did it because I’ve always felt my programming and scripting skills were never going to be better than good to above-average unless I had a deeper, more formal understanding of programming and algorithms. Yeah, I’m 71 and retired. Nope, I don’t plan on re-entering the job market and certainly not as a coder (clearly a young person’s game). But I figure I have a few good years left and I might as well learn as much as I can now that I have the leisure to do so and no deadlines to interfere.

Besides, the most popular class of any kind at Harvard? And free? (I don’t need the verified certificate, but if I did, it would only cost me $90.) Just couldn’t pass it up. I may find I hate it before I complete it. No harm, no foul. I may find I just don’t have the aptitude to learn C after experiencing far more verbose object-oriented languages like Smalltalk and LiveCode and decide not to “waste my time.”

But somehow the notion of wasting time while learning is a bit of an oxymoron.

Wish me success!

My New Pet Peeve: Videos That Play on Page Load

For some reason, there has been a significant increase recently in my experiencing webpages that load and immediately begin blasting video clips to my headset. This behavior has always annoyed me, but the huge increase in the number of such sites I’ve seen lately has become far more than merely annoying.

I’m thinking it’s time to start boycotting advertisers who engage in this disruptive, nefarious and incredibly impolite behavior. I’ve begun compiling a list of these advertisers, and when I have enough in hand, I will publish them here. One of the problems with these disruptive idiots is that they sometimes play the audio with no visible video clip where they could be silenced. The page loads, noise starts offending my ears, and there’s no obvious place to turn that sound off of other than muting my headset.

This crap has got to stop!

Who’s with me?

Another VR Sample Site With Source

I ran across another interesting VR site today that seemed worth sharing.

The content of these 14 VRs is pretty weak for the most part, but a few of them are quite nice. The main thing I found interesting was that each scene has source code available. You can copy and paste this source code into your own environment and use it as a starting point, tweaking parameters and observing their effects.

For someone interested in WebVR, this is clearly a great early-stage resource.


If you are using the Mattel Viewer, you can save a bunch of time running through these samples. When you finish with one, open the viewer and orient it vertically. This brings you back to the navigation menu where you can just tap on the “Next” arrow to bring up the next sample in the sequence. Given the relative difficulty of removing the phone from the viewer and/or constantly figuring out how to go back to the site, this helps a good bit.


Where Doe Medium Fit?

I’ve spent some time in the last few days poking around on Medium. I haven’t been paying a lot of attention recently to online blogging and publishing technologies so my own writing life has settled into a well-worn groove. Today, I set up an IFTTT recipe to auto-post my blog entries from here on Medium, just to see how that works.

Medium is a strange but interesting place/idea. In one of their own blog entries, I ran across this summary of their (apparent) benefits: “a fully hosted writing platform, distribution of stories to a community of engaged and thoughtful readers, the clean aesthetic for which Medium is known, and innovative features like Text Shots.”

It seems like the first three points are the big draw, particularly the idea of easy distribution of stories within the Medium community. In this respect, it’s sort of like WordPress’ hosted platform which provides tools for the sharing and discovery of other peoples’ blogs you might find interesting. Having spent some (but not a lot of) time with Medium, it does feel like the level of discourse is above that at hosted WordPress, but I don’t know the relative size/reach of each of them. WordPress clearly has tons of features that are missing from Medium, which, after all, claims simplicity as one of its primary features.

In any event, this will be my first cross-posted article to appear on Medium as a result of the IFTTT recipe I created. It will be interesting to see what, if anything, happens as a result. I’m expecting nothing so I know I won’t be disappointed. 😀

First Cardboard Apps: Mixed Bag But Mostly Cool

As I posted yesterday, I got a ViewMaster VR Viewer Starter Kit for Christmas and soon found myself whiling away considerable time downloading and exploring a number of 3D/VR experiences from various publishers and outlets. My intent was — and is — to sample an eclectic variety of apps, to get a basic idea of the range of ideas and subjects covered as well as quality of resolution, interaction, engagement and value.

Here, in no particular order, are the ones I’ve experienced so far, with a few comments here and there. Note that all of these experiences were downloaded from the Apple AppStore for iOS.

Vrse is a New York Times channel for exploration and experimentation with VR as a delivery vehicle for news and news features. The app contains 14 separate VRticles (I just invented that word, I think),of which I have viewed three. The overall quality is quite good. Graphic resolution is crisp, movement is smooth for the most part, the audio is appropriate and well-done. I was deeply affected by one piece called “Waves of Grace” about the West African outbreak of the Ebola virus. I anticipate enjoying the other content in this app in coming days.

VR Planet Defense is a made-for-VR game reminiscent of the practically ancient game Asteroids. It’s one of only two pure games I’ve played so far and it’s a good bit of fun. The graphics are cartoony and not meaningfully 3D. But the action of the game is fast, the sound effects cute and the overall experience is good, though I have no other games to compare to. I’m not really a gamer. This one demonstrates well the main advantage or difference of VR over 3D: head movement tracking. In a 3D situation, you move a camera; in a VR, you sweep over a panorama by moving your head and the device. It’s hard to explain but immediately noticeable. This game did reveal one of the main weaknesses in viewers like the VM model which lack a headband mount. My arms got awfully tired awfully quickly, particularly during periods of intense “asteroid” activity which required rapid motion of the head and shoulders. I’m pretty sure the next viewer I invest in will have to have a head mount.

InMind VR is also a game but it’s apparently intended to have educational value. Or at least its producers are planning future VRs that are educational. It’s a nicely designed short arcade-style adventure game that involves attempting to zap misbehaving neurons in the brain in which the simulated adventure takes place. The idea that gazing at an object causes events to occur is quite engaging. (Just another way of saying head movement tracking is integral to the VR experience.) This one was a lot of fun and the narration had some clever humor that added to the enjoyment.

Jurassic Dinosaurs was one of the big hits Christmas day with me and my family. To a haunting drumbeat, you find yourself in a Jurassic Park kind of VR immersion with large and small dinosaurs running around, eating stuff. Exploring the entire area is quite entertaining. There are things to bump into and get stuck on (like huge boulders and wooden outbuildings) and the almost constant overhead sounds of a helicopter coming and going. The product was quite annoying to get started, however, and the viewer lever’s behavior was mysterious. It was all too easy to end up bounced out of the VR and to a screen promoting some other game or product in the AppStore. And while there are some nice little 3D touches here, there is very little going on that engages you as a participant immersed in the experience. (My 8-year-old granddaughter, however, loved this one!)

Discovery VR was a great find. It contains more than three dozen separate experiences involving nature and science, ranging from surfing to space walking to saving endangered species to touring San Francisco Bay Area locations. The quality of all of the ones I’ve tried so far has been very good, even excellent. Sometimes, it’s hard to figure out how to maneuver within the experience and not infrequently there’s no way that I can find to stop a VR without opening the viewer, double-tapping Home to show all the running apps and force quitting the Discovery VR. (I was amazed how many people didn’t know you could even do that. I have no idea how they’ll get out of those spots.) But the totality of this app is really very high quality.

The last one I’ll look at in this post is inVR. Its current contents, at least as far as I’ve explored them, is fairly disappointing but that’s because it’s all user-generated. So it’s experimental, done mostly by people trying to learn to create VRs for Cardboard. Most of it from what I can tell is really fairly limited in size, scope and interactivity. User engagement is fairly low. But you can get a taste for a whole range of VR environments from a Medieval tavern at midnight to a scholar’s catacomb to a crypt and even a vintage automobile garage. This will probably prove useful as a source of inspiration and ideas for the graphical side of VR more than anything.

I ran across one Web site that was pretty helpful in finding good VRs. Unimersiv bills itself as “The Largest Library of Educational Games and Experiences for Virtual Reality.” It has a huge array of topics to choose from. I know I’ll be spending a lot of my time rummaging around this particular attic in coming weeks as I begin to poke at the idea of learning Unity programming to create some of my own VR content. This page is devoted to VR apps that are Cardboard-compatible.

My First Taste of Cardboard: Delicious!

For Christmas my youngest and her hubby bought me a ViewMaster VR Viewer Starter Kit. It wasn’t a huge shock; I’d had it on my Christmas list for some time. But I wasn’t really expecting such an extravagant gift in this fraught economic year.

I’ve now spent about six hours with my new toy. I must say I haven’t been this excited about a new technology in some time, and perhaps a decade or more since I was excited about a technology that was this affordable.

vr_dual_imagesCardboard is an amazing technology invented and released by Google that brings low-end virtual reality into reach of every consumer and even developer out there who’s interested in the technology. I’ve been interested in VR since the spring of 1986 when I wrote Silicon Visions: The Future of Microcomputer Technology in which I interviewed a young up-and-coming tech rock star named Jaron Z. Lanier. I was fascinated by what this early inventor of the VR world had to say; much of it, as I recall it now almost 30 years later, has proven to be prescient.

My first thoughts about the VM Viewer and some of the content available for it range from positive to astonishing. My few criticisms are, in the grand scheme of things, minor and more related to the inexpensive implementation of the technology as proffered by ViewMaster than anything else.


The out-of-box experience, or OOBE, with the VM Viewer Starter Kit is pretty good. The packaging is clear, there are no barriers to getting the device out of the box and ready to go. But instructions are a bit sparse and in at least one important case unclear. The latch that opens the hinged unit to allow for the placement of the smartphone that is the source of all of the app and content pieces proved particularly stubborn. It turned out that the diagram in the tiny instruction booklet was inadequate (at least for me) and I was struggling to get at the darned thing while at the same time fearful of breaking it.

The VM model comes with three sample “experiences” which make it quick and easy to engage with the technology. Before you can enjoy these experiences, you must download the appropriate apps to your smartphone. Then you have to link a plastic reel (think a shrunken version of the old cardboard wheels of the antique ViewMaster) to the viewer by pointing the viewer at the reel lying flat on a surface.

This turned out to be — apparently, at least — a part of my biggest complaint about the techie toy so far. The process of launching an app on the smartphone, inserting the phone into the viewer and beginning the actual experience is inconsistent and fairly non-obvious. I battled the procedure numerous times throughout the first hours of familiarizing myself with the viewer. In fact, I still have trouble about a third of the time making it all go smoothly without closing the app inadvertently. Not infrequently, just when I had it figured out, I’d close the latch on the viewer only to see through the binocular lenses a prompt asking me to authorize the app to do something or an instruction screen that wasn’t visible before I set the phone in place. I’m sure there’s a method here, but it’s at best translucent.

The Viewer

After just a few hours with the viewer, I find myself generally satisfied with the quality and usability of the device. But it’s clear this is a Version 1.0 release of a product that will benefit from future enhancements and upgrades.

I’ve already mentioned the sticky latch problem that I encountered during the initial experience with the viewer. That seems to be part of the larger issue of the relative fragility of the overall construction of the unit. The hinges that join the two portions of the clam shell are a little loose and sometimes stubborn. The powerful springs inside the viewer that contain the phone work reasonably well but seem to have very tight tolerances. As a result, inserting and removing the phone from its required position often results in accidental tapping of the screen or the Home button, necessitating a restart of the program or the process.

The other problem that causes me a bit of concern is the loose reel that you have to use to access any of the ViewMaster content. As I experimented, I concluded this was not a major glitch since I probably won’t be using a lot of that proprietary content. Still, it feels weird—kind of like the old days of the hardware dongle—to rely on something outside the device to make the content accessible.

The other point is perhaps not related directly to the viewer. Until I’ve had more experience with Cardboard, I won’t know for sure. But navigation within various pieces of VR content is awfully inconsistent and somewhat unpredictable. I was frequently unsure what, if anything, I could do in a given situation, let alone how to do it. Even the simple act of quitting an app was sometimes puzzling. Perhaps this is a broader user experience issue that designers will somehow sort out as this technology grows in popularity.

Sample Content

Included with the VM VR Viewer Starter Kit are three bits of sample content:

  • Space
  • Destinations
  • National Geographic Wildlife

I should point out that each of these is a very small taste of the much larger experiences for which you must pay $15 to download or unlock on your phone. They serve the purpose well; I wish ViewMaster had included a tutorial experience as well through which the consumer could learn the navigational techniques of this implementation of VR.

VM_VR_SpaceSpace was my first choice and I must say I was underwhelmed. I expected to get a glimpse of some Hubble stuff in 3D or perhaps a bit of solar system exploration. Instead, the focus is on the Space Shuttle, which has a few information spots which are like hyperlink popups that give you more information about the payload bay, cockpit, engine, etc. The sample also includes a small game in which you are supposed to watch and learn the sequence of actions it takes to launch the spacecraft and then attempt to reproduce. But that part of the demo was too cartoony so that it was more 3D than VR in my view.

Destinations was much better. It was essentially a 3D world without a lot of VR interactivity but it was quite well done. I spent quite some time exploring the Acropolis and other features of ancient Athens. The full experience includes London, New York and the ancient Mayan city of Chichen Itza.

The NatGeo piece was quite well done graphically, gave more variety, and was a smoother VR experience but there were mostly just 3D scenery shots with sound effects showing off parts of the Amazon, the Australian Outback and the Saharan Savannah.

I would have assumed I’d ultimately be willing to part with the relatively exorbitant prices for the space and destinations pieces, in that order, based on personal interest but having explored the large-ish amounts of free content available outside the VM ecosphere, I’ll probably pass. They need to beef up those initial experiences if they’re going to sell much content to folks who choose to explore Cardboard VR stuff offered by other publishers.

Next Up: Other Content, Part One