Archive for the ‘technology’ Category

not so elegant hacks

Some time ago, I went through, as I do on a semi-regular basis, and updated passwords on everything I could remember. I have tools for this. The tools are very good at making things random and hard to guess or hack. They let me specify the types of characters that should appear in them, and how long they should be, and all kinds of funny rules to consider.

This time, I decided to also update the passwords on my DSL modem at home. The maker is Actiontec, although ultimately that isn’t relevant. On the password screen, they accept any character on the password screen, and entries of any length. Given that, I chose my 16 character mixed profile, which is pretty much the strongest one I generally use. A very few sites/apps accept longer ones, but not usually. The dialog accepted my new password, and saved it, and since I was also experiencing some port connection issues at the time, I decided to reset the modem. No problem, everything came right back up minutes later, and I was good to go.

I popped back onto the admin page for the modem, and was going to login to verify that the memory usage was back down to nominal levels. What’s this? An error??? Let’s see here… “Your password cannot exceed 15 characters in length”. WHAT??? It let me enter 16 characters when it asked. How can the login screen only take 15? So then I think, ok… maybe it automatically chopped the final character off? Nope. Maybe it chopped the first character off? (Ok, I admit thats kind of out of the realm of reality, but I’m getting desperate here)… Nope. After trying many different further combinations, including my old password, ALL CAPS, no caps, etc, I decided to do a little more poking around. Fire up the firefox debugger, and look at the code evaluating on this page. Sure enough, there is a routine in the javascript there that is validating my input on that page, and checking to see that the input <= 15 characters. Ugh.

So, I realize at this point that I could reset the modem back to factory defaults, and go ahead and reconfigure my custom settings. I have some specific port maps setup and this is generally a big pain in the butt, so I decide to try contacting their support first. Hit the webpage, leave a message with my email address, and await my reply. A few days later, they do so, indicating that the login page should be able to accept any password length that the password reset script would have allowed, and that I should check to make sure I’m typing correctly.


Really? Um, ok. That is like asking me if the power cord is plugged in. They indicate there is no “backdoor” and that I need to reset the modem to defaults in order to resolve, thank you for playing, we’re considering this issue resolved, and please don’t ask us any more of your stupid questions. kthxbye.

Alright, so now I get back in and try all the things I did before, thinking…ok, maybe they’re right, I just typed it wrong, and went through all the usual logical steps that I could have accidentally done things incorrectly, and I get the same result. As a last ditch effort, I go in and check the code again, except this time, I’m going to try and play with the values. Once again in the debugger I enable a breakpoint in the javascript, and start stepping through the code, watching the values of several different variables I see defined to see how it manipulates things before it finally submits the form. This time, I leave off the final character (going back to a 15 character, allowed value), and step it past the check that was previously failing. It does some more manipulation of the username, password, the current ip address, etc, and then sets that big long string into a new variable just before submitting. So just before the exit, I go back into that variable, and add my character back, by hand, in the debugger console. Click “Run” and close my eyes a bit. Wait 5 seconds… open my eyes… I’m logged in!

Every once in awhile, all the crap I went to school for actually comes in handy. No, not the most elegant hack, but it got the job done.



The final leg of the journey went fine, and sleep-less-ness aside, all is well. I sat out on he porch (pictures forthcoming) by myself for about 30-45 minutes once we got settled in. It was about 11am local time, and maybe 70 degrees out. There was a slight wind constantly going (as is normal here), and the bliss feeling was nearly instantaneous. My earlier complaining about the process of travel, while not invalid, was quickly outweighed by the benefits of being here in particular. I do really like it. The view is awesome off the porch. There is nothing going on here except us relaxing. No pressure to do anything or see anyone. This is, by far, the way I prefer to travel. I think we have two actual agenda items to hit while we’re here, and no particular day those things need to happen.

One is to get the kids to the beach here. There will likely be some minor stress associated with that, but no more than normal kid-wrangling for any outing, anywhere. And the second is to go fishing. No idea what is in season right now, and honestly, it is more for Madeline than me. But I’d like her to see the whole process anyway. I have no idea what she’ll think of it. She might not like it at all. Sometimes she is utterly fascinated by things that squick other kids (Zombies), and other times, the smallest things frighten her (vacuums). Its hard to predict. Right now, it seems like she is hesitating, so we’ll try to come up with a way to sell it. She’s also never been on a boat before, so that might be a challenge in and of itself.

Nearly finishing with Game of Thrones (first book). Not sure how I feel about it. It probably would have been better to read it BEFORE watching the show, to be completely fair. I am struck by how well the show has stuck to the book. Normally, there is so much license taken with making something “screen-worthy” that you either lose a lot of content, or you end up adding in things that were just flat out never the author’s intent. But so far, omissions have been small. I did bring the second book with me as well. I may take a break from that series to read one of the others I’ve brought though. We’ll see, I suppose.

And this brings up the one rationale I can possibly come up with to own a tablet reader device. Travel. I probably will read half of what I brought with me, and books just add significant weight to everything. I’d certainly much rather tote around a 20 oz. tablet with all my books on it than all the books themselves. And certainly, technical references are the same example. I can lug around a bookshelf worth of O’Reilly stuff, or a tablet with all the PDFs. Duh. Easy sell. Now that I’m focusing on management instead of pure technical stuff though, maybe that day has passed for me. In most work scenarios, I’m also going to have internet access from either a laptop or main machine, so the reasons break down there to some extent as well.

It just occurred to me that these long stream-of-consciousness posts are decidedly anti-blogorific. Blogs that are well read (at least, by me) tend to be focused on single topics and explore them thoroughly, as opposed to traipsing all over the current day’s thoughts. Maybe I’m forging a new path. Or maybe I’m just limiting who is likely to read this. Ah well. IyamwhatIyam.

More later.


More basement stuff

We’re really getting close now. Plumbing is 90% done. Basement electrical trim is done (there are a few items upstairs still to do). They’re going to be starting carpet tomorrow after a thorough cleanup. Fish tank goes downstairs tomorrow as well, and possibly the trim around the tank if they get time. We’ll have a trimout inspection probably early next and final walkthrough next week. Amazing journey, this.

The daily pictures are posted here:

You do need to be in my circles on G+ if you want to see that stuff, though, so circle me if you can’t see them and let me know, and I’ll circle you back promptly.

I’ve also done almost all of the wiring closet wiring at this point as well, and I’m very happy with the result. All CAT6 runs done, all RG6 runs done, all speaker runs done. The only remaining work is a couple more cables that come from the tv (2 HDMI, 1 VGA, a couple more RG6, etc). I still have to mount things like the infrared distribution thinger, the RG6 cable splitter, the UPS. I need to cut and put up the other time wireframe shelves too. They will hold the receiver, cable box/dvr, my two servers, the slingbox, the NAS and um… oh, the DVD player. I think that is it. All the wallplate work still remains. That should be pretty easy though, just a matter of getting around the room with some free time and doing it.

I was really pleased to see that the CAT6 keystone are punchdown and not crimp. My hands are just not as capable of hours of crimping cable like they used to. Punchdown is easy. The RG6 compression crimp is NOTHING compared to CAT5/6 cable ends. I’m actually contemplating hitting up one of the local network cable supply stores for a whole mess of 1′, 3′ and 6′ patch cables. Need to price that out and see if its reasonable and worth it. I’m sure they hire some kind of slave labor or college kids or something to crimp cables, so I’m really just pumping money into the economy, right? Right?

What else… not much I guess. It is a lot quieter now that all the saws and cutting and stuff is done. Its so close now that we’re getting into the sort of anxious excitement mode now to have our space back. Very ready for that, to be sure.

I have no idea what we’re going to do furniture-wise yet. There are a few items that were not damaged in the flood that we kept, and they will probably go down pretty quickly to start making the space usable again, but there are definitely a bunch of things we’re going to need to buy again, and not all of it (in fact, not most of it) will be covered by insurance. So it may take a little bit to get everything restocked, so to speak. In rough order of purchasing, I suspect it will go something like: couch, desk(s), shelving, exercise bike, guestroom bed, and then miscellaneous stuff like end tables and whatever else we need to fill out the space nicely.

As far as where everything is going to go… I really have no idea. The only “fixed” things are the couch, tv spot and the fish tank. The fish tank is going to be a huge project. We are definitely going to have to start it out fresh water, though I think the long term goal (once money permits) is to get back into a reef setup. The startup costs on that are going to be huge. Rough estimates say to have one pound of live rock for every gallon of water. So 250 lbs at roughly $4-$6/lb. Yeah. Now you’re with me. And that doesn’t include any of the ancillary gear you need like protein skimmers, more pumps, filtration, blah blah blah. Oh yeah, and something living. Both reef fish and corals are all on the high side of cost (at least when compared to fresh water fish). I think for the fresh water setup I will probably need some more substrate to add to what I had just purchased for the 75gal. tank. I should be able to get away with inert stuff since what I got before is good quality. A few plants, probably 1 or 2 pumps for circulation and probably some additional heating. The glass covers need to be replaced, and I want to get better quality lighting as well. I need to take a good look at the filter that came with it as well, and whether or not I can use it in conjunction with my existing eheim. If not, I’ll probably pick up another eheim. So it will be more in the order of a few hundred dollars, not a few thousand. Might not happen on day 1, but it won’t be too long in waiting either. Since it is such a central part of the new look of the basement, I’d really like to have it up and running as soon as possible.

I need to get some sleep… more to come very soon, with hopefully some final thoughts on this whole basement epic once they have wrapped up here in a week or so.


And on top of it all

I don’t think there is any more frustrating experience in the world than being a technical type person, and having to call a tech support call center that is attempting to help you, that knows ORDERS OF MAGNITUDE less than you do about your problem.

So yesterday, rewind to approximately 11:30am. I was doing some browsing to find the address of the place where we have to send our insurance check to get it co-signed. Might as well put in a quick aside about that. It turns out that if you have some kind of problem that theoretically might de-value your home, any money the insurance company provides you needs to be endorsed by the mortgage holder as well. SO yeah, off it went in the mail today. But thats neither here nor there. So, 11:40, just as I’m getting the right phone numbers to call and account numbers, my Internet goes away. Damn you, Al Gore, I thought we had an agreement about this sort of thing.

So I poke around, do the usual resetting of modems, etc, no dice. Now I crack my knuckles and break out my network juju, and get to work. It took me roughly 5 minutes to find what I thought might be the source of the problem, along with 1 other extraneous piece of data that turned out to be nothing. My modem (this is DSL) is syncing up with the CO just fine, and PPP authenticates just fine. My router is getting its static IP address without trouble. I can ping both the internal interface on the router I attach to (private, facing me), as well as its public ip that faces the ‘net. After that? Its a big black hole of traffic. So at this point, all data is suggesting that my static ip address’ route is no longer routing back to me.

So, call up their tech support, and sure… I’m in the land of first tier support, trying desperately to get out. I try every tactic I know to get escalated, but the person I am on with just isn’t having it. Time spent in that first go at it? 3.5 hours. They had me try every possible method of resetting the modem possible, including hard resets and restoring factory defaults. Which of course means that all my custom routing stuff is now gone, and I’ll have to redo from scratch. Despite all my pleadings, they are very insistent on eliminating every possible local element from the equation. So no, I can’t have the DSL modem connected to my machine through a switch. I have to establish a direct connection to it, despite those things being in different rooms in the (now very much torn apart) basement. I humor them. I have to. I figure the only way to get through this tier is to allow them to walk me through all the “are you sure its plugged” in steps before getting me on the phone with the actual network engineer who will understand the language I’m using to describe the problem.

But no, 3.5 hours, and now I have to get to my dinner date with friends. I get the ticket number, the assurance that the person is going to put complete notes in the ticket, and pray I don’t have to go down the same road when I get back home and talk to the next tech support office servicing them, which will invariably be in India or China.

Fast forward a bit, midnight, back home and get back on the phone. I still had to do a little dancing for this next tech, but was able to convince her (probably along with whatever notes were in the ticket) that we had tried every available first tier method for solving this. Her answer? You have a defective modem. Now, please note… this is the modem THEY sold me, and it is now roughly 3 months past its warranty. So in effect, any further troubleshooting is on hold until I pony up for the new modem and continue on from there. But as I mentioned earlier… I *know* it isn’t my modem. I can see the entire connection process. I can see their router, it is a routing issue on THEIR side causing this. That does… hit the escalate button. Another 20 minutes of re-explaining things to the shift supervisor, who appears to listen to reason, and indicates he has to escalate it to their routing team. No problem, I’ll hold. No sir, sorry, they only come in at 8am. But I will send an email as soon as we get off the phone and let them know that you’ll call them in the morning. Here is a new ticket number with the escalation… blah blah blah. Phone hangs up, I go to bed, now 5.5 hours into this issue, and no resolution in sight, despite having properly diagnosed the problem FIFTEEN MINUTES into it, on my own, without their assistance. I go to bed thinking I’m going to have another long day of phone wrangling.

Get up, liesurely breakfast, get downstairs …

*gasp*… routing problem fixed, all restored (well, except my modem settings). All hail the gods of whatever person saw fit to take a look at the ticket in their incoming queue and do some investigation on their own before I called in and repoint my goddamn static ip back to the router that faces me. You deserve a quick bow of appreciation and a clink of glasses wishing you a happy new year. Cheers, random network dude. You saved me a frustrating day.


the intarwebzorz are awesome

So I had a great InternetExperience(tm) a week or so ago.

A few weeks back, someone on… I think G+, linked me to an artist I had never heard about on youtube. I think the “deer park” video if I’m not mistaken. Alright, so I dig it. I make myself a youtube playlist out of it. A youtube feature I had never before played with. Congrats on making that completely simple to do.

This becomes, just through the pleasure of listening to it, my default thing to listen to while doing anything on my computer at home for the next several weeks. I am reminded that Christmas is coming up when I mention it, and so I go searching for the CDs. Amazon gives me no love. Oh, and its worth mentioning right here that I am searching for the physical media, not just an iTunes download. @set me=grognard. *shrug*

So I poke around some more, get some more info about the artist, etc, and spend about the next two hours finding out more about this guy, and ultimately, not finding anyplace that sells his stuff. Blah. The best I get is this page. It seems he signed up with them a few years ago. No CDs there, but it was late, I was tired, and the “contact” link was just too inviting. I did not have really high hopes, but what the hell. My expectation at this point is a polite form letter in response telling me that stuff is out of print, yadda yadda, have a nice day.

To my very pleasant surprise, I get an email less than 24 hours later FROM THE ARTIST HIMSELF. Now that is what the internet is all about, goddamnit. I love that. He was kind enough to hook me up this website, which he indicated (by the quick examination of the box at his feet) had about 15 copies of the album I wanted, still in stock. A short transaction later, and my order is in! Now that is just awesome.

We exchanged a few emails after that, chatted about artist’s rights, physical vs. digital media, and BigMusicCorp and such, and so I’m happy to push more business his way if my little corner of the Internet should happen to enjoy his music as much as I have. Thanks Nick! A pleasure doing business with you. Don’t stop making cool music for me to listen to!


EC2 keypair nonsense

Getting the EC2 instance keypairs to work with the various types of SSH clients out there seems to be somewhat of an issue. I had trouble with it when I first started out, and I’ve had a few friends request help on that. I just got home, started fresh, and documented my steps with all three clients below (linux command line ssh, putty and SecureCRT). Hopefully, this will save a few of you trouble where I had some initially…

Before I get into specific instructions, I should note that there *are* certainly other ways to get the specifics of this to work. This is one method. You may find others, your mileage may vary, all rights wronged, all wrongs reversed, world peace in our lifetimes, etc etc ad nauseum.


  • Using the AWS web administration, select the EC2 tab. Select “Key Pairs” on the left menu
  • “Create Key Pair” on Top Bar
  • Name the pair, in my example, I named it “TestKeyPair”
  • This will download a PEM file. Save it somewhere you will remember.
  • Now on the “Instances” panel (from the left menu), select “Launch Instance” from the top bar
  • I selected the “Basic 64-bit Amazon Linux AMI 2011.09 (AMI Id: ami-1b814f72)” AMI
  • I chose a micro instance in my zone (us-east-1b)
  • Advanced Instance Options – stayed with all default values
  • Instance Details – named the server TestServer
  • Create Key Pair – I selected “Use Existing KeyPair” and selected the key pair created above
  • Configure Firewall – used the quick-start Security Group
  • Review – Launch.

Wait until the new instance is running… find the “Public DNS” field in its properties page, you will be using that to connect.
In my case, it was

Now, for each client, again, same caveat as above… there may, in fact, be other ways to get this working. I just tried to get to a working configuration as quickly as possible.

SecureCRT Instructions :
I’m using build 6.7.2 (x64 build 229). I believe these instructions will only apply to recent builds, since the ability to use
the PEM file directly was only added recently. Older versions will probably still work, but will likely require extra steps to
convert the PEM file to the native SecureCRT format (or another format that it can use)

  1. Create New Session
    • Connect : Name – I used “test server”
    • : Protocol : SSH2
    • : SSH2 : Hostname (use the DNS name above) :
    • : Port : 22 (default)
    • : Username : ec2-user
    • : Authentication : PublicKey
    • Select the method, click on Properties
    • Select “Use session public key setting”
    • Select “Use identity or certificate file”
    • Click on “…” to browse for the downloaded PEM file
    • Click “OK”
    • All other values should be at defaults
  2. Connect
    • You will be prompted to accept the key exchange details. I clicked “Accept & Save”.
    • I was, at that point, logged in to the ec2-user
    • “sudo -i” got me to the root account

PuTTY instructions : (version 0.6.1)

There are other ways to do this (for example, using Pageant), but this is just to get the connection. Presumably, if you can get this working, you can get the other methods as well…

  1. Run the “puttygen” key generation program
    • Conversions menu -> Import key
    • Browse to the saved PEM file
    • You should see all the key details on the screen, including fingerprint, comment, type of key and number of bits
    • Click on “Save private key”
    • Save the file with the PPK file type, I named mine TestKeyPair.ppk
  2. Create new session. I named it “testserver”
    • Host Name (or ip IP address) : use the DNS name above, including the username :
    • Port : 22
    • Connection : Logical Name : I used the DNS name :
    • : Data : Auto-login username : ec2-user
    • : SSH : Auth : Private key file for authentication ->
    • Browse to the file saved in Step 1 above
    • Save your session
  3. Open the connection
    • You will be prompted that the key pair is not yet saved in putty’s cache. Click “Yes” to save the key exchange and continue
    • At this point, I was connected to the server, logged in as “ec2-user”
    • “sudo -i” got me to root login

linux ssh instructions
Linux version (uname -a) :

Linux pebkac #1 SMP Sat Feb 27 17:55:36 MST 2010 i686 AMD Athlon(tm) 64 Processor 3800+ AuthenticAMD GNU/Linux)

OpenSSH and OpenSSL versions :

OpenSSH_5.2p1, OpenSSL 0.9.8k 25 Mar 2009

This is perhaps easiest. You can use the PEM file directly to connect without additional modification. I transfered the PEM file to my linux server (using SCP) and then executed instructions as you can see below:

jio::/home/jio>>> ssh -i TestKeyPair.pem
	The authenticity of host ' (' can't be established.
	RSA key fingerprint is c2:b2:5c:1e:12:4d:55:73:a2:f3:3d:c6:09:d3:9c:cc.
	Are you sure you want to continue connecting (yes/no)? yes
	Warning: Permanently added ',' (RSA) to the list of known hosts.
	Permissions 0644 for 'TestKeyPair.pem' are too open.
	It is recommended that your private key files are NOT accessible by others.
	This private key will be ignored.
	bad permissions: ignore key: TestKeyPair.pem
	Permission denied (publickey).
jio::/home/jio>>> chmod 400 TestKeyPair.pem 
jio::/home/jio>>> ssh -i TestKeyPair.pem
	Last login: Tue Nov 29 04:30:03 2011 from
			   __|  __|_  )
			   _|  (     /   Amazon Linux AMI

	See /usr/share/doc/system-release/ for latest release notes.
	There are 14 security update(s) out of 18 total update(s) available
	[ec2-user@ip-10-194-110-99 ~]$ sudo -i
	[root@ip-10-194-110-99 ~]# ls -al
		total 36
		dr-xr-x---  3 root root 4096 Nov 29 04:19 .
		dr-xr-xr-x 24 root root 4096 Nov 29 04:08 ..
		-rw-------  1 root root   24 Nov 29 04:31 .bash_history
		-rw-r--r--  1 root root   18 Jan 15  2011 .bash_logout
		-rw-r--r--  1 root root  176 Jan 15  2011 .bash_profile
		-rw-r--r--  1 root root  176 Jan 15  2011 .bashrc
		-rw-r--r--  1 root root  100 Jan 15  2011 .cshrc
		drwx------  2 root root 4096 Nov 29 04:08 .ssh
		-rw-r--r--  1 root root  129 Jan 15  2011 .tcshrc
	[root@ip-10-194-110-99 ~]# exit
	[ec2-user@ip-10-194-110-99 ~]$ exit
	Connection to closed.



ObjectDock, again

So after not really getting any better feedback about a way to organize desktop clutter from thar Interwebzorz, I went back and took another look at ObjectDock. I still own a license. I believe it had upgraded at least once since I last used it, but not to any significant degree.

For those that aren’t aware of it, imagine the Mac dock, expanded into a “tabbed” interface so that you can create categories of icons. I can make it do the funky glowing, expanding icon thing on it if I want when I mouseover, but honestly, I’d just prefer not. The icon does grow very slightly (maybe 5-10% again above normal size), but I ignore it.

Most icons can just be dragged up into the new bars/tabs, and everything just works. A few things, notably Steam games, don’t work “out of the box”, and you have to manually redo those. The URL wasn’t something it grokked, since they use a funky Steam:URL format, like “steam://rungameid/57900”, for example (that one is Duke Nukem Forever). So I had to redo those by hand, but otherwise it just works. My desktop is once again clutter free. Phew.



I was going to post about Steve Jobs. I may still. I’m sitting here just sort of stunned, despite the knowledge that he was ill, had been for some time, and that this was coming. I certainly can’t do justice to what he has done for technology, an industry, and how he has enriched our lives over the years. Maybe I’ll get around to that at some point, but right now… I’m just going to let my mind wander through my memories and ponder it all…

Rest In Peace, Steve. Your legacy remains.


Website Optimization

So yeah, on this topic. Here are some of the things I’ve been reading recently on that:

Which led me to several websites detailing how to optimize performance:

And then the online tools to help you identify your site’s problems:

Analysis showed my page lacking in several areas. CSS Sprites and js/css/html minify being the most notable.

Interesting, wot? Maybe y’all have been paying more attention than I have, and you’re all like… yeah? So? Thats old news. yeah? Well? Not to me. So yet another area to do some learning on, which is always a good thing. Blogs have a few things that can be easily optimized, and some that can’t. But (aforementioned static hosting aside <- provide link) I’m going to give it a go on this blog and a few other sites I own or host, and see what I can do about optimizing them. I think I should be able to get their “ratings” for optimization up to an A.

I’ve moved stuff around, and all the primary site images (essentially, the brilliant buttons) are all now actually one image, with the CSS taking care of the positioning. Took awhile to get right, not the least of which time was because PSP crashed on me. More fool me. Please, Corel, just fix the goddamn thing.

I did install plugins for wordpress that help you with the minify and consolidation, remove whitespace, etc. I’m now scoring much better on those testing tools. Pagespeed now has me scoring a 69/100, nearly a 40 point improvement!


openLDAP on EC2

So, adventure #1. As mentioned in a previous post, I’m trying to use Amazon’s free service to its maximum extent. Here is how that went down: Read more


Static site hosting with S3

If you go around EC2, and just use the S3 storage facilities, there’s a lot to be gained here. The huge caveat is that you’re not dealing with a fully functional, cgi-enabled, php or other dynamic generated thing. This is just a raw mapping of files to an very simple httpd daemon. Thats it. Nothing else. So all said, your whole site has to be static content, with no funky stuff. Read more



So Amazon (Web Services) has a service called EC2, which is essentially their hosting service. Due to some stuff I’m working on at work, I have been taking a look at what kinds of service automation are possible, and that led me to look at EC2. Read more


et tu CafeWorld?

And so with FarmVille, so too with CafeWorld. Read more


So … catching up

Its been a busy few months. Amazing how much turns up to do when you’re not working. Read more



Maybe a new power gaming rig…. research ahoy.

Return top