Where did November go?

November 30th, 2009 by Steven Behnke

It is nearly December now and I finally have some time to reflect upon where exactly November went. Most of the month was spent putting a lot of work into the new product we are working on for Aristocrat Technologies. It was a rather ambitious endeavor which involved new hardware and software coming together at the last minute. The extra hours put in before the Global Gaming Expo (G2E) really paid off though. The product was a huge success and we didn’t have a single issue.  Customers ooo’ed and ahh’ed and everyone was impressed.  Even the board of directors came by to visit my team the day after the show and thank everyone for the massive amount of work that went into our endeavor.

After spending countless hours working at work, I’ve not had much time to work on my side projects.  I was pretty burned out as well so it was time for a vacation.  Friday evening after the gaming show Rachel and I packed up and headed to the Dominican Republic for the next week.  The sand and surf was awesome, not to mention proposing on the beach at sunset.  Everything worked well and Rachel loves her new diamond and platinum ring.

We went out two days and did a city tour of Puerto Plata which included a cable car ride to the top of Mount Isabel, a stop at the Brugal rum bottling facility and a trip to the Amber Museum.  It is indeed strange to sample Extra Viejo Rum at 8:00 am, but we none-the-less bought two bottles to bring back home.  In addition to the city tour we want on a fascinating outback safari tour.  It took us through the jungles where we visited a traditional home, a school, a fruit plantation, a river to swim in and finally some awesome boogie boarding in the ocean.  The tour guides were all very knowledgeable and friendly.  Learning about the different plants in the jungle while we drove through was especially interesting to me.

We stayed at the Iberostar Costa Dorada all inclusive resort on the northern side of the Dominican Republic.  They had 3 different specialty restaurants to choose from for dinners and the various buffets all throughout the day for breakfast, lunch, dinner and snacks.  The Brazilian steakhouse, Mexican, and seafood restaurants were all delicious with excellent service. A roving band of musicians including 2 guitarist and 1 percussionist would sing to guests enjoying their food and even take requests.  I heard Besame Mucho many times last week.  Even the buffets had remarkable service with the water glass never running more than 1/2 empty.  All of the staff seemed to really enjoy their jobs, especially the star-friends who were in charge of the daily activities.  Whether you wanted to do step aerobics on the beach, play volleyball, tennis or ping pong, or just bake to a crisp in the Caribbean sun you could.

I had a blast, but I’m happy to be back and I’ve got lots of pictures which will be put up fairly soon.  I’m looking forward to having some free evenings again to spend more time on OpenGL and iPhone development again.  I’ve been having fun learning both the fixed graphics pipeline ala OpenGL 1.1 as well as a programmable pipeline with 2.0.  I’ve got a down and dirty Wavefront OBJ file loader for the iPhone.  I’m hoping to clean it up and release the source in the somewhat near future.

Coding without braking

September 1st, 2009 by Steven Behnke

Been some long hours over here lately.  I’ve been coding at warp speed trying to get some base classes out of the door to facilitate the other developers being able to sew together these classes into an actual game.  I’m still not the fondest of C++ but it is certainly more enjoyable for me than just using straight C.  Today I was working on a fairly interesting section of code.  Due to the fact that our hardware can generate events at any time we needed a mechanism to queue these events for processing at a regular interval and on the appropriate thread.  This will hopefully keep issues like thread safety for game state objects to a minimum since the callbacks to update these states will all occur within the same thread.

To accomplish this goal I crafted up an EventArgs class along with some message queues.  The message queues are owned by the thread that created them, but any thread can safely enqueue a message.  The message consists of a function pointer, some arguments for that callback and various other debugging level details that no one else will care about.  When the message is popped out of the queue the function pointer is invoked with the cached set of arguments.  This allows any method to subscribe to an asynchronous even and process the resulting callback when they so choose.

Playing with this was rather fun and testing it was even more fun.  I always love it when I get an opportunity to spin up a few hundred threads to randomly write to messages queues and pop messages off as fast as humanly possible.  The only thing that I didn’t quite like was that the loop to poll for messages used 100% of the CPU.  I think if I add a conditional variable though that I can wait on that will get signaled when there are messages to process it should be pretty good.  I am also tempted to implement the BeginInvoke() / EndInvoke() pattern from .Net in C++.

On the iPhone coding front I’m working on yet another AFL based ladder app.  I can’t reveal many details other than that at the moment but yesterday was a marathon coding session to get the framework up and in place so that Jason could start implementing behavior on some of the UIViews.  Of course our biggest stumbling block is actually getting the data into the application so I asked Jason if he would handle that.  He agreed that he would so I get to go into a holding pattern until there’s something for me to work on.  I do like that.  Here’s hoping I can get some rest tonight.  I wasn’t able to easily wind down last night.

It’s Dark in Here

August 20th, 2009 by Steven Behnke

I’m taking advantage of a power failure at work to blog a bit.  I’ve been tremendously busy lately working on kernel modules and things of that nature in C and C++ at work.  While it has been fun to go back to my roots I’m really missing the speed of development and the quality of the Visual Studio IDE for development and debugging purposes.  I recently installed a nice MSDN version of Windows 7 and I’m anxiously awaiting the release of Visual Studio 2010.  Hopefully I can find a technical subject in the near future that I’m allowed to actually blog about.  We’ve been doing interesting things, but I’m not sure much of it can make it onto the blog.

iPhone Application

August 18th, 2009 by Steven Behnke

It has been a long time coming, but the iPhone application to track AFL teams has finally been accepted by Apple.  The arduous approval process included two rejections.  The first rejection was clearly our fault.  The application requires access to an XML feed to get the current team data and we were not prompting users that nothing could be done in the application if no connection was present.  This would lead to a poor user experience and I completely agree with a prompt that informs users that a data connections is required.  My bad.

The second rejection was a little bit silly though.  We link to team news articles from RSS feeds and the web view had a google search bar on it.  It is a default option when creating a web view, yet Apple rejected the application stating that we had explicit internet access that requires our application to be rated 17+.  Well, if that’s the case then Mail, Safari and SMS should all be 17+ applications as well.  You never know, you might get a steamy SMS from another adult.  Or heaven forbid you get some spam attempting to sell you some sort of adult product.

Grudgingly we changed the rating of the application to 17+ and have sold a few copies so far.  Most of them in Australia, which is pretty obvious considering our target market.  Some of the oddballs sales include a sale in Sweden.  Who knew there was an AFL fan with an iPhone in Sweden?  We are currently adding support for the finals into this version of the iPhone app and then next season we should be good and strong all season.

My daily twittanope…

August 17th, 2009 by o2dazone

I couldn’t come up with something more clever as a subject I’m afraid. I’ve been recently turned onto Twitter, and I was rather disheartened to find it operates a bit like most social networking sites. I find most of my followers were bots and people from the Ukraine or Nigeria that I didn’t know. I found the few people I wanted on my lists, had subscribing services that read horoscopes. Without going out on a tangent here, I’m not advocating nor denying horoscopes, do what you want with your time. I didn’t want to read it though, especially when I want to know about people! And astrology (used loosely) wasn’t ever really an interest to me.

So I made a Greasemonkey script called “hide Twittascope” (took a while to make that name). What it does, is runs through the page and looks for certain phrases. The key phrase is “My Daily Twittascope”, but it can also look like “More for Aries” with a bit.ly link followed after it. What I did, was throw all li tags into a huge array, and scan each array element looking for key phrases. It then removes the li tag completely, all while retaining your friends and their real updates (assuming they don’t quote “My Daily Twittascope”).

You can install the GreaseMonkey script here

Code is as follows

// ==UserScript==
// @description Hides 'My Daily Twittascope' entries on Twitter
// @name hide Twittascope
// @author o2dazone
// @include http://twitter.com/*
// ==/UserScript==
 
var banList = ["My Daily Twittascope", "More for Aries","More for Gemini","More for Sagittarius","More for Aquarius","More for Leo","More for Taurus","More for Cancer","More for Scorpio","More for Libra","More for Virgo","More for Capricorn","More for Pisces"];
var allTwits = document.getElementsByTagName('li');
for (phrases in banList) {
    for (eachTwit in allTwits) {
        if (allTwits[eachTwit].innerHTML.match(banList[phrases])) {
            allTwits[eachTwit].style.display = "none";
        }
    }
}

This is my first published Greasemonkey script, and javascript as a whole is still relatively new to me. If there’s a cleaner way of doing this let me know :)

ps. I’ve recently learned you can require jQuery, for greasemonkey scripts. This is amazing, but didn’t want to include a full library for something as simple as this script.

Also follow me on twitter! ( @o2dazone )

iPhone App Submission

July 7th, 2009 by Steven Behnke

Well, it has been a busy few weeks.  I’ve started my new job, which I’m enjoying.  It is also taking a lot of time to read through the massive code base and get up to speed using a programming language I’ve not touched in years and years.  Beyond that I’ve actually found time to work on my iPhone application and it is finally ready for submission to the App Store.  I hope to post screen shots from it fairly soon.  I’ve had a lot of help lately getting over little hurdles from another developer.

I’ve become aware that there is no real good feature request / issue tracking software that really looks like it belongs on a Mac.  There are a few web solutions such as FogBuz and LighthouseApp which I’m currently looking at but none of them really feel right to me.  I’d like to learn more Objective-C and Cocoa and I’ve been thinking about starting a project to write a multi-user bug tracking solution that targets OS X and the iPhone for readonly views to start.

A greasemonkey? In my sandbox???

June 17th, 2009 by o2dazone

GreaseMonkey a while back, put all the code it executes in it’s own special sandbox to insulate the userscripts from the web content. When they did this, it broke numerous scripts that included function calls inside the script.

Since then, I hadn’t really touched Greasemonkey on a custom level. I’d install a few scripts and be done with it…but lately I looked at a few personal scripts I had written, and wanted to adapt them to this new sandbox. I am a lazy ass when it comes to spending too much time with Firefox extensions, usually if it doesn’t work out of the box, or after a few attempts, I either give up, or brute force it any way I can. In this case, I brute forced the way GreaseMonkey reads my personal scripts.

I am well aware it’s a very dangerous alternative, but I’ve got enough protection between my computer at work and my connection to the outside that it could stop a Sherman tank in it’s tracks. Plus, I’m a relatively savvy user, and don’t intend to throw in any Javascript someone gives me. Anywho, I digress…

var getHead = document.getElementsByTagName("head")[0];
var js = document.createElement("script");
js.language = "javascript";
js.src = "THE LOCATION TO YOUR JAVASCRIPT";
getHead.appendChild(js);

Pretty self explanatory. You run this as your own Greasemonkey script, with it’s included or excluded websites, and it’s location your own Javascript. This gives you full control and let’s you execute code outside of the sandbox once again. Again, a very dangerous alternative, as the native wrappers Greasemonkey implemeneted were to make their users safe. But a use-able workaround…

Anticipation Grows

May 30th, 2009 by Steven Behnke

As the weekend goes on and on the feeling of anticipation mixed with anxiety and excitement grows.  This is all a direct result of starting the new job on Monday at 8 am.  I finally heard back from the human resources department on Friday and cleared up the misunderstanding concerning my background check.  For crying out loud I was working for the police department for the city.  I’m pretty much as squeaky clean as possible when it comes to background checks and the one for the police department included a voice stress analysis.  Talk about a nerve wracking test.

Fortunately the anxiety has been tempered this weekend by my fabulous girlfriend.  Today we went over to her mother’s house and played a couple of vicious rounds of Scrabble.  I didn’t win, but I at least held my own.  I even managed to start off the game with a 7 letter word, runaway.  Unfortunately I used one of the A’s on the board and so I didn’t get the extra 50 points for using all of my letters.  This evening we have been rocking out to guitar hero.

Where were going, we won’t need eyes to see

May 29th, 2009 by o2dazone

or type for that matter. I got my Happy Hacking Keyboard Professional 2 a few days ago. Definitely getting used to every aspect of the keyboard. The switches and the layout are completely foreign to me. I don’t typically like the sperge about stuff like this because it’s a shameful endeavor. In fact I don’t even “blog”, but I’m putting this keyboard to good use, and I feel I should contribute to this site more than just a design every 4 years lol. I digress…

hhkb_desk.jpg

hhkb_wood.jpg

Memorial Day Weekend

May 27th, 2009 by Steven Behnke

This memorial day weekend I took my first mini vacation that I’ve had in quite a while.  Granted, I had about 2 months off from work back in September and October, but this was hardly a stress-free period.  I had been laid off I had no idea when my next paycheck would be coming or how long it would take me to find a position.  Even after I would interview with companies they would not be able to match my salary requirements or it would take forever for the background checks to clear like it did for the City.

It was certainly time for a road trip!  My girl and I picked up my paycheck and dropped it off in the bank then headed out of town about 9 am on Friday morning.  We stopped for lunch after several hours into California and I was immediately reminded that I was no longer in Las Vegas.  We had people who we’d never met engage in friendly conversation with us at the adjacent table.  Next, my girl and I headed down to Santa Barbara and had dinner at a fantastic little restaurant called Epiphany.  The service was great and the food was delicious!  The atmosphere was very quaint sitting on a window seat bench with pillows and candle light.  My girl looked beautiful all dolled up in her little black dress and I got lost gazing into her beautiful brown eyes.

The next morning we stopped by and had breakfast at Anderson’s, home of pea soup.  Granted, we didn’t try the pea soup but instead enjoyed the monte cristo sandwich.  This three layer sandwich filled with gooey cheese, ham and dipped in egg batter then fried to a nice golden brown was fabulous!  The raspberry preserves topped off the sandwich marvelously!  I love raspberry!

She and I wondered around Solvang after gobbling up the sandwiches and took in the cozy little Scandinavian town.  After a couple of hours of wandering we were off to Monterey Bay to see the rather large and famous aquarium.  Parking was atrocious, but we finally found a garage with some empty space and made our way into the aquarium after a brief stop at the water front taking in the sea breeze and sounds of the waves crashing against the pier.

Despite the rather large crowds I had a good time walking around looking at jellyfish, penguins, sea dragons, otters and various other fauna and flora.  I only stepped on one child!  Parents really should learn to control them better in such a large crowd.  Several hours later with lots of poking of various sea creatures and no fingers being lost in the process we had quite the appetite.  Some linguine and dungeness crab meat were in order.  My girl had an amazing pizza with garlic and dungeness crab meat on top of it and loads of gooey cheese.  Gooey is good.

It was time to hop back in the car and go onward and upward.  We headed off to San Jose and arrived at the Dolce Hayes Mansion.  The room was fairly standard save the bed.  The king sized dolce bed truly was sweet.  The pillows were plentiful and comfortable and I could have slept on the bed for a long while had we not had anywhere else to go.

The next morning we headed off to San Francisco after enjoying the Sunday brunch at the mansion.  We wandered around Fisherman’s Wharf and Pier 39.  I decided to get my girl something nice so we picked out a clam and opened it up.  We got a nice white pearl out of it and then had it set in a white gold setting with a diamond chip.  It looks beautiful on her and I’m happy to be able to spoil her so.

Lunch was clam chowder in a freshly baked sourdough bread bowl.  It was simply amazing!  Once our bellies were full we waddled over to the Ghirardelli Square and enjoyed some live classical guitar playing and cuddling sitting by a fountain featuring some mermaids.  Once the evening came it was over the Golden Gate Bridge then to my friend Mike’s house for dinner.  We had a nice Sunday dinner then retired to the hotel where I did some reading and my girl fell asleep with her head on my chest.  Between page turns I’d place soft kisses on her forehead.

It was sad to leave the ocean breeze and cooler weather behind as we drove home the following day.  Despite spending 4 and 1/2 days completely glued to one another neither one of us was remotely sick of the other and we did not want the weekend to end.  If we only could have driven to SFO and caught a plane off to the Hawaiian Islands I believe we would have been truly content.  Alas, real life with bills and responsibilities called us back to Vegas for the time being.  Though my feelings were strong before the weekend it helped reinforce them and bonded us more tightly together.  The last couple months have felt more like a fairytale than real life.  The words soul mates comes to mind.  I believe I may truly have found my other half.