Wednesday, July 31, 2019

Heavy Metal Chanty – my 4th Mario Maker level – is live! This one's a music level, so I had extra fun scoring it and getting it to work.
8MT-53S-FPG

Thursday, July 25, 2019

Made another Mario Maker 2 course in the 3D World style! This one is themed after Half-Life, and aptly titled "Half-Up".
DM2-DS4-JRF

Tuesday, July 09, 2019

Made another Mario Maker 2 level! This one is called "Recirculating Bob-omb Machine", and it's a short puzzle in the 3D World style.
0D1-BP0-DKG

Wednesday, July 03, 2019

I made my first Mario Maker 2 course! This is my first stab at Mario Maker creations ever, and I specifically decided to jump straight into it, without playing any of the Course World or Story Mode  levels, just to see where my own ideas could take me. I'm pretty happy with the result!

The level is called "Bowser's Judgment Day", and here's the code:  2RS-9DW-KKG

Thursday, June 27, 2019

10 Reasons Why Cadence Of Hyrule is a better game than Crypt Of The Necrodancer


If you haven't heard of Cadence Of Hyrule yet, it's a wonderful rhythm game for the Nintendo Switch, developed by Brace Yourself Games, as a spiritual successor to their first game – Crypt Of The Necrodancer. The new game is based on the same mechanics and similar gameplay, but it is set in Hyrule, the definitive setting of the Zelda series.

Cadence Of Hyrule is a very important milestone for indie games in general, because it marks the first time that Nintendo licensed the Zelda intellectual property to an independent game developer. Unlike the original game, however, which was recently on sale for $5 on the Nintendo Switch, and $3 on Steam, Cadence of Hyrule is only available for the Nintendo Switch, and will set you back a hefty $25. So why should you spend all the extra moola for this one?

#10: It’s a Zelda game.

Let's be honest. If they just re-skinned Crypt Of The Necrodancer and slapped a Zelda title on it, I'd probably still buy it, out of curiosity. Luckily, that isn't what they did at all. In fact, it is an entirely different game.

#9: Better plot.

The plot of Cadence Of Hyrule isn't very deep or meaningful, but comparatively, Crypt Of The Necrodancer pretty much didn't have a plot. The new game is definitely an improvement, and introduces a well-familiar story about – spoilers – using the Triforce to defeat Ganon and save Hyrule, albeit with a few unique twists, that – spoilers – have to do with music.

#8: Puzzles.

It wouldn't be a Zelda game without puzzles, would it? The puzzles aren't very challenging, and there aren't a ton of them, but they greatly improve the variety of gameplay, since you're not just hacking away at enemies all the time. Most of the puzzles are based on either Simon Says, finding a secret entrance, or figuring out how use your items and surroundings to get to a seemingly unreachable place that contains a treasure chest.

#7: Enemy mechanics and boss battles.

Many familiar antagonists of the Zelda series can be found in Cadence Of Hyrule. Zols, Bokoblins, Octorocs, Lizalfoses, Moblins, Lynels, and even the rock giant from Breath Of The Wild – Talus.  They aren't just re-skins of Necrodancer enemies, though. Well... Zols and Bokoblins are. But the rest of the enemies introduce unique mechanics that will really make you think and strategize, before rushing head-first into battle. Lizalfosesses will run at you with a dagger or a spear, Moblins will throw spears at you from a distance, and Lynels will induce deep, existential dread, completely validating "run away" as a battle strategy.

All of the enemy battles scale with your progress, keeping the game challenging all the way till the end credits. There are six boss battles, which are as intense as they are imaginative. Four of these bosses are classic Zelda characters, who had their names converted into cheesy puns involving musical instruments. Zelda fans will surely get a laugh out of this one!

#6: Zelda music.

This is one of my favorite aspects of the game, and it just shows how much there's left to talk about, because it's not anywhere close to #1. The music consists of masterful interpretations of many classic Zelda tunes – a few hours worth – in different genres, including rock, funk, techno, folk, heavy metal, and jazz.

There are almost always two versions of each tune: an upbeat and energetic version for battle, and a more mellow and relaxed version that kicks in when all enemies on the screen are defeated. Hearing a really intense heavy metal track at Death Mountain change to a tinny robot voice carrying on with the tune makes me laugh every time. Even the title screen music, with its percussive piano chords, harp arpeggios, and steady, splashy drums, makes me want to just sit there and listen to it for hours!

#5: Much improved graphics.

The new game's overworld looks like a modern version of A Link To The Past. No longer the flat checkerboard world of its predecessor, Cadence Of Hyrule is positively three-dimensional, with its exaggerated tilt perspective, multi-tiered buildings and landscapes, tunnels, and stairs. The checkerboard, which is there to help you accurately judge distances, is much subtler this time around, and is only visible around the player's character, making it far less distracting than the neon disco tile in Crypt Of The Necrodancer.

Every character model looks great, and is instantly recognizable as a character from the Zelda series. Weapon animations for each individual weapon and item have been added in Cadence Of Hyrule, replacing Crypt Of The Necrodancer's generic "swipe" animation when attacking and a static shovel icon when digging.

#4 Storing weapons and items.

Crypt Of The Necrodancer had a very rudimentary and limited inventory. You could, for example, have up to two weapons in your inventory, but not until you've obtained a special storage pouch item. This made testing and comparing different weapons excessively difficult.

Cadence Of Hyrule does away with this entirely, and provides you with an unlimited inventory. All the weapons, charms, and abilities that you've unlocked are always available in the inventory. The weapons can have a higher damage, an area of effect, or a greater range. You can also upgrade certain weapons with different effects, such as life drain, poison, or extra damage. This can totally change how you approach enemies, and encourages switching weapons to optimize battle strategies. I wound up switching between five different weapons throughout the game: a normal spear at first, then Poison and Titanium spears, and Link's and Zelda's special weapons later in the game.

#3: Permanent weapons, charms, and items.

One of my biggest frustrations with Crypt Of The Necrodancer was losing my favorite weapon after being defeated. In Crypt, weapons and items disappeared after each inevitable "game over". New weapons and items were randomly dispersed in treasure chests, so the chances that you would get your beloved spear back during the next dungeon run were extremely low. All the items were also one-time-use, which pretty much meant that other than health refills, I would never use items.

In Cadence Of Hyrule, inventory is permanent. Weapons, items, and charms carry over even after you die. The only things you lose are rupees and keys. Similar to Breath Of The Wild, some items are "breakable", which means that they will run out as you use them. Others, like the hook shot and the boomerang, can be used without any limitations – not only during combat, but in solving puzzles as well.


#2: The level doesn’t end with the song.

Perhaps the most punishing aspect of Crypt Of The Necrodancer, you could only explore each dungeon while its soundtrack was playing. Once this relatively short song ended, the level would end as well. A trap door would suddenly appear, and drop you into the next level. Any part of the dungeon left unexplored would be gone forever, along with its treasure chests, item shops, and much needed health upgrades.

In Cadence Of Hyrule, you can take as much time as you want while exploring dungeons and the overworld. If you take your sweet time, you might hear the song end and restart from the beginning. However, given that the songs are fairly long, this is unlikely to happen unless you specifically want to hear the song in its entirety.

#1: Fixed-screen battles.

In Crypt Of The Necrodancer, every map was a fairly large, randomly generated dungeon. Similar to a side-scrolling platformer, your character would always remain in the center of the screen, and the dungeon would scroll around this pivot point. This worked perfectly well for combat, but it meant that you would only pay attention to the area immediately surrounding your character.

By contrast, most of the battles in the overworld of Cadence Of Hyrule take place on a single, fixed screen, much like the original Zelda game, or the original Megaman games. The movement of the player's character doesn't cause the screen to move at all, making it much easier to concentrate on parts of the screen that aren't in the middle, since every part of the landscape always stays in the same place.

Once you've defeated all the enemies on the screen, you no longer have to keep up with the beat, and the enemies won't respawn, leaving you free admire the landscapes and the music, chat with non-playable characters, and explore all the puzzles, hidden pathways, and secrets on that screen. And that is what Zelda games were always about: exploration.

So is Crypt Of The Necrodancer completely irrelevant now? Not quite. Being a true rogue-like, where every map is randomly generated, and none of your items carry over after you die, Crypt Of The Necrodancer will still be a hit with those who want the intense experience of unrelenting dungeon runs, to speedrunners, and to hardcore fans of the rogue-like genre. Cadence Of Hyrule, on the other hand, will be more suited for those who want a well-paced experience, where you can take a break from the intensity of rhythmic battles, without having to take a break from the game.

There's a term that is often used to describe games like Cadence Of Hyrule: a love letter. The music, the landscapes, the puzzles, and the humorous character dialogue – all these were lovingly made by people who are clearly fans of the Zelda series. Cadence Of Hyrule is truly a delight to play, and I would readily include it among the best Zelda games ever made, which says a lot about a Zelda game that wasn't made by Nintendo.

Monday, May 27, 2019

My Top 3 Video Games of All Time


#3: Super Mario Bros. 3

Super Mario Bros. 3 holds a special place in my heart, because it was the game that I wound up playing the most in my youth. Released in North America in 1990, it was the video game that solidified the platforming genre, and it still holds up very well to this day.

A spiritual successor to the original Super Mario Bros., this game was expanded with the ability to run backwards within a level, various power-ups that enabled Mario to fly and swim, and the addition of a branching overworld, all of which made the game feel far less linear than it used to.

Super Mario Bros. 3 was no longer just a great platformer, but also a great puzzle game, full of secrets and exploration. I enjoyed the heck out of this game growing up, and I have replayed it many times since.



Why not the original Super Mario Bros.?


The original Super Mario Bros. was the game that revolutionized side scrolling platformers, so why is this one not in my top three?

I feel that Super Mario Bros. 3 is a better game in practically every way. It's certainly a better looking game, and there's a lot more to explore. However, I think that the biggest credit to Super Mario Bros. 3 goes towards how well Mario himself controlled. In the original Super Mario Bros., Mario felt a little too heavy and slow for the amount of platforming precision that the game required. By contrast, in Super Mario Bros. 3, controlling Mario felt like he was the agile ninja that he deserved to be.



Why not Super Mario World?


Super Mario World for the SNES was a fantastic game, and a great showcase of the SNES's power. It was graphically far superior to Super Mario Bros. 3. It was a much larger game, and introduced tons of new elements that made the game even more exploratory. Best of all, it introduced Yoshi! How could this not be my favorite Mario game?

I admit, this one was a close call. Mostly it comes down to the fact that I didn't grow up with an SNES, but there are few other things that I still prefer in SMB3. The Cape Mario power-up in Super Mario World seems a bit lackluster, compared to SMB3's Raccoon, Frog, Hammer Bros., and Tanooki power-ups.  Most interesting, however, is the music. While I love the variations of the Super Mario World theme in different levels, there's only one theme in the entire game. Super Mario Bros. 3, on the other hand, has a much greater variety of music.

Another reason SMB3 stood out is because it was the best game on the NES. Super Mario World felt like a great iteration on SMB3, but it didn't feel revolutionary, and there were certainly more impressive games that later came to the SNES.



#2: Limbo

This one came at a time when I lost most of my interest towards playing video games. The year was 2010. The mobile games market was exploding. Games were churned out by the hundreds for mobile devices, and they were all equally unimpressive. The people who ran Nintendo thought that randomly wiggling a remote control in a sports game qualifies as fun.


Though I barely played any video games during this time, I was introduced to Let's Plays – YouTube videos of other people playing video games, while creating a (usually humorous) commentary. That is how I discovered Limbo, through Josh Jepson's channel. I was so immediately impressed with the game, that I had to stop watching the Let's Play and actually play the game.

The artistic design of Limbo is unlike anything that existed at the time. It was still a 2-D side scroller, but entirely black-and-white, with dramatic lighting effects, a projector vignette, and a little bit of film grain. Sound was used sparingly and effectively. The beginning of the game was almost silent, aside from a soft, scratchy noise, reminiscent of an old record, and the footsteps of the game's nameless protagonist. Environmental sounds were used specifically to alert the player of an important event, which often happened off-screen, and prompted the player to react or investigate. Musical cues, in the form of single-tone ambient harmonies, were used to indicate a change of pace or a grim revelation in the unspoken story. Oh yes, nearly all of the revelations were grim. This was a dark game. But it was also, very definitively, art.

Honestly, if Limbo had no gameplay whatsoever, I would still enjoy playing... err... watching it. Just seeing and hearing it will make you feel like you're in a tree house during a thunderstorm. Luckily though, it was also paired with some great light platforming, and clever and challenging environmental puzzles. And it did a remarkable job of keeping the puzzles fresh. As soon as you learned to solve one kind of puzzle, it was never repeated again.

I have replayed this game a ton, and I like to show it off to my friends who haven't heard of it, because it is such a beautiful masterpiece.



Why not Inside?


Inside was the spiritual sequel, and likely the story prequel, to Limbo. It was still pretty grim, but visually very different from Limbo – rendered in a 3-D engine and in color, though still using mostly off-shades of gray. Nevertheless, it was certainly original and beautiful in its own way.

It also had a deeper story than Limbo. An unspoken story still, there were just enough visuals to tie it to Limbo and generate a great number of theories about what it all means. So why do I still prefer Limbo?

Inside was a longer game than Limbo, but it felt much shorter, because a lot of time was spent simply moving from point A to point B. I completed Inside in its entirety (aside from the secret ending) in one sitting, while Limbo occasionally fried my brain and prompted me to put the game down and call it a night.



#1: Portal

Portal's origins are as fascinating as the game itself. Created by a team of college students from DigiPen Institute of Technology as a reinvention of their own game prototype, Narbacular Drop, it was published by Valve in 2007 as part of a multi-game package called The Orange Box. Portal wasn't a selling point of The Orange Box, by any means. It was virtually unknown at the time, and the main draw of The Orange Box was Half-Life 2 – a very highly regarded game and a technological marvel of that time, and its highly anticipated sequel, Half-Life 2: Episode One. Nevertheless, the quality of games that Valve was releasing at the time was very good, and gamers were hot on Valve's heels to try out every game they churned out.

The premise of the game is pretty simple. You play as female protagonist named Chell, in a first-person 3-D world. You control two ends of a portal, which can be placed on any white surface. The portal is only active if both ends are placed. Any physical object entering one end of the portal will immediately exit out the other end, preserving its momentum. That's really it. Why does this make for a good game?

It turns out that the amount of puzzles that can be created with this fairly simple mechanic are staggering! What's even more interesting is that while this is a perfectly logical physical mechanism, it's not one that exists in our actual, real world, making all the puzzles in the game inherently challenging. So, while the rest of the game's mechanics are pretty simple – find an object, place it somewhere, activate a switch – the way those simple tasks are accomplished can be quite tricky. "Now you're thinking with portals" was the game's very apt tagline.

Portal's puzzles are tons of fun, but what really drives the game forward is the dialogue between Chell and the disembodied voice of the game's lovable antagonist, GLaDOS. Just kidding, Chell doesn't actually speak, so we'll call it commentary, rather than dialogue. As Chell, you are placed in a series of test chambers and tasked with finding the exit to the next chamber, all while GLaDOS hilariously discourages you from playing the game, gives you bad advice, and often shows signs of complete indifference towards Chell's well-being.

Unfortunately for Chell, it eventually turns out that her time at Aperture Science was meant to come to an abrupt and gruesome end in the last test chamber. It is at this moment that you stop receiving any kind of instructions whatsoever, and have to figure out how to escape your doom. Succeeding in this task will catch GLaDOS off-guard, and more hilarity will ensue throughout the rest of the game, as GLaDOS grows increasingly worried that you are now trying to find and kill her.

On your way to victory, you won't encounter a single human, but you will encounter some chatty turrets, seemingly insentient objects that may or may not feel excruciating pain, notes from previous test subjects who weren't quite so lucky, and GLaDOS's many conflicting personalities – all while solving more of those delicious, momentum-based puzzles. And then GLaDOS will sing you a song. And you will probably cry and laugh at the same time, for reasons you don't entirely understand.



Why not Portal 2?


Portal 2 was a fantastic game. The visuals were sharper, the gameplay was greatly expanded and the puzzles more complex. The game was much longer, great new characters were introduced, and old characters were developed even further. Plus, we got to see the heydays of Aperture Science and learn about Cave Johnson, its questionably motivated creator.

The story was great, plot twists were numerous, and the ending was great – they even threw in a whole extra song at the end! However, nothing will ever beat the first time you hear GLaDOS's maniacal, yet somewhat endearing commentary. Nothing will ever beat the first time you hear sentry turrets talk about their feelings. Nothing will ever beat falling in love with the Companion Cube. And nothing will ever beat the first time GLaDOS sings you a song about how you didn't really win the game. Portal 2 turned out to be a great sequel to Portal, but it was simply impossible to match the pure joy created by the original game's element of surprise. Portal still takes the cake... and eats it, too.

Tuesday, March 07, 2017

npm3 Shenanigans

I'm beginning to see why people hate npm. Both npm-shrinkwrap and npm3's dependency deduping are terrible ideas. npm-shrinkwrap is meant to solve a problem that has to do with programmers incorrectly using semver to specify dependency versions, thereby encouraging programmers to keep incorrectly using semver and putting an ever-expanding bandaid on it, rather than fixing the actual problem. npm3's dependency resolution fixes a problem that npm never had, with a poorly designed feature that is way outside of npm's scope. Instead of including all sub-dependencies with the package that requires them, like npm2 did, npm3 will attempt to merge the dependency trees. This means that the resulting dependency tree will differ depending on install order. "Does this matter? No!" says the documentation; except it totally does: 1) Some problematic package installs become intermittent, 2) The size of the install is sort of arbitrary, and 3) Don't tell me you've never edited a source in node_modules for debugging purposes; now these will (maybe/sometimes) affect all the subdependencies that also use the same module, making it that much harder to debug. Luckily, npm3 still allows you to specify --legacy-bundling to avoid automatic deduping entirely. Keeping my fingers crossed that they will keep this option indefinitely. As for npm-shrinkwrap, just don't use it! If a dependency doesn't use semver correctly, either don't use that dependency, file a critical bug, or fork it and fix it yourself.

Friday, December 23, 2016

Inside: Game Review, Theories, Major Spoilers

Limbo's distinctly noire style,
film grain and all.
Limbo has been my favorite game for a number of years now. I've been following its maker, Playdead Studios, anticipating the release of its new game, Inside, ever since it's been announced. That is, up until last summer, when I got sidetracked by other things, and apparently missed the fact that the game was released on June 29th of this year. Not only am I several months late to the release party, but I only found out about it at all after listening to Polygon's "Besties" podcast. Needless to say, I purchased the game for my PS4 immediately.

Inside continues to explore the all familiar world of environmental puzzles, suspense, and horror, that Limbo established so well. Inside has a very similar feel of a bleak, hopeless world, where science seems to exist solely for the purpose of conducting experiments on human (and sometimes pig) bodies. However, unlike Limbo, where the general feel was eerie emptiness and abandoned machines, the world of Inside is very much populated with humans, and things that seem to have been human in the past, which makes the game feel even more suspenseful and frightening.


The art style of Inside is a stark contrast with Limbo. Even though it's still a 2D puzzle platformer, it's rendered in a 3D engine, which makes the world more immersive, and gives the player much more depth perception, especially when things happen in the background. This mostly does not seem to impact the puzzles themselves, but it certainly contributes to the storytelling and the building of anticipation and suspense. Inside still keeps to a very modest color palette, so while not entirely black-and-white, it still feels just as drab as Limbo. Nearly the only bright color you'll see in the game is the boy's red shirt, which makes him stand out from the rest of the world.

Inside spent 5 years in development prior to its release, and the amount of polish on this game is remarkable. The way that the camera moves when you enter a new room through a doorway, with just enough delay to show you that there is indeed a wall there, but not enough to make it annoying when the character is obstructed. The way that it zooms in on small rooms and tight crawl spaces, and pans way out to open up the vast scape of underwater depths. The background scenes of marching zombies, that serve as an omen of what's to come. The scenes where you reach a domed glass window, and you lean against it and hope to see what's ahead, but the camera stops just shy of revealing the secret. The sound track and effects are glorious. Nothing ever glitches or looks out of place. It feels like you're inside a real world. A horrible, nightmarish world with procedurally animated sacks of bone and gore.

The reaction of other characters in the game feels extraordinarily genuine. There's a scene where you hang over an large open hatch, in plain view of a couple of scientist, while watching them get increasingly agitated. If you keep waiting for a while, they eventually scramble to pull in a portable security robot to take you down. It just makes you feel like there are real people on the other side of the screen, and just like yourself, they don't always succeed in what they do; your success is their failure.

Rather than stick with pushing boxes and pulling levers, Inside introduces a number of new mechanics, all of which work very well. The most heart-thumping of these is the concept of baiting, where you get to make someone almost catch you, just to keep them far away from something that you can then proceed to quickly run to. The little boy can swim now, and the submersible adds to your ability of exploring the underwater world without the sort of time limits that holding your breath underwater would require. There is a new take on gravity puzzles, where the ocean hangs above you. What should seem like a familiar Limbo mechanic of changing water levels feels fresh and new. Last but definitely not least, the ability to put on a helmet and control other zombies is mind-blowing. But more on that later.

My main gripe about Inside is its difficulty level. It felt much easier, and hence much shorter than Limbo. After you inevitably get absorbed into a conglomeration of bodies that the Internet has been lovingly referring to as the Blob, the game becomes mostly a story book, where you get to run across the screen, destroying everything in your path. There are a couple of puzzles here and there, but they're easy and scarce. So while it was still interesting from a storytelling perspective, this segment didn't satisfy my craving for awe-inspiring puzzles that I assumed I would have to solve to finish the game.



Then there's the ending. I guess I liked it. It was abrupt. It was definitely a huge slap in the face of the player. "You wanted to escape, right? Well, you escaped. Congratulations. Also you're a horrible limb monster." Were they just trying to make a joke about the alternate meaning of Limbo? There have been a number of theories floating around the internet about what the ending tells about the main character of Inside. I'm going to stick to the one that makes almost too much sense.


The secret ending gives away a lot of it. In it, the little boy encounter an office space with a computer terminal and a mind control helmet, that's hooked up to... unknown. As he rips the cable out of the wall panel, the system powers down, and everything goes dark. But just a second before it does, you see that the little boy slumps over and becomes motionless, exactly the same way as the zombie puppets do when they're disconnected from mind control. It's very clearly established that the little boy is a zombie puppet himself.

It was also well established that zombie puppets can themselves operate mind control helmets to control other zombie puppets, in what was easily my favorite mechanic of the game. The first time I plopped a zombie's head into that glorified lampshade, and that cardboard box popped open to reveal another zombie, my jaw hit the floor. I had never experienced anything even remotely like this. I only wish that the creators had used this mechanic in more puzzles, and maybe layered more of that Inception-like goodness and eventually had you controlling a 10th order zombie to perfectly trigger a chain of events that would solve the puzzle.

But I digress. Just prior to the final segment, where Inside goes full Cronenberg, and the little boy is absorbed by a mushy sack of bodies, you are tasked with unhooking it from four mind control helmets. The blob, of course, is using these helmets to control other zombie puppets. It would make total sense if the blob had been controlling the little boy all along, only to lead him into the water tank and absorb him.

Some of the related theories fall apart for me. One is that the little boy is somehow special and gives the Blob superpowers, which is how it's able to escape. I think it's far more likely that the little boy is just a sack of meat and bones, like all the other zombie puppets. It just so happens that the Blob absorbs enough bodies by the time you encounter it, that it feels strong enough to attempt to escape.

The other theory is that the Blob is actually controlling you, the player, who is in turn controlling the little boy. This doesn't make sense to me, because once the blob is unhooked from the mind control helmets, you're still controlling it, not the other way around. I think the Blob is controlling the little boy.

So who is really controlling the Blob, then? That part is definitely ambiguous. It could be a rogue scientist, or it could be you, the player. One may surmise that you are the real Blob, holed up Inside your living room, playing video games, and absorbing all of their mindless zombie characters into yourself, until eventually you feel overwhelmed and want to escape.

Monday, November 16, 2015

CitiBike Guest

I've been using CitiBike for a couple of years now, and mostly loving it; especially now that they have a bunch of stations in Jersey City!

Here's an idea: make it easier to give rides to guests. Why? I often wind up in a situation where I want to ride my bike with another person, but they don't have a CitiBike membership, so I have to convince them to try it out, and then go to the pay station, insert my credit card, and get the unlock code, all whilst my guest is getting uncomfortable and eventually changes his/her mind.

Instead, I would like it to work like so: *blip* I just got a bike; *blip* I just got a bike for my guest. The advantage? My guest isn't aware of any transactions involved, and doesn't have time to change his or her mind. Here's how it would work:
  1. I use my key to unlock my own bike. The light turns green and I take the bike out.
  2. I use my key to unlock my guest's bike. The light starts flashing green.
  3. If I press "1", my credit card (on file) gets authorized, and the bike gets unlocked. If I press anything else, or don't press anything at all, nothing happens. This way I can never accidentally unlock an extra bike if the previous bike I docked failed to lock. This also has an extra advantage that if I'm just trying to unlock a bike for myself and the light starts flashing green, I will *know* that my previous bike failed to lock and I can inform CitiBike.
The guest's bike would get charged per hour of use, just like it does currently, and I think it would convince many to actually get a membership!

Tuesday, September 01, 2015

Why UltraViolet is a failure.

I bought yet another blu-ray movie with one of those "redeem your digital copy" cards inside. I usually ignore them, but this time I thought, why not? UltraViolet seems to be a thing now; it stood up to the test of time. My optical media isn't going to last forever, so I might as well get my moneys worth!

To start, I searched for an iOS app that plays UltraViolet movies. No such thing. There are apps that supposedly connect with UltraViolet to redeem the purchases, which allow you to then stream or download from a digital retailer, such as Flixter, Vudu, or M-GO.

Fair enough, let's start with Flixter. Netflix? Nope, that was Quickster. Whatever, this one's owned by Time Warner. How are the reviews? Four and a half stars! Great! Oh... no, it doesn't actually play movies. Scroll down. Flixter Video! One and a half stars?! Okay, maybe the reviewers were a little harsh. Nope! Most of the complaints are about not being able to play movies offline, or not being able to play movies at all. Not going to bother with this one.

Moving on: Vudu. Same story.

M-GO. Good reviews. Nice interface. Setting up an account was pretty easy. Okay, now I have to set up an UltraViolet account, too. Now I have to link it to the M-GO account, which is done by entering my UltraViolet credentials on M-GO's site. Not very secure, but whatever – it's not like my UltraViolet account has got anything to steal. Linked!

Finally! Let's add those movies! Enter the redemption code on UltraViolet's site. Choose your digital retailer: Flixter or Vudu. That's it. Try another movie code? Same story. Enter the code directly on M-GO? Doesn't work, of course.

Dear Time Warner and Walmart and all the movie studios that made a deal with these decrepit spawn of digital hell: let me recap my situation. I wasn't entirely happy with how Apple handled things, what with their DRM and being restricted to their ecosystem to watch any of my purchased movies. Honestly, it was mostly a matter of principle, because I was actually able to play those movies on all of my devices. The only real issue was "if I ever switch to Android", which of course doesn't support iTunes purchases. Instead, I now have these mysterious UltraViolet digital... somethings. These somethings have zero chance of being played back on any of my media devices.

Saturday, December 06, 2014

iPhone 6: The Good, The Bad, and The Mediocre


© 2014 Apple Inc.

I finally got my iPhone 6 in the mail, and after playing around with it for a couple of days, I have many a praise, but also a few criticismesses.

The Good.

1. Touch ID.


Yes, I know, it's been there since the iPhone 5S. However, since I'm upgrading from the iPhone 5, it's new to me.

Words cannot express how well this feature works. It is simply amazing! It reads your fingerprints and only your fingerprints, and it reads them every time without fail, in a mere fraction of a second. You can store multiple fingerprints, which is very helpful if you want to unlock the phone with either hand, or maybe if several people are using the same device.

2. Slo-mo video recording at 240 fps.


It's official: my iPhone sees better than I do. Watch a droplet of milk fall into a cup of coffee, a pro skateboarder perform a complicated trick, or your house lights flicker, all at an impressive 720p resolution. Oh yeah, did you know your house lights flicker 60 times per second? I didn't, until I watched it in slo-mo.

3. Flash photography.


I believe the advanced flash was also introduced in 5S, but it is nonetheless remarkable. No more zombie-colored portraits! In fact, I will go ahead and state for the record that at close range, my iPhone 6 produces the best flash photography I've seen so far.

4. Video stabilization.


It's there, it works, and it makes videos look a lot smoother and more professional than they used to be.

5. Speaker.


For some reason, no one mentions this: the iPhone 6 has a massive speaker, compared to the minuscule, tinny-sounding speaker of the iPhone 5. You can actually hear the bass lines this time around, and it won't make that horrible clipping noise when you turn the volume all the way up.

6. Retina.


Not a new feature by any means, but the screen is as gorgeous as ever, perhaps even more so, now that it's quite a bit larger.

7. Background App Refresh and Google Hangouts.


Not really an iPhone 6 feature either; it has more to do with iOS 8 and Google doing a great job on the app.

After jumping through a few hoops, I was able to direct all my Google Voice messages (SMS) to Hangouts, and from there on it was smooth sailing. The push notifications work, and since the app uses background refresh, your messages are already loaded when you swipe on the notification. There's no wait time for the message to load, and you don't even have to be connected to the internet at that point. What does that mean for me? It means I can still read my SMS in a timely fashion, despite the fact that my Gmail emails now arrive with a 15 minute delay. More on that in a bit.

The Bad.

1. I don't like giant phones.


It's a personal preference. Many people like giant phones: there's a reason why Apple made the iPhone 6 Plus. The iPhone 5 was already too big for my liking. The iPhone 6 is so big that I can no longer hold it with one hand and press the home button. I have to use a new "typing grip" as well: holding the iPhone 6 by the sides with my index fingers, and supporting it on the back with the rest of my fingers, while typing with my thumbs. Typing and holding the phone with the same hand is now completely out of question.

2. Camera sticks out.


Everyone knows about this. It's ugly, and if you don't have your phone in a case, it will never lay flat on a table. That said, I always have mine in a case, so it's not a problem.

3. No support for push for Gmail accounts.


This was probably the biggest upset for me. It's not entirely Apple's fault. Some of it is Google's. You see, Apple never supported push via IMAP. However, there was a way to get around that, by setting up Gmail as an Exchange account instead. However, at the end of January 2013 Google disabled the ability to use Exchange to connect to your Gmail account, on any new devices. This means that my email now arrives with a 15-minute delay, which makes SMS forwarding pretty useless.

I tried out a bunch of email apps to connect to Gmail instead, such as the official Gmail app, Mailbox, and myMail. They all seem to share at least one common problem: there is no support for background app refresh. Which means that when you swipe on that email notification, you have to have an internet connection, or else your email won't load. And even if you have it, there is an annoying delay before you can read the email.

Luckily for me, Google Hangouts implemented support for background app refresh, and it works beautifully. They've also integrated Hangouts into the web Gmail client, which works great as well, both for Hangouts/G-Chat and for SMS. So now I can say "adieu" to SMS-to-email forwarding; it has lost its use, and has been superseded by newer and better technology.

4. iOS 8 app crashes and bugs.


iOS 8 is not the most stable of operating systems. Though I'm not seeing as many rendering artifacts as I did with my iPhone 5, both Mail and Camera apps have crashed on me way too many times. There are some interesting bugs as well. For instance, try putting the Camera app into the video recording mode, hit "play" from the Control Center, and then start recording a video. If you listen closely, you will hear the sound of Apple's programmers getting fired. 

The Mediocre.

Battery life.


Sure, it's better than the battery in my iPhone 5, which after two years of use lasts for about 15 minutes during active use. The iPhone 6's battery went down to about 65% after two hours of dicking around. And I'm not talking about heavy usage and playing video games that will make your phone warm enough to heat your apartment during winter. No, just playing around with settings and shooting a few 30-second slo-mo videos. Not great.

~


Overall, I'm quite pleased with what the iPhone 6 has to offer. The slo-mo feature alone kept me occupied for hours at a time! Now let's get some support for push in Gmail accounts, and "we in beez"!


Friday, August 22, 2014

L00k, I haz JavaScriptz!!! ô-ô

I recently published several JavaScript libraries. Some not so recently:)

#1. Freemason

https://www.npmjs.org/package/freemason
https://github.com/spikesagal/freemason

A build utility that is super-simple to use and doesn't require any configuration. Here's an example:
var build = require('freemason').tasks;
build.concatenate('LAB.src.js','jsrequire.src.js');
build.minify();
build.attribute('src/credits.txt');
build.write('dist/jsrequire.min.js');

#2. Require

https://github.com/spikesagal/require

Client-side asynchronous script importing, built on top of LABjs. Here is an example:
var YourModule = require('/path/to/your_module.js', function() {
  YourModule.executeFunction();
});

#3. Wedge

https://github.com/spikesagal/wedge

A browser compatibility shim. Currently supports IE 8+.

#4. TemperSynth


A musical synthesizer with dynamically controlled scale temperament. This was my music hackathon project @ Spotify.

Thursday, May 22, 2014