As a relatively newly-minted homeowner, I’ve been noticing a strange instinct waking up within me, namely the DIY instinct. I feel compelled to fix random things around the house, optimize, insulate, caulk, tuck-point. I suppose this makes sense since I’m an engineer: I derive great satisfaction from learning how things work, and making them work well.

But this also fits into a general philosophy I’ve always held, which is that you shouldn’t be allowed to use a technology without a basic understanding of how it works. If you drive a car, you should understand the fundamentals of internal combustion, and be able to change a tire, or even change the oil, brake pads, or spark plugs. Similarly, if you own a house, you should have a basic understanding of things like electricity (at the household 120-volt level), as well as plumbing (water and gas), sanitation, insulation, heating, cooling, security systems, cable hookups (TV, internet), etc.

It sounds like a lot, but it really isn’t: these are pieces that fit into a single puzzle, and operate on very simple physical principles. Sure, you can hire a contractor for the simplest tasks around the house, but I personally wouldn’t feel like I’m “at home” if I wasn’t intimately familiar with every facet of how my house works. Besides, today it’s easier than ever to do DIY projects around the house, given the astounding amount of information on the web available for nearly every kind of task.

Prior to buying the house, we invited a home inspector who walked through the house and gave us a laundry list of minor and major items that need fixing or touching up. Slowly but surely, every week I commit to crossing at least one item off the list.

This week it was all about electrical outlets. Some of the outlets didn’t have ground (two prongs instead of three), some had reversed polarity (generally harmless, but potentially dangerous for certain appliances), and some need to provide a GFCI. After a few hours of work and a contractor-pack of new outlets, all of the receptacles now look pristine, and are completely up to code.

Grounding the outlets specifically turned out to be much simpler than I thought. The outlet boxes that hold the receptacles in the walls are made of metal, and the wires that lead to the outlets are also routed through metal tubes. The tube attaches to the outlet box on one end, and either a junction box or the circuit breaker on the other end. And conveniently enough, the mounting brackets of the outlet itself are metallic, and are connected to the ground pin of the outlet! Therefore, it suffices to just replace the two-prong outlet with a three-prong one, with no additional wiring.

I’m surprised by how many people I know who absolutely refuse to touch anything electrical around the house. Electricity is not something to fear; it’s something to understand, respect, and tame. Get to know your circuit breaker. Replace some old wiring. Put in a new dimmer switch. And most importantly, enjoy the knowledge that you made your own home even better.

Disabling comments

It’s time I join a growing number of bloggers and webmasters in a move that I think will be a net positive for the internet — disable comments on my blog.

Since the inception of this site in its current form, there have been roughly 2000 comments spread across all of my posts. I can count on one hand the number of comments that have actually contributed to the quality of the site, or to which I’ve looked forward to replying. That’s not meant to offend anyone who has previously left a comment; I simply feel that the signal-to-noise ratio is so low that it’s not worth the cognitive burden of moderating the comment queue.

One might argue that comments help to “open up the conversation,” and that by disabling them, I’m shutting out opinions and ideas that are different from mine. Far from it — if you have something to say, send it in an email, or a tweet. Or better yet, write it on your own blog, and send me a link.

For me, it’s a matter of focus. It’s not just about the aesthetic benefits, and even some performance benefits, of disabling comments. Rather, it’s about focusing on creating content for its own sake, instead of spending any time worrying how the commenters might react, much less having to reply to them.

As a reader, when you read blog posts and articles around the web, do you really find much value in reading the comment section (except for a good ironic laugh)? If you’ve written comments yourself, has it really led to a productive conversation with the author? It’s a solid “No” from my end, and I don’t foresee the situation improving anytime soon.

To be sure, disabling comments necessitates surrendering a certain amount of vanity. Receiving a comment often feels like a pellet of validation — a sense that your audience is present, and waiting for your next opus. But really, if you want to measure the size and the geography of your audience, then you can use Google Analytics. And if you really want to interact with your audience, then why not direct them towards a platform that is actually designed for social interaction, such as Twitter or Facebook?

It’s time for blogs to be strictly a source of content, and not a destination for discussion. That space is now owned by social media, and rightly so.
And… there we go. I feel better already!

Big updates to DiskDigger!

I’ve just released a pretty significant update to DiskDigger for Windows, which introduces numerous improvements and features not only for casual home users, but also for professional investigators and forensics specialists. Here are the highlights from this update:

  • Now using a “Ribbon” interface, which contains navigation (Back / Next) buttons, configuration settings, and recovery options (see screenshot below).
  • Every section of DiskDigger’s workflow now has a “Help” button where you can find answers to common questions about the recovery process.
  • In “dig deeper” mode, you can now save and restore sessions (in the Advanced tab).
  • In both “deep” and “deeper” modes, you can now save a detailed report (in the Advanced tab) which is a log of all recoverable files found by DiskDigger, along with basic meta-information for each file.
  • Improved support for scanning disk images. In the Advanced tab when selecting a drive, click the “Scan disk image” button. For forensic-strength scanning of disk images, you can control the number of bytes per sector (all the way down to 1), for recovering files that may not be aligned to sector boundaries.
  • Added support for recovering raw images from Panasonic/Lumix cameras.
  • DiskDigger now requires .NET 4.0. Therefore, for running it on Windows XP or Windows Vista, you may need to install .NET 4.0 from Microsoft if you don’t have it installed on your system.

dd_screen71If you’ve accidentally deleted or lost your files, DiskDigger is always here for you!

A quick (but useful) update to an oldie-but-a-goodie

One of the first apps I ever wrote for Android, and certainly the first app I published to the Google Play Store, was a simple unit converter app. (My god, that was nearly six years ago!) With over 150,000 loyal users, I’d say it’s been modestly successful, especially considering the hundreds of other similar utilities that exist on the Play Store.

Anyway, I thought it’s high time that this app receives some love, so I implemented a feature in the app that I’ve been wanting to make for quite a while: Widgets! You can now drop a widget right onto the home screen of your device, so that you can perform quick unit conversions on the home screen, without having to launch a separate app! You can also drop multiple instances of the widget, if you need more than one quick conversion. Here’s what it looks like:


The steps for putting a widget on your home screen varies for different Android devices, but generally it involves pressing-and-holding within an empty area of the home screen, and selecting from the “Widgets” menu. If you have the app installed, you should see a “Convert Units” widget that you can select and place on the home screen.

After placing the widget, you can configure which units it shows by pressing the “gear” icon on the left. You can then increment and decrement the value to convert by pressing the “+” and “-” buttons, or exchange the “to” and “from” units by pressing the widget itself.

No Man’s Sky: All Breadth, No Depth

Imagine a game that shows you a random number and asks you to give that number a name, and upload it to a database. That, in a reductive nutshell, is the general idea of No Man’s Sky. The question is whether No Man’s Sky dresses up this mundane premise in a way that makes it worth playing. The short answer, I’m afraid, is no. The game disappointed me in several ways, which I’ll outline below, along with some lessons and recommendations for future game developers, which they are welcome to take or leave.

General disappointment

In a broad sense, the game is indeed revolutionary, since it allows the player to roam free in a universe filled with procedurally generated planets, meaning that no two planets are exactly alike. The game allows for 18 quintillion (264) such planets, giving the player an inexhaustible supply of new worlds to visit and explore.  And make no mistake: the first impression that this game gives you is outstanding — breathtaking vistas, a world bustling with life, and seemingly unlimited possibilities for exploration.

Unfortunately, the procedurally generated elements are only a thin veneer on top of a whole lot of repetition and mundanity. After exploring a few planets, it becomes clear that while the landscapes are indeed randomly generated, the small-scale structures are pulled from a very limited selection of shapes. Things like trees, flowers, corals, crystals, geologic structures, etc. are nearly identical from planet to planet. The various animals that can be found on each planet (again, randomly generated permutations of a small selection of body part shapes) provide some amusement, but there’s nothing else to do with them except catalog and upload them to a database that no one will ever see.

Each planet is also peppered with “artificial” structures like trading posts, transmission towers, and manufacturing facilities. All of these are identical from one planet to the next. If you’ve visited one, you’ve visited them all. The same goes for space stations that are present in every star system: they look nearly identical on the outside, and exactly identical on the inside.

The intelligent aliens that you encounter along your travels look and behave identically, are completely static, and allow for a single conversation that has zero consequence, and may provide a crafting schematic that you already have.

“Star systems” are not really star systems; they are clumps of a few planets in close proximity, between which you can hop in your starship. Space itself, far from being empty, is jam-packed with asteroids that are made of starship fuel, conveniently enough.

There’s never any sense of danger, since you can crash directly into asteroids while taking minimal damage, and the game simply won’t let you fly too close to the surface of planets. The idea of survival being one of the pillars of this game is laughable. You really have to try to get killed in this universe.

The game’s universe also feels sort of abandoned: none of the planets have any cities or settlements, except the aforementioned lone buildings, which are sparsely spread out and manned by a single alien at most. Where do these aliens come from? What do they do outside of work?

There are also occasional starships or freighters floating around in space between the planets, whose only purpose is to tempt you to steal their cargo. Where do these ships come from? Where are they going? Does it matter?

Occasionally, you’re attacked by hostile starships in space, or by hostile “sentinels” on the ground. They appear out of thin air, and their motivation is completely unknown. The battles unfold identically from one instance to the next.  The battles also have zero consequence, since you can return to your death point and retrieve your lost items, with the enemy no longer in pursuit.  And thus, the game manages to reduce something as exciting as a battle to even more monotony.

Therefore, on the whole, the novelty of this procedurally generated universe wears off after a couple hours. After that, it becomes a tedious grind of collecting resources to power your starship and expand your inventory, with ever-diminishing reason to do so.

Specific disappointment

From the beginning of the game, the player is given the option to follow a storyline where the player embarks on the path of “the Atlas”, a mysterious force/entity that starts to guide the player towards a vague eventual goal. The storyline has a good dose of mysticism and philosophy, as well as some nice visuals along the way. I found this storyline much more interesting than any of the procedurally generated elements in the game, which says a lot about the latter.

However, the ultimate disappointment came at the end of the Atlas storyline. The game asks the player to collect ten “Atlas stones”, which involves a time-consuming process of collecting resources, crafting new supplies, and upgrading your starship so that you can travel from one Atlas station to the next. At each Atlas station, the suspense builds, and the player expects an ever-more-grandiose payoff at the end. But instead of a grandiose payoff, we get… nothing.

When you turn in the ten Atlas stones into which you’ve invested so much time, you’re told (not shown) that you’ve fulfilled your destiny by “birthing a new star”, and that you’re now “free to explore” on your own. This is done offhandedly, in the exact same conversation interface as all other interactions in the game, and with no other visuals to make note of your accomplishment. You’re not shown this new star, there’s no cutaway scene, and there’s not even any reward in terms of upgrades, milestones, or possessions. The game simply continues, with no further information given.

At first I honestly thought that it was a bug in the game. But when the realization sank in that the storyline was over with absolutely no payoff, I was kind of appalled, and was pretty much turned off from playing the game any further.

I’ve also already read spoilers of the actual “ending” of the game (when the player reaches the center of the galaxy), which turns out to be almost equally unsatisfying. I therefore have zero interest in completing that portion of the game, either. All that’s left is to visit random planets and upload them into a database that no one will ever see. Or, more precisely, look at random numbers and give them a name. No, thank you.

Controls and user interface

The controls in the game are very frustrating. I played the PC version of the game, and it doesn’t feel like it was built for a PC; instead it feels like a back-port of the PS4 version, or some kind of lowest-common-denominator between the two. When I press a button on the keyboard, or click my mouse, I expect that action to have an immediate effect. However, the game expects you to press and hold your mouse and keyboard buttons for a split second, in order to perform the desired action. Moreover, this scheme is inconsistent: some actions are immediate, while others are press-and-hold. This requires users to unlearn the way they’ve interacted with PCs since the beginning of time, and adds a huge amount of unnecessary frustration.

All of the conversations with aliens and interactions with objects come with built-in mandatory delays, to accommodate a slow animation that cannot be skipped. This is fine the first few times, but then becomes very annoying. The biggest offender in this category is the interaction for selling items on the “galactic market”, where the interface animates for a full five seconds before offering the options to buy or sell items.

Maneuvering through space in your starship works well enough, but becomes inexplicably terrible when maneuvering over a planet’s surface. At random times, your ship will pull itself to the left or right. There’s an invisible barrier that prevents you from flying too low, which takes away any excitement you might get from wanting to fly through canyons or mountain ranges.  When taking off from the ground, your launch thruster may put you a few kilometers above ground, or it may put you into orbit, with no clear way to control it. But I digress.

The Good

The best thing I can say about No Man’s Sky is that it’s a beautiful proof of concept, and I certainly don’t regret trying it out. As a software developer, I can appreciate the tremendous engineering skill that went into constructing this world. I can also see exactly what “happened” in the development of this game: 99% of the effort went towards building the game engine, and 1% went towards thinking about the story and the gameplay.

Nevertheless, the fact that it was executed by an indie game studio makes it doubly impressive. No Man’s Sky has laid the groundwork for a procedurally generated sci-fi adventure. To see that it’s even possible to create this kind of world is very encouraging. I look forward to the next iteration in this genre, perhaps executed by a major game studio, that might feature more meaningful procedural elements, better multiplayer interactions, and most importantly, deeper storylines.

To summarize, there’s a brilliant little YouTube video that captures my feelings on the game perfectly. Enjoy.