Mapillary – wait, what?

It’s been a while since I updated this blog, but now we’re back with a new post. I will tell you why the lack of updates, but first a little context.

I currently work for a startup called Mapillary. In short Mapillary allows anyone, with any camera, to create a seamless street-view experience. Not only that, but using computer vision, it scans the images for features and creates map data out of it. For instance, when it sees a traffic sign, it labels it as such, then creates an actual lat-lon point of it on the world map. You can buy this automatically extracted data. If you don’t know why this is useful, then map data subscription is most likely not for you. (Big companies, like the googles and apples have this information as well, but they’re on a different agenda and they don’t sell licenses for this data.)

OpenStreetMap (or OSM, for short), the Wikipedia for maps, allows anyone to edit the world map. You can plug Mapillary into OSM and you then can do map editing and check what’s on the ground. If you don’t have fresh imagery on the ground you can always go out and capture it yourself. Here is a good article on this.

For the most of you Mapillary is just a name, for me, it’s something else.

Back in April, 2018, I was at a company retreat event with Mapillary. We have our own way of doing these, what we call, offsites, but back at this particular event there was a workshop. It was held by Sandy, where she’s asked a couple of questions, then we shared our answers on post-it notes. (There was even some clustering involved at the end of this group exercise!) I thought maybe I should post some of my answers on my blog, because this ultimately is my testament.

Why do we exist?

To disrupt. Mapillary wants to disrupt some of the mapping industry. The industry doesn’t work well, map data updates are way too manual and tedious process, asset inventory in cities is a problem, big companies are keeping the data to themselves, anyway, there is not a good and simple solution, and so we’re building that.

What makes us different from our competitors?

Because we make it simple. We’re working with hard concepts, the whole Machine Learning/Computer Vision concepts are just crazy hard to even understand, yet, to make a simple product out of it that anyone can easily use?

Why do you work for Mapillary?

Because my job is not done yet. We’re not there yet. It’s not as simple and delightful as we (I) want it to be. There is still so much we need to do.

And this is exactly why I don’t have time to update this blog. Even though I would have so many topics I’d like to discuss, so many podcasts I want to create, so many Apple products I’d like to write about. Everything is just infinitely unimportant when I put it in context, because I want to solve Mapillary. This name you’ve probably never heard of, this one in a million random startup, where I’m just your average product designer.

Yet, even though I’ve been here for 3,5 years, I often feel like this is something that is only getting started.

The omelette challenge

Jacques Pepin starts this video by saying:

“If I had to judge how technically good a chef is, I’d probably ask him to do an omelette. It’s difficult to do a good omelette.”

He then goes on and beats four eggs, and using some butter, a skillet, and a fork, he cooks two omelettes. What’s the big deal, you ask. Because this is exactly what I asked. Then I watched his result. Then I picked up my jaws from the floor. Finally, I wanted to try it out.

First attempt of the second version:

It’s difficult to do a good omelette.

re: An IoT story

Matt Haughey has an intelligent scale which records and sends your weight data to a cloud. Based on weight the scale takes a guess to match it to different profiles. Turns out Matt found almost like a 100 different data points that didn’t match anyone in the household—it was the cleaning lady, for years. Matt wanted to tell her:

I wanted to apologize, explain how it happened, how it was a big accident, and that it was information I wished I didn’t have.

Now, the interesting part is the last bit: I didn’t have. At this point upon first reading I’d assumed he just wanted to tell the lady not to use his personal belongings. His explanation was a little different though:

The next week when our house cleaner arrived to clean our bathrooms, I took her aside and explained that my bathroom scale was connected to the internet and tracking everyone that steps on it. I learned through a software update that it was tracking her too for years, and I was deeply sorry for that.

He was sorry because he was tracking the cleaning ladys data unbeknownst to her.

How Netflix taught me why User Experience matters

Plex was acting rather sluggish so I naturally started to eliminate the bottleneck thus tried different setups and eventually media playing options at home. For example running Plex Media Server on my laptop connected to the NAS wirelessly, then same with running sample locally, then trying out Video Station which is a stock solution for the Synology product line—the works.

However, this post is not about figuring out how to play media files at home. This is about realizing how important User Experience is, and how features, a solution offers, are not.

Netflix has been my default choice when watching movies and shows. It boils down to a couple of things:

– no fiddling with media files
– launches fast
– accessible from everywhere without needing me to configure anything
– the time it takes to display video content on screen is crazy fast
– seeking time is crazy fast
– handles profiles within the family (and keeps seek positions for the profiles)
– has subtitles which always work and is easy to turn on and off

None of the other solutions I explored offers these at the fidelity Netflix is capable of. If an app fails to deliver me these, I just tend not to use it. Not by conscious choice, it just is. The media player visuals don’t matter that much when I need to wait 10 seconds just to see the movie start to play.

You see, all of the media player solutions provide all these features. But sometimes they choke on media files, but then VLC can play them just fine. Sometimes they don’t display certain subtitles, but that other player does, and sometimes they don’t remember seek times. Netflix, on the other hand, constantly delivers on these and never fails. You have complete trust in Netflix.

If I were to maintain a roadmap for a media player solution, the experience provided by Netflix would be my North Star metric. We wouldn’t take on new features, integrations, podcasts, whatever feature business is convinced we need to have to succeed, unless we’re excellent in launching and seeking time metrics, media handling etc. It would require a completely a radically different thinking about our product architecture.

What I realize is that even though Netflix has limited content options when compared to other offerings, I tend to fall back to it. I just don’t want to fiddle with settings, IP addresses, managing media files, thinking about transcoding problems, and all that jazz.

I’m inclined to say when the core User Experience is great, you’ll win users over. The same way Netflix wins me over even though 2% of all the media produced in the world is available on it. At the end of the day I just want to hit the play button and watch something before passing out.

Action button iconography problems

If you’re like me and use Google Meet and Slack calls for video conferences frequently, you might have been in the same confusion. This is what the controls look like, Slack top, Google bottom:

Slack starts with Audio ON, Video OFF
Google starts with Audio ON, Video ON

Iconography however is completely confusing, especially if you use these apps back and forth. One displays a microphone when you’re talking, the other a crossed out microphone. Am I on mute? What should I press to go on mute? (The video is even more confusing as Slack has it off by default, Google the other way around, and they use icons the opposite way.)

If a button can switch between two states, what should you display on the button: the actual state you’re in (Slack) or the action you can perform on the button (Google)? I’ve always found Slack the oddball, it never felt natural.

Zoom goes the Slack way, but at least they write labels underneath the buttons, it’s a mix of the two worlds:

Apple seems pretty consistent with this, here is FaceTime…

…and Apple Maps:

This latter is displayed on a 2D screen. Press “3D” if you want to switch to 3D map view. Seems logical, tell the user what will happen with pressing the button.

By this time I’ve learned to live with the logic of Slack, in practice I just know if it’s dark, it’s off, if light, it’s turned on. I never look at the icons.

Master Quest: DONE!

Whew! What a game!

My plan worked: finishing and maxing out Ocarina of Time 3DS, then the Master Quest right after, provided an amazing journey in video gaming. Took me around 2 months to do it and I was playing fairly actively. At times I was questioning my decision if I should really pursue this stupid goal, but in hindsight, it was worth it. I can now say that I completed one of the best video game ever, with the optional Master Quest game mode to the fullest.

Regarding Master Quest, I didn’t know what to expect. Maybe everything will be harder. Indeed, there are harder parts, but if you just have completed the normal game, it shouldn’t be difficult. Often times it’s even simpler than the normal game. The new dungeon arrangements are perfect for every Zelda fan: the geometry is the same, but the items and mobs are completely tweaked and it provides a different experience.

I even completed the Boss Gauntlet where you need to kill the 8 bosses back to back with just 3 hearts. First I thought, nah, I’m gonna skip this. But then I challenged it again and again, and eventually I got lucky.

All in all I’d put 140 hours into this project (3 full playthroughs, first in 2011, then now in 2018 the normal game and the master quest).

I’ll let this cool down a bit before committing to a new gaming project.

Ura Zelda

I think I finally lost my mind.

I mean I liked the Zelda games, started and played most of them, but as things are, I never truly finished them. There were a couple of exceptions though: I almost maxed out the Minish Cap (but didn’t have notes and a Kinstone fusion was missing), then truly maxed out Oracle of Seasons and Ages. It was a very definitive moment in my gaming life. Yet, when Majora’s Mask came in 2015, I stopped playing it at some point. I also stopped playing Wind Waker HD in 2013. This is the usual gamer, you start something, then you don’t finish it.

However.

However, however. When Twilight Princess HD came along in 2016, I completed it. Not only that, I maxed it out along with the new Cave of Shadows dungeon (which is just waves of different enemies, really). It was fun and a great experience. You know, the kind where it’s hard and you need to retry the part over and over and over and over again. But you finally succeed and it’s AMAZING!

Then it was time for me to revisit Wind Waker HD. I picked up my old savegame from three years back, and despite the fact that I’d forgotten everything, I got back into it and not only did I finish it, but I maxed it out. That meant completing the game once again, from beginning to end, with all minigames, figurines, and everything. To my standards it was a crazy ride, but a very satisfactory one.

After this I picked up Majora’s Mask 3DS and did the same feat: not only did I complete the game, but I once again maxed it out, all hearts, sidequests, fishing holes are now done. (Note: in the mean time Breath of the Wild came along and I started playing it on the Wii U and stopped.)

After Majora’s I had to decide where I wanted to go next.

The obvious choice was Breath of the Wild on the Switch. I even bought the game, but yet something was telling me my Zelda destiny is somewhere else. In 2011 I bought Ocarina of Time 3DS and completed it (and even maxed it out, but as I see now a final heart piece is missing). The game contains the Master Quest also which I’ve always wanted to play, but never did. So I thought maybe I should play that next. But if I did, I had to play Ocarina, in this new game mode, which is harder, from scratch. Something wasn’t right.

I then realized my destiny: I need to replay and max out a fresh copy of Ocarina of Time, so it all comes back to me, and when that is done, I need to do experience Master Quest. I mean, we’re talking about one of the best video game of all time, right?

So here I am, at 41 years of age, replaying a fucking game from 2011, which I have completed almost to the fullest, and when that’s done, I’ll replay it one more time where the whole gameworld is inverted and dungeons are even harder. And oh, yes, did I mention there is also a fishing minigame that needs to get completed? And a boss challenge mode and a boss gauntlet?

Notes on how to finish the fishing minigame in Majora’s Mask 3DS

After 90 hours of net gametime I can finally claim the 100% completion of the 3DS version of Majora’s Mask.

Bought this game back when it was released in 2015, put around 25-30 hours into it, then ended up not playing it any more. Things are changing and I’m back in business: this year I picked it up again, played and played until it was all smooth again for my fingers then completed it to the fullest.

This means fishing out the two fishing holes that are exclusive to the 3DS version. Here is my guide that I feel is worth sharing because the available guides don’t really mention these – or parts were news to me.

First, the guides from around the net!

Gamefaqs (mainly used this one)
IGN guide
– Zeldadungeons Swamp and Ocean holes with fish pictures (useful)
Tourian Tourist’s guide (scroll down to 2016)
– Videos: Swamp Fishing Hole Guide, Ocean Fishing Hole Guide

Here are my notes:

– First, I suggest doing the fishing holes last, when you have all the masks. It’s not compulsory, but since you’ll need to use various masks to catch the fish, it’s worth getting the masks, then do the holes in a focused effort.

– Start with the swamp hole which is the smaller of the two. When you enter, just explore the area first from underwater as a Zora, identify the parts and observe the fish in the water.

– The idea of this minigame is to cast your line in the direction of the fish. Let the bait sink or float, reel slowly until the fish notices it. When there is a bite, quickly press “A” and use the analog pad to drag towards you. It requires some effort to reel them in and usually some direction change opposite from where the fish is trying to swim. If you hear the reel clicking sound it means, it’s getting closer to you. Often times the fish jumps and gets further away. Patience.

– By the hole entrance there are 11 drawings of the fish with hints how to catch them. The drawings are not very good and pretty captain lorez, so I suggest using Zeldadungeons excellent PNG’s instead. I also suggest using a spreadsheet with the list of the fish to mark where to focus next.

– By the counter there is a board with all your catch. This is how you can tell what you’d achieved. (If only Nintendo would’ve put a completion marker on the savegame!)

– Catch the common fish first that don’t require a mask to catch. This is a good warm-up to understand the mechanism.

– Some of the fish require that you wear a certain mask. The idea is that you go relatively close to the fish you want to catch and put the mask on. Of course, the fish needs to have been spawned in the pool, so confirm that first, then wear the mask. You’ll hear a chime which means the fish is now “triggered”. When this occurs there is a splash in the surface vertical to where the fish swims. This way you can identify on the surface in which direction you need to cast your line. Note: some trigger is shorter, some longer. If trigger goes off, you need to take off your mask and put it back on again.

– Workflow is the following: select a fish from the list you want to catch. Enter the hole, switch to Zora Link and try to find the fish underwater. This might seem daunting at first, but after a while it’ll get easier. A new set of fish spawns when you enter the hole. If you can’t find the fish you’re looking for, exit the hole and re-enter. If you see your fish, go and buy the rod and go to a convenient place from where you can cast your line in the direction of the fish. Use the mask, observe the chime, then search for the splashes on the water surface. If you switch to camera mode you can fine tune the direction where you’ll cast your line. If you don’t have the trigger or run out of time, the fish won’t bite. Once you have a catch, exit the hole and save.

– This way each fish will cost 50 rupees. To make money, just collect it outside the hole while you’re working on getting the spawn. For instance, if you exit the Swamp Hole, go to the target shooting next door. Do not enter the room, instead, climb up to the higher ledge where there is two bush. They usually contain 3 x blue and 1 x red rupees. Every time you enter this area you can harvest the money. Very easy to get the 50 rupees for the fishing rod session. Same applies to the ocean, but you need to kill the Like Likes on the beach. Use night time to harvest more.

Tips for fish I found a little harder to catch:

Sweet Ranchfish – short trigger time and always spawns by the waterfall pond. Enter the hole go there, see if there is a fish, if not, repeat. Once you see it, buy the rod, walk there and play Epona’s song. You’ll hear the chime then you can cast the line. Be quick with the cast.

Fragrant Reekfish – wear the Mask of Scents and enter the hole. The purple fog above the surface of the water will tell you where the fish is.

Ferocious Pirarucu – swims around the pillar, easy to notice. Then just have a smaller fish bite your lure and this will trigger the Pirarucu. Similar strategy applies to the fish that bites on smaller fish.

Colossal Catfish – on the final day switch to Deku Link, hop to the pillar, switch to Goron Link and ground pound. If you hear the chime, locate the surface and cast the line. If you don’t, exit the hole and re-enter.

Ninja Flounder – go to one of the left pillars, wear the mask and listen to the chime. If you don’t get the chime, immediately exit, and re-enter the room. Once you get the chime, it will require some patience to locate from above (as it is unseen with the Zora mask).

Nuptuna – hard to spot because it looks like a common fish, wear the Couple’s Mask and listen to the chime.

Great Fairy Fish – this worked for me: have all 11 fish on your roster. Once you do, start a new cycle, slow the time, and catch fish for the first two days. It will be boring and long, but don’t get discouraged. When the third day starts, immediately go out and save. Come back to the hole with the Fairy’s Mask on your head and check if it shimmers when you enter the hole (this is to check if there is a Fairy Fish around). If there isn’t, re-enter. If there is, swim as a Zora to the crystal cave on the top right portion of the area. The Great Fairy Fish will be hard to spot, but from the right hand side there is a little way to look inside. Do this process until you spot the fish and it’s not later than 11:00 PM on the last day. If it is later, reload your savegame and repeat (you’ll need the time for this fish). Once you see the Great Fairy Fish, buy a pass, go to the closest pillar and wait until the Fairy Fish bait swims relatively close to the cave. Put on your Fairy’s Mask to get a fresh chime, cast your lure and try to get it to bite. When there is a bite, let it swim towards the cave. You need to let the reel go and direct the fish by pulling the rod. Eventually the Great Fairy Fish will come out of the lair and eventually it’s going to bite. Patience is needed for this, because it will be a long fight.

I don’t believe it either. Have fun! 🙂

How to play Commodore 64 games on your modern Mac

Bought a couple of games for the Commodore 64. Sam’s Journey seems a very nice Warioland/Mario based platformer with very interesting graphics. Here is how to play it on the Mac.

You need to download VICE for the Mac. The latest version is 3.1 and you want to grab the Cocoa version called vice-macosx-cocoa-x86_64-10.12-3.1.dmg. Create a folder in your /Applications and dump everything in there.

You can now start the emulator by clicking on x64.app. Here is what you need to set up in order to play from the keyboard. First, go to “Settings” and check “Save settings on exit”. Now set up the joystick emulation. Go to “Settings – Joystick” and then “Keyset” and select “Keyset B”. This is a very confusing UX, but what you need to do is press a button that you’d like to map the joystick to and then set it to a direction. Middle one is the fire button. I use the left Alt for fire and the cursor keys for directions. You don’t need to set the NE, NW, SE, SW directions. Here is what it looks like:

Games usually use the joystick port 2, so I set Joystick #2 to Keyset B. (Don’t use the default Keyset A because it maps to regular keyboard characters and you won’t be able to type. Just set it up like the screenshot above.) Quit VICE, restart it and make sure that your joystick emulation parameters are correctly set.

Now, it’s time to load a game. Go to “File – Attach Disk Image” and point to the disk image into disk unit 8. In the C64 screen type the famous LOAD"*",8,1 line, then when it loads, start by entering RUN. You can usually skip waiting screens by pressing space or pressing the fire button. There is nothing left but to enjoy some 8 bit retro game action!

Super Mario Odyssey moon count

How big is Super Mario Odyssey? How many moons are really there? Been wondering about this since got my copy back in October. Finally I have the answer! Took me around 20 hours to complete the game, and 65 more to true 100% it. There were a lot of nasty moons in there, played several weekends to complete the last 10 moons including the usual stupid adorable minigames. Everything is doable, it just requires practice and after a while you’ll figure out a good strategy.

There are 14 different kingdoms in the game, some small, some big. Three more kingdoms are to be discovered on top of that. You can collect 581 (75,0%) moons in the game and 194 (25,0%) post game. These add up to 775.

Out of the 775 moons 22 count as 3 (multi-moon), therefore the total number on the Odyssey’s sail adds up to 819. On top of that there are 61 moons which you get by completing certain achievements, which brings the counter to 880. If you reach this, the sail will turn to gold. You even get to replay the final Bowser fight with slightly tweaked settings.

To max out the counter on the sail, you need to purchase additional 119 moons which will bring the counter to 999 and the sail will reach its final size. At this point a giant cap on top of Peach’s castle will appear with some animation playing should you climb it. (Note that in each kingdom with a shop, the first moon purchased will be listed as “Shopping in [kingdom name]” individual moon.)

To sum it up:

1. 775 moons
2. 61 achievement moons

Interested in the complete moon list? Here is my sheet.

Exceptional platformer game, lots of great moments, detail and care – I just recommend it for everyone. I might even replay it at some point, but for now I’m looking into other gaming projects. (I have to pick up again Majoras 3DS, Metroid 3DS, Zelda Breath just to name three that I want to finish really bad before moving on to Skyrim on the Switch.)

What can I tell you guys about the HomePod?

A guy from Reddit Audophile tested the HomePod:

When the song calls for it, there is bass. When the song turns to crystal clear highs, they are reproduced faithfully. What really was interesting is the instrument separation in the room. At about 45% volume, the HomePod FILLED the room I was in with some great sound. When you walked away from it, the sound gets quieter, but not as quickly as you’d expect. All the details were still there, just softer. there was no feeling of walking out of the sweet spot that you get with a normal speaker. And that’s when it hit me… Apple really has done it.

The whole review is music to my ears.

Re: How one employee ‘pushed the wrong button’ and caused a wave of panic

Washington Post:

Around 8:05 a.m., the Hawaii emergency employee initiated the internal test, according to a timeline released by the state. From a drop-down menu on a computer program, he saw two options: “Test missile alert” and “Missile alert.” He was supposed to choose the former; as much of the world now knows, he chose the latter, an initiation of a real-life missile alert.

Yes, it was a huge design fail closing these buttons in the vicinity of each other, blah blah. I’m still curious about this, though. Isn’t there a second confirmation dialog in place for sending out the real alert? (I mean, come on.) How can you change the text for the alert? It’s set and you press a button, whole thing goes off? If this is a standard drill that is supposed to be botched just by pressing the wrong button, how come this hasn’t surfaced earlier? The report doesn’t go into details.

But I’m asking this: wouldn’t you have come up with a similar story if Kim Jong-un have indeed fired a missile that you could successfully shot down mid air? Always blame it on design and the operator?

Oracle Java spinner, October 2017

If you update Java on your Mac there is an experience during the install process where you end up on their website. There is a large red button that checks if you have latest Java installed. It’s a nice way to test if the install process went fine. Here is what it looks like:

Did you see it?

There is a thing of spinner beauty when the Java applet runs. Gradient BLOBS that rotate by 30 degrees in a slow fashion that exemplifies the very nature of Java itself. Here, I recreated it in Photoshop, so we all can look at it until there is a new post on this website. YAY!!