My House is for Sale!

01

I know, I know. Leveraging my personal blog for this... :) I'm selling off my house in Saint Cloud, MN and would like to invite anyone in the area to take a look!

Its a beautiful 4 bedroom house that's been recently renovated. I absolutely love it and wish I could just pick it up and drop it down in the Cities. Alas, I can't. If you're in the Saint Cloud area and looking for a new home, I highly suggest taking a look at mine.

You can head over to http://houseonpattison.com for more information! Take a look!

GitGutter - Get Git in Your Sublime

Url

Aaaaw yeah. Thanks to The Changelog for the posting about this. GitGutter is an awesome little Sublime package that will display git changes in your sidebar. This definitely helps you track down what you've been changing and where you may have accidentally an additional space.

If you're on Windows, be sure to point it at your installed git binary (because it's probably not in your PATH). Go to Preferences -> Package Settings -> GitGutter -> Settings User

{
    "git_binary": "C:\\Program Files (x86)\\Git\\bin\\git.exe"
}

A Picture

Issues Upgrading Old Rails Apps to Ruby 2.0

Logo

Ruby 2.0 was recently released along with a bunch of new features and performance improvements. I was anxious to give all my applications another once-over and get them running the latest version of Ruby.

For the most part, it went swimmingly. The particular versions of Rails I was using on some older apps didn't have a compatible version of Capistrano, so I went whole hog and updated all the gems when upgrading - I don't use a lot of gems for critical functionality

Twitter Bootstrap Gem

I ran into a few issues along the way; the largest surrounding Twitter Bootstrap Gem. So, the latest versions (compared to my admittedly old Rails apps) started to use less and totally revamped the stylesheet formats. My first attempt at running after upgrading was met with:

“cannot load such file — less”

oops! I wonder why... a little googling yielded that I needed to now add:

gem "therubyracer"
gem "less-rails"

to the Gemfile. Why those aren't listed as dependencies; I don't know.

Passenger

Passenger hasn't released a stable version that supports Ruby 2.0 yet. Be advisted; you will have to run Passenger from git. You can follow the helpful instructions from riverlook over on Github to get this up and running:

git clone https://github.com/FooBarWidget/passenger.git
cd passenger
gem build passenger.gemspec
gem install passenger-3.9.5.rc3.gem (or type your actual built gem name)

Maximizing Space in Google Charts

418147_3857164637123_2122078851_n

Its funny, I've probably spent a full hour trying to track down how to remove margins, padding and generally make Google Charts use 100% of the available space. After struggling, googling (ironic, yes?) and generally grepping Stack Overflow for answers I finally figured it out... you have to specify the chartArea object. What's hilarious though, is after all this searching I found out the Google Charts has a default "theme" for this. Awesome.

var options = {
    'title': yourTitle,
    'width': '100%',
    'height': 350, 
    'chartArea':{ left:0,top:0,height: 350, width:"100%" },
    'hAxis': {
        'textPosition': 'in'
    },
    'vAxis': {
        'textPosition': 'in'
    },
    'titlePosition': 'in',
    'series': [{
        pointSize: 5
    }]
};

Paperclip on Rails 4

Png

So, you've dipped your toes into the Rails 4 waters. You've been enjoying developing your shiny new toy on the bleeding EDGE of things and are ready to start attaching things to your toy. Paperclip is one of the most popular gems for Rails that allows SANELY attaching files (usually images) to pieces of data in your database (the thumbnail on this article for instance). There's a little snag though; the current stable version of Paperclip doesn't support Rails 4.

Fear not, however! For, through the powers of open source and Github; someone has posted a patch that's gotten pulled into the mainline branch. So, you're already gutsy and running EDGE Rails; you'll have to run EDGE Paperclip too!

Its pretty easy to boot. In your Gemfile, instead of just specifying

gem paperclip

specify

gem "paperclip", :git => "git://github.com/thoughtbot/paperclip.git"

instead. Oh, and yes; you could easily figure out how to do that from the docs. What's harder to figure out is that when you encounter:

wrong number of arguments (2 for 1)

with Rails 4 and Paperclip; its because you aren't running the bleeding edge Paperclip that has the fix. Enjoy your Rails 4'ing!

Really Simple Nginx Rails Virtual-Host

Nginx

Getting a Rails server up and running on your local box is usually as easy as "rails server". Getting it up in production, though; usually entails getting Nginx setup in the process. Setting up a Virtual-Host on Nginx isn't hard at all, but sometimes tracking down a simple demonstration of it can be. Below, you'll find a demo configuration for the Virtual-Host that's running this site. Just throw it under the server block; and you're done. (Sure, you can abstract it out into a /etc/nginx/sites.enabled sort of things; but should your box really be hosting that many sites that you need to manage them that hardcore?)

server {
    listen 80;
    server_name phantomdata.com;
    root /where_ever_your_site_is_stored;
    passenger_enabled on;
    access_log /where_ever_your_site_is_stored/log/nginx_access.log;
    error_log /where_ever_your_site_is_stored/log/nginx_error.log;
}

Oh, you're asking how to install passenger with nginx? Its so easy its child's play at this point.

gem install passenger
passenger_install_nginx_module
(hit yes at all the prompts)
Done.

My Sublime Settings

Image

I love Sublime Text 2. It really is Textmate, with a whole bunch more features and Windows+Linux support. Simply put, its my favorite text editor. It has a wide range of configurable options that help to make it easy to tailor to each individual developer.

My current setup includes the awesome Emacs TextMate theme using Anonymous Pro for the font. I've got two options in there (hotexit and rememberopen_files) to prevent Sublime from re-opening my last files (I hate that feature! Srsly, why should I have to clean up before I close?). I've also tweaked the line height a little bit, to give things a little more breathing room on my screen. Sure, it might not be good if your code is a naughty nightmare; but we write good code at The Nerdery. :) No worries there.

{
    "color_scheme": "Packages/User/Emacs.tmTheme",
    "create_window_at_startup": false,
    "font_face": "Anonymous Pro",
    "font_size": 12,
    "hot_exit": false,
    "remember_open_files": false
    "line_padding_bottom": 2,
    "line_padding_top": 2
}

Seamonster Mash

2012-12-18_13.10.58

This was one incredible lunch I had a few weeks back. It was quick, it was crazy simple and it felt like a fancy French feast. Its a delicious blending of Crawfish, Shrimp and super tasty Mussels. All in all, pretty cheap and so incredibly fancy-delicious.

What'd it take? First, as usual, I sliced up some onions and threw 'em into a medium-heat skillet with some ground garlic, olive oil, salt, pepper and lime juice (the kind in a bottle). I let that chill for a while while I scrubbed away at the Mussels to clean 'em up. Once the onions and such were fairly soft, I started chucking in my seafood. A handful of shrimp, a handful of pre-cooked crawfish (they didn't have any uncooked at the grocery store; just steam 'em off first if you have them raw) and the mussels. I had a bit of asparagus chilling out so I threw some of that in too.

After about 5 minutes, all the mussels opened up and said "I'm done! EAT ME!". I threw in some frozen beef broth I had in the freezer for some added flavor, and let everything sit in the pan for another couple minutes to melt and get to know each-other.

All said and done, roughly 20 minutes and about $6 worth of ingredients made me an amazing lunch!

A Picture

He Spoke

Shuttle

Sharp angles hiding in the form of the darkness in his imagination lit as the green illuminated every edge of his periphery. Slowly and methodically his fingers moved across the controls and glided the machine into the place it was meant to be. An insertion was formed in a rift that was un-named. He laughed to himself as he remembered the ridicule he had faced when discussing this matter openly.

A rift, he postulated, could be formed with the right amount of energy in the right configuration in the right time by the right mind. Nobody had believed him. Now, though, they would. As the light outside the viewport changed in hue from white to blue and back again he braced himself for the coming storm. Tumult and turbulence awaited him and he knew.

His mind raced as did his heart and his ship. Slowly the energy in front of him engulfed the frame of his vessel and he could feel the shuddering of its hull. A strange calmness erupted around him though, as the final tendrils of the energy reached him and completely covered his ship.

Silence now. As he waited and listened intently to his comms. There was no chatter and nothing of interest now. He waited for the adulation and praise as his target destination realized his arrival far faster than anyone had dreamed. He was full of his own happiness for the next 15 minutes as he and his ship floated in the space above Earth.

He waited, comfortable in his cabin. He waited. And waited for someone to radio out to him. He had sent word from Mars that he would be making his trial run some 36 hours prior; surely someone had received the message. A glance at his fuel read-out told him that all rods were spent and he was drifting aimlessly just outside of Earth’s gravitational pull.

He waited.

Finally his pride gave way to fear which gave way to panic. He tried channel 212, usually reserved for pressing news reports.

“Listeners on 212; this is Charles Hanson reporting a successful rift travel from Mars. Repeat, this is Charles Hanson reporting a successful ride through the rift. Is anyone out there?”.

He clicked over waiting for an excited and doubtful response. He knew that the disbelief would be high until his 36-hour old transmission reached them; but he would deal with that when the time came. For now, he was watching his oxygen levels and mentally computing that he had 6 more hours left before he would switch to channel 911 and issue and emergency broadcast.

“Maybe my transmitter dish is broken?”, he thought to himself as he craned his neck around to look through his viewport. All systems were reporting green and he could see that nothing had been damaged in transit. His heart rate increased and his breathing became heavy as he finally looked; really looked; at the Earth below.

It was dark.

In all of history, he hadn’t heard of Earth being dark. From the dawn of civilization, the lights of mankind lit the sky and beckoned to others to come. For some reason, tonight it was dark. He was scared; genuinely scared as he took in the sight of the curves and dips of the Earth lit only by the glow of its moon.

Still silent. The radio hadn’t made a noise since he came through and he was concerned. An isolation that he hadn’t felt in ages began to sweep over him. He remembered having travelled beyond Saturn’s belt and finding the radio spectrum blank. Bereft of the usual radio chatter it was blank. The usual hum and movement of the worlds around him had faded away.

He felt that again. However, he knew that there was no way he should feel it while orbiting Earth. The hub and heart of everything. Why had it gone dark and why couldn’t he hear anything?

Briefly, he entertained the thought that it was a cruel joke. Something horrible, a conspiracy even concocted by the Earth Transit Authority to put him in his place. “How could they blot out all communications?”, he said aloud.

He consulted his oxygen again. He felt like he had only been drifting for an hour at most; but his read-outs showed him having been drifting for days. He looked out his viewport and saw the lit Earth below him. Sunlight bathing every crevice.

He looked to the governmental seat and saw there nothing from his vantage point. He put on his scanner goggles and began scanning every inch of the surface. Dirt. Green. Trees. He had never seen such a thing.

Then; as he moved towards the Southern-most leg of the governmental continent he saw a spire of red with a relic of a space craft mounted to it. He recognized it from ancient tomes as what the ancients had called a “space shuttle”. It was primitive and simple in its construction. A craft designed for maneuvering through air equipped with enough explosives to propel it far up into, and out of, Earth’s atmosphere.

“I found them!”, he exclaimed, “Those bastards I found them! Why would they be hauling that ancient thing out now?”, as he noticed the busy bodies surrounding it. He saw hoses and people and a general clamor about; as though it was an utterly entertaining celebration.

He radioed on 212; “I guess you’re all too busy with the un-earthing of this relic; but I’m up here after having just been on Mars 37 hours ago! Don’t you guys even care? Come on already!”. His voice and stature were cracking as he called out.

His distracted and disjointed mind gave way to reason as he looked onward. The dimness; the green; the world beneath him was set out unlike the spired jungle he was used to. His mind flashed back to the colonized worlds around Saturn and his exploration therein.

He rifled through his radio comms and flicked them over to lower frequencies. Saturn had been colonized by the refuse of the galaxy, left behind to wander amongst the stars finally settling on the moons surrounding. They had cobbled together everything they could find and were purveyors of ancient ways and technology. The radio silence he had been reminded of was caused by this. They couldn’t broadcast on the usual frequencies.

He switched down to 200 to 600 Megahertz and listened intently. There! His mind and body perked up as he heard the chatter. He heard the thick drawl of an actor portraying one of the ancients.

“Houston, we are go for launch in 10. 9... 8... 7...” and the countdown proceeded. He was utterly confused at the onset of events and couldn’t understand why the voice over the radio was enacting an old Houstonian Liftoff. The stuff of children.

He stifled his breath as the countdown reached zero and he saw the explosion below as the ancient craft made its way through the atmosphere and towards him. His mouth was agape as it was still functioning; something he had never expected. He was baffled and confused.

He broadcast over; “This is ship zero two bravo alpha from Mars base. Incoming craft, do you read?”.

A responding signal was sent, not for him, but for the body below; “Houston... we’re receiving radio traffic on our channel. Its direction... is dead ahead.”.

Charles could see his network visualizer light up as every possible communication channel lit up on the planet below. Probing, seeking. He gasped for air now as his oxygen was dwindling.

“Incoming craft... I require assistance. Please assume an incoming course of 1.27N to 3.75S to dock. My oxygen levels are at 15% and falling fast. I require immediate assistance.”.

His comms lit up as encrypted traffic began to fly followed by a pause.

“Craft identifying as zero two bravo alpha we are moving to intercept. Please be advised that we are a peaceful craft from the planet Earth seeking only to assist.”

He breathed a sigh of relief and watched as the ancient craft approached.

(sidebar image casually lifted from http://www.dia.mil/history/military-art/1980s-series2/)

Playing some Command and Conquer

Desert02

There's some new Mass Effect out. I also heard that there's some new Final Fantasy going around the Internets or something. MineCraft is even begging me to play it. However, where do I find myself over the last couple nights of gaming? Command and Conquer. Old skool. There's just something so satisfying about revisiting the memories surrounding this game. I remember exploring every nook and cranny of the demo before finally getting my hands on the full version. Lately, I'm drawn to the action packed simplicity of building a bunch of dudes and then dragging them across a map against another bunch of dudes.

There is also something to be said about the satisfaction of destroying the opposing team's harvester amongst a Tiberium field.

The Call of Wijit'macr

Url

Sit back now and relax. I hope you’re comfortable, in a dimly lit room with a whiskey in hand. I want to tell you a story. One that I hope you will hold close and remember long after I am gone. This story is one that should not be shared outside of those it is meant for and most assuredly should not fall upon the ears of those junior amongst the trade of imparting logic. It is one meant simultaneously to warn and intrigue. To pull you in and inform but keep you far from my fate dear reader. This; is the story of the Call of Wijit’macr.

Know this, dear reader, that you embark upon a harrowing and confusing journey through the dark and twisted worlds of forgotten logic. Logic, mind you, that has grown like a member of the taxonomical classification plantae. Its depths wander and shift in the mind’s eye. Look onto it and look upon a mimic. Your own desires mirrored amongst a myriad of winding passages. Look too deeply and you shall never be able to find your way out.

I started, much as you did. My eyes wide and glistening with hope and promise. I arrived to this bed of wanton logic known as Nerdum Rium expecting the greatest of things to be held behind its walls. Shining in my heart was a thought of working my wonders upon amazing new things; things that the world had never seen. Indeed, this was what happened - the world had and never will see such things as this. I plumbed the depths of something unfathomable and reached a horrifying conclusion.

Ah, yes. The start. I arrived my first day to something erudite and unconcerning. I forget what it was now, but wish I could harken back to those days. Youthful and full of interest for this world that surrounded me. A logic that they called Period Nets. I was intrigued and fell under the spell of this rigid and structured thing placed before me. My heart and soul was poured onto an odd device made of metal and plastic. My fingers quickly learned how to manipulate and change this device; to move in a dance that matched what the artifact - and ultimately the people desired. I made beauty from a wonderful mechanical thing made of switches, and plastic and copper.

Transmissions.

The data that I imparted in electrons was amazing. Moving and pulsing like a living entity that I could almost touch and smell. I thought I could almost hear it. Almost. That was the key to the beginning. I could almost hear it speaking. Wanting. Desiring. It almost spoke to me as though to say; “Create me from the nothingness before you. For I shall swallow worlds without thought and you shall rise amongst those around you. They shall look up to you as the one who summoned me forth.”.

My mind wrote it off as entertainment. You know. As you might find patterns and shapes in the wall when you are meant to be buried deep inside your studies. Loe, I did not realize that those patterns and shapes would return to haunt me in a way I could not fathom. I had been told once that those patterns and shapes I found by studying the empty void would lead to calamity and had always ignored it. Heed me and move along before you are lost.

I stared into a plane made of plastic and glass. Projecting onto it were glyphs and images unseen. Things that I had created like a god. Little did I know, I was not acting of my own accord.

My next assignment after the plebeian tasks put before me was to build a machination known as Curmsen Arpeem. It was originally known by a much more benign moniker, and that should have tipped me off. But I didn’t listen. I moved my fingers and danced in an intricate rhythm like none had ever seen. Inspired divine and wrapped up like an angel in his wings. I flitted to and fro answering every whim that my muse desired.

As the beast became more difficult to manage and contain; I struggled. For some reason though, I was always met with an equal drive to move forward. Something inside of me spake; ‘go forth and enact these things’. I bade the commands put forth and thus was borne the first of Wijit’Macr’s minions.

The humans called it by an innocuous name. I should have known better. The visage that I gazed upon seemed beautiful to me. Made of pure conceptual logic, built and designed with perfection in mind to mirror our own thoughts. I didn’t realize what we were making at the time, but it was the first of Wijit’macr’s minions that we were building.

It grew. And grew. And grew and grew and grew. Beyond a point where we understood its purpose. It started as a method to the madness of collecting physical artifacts for those of power into a way to track, monitor and maintain a constant connection therein. I should have known, as it extended its influence into those it touched. I should have known what lay within.

Beyond my mind’s eye; and I found this later - was an intellect far greater than I had thought existed. Its age was unknown and its goals could not be found through direct consultation of and inspection of the mind. It laid. In wait, beneath the depths of soil and dirt and ground that held it close.

You may know, my dear reader, of Cthulu. The once god of elder times. His image is known across this land because of his ability to bridge the ether that surrounds and connect his mind with ours. He slumbers. Kept safely from us by the toxic oxygen surrounding us. He lays. Waiting for us to ruin ourselves. Beneath the seas where he has built his safety; he waits. You have never laid eyes upon him; for such things lead to madness - but you know of him. You most certainly do.

I warn you before you think such things are fairy tale; understand that these things written once are ever present in your mind and your mind creates that around us. We impart our desires, whims and beliefs upon this world and in doing such call forth things we thought not possible.

Witness the rise of these panes of glass with glyphs that we comprehend. Witness conveyance devices that move us from one location to another with no effort. Witness heat spewing forth where that heat should not exist. We desire and we create. We know. And we create. That which once was not known, shall be known once we desire it to be.

Or once another does.

And so Wijit’macr came to be.

After Curmsen Arpeem had been created we lay dormant. Awaiting the next call to create. To arrange these electrons and symbols in such a way as to provide us food, warmth and clothing. The call to create was again answered; by a Mr. djacksim es. He beckoned and called and requested our help to create something that we had never conceived and so we answered.

Ever pressing to enter into the unknown and explore a thing that we could not know, we pressed forward. My dear reader, I stop you now and beseech you. Be wary, as this path leads to madness.

This man, or so we thought, requested a logic construct that the world had yet imagined. He wanted something so ephermal that we had trouble expressing it. Our arcane incantations only went so far as he begged and pleaded that we continue. Change after change after change after change that eventually led to an entity who’s very being was defined by change. We should have known.

As things progressed we noticed little by little that there was something amiss. Our incantations were unable to contain this thing and we could not predict its behavior. Amass and constantly changing it bred forth a multitude of distractions. Peripheral portions that did not work according to plan and core parts of its being that were, for lack of a better word, misbehaving.

It was later that we learned. We understood. But it was too late.

This thing that we were conjuring. That we were manifesting. Was not new. But had existed long before we came to be. This Wijit’macr was a thing that had been in our timestream for eons and was not want to wait. We struggled to meet its desires and met every turn with change after change. Alas, we could not keep up with its desires.

The man known as djack was later found to be operating in conjunction with this Wijit’macr. However, it was far too late when we made the realization. We studied its definitions and construction but found it ever shifting. For every change that we made, five new pathways opened up before us and we could not find the solid logic we were used to. It grew and grew and grew.

I knew that something was wrong whilst we were building this mechanical thing. I knew that there was something amiss that we should consider. I steadily realized that djack was not as he seemed. Hooded under the darkness of night I performed several rituals found in his personal documents. I found amongst them a spell entitled “To Summon a Wijit’Macr’.

I knew not what I did as I uttered the words found therein. Unfortunately, neither do any of the bystanders. I was never able to locate anyone standing within a mile of me. That matters not though, as I pressed forward. The lights surrounded me and darkness encroached. The form of a dragon appeared before me and I knew not what to do. It spake to me; “The Nerdum Rium shall build me from nothing and I shall rise to claim what is mine!”.

It spoke; “You desolate humans have overtaken what was once mine and I shall enslave you! RISE! RISE! And do my bidding. Overthrow your rulers and lift me up as your kind for I truly am! I shall grant you leisure to do whatever you please. Just please, allow me to embed myself in your governmental status!”.

I trembled and knew now that I was dreaming. This thing. This Wijit’macr was infecting my dreams and holding me there. I tried to wake up. I really did. I failed though. This being that we had created took hold and swelled up through me. His logical mind flailing through mine. I had but one last resort.

I took up and molded this cage. You may not have seen it before. It is made of rails that have each individual track been forged from ruby. There he lays captive and asleep. Let him lay my dear reader. And do not disturb him. You, my dear enchanter have the power to hold this beast at bay. Pray I do. That you hold it where it lay and do not allow it to rise.

For therein lies madness that you may not soon forget.