Archive for the ‘Technology’ Category

Robot barista cafe expands to second location

January 24th, 2018

Cafe X at Market and Second
Cafe X at Market and Second Cafe X at Market and Second

A while back I visited Cafe X in San Francisco’s Metreon only to find its robot barista charged me for health care.

I thought for sure the novelty would wear off quickly, but it seems every time I’m at the Metreon there’s still a bunch of people gawking at the robot arm shuffling cups around. I’ve even ordered a couple more times myself when I was too desperate for coffee to wait in Blue Bottle’s notoriously long line.

But still, I never expected to see another Cafe X robot barista. Well, I was wrong.

Last night as I headed home I noticed something unexpected: a new Cafe X location at a small storefront on Market Street near Second Street. Despite walking by frequently somehow I hadn’t noticed the signs going up. I peered in the window and sure enough, there was the robot, sitting still, waiting for an order to be placed. A paper sign on the window indicated the grand opening was the following day.

Fast forward to this morning and I decided to stop by and grab a coffee on the way to work. The place was busy, but I breezed through the gawking crowds, fired up the Cafe X app on my phone, and ordered a cappuccino. A few moments later the robot arm gave me my coffee and I headed to the office.

Yes, yet again a robot charged me for health care. Perhaps it’s time to embrace our future of robots and spurious surcharges.

Why the new Firefox logo looks wrong, yet oddly familiar

January 14th, 2018

Back in November Mozilla released Firefox 57, aka “Quantum.” It was the first major change to Firefox in many years with a new look, new extension system, and significantly faster performance. While it did break some of my favorite extensions this was a temporary problem, and despite a few bumps the upgrade was ultimately a huge win in my book. Finally, Firefox became as performant as Chrome while retaining most of its customization options.

There was another change though that didn’t seem quite right — the logo.

Sure the new logo isn’t that different than the old one. It’s just a few visual tweaks here and there, and the colors were modified slightly. No big deal, right? Shouldn’t be, but something looked off and I couldn’t quite put my finger on what bugged me about it.

Then in a moment of realization I figured it out: the new Firefox logo bears a stunning resemblance to Trump’s infamously bad hairstyle:


 

Unfortunately once I saw this I couldn’t unsee it. Enjoy!

A robot barista charged me for health care

August 9th, 2017

Robot health insurance
Screenshot of the receipt
 

Robots are handling food everywhere these days. Whether delivering falafel or attempting to scoop ice cream, there’s no escape from food robots in the Bay Area. All of which is fine with me: I, for one, welcome our new robot food service overlords.

What I’m not fine with, however, are spurious surcharges. So imagine my surprise when I paid a visit to Cafe X, the robot coffee machine at the Metreon, and found a small surcharge on my bill for health care.

While it’s not uncommon for San Francisco restaurants to add a surcharge for Healthy SF, a local subsidized medical care program for those without health insurance, this is the first time a machine has charged me such a fee.

Yes, I realize human employees maintain this robot. But if you think about it, Cafe X is nothing more than a fanciful vending machine. You put money in, make a selection, and a product comes out — that’s it. All vending machines require humans to restock it, clean it, etc. but when was the last time you went to buy a Coca-Cola from one only to find that your 99 cent beverage actually cost $1.10 because of a surcharge? Never, that’s when.

It also makes me wonder if the economics of this robot food service industry are really working out. The “robot” part of Cafe X is an off-the-shelf robot arm custom programmed to move cups around, the coffee beverages themselves are prepared by off-the-shelf automatic espresso machines. If Cafe X has to nickle and dime customers to the point where the prices are in line with Blue Bottle, why wouldn’t I go to Blue Bottle instead? It’s barely a block away, and to be honest their humans not only make better coffee, but they don’t charge an extra fee for health care.

Mini Strandbeest

August 4th, 2016

Mini Strandbeest
 

I received an unexpected gift at work today; a Mini Strandbeest kit. Like a wildly complex Ikea furniture set, there’s dozens of parts to stick together, but it doesn’t take terribly long if you follow the directions.

If you’ve been stuck under a rock for the past few decades and are unfamiliar with Strandbeests, check out the Wikipedia page on the artist who created them.

This particular tiny Strandbeest is powered by wind, with a small windmill and two reduction gears. Like its peers you can also just push it along with your hands, but it’s far more entertaining to blow on the windmill and watch it spring into action.

Want to see it walk? I placed it on the floor and pointed a fan at it. Here’s a short video of the result, complete with silly music to complete the effect:

 

How (not) to think like a product manager

July 27th, 2016

A Medium post titled Clouseau: A Postmortem has been making its rounds on the internet today. While the title isn’t particularly revealing, the subtitle gives you the gist of the story: “How I vetted and dumped a startup idea in ~20 hours and for under $1000.”

For those who haven’t read the article, here’s a quick summary:

  • A product manager from Google went on a vacation in Europe and stayed in some fancy hotels
  • Those fancy hotels did a poor job of providing rooms dark enough to sleep in
  • The product manager spent time and money investigating a business plan around measuring light levels in hotel rooms
  • This data would be offered as a service and would be a “natural monopoly” in the industry
  • Two light meters were purchased and a logo was commissioned for the project
  • This plan failed because hotels don’t let people barge into their rooms to measure light levels without reserving the room, which was cost-prohibitive

What this unintentionally illustrates is classic “product manager thinking:” marching ahead with a pre-conceived solution set in mind despite having given little or no thought to the problem space as a whole. Instead, they limit themselves to areas where they have existing domain knowledge and try to build a solution around that. In this case, that involved coming up with a data-driven approach built around a technological solution.

But just because someone has a pre-existing toolkit for solving problems doesn’t mean that toolkit is always going to be the best method — or even an adequate method — to solve every problem. As the saying goes, to the man with a hammer, everything looks like a nail.

As a software engineer I’ve witnessed this type of thinking in every product manager I’ve ever encountered. No matter what the problem, somehow software was going to be the answer, because that’s what they had to work with. Is the toilet broken? Great! Since the problem is broken toilets, we’ll build an app that lets you hire a plumber. Problem solved… sort of.

So I don’t mean to single out this particular product manager when I point out that his “rapid prototype” was an unnecessary waste of time. If anything that’s the industry norm.

Instead, if he’d only taken a couple minutes to ask someone who travels frequently — or even someone who lives in a neighborhood with a lot of nightlife — he’d know that this was a solved problem. In fact, it was solved so long ago that the solution is offered in thousands of stores from dozens of different companies:

Yup. A humble sleep mask will block out light. And for good measure, buy a couple sets of earplugs. Believe me, if you travel a lot, you’re going to wind up in some loud, bright hotel rooms where you’ll need both.

The message I want to leave you with is to avoid this pitfall. Yes, sometimes gathering data and offering it as a service is a sensible solution to a problem. Or maybe some other type of technology. But unless you’ve fully explored the alternatives, don’t limit yourself with a hammer/nail mentality.

Introducing the VCR Classic Edition

July 24th, 2016


 

You may have heard the bad news recently: the last company making VCRs is about to stop production. But worry not, VCR fans: the VCR Classic Edition is here!

No, this won’t play your old tapes. Following in the steps of Nintendo, the VCR Classic Edition is 50% smaller than your old VCR and comes preloaded with 30 exciting tapes some guy in Cleveland recorded from his TV back in the day!

Tapes bundled with the VCR Classic Edition include:

  • A rerun of the final episode of MASH
  • Couple of really funny I Love Lucy episodes
  • News clip about a dead body some kids found down by the lake
  • That one Seinfeld episode about masturbating
  • …and many more!

Don’t run out to the store yet, the VCR Classic Edition hits shelves this November. We’ll update when we hear more, but early reports confirm that it won’t work with your existing remote control, but it does include HDMI output and relies on USB for power.

So much yes!

We’re looking forward to the VCR Classic Edition and can hardly wait to find the right tracking settings on some forgotten old tapes. This is a perfect example of how to preserve everyone’s favorite technology. We can’t wait!

Microsoft Windows Enterprise Edition

June 30th, 2016

The other day I got to thinking: what would happen if the Starship Enterprise from Star Trek: The Next Generation was built with modern software? If it ran on Microsoft Windows, its own operating system might be bigger a danger to the crew than the Borg. Here’s how I suspect it would play out.
 

 
…and roll credits:

Graffiti just a list of Linux distributions

October 23rd, 2015

Linux graffiti
 

You know you’re in San Francisco when the graffiti is just a list of Linux distos.

For touchier Linux users this list of distributions will no doubt invoke very negative responses. On one side you’ll have a bunch of whiners upset that their favorite one isn’t on this list. In some other corner there will be a bunch of weirdos yelling at you for not calling it “GNU slash Linux.”

Linux users can be like that.

My solution to the world’s energy problems

April 28th, 2015

For years we’ve been hearing about the benefits of harnessing clean energy. Our reliance on fossil fuels has caused toxic pollution, led to numerous wars, and has rapidly altered the planet’s climate.

While solar and wind have potential, let me explain one untapped source of renewable energy: hot takes on Twitter. See, hot takes could be used to heat water and drive a steam engine, must like coal, nuclear, and mirror-based solar power already do.

Here’s a diagram of my proposal carefully illustrated in MS Paint:

The way this works is quite simple:

  1. Hot takes about the latest issue on Twitter create heat
  2. A container of water is placed above the hot takes
  3. The water boils creating steam, which drives a steam engine, which in turn drives an electric generator
  4. After cooling, the water goes back into the container to be heated again

 

In theory, if major national issues continue to be unresolved this could generate enough electricity to power the entire world. Imagine!

My own QML TreeView

February 15th, 2015

It’s Valentine’s Day and here’s the point where I have to confess my love as a software engineer for QML. It’s a markup language for building simple modern UIs with Javascript controls, and can be bound to C++ and Python via Qt. Since it’s based on Qt it runs on pretty much any modern desktop or mobile platform you can think of.

But like any relationship, sometimes one is left wanting for more. Sure, QML is great but it has flaws that are hard to overlook. For example, there’s no “tree view” component (think: file system UIs, Windows RegEdit, etc.) which is a deal breaker for some use cases.

That deficiency ends today.

I’ve been busily working on my own tree view implementation, which you can find on GitHub. It supports drag and drop rearranging and folder creation with a mouse or touch interface. Like the iOS home screen, folders are limited to one level (i.e. no subfolders.)

Here’s the sample test harness in action:

The trick? It’s all a standard QML ListView with a special type of delegate, my own RearrangeableDelegate.

The items can be rearranged by pressing (or long-pressing, see update below) on them, then dragging to the desired space. If you position it between two items a line appears, and releasing the mouse positions the item at that location. Positioning on top of an item causes the two items to pop out into a new folder. Dragging the last item out of a folder deletes the folder. If you want to have special items at the top of the list that can’t be rearranged, that’s supported via the numStationary property.

Everything is designed to be styled to your liking. Want to change the drag border, the opener image, the indentation, etc? Easy! Just set some of RearrangeableDelegate’s existing properties and you’re good to go.

The UI state of each item is stored in the list model itself, which provides an easy (if somewhat hacky) way of maintaining the UI state with a database or settings file. Here’s what you need to provide, subject to change:

ListElement {
    // Unique id (integer)
    uid: 1;

    // Used for drag and drop UI. (Persistence not required.)
    dropTarget: "none";  

    // True if a folder, else false
    isFolder: false;     

    // -1 if not in a folder, else the uid of the parent
    parentFolder: -1;    

    // For folders, this indicates whether their children are
    // displayed. Otherwise, indicates if visible.
    folderOpen: true;
}

Best part: I’m giving away the entire thing for free under the MIT license, which ought to satisfy pretty much everyone (except for Richard Stallman.) Take my code and do what thou wilt. If you encounter a bug please file a new issue or fix it on your own and submit a Pull Request. Either way I — and perhaps other QML developers — will be eternally grateful for your ongoing efforts to make up for this missing QML component.

 
UPDATE: After convincing Hryx to do some user testing, we decided that long-pressing wasn’t discoverable enough for a desktop. So now there’s a flag called dragOnLongPress to control this behavior. By default it’s set to false so that a long press isn’t required to move an item around. You can set it to true in situations where a long press to move makes sense, such as on touch and mobile devices.