Monday, December 22, 2014

Video Game Photography

As games continue to become more realistic, there is a new niche for video game "photography".

This is where you take a screen shot as if you were shooting with a camera. I apply the rule of thirds, make sure everything important is in frame, make sure the image tells a story and evokes an emotional response.

Here are some sample shots from games I've played recently:

 Bioshock Infinite

 Half Life 2

 Remember Me

Vanishing of Ethan Carter

I may play around with taking them into Photoshop and applying some of my tricks.

Friday, December 19, 2014

Our Christmas Movie Schedule

I went searching on google for the best Christmas movies. Hugely disappointing and annoying lists were returned. So instead of relying on google for help...

I've put together a Christmas movie playlist from tonight through to the 24th.

Some of these I haven't seen before and some are family favorites. The Grinch is always the last thing we watch before Christmas.

December 19th:

Santa Claus is Coming to Town

The Santa Clause


December 20th:

Frosty the Snowman

Miracle on 34th Street


December 21st:

Rudolph the Red Nosed Reindeer

It's a Wonderful Life


December 22nd:

A Charlie Brown Christmas

A Muppet's Christmas Carol


December 23rd:


Buddy's Christmas Musical


December 24th:

Polar Express

How the Grinch Stole Christmas

Wednesday, December 17, 2014

Project Tango Available for Developers

I got an email to purchase a Tango this morning.

I placed an order. Let's see what I can do with it...

Here is a prior post on the tango:

When I get it I will do a detailed unboxing of it.

Monday, December 8, 2014

Half Life 2 for the DK2

Half Life 2 for Oculus DK2

So you've got the DK2 and are itching to play Half Life 2? Well... put down your beer. You've got about 15-30 minutes of work to get it all ready to go.

These steps are a succinct visual walk through of instructions and comments found here:

Download Oculus SDK 0.4.4 Beta (as of 12/8/2014)
I was originally using an older version of the beta and Half Life 2 wouldn't recognize the DK2.

Turn on the DK2

Update your DK2 firmware

Put Rift in extended mode
Half Life 2 does not work in direct HMD mode.

Set the monitor resolution so that the frequency is 75hz
If you don't do this, you will get judder in the game. It makes it unplayable. Finding the right resolution that supports 75Hertz may take a while. I had to go all the way down to 1024x768 before I found a resolution that worked.

Enable Half Life 2 beta
Right click on the Half Life 2 game in steam and it will open this dialog. Go to the betas tab and enable beta updates. Half Life 2 will download new stuff when you close this.

Add launch parameters
Half Life 2 must run at 75 Hertz so there is no judder. You need to pass a few launch options.

Enable Virtual Reality 
Within Half Life 2, go to options and enable virtual reality mode. You will also need to run in a window.

Disable Motion Blur
Turn off the motion blur. It can be found in video - advanced.

Enable Developer Console
Turn on the developer console in the keyboard tab.

Set refresh frequency
Open the developer console by pressing the ~ (tilda) key when you are at the menu.
Enter this:
fps_max 76

Enlarge Camera Tracking Bounds
The tracking camera's default boundary is very tiny. Lets fix that.
With the developer console open, enter this:
vr_translation_limit 100

Start Virtual Reality Mode (May require restart of Half Life 2 to see it)
You should be good to go. Start up Half Life 2 and enjoy. If you don't see it you probably don't have the DK2 on, its firmware is old or you don't have the latest Oculus Run time.

Side Note:
developer console settings must be re-entered every time you launch the game:
fps_max 76
 vr_translation_limit 100

Monday, October 27, 2014

To RAID or not to RAID...

For the last week I've been struggling to get my RAID-6 array back up and running. This is the second time I've had major issues with a RAID and I can tell you... it had me sweating bullets. I've sorta had a "come to Jesus" moment with my RAID array and I am looking to eliminate it with an alternate solution.

Here is my current RAID-6 setup:

This is a straightforward raid solution. 8 drives in a RAID-6 configuration where 2 drives worth of recovery are available   
What a RAID promotes is laziness in backup. You may have the best intentions but I would bet that after years of use, you will slack off of backups   
Then when you aren't paying attention it stops working and then the nervousness kicks in:   
1    How long has it been since the array has been backed up?
2    What will I lose if I can't get the array back up?
3    Oh crap, 2 drives are out of the array. If I lose one more…
4    And… a lot of curse words if it isn't coming back up.
1    The drives are one file system. No special considerations necessary for type of data
2    Can handle 2 drive failures before data is lost
1    If the Array fails (3+ drives are bad) all remaining drives are useless
2    Mounting a large raid file system takes 5-10 minutes
3    Adding a drive back into the array takes 1-2 days to complete
4    Regardless of the operation (read/write), all drives are hit to complete it
5    Backup drives can not be hot-swapped into the array. Data must be copied off them
6    The structure of the backup drives does not match the structure of the array
7    You need all the drives for your space right away even if half of the space is unused for years
      > NOTE: You can grow an array but it is unlikely you would do this
8    All drives need to be the same size in the array. Some can be larger, but the extra space is lost

Here is my new/proposed no-RAID setup:

This is my new solution. I will cover my rationale for exactly how I came to this conclusion later       
Components of the solution:       
1    Constantly changing data is dealt with separately with a glacial or cloud backup (documents)   
        ie: I will not be putting constantly changing data on this server.
        I will be keeping this data in a cloud or glacial back up
2    Once data is added to a drive, it never moves.   
3    When a drive is full, it is never touched again   
4    The drive that is currently being added to is backed up nightly via rsync   
5    When the current drive is full   
      a    The drive is never touched again
      b    The backup is taken out and a new backup is put in place
      c    A new "current" drive added into the enclosure
      d    A secondary backup is made outside the array of the latest full backup
      e    The secondary backup is stored in a different/safe location
1    Regardless of how many drives fail, the remaining drives are still useful   
2    Adding a backup drive into the enclosure immediately makes the system fully functional   
3    Only the drive with data is hit for read/write   
4    Likely, the latest drive is hit the most and the older drives remain inactive extending lifespan   
5    The backup drive exactly mirrors the file structure   
6    Backup is automatically handed by rsync   
7    There is more space available in the enclosure   
8    You only need new drives as you use up space   
9    New drives can grow in size as new drives become cheaper   
10    This approach encourages/enforces backups   
1    Data is partitioned by drive. This is not really a big deal   
2    This is slightly more manual in nature (rsync versus raid recovery)   
3    Finding a specific file may require looking onto multiple drives based on how organized you are   
4    A tiny amount of space will be unused on each drive when the latest file won't fit onto it   
5    This may require a few more drives.

Exactly what is stored on the file system?           
    You have 2 classes of data:       
    1    data that costantly changes   
          These are documents, a personal database and a personal source repository (< 1% of space)   
    2    data that never changes   
          audio, images, videos (> 99% of space)   
When to use a RAID?           
    If the contents of the file system are out of your control, by all means, use an array       
    If the majority of your data changes (large database), use a RAID       
    If you need to store something that exceeds the size of any one drive, use a RAID       
    Otherwise, I would suggest a RAID is overkill and does not provide the backup you think it will             
Unchanging data           
    Audio, Images and Videos never change.
    This is a very important consideration. If you are like me, that is 99.9% of your data.       
    No video will ever exceed 3TB. Once I put a video in place, it never moves.
    Why exactly would I want a RAID?       
Raid != Protection           
    A raid does not provide protection.
    If your drive monitor stops working or there is corruption in your array, you are screwed.       
    I say this this from practical experience.
    It has happened TWICE. Turn your back on a "smoothly" running array and it will fuck you.
    This is the LAST thing you want to hear when coming in from yard work:
    "dad, xbmc isn't working anymore for mom and me"       
How valuable is your data and your time?           
    Do you have a solid backup policy in place? This is your home btw. I highly doubt it.       
    Even if you have the data in some form somewhere, how long will it take to reconstruct it?
    How valuable is your time?       
    How much of the data can not be recovered?       
    How much time can you afford for your system to be offline while you recover data?       
    Who is affected by not having this data for weeks?       
Having a drive organization strategy           
    After many years of data hording, I think static data falls into these categories:       
    1    images   
    2    audio   
    3    video (you may choose to break this into a few subcategories)   
    4    software   
    5    pdfs   
    My intent is to have these same directories on each drive regardles if any data resides in it       
Additional thoughts           
    If you never expect a file to have the same name across drives you could write a nightly
    script to add symlinks       
        These symlinks would go from each drive onto your main linux OS drive
        Having the same specific directory structure on each drive would make this pretty darn simple   
    Give yourself a little wiggle room on each drive       
        If you use a video client like XBMC, things change over the years on what they support   
        You will likely have nfo files and/or custom dir structures for XBMC to recognize your files.   
        I have custom code I've written to rebuild these based on the files.

Thursday, September 11, 2014

Bungie's Destiny

I bought Destiny several days ago and started playing it last night.

Having built a game I have a whole new appreciation for just how much work went into making this thing. Cloth, detailed characters, gigantic maps, rpg style leveling, multi-player. There is a lot of stuff in this game. Of course, for half a billion dollars it better be good.

I chose to play an awoken hunter who specializes in precision distance shots.

I like the vibe of the game. It feels like an MMO Mass Effect RPG.

The map where you select missions looks a lot like the animated cartesian map from the animated Sinbad movie:
Destiny map

Sinbad's book of peace

I'm not sure how much time I will have to play it in the evenings but it will definitely become my morning treadmill workout game.

UPDATE - 09/30/2014

I've been exclusively playing Destiny since it came out. Hit a wall at 27. I've been there for about a week. I need an extremely rare material called Ascendant Shards to level up. I have 3 exotic weapons and are working on a bounty to get a 4th.

Wednesday, September 10, 2014

123D Catch

123D Catch by Autodesk

I just installed this application on my Nexus 4 phone. It allows you to take multiple photos and turn them into a 3D object. I'm going to try this out this week and report back how well it works.

You can download it here from the Autodesk store: