10 Jan 2017
Scenario: you’ve got a snazzy Sinatra server running on Heroku. You just got a fancy custom domain and you now want to get an SSL certificate for it.
Solution: Damien Mathieu from the Heroku team built a cool utility to automate SSL certificate generation and renewal: sabanyon. Bonus points for naming it after a delicious Italian dessert! The instructions exist (never a given), are easy to follow (happens sometimes), and work as expected (frequently rare). Thanks, Damien!
Damien includes challenge responder code for a bunch of different apps, but not Sinatra. Fortunately, the Ruby example provided only needs a few tweaks to get everything working:
Now your domain will have an SSL certificate forever!
06 Jan 2017
I’ve never seen my grandma use a recipe. I’ve never seen her use a timer. I’ve never seen her ask for advice on how to improve a dish. And most importantly — given all this — I’ve never tasted one of her creations that was off.
Cooking some rebanadas!
But we all can’t be my grandma. Whereas my grandma makes cooking look like an art, conjuring divine inspiration and direction from thin air, I take a more scientific approach to cooking. Things are measured carefully and precisely, timers are used all the time, and recipes are annotated to remove any and all ambiguity.
So that’s why I don’t print out recipes or keep a list of bookmarked recipes; I use the Evernote Web Clipper to clip recipes directly into Evernote. Then when I use those recipes, I add observations (e.g. different flour brands affect the density of bread), critical reminders (e.g. don’t forget to set the oven temperature down), tweaks (e.g. add a little more flour to get less sticky dough), and fun facts (e.g. which maple syrup Canadians prefer). Here are some examples:
This method lets each recipe evolve every time I use it. I can also easily share them with others as seen above. Ultimately, I aim to be about 10% as good as my grandma which is a stretch goal to be honest.
02 Jan 2017
It’s been a few weeks since I completed Final Fantasy XV; I’ve had some time to digest the experience, get all the trophies, and read plenty of other people’s take on the game. The short of it: in spite of the story being very rushed starting at Altissia, FFXV is a critical hit: a fantastic entry released when the series appeared to be flailing.
It has its flaws, but FFXV is a game that rejuvenated my faith in the Final Fantasy series. The fundamentals of the story are there: characters I care about, a truly menacing villain, and a plot that is compelling and makes sense.
Xenoblade Chronicles (XC) for the Wii still stands as my favorite modern JRPG and is my go-to game when people complain that the golden era of JRPGs has come and gone; it’s my gold standard for JRPGs. Xenoblade Chronicles X (XCX) for the Wii U expanded on the open-world amazingness of XC but unfortunately had a story that felt very unfinished. FFXV sits right there alongside XCX: the open world was good (not as open and big as XCX) and a decent story (not as complete as XC) that could have benefited from more fleshing out.
There is a bunch of DLC planned for FFXV and I’m excited to dive into it, especially if it fills in some of the holes in the story. But even more so, I am pumped for the FFXV development team to have a productive post-mortem, take the best of what they did, and improve on the mistakes to ultimately deliver an amazing next entry in the series… Hopefully before 2026!
14 Dec 2016
After ten long years, Final Fantasy XV has been released! Two weeks after the release, I’ve plowed through most of the side-quests and completed the main storyline. And I enjoyed it! The game does a lot of things right: the battle system is fun and fast-paced, the story pulls you along without being overly complicated, the music is excellent, and the main cast of characters are personable and make the entire trip funny and interesting. The photographs Prompto, one of your team members, takes throughout the journey was unexpectedly awesome too!
But the game certainly has some flaws.
The latter half of the game is completely rushed. This game took forever to make so that leaves me confuddled. It’s not Xenogears Disc 2 rushed, where the protagonist sits on a chair and tells you what’s happening, but it’s still pretty bad. The game could’ve maybe done a little of the Xenogears Disc 2 style to help fill in the obvious blanks to make the story flow a bit better at the end. The story is good and main villain in this entry is exceptional. It’s sad to see that all get squandered by resource and time constraints.
The sidequests also left a lot to be desired. Some of them are fun and challenging (e.g. trailing and slaying the Behemoth to get access to Chocobos), but a lot of them are simple fetch or kill quests that don’t relate at all to the main story. The game also has a bounty hunt system where you can go out and hunt powerful enemies. But you can only accept one of these quests at a time and you must report one quest before taking on another. Limitations like these seem to be put in place purely to extend the longevity of the game in non-productive ways.
The first open-world Final Fantasy game also has far too many frustrating invisible walls. There are many roads that cut across the open world (great for driving on with your car) with grassy lands straddling both sides; not being able to jump over the edge of road with my Chocobo and having to find the stairs was extremely frustrating. Many trees are also walls so I quickly learned to steer very clear of them. For a point of comparison, in Xenoblade Chronicles (Wii), you could actually jump off the edge of the world and in Xenoblade Chronicles X (Wii U), you could swim from one continent to another!
By the end of the game, I was super invested in the four main characters, but the game does a poor job of fleshing out the secondary characters and making the player care about them. There are way too many characters that just don’t get enough screen time. Obviously fixing the rushed latter half of the game could address this. And perhaps incorporating these characters or their stories into sidequests would also address how unimportant sidequests felt. I really feel like the universe in this game has a lot of interesting characters; it’d be great to see them developed some more.
A very quaint certificate of completion!
That said Final Fantasy XV is a great entry in the series and I think it’s exactly what the breath of life the series - that many say has been languishing - needed. Developers have already said they are tweaking the latter chapters in the game and have lots of downloadable content planned. I hope the Final Fantasy team can take the learnings from this entry and improve on it in a shorter amount of time in the future!
04 Dec 2016
When someone asks me how to I learned about computers I tell them “just Google it” and you’ll learn too. But I need to add a caveat to that.
A friend contacted me the other day saying he was trying to set up a Canon printer so he Googled “cannon printer setup,” clicked on the first link, and called the support number. The support technician had him scan his computer (by executing some remote scripts from the command-line), and told him he had no firewall, his computer was 60% infected with malware, and once it hit 90% malware mark the entire computer would crash. To solve this malware problem the technician asked him to purchase a firewall from Canon.
How was a number to an obvious scam the one link he clicked on when he did a Google search? I never saw this type of thing, but I also have an ad-blocker installed. Without it, my typical mantra of “just Google it” becomes a lot more dangerous because the top links on the Google search results are links to telephone these “support” centers.
These are not the sites you are looking for...
So… don’t just Google it. Install an ad-blocker (uBlock Origin is a great one) and then you can – safely – just Google it!