Archive

Archive for the ‘me = geek’ Category

Me: 1 – Logitech: 0 … hacking apart Logitech’s XML

June 8th, 2009

Hello dear readers (all 1 or 2 of you that are left due to my lack of updates), I am alive! Contrary to popular belief, I did not fall down a ditch; never to come out. I am here, and have a brand new post. As for not updating very often, I apologize. You ever have one of those days when you wake up and have to go to work…then when you are done, you simply don’t want to do anything at all? Or a day that is just busy, and when you are done, you want to do nothing more than flop on the couch and try to beat a vegetable at lack of action? Yea…well, I’ve had one or two of those….or forty, in a row.

So, my faithful Microsoft Intellipoint 5 button mouse finally gave out. After months of hiccups, missed clicks and tracking errors…it finally bit the dust and became so unreliable that I had to give it the boot. I used the opportunity to finally go wireless, and minimize some of the clutter on my desk, minimize some wires, and extend the reach of the mouse. I settled on a Logitech MX Revolution. Rechargeable battery – check, wireless – check, many buttons – check.

The SetPoint software, however, left a bit to be desired. Before I go any further, let me explain to you my love of the middle mouse button (or third button). In Firefox, it opens links in a new tab, closes tabs, and activates the scrolling mechanism. In TF2, it was my reload button. Logitech, however, decided that the middle mouse button simply wasn’t important enough to be an available option for button mappings.

The MX Revolution is pretty cool. It has your normal right/left buttons, a 4 way wheel (which also can act as a button…more on that later), a button right below the scroll wheel, 2 buttons on the side by the thumb, and another toggle switch of sorts under those. The Revo also has the nice option of having a clutch for the scroll wheel, which allows for some super fast and super smooth scrolling, without the clicky clicks. This behavior can either be toggled by the scrolling speed, or by pressing the scroll wheel in (using it as a button, as stated earlier). In the Logitech software, you can set that mouse wheel to act as your middle button instead. This is all well and good, since I love my middle button, but the click action is very hard; it wasn’t made to act as a button that is pressed multiple times per minute. That being beside the point, I like having it as the option to switch between scrolling modes. This leaves the button right under it, which is actually in perfect position to act as the middle button. It’s in between the right and left buttons, easy to press in, and easy to reach. Perfect…let’s set that as the middle/3rd button in the Logitech software!

Oh wait…you can’t. What? Logitech, did you REALLY not allow that as an option? I mean…really? I can use it to search stuff, flip documents, auto scroll, invoke Winamp, be a double click, close stuff…pretty much any function you can think of EXCEPT middle button. I mean, a nutless monkey could have coded the software better to allow that as an option. Sure, you can install an alternate driver, but I don’t recommend it since it breaks other functionality (such as using the side toggle as win+tab in vista), and generally doesn’t work as well.

So Logitech: this means war! A war that I intend to win. And I did win. See, (ok folks, this is where it gets geeky, so be warned) Logitech stores all the button configurations in an XML file on your hard drive. In Vista, that file is stored in C:\users\YOUR USERNAME\AppData\Roaming\Logitech\SetPoint and is called user.xml .

If you open up that user.xml file, you will see that all the button configs are pretty straightforward XML format…all you have to do is replace the correct section with a correctly formatted, modified version. So…I made that little ’search’ button my middle button by changing the button 6 configuration to the following: (No, I have no idea why it’s button number 6, but labeled as button number 4…it doesn’t make sense, it’s probably left over from some copy/paste I did when banging around the XML, but it works, so sue me)

button-config

(I’d like to have posted the text directly, but wordpress thought the XML was supposed to get parsed, even though it was in between code tags…oh well)

Voila! I now have a middle mouse button! So so nice.

Software, me = geek , ,

Tricking around in ESX VirtualCenter

April 2nd, 2009

Virtualization is great…it’s the current hot item in IT. Everyone is doing it; it’s the future of datacenter consolidation.

…it’s my current project.

After a few days of research, some CBTs, and a few meetings, we finally decided to start implementing our grand master plan. Brand new 16 core server with 128GB RAM…check, ESX licensing…check, sanity…check.

After deciding on our virtual network and disk architectures, we finally went to work. VMware is ungodly easy to setup, it’s almost scary.

Next step was getting our VirtualCenter server up and running, and this is when the fun begins (and by fun, I really mean WTF). In the title of the post, I mentioned something about “tricking” around in this particular portion of the setup process, so allow me to explain.

VirtualCenter is basically just a consolidated ESX host management solution. Instead of connecting to each ESX host individually to manage it, VirtualCenter (VC from now on) allows you to manage all your hosts from one area. In VC, you can make ESX clusters, manage Distributed Resources, manage VMotion, and a whole bunch of other goodies. It runs on top of a basic Windows server, uses Active Directory for authentication, and is supposed to make everything nice and easy. Indeed, it does; the interface is great, and manageability is superb…it makes my job all that much easier.

Installation is pretty straightforward, and after clicking “Next” a few times for the VI Client and for the VC server, you think you’re golden. Of course, there are some steps you have to perform as pre-requisites for VC.
First, you need to create a database for it. Well, I’m lying, you don’t particularly HAVE to create a database for it, since it would offer to install MSDE in the same step, but we have a SQL 2005 Cluster…why not take advantage of it? So, created a database, and assigned a domain user myDomain\esxdb as db_owner to it.
Next, create a system DSN to point to that database using NT Authentication. Make sure you use the SQL Native client since it’s SQL 2005, and you’re ready to roll.
Finally, during install, provide the installer with the DSN name, the username, and the password that it will need to connect to the database.

Wait wait wait…so what about this trickery you keep talking about?
Let me get to that!

Next up…installing the Update Manager and the Converter. Go through those steps…and wait…it tells me that the VirtualCenter server is not running? I JUST INSTALLED THE DAMNED THING…on a brand new clean server, no less.

Ok then…I go to the Services menu and try to start it manually….fail. Fail? FAIL?!

Looking through logs (which are in C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\Logs …yea don’t ask why they are there, they just are), I see this:

[2009-04-01 16:20:21.613 'App' 1784 error] ODBC error: (28000) – [Microsoft][SQL Native Client][SQL Server]Login failed for user ‘NT AUTHORITY\ANONYMOUS LOGON’.
[2009-04-01 16:20:21.613 'App' 1784 error] Failed to intialize VMware VirtualCenter. Shutting down…
[2009-04-01 16:20:21.613 'App' 1784 info] Forcing shutdown of VMware VirtualCenter now

Now wait a minute…why the hell is it trying to login to the SQL server as anonymous when I damned clearly provided a username and password for it, and I’m logged into the VC server as a domain admin, so even if it was passing active credentials, it should work. However, it was not.

So ok…what if I go back to the DSN and specify credentials there. Nope, can’t do that…it’s either NT authentication (which does not let you pass credentials), or SQL authentication (which does). Putting domain credentials into the SQL authentication fields result in a whole bunch of fail.

Ok then, next step: create a local SQL user, and use that instead. So I create a local user called esxlocaldb on the SQL server, make that user the db_owner, and re-run the installer for VC. I give it the credentials of the esxlocaldb user (after changing my DSN to use those SQL credentials, obviously), and it comes back and tells me that the credentials are incorrect. I doublecheck everything, do a test in the DSN config window, and everything is dandy…but the VC installer simply wont work.

So now, the trickery begins. In order to install this F-ing thing, I basically had to have both the esxlocaldb user as db_owner AND the domain\esxdb user as db_owner to the ESX database. For the DSN, I gave it the esxlocaldb credentials using SQL authentication, but for the ESX installer, I gave it the domain account. This seemed to work flawlessly.

I think that the installer is just wacked…it uses the DSN credentials to query the DB, but VirtualCenter actually requires a domain user to have access to it. Really, makes no sense to me, but we basically tried everything else. Every other possible combination of database rights and DSN configurations.

Makes no sense to me, but it works now…if anyone has any comments on what we may have missed, I’m all eyes and ears.

me = geek, work

The Awesomeness of IISADMPWD

January 29th, 2009

First of all, I bet most of you are wondering what the hell IISADMPWD even is. Well, basically it’s a tool built into Windows 2000+ and IIS that allows password changes over the web. You go to a webpage, type in your username, current password, and new password, and it updates your information using ASP. This works on local workstations, domain accounts, you name it. It’s quite awesome.

I wish I had known about this tool two years ago, when I was asked if there was any way for VPN users to change their domain passwords (which they used to authenticate to the VPN) remotely, without having to be on the domain.

Setting it up is pretty easy, but it’s not really documented very well anywhere. A bunch of websites reference it as a tool to use for this purpose, but most just leave it at that; Microsoft tells you how it works, but not how to get it running initially. Well…here is how to get it running…after the jump:

Read more…

Software, me = geek , , ,

Iphone posting test

July 23rd, 2008

So I caved and bought an iPhone to replace my broken blackberry. So I also became an app whore and downloaded a bunch of apps including the wordpress app. So here is a test post from it. I wish more apps supported landscape view
, especially these: ones that involve a lot of typing.

me = geek ,

Asterisk Training at Digium – Day 2

July 9th, 2008

“Mind if I sit here as I wait for my to-go order to come out?”
“Sure, please…”, I said as I motioned toward the chair across from my table at Po-Boys Factory.
“So, where are you from?”, she asked.

Is it that transparent that I’m not from around here? Well…yes, of course it is, but the thought still struck me as a tad funny.

What ensued next surprised me, being a seventeen year citizen of Philadelphia; a friendly conversation with a complete stranger. This says something about the people around here: They are friendly. This is not exactly something I’m completely used to, living in Philadelphia all these years. From the moment I arrived in AL, I haven’t met anyone that is rude, pushy, arrogent, or even not smiling. I’m beginning to like it around here.

Anyway, back to Asterisk, as that is the primary reason for my being here.

Today, as the rest of the week will be, was an early day. Instead of the comfy 9:30am arrival time of yesterday, and in order to accommodate the amount of material that needs to be covered, training now begins at 8:30. Even though AL is a timezone behind, I did not feel like leaving my bed at all. The snooze button is your friend….numerous times over.

Finally, I managed to convince myself that I actually DO have to get up. Splashing some water on my face, I finally sprang to life. Due to the previously mentioned snooze-button-fest, I didn’t have time for breakfast (Oh, but that Waffle House down the street looks so inviting!) before leaving for the glass house that is the Digium HQ.

Ok, now to Asterisk…really this time.

Today we started to really dive into the core of *. We set up voicemails, learned how to deal with prompts and inputs, and setup some SIP and IAX (that’s pronounced eeeks, like geeks) trunks. The technology behind VoIP is actually quite wonderful, albeit somewhat flawed, especially when it comes to NAT setups.

This makes me wonder, actually, how our phone system at work functions at all. The ASA we have is pretty locked down, yet taking a linksys or Polycom phone home seems to work without needing a VPN. Either the ASA is pretty smart, or Scott opened up all UDP traffic to the Asterisk box. I’m going to have to check the access-lists when I get back, because if all UDP traffic is wide open, somebody is going to have some words.

The day was long; we didn’t finish the training until about 6:10 or so. At the end of it, though, I was not bored of sitting in a classroom, nor was I tired of Asterisk. Twelve step program, here I come.: “My name is Luke and I’m becoming an Aster-holic”. I realize that it takes a very specific kind of geek to actually enjoy writing code for phone systems. It’s unique, although C programmers, web developers, et al would also argue that their art is unique. I digress, however, arguing that programmers and developers have typically written code to serve one particular purpose, whether it be a financial application, a video game, or a web site. In turn, they would argue that I am “just” configuring a phone system, but I think it’s so much more. Asterisk doesn’t have a singular purpose; it’s not just a call router, just an IVR, simply a mechanism to send outbound calls over, or just a voicemail system. It’s all of that, and more. I don’t think that in a week, I’ll come close to realizing the full potential of it, but in just two days I have gained a completely different appreciation for it…and we haven’t even gotten to the fun stuff!

The key difference is the fun in learning. Anytime I learned a programming language, it was very systematic, and each one was for the most part similar. Phone systems are a different beast; their code isn’t like any typical programming language, although AEL helps people with programming backgrounds (like myself) ease into the role. Sure, developers can put some easter eggs in their code, but how many IDEs have a built in sound that says “weasels have eaten our phone system”, or “our phone system has been overrun by iguanas”, or a collection of monkey noises? How many of them would actually be willing to put that into production code? Rest assured that my extension at work will soon be filled with fun stuff (until some stickler VP decides to ruin my fun). I can only imagine what Allison was thinking when the Digium folks asked her to record some of these prompts, but the on-site hilarity must have been incredible. Come to think of it…who the hell actually even came up with some of the things for her to say…if I ever meet this person, I need to buy them a beer or something.

Anyway, that’s all for now. As I learn more fun Asterisk stuff, maybe I’ll post some code segments, or try to dissect our setup at work based on what I am learning here.

Read more from the Digium guys themselves at http://blogs.digium.com. Some of it may not make sense to normal people, but it’s a fun read nonetheless.

Also…I apparently have a nickname now at Digium…Luke the Blogger. I guess somebody there has an alarm setup for any WP posts that have asterisk/digium in the title :)

Software, me = geek , , ,

Digium Training in Huntsville, AL

July 7th, 2008

The beauty of having a blog with no set purpose is the ability to write about anything I want. I don’t have to confine myself to tech articles, sob stories, essays or stories from my past.

Today, I write about a little something called *.

Asterisk is an open source PBX that runs on top of UNIX-based operating systems. It is developed primarily by a company called Digium, whose headquarters are in Huntsville, Alabama.

While the state of Alabama isn’t exactly known for its technical prowess, I must say that I was more than impressed with Huntsville. It wasn’t all farms, plains, or BBQs. The buildings in Huntsville are all very modern…very “techy” looking. For example, look at the Digium headquarters…looks pretty nice, eh?
digium hq

So why Asterisk? My work has been running an Asterisk phone system since January, and until recently it was maintained by one of our peons in Texas. This particular peon no longer wanted to have anything to do with the phone system because he is busy with everything else (aka, Core network, WoW and consulting for other firms [yea, I know...]). So basically, since this transition was still done under the old Regime, he got away with dumping the administration of * onto Ryan and I. Neither of us knew anything about asterisk at the time the project was thrown onto our laps. Studying peon’s config files and using some quick documentation he wrote (simple doesn’t even begin to describe it), we managed to keep the old system alive for a decently long time. The server, however, was never meant to handle the call center AND the corporate phones, and was in dire need of an upgrade. Since it was still running asterisk 1.2, we wanted to have the current 1.4 version running on the new server. Not knowing much about asterisk would have made this particular project close to impossible. Ryan was sent for training first, taking my spot because of my prior conflicting arrangements. Using his newfound knowledge, my ingenuity, and some late nights, we were able to transition (fairly) smoothly to the new server. All the problems that we had in 1.2 went away; no more echos in the phones, no more crashes of the box. We did, however, introduce a couple of new problems, but those bugs were quickly squashed.

Fast forward to today. The current asterisk implementation is running. We have queue_metrics setup and running. However, as in any great company…or any company, actually; redundancy is key. We needed a second person to have enough asterisk knowledge to be a primary for the system. That…would be me.

So here I am, sitting in a Holiday Inn in Huntsville, Alabama. Day one of training is over. Asterisk is compiled on my machine at the Digium HQ, a simple dialplan is active, and I’m full of hot wings and pulled pork from dinner.

Huntsville isn’t so bad after all. I expected much worse…but I must say two things:
1. Southern belles DO exist (Hey, blond from the plane…call me. Blond from the Digium HQ…you too).
2. Being alone here; I’m pretty fricken bored.

Software, me = geek

The Wii Woes

December 18th, 2006

The Nintendo Wii might just be one of the greatest inventions in recent years. How do I know this? Well, it is the only game system EVER that I have ever had dreams about. Well, only one dream…but still.

So there I was, having a good night sleep, filled with the usual empty void, which is just the way I like it. An eternal darkness that allows for complete serenity and maximum rest was enveloping me, and letting me sink deeper into the chasm of emptiness.
I have been trying to purchase a Wii since the day it launched. It launched November 19th, 2006…a Sunday. I thought it was a great day to launch a console since I did not have work that day and had no other reason to wake up early, allowing me to possibly camp out for a Wii. Ideally, I would have liked to get it at midnight from a 24 hour Wal-Mart or Target. Redshift and I had completed a game of NHL 2007 on my Xbox (in which I completely annihilated him), and decided to give it a try. We arrived at Walmart at 12:01 or so…and before we got in the door, the Wiis were sold out. Obviously this was not to my surprise, I was just wishfully thinking to get one. At that time I wanted a Wii…but I didnt NEED a Wii. I just wanted to play the new Zelda….and I was bored. Mostly the latter. From Walmart, we drove to Target and Toys R Us, just to see what the crowd was like. I’ll tell you what…people are hardcore. They had the whole setup…tents, generators, grills, the works. At that point, without realizing it…it was already 5am. I had a decision to make: Should I camp out for those few remaining hours in the hopes of scoring a Wii…or go home. With my last bit of sanity, I chose to go home and play some more NHL.

Its 4:00am, and I’m standing inside a generic looking electronics store. It could have been Best Buy, it could have been the electronics section of Target, Walmart or Sears. It didnt matter…all that mattered was that I was standing in the Nintendo section looking at two beautiful white boxes that simply said “Wii” on them in an intricately smooth font. The glass is open, taunting me, begging me to take it and not look back. Money wasn’t important, the lack of time I would have was irrelevant, the fact that there was two Wiis staring back at me transcended everything.

I had a decision to make. It was not whether I should buy a Wii at this point. No, the decision was: one….or both?. Should I buy both, and ebay one….do I want to be THAT guy? The response didn’t take long: fuck…yea! I grab those two boxes with Superman’s super speed and race to the register. Upon getting there, with the biggest smile on my face, I hand the cashier my credit card. She looks at me and asks “Do you have a voucher for this?” You have GOT to be kidding me… “What voucher is that, ma’am?” She responds, “Well in order to get a Wii, you had to have pre-purchased it and gotten a voucher to pick one up”. Devastation…the look on my face went from post-sex bliss to the kind of look a 8 year old gets when his first hamster dies. “So…you have these in stock…there is nobody in the store to take them…and I cant have one?” Thats right….there was not a single person in the soul…it was just me and the wicked witch…the cock-blocker.

I turn around to leave when I experience a moment of genius. I go to find another salesperson, who mysteriously appears as if I created her with my mind. “I’d like to pre-purchase a Wii”, I say. “No Problem”, she responds. I’m in the money..I’m ON the motherfucker, as Samuel L. Jackson would say. “I saw that you had a few in stock, would I be able to ‘pre-purchase’ a Wii and just grab one of the units I saw on the shelf?” I readied myself for another blunt kick to the balls, but instead I heard “yea..I saw we had some, let me grab one for you”.

Its 5am at this point, and I’m not even tired. I have the energy of a 5 year old who just ate a whole box of sugar. I frantically look for Zelda among the games and I grab the last copy they have. I do a sub 10 second 100 meter sprint to the register, and a minute later I am walking out with a bag containing a Wii and Zelda. I’m walking out of the store, I see the light from the outside, I’m almost there.

My alarm clock rings…I wake up. Fuck

me = geek

Server Oddities

November 9th, 2006

Lately, I have been noticing that the server has been working a bit slower than usual. Being the resident geek that I am, I decided to check into it.

So there I am, looking through “top” and process lists, scanning /var/log/messages and pretty much doing everything else you can think of. In the process I found a few cool and odd things.

The first thing is…I noticed the uptime on the server read 4 days. Now, I sure as hell do not remember rebooting the box, even in various intoxicated states. I also checked my eggdrop bot in the shacknews KOCK radio channel, and he reported being up for 47 weeks. Various googling led me to this post: http://www.jimohalloran.com/2002/12/30/linux-uptime-wraps-around/

Basically….the 2.4 linux kernel resets to 0 after about 497 days. So we have a “yey look my linux box as an uptime of over 500 days” and a “wtf were they thinking”

The other thing I noticed, in my messages log…was that some random asshat decided to try to root me. The rhost was showing up as web8.conquestbusinessventures.com .

The first issue here is….that hostname does not resolve to anything. The second thing is…go to that conquest website…its all kinds of odd. Scam/spam perhaps?

A whois check on the domain reveals that the admin and tech contact email addresses go to a nonexistant domain. Fun huh? Anyway…fortunately for me, they can try to ssh in as root all they want; they won’t get anywhere since I have root logins disabled.
Apparently, Im not the only one…a lot of sites are reporting traffic from various conquest domains, none of which seem to exist, and none of it being legit.

ANYWAY…all that aside…why was the server working slow? Wasn’t Joe Wannabe-cracker. It was actually partly my fault.

I had set google to index the site, AND the photo gallery, and had posted a link to the “random funny images” gallery on a few places. Well…that gallery has a large amount of items in it, and I guess people just did not want to click through them all. I had the slideshow feature enabled, so why not use it right….wrong!

Gallery 2.0….a WONDERFUL piece of software…who happens to have dropped the ball on the slideshow module. Granted, there is not anything WRONG with the module per se…it works as advertised. However…it pre-loads the entire album’s slideshow before displaying it. So it goes through every picture, resizes it to the slideshow size, and creates a new 2gig instance of the slideshow…all while taking up 95% processor for a minute or two per request.

Yea…sorry guys…slideshow disabled for now.

me = geek