Anyone want to buy a house?

It’s for sale! Details at 100alden.wgb.me. If you or someone you know of is looking for a new home in the North Chatt / Red Bank area, send them our way!

Posted in General | Leave a comment

Electricity Usage So far in 2009

In 2007, the electricity usage at my house was at 27,751 kWh for the year. In 2008, it dropped 8.71% to 25,528. As of 2009 (just missing December), it is down by 17.73% to 19,877. If we were to go as high as December 2007 (2,642 kWh), we’d still be at a 13.36% shift down. However, I think we will most likely clock in around 2,000 (16.69% drop under 2008).

I’m not entirely sure how we managed that, though. In 2007, the place was a bachelor pad, so Justin’s electronics may have accounted for a bit higher usage. Justin moved out in December 2007, and Amy moved in February 2008. The first 3 months of 2008 were higher than those of 2007 and 2009, and I’m not sure how. Sometime around March 2008, our old 1960′s era refrigerator started screaming, so we bought a new refrigerator and instantly saw a drop in our electricity usage. So those new, fancy Energy Star certified appliances really do make a difference!

The strange thing is that we managed to add electronics to our digital collection and still saw significant reductions in 2009 and a little bit in 2008. We have added a receiver, Xbox 360, PS3, Wii, TiVo, 2 laptops, and 2 desktop computers to the mix in that time-span, but our consumption went down. Amy has been cooking more often, so even the usage of the kitchen appliances has gone up. AND we now keep the thermostat on a constant 72F year-round whereas it used to be at a mostly constant 70F. Needless to say, I’m still perplexed.

As far as energy-saving measures (they were more side-effects of other projects), we have replaced the storm door with a security storm door (2x panes of glass with plastic in the middle), replaced the door leading into the garage with a fiberglass door (instead of the hollow wood door) that also has a set of blinds in between two panes of glass. That’s about it as far as I can tell. I managed to finally close some storm windows that had been stuck for months (and years), but that was only this past weekend. I can tell a difference with the two new doors, though.

I have come up with a few more ideas that may help cut back for 2010:

  • · Install programmable thermostat
  • · New stove/oven
  • · New washer and dryer
  • · New water heater
  • · Timers for a couple things in the house (like fans) that run at night but not during the day
  • · Blinds for all the windows (even if they are always open, it would still deaden airflow around the windows)
  • · Make another pass at eliminating “phantom” power* devices or switching them off more regularly
  • · Put unused computers into hibernate/sleep mode and use wake-on-LAN when I want to use them
  • · Install window treatment film on the master bedroom windows and the office window (facing east)

That’s about all I can come up with for now. New low-E windows are too cost prohibitive. We have been replacing incandescent bulbs with CFLs whenever a bulb burns out. I also need to figure out a way to enclose the laundry room and maybe insulate it a little bit for those cold winter days where the dogs are outside or in the garage with their electric dog bed and heater. I think that even putting a ceiling over the laundry room will help retain heat that would otherwise be lost. It would also give us extra storage space over the laundry room.

Are there any other cost-effective ideas that are feasible and do not sacrifice the quality of life in our home? Is there such thing as a temperature-controlled outlet. Say, for instance, I want a heater to kick on when the ambient air temperature around an outlet (or device plugged into an outlet) goes below 45F. That would drastically help in the winter time when I forget to turn on the heater for the dogs in the morning or forget to turn it off at night.

* I have a tough time swallowing the whole “phantom” power theory. I purchased a Kill-a-watt and confirmed that devices like our cell phone chargers do not, in fact, consume electricity if they are plugged in with a phone attached. I have also tested the standby power of many of our electronics and the energy consumption is negligible there. About the only vampires that I am aware of are battery chargers for our gaming console controllers. I may consider putting them on a timer so that they don’t charge at night.

Posted in General | Tagged , , , | 3 Comments

Kevin Smith and I are pretty much best friends now

…he just doesn’t know it. But, hey, he responded to a Twitter post by one of the @PredFans participants! Oh, and if you didn’t know, he’s a HUGE New Jersey Devils fan and a pretty active Twitter user.

For those who do not know about @PredFans and ReTweetBot, it’s my little programming baby and the brain-child of fellow Predators fan Paul Nicholson (@pwnicholson on Twitter). The concept is pretty simple, it’s a bot that Paul conceived and I coded into reality that creates a common-interest community on Twitter proxied by a single Twitter account. I’ll use @PredFans as an example: Paul, myself, and a few hundred other Predators fans on Twitter follow a single account, @PredFans. The @PredFans bot looks for any @replies or direct messages sent to it and re-posts the @reply or direct message under the @PredFans account using “username: their twitter message #plus #some #hashtags”. If you go to the @PredFans page on Twitter, you can see it in action.

So, here are some screenshots of the tweets I’m talking about (clicky for linky):
andreamazing: i want to rub this win in the face of @thatkevinsmith #nhl #preds #hockey

Via @PredFans "i want to rub this win in the face of Kev" A shoot-out win isn't face-rub worthy, son. Still a point for @NHLDevils.

There’s more about our ReTweetBot and how it works from a user perspective here.

Posted in Geek Stuff, Hockey | Tagged , , , , , , , | 1 Comment

On friends becoming zombies…

“… I wouldn’t hesitate one second to put a bullet in your skull if I thought you were turning. It would be the best thing for all of us. The way I see it is this: You could see the face of your killer or face the faceless death of becoming the undead.” — Garrett Bartley 11/5/09

Posted in General | Tagged , , | Leave a comment

Vista Activation Got You Down? Bypass it! (Sort of)

Let’s just start from the beginning (aka “the excuse”). I had to install Windows XP or Vista on my MacBook Pro for the data architect class I’ve been taking. Since this is work-related, I snagged work’s copy of Vista. We have a volume license, etc, etc, so it’s legit. However, I installed it and did not activate it. 30 days later… It turns out the installation I used had a limited number of activations. I was supposed to use the upgrade copy. Long story short, I was able to just type in the upgrade key and it worked. However, I did not attempt that at first (it just seemed too simple).

So, there you are. Vista wants you to activate or it will feed your first born to kobolds. You may be able to get by without activation. Tell the activation wizard that you’d like to continue using your computer with limited functionality. This will open your default browser (Firefox for me) and take you to a web page about activation. From the web browser, go to File -> Open (or your browser’s equivalent). Now, type in “C:\Windows\Explorer.exe”. It will prompt you to download explorer.exe. Just save it to your desktop. Now, either from the Open/Run dialog or the downloads window, execute explorer.exe. Ah ha! Now you have a desktop! The start menu doesn’t seem to work, but I was able to open My Computer from my desktop. From there, type “C:\Windows\system32\taskmgr.exe” in the address bar of the My Computer window. This will launch Task Manager which will let you run just about everything else on your computer by using File -> New Task.

It’s pretty gimpy, but it worked for me. On the MacBook Pro, it also disabled right-click and some startup programs (such as Dropbox). If you want to browse hidden or system files, open My Computer and press the Alt key. This should give you the standard menu bar. Just go to Tools -> Options and uncheck the appropriate boxes.

Disclaimer: I do not intend to condone piracy or hacking or cracking or whatever negative connotations you may want to associate with this. It is simply a workaround as a last-ditch effort when activation is not an option for you. Your mileage may vary.

Posted in Geek Stuff | Leave a comment

Time Machine Backup to Samba NAS with Mac OS X 10.5.8

After a couple of days of struggling and Googling, I finally came across a resource that worked to allow Time Machine to back up to my NAS over Samba with Mac OS X 10.5.8. The resource I found is How to setup your QNAP NAS with Apple Time Machine. However, it’s not put together very well. So I decided to make my own write-up in my own words and screenshots, borrowing knowledge from other links and the rsync command from the QNAP wiki. I really wanted to have a good backup before the transition to Snow Leopard (Mac OS X 10.6).

  1. Find your computer’s name. This is found in System Preferences -> Sharing in the Computer Name field.
    Picture 1
  2. Find your ethernet adapter’s MAC address (not wireless, but the physical ethernet). This is found in System Preferences -> Network -> Ethernet -> Advanced -> Ethernet and it is the Ethernet ID.
    Picture 2
  3. Find your hard drive size. Right-click on your hard drive on your desktop and select Get Info. Then look for the capacity line. This may report something a little funny like 297.77 GB. In my case, I have a 320GB hard drive. You may need to look up the specs on your laptop to get this number.
    Picture 3
  4. Come up with a good short name for your computer. Since my computer’s name is “Garrett Bartley’s MacBook Pro”, I came up with “GBMBP”. Try to keep this as short as possible (5 characters max).
  5. Open the Terminal from Applications -> Utilities -> Terminal.
  6. In the Terminal window, type
    hdiutil create -size {Hard drive size from step 3}g -fs HFS+J -volname "TM_{Name made up from step 4}" "{Computer name from step 1}_{MAC address minus the colons (:) from step 2}.sparsebundle"

    replacing everything in the curly braces (including the braces themselves) with the proper values. Do not close Terminal just yet.

  7. Once that has completed, open Finder and browse for the network share you wish to back up to. Double-click it to open it and enter any authentication to get it to mount.
  8. Now type
    ls /Volumes

    in Terminal to get the name of the place where the network share is mounted. It should be same name as the share name, but it never hurts to double-check

  9. Type
    rsync -avE "{Computer name from step 1}_{MAC address minus the colons (:) from step 2}.sparsebundle" /Volumes/{Share Name from step 7}/

    in Terminal, once again replacing the curly braces with the proper values.

  10. Once the rsync copy has finished, it is safe to delete the file. Type
    rm -rf "{Computer name from step 1}_{MAC address minus the colons (:) from step 2}.sparsebundle"
  11. Now type
    defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

    to enable Time Machine to see your share. After this, it is safe to close Terminal. You may have to log out and log back in or restart your computer for this to take affect. If you don’t see your network share in Time Machine in the steps below, log in/out or restart and try the next steps again.

  12. Now open Time Machine by going to System Preferences -> Time Machine.
    Picture 4
  13. Click Choose Backup Disk and select your network share. Then click Use for Backup. Enter your username and password to the share if prompted.
    Picture 5
  14. Now wait for the 120-second countdown to finish. It may take a while to prepare, but it will get there eventually.
    Picture 6

To help speed things up, you may want to tell Spotlight to not index the backup. You can only do this once the backup has made it past the preparing stage and started copying data. Otherwise, you will get an error.

  1. Open System Preferences -> Spotlight.
  2. Go to Privacy.
  3. Click the + and add the “TM_{Name made up from step 4}” under the Devices section.

Another thing to consider is if you have any backup solutions such as DropBox or Mozy, you can exclude those from the Time Machine backup as well. Do this by clicking Options in Time Machine and click the + to add those directories.

This process worked great for me on my Mac Mini and my MacBook Pro. Both are running Mac OS X 10.5.8 with all software updates to-date (as of the time of posting). Depending on the amount of data on your hard drive, it could take a while. If you can, plug your Mac into your ethernet network to help speed things up.

Posted in Geek Stuff | Tagged , , , , , , , , , , , , , , , , , | 2 Comments

That’s Me on the Griffin Technology Blog!

I was featured on the Griffin Technology Blog as a prize winner from this past weekend’s BarCamp!

Here’s a screenshot just in case they archive the post and it goes away.
Picture 5

Posted in Geek Stuff, General | Tagged , , , , | Leave a comment

Networking at BarCamp Chattanooga 2009

We all know BarCamps are about networking. Typically people networking or social networking. The kind of networking I’m talking about is wireless networking.

This past weekend was Chattanooga’s first ever BarCamp. The announcement of the BarCamp was made shortly after I got back from my first ever *Camp (PodCamp Nashville 2009). Upon hearing about it, I immediately volunteered the company I work for, AirNet Group, to sponsor by supplying a wireless network. The venue, Chattanooga State, had a wireless network, but they were not sure if it would handle the load that a conference such as BarCamp might require. They had good bandwidth to the Internet, but the wireless may have just broken down under stress. We decided that a different wireless network would be needed. That’s where I stepped in.

APs
Access points and their usage in the middle of the day. I’m not entirely sure why Outside C30 didn’t report any usage seeing as to how it was the hop to the lobby and two other classrooms.

With room numbers and a single ethernet gateway in mind, I set out placing the access points. I initially brought in 3 access points thinking that such a small area wouldn’t require too many. However, the ethernet connection was in a room that sloped down with the ethernet connection being at the lowest point of the room. From there, I placed the remaining two access points in or close to the two other classrooms were pre-arranged for usage. Unfortunately, they were about 10 feet above the gateway access point and several walls away from it (despite being maybe 20 yards away). A 4th access point was needed and fit the bill nicely. On the day of the event, two more classrooms were added, but I didn’t have any extra access points on-hand to expand the network in their direction. Fortunately, there was only one wall between the classrooms and the gateway access point and that proved to be no problem. Later in the day, my coworker, Rial, came by with a 5th access point (borrowed from our wireless network at work), and I used it to cover those two extra classrooms just a little bit better. It wasn’t needed, but we had it and so why not?

AP Map
A rough map of the access point placement and the hops it took to get from C54 to the gateway in C30.

But that’s all fine and boring. What’s really interesting were the usage patterns throughout the day. As registration opened at 9 AM, you could see a steady growth up until the 10:00 hour. When everyone dispersed into the first presentations of the day, the spike continued while people were getting settled in and caffeinated to tune into presentations. Then, once the presentations were in full-swing and people put down Twitter, the usage dropped considerably. This was a pattern that repeated all day long for each presentation. As presentations started and people had yet to get their focus fully committed to the presenters, usage went up. About halfway in, people are interested and the usage drops. Then the presentation ended and the usage went back up a little. Lather. Rinse. Repeat. The patterns were much more pronounced in the 2-hour graphs, but I didn’t think to screenshot any of those until the day was over.

Usage
The usage of the entire day at 5:00 PM plus the top 10 heaviest users (are you one of them?).

Another interesting pattern, though not as accurate, was watching as wireless devices moved from the lobby to the classrooms and back. You could get a sense of which classroom had the most participants during a block just by how the wireless clients moved around. But after every presentation, they moved back to the main lobby. It was a sort of ebb and flow that I found interesting.

And, one final note of interestingness is that Apple devices seemed to make up about 75-80% of the devices on the wireless network. I know my iPhone and MacBook Pro account for at least two of those devices. I’m sure many other attendees also had a similar Apple laptop plus iPhone combination.

In all, we had a grand total of 75 connected devices throughout the day. There were no connectivity issues reported and all seemed to go way better than expected. I think Murphy must have taken the day off. I definitely look forward to another *Camp in Chattanooga that I can set up with a wireless network. I’ll take more notes and screenshots throughout the day to really see how the traffic flows.

You can also check out the pictures I took at BarCamp in my Flickr set.

Posted in Geek Stuff, General | Tagged , , , , , | 1 Comment

Structs, Arrays, and Arrays of Structs in WSDL

I’ve been getting into creating web services lately for all sorts of tasks. I started out with XML-RPC and was hammering away pretty well with it until I discovered that .Net didn’t like to play with XML-RPC. Since this was for a top-priority project at work, I dove head first into SOAP despite not wanting to have to deal with WSDLs. It seemed that I was in luck. Built-in SOAP support for PHP 5.x seemed to have finally matured and I didn’t have to rely on sparsely-documented libraries. Once I got the hang of writing a WSDL (basically, I found a good template), I was well on my way. The great thing about SOAP and WSDLs are that the server and client both automatically seem to handle a lot of error-checking for you. For a high priority action item with just a couple of hours to complete it and diving into something I knew little about, this worked out very well.

I chugged along at my various projects and web services until I hit a roadblock. I wanted to return a multi-dimensional array from PHP. That’s when it all came to a screeching halt. I could not find ANY documentation on this no matter how many different ways I tried to search using Google. Heck, I even tried Bing! No luck at all. So, I decided to put it off for a few days just to give myself time to get over the frustration. Every time I started to try to think about it, I would feel the onset of a headache and just get irritable with myself. Headaches and irritations are terrible for programming!

After a few days, I decided that maybe what I needed was to learn a little bit about the basics of SOAP. Web sites seemed to just assume you knew what you were doing with SOAP and WSDLs from the get-go. I had a working web service with SOAP and a WSDL, but I didn’t have a clue what was going on (and, honestly, I still don’t have a concrete grasp on it all). However, it turns out that sometime several months ago, the company I work for bought an O’Reilly book on SOAP and it was collecting dust on my boss’s bookshelf. I immediately snagged it and started reading. A bunch of it was pretty basic but helped clarify some things. Then, there was about a page that roughly covered structs and arrays. It wasn’t much, but it was just enough. A struct is basically an associative array value (name = ‘Garrett’, age = 27). And an array is just a bunch of repeating values. So, what if I declared a struct complex type and then an array complex type that used the struct as the value. I tested returning arrays and structs individually and they both worked. Then I put them together…and they still worked! In essence, I have finally figured it out.

So, for your geeky pleasure, I have decided to document this experience and hope that Google indexes it for anyone else out there using PHP and SOAP to return the elusive multi-dimensional array. I won’t include the whole WSDL, but just the main message and types portions and the PHP functions used to return them.

(I apologize for the horizontal scrolling, but I like to keep my code tabbed and formatted nicely.)

<!-- The types declarations -->
<types>
	<schema xmlns="http://www.w3.org/2001/XMLSchema"
		targetNamespace="http://www.xmltc.com/railco/transform/schema/" >
 
		<!-- Here's the struct for name and age -->
		<complexType name="TestStruct">
			<sequence>
				<element name="name" type="xsd:string" />
				<element name="age" type="xsd:string" />
			</sequence>
		</complexType>
 
		<!-- Here's an array that just returns a series of simple string repeating values -->
		<complexType name="ArrayOfString">
			<complexContent>
				<restriction base="SOAP-ENC:Array">
					<sequence>
						<element name="test" type="string" minOccurs="0" maxOccurs="unbounded" nillable="true" />
					</sequence>
					<attributeGroup ref="SOAP-ENC:arrayType" xsd:arrayType="string[]" />
				</restriction>
			</complexContent>
		</complexType>
 
		<!-- Combine the two and we return an array of repeating structs! -->
		<complexType name="ArrayOfStruct">
			<complexContent>
				<restriction base="SOAP-ENC:Array">
					<sequence>
						<element name="test2" type="TestStruct" minOccurs="0" maxOccurs="unbounded" nillable="true" />
					</sequence>
					<attributeGroup ref="SOAP-ENC:arrayType" xsd:arrayType="TestStruct[]" />
				</restriction>
			</complexContent>
		</complexType>
 
	</schema>
</types>
 
<!-- And returning the ArrayOfStruct in a method -->
<message name="test_struct" />
<message name="test_struct_resp">
	<part name="test" type="xsd:ArrayOfStruct" />
</message>

Now, for the PHP.

# Return the array
function test_array() {
	return array('hi','there');
}
 
# Return the struct
function test_struct() {
	$arr = array(
		array(
			'name' => 'Garrett',
			'age' => 27
		),
		array(
			'name' => 'Amy',
			'age' => 28
		)
	);
 
	return $arr;
}

I didn’t include the code for returning the struct with a single entry, but I think you get the picture. Here’s what the response looks like in SOAP Client for the Mac (click image for larger version).
SOAP Client Struct Array

I really hope that helps someone out there because it frustrated me to no end for several days!

Also, if you do have a Mac, I HIGHLY recommend downloading SOAP Client. It is a very excellent piece of software that does one thing and does it very, very well!

Posted in Geek Stuff | Tagged , , , , , , | 2 Comments

Our New 2010 Mazda 3 Hatchback

After over a week of the dealer searching and trying to make trades, they finally got the Mazda 3 that we wanted!

It’s a celestial blue 2010 Mazda 3 5-door (hatchback) Grand Touring with tech package and audio package. Features include:
– Keyless entry
– Keyless (push-button) start
– Navigation system
– 6-disc changer
– Bose speakers with subwoofer
– 17″ wheels
– Sirius receiver
– Auxiliary stereo connection
– Heated seats
– Leather seats
– Dual climate control
– Xenon headlights (that turn as you turn)
– Automatic transmission with shiftronic
– Blue-tooth connectivity
– 4-cylinder engine (~167 HP)

I think that’s just about it. All it’s lacking is the rear-view mirror with compass and the additional body molding.

IMG_0054

IMG_0059

IMG_0058

IMG_0063

IMG_0064

IMG_0065

Posted in General | Tagged , , | 1 Comment