Tuesday, December 27, 2005

Installing Sirius into a Chevrolet Silverado

This install was performed on a 2000 Chevy Silverado using the KTC-H2EC kit from Kenwood which includes the Sirius receiver and car installation accessories. In addition to this package you will also need:
  1. Panavise dashmount 751101799
  2. PIE GM9-AUX converter
  3. 6-ft shielded audio cables (Radioshack part no. 42-2483)
  4. Four 16-gauge butt crimps
  5. At least 2 ft. of 16-gauge wire
Wiring that allows for a direct connection to the vehicle's switched power is included but the included wire is too short for the Silverado's dash length. Therefore you will need to splice in an additional foot of wire using the 16-gauge wire listed. You will also use the butt crimps in this step. Be sure to splice it on the side between the in-line fuse and the connection to the car so as to not interfere with routing through the dash and into the receiver.

After splicing, you will need to open the fusebox located on the lower part of the dashboard on the driver's side. It is accessible when the door on that side is open. Attach the negative lead to the lower bolt on the inside of the fuse panel. Wrap the positive lead around one of the posts of the fuse labelled RDO #1. This will allow the unit to perform just like the radio, even staying on when the car is off until the door is opened. The labelling for the fuses can be found on the plastic piece covering the fuses.

This shows the fusebox covering removed

Next we'll want to attach the antenna for the receiver to the roof. Remove the third brakelight above the rear window using a screwdriver. Thread the antenna wire over to the passenger side using a coat hanger. On the passenger side of the car you will need to pull out the tabs holding the overhead handles in place. Once these are loose you can pull down on the handles to remove the edge of the headlining. You can then push the coat hanger through and thread the antenna wire the rest of the way down past the A-pillar and just below the glove box.


The tabs on the handles need to be pulled out

Now we'll want to get the audio portion hooked up. Make sure that the vehicle has the parking brake on and is on a flat surface. Put the key in the ignition and turn it once so that you can put the vehicle in 1st gear. As well, move the steering wheel into the lowest position. Remove the ashtry and feel underneath the bezel of the dashboard. Pull gently until you hear a click and it comes away from the rest of the dash. Continue in this fashion counter-clockwise around the edges of the bezel until you have completely removed it.

The stereo headunit is held in place by a clip on either side. Remove the unit and do the same for the environmental controls located just underneath it. Using the harness that comes with the GM9-AUX, route the end with the 9-pin connector up behind where the stereo would go leaving the other end to come out in the space below. Put some strong adhesive tape, such as duct tape, on the bottom of the GM9-AUX unit itself and place it just behind where the environmental controls would go. Plug the clear plastic connect on the harness into the GM9-AUX and plug the other end of the harness into the 9-pin connector on the back of the stereo headunit. Then plug the stereo plugs of the 6-ft. audio cable into the other side of the GM9-AUX and route the stereo wires into the compartment just right of it.


The harness included with the GM9-AUX plugs into the back of the stereo headunit


The GM9-AUX fits snugly behind the environmental controls

Now you'll want to route the power cable and antenna cable into the same compartment as the stereo cables were routed. Eventually these three cables will come out of the right side of the bezel via a drill hole. When drilling the bezel, keep in mind you will need a 1/2" drill size for a 3/8" grommet. As well, a small notch will need to be cut out next to the hole to fit the wires through since the right-angle plugs make fishing them through the hole impossible. At this step you will also want to finish up the antenna installation. Center the Sirius antenna on the roof using the length of the wire protector as a guide. Be sure to wipe down the area where the wire protector will go with isopropyl alcohol so that it will adhere cleanly. Reattach the third brake light after you are finished with this.


The power, stereo and antenna wires will exit the bezel on the right side


The Sirius antenna with a clean centered look

Using the bolts found on the upper right edge of the dash where the bezel would be attach the Panavise dashmount. Reattach the bezel to the dash by gently pushing in the edges of it and moving in a clockwise fashion around the rest of the bezel. Cut the 3/8" grommet in half so you can put the wires through it. Using a small jeweler's flathead screwdriver, gently push the grommet into the 1/2" drilled hole in the bezel making sure the wires are long enough to reach the dashmount. Attach the Sirius receiver's dock to the dashmount using the four small screws provided with the H2EC kit. Plug the wires into their respective inputs and plug the receiver into the dock. Provided the radio is on then your Sirius receiver should be on too though you may have to press the power button (the small upside-down red triangle) the first time. You may also need to press the CD/AUX button to select that audio input. Congratulations, you are now ready to activate your Sirius receiver and enjoy radio again.


Final installation

Questions?

Email me at sean.soper@gmail.com if you have any.

Legal stuff
All brands mentioned in this document are copyright of their respective owners. I am not responsible if your equipment or vehicle malfunctions after following these instructions. You may copy this information as you see fit but please cite this article as a source if you do so.

Thursday, December 22, 2005

'Syriana' proposes bold changes for US foreign policy

The mechanisms of terrorism are complex and interwoven but capturing that interplay is what Steven Gaghan attempts with his latest film Syriana. It starts out in modern day Iran showing a beautiful and scantily-clad young Persian woman preparing to leave a Western-style party by covering up in the heavy dress required by that country's religious leaders. This stark contrast between appearance and reality sets the tone for the rest of the film.

The opening scene is not the only one where a hijab and abaya are present. Much of the movie takes place in the Middle East and concerns the plans of Prince Nasir Al-Subaai, played by the very talented Alexander Siddig of DS9 fame. Throw in a CIA agent who has outlived his usefulness, a genius economist, a no-holds barred lawyer and some greedy oil executives and you get a full-blown Parallax View-like movie revolving around our ever-increasing need for oil.

Now this movie is not for those looking for cheap thrills or a sultry love story. It requires intelligence and quickness to keep up with the tempo. The scenes come at you at a fairly brisk pace and the large number of seemingly extraneous characters can be confusing. But the payoff at the end of the film is well worth any resultant head-scratching for with this movie comes a powerful and very real message: the US substitutes short-term gain for long-term prosperity and in the process creates its own enemies.

The worst part of it is that there are well-meaning people working against our best interests without even knowing it. A lawyer fighting to put corrupt oil executives behind bars can't possibly be expected to know that their actions are helping to create suicide bombers on the other side of the globe. And thus it is with this powerful imagery that we are shown how a contradictory foreign policy works against our long-term interests.

If we are to survive the next century, what with being sandwiched between China's growing need for oil and the Middle East's increasingly turbulent atmosphere, then we will need to have a unified approach to foreign policy. The doctrine that gave the mujahideen arms to defeat the Soviets but not the means to rule themselves democratically once the Soviets left will not pass muster in this new century. We must stop seeing only the short-term gains. Our long-term survival depends on it.

Friday, December 16, 2005

Howard Stern's last day on Earth

Today was Howard Stern's last day on terrestrial (or as Sirius puts it, boring and old-fashioned) radio. Being as my commute is only 30 minutes I didn't get to hear alot of it and certainly not any of the show that he did out in the street. But all-in-all it sounded like a great time was had by everybody. What is curious though is that I wouldn't have really cared much a few years ago about what was going on with the Stern show.

Back then I was only a casual listener, tuning into him when the other stations went to ads. It seemed repetitive what with the Whack Pack always on. That and it appeared that the show existed just to get the biggest gross-out [nsfw] possible. But then the FCC clamped down on him and the pro-censor activists came out in force to push him off the air. They'd been trying for years but now they had the federal government on their side.

In what has turned out to be a stunning move, Howard took what he'd been fighting nearly since the show's inception and turned it into a cause célèbre that people could rally around. Suddenly he was the symbol of a generation tired of having government censors dictate what they could hear. And our weapon of choice was not here on Earth but high up in space.

Before Howard's announcement, satellite radio was a steady but slow-growth technology for tech watchers. But since that fateful day 14 months ago (I remember every detail of what I was doing when I heard the news) satellite radios have skyrocketed in popularity. Like Prometheus bringing fire to Man, so Howard has brought censorship-free radio to America.

Let us hope that he escapes Prometheus' fate.

Monday, December 12, 2005

SUSE 10 and a glass of gin and tonic

For the purpose of installing Battlefield 2 onto my computer, I had to create more room on my Windows partition. I had considered simply attempting to resize my existing partitions but was advised against this by a friend familiar with fsck (pronounced f-suck due to its unwieldy interface and ability to induce psychosis). So it appeared that I would need to reinstall Linux if I were to expand my Windows partition. Having just found out that SUSE 10 was released via openSUSE, I now had a good excuse to spend my evening installing the latest version of my favorite distro.

But I was to be disappointed because SUSE 10 practically installs itself. After downloading the boot ISO image and burning it to disc, I then copied down all the relevant information about my chosen installation server. In this case I chose suse.mirrors.tds.net (path to install is /pub/opensuse/distribution/SL-10.0-OSS/inst-source). The partitioning took a few minutes to set up properly as I ended up having to delete all the Linux partitions, expand the Windows partition, and then recreate the ones required for SUSE 10. Package selection hadn't changed since 9.1 (my first experience with SUSE) and hardware detection got everything. It even got my 11-in-1 card reader which 9.1 had refused to recognize.

Upon reboot, my system came up quickly, much quicker than it had with the previous version of SUSE. Within 30 minutes I had Firefox, Thunderbird and my ATI drivers all installed without any issue. Hence the reference to gin and tonic in the title. It really did take me less time to install SUSE 10, package download notwithstanding, than to drink a 10 oz. glass of my favorite mixed drink. And now that I can get my camera's pictures without having to boot into Windows, the only reason to keep that OS on my hard drive is to play sweet games.

Saturday, December 10, 2005

Using CSS constants with PHP

I ran across an article the other day using my favorite Web 2.0 app that described how to use constants in CSS with PHP. The author's method I felt was a bit overly complicated however since it required the use of an additional file that would essentially replace the embeded PHP variables with their respective values. I think there is a much easier way to do this which I will demonstrate.

** file: mycss.php **
<? $mycolor = "blue"; ?>

.myclass {
font-size: 12pt;
color: <? echo $mycolor ?>
}
** file: index.php **
<html>
<head>
<link rel="stylesheet" href="mycss.php" type="text/css">
<body>
<span class="myclass">Hello world!</span>
</body>
</html>
This works because PHP is interpreting the CSS file as if it were PHP code. After it interprets it, what is left is CSS code and thanks to the type directive in the link tag, that is how it is rendered by the browser. Hence, no need for an additional file that does a massive search and replace. An online example can be found at my site.

The next challenge for me is to get something like this working in Ruby on Rails.

Tuesday, December 06, 2005

A reason to hope

First, I would like to try and explain my previous post. I wrote that after having a great evening at my company's Christmas party hosted at the Suntree Country Club. In only the few months that I've been here I have made so many friends and learned so much. I suppose looking back on where I was last year at this time, desperately searching for a new job, and comparing it to now, things have definitely changed. And this came out a bit stronger than I had anticipated. Regardless, I don't regret writing any of it.

Now I was going to use this space to write about the contribution that Open Source software, or OSS, has and will continue to make to our society at both the commerical and public sector level. But today I found out some news which really disappointed me. My friend and boss has decided to move on. Now it's not exactly public info quite yet but since nobody reads my blog I think I'm in the clear.

The last boss that I can really remember liking was five years ago when I worked for a company called ID Training. I only worked there for a few months during the summer of 2000 but I had a great time and really got to know the people there. It was painful to hear that just a few months later nearly everyone was laid off and the company was literally scrapped for parts. Anyways, my boss's name was Andy and he was super laid back. He kept me on track to finish my projects but also gave me my creative space to explore new forthcoming technologies.

My bosses of the past few years have not had such great track records. My last one liked to square the peons, namely us, off against each other in a vain effort to raise their own status. The one before that made a habit of sleeping with team members. Neither of these methods are what we would call good for 'team building'. So as you can see, my view of management had been greatly diminished by the time I arrived at my current employer. But within a short amount of time, I had a whole new perspective.

My boss Ryan never pretended to be above us but the way he treated the group got us to give him our respect. We could always count on him to get us what we needed to do our job and to those requests that were out-of-scope he gave us an honest answer. And he always put the welfare of the team above his own. I do not hand out praise like this lightly. He truly is a great manager and he will be sorely missed.

However, I must also look to the future and that means dealing with his replacement, for better or worse. In my limited experience with upper management, I think I have a lot to be hopeful for. Procedures are firmly in place within this organization and training for managers is required. Such assignments are not handed out solely based on time served. As well, yearly surveys are issued to employees to measure their managers' abilities and these results are pored over for signs of weak leaders.

So even though the best manager I've had in a long time has decided to move on, I'm not sad. I am happy that he is pursuing what is essentially his life's dream. And I am also confident that whatever person does come in to fill those very large shoes will have the training and experience necessary to do the job.

Friday, December 02, 2005

The importance of camaraderie in the work environment

I just got back from a Christmas party thrown by my company and let me tell you, it was a blast. In over three years of working at Harris I never had as good a time as I did tonight. Everybody was there from customer service on up to the executives and nobody was made to feel left out. Throw in the great food and the 'liquid' refreshments provided and it made for the best company Christmas party that I've ever been to.

Truth be told, this is the first company Christmas party that I have been to as Harris never threw one. It might have been because of the number of people in the organization but it was probably more likely due to the fact that the previous company I worked for was run by a bunch of cheap bastards. From shitty pay to horrible management, Harris has shown itself as a company unwilling to make the necessary investment to keep its employees truly happy.

The thing that brings employees together is not the common banner under which they provide labor for but instead the goal that will bring them a sense of satisfaction in their lives. Naturally this was something that Harris was never able to provide but they attempted to make up for it by always having a plethora of projects available for me to work on. Yet with my new company, despite the large number of projects that need attention, I always know that the goal of helping people is there just waiting to be attained. It must sound cheesy for those of you reading this but from my point of view it's an absolutely novel concept.

My division provides first rate medical care for those in Brevard county and will most likely enjoy many more profitable years. Their goal is not the largest profit nor the lowest operating cost but instead it is to have the happiest customers. This might sound like a strange goal for an insurance company but it's true. After bullshitting with the guys from claims and boogying with the ladies from HR, I really feel like a part of the family.

This company has treated me better in the past five months than Harris ever did in the previous three years. As a result, I will work harder and more diligently for this company than I ever have before. I want this company to succeed and my work will show that.

Monday, November 28, 2005

The upper-limit of skill

After having not played CounterStrike for nearly 2 weeks I hopped back on tonight for almost 3 hours. It was great getting to play again but with every missed shot I made I wondered if there was an upper-limit to my skill with this game that I will never surpass. I've been playing this game on an almost weekly basis for the past four months yet it seems I am just not getting any better.

Some of it had to do with my mouse acting funky but now that I've replaced it, I can't claim that as the sole cause anymore. Sometimes it's as if I will aim at somebody, shoot, and then watch them slowly look towards me, point their gun at me and plug one right in my head. All this time I am continuing to unload my clip on them with no negligible effect. It is quite irritating!

Not to worry, the M4A1 is still my weapon of choice but lately the AK-47 has found its way back into my regular arsenal along with the Desert Eagle as a handy sidearm. Three shots to the head (when I can aim properly) and they go down. Speaking of AK-47, I find it rather odd that the primary firearm for the new Iraqi Army is in fact this fine example of Soviet engineering. Media has portrayed this weapon as that used by terrorists and now our newest ally is training to use it in everyday operations. I suppose the choice has more to do with cost and interoperability with existing arms but still, it is a bit disconcerting.

Continuing on my political angle, my former representative, congressman Randy "Duke" Cunningham, admitted today to accepting bribes from various defense contractors in exchange for furthering their interests with the Department of Defense. These charges are quite egregious, carrying a prison term of 10 years and a fine of $500,000. This story hits somewhat close to home as Mr. Cunningham sponsored my application to the Naval Academy in 1997. Though I ended up going to Purdue instead, at the time it was my hope to become a Navy Ace just like he had.

Regardless, crooked politicians deserve jail time. Though Washington may be well known for it's insidious lobbying and downright nasty politicking, there is no excuse for degrading an office of Congress in this manner. If he was unable to handle the pressures and temptations of such a place then he should not have been there. To survive in Washington takes both luck and skill.

Tuesday, November 15, 2005

The cutting-edge and its place in production environments

The software developer constantly balances on the tip of a sword in their daily job. On the one hand they need to write production-quality applications in an efficient manner. But on the other hand, new tools and products are coming out every day that can help developers speed up their coding and also make their projects that much better.

These new tools however are not always ready for the production environment. I am especially wary of relying on products that are not v1.0 yet. But even those tools that are supposedly mature can introduce an untold number of bugs. When my former employer decided to go from ColdFusion 5.x to MX 6.0, the number of bugs doubled overnight. What had once worked in the old version, such as loosely-typed date formatting, no longer worked in the Java-powered strictly-typed 6.0. A minor revision a few months later helped in some places yet caused even worse bugs in others. But because in that few months time we had written applications that took advantage of all the new features there was just no going back.

In retrospect it was a good decision to upgrade however, certain steps should have been taken beforehand to analyze what changes a major upgrade would bring. This is why it is so important to have both a testing and development server in addition to a production server. With both of these tools we could have continued to develop in ColdFusion 5 while testing version 6 on a limited basis. When we made the switch to version 7, much more precaution was taken and though I was no longer employed there to see the final push I can only hope that the extra servers helped ease the transition.

Currently I am toying with the idea of using Ruby on Rails as the platform on which to build the next incarnation of my company's health portal. Whereas the accepted standard at the company is J2EE, recent articles have convinced me that the Ruby path is the true path though it may be harder in the short term with regards to management. In actuality, management at my company is fairly progressive and has never given me reason to think that they doubt in their programmers' abilities. And now that Rails is approaching the big 1, it will make adoption of it as an enterprise-capable platform that much easier.

Do not be afraid of something simply because it is new. The future is coming regardless of how we feel about it. Just as Java was once at the forefront of web application development, so I believe that Ruby is in that position today. But before you make that leap to a new technology make sure you have your contingency plan in order and are ready to put in some long hours if necessary.

Thursday, November 10, 2005

Assumptions and their impact on software development

The rhetoric we usually hear about assumptions is that they "make an ass out of you and me". But I've heard another one that I think is more fitting in a lot of circumstances: assumptions are the mother of all fuck ups. This was proven beyond a doubt today when a vendor professed to us in a meeting that he had made certain assumptions about our product and that he would now need much more time to take these new 'facts' into account.

It's funny the way facts and assumptions work. For most, an assumption is a fact until it is proven otherwise. This is especially true in software design where there are so many variables that to take them all into account can cost an exorbitant amount of time. As such, programmers tend to focus only on the big ones leaving the smaller assumptions to sort themselves out. This can and often does spell disaster for large projects.

One of the ways to help minimize such dangers, besides increased communication between team members, is to decrease the complexity of a project. Remarkable advances have been made in software development to facilitate code testing without sacrificing budget, time or scope. On the Java side, I've been hearing great things about JUnit from my friends. But unfortunately for J2EE development, overall complexity still remains a huge hurdle to overcome, even for small to mid-sized projects.

Enter Ruby on Rails. This is the most ambitious project I've seen to date to try to tackle the problem of increasing complexity and overhead with regards to web application development. I've worked in many languages over the years: Perl, ColdFusion, PHP and Java just to name a few. When I saw what Ruby was capable of I didn't believe my eyes. But after I installed it and had a web application running in under 15 minutes, I knew that this was something big.

So many of the modern web application languages available today require assumptions to be made. Configuration settings, typically stored in large and difficult to read XML files, are assumed to be static but RoR makes no such assumptions. Using inspection and reflection, Ruby can change its configuration settings at runtime so that changes made to a database structure are promulgated to the application itself without having to do the reconfigure, recompile and redeploy dance so many J2EE folks have gotten used to. And most important of all, less assumptions equals less fuck ups.

Today is the first day of the rest of my web development life. I had two books waiting for me when I got home and I can hardly wait to crack them open. So after I sign off here I'm off to dive into my new RoR books. Look for more articles here on this subject as I learn about this amazing new framework.


Monday, November 07, 2005

Close Encounters of the Third Post

I remember reading somewhere a few years ago when blogging was all the rage that on average a blogger only posted twice before losing interest and moving onto something else. Twice is precisely the number of posts I made at my previous blog attempt before losing interest. But I am determined that this time will be different. It seems that I'm thinking about this blog all the time. Whether I am at work, driving or at home playing Counter Strike, I am thinking about what I could write about in my blog. Tonight I got some real inspiration so here goes nothing.

First off, I love the DVR. Some might know this technology better as TiVo but for all intents and purposes, DVR is a step ahead. It works interchangeably with your cable provider so that the same box you record shows on is the same one you can order movies from. I've taken advantage of this fact several times and my cable company has proven to be an excellent provider.

So knowing that I use the DVR for everything I'm going to also let you in on the fact that I never watch commercials. If I have to wait an extra 20 minutes to watch a show without interruption then I'll do it. I've come to absolutely despise commericals. Most of them lack any value whatsoever and I figure that I get bombarded with enough commercials as it is surfing the web.

Tonight I saw the two-hour Law and Order: Criminal Intent movie and was absolutely blown away. It had suspense, storyline and more. And just when I thought it couldn't get any better, guess who walks in: Colm Meaney. In case you aren't a huge Star Trek fan like myself, that's Miles O'Brien of TNG/DS9 fame. But my obsession for Star Trek can be saved for another blog entry.

Anyways, so Colm Meaney walks in and his character is a complete 180° from those that I remember him in. He is a salacious and repulsive character, absolutely disgusting. But he played it so well that after the show, it was difficult to imagine him as the mild-mannered Chief Engineer of Deep Space Nine. But without giving too much away, let me just say that it was a great episode and that without DVR I would have a lot more time on my hands to write in my blog.

Friday, November 04, 2005

Sushi rocks!

With nearly all of my fellow co-workers out today due to various circumstances, I ended up going to lunch with just the boss. His name's Ryan and he's a pretty cool guy. He's not much older than me, likes to party and totally understands the direction that the web is going. Oh and he also likes sushi. And not just the California rolls but octupus, tuna, crab, et al. He even had the sushi chefs whip up a special roll for us. It had tuna, cream cheese and all sorts of spices and was fried in tempura. Mmmm, so good. I had that meal over seven hours ago and not even a single pang of hunger.

Looking back on my blog from yesterday, I still didn't fully explain the meaning of my blog's title. So in addition to the M4A1 being my weapon of choice on Counter Strike, it is also a gun that I make no effort at concealing whenever I have posession of it. It comes with a silencer that you can attach but that just slows down the rate of fire and besides, it makes pretty colors without it. So hence the blog title.

There are some other topics that will come up in my blog from time to time. I'm a huge political junkie and a progressive. So whenever this administration makes a gaffe, which seems to be happening with increased frequency, don't be surprised if I comment on it. Actually, the Senate, House and silly politicians in general are all fair game as far as I'm concerned.

Thursday, November 03, 2005

Com os belos companheiros

The title of this (my first!) blog comes from a Brazilian drinking song and means "with my beautiful friends". I've only managed to memorize the first and last verses but I keep trying. Hmm, I suppose folks might be wondering what I intend to write about in this space. Brazil definitely. Audis. Sirius. Counter Strike. Oh and my newest love: Ruby on Rails.

I actually had a blog about a year ago. I set it all up on my own personal website and made my best attempt to keep it up to date. But the time between updates got longer and longer. I just figured it wasn't worth it anymore and that it was more of a blight than a nice looking feature so I took it down. Lately though I've had a lot on my mind, things that I want to get out and I figure that this is as good a place as any where the entire world can read it ;-)

I've actually been surfing the web for 10+ years now. I started with a dialup account at an outfit called CNS in my hometown of Carlsbad. I was only 16 at the time and I remember having to go out and buy an additional 8MB of RAM so I could browse the Internet graphically. I'd been using BBSes for a few years at that point so the transition was fairly gentle. But once I made it there was no turning back.

High school graduation happened a few years later followed by college graduation and recruitment by a central Florida-based company called Harris. Times were good at Harris for awhile but then things turned sour. To save this space from becoming a rant against bad management (and a few bad managers in particular) let me just cut it short by saying that I ended my tenure there to begin working at a great local company called Health First Health Plans.

In the three months since I started there I have come to love programming again. I was put in charge of taking a barely functioning web portal written by three wannabe CS guys (actually I think wannabe CT would be more apropos) and turning it into something that my company could market as a feature of their health plans. We're a lot closer to making that a reality, a month away perhaps, and the future is looking very bright.

Oh, you're probably wondering about the title of my blog. It comes from the fact that my favorite weapon in Counter Strike is the M4A1 (pictured right). It's a wonderful weapon only available to Counter Terrorists but whenever I play Terrorist I always take the opportunity to steal one off the dead body of a CT. That's short for a Counter Terrorist player, not somebody degreed in Computer Technology as it was referenced above.

Anyways, I've rambled on far too long for a first blog. I will do my best however to keep this space updated, unlike some certain other bloggers I know.