“I’m going to cast Raise Blog!”

I have left this blog idle for far, far too long.

So, what do I plan to do with this place?

For now, I think I’m just going to go back to random once a week posting. Nothing extremely premeditated, just random mental brain dumping once a week. So, to start, I’ll dump what I’ve been doing all this time.

Since it’s been a few years, I’ll start from the beginning! Those of you following my posts over in the “What are you doing?” thread, but for some of you this will be a first, so… here goes!

First, I spent more or less a year out of commission as I had my wrists glued back together by a doctor. That was fun. This means I can draw without my wrist causing tension migraines, but in exchange, I got into a car crash and now I get random migraines from the whiplash injury. Murphy’s Law, folks.

In addition to this, I did lots of blueprint drafting work on a dream home for my parents, which they promptly decided was too expensive to build, then asked me when I was going to finish it, then decided it was going to be too expensive to build, then… Yeah, we got caught in a bit of a loop there. I finally decided I needed to get my own life and work caught up to where I could just pay the difference and build them the damn house. So, New life goal, build a damn house for the parents.

I’ve gotten quite a bit into my 3D printer, having learned Fusion 360 at the local hackerspace, and started modeling stuff. Recently, I finally started modeling and printing lots of stuff, and I’ve been printing off things for use on the computer bench’s slat wall. Photos to come later on as another week’s random update when I get more done.

In addition to this, I’ve been revamping my computer business. As many have pointed out, I generally don’t charge enough. I eventually figured out that this was mostly because I was beating myself down on time due to the mixed nature of my work- I tend to do a lot of small talk with clients to entertain them and pass the time while I wait on things, and I feel guilty about charging them for that. I’ve since decided to negotiate with the clients to set up a monthly retainer plan, which has resulted in more billable hours. The world is a strange place!

On my personal projects, I’ve been spending a ton of time rewriting Dungeons and Dragons 3.5. Why? D&D is the only tabletop RPG my IRL clique will play, but the weaknesses in the rules (of all the editions) result in us unequally leveraging the rules against the scenario, and some people feel left out and start subconsciously rebelling and crazy stuff happens. Linked to this, I’ve also been designing it as a “free commercial product”, figuring that if I’m going to build it, I should build it as a professional product for distribution with a business model so if I somehow succeed, I’m not shooting myself in the foot.

On my game development stuff, I’ve been going insane. I have been having a nightmare of a time sitting down to code, between interruptions and the stress I’ve been putting on getting things coded, I’ve finally come to the conclusion I’m trying too hard and need to relax some and just do simple experiments to see what I can make happen. I’ve basically been trying to jump into the deep end when I really need to play in the kiddy pool.

On gaming in general, I decided I really needed to just start goofing off and having fun with games again, because I’d been avoiding them “because I have work to do” and managing to get less work done as a result of trying to be productive. I finally started scheduling to play games, and I goof off on Twitch on Sat/Sun at 4pm eastern with some friends watching. I’m finding Twitch Streaming fun, and Sundays in particular I drag a bunch of friends in and play the D&D Arcade in 4 player Coop. Barrels of fun, helps screw my head on right for the entire week and keep me cheerful. I rather like the eccentric Twitch personality I cooked up, although I find the name rather silly: Ned Ludonarrative, the Gaming Luddite! My current playing list is Eternal Filena, a crazy SNES era JRPG based on a truly terrible light novel that’s so bad it’s awesome, the aforementioned D&D arcade, and off cycle I’ve been playing Sky Rogue and Megaman X games on occasion.

Writing wise, I haven’t done much besides outlining and imagining stuff, but that’s because most of my writing time has been taken up by the D&D 3.5 rewrite.

Reading wise, I need to sloooow down. I’ve taken to reading web/light novel translations when I’m stressed, and my “currently reading” list on novel updates is getting ridiculous. Isekai is such a paradoxical genre, it has many bad elements such as the overplayed harem cliches, but amidst all the hamfisted amateur web novelist “my first story” mistakes, the genre is exceptionally good at providing a funny mirror that reflects the aspects of the real world that are good. It makes for a purely wonderful distraction when you’re feeling down, which given Japanese society, is probably why Isekai is such an oversaturated genre.

Drawing wise, I’ve been making a little progress, but nothing I’m really satisfied with showing people. The other day I learned how to use Clip Studio layers and paint brushes to make realistic watercolors, that was pretty cool.

Minecraft wise, I’ve had to avoid Minecraft lest I lose even more hours to it. I love the game, but it provides form to my mad quest for order and control that just… devours my sanity and time. I want to revive my private server and get that setup for friends to play on again, but… this day is not that day.

So, that more or less brings up most of the things to current, I think. Obviously, I didn’t go into much detail, but I hope to in the coming weeks. Future posts will be more focused, such as rants about how my 3D prints are going or maybe any given project I’m focusing on.

At some point, I’ll build a new template and try to figure out a good way to add an image gallery or some such here. I don’t actually see a pages list on the left, so that might well be turned off on this setup.


Over… already…. what?

Going on the sixth or so week of my time away from home, I’ve learned a few things, attended a family reunion, removed my first tick, gotten a few HTML/JS projects started and half finished, finished a few books in my backlog, caught and gotten over a bad two week long cold, discovered none of my customers took me seriously when I said “We’ll be gone until August”, and half-built a huge underground palace in Minecraft that I can’t ever seem to pay attention to the game long enough to finish.

Unfortunately, I should have known better than to take my family seriously when they said “we’ll be gone until August”.  We’re apparently bugging out in a few days to go back home.  It hit me out of left field so hard that I’ve had several anxiety attacks over it.

I should be relieved to return home, because it means I’ll be in a place where I can actually stay current with events and download software and updates. (more on that , later.)  What’s causing my anxiety, however, is… well, a caveat first.

I haven’t spent as much time studying code as I thought I would, but in its place I’ve actually been going through the pile of books I brought down with me and a few I bought here.  I haven’t read much analog print in the last few years, mostly due to how much easier on my eyes I find reading on the computer.  I’ve recently taken to trying to counteract that by reading on the Kindle app, which has helped quite a bit.  (Half the books I’ve read have actually been kindle books)  Reading has been good, a few of the books were also good inspirational/motivational books that I enjoyed considerably and got a bit out of.

So, the lack of achievements doesn’t bother me, especially since I have been trying to make as much of a vacation as possible out of it.  What bothers me is first that I’d hoped to be recharged by the end of this and instead I’m drained.  I’m exhausted, the things I thought would get me the isolation I wanted to think, rest, and plan ended up becoming barriers I railed against.

After many attempts at writing this post, I managed to arrive at something that calmed me down and helped me relax a bit, and that’s how things have actually changed in my absence, primarily: we hired a friend of mine to serve as a housesitter and he ended up serving as our computer repair field agent.  He wants to keep doing the work, as well, for the extra residual income.  So I finally got out of my old job… by hiring it done.

Back to the downloads, I’ve been using a really crummy Verizon hotspot on which I really just don’t have enough data to spread.  Between three people, 10 gigs goes extremely fast.  I have a phone with unlimited data, but it only gets signal in certain parts of town, so downloading a week’s worth of episodes typically means parking in one of several parking lots and just sitting there for two hours while everything downloads.

This isn’t a realistic option- I’m sure the places don’t want me loitering around in their parking lots anyway, so I’ve mainly just been queuing up everything and letting it download if it’s going to.  Doing this I’ve been able to keep somewhat current on some of the series, but lower interest ones have just been backlogged until I get home.

So when I get home, it’ll be time to max out the transfer rate, get caught up, relax and have a blast.

It’s kind of weird how at the end of a vacation, you always seem to need a vacation from your vacation.

Lastly, a little HTML experiment. this isn’t IE friendly, (Tested in current Firefox and Chrome) but if you’re here you should know better than to use IE anyway:



The Road Ahead

Well, it’s been a while since I posted here.   A long while.  There’s a mess of reasons for that, some of which I’d like to rant about but shouldn’t, and some I don’t want to rant about but probably should.  Ah well.

To start with, I finally got some real “vacation time”.  It doesn’t feel like much of a vacation since I still have a little web work to finish off, but I don’t care that much right now, the web work will be finished off soon enough.  Technically, it’s not a vacation, but for a little while, it is.

The vacation time comes at a bit of a cost- My parents and I are taking care of my Grandmother for a bit.  For a “Bit” I mean indefinitely- she has Dementia.  It’s not quite as bad as Alzheimer’s, but it’s amazingly frustrating at times and sad to see her start to deteriorate in general.  The last month or so she was staying with us at our place, but being away from her house was very stressful to her.   So, that means we’re out here, on the family property, in the middle of a tick, mosquito, and chigger infested woodland, miles away from town.

The greatest peril out here isn’t the parasites, but rather, the fact that the American “deep south” has some really funny ideas on “high speed internet”.  The last time I was here, two years ago, I saw several signs advertizing high speed 56k dial-up.  No, that’s not a joke…  It’s just the grim reality of how technology isn’t distributed anywhere near equally.  So far the best data throughput rates I’ve seen here have been off my Sprint phone on the 4gLTE towers in town, but out here I’m down to 1.5 bars of the Verizon 3g antenna by that our mobile hotspot picks up, and it has a 10gb/month data limit that is woefully inadequate for life’s needs.  At least I have it, tho’.  I’d be sunk without it.  (I have to go into town to download my anime, tho’.  Yay to sprint having unlimited data plans and 4gLTE networks)

The situation isn’t all that bad, despite the blood and flesh sucking insect-life and near-total internet disconnection, life continues on.  My day job, the family computer business, has been passed off to the son of a family friend, who, hopefully, will make it his own.  While I help my parents out by being around to keep an eye out for Grandmother when they need time for various tasks, I’m getting the opportunity to sit down and do what I’ve always wanted to do – work on my game development work.

For the moment, I’m choosing to focus on HTML 5 Canvas.  It’s an interesting technology, closest to the Flash AS3 scripting that I had started to learn, and with some of the numbers I’ve seen recently, seems to have enough market penetration to be counted upon as a mainstream platform, and there are various “middlewares” which are basically a fake-app wrapper for an HTML/Javascript “app” that can be used to deploy them as an “App” to the various smartphone/tablets.   They’re no native app,  but I expect that for certain kinds of game- the oldschool indy 2D RPGs and 2D platformers, for example, that they’ll be satisfactory.

Past that, I wish I had much of a clue what to do.  I’m so used to my plans failing or being rejected/preempted that I feel like I should just do something, and plan once I’ve begun to learn what my capabilities are.

On the fun side of things, for the next few weeks I’ll be blasting through my gaming backlog.  I’ve got this huge list of things I’ve wanted to do, but held off on for various reasons.  (Mostly to keep myself from retreating into escapism as a solution to depression.)

While it’s not to the level of a plan, some things I’d like to try to get finished in the coming week or two, amidst the gaming:

  • Polish off the website I’ve been working on the last five months- the one bit of work I couldn’t leave behind.  It’s almost done, just waiting on the client to do some content authoring before I make a few minor tweaks to it’s template code.
  • Finish working on my new Forum Avatar. (It’s coming along nicely!)
  • Get a few postable practice works of either sketchbook art or html 5 canvas practice.

I think the above seems realistic enough.

On the gaming side of things, my gaming backlog that I hope to whittle away at over the next 5 months looks like this:

  • Valkyria Chronicles – My replacement PS3 came in before I left, so I’m in the process of re-clearing Valkyria Chronicles in it’s entirety.  I hate losing saves to dead consoles.  Also, because this is one of the most beautiful games of its generation.
  • Ys Celceta – Would you believe I own a copy of every version of Ys 4 except the SNES version, and I’ve never beaten any of them?  Hopefully the English Vita version will fare better.
  • Valkyrie Profile 2 – I found an undub copy of this that I hope to get emulated.  I never did finish my english copy of this game, I stalled out at the sudden difficulty spike that was the Volcano.
  • Fate/Extra – I’m stalled out on Week 3.  Just haven’t gotten around to it.
  • Tactics Ogre: Wheel of Fortune – Halfway through the lawful route, just haven’t gotten around to finishing it off before using the wheel of fortune system to skip back and do Chaotic and Neutral routes.
  • Minecraft: Resonant Rise Modpack – I put minecraft off shortly after the FTVcraft server went down, but really wanted to try this modpack out.  Finally getting a chance to now that I’m no longer afraid of losing myself to escapism.
  • Gnomoria – Because Dwarf Fortress needs a real GUI.
  • Ys Origin – If I manage to finish off all the others.
  • Probably some others I’m forgetting about.

I may have to curtail the gaming again if I find myself relaxing a little too much.  The next few weeks are “Time off” to clear my head, but after that… I’m going to have to be a little more strict with time.  Ah well.  This has gotten a bit ramble-y.  I just wanted to make a blog post again, for the first time in forever.


Odd thoughts on writing

The last few weeks I’ve been pondering and scheming ideas for the upcoming Camp NaNoWriMo, wanting to try to get something ready for that, and I’ve come to some odd observations thanks to some general opinions I’ve seen around the internet and had echoed by some friends.

I’ve chosen to work on my old novel project, instead of a fanfic or throwaway project, which basically means I’ve got to finish making the world and actually set an “ending” story for it, which it has always lacked.  In no small part due to how I originally came up with the story – as a “huh… let me take my characters from this RPG and toss ’em into an original fantasy!” debacle back when I was 12.  (For perspective, I’m almost 30 now.)  Over the years, I’ve reinvented the world and characters multiple times on account of criticism from very skilled writer friends and self-criticism stemming from being older, (arguably) wiser, and more genre savvy.

The current incarnation doesn’t even resemble the original one, with a few possible exceptions.  While good, this is actually the source of some of the difficulty in telling the story.  The sheer number of changes have sort of caused a world building dilemma that has driven me to examine the genre as a whole.

You see, in all the redesigns, I somehow managed to purge all of the antagonists.  Some of them were removed on account of being unrealistic, some were made more realistic and their motivations and role changed, and ultimately, I ended up with a world that exists in a “calm state”, with no evident challenges, wars, or impending perils, having a relatively defined day-to-day existence.  While a good sign as far as world building goes, I’m writing a fantasy adventure… not a slice of life.

I attempted several times to rectify this, but each subsequent revision fell short.  I didn’t like having a progenitor villain for it’s JRPG feel.  I didn’t like having an external force suddenly show up and create a binary conflict for how much of a copout it always feels when it happens.  I tried villainizing a neutral character only to realize that he has no possible motivation to be the villain nor would he ever lose if he were.  I tried the classic kingdom vs empire angle only to get a few good characters and a woefully generic plot.

So I began reflecting on the genre to see what I was overlooking, and I saw a trend that puzzled me at first.   Over the last 25 years, The fantasy genre has gone from being glorified retellings of “The adventure” with tales of epic combat with hero vs monsters to a mix of political intrigue and noble houses vying for power.  Personally, as much as I enjoy the latter, I can only stomach so much of it at once, which is why as much as I enjoy fantasy, I don’t actually read that much.

As I studied the progressive growth from monster of the week to house politics, I realized this trend is not unique to fantasy.  Science Fiction echoes it at the same gradual frequency.  For an example, in the 90’s, as the D&D monster of the week trend began to fade in fantasy, at the same time Science Fiction began to shift away from the Planet of Hats trope towards the same growing political concepts as fantasy.  As the 90’s faded into the early 2000’s, the shift continued and now it feels like every series- fantasy, sci-fi or otherwise- has some degree of cloak and dagger politics whether it makes sense or not.  (As a sidenote, this is mostly because Sci-fi and fantasy are two branches of the same genre.  An example of this can be observed from looking at the Flash Gordon era of sci-fi, which is “Fantasy- IN SPACE!”)

On one hand, the change has lead to more involving, mature stories.  The shift away from Tolkien races which themselves are the planet of hats trope, towards noble houses of human lords with backstabbing and other political intrigue and realistic motivations has made the stories more personal.  “I want to kill this guy and take his land” seemingly carries more weight when said by a man than if said by an orc.  The Dwarves vs Elves “racism” prevalent in most fiction is really just a “planet of hats” way to depict real world racism in fiction without fear of people misinterpreting it as the author’s real racism.   Playing this trope comes at a cost: we fail to process the horror of the scenario because of the planet of hats effect – We would feel the horror more personally if it were human on human, and precisely for that reason fantasy has moved away from the planet of hats trope.

As for the monster of the week, modern fantasy tends to bank not on the cast’s fear of monsters, but on the cast’s fear of other men for the same reason.  After all, it’s easy to think of a monster as a monster, and simply leave it at that, but to take a man and reveal him to have monstrous intentions is more personal.  Objectively there’s no difference between a Dragon slaughtering women and children and a single man slaughtering women and children, yet emotionally as readers we aren’t affected as much by the actions of the dragon as by the actions of the man.  (Interestingly, historical mass murderers tend to be distorted into monsters in legend.  Consider how Vlad the Impaler’s legacy as a brutal leader created the mythology of Dracula.)

Having considered all of the above, I felt armed with a much better idea of the kind of scope I want for my world, but still hadn’t quite arrived at a solution.   It underscored that I need motivations that can be understood, and so that narrows things down to human and humanized concepts.   To that end I began visiting the different groups of characters and started thinking about personal motivations which would exist counter to my protagonists’ goals.  I took my various previous 2D attempts to come up with antagonists and simply asked “What does this character want as a person?” and arrived at a situation where I had so many directions to go I had to actually be careful which one I chose.

I did find I have to be cautious.  The trend away from monster of the week to political intrigue has made it much more difficult to stand out as a fantasy writer.  The line between the blaaaah of a badly done story and the “oh cool” of a well done story is dreadfully thin in the first place, but during the era of heroic fantasy, you could stand out with a good monster in a monster of the week story easily where today’s political intrigue is very hard to distinguish from other political intrigue.

To me, this tells me I must find a balance.  I think it very unlikely as a novice writer that I will create a political intrigue to rival the trendsetters.  I also don’t believe that a strong monster of the week setting will captivate the way it once did, no matter how much I would enjoy writing such a story.  The Bestiary I’m taking time to carefully construct is only one half of the story, the motivations of men make up the other half.  And that is how I will be handling the political side.  I’m not going to try to invent some sort of complicated political scenario for the sake of trying to craft a political drama, I’m just going to say “This guy wants this, that guy wants that”  and see where they clash.  Then embellish as needed.

At long last, I think I have an actual chance of getting this story moving.

As far as other life stuffs, I may ramble a bit in the “What are you doing?” thread tomorrow.   This last week was positively terrible, with little prospect of getting better.


FTVcraft, CNC Milling, illness, and so on.

Well, it’s been a little while.

Since I’m sort of drawing a blank on what I’ve mentioned here vs what I’ve mentioned in the “What are you doing?” thread, I’m living out the misadventure filled life of a bachelor since my family is out on a long vacation and left me as housesitter.

Naturally, I got sick while they’re gone and there’s a ton of work to do.  I’m over it at this point, but it was ill timed.

Fortunately, most of the really bad stuff is dealt with, but while it was going I didn’t really feel up to writing.

The first and coolest thing I have to ramble about is how fun the FTVcraft server is!  Nioki’s got a nice server going, and we all have interesting bases! ^_^  Minecraft is one of the best ways to kill time when you’re sick or stressed.  Daft and I are sharing the spawnpoint base and it’s turning out pretty nice.  He’s mastered Industrial Craft 2 power distribution and Minefactory Reloaded mob farming, while I’ve been all over the place with automation, storage and power production.  (We have a trio of 36 HP boilers that take a lot of work to max out)  Wedora makes a cool neighbor, too!

Modded minecraft is a strange thing, there are things I like about it and dislike about it at the same time.  Every mod has it’s own distinct “feeling” and every player will find it different, either liking it, disliking it, or indifferently regarding it.  For example, I don’t see much of a point in railcraft, but I loved the now(?) defunct Zeppelin mod, and Applied Energistics is one of those “I can never live without this mod ever again” mods.

Eventually I want to create a mod, but for now that remains little more than an idea that takes a back seat due to other priorities and just an unrealistic obstacle of Mojang not working on the Mod API at all.  (The Mod API might as well share a subtitle with a certain scabbard: “All is a distant dream”.)

This past Wednesday I ended up missing a milestone meeting for the mechanism I’m designing for someone.  I was on track when an accident trashed one of the screws on the CNC machine and my chances of making it on time both.  Trying to work out a recovery plan will be awkward.  The pressure is off for the immediate short term as they know what happened, but I still want to try to blitz that job to completion.

Working out a plan of attack has been interesting.  While fixing the screw will be easy, I’ve discovered I can actually do most of the work by hand, needing the CNC for only a very small, specific application I might even be able to do by hand if I come up with the right jig.  Given that the CNC machine has had difficulty milling plastic- The NEMA-17 steppers it has aren’t fast enough to move at the speed needed to properly cut the plastic- I will probably fix it then try to do as much as I can by hand rather than fiddle and futz with the machine.

This week’s primary task will be getting the equipment needed out of the garage and trying to re-learn basic carpentry.  This involves a lot of cleaning and organizing before I can even get the power tools online.

If I can get through this, then the last major obstacle to resuming work on my practice game is cleared, and from then it just becomes a matter of carving out enough uninterrupted time to work on it.  I’m especially looking forward to getting back to it thanks to a programming concept Daft introduced me to while working with Computercraft turtles, and something else I discovered a really cool website that visually displays the various popular methods of AI Pathfinding.  The pathfinding one is really significant since it represents one of the more intimidating and often under-developed parts of game design.

On the other hand… I still have a bunch of work to do.  Ah well.


Intermittent Part Failure

It’s been a reasonably bad week, but I’m really not wanting to vent about the work-related things that went wrong, so instead I’ll ramble about my computer a bit.

Parts failing intermittently are the worst parts to diagnose.

My own computer has been having issues for quite a while, starting late last year when I went to install a BD-Player and one channel of RAM decided it didn’t want to clear post ever again. I’d been having off and on problems with my secondary HD leading up to that, and when the RAM issue occurred, I decided it had to be RAM related.

Of course, That drive’s issues ended up not being RAM related, and on a glance at my Windows Event Log a few weeks later I found several thousand entries for HDD I/O errors.  A quick swap out later, I lost maybe one or two files which I have a backup of I haven’t gotten around to restoring.

Over the course of owning this system, one thing became increasingly obvious: Something is WRONG with it.   I think I finally pegged it down to something that the Asus Sabertooth line is bad about – dynamic overclocking.  Overclocking is a bit of a goofy thing in general, and I think the term has lost much of its meaning in recent years as manufacturers started building in “overclock tolerances” into their designs to account for user shenanigans.

I am also not a fan of overclocking, as I never really bought into the whole idea of spending on cooling what I could have spent on a faster CPU in the first place.  There’s a huge line of thought (And arguments) about what hardware is actually capable of, but your warranty is for the numbers on the box.   A general rule of thumb is that while your (hardware) may have started it’s production cycle as a more powerful chip, mass production of electronics is not the consistent process we like to think it is.

Years of computer repair have taught me that no two computer parts are exactly identical.  They may look the same, they may act the same, and run the same software…  But the longer you use them, the more each part develops it’s own distinct personality based on it’s differences and the ab/use you give it.  You can treat them like identical machines, but when those chips are built, they’re built with a rather dramatic fault tolerance and each chip tends to have things that work and things that don’t.  Chips that work but fail certain tests get repurposed down to lower powered configurations for use.  So your nVidia GTX Blah-80 may have started life as a nVidia Quadro that failed performance testing.

This fundamentally is the basis behind overclocking – You’re taking a gamble that enough of the higher end features of your given piece of hardware work.  If they don’t, you have a brick.  If they do, you’ve gotten a free upgrade that may or may not be buggier than IE 6.0 in quirks mode.

I generally don’t like taking that bet.  I push my computer to the endurance limit, but not the performance limit.  I don’t play Crysis or games that push graphics cards to their limits.  The two games I’ve put the most time into in the last five years are Minecraft and WoW, and those games use CPU rendering rather than GPU rendering.  The most intense thing I do to my computer- which I stopped recently- is run Google Chrome at all.  (Firefox tends to get a bad rap for how many gigs of RAM it uses to display a 320kb webpage, but Google Chrome is even worse.)

Speaking of Minecraft, that plays into the “Game test” diagnosis:  I stopped playing MC around 1.3.5 all the way until the 1.5 snapshots started coming out.  Up to that point, the only game that had given me issues was WoW with occasional visual artifacts.  (I haven’t even played WoW since January, anyway.)  When I started playing, MC started having issues and I wrote that off as being the snapshot.  When it went live and they were getting worse, I figured it was just me.  A friend talked me into playing Starcraft 2 a month or so ago, and to really prove that your system has something wrong with it, all you really need to do is run a blizzard product.

What do I mean by that?  Basically, Blizzard has their own way of doing things.  They made their first major foray into 3D before anyone else did, and they decided to stick with tradition rather than adopt standardized techniques.  This results in an unusual hybrid of “This is how we’ve always done it” with “Ooh, that’s awesome, let’s try using that too” that gives Blizzard games very intense hardware requirements for what they actually are doing.  In my case,  SC2 would act like my system didn’t have enough resources to run it for the first two games played, then suddenly it would be fine on max settings.

So I had a system that I knew was bad, Behaving erratically when I ran SC2, artifacting in WoW, crashing when I played Minecraft, had burned some parts in the past, and tended to need a reboot around the 1 week of uptime mark.   It also took an excessively lengthy amount of time to boot up by Windows 8 standards.

Something was wrong, but couldn’t peg down what exactly.  Then my RL friends invited me to play FTB with them and I finally was able to provoke a crash on demand.  After a day or two without a reboot, MC would crash on launch.  Thinking it was a mod, I tried vMC with the same result.  Reboot, and it would work for about 8 hours.  Since most of how I play MC is to automate machinery (A habit I picked up from playing better than wolves/better then buildcraft), I shrugged and said “okay, I’ll just leave you open and see if you crash, I don’t have a chunkloader anyway”

Sure enough, MC was fine until I closed it, then I needed to reboot.  So for several days, I just idled in my base, waiting on things like my Basalt cobblestone generator to fill barrels, trying to figure out this crazy mess of mods called feed the beast.

For the first time since I ran Windows 98, I was back to daily reboots.  That lasted about a week and a half before MC started abruptly crashing whenever Thaumcraft would do an aura node update.  At least I think it’s thaumcraft doing it, the only clue I had was a day or so ago when I crafted my first thaumcraft wand and discovered that the only corner of my base that I can regenerate Vis in is the same corner that causes the random mystery lag preceding an MC crash.

Then on a reboot, I got an nVidia Control panel error letting me know it had driver issues.

Some hardware tests that had gone without errors before now turned up that, sure enough, the other two sticks of RAM went bad, as well.  They still work, but are very unstable for anything other than basic web browsing.

Now for one last piece of info that perhaps I could have opened with, this is the second set of RAM this mobo’s gone through.  Having arrived back at RAM, I started reviewing why I might have been having issues…  and it seems this one is completely my fault for not reading fine print:  While this mobo says it wants 1600 mhz DDR3, It actually only runs at 1333 with an AI overclock to 1600.   Running actual 1600 mhz DDR3 ram in it resulted in some rather strange automatic timing adjustments, and it overclocked past that, even though I had manually corrected the timings when I first installed the RAM.

I’m quite amazed I got the life out of it I did, considering how badly I mismatched the memory.  Rather than try to doctor the system any further, I decided to just do a full upgrade.  I’m moving to a third gen i7, and a different board without as many “overclocker” features while still giving direct access to adjust timings and clock speeds if I need to correct a bad automatic detection.  I’m hopeful I won’t have to, given that I’ve matched the memory out to non-OC speeds as opposed to the theoretical top OC.

I’ve also decided to try the SSD plunge.  I’ll be running an SSD for my OS w/ a striped data drive array, possibly upgrading to Raid 5 later on.  I actually purchased 3 drives in anticipation of using raid 5 right out of the door, but I need to check to see if the motherboard’s on-board RAID is Soft-raid or actual hardware raid.  I suspect it’s soft-raid, and soft-raid 5 arrays apparently suffer terrible write performance.

If it is soft-raid, I’ll need to buy a hardware raid controller as an expansion later on.  Sata 6gb/s Hardware raid controllers are quite a bit more expensive than I’d like, so I’m hoping they come down in price a little bit.

With any luck and no shipping delays the hardware will arrive tuesday.

In other news, I got down to the local pet store to find that the 55 gallon tank re-stock last week arrived cracked, so I have to wait until it gets restocked.  Ah well.  Resupply is a mere setback.

Comments (5)

Hydroponics? Go Fish.

Whee… late again.  I need to start writing these a few days in advance w/ delayed publish.

My family finally made it out the door a week ago on their 5 month RV vacation, leaving me to house-sit by myself!  This caused a whole bunch of work to fall on my head.  It was stressful, but it has borne fruit in an odd way that’s relevant to what I wanted to ramble about this week!

One of those strange childhood dreams I’ve always had has been to get a Hydroponic garden going.  Some of my earliest childhood memories are of a tiny backyard garden my mom had prior to a comical incident involving my dad, some anti-weed fertilizer meant for the grass, and, well, that was it for fresh winter carrots.  Before we got around to replanting it, the Military sent us somewhere else and the new house had a yard so small there wasn’t a point to gardening in it.  Not long after arrival, one day in the library I noticed a book on hydroponics that had been left out.  The science was mostly above my 6 year old brain, but I got the basics and for some reason the idea of growing a plant in large gravel seemed cool, and I missed the fresh veggies/fruit.

My interest drove my mother nuts – I’d go out in the back yard, scoop up a random weed, plant it in an applesauce container and put it in a lego greenhouse.  She’d find it while cleaning and throw it out.  The next time I had applesauce for lunch, I’d do it again.  This cycle repeated for a few months, until I discovered the Deluxe Paint 3 animation how-to VHS tape and spent the next few years creating horrible stick figure animations, painstakingly copying NES game sprites by hand, and imagining a mode 7 RPG, since I’d just discovered DraQue and FF1.

Ah, memories.

Of course, as I grew up, my understanding of what was required matured.  The more I learned, the more my thoughts shifted around to “That would be fun… but…  that’s a lot of work and plant nutrients are expensive…”  It also didn’t help that my family has tons of crap and didn’t want to devote the space to a hydroponic farm, and we have no back yard to speak of, so no greenhouse is likely.

A few years ago, one of my friends introduced me to Aquaponics.  Where Hydroponics exists as a system you have to keep adding external elements to, Aquaponics exists mostly as an artificial ecosystem.  It accomplishes this by mixing Aquaculture (farming fish in water tanks) into the mix, using fish excrement as fertilizer.  The fish excrete ammonia, probiotics in the system convert it into a form useful to the plants, and a cyclical pump system pumps the nutrient rich water into the grow bed slowly over the course of a few hours.

Once the grow bed fills up with a target volume of water, it rapidly drains back into the fish tank.  This rapid cycling has the effect of letting the plants serve as a natural filter, so the water going back into the fish tank is essentially clean water.  At that point, you just need to feed your fish.  As I understand it with what I know right now, you can usually accomplish this by planting some duckweed in your fish tank, but you might have to eventually bring in some external fish food every now and then.

There are some great videos and resources for Aquaponics online, it has quite a few evangelists who are excited for it’s ability to grow food in a small footprint.  Take this video, for example:

http://youtu.be/Fm0-gnDpkLE   (edit: Can’t seem to embed this.  Hmm.)

A note – This person is using Koi because he lives in Australia, which prohibits the import of White Tilapia.  Quite a few proponents will advocate White Tilapia, which are quite resilient in addition to their ability to grow and breed rapidly.  These traits are ideal in farmed fish, but they’re also quite the pest if they escape a farm and get into a local river, as they can completely displace/obliterate a native fish population.

After years of telling me “we don’t have enough space”, “It’s too expensive” and such, my family finally decided my argument about healthy food’s cost was a good one.

And then this week, a windfall came in, one of my customers mentioned that one of the local pet stores has a sale on fish tanks right now.  So, I hope to get by one tomorrow to get a good sized tank purchased for getting started on a system.

My plan for my own system right now is to start simple.  Work with a single fishtank, a small growbed, get the waterflow working right, get some goldfish, seed, and maybe some pre-started plants to get things rolling.  To start with, I’m going to work with Lettuce given that I’ve seen some really impressive lettuce farms and it has a short growing time in hydroponics systems.  From there I’ll branch out into carrots and broccoli, learn how to grow set up a bed big enough for potatos, and eventually, my ultimate goal, is to get a Grapevine.  I love fresh grapes.  I live in a desert that imports grapes from California and they’re about to go bad by the time they get here. 🙁

For right now, I will be happy with Lettuce.  Eventually, once I learn how to prepare and cook fish, I will probably start a Tilapia fishery.  At some point, if really successful, I might even see if I can import some Ayu fingerlings.  I have no idea if that’s even possible.

Anyway, I think I’ve rambled enough!  Off to do some remote support work before my friends bring their MC server back up.  I just discovered mining turtles run on Lua.  This could be very, very bad for server lag.


The April Fool(ishness!)

Well, last weekend was a bit of a mess for me, and it took me a while to get my mood out of the gutter for how bad I felt.  Truth be told, I’m still kind of muddled, but I’m no longer in so much pain that I can’t think about other stuff.

Before I pulled a muscle last weekend, I had intended to talk about Aquaponics… but right now I’m inspired to just kind of review everything, and seeing as how some of it is pure foolishness, it’s appropriate that this post will be dated April 1st.  (One of those days I’ve never really liked, but there’s always some great jokes out of big companies, like this year’s Google nose, Blizzard’s “Every race is getting warhounds” announcement, Windows Blue… oh wait, Windows Blue wasn’t an april fool.)

For me, my April foolishness is mostly in thinking I’m about to get a vacation.  Realistically speaking, I’m not getting a vacation so much as time to myself: My family is leaving on a 5 month road trip in a few days, leaving me home to house-sit.   I’m not actually getting a vacation…   I have tons of work to do…I keep telling myself that.  I’m not quite sure it’s getting through.  *laugh*

I also am surprised to find that something I was sure of last year is actually wrong.  Last year I said that NaNoWriMo (national novel writing month) only happens once a year.  I had been getting E-mails for something called “Camp NaNoWriMo” for quite a while and for some silly reason had just assumed it was a novel writing seminar in a camp format without actually reading the E-mails.  I took a glance at one out of curiosity only to realize it was another NaNoWriMo event with a campground skin on the website.  They’re holding one this month and another in July, in addition to the primary event.

I want to take another crack at it, and had been trying to work to get my schedule cleared up so that I’d have plenty of downtime the first few days of the month to choose what I was going to write about and get started, but the more work I think I’ve finished, the bigger the snowball of remaining work really is.  Even if I somehow got rid of every last computer support task by the end of the week, I’d still have a game project, a software app, and housework to keep me busy.

Still, as foolish as it is, I might just try to write something.  I really need the practice at story crafting.  For as much as I feel my skills have improved with my last few writing efforts, it’s still only a drop in the bucket of where I need them to be.  My efforts to improve my writing have helped my critical analysis of stories, but the main gain has been in gaining a loose grip on how to plan a story’s pace so that I don’t have to guess if a section will be fast or slow as I write it.  No matter what I do with the writing, I’m not signing up for the april event, but I will probably sign up for July’s.

My programming goals are kind of a sad point.  The software app actually has quite a bit of of promise, more than any of the games I want to make.  It’s been on my list of things to do for a year, and I was given good reason to focus my code time on it last month instead of the game.  But, evidently I know more about making games than I do making information handling apps.  I plan to focus on the engine again while devoting a single day per week to the app and the learning it requires.  That way I hope to learn what I need to to make the app happen while I make the game a reality.

Honestly, the biggest April fool’s day gag, is actually that it’s already April.  it feels as if it should still be the 16th or so of march.

I’ll cut it off here, next weekend I’ll try to cover Aquaponics, unless something else comes up.

Edit: Oh how brilliant:


Random vs Luck: A Goal inspired by nethack

(And the template I was using didn’t have bullets.  amazing.  I think this one might be a better choice.)

Life is going better.  It’s got some up and down, but I’m back to coding.  This has me back to thinking about game design theory stuff.

One that’s been a discussion point more than a few times with a bunch of my friends is randomization as part of the gaming experience.

I like many others cannot begin to count the sheer number of times that I have been screwed by the random number gods.  It’s almost without saying that any time randomization enters the picture in a game, it becomes a luck based outcome.  If it’s an RPG, simulation or strategy game of some sort, you encounter the worst monster possible or a 99% chance to hit misses.  If it’s a platformer game or shooter, as you approach the edge of the screen a dispenser that has a random timer between shots will always choose the perfect moment to hit you, as if sniping.

In this sense, Randomness is effectively a synonym for luck.  But I don’t think it has to be this way, I think it just ends up this way out of both sloppiness and carelessness.  To demonstrate what I mean, I almost have to switch gears for a lengthy lead in:

One of the strongest traits I think a game can possess is uniqueness.  Each game should be a new experience of some form, or there really wasn’t much point to it.  Usually you only get this experience once per game, and everything is the same the next time you start the game, making a second play of the game a mere test of memory.

Making the same game give that new and unique feel more than once is an ambitious task, generally accomplished by either multiple difficulty settings, picking a different character, branching stories where each branch has a different ending, the player using self imposed challenges, having a competitive multiplayer feature, or randomized content.

While most choose to implement one or two of those, Randomized content is relatively uncommon – it’s easier to build more than one scenario than it is to build rules to make a multitude of scenarios by throwing dice.  One kind of game that embraces the challenge of creating random scenarios is a very specific subgenre of RPG: the Roguelike.   Many games will randomize to some extent – RPGs are fundamentally based on the dice rolling mechanisms of tabletop Roleplays, but roguelikes take it a step farther than most.

For those unfamiliar with the genre, it is characterized by being like the 1980 game Rogue, a text based dungeon crawler heavily influenced by Dungeons & Dragons, notorious for a learning curve that few games can match.  The game begins with you being dumped unceremoniously in the entrance to a dungeon either wearing crude, borderline useless gear or stark naked.  The dungeon is randomly generated and your goal is generally to get to the bottom/top.   Once there you might have to retrieve an item for someone or kill a god, and your journey is marked by many deaths along the way.  (While not a “pure roguelike”, a modern roguelike fused with arcade beat’em up action would be the Diablo franchise.)

And while your journey features many deaths, there’s a bit of a sting to it: Roguelikes generally feature permadeath, meaning once your character dies, that’s it.  Reroll and start from scratch.  Because the game is random, you are forced to memorize not a dungeon map, but to memorize the bestiary, develop strategies, and learn techniques for survival.

The roguelike became popular with a niche because it was skill rewarding.  If you learned, and played it carefully, you were rewarded by further progress.  If you were impatient and careless you were probably going to destroy your keyboard in frustration from having to start all over.

My introduction to the genre came years ago with Castle of the Winds, on a then relatively new 386, and it took a while for me to figure out that Castle of the Winds was not the same kind of RPG as Dragon Warrior and Final Fantasy.  (It was the traps and the D&D style  that always got my young and inexperienced self.)

More tame than most roguelikes, Castle of the Winds had rich graphics for the time, was relatively simple by roguelike standards, and did not permanently erase your save if you died, allowing you to roll back from a mistake.  Give it a shot if you’re curious about the genre- the author switched it from shareware to freeware some years after it had become irrelevant, and it should be easy to find a full copy for download.  (His personal webpage disappeared in a server crash late last year, it was available for DL there)   It doesn’t work under x64 versions of windows, but should run fine in compatibility mode under any 32 bit version of windows.  (WinXP in a VM is great for this.)

At the opposite end of the spectrum are intimidating monster games like Nethack.  Nethack is the epitome of Learning Cliff.  Hack was a follow up to Rogue very early on, and development was picked up and it was renamed “Nethack” long before the internet even became popular.  Nethack is still maintained and widely ported to this day as an open source software project.  It’s one of those games you almost have to play once, just to understand what the fuss is about.    There are also graphical mods and remakes available, such as Vulture or just “tileset” versions that are the same Text interface with 8-bit tiles layered overtop.

To get a grip for what I mean by “learning cliff”, some examples:

  • you can write magic words in the floor with everything from writing in dust with your finger, using ink or blood with a pen, or using a hammer and chisel.  These magic words have to be learned by simply finding the writings of previous adventurers on the floor and guessing what the missing letters are, as letters fade with time.  These words are located semi randomly (random chance to find them in certain areas) and you almost have to learn the entire dictionary of magic to beat the game.
    (Edit: Apparently, I might be mixing up games.  I went looking at spoilers last night and either I’m not looking at the right spoiler, or only one engraved word has a magic effect.)
  • Status ailments can be cured through a multitude of ways, some ingenious, some obvious.  The most simple being to pray to your god.
  • I might be remembering another roguelike and not nethack, but I believe it’s nethack where if you pick up a basilisk corpse with your bare hands you will turn to stone.  At the same time, you can also put on gloves, pick up the corpse and use it as a flail.  It petrifies your gloves, but you now instantly petrify any enemy you hit!  Enjoy your collection of dragon statues you can’t loot!
  • A mid game tactic is to leverage different kinds of magic against your junk items to transform them into different items altogether.

And that’s just some highlights. The other side of the game is actually kind of odd: Nethack is fun to lose.  There are so many ways to die in Nethack that you will rarely die the same way twice.  Some are comical, some are not, my favorite tale of woe comes from the time I triggered a cursed treasure chest in a shop, was blinded, tripped over a boobytrapped chest which exploded, injuring a level 25 shopkeeper who upon being damaged, promptly crushed me in one hit.  (There was a little more to the domino effect, but I was laughing so hard that only those highlights stuck in memory.)

My experience with Nethack is why I believe procedurally generated (read: random) content extends a game’s longevity.  You will find many posts all over the internet from people who have been playing nethack for years but “just recently X years later beat it”.  (I saw one blog post where a guy said “20 years later, I finally beat nethack”)

However, roguelikes are a curious mix of random and luck.  While being completely random, they aren’t as luck based as you would think – usually the right knowledge, patience, and methodical play will minimize the luck component.  While you explore and learn, your early runs are  mostly luck based, but as you die and learn ways to defeat and overcome the random number god, the randomization itself keeps the game feeling new, exposing you to a mix of old and new challenges even though you’re on your umpteenth dozen run.

That form of random content inspires me.  While I don’t believe most roguelike mechanisms “as is” are fit for mainstream gaming (I fully recognize most people don’t have the patience for the more hardcore roguelikes), I love the goal of a game creating it’s own balanced content to make replays fun.  I also like the idea of people “learning how to survive” and being exposed to new and different challenges instead of “memorizing the game that never changes.”

Another place where modern gaming has worked to mitigate the luck part of randomness comes from leveraging statistics to normalize your dice rolls.  Under a normalization scheme, a time unit is chosen and used to guarantee quoted chances.  If you have a 20% chance to crit, and attack 30 times a minute, 6 attacks per minute will crit as an enforced chance.  This can be accomplished a number of ways, and it takes away from the feeling of being cheated by random chance – the enforcement of statistics makes you do exactly the damage you expected to.

Statistical normalization is not a new concept.  Some tabletop roleplayers, convinced the dice are really out to get them, who always roll too low to accomplish anything, will replace their dice for a deck of cards or a bowl of numbers.   The idea is simple.  A deck of 52 cards is effectively a 12 sided dice with an equal number of chances for each result.  There are only 4 chances to roll a 1, equal to the number of chances to roll a 12.  You will accomplish the exact same statistical average as with dice, but where dice are random, there is a predictable pattern – the same pattern that blackjack players use.  You can count cards and make realistic risk assessment.  No more 1’s in the stack?  You can take more risks, etc.

I can’t help but think there must be some way to unify randomization and skill to create a randomly generated game that doesn’t really require luck.  Perhaps this is just a naive goal, but this is something I intend to work on and flesh out as I work through projects.  Again, I think that “new” and “unique” feeling that each game has on the first playthrough is important.  I’m down for an achievement run as much as the next guy, but if a game can keep showing me something new, it’s good.

Sadly, everything I’m working on right now is static.  I’m working with baby steps while I ponder carefully over long periods of time and I hope the time will give me a chance to arrive closer at some ideas to achieve that goal.

If nothing else, I need more time to learn how to use Randomization in general.  After all, Random is something that has to be done well – if your random pool is too small and gives predictable results…  It really isn’t random anymore, is it?


Planning a Disaster Recovery

Well, February was a lost cause for me, between the flu and three emergencies that came in that required me and not the old man.   I fell behind on everything, and ended up in emergency “I put out fires” mode until this week.   As bad as it was for me, it was almost worse for one of my customers.

Since I haven’t updated routinely in a while, I’m glad to get back to weekend updates.  That aside, I feel compelled to share some of the knowledge from the most labor intensive project, some of the planning and the things learned may serve to be useful for people who have data to preserve, although I think most of it is common sense and I’m probably preaching to a choir.  Forgive me if I oversimplify or fail to simplify, both are possible given the technical nature of the topic:

On Feb 4th, one of my customers had his office broken into and his Laptop- his primary work computer- stolen.

Since this customer is in the financial industry, he was required to have a disaster recovery plan for reestablishing operations within 24~48 hours of a disaster. (I’m not sure which set of rules he falls under, or I’d reference them.)  We updated his recovery plan about 4 years ago, and about eight months ago we helped him obtain a new office computer as the old one was dying a slow death.

Disaster recovery plans are interesting things.  Fundamentally they boil down to coming up with a good answer to the question of “How do I not lose anything?” and on the computer side of things, redundancy is the answer.

In the case of my customer, I created a minimum of four levels of redundancy in the form of a cloud backup service (Insert Carbonite sales pitch here) and a local network backup to another computer in his office.  This is a fairly common and generic plan, and it probably falls short of what the industry considers “best practices”, but I’m sharing it since it’s easy to set up and is relatively inexpensive.  If you have a desktop, a laptop, and are willing to invest in a cloud backup program or purchase extra space on something like skydrive/dropbox/etc, a little bit of time will let you implement the same or a similar plan to protect your own info.

The logic goes something like this:

  1. In the event his system failed, he could swap to the backup system while purchasing replacements.Technical note – The backup in the implementation we used is provided by having a second windows computer with a shared folder and using windows sync center to synchronize the contents between the two computers over the network.  This process is fully automatic with the exception of “collisions” – situations where the local copy and remote copy are changed, or one is deleted.  These have to be resolved manually, and there’s an interface for resolving that that pops up down by the system tray/notification area.There are other third party programs that will do this service as well, a few of which are able to use Volume Shadow Copy to synchronized locked files like outlook PSTs/OSTs.  These programs are generally not free, although some offer crippleware/trialware versions.
  2. If the backup system fails, he still has cloud backups to rely on while the backup is replaced.
  3. If the cloud service is shut down, experiences an outage, or freezes his account he still has local backups.  In this case, I happen to know that Carbonite keeps redundant copies of information in more than one data center, meaning the technical side is unlikely to experience outages.

This specific incident fell under 1.  When the call came in, before we realized how much was required, my dad went out to the customer’s office to handle it himself.  He discovered that the thieves had left the backup computer alone, and quickly shifted it over, reestablishing operational minimums immediately as virtually all the information was already there.  I was pulled in to get the CRM software reinstalled and recover some minor stuff that couldn’t be marked for synchronization with windows sync.  (Databases that employ file locking are a pain, more on that later.)

Once we had basic function restored, the curveball that caused the majority of the work came: He wanted to take the opportunity to update all of his computer use habits and more forward on cloud adoption as his industry’s periodicals are emphasizing taking advantage of the cloud.  We spent the next 4 weeks improving the recovery plan,  purchasing replacement equipment and software, and fixing the hiccups that inevitably come from upgrading all of your 5~10 year old software at once.

Some useful observations from this process, generalized:

Consider what kind of backup you need.

 While automated cloud services are great for most things (For example, they met all of my customer’s needs), occasionally you will need a backup where you can roll back to an earlier point.  Most cloud backup services will not offer incremental rollback, and if they do it will rarely go back farther than 30 days – they’re doing good to keep ahead of their customers’ CURRENT data requirements.  For those files where revisions matter, revision control software like Git can be a lifesaver.  (Git is also not the only of it’s kind, just the most popular)

Revision control software is typically used by programmers to keep track of their work, so if they break something that they can go back and see what it looked like before they broke it.  While Git isn’t intended for backing up personal data it works remarkably well in that role.   As Git is intended for programmers, it might be a little hard to set up your own private git server if you aren’t one, but there are some nice front-end tools for it and some great guides on using it.  A possible remote backup strategy might be using a cloud service to back up your Git repository, or subscribing to a closed-source git hosting service.   That closed source note is important.  Most of the Git hosting options you can sign up for are not private.  Verify you can keep private what needs to be private before you start using something like Github.

When in doubt, you can always fall back to the tried and true practice of creating your own local incremental backup.   Most classical “backup to CD/DVD/tape” software will feature an “incremental backup” option.  While not as convenient, it does work and will give you a fallback option, albeit with greater amounts of nannywork.

Beware of any database driven application that you are trying to backup with automated cloud backup services that simply backup files.

In particular, anything that uses MSSQL or MSSQL Lite seems to be particularly vulnerable to this, but MySQL, Btrieve and other variations of databases might have similar issues: there’s a resource conflict that occurs when the automated backup service and the database service both access the same file at the same time.  Certain programs are able to use Volume Shadow Copy to touch “in use” data without triggering a conflict, but it still doesn’t work very well.  You can usually identify these programs because they either say “installing sql” as part of their initial setup, or will just stop working when you add the data to your cloud backup program’s list of things to back up.  They also might throw a fit if you encrypt them with bitlocker or the like.

Database driven applications in general have their own backup process.  In the case of most end user programs, they feature a menu option for creating a manual backup.  For actual server based database tools, there’s typically instructions somewhere on the internet for using a database export option to create a backup, and often ways to automate it.

Make sure that what you’re trying to back up is actually storing it’s data where you think it is.

There’s more than one way this common problem can rear its head.  Verify that you’re backing up the right files by checking for Software data backup/maintenance instructions on product websites and forums.  There’s also utilities out there to help with this, although I couldn’t tell you much about those.

Besides just failing to back up a file you can end up restoring data to the wrong place or in the event of having three or four versions of a file, simply restore the wrong version.  The “last changed” date also may not be correct, which is the issue I ran into with a particularly terrible CRM program- the software’s “data file” is nothing more than an XML document specifying the folder that the actual information is stored in, and so it will only show the date the original file was created on, while other files in subdirectories will show the correct date.  This is not uncommon with database driven applications, either.

Other things to be mindful of are the C:\programdata\ folder and the (user)\appdata\ folders.  Lots of files end up in those folders, usually they’re not data so much as user settings and temp files, but some major software hides it’s data files there, such as Firefox, Chrome, Outlook, Minecraft. etc.   Minecraft players will take note that their lives can be summed up by the size  of the (user)\appdata\roaming\.minecraft\world\ folder.

Some software from the Windows 3.1~XP era are also notorious for saving data inside their program folder or straight out of the C drive, but this is not possible if you are using UAC and decline to grant a program administrator rights.  The go to example here is old copies of quicken, which would default to storing all of its information in C:\quickenw\.  If a program like this lets you choose where to save, save it in your user folder to simplify things.  (This even is good advice on non-windows operating systems, the only thing all the operating systems agree on is that a user’s user folder is his to do with as he pleases.)

When recovering, verify data integrity THEN upgrade applications.

It’s an easy thing to have a data file with corruption issues creep along unnoticed for years because it doesn’t affect the version of software you’re using, but then all of a sudden when you go to upgrade, it throws all sorts of errors.  It’s a very easy mistake to install the latest version of a program and upgrade your restored backup all in one go, only to end up with unusable data that you blame on a bad backup.

This one has an analogy in cars – You have an old car, it runs good and you never have problems with it, lend it to a family member, they experience all sorts of problems with it because they’re expecting something different than what they get.  It’s the same with different versions of a program and the data they expect.  If it expects something different than what it gets, sometimes it will just say “I can’t upgrade this it’s corrupt”.

If there’s something wrong with the data, be prepared to run in circles while you figure out ways to generate a clean copy for your software.  If the software doesn’t offer a data repair tool (most do), A common and easy fix is to open it up in the old program and create a manual backup/export file, if the application allows for it.  It doesn’t always work, but many times it will.

Plan for new hardware before recovering from a failure.

If you are integrating new devices at the same time you’re restoring data, Plan the order you set things up in advance before you start restoring data to minimize complications.In the case of my customer, he made the decision based on his office building’s insecurity to relocate his local backup computer from the workplace to his house, requiring a rework of his backup implementation.  The solution we chose was to install skydrive on both computers to sync them through the cloud.  A similar cloud service would be required if he had chosen to add a Tablet to his workflow, depending on which kind of tablet.

Implementing earlier than later allowed me to make the experience appear seamless,  installing skydrive on his new computer in my workshop before delivery and allowing me to sync his data overnight on 35 Mb/s internet rather than 7 Mb/s internet in his workplace.

You can usually save yourself some time or work just by doing a little bit of planning.  Still, don’t forget to be leery of running upgrades from the start.

Don’t buy an upgrade without planning for the upgrade after.

When upgrading or replacing obsolete software during a recovery, be careful to choose software based on how progressive the company’s adoption of new technology is.  Cloud and Handbrain (Smartphone/tablet) adoption is the current trend, and at the moment it’s almost impossible to tell what tomorrow’s trend will be, but it’s important to keep an eye out for trends while they’re still optional.  Many software companies will not survive the transition into the Handbrain era, others will bend over backwards to support every platform that has any semblance of mainstream implementation.   (And sadly, it has been decided we’re moving into the handbrain era, regardless of if that’s actually the right choice- that’s another rant, tho’.)

My personal approach to this is to identify the things that would be important to have accessible on the go and look for companies trying to fill that need.  Most people don’t want to fight with a touchscreen input system for something like word processing, but would be happy to see/change their schedule on the fly.  The more convenient something would be, the more likely someone is to attempt to sell it.  If you choose wisely, you can enjoy these conveniences, if you choose poorly you could be looking at everyone around you thinking “I need to get that program…

On a related note, keep a saved wishlist of parts with a vendor that meet your technical requirements, and update them every 6 or so months.  This way if something fails you don’t have to go shopping around, just verify that your parts list is still current and place your order.

Keep a local copy of your info.

When choosing cloud software, always look for a provider who allows you to keep private backups.  There is very little as frustrating as losing all of your work to an account closure.

This is one reason why I like the cloud services that sync data to your harddrive, such as skydrive, google drive, and dropbox, as opposed to straight SAS software with no local copy.  If Microsoft were to arbitrarily decide a file somehow violated their licensing agreement for whatever reason, there would still be local copies.

If you take most of this into account, you should do pretty well at protecting data and knowing what you need.  Now a short list of things to avoid when designing a recovery plan:

Excessive paranoia about security.  

I don’t want to get too in depth on security here because it’s a complicated topic  and could easily take this post from 3k words up to 10k and beyond.  And that’s just going through the highly plausible list – if you review every possible, every imaginable case you could be dealing with security forever.  Building a plan that’s “Good enough” for your specific purpose and features easy to implement damage control options is generally superior to making a perfect plan that has multiple layers of encrypted backup stored in five or more locations that never touches the cloud.  Going over the top is like  the Scooby Doo antagonists and their elaborate schemes- in the end, something will happen to your perfect plan and it’ll be the fault of those meddling script kiddies.

That’s not to say that security is a bad idea.  There are some very nice folder encryption tools that are available specifically for encrypting your dropbox or skydrive folder.  Just keep it simple.   “I have a program to encrypt this and I keep a backup of the decryption key in a secure place” is an easy plan to implement with a minimal amount of work and expense.  Two factor authentication is also slowly becoming the new norm.   (I strongly encourage you to turn on two factor authentication if you’re willing to put up with it.)

Generally speaking, the information you’re storing dictates the level of security you need, and some information should simply not be stored digitally at all.  Most files on a computer are not worth encrypting.  Sure, it might be embarrassing if someone hacks your computer/cloud account and your vacation photos end up on reddit, causing your derpy tourist moment to become a new meme, but that’s not going to obliterate your life the same way it would if that hacker discovered you’ve built what to him is the ultimate identity theft kit in a Word doc.   Bank account numbers?  Social Security numbers?  Credit card numbers?  Scans of your birth certificate?  I personally wouldn’t keep them on a computer, but if you do, that data does need to be encrypted.

All that time spent making a perfect plan?  Could be better spent combing your computer and cloud services to make sure you haven’t left sensitive information stored in an insecure place, such as a PDF/doc/jpg file or in your webmail inbox/outbox, or just spent memorizing a password longer than 6 characters.  (Anything important really deserves a unique 16+ character password, and, well, XKCD’s joke on the subject that almost deserves to be mandatory reading, because I think everyone loses sight of how little it takes to build a long password that’s easy to remember.)

Relying on technology in a way that introduces a sole point of failure.

I’ve emphasized redundancy earlier, so this should be redundant by itself, but any sole point of failure is bad.

The thing that made me think about this one is probably a bit more obscure, and I haven’t seen it in years, but years back I had a computer with RAID Mirroring that used a certain kind of proprietary RAID controller.  More specifically, the kind where you can’t read a harddrive without it being part of the RAID array.  This isn’t quite the redundancy you think it is – Sure, if a drive fails you can swap it without a system outage, but what happens when the controller fails?

For a more down to earth sample, a common mistake is to have RAID Mirroring and because your data is mirrored, you don’t think you need to do farther backups.  In the event of common destruction incidents (Fire/Lightning/theft) where the entire computer or building is obliterated, if you’ve failed to have an offsite backup (cloud service, tape drive, hotswap HDs, rotating USB drives, etc.) you’ve lost data.

A less common but frequent mistake is to use encryption and fail to keep proper backups of your key.   If something happens and you can’t gain access to your key, it doesn’t matter how many backups of your data you have, you’ve just lost all of them to a single point of failure.  Your key backup also falls into a special category where it does require some paranoia to properly secure.  That is to say, you shouldn’t keep it on your computer at all.  If you back it up in a cloud service, it should have two factor authentication enabled.   If you back it up on USB sticks you should back it up on more than one and store them in an appropriate place, like a safe.  If you have a safe deposit box, keeping one USB drive/CD/etc. there along with a paper copy of the key in a legible font at a good size would also be a good idea.


Well, that was long, but hopefully helpful.  It was also by no means exhaustive – there’s no end of information on the subject.

Now, to get back to programming!  😀

Comments (1)

« Previous entries