mark cerqueira well-rounded nerd

Answer Secret Questions with Gibberish

This week renowned security guru Brian Krebs posted (yet another) great article on how people knowingly give away historical information on social media that can sometimes reveal answers to that person’s security questions. Krebs is not a fan of security questions at all and advises people to lie when answering them.

This strategy stymies attackers potentially discovering this information and using it to penetrate you, but it adds some cognitive overload as you’ll have to remember the lies you tell across multiple security questions. My recommendation: answer secret questions with gibberish. Here’s an example of what this looks like:

  • Username: CarriersHaveArrived
  • Password: bpJZAQdt7XnbNjFBh8DsiU2Tf
  • First pet: beuaw8gb2rGG
  • Favorite teacher: d4Uu8sx3hyxw3PJ
  • City you met your spouse: 2enMrpWTFXsoEW

If you’re already using a password manager you can generate additional random strings and keep the answers to your security questions alongside the other credentials. If you’re not using a password manager you really should.

Worth noting:

  • This model doesn’t work for multiple-choice security questions. And yes… a major US airline uses those. 🤦‍♂️
  • I once called a bank and as part of authenticating me I had to answer one of my security questions. I recommend sticking to characters and numbers and keeping the length of your security question answers to something reasonable for cases like these. 🙃
  • My password manager of choice, 1Password, does not support auto-filling answers to security questions. I can imagine this workflow is an edge-case but it’d be cool for them to detect the security question, find the answer, and auto-fill it. 🤞

Happy – and safe – computing!

Thoughts on Ni no Kuni 2

Ni no Kuni 2 (NNK2) has had me glued to my PS4 every waking moment I have at home. Having blown through most of the game by now, here are a collection of some of my thoughts on the game:

  • Story is okay, but passes on some great potential. The story in the game is simple and keeps things moving at a nice pace. I’m nearing the end of the game and am a bit disappointed that the world Roland came from does not play a more significant role in this game. The original Ni no Kuni had players moving between two different worlds. I was hoping this game would do something similar and allow us to uncover how what’s going on in Evan’s world influenced the missle attack in Roland’s world.

  • Voice acting is lacking in quantity, not quality. Disclaimer: I’m not a voice acting snob. With that said, the voice acting in this game (sans Lofty most of the time) is pretty good. What’s disappointing is the amount of lines in this game that isn’t voiced. I’d estimate less than 10% of the dialog in this game is voiced which for a AAA JRPG game is really, really low.

  • Skirmish mode is fun but it just scratches the surface. The rock-paper-scissors skirmish mode in this game is a nice touch to prevent the monotony that can result in a single battle system. But the system is not very nuanced as eventually every battle just becomes you running through areas and easily smothering your opponents. It’d be cool to see more added to this mode in the future.

  • Kingdom Builder is awesome! Level 5 might never grace us with a Dark Cloud 3 but the Kingdom Builder satisfies the Dark Cloud world-building itch nicely. Gathering citizens, building facilities, researching upgrades sounds boring but it’s really addicting. The benefits of building up your kingdom (e.g. crafting and upgrading weapons and armors, upgrading spells, automatic gathering of materials, access to better items, upgrades related to battles and skirmishes) are absolutely worthwhile so it makes investments in this feature not seem at all like a chore.

  • The soundtrack is amazing! Joe Hisaishi does it again with a superb soundtrack. They kept the original, iconic main theme and sprinkled the OST with several variations on this epic song.

All in all, I’m really impressed and happy with Ni no Kuni 2. It’s got me hooked and has been an all-around fun game to play. I highly recommend it if you’re looking for a solid, classical JRPG.

JRPG Hurdles

Earlier I wrote about my love for and getting stuck in Super Mario RPG, my first JRPG. I loved the game but even after beating it I was unaware of the JRPG genre. Taking another walk down memory lane, the next two JRPGs I’d encounter (still unaware of the concept of the genre) would present memorable hurdles.

Pokémon Red - A few times a year my family would go to fund-raising parties at restaurants. My parents immigrated from Portugal and every so often a Portuguese-American organization would raise funds for this or that by throwing a little party at a restaurant. At one particular party another kid had a Gameboy and Pokémon Blue. He let me play it but the batteries in his Gameboy were on their last leg so I played Pokémon for 10 minutes at a time before the Gameboy kicked the bucket. The batteries would somehow gain enough juice over the next hour to give me another 10 minutes before once again dying. It was frustrating to say the least, but I played enough to fall in love with the game. Enough begging later I convinced my parents to get me a Gameboy Color and Pokémon Red. Why Red, not Blue? Benfica baby!

Final Fantasy VIII - A childhood friend got a PlayStation, Final Fantasy VIII (FF8), and a controller… and that’s all. No memory card. I’d hang out at her place and we’d play FF8 but without a memory card we were forced to start our journey over every time. The number of times I completed the SeeD mission in Dollet is facepalm-worthy. The farthest we ever made it in a session was the train mission in Timber. When my cousin Joe later asked me what I’d like for my birthday that year I knew exactly what I wanted: a PlayStation, a controller, Final Fantasy VIII… AND a memory card!

Later on I’d tell a friend about how much I love FF8 and he would go on to open my eyes to the JRPG genre! With that knowledge, fresh batteries, and a memory card always in hand I would begin my journey down the JRPG road.

Excellent Tooling is a Great Teacher

I’m a big believer in programming languages living in an ecosystem and not in a vaccuum chamber.

Today’s thought takes me back to my on-site interview at Evernote. Given I had both iOS and Android experience (but had done Android more recently) I interviewed with some Android engineers and one iOS engineer. During the interview I was asked if my Objective-C code would look Java-esque; in short, was I still capable of writing idiomatic Objective-C code.

Writing Kotlin today that interview question comes up again and again in my mind. I still feel like I’m writing Java but in Kotlin and learning how to make it more idiomatic as I go along. Learning comes from a bunch of places like coworkers, Kotlin documentation, and example code but another great teacher has been Android Studio.

Here’s some Kotlin code I wrote recently. It’s not the best way to accomplish what I’m doing in Kotlin. Android Studio inspections to the rescue! Within a second of writing this code I got some green squiggle marks under the for. Command-enter and then selecting Replace with count{} gave me this:

Yes I could pore through documentation and blog posts about writing idiomatic Kotlin but there’s nothing more frictionless than having your development tool give you a hand when it sees you’re writing Kotlin in a Java-esque way. Thanks Android Studio for teaching me about count!

Hotel Complaning in 中文

This week’s Chinese unit has us covering everything about hotels (酒店, jiǔdiàn). The writing assignment involved writing a script between an angry customer (顧客, gùkè) and a hotel receptionist (服務員, fúwùyuán).

As always, I strove to make an entertaining and humurous story. This tale has an angry American who feels like he’s getting nickel and dimed but ultimately cannot wait to relieve himself especially when presented with an amazing Japanese toilet!

顧客: 你好!我不高興!
服務員: 對不起。在我的酒店,我要我的顧客都很高興。你跟我說有什麼問題。
顧客: 單人間太小了!我是美國人,我很胖!我需要一個大房間。
服務員: 其實我有一間套房,但是你說太貴了!
顧客: 那麼,你可不可以給我一個比較大的房間?
服務員: 對不起,我不可以。如果你要一個比較大的房間,你需要給我三百九十九元一晚。
顧客: 什麼?!太貴了!那個房間裡可不可以上網?
服務員: 可以,可是上網要給錢:一百九十九元。。。一晚!
顧客: 什麼?!這個酒店只要顧客的錢!
服務員: 不是。我也想要我的顧客很高興!
顧客: 那個房間裡有沒有廁所?
服務員: 那個房間裡有一個日本廁所。可以用來洗你的屁股。
顧客: 哇,太好了!我需要給你多一點錢嗎?
服務員: 不需要。可是如果你要熱水你要給多九十九元一晚!
顧客: 好。我需要大便。我很需要日本廁所和熱水。再見!
服務員: 再見!
顧客: 我沒錢了。。。

Key part of the story: 可以用來洗你的屁股 = kěyǐ yòng lái xǐ nǐ de pìgu = can be used to wash your butt.