Pointed Development

Accessing DogeCoin Wallet From an Encrypted Volume

| Comments

Such Encrypt

So cryptocurrency is pretty wild. I’ve been playing around with one of the newer currencies, the Dogecoin, for a little fun.

No profit.

However, there’s a bug in the v0.6.4.0-unk-beta version of the dogecoin-qt application on Windows 7 involving wallet encryption.

Several solutions suggest copying the wallet to/from an encrypted volume, but if you really care about your internet money, you don’t want to leave the wallet file laying around on an unencrypted drive.

The following steps will ensure the wallet is never copied off of an unencrypted drive:

  1. Download and install TrueCrypt
  2. Create an encrypted container
  3. Move the contents of C:\Users\[User]\AppData\Roaming\DogeCoin to the newly created encrypted container
  4. Open up the cmd.exe as Administrator
  5. Execute the following:
mklink /D C:\Users\[User]\AppData\Roaming\DogeCoin [EncryptedVolume]:\DogeCoin

… where [User] is your user name and [EncryptedVolume] is the drive mapping to your TrueCrypt encrypted volume.

If you’ve already created your wallet and you want to feel somewhat better about deleting the old wallet from your unencrypted volume, try copying the folder to the encrypted volume first, then using eraser to wipe the old folder from the unencrypted volume. There’s no guarantee this is any more secure, but hey, if it makes you feel better.

Junction points don’t work (dogecoin-qt crashes on start), and symbolic links require Admin privledges unless you change the default Windows 7 behavior.

I have not tried this on any other version of Windows. Your results may vary.

Update (01/20/2014)

Reddit user Plottin_To_Choke_You has this addition if you decide to copy the contents of the DogeCoin roaming profile:

  1. Copy the AppData\Roaming\DogeCoin folder to the encrypted container
  2. Delete the AppData\Roaming\DogeCoin folder
  3. Create the symbolic link, i.e. mklink /D ... as specified above
  4. Test; mount the TrueCrypt encrypted container and launch dogecoin-qt and see if it syncs
  5. Test; unmount and navigate to AppData\Roaming\DogeCoin and double click. This should fail since the encrypted container is no longer mounted

Tegen Memory Logging

| Comments

tegen Memory Routines

tegen includes a memory diagnostic module, wp_memory. Much of this information is available in the literate form at github.com/jgshort/tegen. I’ve made an abridged blog-friendly version here. It lacks many of the details available in the source.

A majority of the routines within wp_memory were written explicitly for diagnostic purposes during debugging. They are absolutely not recommended for production execution! tegen defines several of its own memory allocation and deallocation routines for use throughout the project or in peripheral libraries. During a production compilation (in which _DEBUG would not be enabled) the wp_malloc, wp_free, and wp_malloc_array methods are replaced with their malloc and free C equivalents, as defined under Production Aliases. Otherwise, if _DEBUG is enabled, the diagnostic routines take advantage of a runtime memory transaction log wp_memory_txn that monitors allocation and deallocation statistics, and assists with dynamic memory allocation and free leak identification within the code base.

Memory pools and other higher-level constructs will eventually utilize the functions defined here.

Introducing ‘Tegen’

| Comments

The tegen Project

Everyone has a project, the one you think about on the drive to work, that constant thirst quenched only when you get a few spare minutes to dedicate to its forward progress… Little design sessions that keep you up at night. I’ve been “building” a project in my head for a very long time and it’s about time I actually sat down and did something about it.

So here it is, an announcement that only I’ve been waiting for:

Introducing, tegen! My game… thing and project… thing!

Aside: Blog updates had stagnated: I became derailed in favor of prepping my development environment, coding sessions, screencasting tests, sound checks, various failures and successes, and so on. This will change.

Code Name: tegen

At its core, tegen is a way for me to learn and teach—two things I deeply enjoy—while producing something I’ve long wanted to do… A game!

Let me start out by giving a little background on the project. tegen (a name reminiscent of an amazing singer/songwriter I happen to admire) will be developed over a series of screencasts, live coding sessions and other mediums, as well as documented on blog posts, chat sessions, Google Hangouts or whatever. I invite anyone interested to follow along, make suggestions and openly critique my work.

As of right now, it’s just an empty github repository. My plan is to document every step of the way. You’ll get to see me stumble and fall a lot, so expect fun times.

A Game? Really?

Yeah, I know. Everyone writes games and I’m not really bringing anything fresh to the table by creating a game. But games are what drew me to development in the first place. I’ve written before about the impact of games on my life. They’re central to my computer use and there are so many awesome development opportunities in low-level game code. For real.

If you’re still interested, read on…

One Time, at Work…

| Comments

Pay no attention to the developers behind the curtain.

I’ve relayed this story many times over the years and it remains one of my favorite developer anecdotes.

As is common, the requirements of the business do not always align with the reality of software development. Occasionally, we’re asked to do something really, really stupid for business to succeed. This was very much the case for the company I worked for back in the early 2000s, when I helped develop a web-based front end to a small subset of client data. I’ve touched on similar stories with this company in the past: The environment was very much the Wild West of developer environments.

The web-based front end was very new and we had spent a lot of time writing all of the various components, but it wasn’t robust and it wasn’t solid and it certainly wasn’t production-ready. In fact, it had a lot of bugs that we simply hadn’t ironed out, and we were discovering new bugs on a daily basis.

My Family Doesn’t Care About Security

| Comments

Begin Rant.

I spent the last week-and-a-half with my father, a very bright man who doesn’t really get technology and doesn’t necessarily want to get technology. Case in point: Over the holidays my father proudly presented – to everyone in the room – his handwritten list of usernames and passwords which he “secures” under the lid of his laptop.