Author: Eugene Glover

  • My Journey to an iPhone App

    Like a lot of nerds, I’ve been coding since I was a kid – 14 years old, in my case.

    Unlike a lot of them, I’m much older. Teenage coders were few and far between in 1979.

    When the TRS-80 was announced/came out in 1978, I was 13 years old. And I begged my dad to get me one. I volunteered to do chores around the house, which, admittedly, I was terrible at. I hustled for money. I took my dad’s coin detector down to all the parks in Tucson and searched the sandboxes for change. The fundraising wasn’t going well.

    I just desperately wanted a computer. I didn’t have a goal in mind, but it was the coolest thing ever.

    True story: Computers were cool because of Star Trek, but I didn’t have my obsession for real-world computers until, some years earlier, when my dad had been given a box of fanfold green bar wide-carriage computer paper. He had no use for it, so it was given to me. That was also the coolest paper on the planet, and because it was for real computers, the coolness rubbed off onto the computers.

    I hadn’t chosen my direction in life by that point and was vacillating between a career as a paleontologist or a forest ranger, and I certainly didn’t realize it at the time, but that box of paper set me on my path of destiny.

    In 1979, my dad had planned a summer-long camping excursion from Arizona to Alaska by way of New Mexico, Colorado, Wyoming, Montana, Idaho, Washington, British Columbia, the Yukon Territory, and finally, Alaska. Alaska had been on his and my mother’s radar as their dream camping destination since before I was born. They never made it before she died, and my dad clung to the idea, and now he was going to make it a reality.*

    It would just be my dad and myself. We had a hard-top, soft-side pull-behind tent camper, and I wasn’t necessarily keen on being on the road for almost three months with no TV. You can play only so many cribbage games against your dad (and be soundly beaten) before the allure wears off. This was the longest camping trip he’d ever planned, and I think he detected my reticence.

    So he bribed me.

    For the trip, he agreed to spend roughly 50% of the time staying at KOAs. He could justify this because they always had showers, and we could clean up every few days. They also had electrical hookups. He bought me a small portable, black and white, A/C & battery-powered TV, with a 5″ screen, and a TRS-80 Model I, Level I computer.

    I spent that summer in a tent, learning to program a computer. And I didn’t just learn TRS-80 BASIC, either. I also had to learn Apple II BASIC because, in those days, there were magazines that would print source code for you to type in, but often the magazines would support multiple hardware, and sometimes the program you wanted was an Apple program. I learned Apple BASIC without access to an Apple computer so that I could port the program to the TRS-80. (It was not always possible.)

    I clickety-clacked my way through that trip on that TRS-80. I was compulsively obsessive about it. I loved it.

    It wasn’t long after the trip I wrote my first program and got paid for it. It was a ridiculously simple program (by today’s standards) to store daily stock prices by ticker symbol and graph them historically versus the DJIA. Was it actually useful? Probably not, but it was what the customer wanted.

    I have been coding for what seems like an inconceivably long time.

    The other day I tried thinking about all the programming languages I’ve learned over the years, and I can’t enumerate them all.

    There was TRS-80 BASIC and Apple II Basic. (Integer BASIC, maybe?) I went to community college, which was all about COBOL-68 and FORTRAN-77 on punch cards! At university, it was UCSD Pascal, or machine code, on DECwriter terminals. Somewhere in there, I bought an IBM PC – the TRS-80 had long since died – and started learning Turbo Pascal and became an absolute whiz at batch programming.

    My first salary computer job with a corporation had me learn an incredibly obscure language called Micro-Adapt, which was, as far as I can tell, a PC implementation of an obscure database language for some larger systems. I have never successfully found a trace of either language on the Internet, but they existed. I picked up Oracle SQL shortly after that, and then we got an AS/400, which I had to learn from scratch, without any training. I started with BASIC/400 and SQL/400, and I was able to put together the programs needed to replace the Micro-Adapt, but the performance was really lackluster. So I taught myself RPG III and RPG IV/400, and that improved their performance so greatly that I re-wrote all the programs in RPG.

    Knowing RPG was good for me, and my salary jumped greatly when I moved to my next RPG job. There, I also had to pick up dBase III/IV, Clipper, VBA, HTML, and JavaScript.

    In the last few years before my retirement, I moved to the realm of OOP and Java programming.

    And I thought, 20+ languages is probably good enough for a lifetime. I’m probably missing a few, and I’m sure most of it’s forgotten.

    You might have noticed that C or C++ is not on that list. I’ve never needed to learn C for anything. Its ubiquity made me feel like I ought to learn it; I tried a couple of times but can not take in a programming language without a clear-cut objective. I’m familiar with it and can decipher some of it, but it’s never taken root.

    A while back, I decided that I should learn to program the iPhone. I could perhaps get rich in my spare time! Once again, without a specific goal, I tried learning Objective-C and Cocoa Touch, which didn’t go well. Perhaps my brain was ossifying, but I had real problems getting my head around Cocoa Touch’s implementation of MVC, and eventually, I just gave up.

    About a year ago, two things happened. My trusty HP-28S calculator died. (Oh, yeah, there’s another one, I used to program that in RPL.) I replaced it with an HP Prime Calculator, which uses PPL to program. The other thing that happened was that I started playing the Guardian’s Killer Sudoku puzzles. (I subscribed to have a steady source of Cryptic Crosswords to learn to solve, which I’m crap at, but I got addicted to the Killer Sudokus. I suspect there’s probably a deep insight into my mind in that if we just dig a little.)

    There are a number of charts and math tricks you can use to help solve Killer Sudokus and with the new calculator very fresh in my mind I realized this was a specific goal that I could use to learn PPL. So I did, and the program is really helpful… or at least, it used to be, because eventually, it all gets committed to brain muscle memory, and I found myself using it less and less.

    There is also an HP Prime emulator that you can get for your iPhone, and I loaded that and my Killer Sudoku Killer program on it, and when I did find myself needing the program, I was using it on my iPhone rather than the actual calculator.

    And then I slapped myself on the forehead, shouting ‘D’oh!” when I realized that this was the specific goal I should have used to learn to program the iPhone.

    Objective-C and Cocoa Touch have given way, at least partially, to Swift and SwiftUI, and so I started from scratch once more to learn to code the iPhone exclusively with Swift and SwiftUI.

    That adventure is another post, but just a few hours ago, I submitted version 1.0 of Killer Sudoku Aide to Apple for review and hopeful inclusion in the App Store.

    And now I wait. Will it get accepted or rejected, and if so, why? What perceived sin might I have committed against the capricious Apple App Store Review Gods?

    Time will tell.


    *We never made it to Alaska. Outside Santa Fe, NM, my dad was stung by something on the finger, and it started to swell up. After a few days, hunkered down in one spot in the woods, it was still getting worse, so we moved on to Denver, CO, where he saw a doctor seeking treatment. They treated it, and it seemed to be improving, and we continued on, but it never healed completely.

    Having lost time, my dad tried to accelerate the trip, and within a couple of weeks, we were in Seattle, WA. The finger was swelling and being gross again, and he had to seek more medical treatment. This time they cut it open, drained it, removed something that was in there, and sewed it back up.

    My dad had had enough. He was in a lot of pain and not enjoying the trip. We turned south through Oregon and California and returned home. My dad never made it to Alaska. For that matter, neither have I. Yet.

  • Part 3 – The Internet’s Original Ninja Team – Are We Really Doing This Now?

    Public Access TV made way for YouTube.

    Public Access TV was a stipulation in the contracts with cable TV companies when they were granted city-sanctioned utility monopolies in many US cities. The idea, briefly, was that TV is a powerful medium controlled exclusively by big corporations and that community members should also have access to that medium.

    Cable companies were required to provide free equipment and resources for local producers. They could not exercise any editorial control – beyond those stipulated by the FCC, such as no pornography and rules against using free access for commercial purposes.

    In a world where camera availability, quality, and affordability were rapidly improving; computers we making dedicated edit suites obsolete; and anyone could upload any video to YouTube for a worldwide audience, Public Access TV didn’t make much sense anymore.

    Fusion Patrol, the TV Series, was ending at the beginning of the YouTube era. Over the course of several years, we had learned (some would argue that it was quite painfully learned) that you can’t just hand someone a camera and editing equipment and expect quality work. Enthusiasm can only carry you so far. There’s a reason the big boys spent a lot of money on their equipment and training.

    With a conscientious approach, you can identify your shortcoming and, to some degree, improvise solutions to improve the quality of the final product. (Remember we are talking about the days of handheld camcorders and no smartphones.)

    In those early YouTube days, we saw people making the same mistakes we made years earlier. We also saw that the books and online tutorials were still in the mindset of “buy the good equipment, and here’s how the pros do it.”

    That left many people out who couldn’t afford to buy C-Stands, dolly track, a steady cam, or any other expensive specialist equipment. But you can improvise.

    That is how the Ninja Team Video Project (NTVP) was born. One of my friends, who is quite conversant in photography and videography, and I decided to make a series of instructional videos on improving making videos. We made a few, but time slipped away from us, and the rapid acceleration of the quality of consumer equipment made it unnecessary.

    The name Ninja Team was one of our very few first “pie in the sky” names. Even back then we were sure there was no way ninjateam.com would be available.

    But it was. And I own it and have done so for decades now. It has also been in mothballs for many years after we stopped the NTVP.

    I promise you, this is all relevant.

    With Fusion Patrol the TV Series wrapped up, with NTVP shut down, and a couple of other projects under the Lone Locust umbrella (Spottings, The Pizza Locust) ended, I eventually ended the pretense that Lone Locust Productions wasn’t just me.

    I am the Lone Locust, and lonelocust.com became the online place about me, and in 2005, I converted it to a personal blog.

    Things are changing again, all because of that iOS Killer Sudoku Aide app back in part one of this epically long multi-part blog post.

    In part 4, I’ll explain why my app is driving this change and how my hubris about the Ninja Team is causing the changes to happen here.

  • Part 2 – The History of lonelocust.com – Are We Really Doing This Now?

    That last post may have seemed very random. Well, life is like that. It’s not neatly wrapped up in a simplistic series of causes and effects.

    However, my mind requires that life is like that, so when I gather my thoughts to tell a story, the pieces must be there no matter how spurious they seem. I’m also using this opportunity to re-introduce myself. I’m certainly not the same person I was when this domain became a blog in 2005.

    One piece of that puzzle is this domain, lonelocust.com, and what it means to me. The story of this goes back even beyond 2005.

    In the early 1990s – before I had two children (both legal adults now) and before I met my wife, I was a dilettante writer/video maker. I became fascinated with public access television, which was a thing back then.

    I, and a group of my friends, created a public access TV show that aired for several years locally in the Phoenix area called Fusion Patrol. It was really nothing like the podcast that currently operates under that moniker, although they are spiritually linked.

    I’ll spare you the origin story of Fusion Patrol as a TV show, but all the info remains online here at the Fusion Patrol FAQ. An FAQ so good that another public access show elsewhere in the country plagiarized much of it word-for-word, and I had to be a bit unpleasant with them.

    Fusion Patrol originally started under the Bleeding Obvious Productions banner. Bleeding Obvious was apt because it reflected the type of humor we were attempting. It was not meant to be subtle, yet, at the same time, it was meant to reflect that we were going to bury subtextual references to other sources like Monty Python as homages in our work. (A very early example of “if you know, you know.”)

    (That has been a consistent theme for me going back into the ’80s to my original 1200bps FidoNet BBS – 114/12 The Crunchy Frog BBS.)

    The inspiration for “bleeding obvious” is a line from the Fawlty Towers episode, Basil the Rat, where John Cleese has the line, “Next contestant, Mrs. Sybil Fawlty from Torquay. Specialist subject – the bleeding obvious.”

    That name soon changed to Lone Locust Productions. That, too, is a television quote. In this case, it was from Space Ghost: Coast to Coast when the character of Zorak (a mantis, not a locust) uttered the now immortal words, “I am the lone locust of the apocalypse. Think of me when you look to the night sky.”

    I fell in love with the concept immediately. The very idea of a singular locust pushes all my funny bone buttons in just the right spots. It’s absurd. It’s a bit sad. It rolls off the tongue with a pleasing alliteration. And it felt like my role when making Fusion Patrol. I was the lone locust trying to get a group of grasshoppers to swarm.

    So it came to pass that lonelocust.com and fusionpatrol.com were the first domains I ever purchased.

    Lonelocust.com was initially intended to be a catch-all top-level domain as a parent to all the named projects, like Fusion Patrol, that I would do over the years. It also became my social media handle of choice.

    Next time – Part 3, the Internet’s original Ninja Team.

  • Part 1 – Are We Really Doing This Now?

    Imagine this: You still use an RSS reader. Maybe it’s been set up for a decade or more, and today, in some small, disused corner, there is this post, from Lone Locust Productions.

    I’m not kidding myself. The chances there are more than 5 people on the entire planet are slim, and those people have probably all forgotten that they were.

    So, why now?

    Partially, it’s my hubris. Let me explain.

    Several times over the last few years, I’ve considered delving into iOS app development. Not because I have some brilliant idea for an app to make a fortune but because the challenge of adding another programming skillset to my arsenal amuses me.

    And it is genuinely just about the amusement factor. Conservatively, I have programmed in at least 10-15 languages over the decades. I flatter myself into believing that if, as Apple says, “…some grandmother in China is a thriving app developer,” I shouldn’t have any problem, either.

    I’m retired. I have time on my hands. As far as I can tell, the coding part of my brain hasn’t atrophied too much. This should have been a breeze.

    But it has been anything but.

    I have had several complete false starts, working my way through various books or online tutorials, and while I grok them, I have failed to apply them to anything productive.

    That’s just how I am. In every prior programming language that I’ve learned, from FORTRAN to Java, I’ve had specific programs that I wanted (or needed) to write. With an objective in mind, I can thrash my way through any project and learn any needed skill along the way, but without a concrete objective, I drift and lose focus and drive.

    Try though I might, I have failed to have an objective – until now.

    About 12 months ago, I had to replace my beloved and somewhat ancient HP-28S calculator. I was mortified to learn that HP has gotten out of the “good” calculator game. Ceding the market to massively inferior Texas Instruments ones. (OK, it has been 40 years since I owned a TI calculator, but I don’t forgive or forget easily.)

    Luckily, you could still buy the last of their flagship scientific calculators, the HP Prime, so I bought one.

    About the same time, I got the habit of playing the Guardian’s Killer Sudoku puzzles.

    Not sure what a Killer Sudoku puzzle is. They are not ordinary Sudoku puzzles that have a difficulty rating of “killer,” they are a different variation of Sudoku. The Guardian describes them thusly: “Normal sudoku rules apply, except the numbers in the cells contained within dotted lines add up to the figures in the corner. No number can be repeated within each shape formed by dotted lines.

    A lot of what you need to do in Killer Sudoku (KS) is to work out the possible combinations of digits (1-9) that will “…add up to the figures in the corner…” of the “…cells contained within the dotted lines.” (I call this a “cage.”) At the same time, digits and their placement must also comply with standard Sudoku rules, too.

    I find the puzzles enjoyable, but, particularly when I was starting out I kept a sheet of paper that I had printed and laminated that listed all the possible combinations. It can certainly stuck, particularly on the larger cages.

    Example: A cage with four cells that adds up to 14 has five different combinations. (1,2,3,8), (1,2,4,7), (1,2,5,6), (1,3,4,6), and (2,3,4,5)

    It can also tell you other things in more oblique ways. In the example above, I can tell not only what might go in the cage, I also know what cannot – in that example, “9” cannot be present. This can help to figure out things outside the cage you’re looking at.

    But there’s more you can do. In that same example, say you’ve figured out, through other means, that the cage cannot contain a “2.” If that were the case, the only possible combination that works is (1,3,4,6).

    I thought to myself, “This is a programming problem, and I can do better than a paper list.” I had a nice shiny new programmable calculator, and I had an objective to work towards.

    And so, as I’ve done many times in my life, I sat down and learned the HP PPL programming language and dashed off my Killer Sudoku Killer (as I then called it.)

    It works well if I do say so myself. (And since I’m the only person who’s ever seen it, or ever likely to see it, you’ll have to take my word for it.)

    Months later, I slap myself on the forehead and shout, “d’oh!” as I realize that I should have used the opportunity to learn to code for the iPhone instead.

    I also realized it’s not too late, and so, in fact, I have ported it over to iOS, and that was an adventure of its own, which I will recount in a later post.

    So back to the original question, “Why now?”

    The answer to that and the related question, “Why here?” will have to wait for part 2 of this post. Stay tuned; it will happen.

  • My Weird Pizza Hut Rant

    “Rant” may be a bit strong…. We’ll see.

    I have the good fortune (some would say) of living within 300 meters of both a Domino’s and a Pizza Hut. Say what you will about the relative merits of those chains, it’s very nice having hot pizza choices just around the corner from me whenever the mood takes me.

    This has two-fold advantages. Because of their proximity, I can order pizzas and pick them up in about 10 minutes with less than a minute travel time either way. Hot, fresh, fast. Perfect.

    It also means that, should delivery be required, we still get the pizzas much quicker than standard delivery times for most people. They always seem to come here first if they’re delivering to multiple customers and it takes them just under 5 minutes to get here. That takes them longer than it does for me, but they have to navigate to an unfamiliar home and I don’t. Again, hot, fresh, fast. Almost perfect – but too expensive. It’s a bit crazy to pay the delivery fees and tips when its an almost effortless pickup. Or so I thought…

    Today is my son’s first day physically back to school since early 2020. Last night, he wanted Pizza Hut for dinner and, given the circumstances, I was inclined to humor him.

    During the pandemic, we have been staying home and scrupulously avoiding entering businesses. Contactless pizza delivery – where I order online, then they pull up, leave the pizza on my front porch and bugger off without me having to deal with a human has been fantastic!

    In that scenario, the extra cost is worth it, and we have done this multiple times over the last 16 months, and it has worked well.

    Until last night.

    After carefully crafting our family delivery order in the Pizza Hut app, I attempted to submit the order and pay. This was met with a succinct, yet unhelpful, “This location is temporarily not accepting internet orders.”

    The app suggested that I call them on the phone like a caveman. That is a non-starter to me. I needed an alternative. Domino’s wasn’t it because James’ little heart was set on Pizza Hut.

    There is another Pizza Hut just 3.25 km from my house. I checked to see if I could order from them, but, Pizza Hut has apparently divvied up their delivery areas with precision, and they would not deliver to my house.

    My options were reduced to ordering the pizza for pickup at the farther Pizza Hut or ordering pizza from the nearby Pizza Hut on the phone like a caveman.

    I broke down and called the nearby Pizza Hut. (Need I emphasize like a caveman?)

    Their damned phone wasn’t working, either!

    Resolved as I was to honor my son’s last meal of freedom request, I used the Pizza Hut app to order the pizzas, for pickup, from the farther store. I have never used the Pizza Hut app to order pickup – that’s a tale for another day that involves inconvenient left turns on high traffic streets – so this was my first experience with this facet of the app.

    The ordering experience is identical and only deviates at the checkout process. Checkout starts by presenting you with a rather leading dialog box which says something like, “We’ll be doing contactless curbside pickup.” Followed with the choices “OK” or “No.”

    It then asked what type of car I would be driving and where I wanted the pizza placed (trunk, backseat, passenger side window, etc.) and I dutifully filled that out.

    Finally, it presented me with a screen saying “Your order will be ready in 14 minutes, please head to the store and let us know when you’re here. There was then a button saying, “I’m already here.” I left that on the screen and headed to the Pizza Hut.

    None of this is unusual. It’s very similar to how the McDonald’s and other apps work.

    Upon arrival, the screen now read the same, except that the time had updated to 2 minutes until the order was ready. I pulled in and hit the “I’m already here” button.

    A screen popped up saying my pizza would be ready in 2 minutes, and returned to the exact same screen as before. I waited. Eventually 2 minutes became none and the pizza was ready. I believe the button changed to something like “I’m here” or “Tell us you’re here.”

    I clicked it and…

    …it said, “call us on the phone (like a fucking caveman) and tell us you’re here.”

    !!!!!

    They even provided a button to click to call them.

    I called them and I get, “Hello, thank you for calling Pizza Hut will this order be for pickup or delivery?”

    I said, “It’s for pickup. I’ve got an order in the system. Your app made me call you (like a caveman) to tell you I was here.”

    Confusion reigns at the other end of the phone. I’ve thrown him off his script in a surprisingly unsuspected way. “Oh, um… OK, I’ll tell them that you’re here, and they’ll bring it out.”

    “Great, thank you. Would you like to know the name on the order?”

    “Oh, sure, thanks.”

    Being completely fair to them, in less than a minute someone came right out, walked straight to my car, brought the pizza to the correct “delivery location” and I was off; however, the whole thing really made me feel like they hadn’t quite got this whole process worked out yet. That seems very surprising to me this far into the pandemic with a massive company like Pizza Hut.

    P.S. I hate, hate, hate any system where I have to talk on the phone like a god-damned fucking caveman!

  • Lockdown Restaurant Review: Glover Home

    Lockdown Restaurant Review: Glover Home

    I think that we all have to agree that different people like different foods.

    There are, for example, people who eat vegetables and other items dug up from the dirt!  I find this behavior unconscionable; however, I have to acknowledge that different people have different attitudes.

    Just like people’s attitudes about food differ, so too do their attitudes about what to expect at the dining out experience.  For some it’s about the ambience.  For others it’s about the food.  And if it’s about the food, sometimes people make weird comparisons to “home cooked” foods.  Why is “home cooked food” the gold standard that so many people apply?  Let’s be brutally honest:  You may love your mother, but statistically speaking there is only an infinitesimal chance that her cooking – of any dish whatsoever – is the best in the world.  Rapidly approaching zero.  (Sorry, mom.)

    It’s wrong when you go to a restaurant to eat that you seek that “home cooked” meal experience.  You should demand something better.  It’s not shameful.  Professional restaurants have access to more talent, more experience, more ingredients, and more equipment than you probably have at home.  Embrace the experience.  Revel in it!  You never know when you might be trapped away at home, unable to go out to a restaurant to eat.  You’ll appreciate it then.

    With that in mind, yesterday we dined at the Glover Home, and I’d like to review the experience.

    Before we talk about the food, lets talk about the ambience and the dining experience.  We arrived at our assigned dinner location about 45 days ago.  In the time preceding the first dinner seating of the day, Michelle, James and I spent our time in the waiting area, which was a half-assed attempt at creating a living room feel.  There was a TV, two recliners and a badly-battered Ikea sofa.  There was also an exercise bike, a Nintendo Switch, with a couple relatively recent games which kept the kids occupied.

    The decor was clearly meant to simulate a living room, but was neither spotless nor decorated with tastefully chosen knickknacks as you would see on television.  The furniture wasn’t arranged in a close-knit fashion designed to encourage conversation, but was instead placed with an eye towards watching the television.  It had an eclectic mix of family photos (none of them in ornate gilded frames or even old-style black and white,) books and DVD cases – oh so many DVD cases.  Considering how many DVDs were available, I was seriously worried about how long the wait for dinner was going to be.  There was also quite a lot of just clutter.  Things stacked, as if forgotten, in corners and other out-of-the-way parts of the floor.

    Overall, I don’t know WHAT they were thinking and can only assume it’s some hipster thing.  I said it was an eclectic mix – that was to be the theme for the evening.

    Part of the unique experience of dinner at Glover Home is that one person, this time Chu-Wan, has to be designated to work the kitchen.  This is not the first time I’ve been to a “theme” restaurant where the establishment hands you the food to cook – Korean BBQs and outdoor hamburger grills come to mind – but usually the entertainment value in that (if you can call it that) is the group “shared experience” that it fosters.  Chucking one member of the party into the kitchen to do the work while the rest of the family plays Switch games in the waiting area just doesn’t cut it.

    There’s another problem with that arrangement, too.  The kitchen just wasn’t as well equipped as a commercial kitchen – I’m fact, I’m certain it wouldn’t pass a Maricopa County restaurant inspection – for lack of equipment if nothing else.  While I wasn’t too worried about food-borne contamination, the inadequate facilities and staffing meant that not all the food could be delivered at once.

    I don’t mean that like, the salad arrived before the soup, and the soup arrived before the main dishes – because there was no salad or soup.  Nor even do I mean that the sides meant to accompany the main arrived separately, because there were no sides.

    What I mean is that all four of us had the same main dish, but we could not all eat at once as the food had to be prepared in small batches.  (We’ll come back to the variety of the menu later in this review.)

    Technically, there was salad available.  In a bag, and you had to serve it yourself. Shredded cheese was available, as was unlimited croutons.  Well, unlimited until the box ran out. The choices of dressing were limited, but fortunately happened to be exactly the three dressings I eat: Italian, Caesar and Thousand Island.  The advantage to this do-it-yourself approach meant that one could have croutons, cheese and loads of dressing and just skip the lettuce altogether.

    Let’s talk a little bit about the menu.  You’ve heard about those pompous, poseur, hoity-toity restaurants that don’t give you a choice for dinner?  You just show up with your reservation and the chef has decided that tonight you eat steak tartare, asparagus in aspic and cranberry flan.  You eat it and you rave about it to your friends, no matter how gawd-awful it was, because you got the privilege of eating at the restaurant and if you didn’t like it you’re obviously the proverbial swine that doesn’t appreciate pearls.  Glover Home is a bit like that.  They serve four set entrees a week, and if you don’t like what they’re serving that night, there’s a box of croutons to eat. They don’t even print the menu, they just shout what’s for dinner from the kitchen.

    This week’s menu was Japanese Curry Rice, Taiwanese San-Bei Ji (a chicken dish), Australian Meat Pies and Spaghetti with Meat Sauce.  What the heck kind of cuisine is that?  There’s no consistency or pattern.  Is it a Japanese restaurant, Taiwanese, what?  I don’t know how any establishment can hope to get a following when you don’t get to pick your meal AND don’t have a clue what type of food you’re going to get.

    They also do a weird special the other three nights a week.  They call it “foraging” in which all the diners are let loose in the kitchen and are forced to battle it out to feed themselves with whatever is available in the pantry and freezer.

    This review is for Australian Meat Pie night.  When the first batch of food arrived, we were called to the dining area.  Seating was communally around a utilitarian wooden table.  The decor, if you could call it that, was from the early Mid-Pandemic Lockdown Era (circa 2020 C.E.). The table had a considerable amount of divers clutter, including textbooks, bills, face masks, hats and bits of home improvement projects, all pushed to the side to make room for plates.

    There were also crumbs and other detritus left behind from previous meals giving the table the appearance of having been cleaned by teenagers as a token chore for earning their allowance money.  Condiments were available in the form of a mismatched Dalek-shaped salt cellar and pepper pot.  (I really liked the Dalek-shaped salt cellar, it added a touch of class to the table.). There was a napkin dispenser with the most varied array of mismatched paper napkins imaginable.  It looked all the world like it was stocked with leftover napkins from different fast food restaurants.

    Like everything else, the plates, utensils and cups were completely mismatched.  Beverage choices were water, sweet tea, plus three kids of soda served IN CANS.  Refills were available only for the water and sweet tea.

    When the entree arrived, as previously mentioned, they were divvied out unevenly, since a second batch was in the kitchen.  This prevented prevented Chu-Wan from being able to eat from the first salvo of pies.  The pies were small, almost the size of fruit tarts, which I don’t blame the chef for, it was a limitation of equipment available in the kitchen.  This meant that you needed three pies to make a decent-sized meal.  The food itself was fine, slightly unevenly cooked and, I think could have used a bit more garlic and Worcestershire sauce, but perfectly serviceable.  Not the best I’ve ever had, but not the worst.  Certainly palatable enough that you didn’t feel the need to reach for the box of croutons.

    One downside of the dining arrangement was that, with the waiting area so nearby, it was difficult keeping the kids at the table.  The allure of the Nintendo Switch kept drawing their attention away from food.

    For all its drawbacks, it has a certain indescribable appeal, we have after all, eaten here 45 nights in row, and you can’t complain about the price.

    Compared to the “gold standard” of the home-cooked food experience, I rate this 5 stars out of 5.  “It’s just like eating at home.”

    • Open hours: 24×7, Serving hours vary
    • Accepts credits cards: Yes, via PayPal
    • Accepts ApplePay: Yes
    • Accepts Android Pay: No
    • Reservations: No
    • Good for kids: Yes
    • Pet-Friendly: Yes
    • Attire: Casual (very casual)

  • The Instacart Experience

    The Instacart Experience

    We completed our first Instacart transaction today, and it was satisfactory; however, there were a few things that we either had to hunt for or discovered in the process.  For the purposes of passing this on to others, here’s an account of our experience and what we learned.

    Let’s walk through the experience first.

    You’ll be presented with a group of stores that are in your area that Instacart will shop at.  On Instacart’s website they have the stores broken down in three pricing types:  

    • Stores that the Instacart price is the same as the in-store price,
    • those that the price is higher than in-store price and finally,
    • those that are mixed… some higher, some the same.

    The store we normally shop at, Safeway, had higher prices, so we chose to go with Fry’s Food and Drug, which had the same pricing model.

    The Online Shopping Experience
    The shopping app is easy enough to navigate, with pictures of the various items and pricing.  We chose about 30 items, with an approximate total of $140.  In some cases we would be told that an item was out of stock, or, more often, that the item was in low supply.  In which case, it would prompt us to select an alternative and would make a suggestion.  In the two or three instances, the suggestions were generally satisfactory.

    One case was a bit weird.  I chose a box of frozen crunchy taquitos.  It warned me it was low and suggested crunchy beef and cheese chimichangas from the same company as an alternative.

    This was a new product that I was not familiar with but sounded intriguing. I wanted to try them, instead, I chose the option of “don’t replace” for the taquitos and then proceeded to add the chimichangas to my purchase list as a separate item.  It immediately told me they were low on them and suggested the crunchy taquitos as an alternate.

    The circular logic of this was a little odd.  (For the record, in the end, we only managed to get one box of chimichangas and no taquitos.)

    When you complete your order you pay through the app and apply the tip for the shopper.  I’ll discuss pricing later.  They place a hold on your credit card for an amount greater than, but not unreasonably so, the amount of your order.  In our case, it was a $190 hold.

    Between the time you complete shopping and when the shopper is dispatched to the store, you have the option of adding or deleting items.  This was handy because we didn’t do the most organized job of shopping and added a couple extra items along the way.  Because the hold was larger, they did not require additional charges to add items.

    One of the options you can choose is to let the shopper leave your groceries at your front door without interacting with you, which I can’t see how that works, but since we knew we’d be home and we ordered ice cream, that just seemed a non-starter.

    Scheduling
    Things are weird right now.  Stores are running low on everyday items.  Delivery services are experiencing unprecedented demand.  I don’t think we can say that the Instacart schedule experience was typical.  It wasn’t bad, but it probably wasn’t typical.

    We placed our order late on Wednesday.  We were presented with two options, either a scheduled time slot, the earliest being Monday of the following week, or “whenever available”, which would be any time between Friday and Sunday of the current week.  As we were in no hurry, and home all day, but didn’t want to wait till the next week, we chose the as-available option.  We were told we would receive a notice when shopping began.

    Each day I checked the app to see what it had to say, each day the window for shopping shrank.  First Friday through Sunday, then Saturday through Sunday, and finally just Sunday.  At least it didn’t start adding days on the end.

    The Shopping Event
    8:00 AM Sunday morning I got a notice from Instacart that my shopper was starting shopping.  It is not uncommon for us to sleep in well past 8:00 AM on Sundays, but as it happens, I was awake.  This could have been a very different experience if we’d slept through it and left the shopper to their own devices.

    The notice included the name of the shopper and the ability to chat with them.  Soon thereafter I started getting notices that they had substituted items.  The first was perfectly reasonable.  The store brand of baby spinach was out, and so they substituted the name-brand equivalent.  No problem.  It appeared that this was “done deal” based on the notice I got; however, when I went into the app, I noticed that it gave me the option to approve or make an alternate request.  None needed, so I approved it.

    Next we had a box of standard cheddar goldfish crackers for my kids, and they were out, so the shopper substituted “Flavor-bast goldfish.”  Which I think is an improvement; however, for whatever strange reason, my kids won’t eat them.

    In this case, I did not approve the substitution, but instead recommended a smaller box of the standard goldfish.  I took this opportunity to use the chat and told the shopper why I rejected it.

    Once the shopper knew I was there and actively paying attention, we got a lot more interactive.  There were several other items that weren’t in stock, but now I would get a photo of the picked over shelves and asked “what would you like me to pick from what’s here?”

    This worked pretty well, although it was sometimes a bit difficult to tell what was on the shelf.  On some occasions he just listed the alternative.  For example, we wanted Mission Brand taco seasoning, and I just got a question that said, “they don’t have Mission, but they have Ortega or Pepe Sanchez brand which would you like?”

    I don’t know if their system favors sending the same shopper to the same account every time, but I could see how if you got a “regular” shopper, they would begin to know your preferences and get better at it.

    Even though we made a lot of the choices via chat, they always ended up in the app for me to approve, which was fine.

    He let me know when he was done shopping, and then a few minutes later he let me know that Fry’s didn’t have enough checkers working and the lines were long and that it would be a while.

    We had a couple jokes about everybody thinking Easter morning at 8:00AM would probably be empty and they all went shopping.

    The Fry’s is two miles from my house, and my groceries arrived in about 15 minutes from when he finished checking out, which is a little longer than I would expect, but I’m familiar with the drive to my house and he wasn’t.  It certainly wasn’t unreasonably long, and my ice cream was in a cold bag to keep it frozen.

    He thoughtfully brought the ice cream to the door first so we could get it into the freezer ASAP.  He, and an assistant, brought all the groceries to my doorstep, set them down outside, and with cheery wave through the screen door and six feet of social distancing that separated us and a hearty! “hi-yo, Silver away,” he was gone.

    Ok, he didn’t really say that, but I imagined it as he drove away.

    The Pricing
    There ain’t no such thing as a free lunch and that goes for grocery delivery, too.  Instacart offers two plans, one is a subscription service which eliminates the delivery fee.   Obviously, for a trial run, we didn’t opt for that option, instead paying the delivery fee, which is a remarkably cheap $3.99 – if you’ve ordered more than $35 worth of merchandise.  That’s what you’ll find on a casual look at the website.  In fact, it’s a price so cheap you have to ask, “how the hell is this a viable business model?”

    Dig a bit deeper and you discover that Instacart charges a 5% service charge, which, on our order worked out to about $6, plus the $3.99 and it was $10 total.

    But it doesn’t stop there, and here’s an area that I really want some clarification on.  Does the shopper get any of that?  Instacart also charges a tip, which is technically optional, but morally not.  The default amount is also 5%, but we bumped it to an even $10.  Instacart is quick to point out that 100% of the tip goes to the shopper, but is that all they get?

    A little weird is that you pick the tip before it’s even been assigned to a shopper.  In fact, there are rumors that the shoppers pick and chose which jobs to take first on based on the tip.  There are further rumors that buyers sometimes put a big tip to lure rapid service, then change it afterwards (which you are allowed to do) to a lower amount.  The flaw in that system is apparent.

    I tested the “change tip” system and bumped my shopper a couple more bucks along with a five-star rating.

    Is There Even More Cost?
    Yes.  Yes, there is.

    One of the “options” presented on your account is to attach store loyalty cards.  We have loyalty card for both the store we normally shop, Safeway, and for the backup store that we used for this Instacart experiment, Fry’s.

    You can save quite a bit of money using loyalty cards, but unfortunately, neither Safeway nor Fry’s were included.  (It does say that more stores are coming soon.)

    This was not a deal-breaker, but disappointing.  It certainly means that without the loyalty cards, we would be inclined to not use Instacart on a regular basis until they implement.

    I have my doubts they ever will.

    Along with our groceries, we also got the actual store receipt.  This allowed me to compare what we were charged by Instacart and what they paid in the store.  They don’t match, but I was able to reconcile it, and, of course, the difference is in Instacart’s favor.

    The prices quoted on their site, and charged, are the listed store prices, so, to be clear: I paid what I was quoted and expected to pay, so I am making no assertion that a “fast one” was pulled.

    Instacart has their own loyalty savings card which was used on the transaction.  This resulted in a  VIP shopper savings to them of $3.81, which they pocket.  It doesn’t sound like much, but remember my 5% service fee was only around $6.  This is like paying for another 2-3% in addition to the service fee.

    Chump change, right?  Not to Instacart it isn’t.

    At the bottom of the receipt, Fry’s thoughtfully provides the year-to-date savings for that loyalty card.  The bottom of my receipt proudly says, “Annual Card Savings $681,736.25.”

    It’s mid-April.  That’s a 3.5 month take, representing an average of over $6,600/day, for just one supermarket chain in their network.

    And who knows how regional that is?  Fry’s is a Kroger store.  Does that tally include other Kroger brand supermarkets or just Fry’s?  Is it regional or nationwide?

    Having that kind of money coming in on the margins is why I doubt they’ll ever implement loyalty cards.  It’s a dead loss for them to do so.

    Let me posit that this is an area ripe for abuse, too.  For example, citing my spinach example above.  I asked for the cheapest spinach because… it’s spinach, and it has no place in the home or kitchen whatsoever.  That notwithstanding, my family wanted spinach.  Fine.  But I’m not spending money on “premium” spinach if I don’t have to.  The item I selected was $1.99, but they were sold out, and the replacement cost $2.29.

    Now, this didn’t happen, but what if the replacement had a VIP loyalty card savings of $0.30?  Could a situation arise where the shopper, realizing a more expensive alternative would net more back to Instacart might base their on-the-spot decisions to Instacart’s advantage?  Would there be any incentive for them to do so?  Could that include perhaps “overlooking” and item in stock in favor of an alternative?

    I was active and participating in the shopping, but it’s clear that the shoppers have some autonomy to use their discretion if you are not available when they’re shopping.

    There is absolutely no whiff of anything like this happening in my dealings with Instacart, but like the rumored tip juggling I mentioned before, humans will find a way to game a system to their advantage if they can.

    Finally, and this is just the most minor of things…. We bought two carrots and the prices just don’t match.  Instacart charged us for 0.5 lbs. of carrots but the receipts says 0.45 lbs. of carrots, for a net discrepancy of $0.05.

    At a guess, I’d say that Instacart rounds up to the nearest half pound.  That feels a bit like those clever (yet dishonest and misguided) programmers that once figured out that they calculate interest earned on savings accounts and funneled the truncation error into a separate account and accumulated a fortune.

    Conclusion
    All in all, it’s a handy service and the process worked well.  The final breakdown on pricing was:

    • $118.26 groceries (per store receipt)
    • Delivery fee: $3.99
    • Service Fee: $6.10
    • Tip: $12.21
    • Carrot scandal: $0.05
    • Loyalty Savings Lost: $3.81

    Total of fees/tips/charges:  $26.16
    Fees as percentage of total grocery purchase: 22.1%

    22% does seem just a bit much for it to ever be our go-to option for grocery shopping.

  • Time to Retire?

    Time to Retire?

    What’s this?  A blog post?  After all this time?

    It is indeed.

    For want of a better word, I have retired.  My former employer, the State of Arizona had (before they ruined it for newer employees) a fairly liberal retirement annuity program.  To be fully vested for retirement you simply needed a combination of 80 “points,”  Points were defined as a combination of your age and your years of service. For me, that came late last year when the conjunction of my age, 53, and my years of service, 27, came together to create magic.

    What was that magic?  Well, it was the magical ability to give no more fucks about shit going on at work.

    No more fucks about their ham-fisted and transparent attempts to consolidate Information Technology services and staff downtown with another agency; no more fucks about forcing us all on Google’s G-Suite because they tried to play hardball with Microsoft and failed; no more fucks about IT security remediation; no more fucks about packing up our agency and moving it downtown to grotty building, with half the space, no walls and not a damned place to eat worth a crap for miles; no more fucks for their cult of business management which ignores qualitative outcomes in favor of quantitative ones; and no more fucks for an executive branch that replaces a qualified, competent and high-performing Director simply because she refused to put an R next to her name instead of an I.

    No more fucks given.

    [Next time, we’ll talk about what comes next.]

  • They Crashed Into My House – Conclusion?

    They Crashed Into My House – Conclusion?

    On June 26, 2016 at about 11 PM I was working in my dining room and I heard what could only be described as an explosion. It came from my office and upon checking it, I discovered an automobile sticking into my home. Outside the car sat with two people in it: a driver and a passenger. From my vantage point of the passenger was the person I could see best.

    I called 911 and reported the accident. They had me check something about the car and when I did the two people were just getting out of the car.  One was on each side of the car; again the passenger was the person I could see best.

    As they were up and about I told them that I had already called 911.  One of them, I’m not sure which one, responded by saying, “you did?” in a voice that wouldn’t of been out of place as a stoner in the 1980s John Hughes movie.

    I returned to the 911 call and as I was ending the call with them, they gave me an ETA of just about three minutes for the first responders to arrive. I went back outside and I told the car occupants that emergency services would be here in just a few minutes. In this case the person identified as the passenger turns to the person who was the driver and said, “you’ve got to get the fuck out of here.”

    At this point the first responders arrived and I notified them that it sounded like they were contemplating doing a runner.

    I had no further contact with the driver or the passenger of the car. I stayed out of the way, although I did observe them talking at some length with the police.  I also witnessed the police finding and removing drugs as evidence from the car.

    Sometime later the police told me that it was a DUI situation and that the passenger, not the driver, was the owner of the car. Both were significantly impaired.

    I noticed that the car occupants were scantily clad. The passenger was wearing a very short dress that, with the slightest movement, lifted up exposing her ass cheeks. The driver was in some sort of an outfit that look like her bra and panties.  I never got any closer than 10 feet to either of them and it was dark, but that was my impression of what the driver was wearing.

    Eventually, the car was towed away and everyone left – leaving my family and me to spend the months it took to get our home and lives back to normal.

    From this point forward, everyone I spoke to from the insurance company to the police indicated that this was an absolutely open and shut case. Imagine my surprise when, over a year after the incident, I was subpoenaed to appear in court, as the defendant was contesting the charges.

    The ability to communicate with the city prosecutor’s office was problematic, and it wasn’t until I was driving after work on Friday (the court date was the following Monday, August 21, 2017) that I spoke with the prosecutor.  I told her I had time to talk, but that I was driving to pick up my daughter.  In response she just said, “I don’t want to distract you.  I’ll talk to you Monday morning before court.”

    And so it was that I went into court completely clueless as to how the defendant was trying to contest the charges against her.  She was taken, blitzed out of her mind, from the scene of the crime, where the car she was driving was buried in a house.  What possible grounds could exist?  I was mystified.

    I dutifully appeared in court at 8:00AM.  Miffed that this was likely to cause me to miss the eclipse that morning.  (Maximum eclipse time: 10:33AM)

    When I arrived at court there were five police officers who’d been there that night, three uniformed and two detectives, there to present evidence.  The prosecutor was very pleased to see them and me.  It seemed that the prosecutor didn’t actually know on what grounds the defendant was contesting the charges – or perhaps she was holding out on me as a surprise.

    Upon my arrival the prosecutor showed me two pictures of the two women in the car and asked me to identify them. I identified them as the two women in the car and specifically told her that it was easier for me to identify the passenger.  The passenger being on the side nearest the front door of my house, so that each time I came out to look at the car, the passenger was closest to me, with either her or the car obscuring my view of the driver.

    The prosecutor seemed satisfied and told me that when she told that to the defense counsel, his client would almost certainly plead “no contest.”

    The defense attorney showed up, but the defendant did not.  We spent a fair amount of time discussing what that would mean if she failed to arrive. Either a warrant could be put out for her arrest and the trial would be rescheduled, or they could ask for a verdict in abstentia. However if they did the latter and she had a valid reason for not being here, there could be complications.

    The defendant eventually did arrive and spoke with her counsel.  Afterwards, she still insisted for a jury trial.  The prosecutor asked the defender how she was going to contest the charges. The defense counsel said, “she wasn’t driving the car.  Her claim is that she was helping the other woman get out of the car.”

    The prosecutor asked if I would be willing to speak with the defense counsel and I agreed. We went back to the room.  Again, she brought the pictures he asked me what I saw. I told him how I saw two women in the car and identified the woman in the passenger position.  I also explained how I “sort of” saw them getting out of the car. When I came out to look at the car a second time, the doors were already open on the car and both women were out, the passenger just completing that last bit of pulling her trailing leg out of the car.  They were standing, in the doors of the car, on opposite sides of the car.

    That was good enough for the defense counsel, and he went back to have another consultation with his client to convince her to plead no contest.

    She refused.  She wanted a jury trial.

    Next, the counselors had a talk to the judge.

    They told me that the judge was told some info about the case – apparently what people were here to testify, what types of evidence was to be presented, and some general info about the nature of the case.  They said, when the judge heard the car had sloughed into a house, his eyebrows raised up on his forehead.  He also suggested that the defense counsel go back and talk with his client some more. Which he did.

    She continued to demand a jury trial.

    It should be noted that she is very young; 22 years old.  She had just turned 21 when she ran into my house. Her mother and father were there, and her mother was the one that kept insisting that she go for a jury trial. According to people who actually talked with her, the defendant was taking bad legal advice from her mom instead of from the attorney they were paying for advice.

    Meanwhile, I’m sitting with the police officers from the case. They were reviewing their case notes and discussing the case files.  They were incredulous that the woman was trying to fight the charges.  Or that she was trying to say she wasn’t driving.

    Her blood alcohol level was 0.27, which I subsequently looked up and that is in a range that could lead to death. There were drugs found in the car. (Actually I’d witnessed that on the night because I saw the cops going over the car collecting evidence and I saw one of the officers pull out a bag and say, “…and I found a bag of weed.”)

    They also confirmed I wasn’t mistaken in that the driver was standing there in her bra.  She had admitted that she was driving at the time and some of her clothing was found stuck (ripped) to the driver’s side door.

    The defendant have been very belligerent to the police that night, which according to the prosecutor, if that came out during a jury trial would just make her sentencing worse.

    At the scene, that admitted they left a bar together with the owner of the car driving, but as she was the one that was more impaired, they stopped and let the defendant drive.  That was, of course, before she hit my house.

    What was the car owner’s take on this story:  Nobody knows because she wasn’t in court.

    The prosecutor asked the defender, “Where’s her girlfriend today?”

    Defender just has a silly grin on his face and shrugs exaggeratedly and says, “I don’t know, didn’t you subpoena her?”

    The prosecutor replies, “Yes, we did, but we got no response of any kind.”

    What would she have said if she’d been there?  Was she avoiding testifying to help her friend or had she just disappeared?  Was the defendant aware that she wouldn’t be available and trying to throw her under the bus?

    Now here comes a sentence you never thought you’d hear me say: here’s the point where Donald Trump saves the day.

    Because the defendant had been late and because they were other cases that had to be assigned to a jury on the day, we didn’t get to be first for jury selection. A certain number of people called in each day for jury duty – and only a certain percentage of those turn up.  Those that show get selected based on how the court cases are assigned.  People who get rejected from one jury to get put back in the pool for potential selection on another.

    We’d already been there two hours and it was going to be at least another hour before they could start jury selection, which takes about an hour or more. That was assuming that they could even had enough jurors. Apparently a lot of people didn’t want to come down to be jurors on eclipse day. It was a dead certainty that the trial would run over for another day if it went to jury.

    On the next day, Donald Trump was scheduled to come to Phoenix for one of his Nürnberg rallies. Apparently absolutely no one wanted to be downtown that day. This includes potential jurors who had been called for duty for that day.  Apparently, some days have higher “no-show” rates than others and Trump day was expected to have a lower than average turnout.  (Kind of just like his inauguration.)

    The fact was, it was becoming a very real possibility but the whole trial would be postponed until a later date.

    Now here’s where it gets good: when you are arrested for drunk driving and if your blood alcohol level is over a certain point — and hers was way over that point — they don’t do drug testing even if drugs are suspected. This is because the alcohol level is high enough to secure a conviction and it costs more money to do the drug testing.  That’s why, even though drugs were found in the car, and their behavior was consistent with more than just drunkenness, no drug charges had been filed against the defendant.

    The prosecutor made it known to the defense that if the trial was delayed, they were going to ask that the blood samples — still in evidence — be tested for drugs. And if they found that she had drugs in her system, they would file all new, more serious charges against her in addition to the five they already had.

    That, finally, was enough to convince her and her mother that it would be a bad idea to push for a jury trial.

    And so the police and I were dismissed and I was able to get outside with six minutes to spare before the maximum eclipse here in Phoenix — which was obscured by a cloud.

  • Retro Vlogging – A Throwback Thursday to Kansas City

    So… a retro vlog, throwing back even further in time?  How confusing is that?