BLAG Ramblings of a crazy old fool



I totally just had this thought about creating some kind of sleep robot that would manufacture sleeping pills, melt them down, hunt me down in my house and inject me when it was time to sleep.

Never mind the core issue with that whole concept, my first immediate reservation was what if it used its powers for evil and subdued dinner guests it found boring.

Yep. That's definitely the worst thing that could happen if I started building robots with needles and the ability to manufacture drugs.

Tagged as: , No Comments

A Night of Firsts

Fuji Hibachi Grill

So tonight was a night of firsts for me. My current employer set some very demanding goals at the beginning of last year, to relaunch all out major properties on a new CMS platform. Over the last year, we manage to launch all 50+ sites, and are continually developing and growing our CMS.

To recognize everyone for that, the company took us all out for a meal at a very nice Hibachi restaurant. I've never been to a hibachi grill. For that matter, I'd never had Japanese food either, so I didn't know exactly what to expect. I decided to roll with it; I mean how bad could it be?

Not knowing what to expect but not one to turn down a free appetizer, I went with the Yukiyama. Could not have been more impressed. Well, I could have, but only if it was because I could eat that for the rest of my life. Turns out, it was a couple skewers of grilled chicken and onions in a teriyaki sauce. Never been a real fan of skewered food, veggies, or teriyaki, it damn. It was fantastic.

Over the last week, several of my coworkers found out I'd never had japanese food, so the hype kept building. We all showed up around 5, and to was a very nice looking place. Sat around and talked for a bit, etc. Turns out, drinks were on the Company too, so things took a pretty big upswing from there!

Then came the drinks. Not a big beer drinker, so I went with a mixed drink called the Blue Bull. Red Bull, UV Vodka, and...something else. Something delicious. Ended up having a few moreover the course of the night, definitely a good choice.

I was pleasantly surprised when I found out that there was a menu! I always thought that when you go to a place like that, you eat whatever they make you, and you like it. I think perhaps having a choice was a problem -- I had no idea what to get! It was down between the fillet mingnon and the chicken, so I decided to do both! Steak & Chicken. Neat.

The chef was amazing, super talented and the food was perfect too! Great show as he made egg fried rice, exploded an onion tower, and grilled veggies. I was particularly fond of the "Yum Yum" sauce. No idea what it was, but it made everything taste even better. I tried everything, and was actually surprised how good it was! Did not like the mushrooms, though I expected that one. Still, one hour in, and I'm apparently making a large dent in my bucket list.

He also fried up some shrimp and some other kind of fish. Mussels? Something like that. Never had either, but gave both a try! The shrimp tasted pretty good, though it had a weird rubbery texture. From everyone else liking it so much, I assumed it would be much more flavorful, but hey at least I gave it a shot.

The steak was absolutely fantastic, and the chicken was pretty good too. The only thing I didn't get totry was sake, but I guess that gives me a reason to go back!

Filed under: Life, Work No Comments

XHR Load Cross Site Forgery

Javascript Code

Or, How Sano Managed To Defeat The Evil Browser with Javascript Black Magic.

One of the things Sano and I both end up dealing with is Javascript. Over the years we've come to understand it and maybe even hate it a little less (the advent of jQuery really brought that around, especially when dealing with AJAX or anything REST-related). Every once in a while, one of us comes up with a solution that is either completely brilliant, or absolutely retarded.

This is one of those.

if (Request.Headers["Origin"] != null)
  Response.AddHeader("Access-Control-Allow-Origin", Request.Headers["Origin"]);

Response.AppendHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");

Squeeze easiest upgrade ever? Perhaps.


So I finally got around to upgrading my Linode. It's been...840 days since I last did that. Whoops. Turns out there were a few hundred security updates, and I was pretty far behind on Apache, and PHP versions. I also accidentally upgraded MySQL during the process...didn't mean to do that. Would have been nice if I had gotten the chance to do a full export before hand. However, it was Linode that saved my bacon today! I realized that with my track record, doing a system upgrade was one of the more dangerous things I could try. So, rather abitiously, I set out to make it happen. But before I did that, I took a Linode backup snapshot. You know, just in case. As it turns out, the folks at Linode were ahead of the game, and provided an excellent guide to upgrading to Squeeze. About the only problem I had was with MySQL after the upgrade was complete, but an apt-get install mysql took care of that.

But perhaps a bit of backstory is needed. I've started working recently on a framework to rapidly build and deploy social-oriented web applications.  It's still a work in progress, like many of my other projects, but it certainly made my life a bit easier. I was able to adapt the platform from its current implementation on Fitness Tracker, and take a design/idea in my head, prototype, and build it in less than an hour. Now granted the core of the application still isn't built, but all the basics are there; Analytics and tracking, theming/templating, and SSO/Facebook integration. It's not as polished as I want it of course, I'd like to implement a lot more in the way of object-oriented programming, but it is coming along. I'm hoping someday to have it available to go from prototype to beta testing in less than a day.

After I added the new site to the framework, I started to think about how I wanted to structure the data for this particular application. At some point I'd like to have an integrated database that could scale to fit all my applications/ideas, but for the moment it's just not there yet. But as I started to build out the schema in MySQL, I realized it just wouldn't cut it. I've been working a lot recently with MongoDB and JSON data formats, so my mind is still kind of stuck in that mode. But it was pretty apparent, even for the small scope of my project, that a flat row structure like MySQL just wouldn't be scalable enough to do what I want. So I decided to add mongo to my server to play around and see if that would do more of what I want. But unfortunately for me, I didn't have PECL, so I couldn't use the MongoPHP driver. Hence, the PHP upgrade, and then the Debian upgrade.

There were a few tense moments during the upgrade when I dithered on whether to use the new config files or see if the old ones would still work (in the end the old ones won out), and then the suprise MySQL upgrade that I didn't seem to have a choice on. But now I'm at 5.1 and everything seems to be working after a few REPAIRs, so I guess in the end you could call it a win.

Work still continues on the eminence online roll-out; working on building in news feed scraping for content generation, and then integrating that with WordPress. It's proving...difficult.

At the end of the day though, I still don't have MongoDB installed, nor have I made any progress on the DB schema for myCollections...but I still feel like I accomplished something. I guess that's all that counts!


Farewell Rosewill…Helloooo Acer.


So the 19" Rosewill widescreen monitor I bought in 2002 has finally kicked the bucket. I wrote to the company (and felt 40 years older doing so), complimenting them on a superb product that lasted much longer than expected (I honestly only hoped for 6 months for the price), and to see if they had any more in stock that they could replace/sell. The specific product was discontinued about 6 years ago, so I'm thinking probably not. So far no response, but who knows; time will tell.

So I went to Best Buy (ugh), and proceeded to make the fastest sale in ever. Picked up a 23" Acer LED monitor for $169 (This might actually be less than what the 19" Rosewill cost in 2002). So far, it's fantastic. It's like my eyes have never seen before. And now I'm seeing many mistakes on websites I've worked on that my old monitor just didn't show me.

This has not been one of my best weeks. I'm really loving the new job, but it hardly leaves any time to do anything except work. I love the work, it's much more FUN than what I was doing before. I find I work from home a lot, and regularly put in over 50 hours a week. I'm not sure entirely how I feel about that, but at least it's mostly enjoyable work. Recent transitions in leadership are rather underwhelming; but overall, still a pleasant work experience. It's kinda sad now that I look back on what I've been doing for the last 6 years, compared to now.

Today wasn't too bad, though I was fighting with Drupal for several hours (Goddamn I hate Drupal. Especially the old-ass implementation they have on the current site). Finally got the feature in for the client, and GOT THANKED. There are times when I absolutely love this job. Getting credit and even praised for my work is fantastic. That happened another day last week, and I think it was one of the best days I've had this year. A truly wonderful feeling. But I digress...Did some training for a co-worker, worked on and tackled some weird issues, etc. But it was a long day. Decided to grab a burger and a beer at the pub near our place. That may have been a mistake. Too early to tell.

But now I have a sexy new monitor. And a list of websites to fix. :|


Android Apps


For the most part, I'm pretty happy with my new HTC Inspire. As a matter of fact, I'm writing this post on it right now. But the thing that's always bugged me about open-source software is just as prevalent on the Android platform - the software is hard to use, and usually half-asses whatever it is supposed to do.

I've spent the better part of a month trying out text editors with ftp capabilities (touchqode, silveredit and Android Web Editor have been the latest), but none of them get the job done. I can't even find a decent SSH client (hell, the iPhone had that!) that I could use for remote access to nano. And let's be honest - the "job" is either being too lazy to get off the couch to code something, or being stuck away from a real PC. It's the latter that makes sense from a business perspective, though the former is probably more common.

I would settle for a basic text editor that can save/create to an ftp site, but so far I've had no luck. Sure, each app had its benefits (touchqode's code-oriented keyboard layout was nice, though having to enable/disable through the settings menu was a pain, and the syntax highlighting in Android Web Editor was absolutely brilliant), but none of them seem to fit the bill for the coder-on-the-go (or couch).

I've said before, I'd buy a tablet in an instant if there was a good, working Dreamweaver clone for the Android platform, but so far I find myself disappointed. (Honestly though, I'd settle for a notepad/ftp clone with syntax highlighting.) It may be one of those things I just have to sit down and do myself.


Cheese and Beer!

So I'm now living in Madison, WI. After scrambling to clean the old apartment and get everything moved out, I packed my car just about as full as possible, and then some more. Didn't have room for any furniture, but I'm not too worried about that at the moment. Staying at Erin's current place for tonight, then we are supposed to move in to the new apartment tomorrow. Which will be fun packing up all her stuff and renting a U-Haul, but hey. Whatevs.

So last night was decidedly awesome. Erin and I are basically the same person, albeit  different genders and careers. But the Star Wars posters and wall of books is just perfect. Last night we had pizza and beer and watched Breakout Kings and Always Sunny. Goood evening. Gotten (most of) my bills paid, and I'm just about to start doing some more job hunting. I might go explore today too, not sure yet. Madison is very pretty (and oh my god there are so many bikes).

Filed under: Uncategorized No Comments

HogSong, Mercurial, Best Weekend Ever.


So this was the best weekend in ever. Erin was down here for the week, and stayed over the weekend as well. After work on Friday (not a whole lot got accomplished due to the earthquake/tsunami in Japan), we started playing video games. And we kept playing video games. Until like 5AM. It was fantastic. Erin ragequit Gears of War because she couldn't beat the end guy (I heard he's hard...), played some cartoony RPG on the PS2, I played some DJ Hero (new high score on Kaskade - Move for Me!), and more. Honestly I don't remember the rest, the last few hours are kind of a blur. We totally should have played some old-school N64 Super Smash Brothers, but we forgot D: I missed out raiding with Eminence again, but I call worth it.

I also made Erin watch 2001: A Space Odyssey. She was not impressed. I believe her exact words were YOU BROKE MY MIND, and something about Stanley Kubrick only having 20-minute scenes of nothing important so he could pleasure himself. She rather enjoyed the Intermission though. Lawl. Also watched Gamer again (continuing the bad movie saga), and Tron: Legacy. Which is by far, one of the best movies ever made. She concurs. Finally found a DVD-quality copy of it to show. Definitely going to be the first movie I'll buy on DVD in quite a while. I tried to convince her to watch 2010, but she sadly would have none of that. Oh well! We also watched some Stargate: SG1 (The Fifth Race, one of the all-time best SG1 episodes ever). I also taught her some shell commands on linux! Mostly because she stole my laptop and then realized she couldn't use it ;D

On Sunday, we came up with the greatest idea ever. HOG SONG: The Pigging. For some reason, we have retarded nicknames for each other, and we are going to make them characters in a game. I looked into an XNA Developer subscription, and started up some character modelling in 3DSMAX. (Gotta love those student I was going to join, but my Dreamspark account appears to have expired, and I'd have to screw around with getting DeVry to verify my student status (Technically, I think I'm on "leave"). Decided to leave that for another day and just get started. We decided on three main characters, Red Pig, Large Pig, and Mexi-Pig. Mexipig has fantastic abilities, like Taco Whirl, Piñata Bomb, Burrito Bash. Large Pig has Truffle Shuffle, Mud Bath, Suspender Bender. Red Pig has Scarlet Hooves, Crimson Squeal, and Blarney Stone. There are sooo many more, but this is just a preview. If I can convince Erin to give up her precious sketch pad and notebook, I'll scan in some of the concept art and throw up an except and some promo images. It is going to be Flantastic. Going for a free action RPG style for the Xbox Live Arcade; if it gets popular (lol), I might look and see what we can do to port it to Windows. This could be the start of something epic.

This morning started off just fantastic; my clocks were set correctly for Daylight Savings Time (RAAAGE), but my alarm was set half an hour too late for some reason. Managed to get a shower and get in just a few minutes late; not too bad. But by the time I had gotten there, I had several new work orders, emails, and voicemail messages waiting already. I set the Dukane system to update the clocks and the bells, and then set the VK system to update the media retrieval clocks and classroom CCMs. Then, my work done, I forgot about it. Turns out, only half the clocks decided to play nice. After messing around with the VK box for a while, I gave up and gave Jason a call about it. It was a pretty epic battle, very Tron-esque. Totally imagined light-cycle battles and such going on while I was fighting with that ancient software. (Which could be because we decided to watch Tron again last night...whatever :)). Eventually we got that fixed for now (Apparently it will break again in a week when the software decides it actually is DST), but the rest of my morning was spent running around putting out fires for kids to take their Acuity tests (Hooray standardized testing?). Grabbed some lunch with Erin and Dani, then back to work. Found out the bell system actually didn't decide to want to work today, so I spent most of the rest of the afternoon dealing with that and scheduling issues from the VK box's morning antics. Longest day ever.

Tried to find some time to work on the site; managed to get mod_rewrite going (hooray!), so the blog now has fancy looking permalinks. Added the option over on the Eminence side, though I'm not quite ready to roll that SEO mod out yet. Need to do a full backup of the site/content, and actually upgrade to the newest phpBB version. Then I have to fix the theme which will undoubtedly break, and update the PHP hacks for the registration form, etc. Then I can try and add something that might break it. Though it would be nice for more of the site to get indexed than just the shoutbox :) That's another thing I need to work on, I had planned to add some pagination to the shoutbox page and make it a little more friendly to use. And get a mobile version of the site, or at least shoutbox, going. Most of the users pop on using smart phones anyway, if they aren't at home. Would be nice for me and several others to be able to chat on there.

Talked to Parker a bit about Subversion vs Mercurial; apparently a lot of folks are heading the Hg way. Think I might try it out myself; this Mercurial/PHP web interface looks pretty interesting. I've been wanting to get a nice repository solution setup for my projects; I'd tried to get SVN working on here, but never could find a nice front-end to manage it. Granted it can be done from the command-line, but with as many projects as I work on (and random code snippets that should be organized) it would be really nice to have a way to manage it. The topic of Epic came up and he warned me off. Apparently this article was written by a former Software Engineer there, which is the position I will ideally be applying for. Still, I think I want to give it a shot. The Windows Integration position seems interesting as well, and it's pretty close to my current job/experience. I'd love to find a PHP coding job, but so far I haven't found much luck, except at EarthIT. I haven't quite gotten around to applying there yet either. (I seem to be stuck in my ways, can't take that jump, for some reason.) I need to update my resume and start working on cover letters for these positions, see what comes back. I looked at Raven as well, which looks AWESOME, but I don't have the experience for something that isn't entry-level there. And of course, there are no entry-level openings. Erin suggested I might drop them a letter with a resume and see if they might have anything in the works. Worth a shot; I think working in a game design company would be about the coolest job ever. Can definitely see enjoying my work and loving what I do there. (Blizzard: I love you too. But you won't hire me :()

Oh well. Time to stop procrastinating, I guess. Until next time!



Sick days are always the worst. Especially when they are unpaid. I woke up this morning with the worst migraine I've ever had (I blame Erin and Dani playing ChronoCross all night), and decided I needed to stay home; there's no way I'd make it through the day like this. So now I have the day to myself, but I can't even enjoy it because everything feels like a bad acid trip with a robot elephant standing on my head. Worked a bit on the site, made the media section work sortof; built a dinky foreach/scandir/lightbox dealie for a nice gallery view. Toying with the idea of playing with mod_rewrite today.

Erin and Dani are off to see Dani's therapist; apparently she wanted to meet Erin. Guess I'm just not important enough to want to meet. Whatever. Dunno what I'm gonna do for the next couple hours. I watched the Blizzard 20 year video, and it yet again reaffirms my want to make my business happen. I love video games, and I'd love to work for a video game company. Blizzard, in particular, would be fantastic. I love everything about the company, from it's history and culture, to the games it makes. Perhaps someday.


Blag, NAS, TV

I think the blog is just about where I want it. I still need to figure out how to recompile apache with mod_rewrite support and not break any other sites in the process. I'd like to use the /%year%/%postname% syntax as my rewritten blog post URL, but at the moment POSTFIX just looks ugly. I'll leave it at the default for now. Search engines may ignore it, but I can always add some SEO later. And I need to customize this theme as well. I was thinking I might combine the Eminence v3 look to give it an outer-spacey feel, but I haven't figured that out quite yet. I'd also like to incorporate some of my writings onto new pages, but that's still in the works. At the moment I'm pretty satisfied with them all being imported (except the old Andromeda's Peril and Andariel's Quest shorts I found) into Google Docs, but I really don't want to maintain them in two places. Or make them totally public. On that note, I still need to clean up the directory structure in this subdomain. Most of it is just there behind the scenes as reference for me, some of it is still hotlinked elsewhere. If I can get mod_rewrite going, I should be able to take care of both issues and just redirect the missing stuff to the correct location.

I recently purchased a ZyXEL NSA221, a two-bay networked storage enclosure. It is pretty sweet now that I've gotten used to it, though the transfer speeds are abysmal, even over a gigabit link. Somewhere around 8Mbps transfer. Reading from it is fine, and it has no issues streaming to two PCs and the Xbox at the same time, which is pretty sweet and mostly why I purchased it. I was hoping to get the built-in Bittorrent client working to auto-download from RSS like my desktop currently does, but it only supports 10 active torrents at a time, and isn't nearly as customizable as I'd like. So for the moment, it's just used as storage and a streaming media server. I wrote a batch script to automagically extract torrents as the finish, and move them to the NAS, for instant viewing.

I was originally hoping to use the NAS for my Music, TV shows, Movies, and as a backup solution for my user profile, but I severely under-estimated my space usage. I had purchased two 1TB WD Caviar Blue drives to run in JSON, but after having the first drive fail in under 24 hours, I decided to put them in as Raid-1 mirrored. So 2 2TB drives would have been a better investment, though at the time I thought I would already be getting 2TB of usage, and 4TB seemed a little excessive. As it stands, the NAS has only our TV shows, and is 75% full and climbing. I'm not too worried about it, most of the big TV show packs I have are ripped copies from my DVD box sets; If I have to throw a DVD in instead and delete the rips, that's not a huge deal. For the moment.

Planning ahead, I'd really like to look at getting a 5-bay QNAP NAS, which should give 8TB total storage, with a hot spare in Raid-5. Between all the PCs and the current NAS, we are using about 3TB, so that should give us plenty of space to grow. Having the failure protection will be really nice as well. One of the neat features with both the ZyXEL and the QNAP NAS' is that they can operate not only as a media streaming server, but also generic file storage, iTunes home network sharing, and an endpoint for VPN access. Having access to everything on the go would be fantastic, though not really a necessity at the moment. Jobs in the future may require a bit of travel though, so it could be soon.

An aside: I am a big fan of Newegg. They generally have the best prices on all the hottest electronics. However, my track record with them recently as far as storage is concerned, is not the greatest. Of the last five drives purchased, 3 have failed. Some people I've talked to indicated this could be due to how the drives are stored before shipping, but I have to say: Don't purchase storage from Newegg. You may pay a little more for the same product, but if improper handling is causing an inordinate amount of drive failures, you have to factor that cost in as well. The replacement may be free, but lost data is still costly. Also make sure you don't put your drives vertical, as they could spin too fast and let all the data fall out! ;D