Monday, April 26, 2010

Dark Themes for Eclipse

If you've been following along you'll know that I'm dipping my toes in the Android development waters.  My buddy Greg aka Android Code Monkey has a great step-by-step tutorial on setting up your development environment.  I did a more in depth how-to on this subject over at his place.  If you just want the quick and dirty see below ;)

If you've done any development at all you'll notice how stark white the Eclipse IDE is.  Given the natural g33k affinity for poor lighting conditions this can be very tiring on the eyes.  I found THIS post which covers how-to apply ready-made color themes.  I'll keep it simple for you here ... download THIS file and extract the 2 files (org.eclipse.jdt.ui.prefs & org.eclipse.ui.editors.prefs) from your desired theme folder into 

WINDOWS: [workspace]\.metadata\.plugins\org.eclipse.core.runtime\.settings\
LINUX/MAC: [workspace]/.metadata/.plugins/org.eclipse.core.runtime/.settings/

There are screen capture previews in the root of the downloaded file.  I chose the Zenburn theme pictured below.



The download link for the themes no longer works.  So, I've encapsulated the original .zip archive inside the "Theme Files Hidden Inside" image above.  Simply save it and open it with your favorite compression tool.



Wednesday, April 21, 2010

Enabling Local Development

Sometimes you've got to take a step back from what you know and think.  We've been managing hosts files for years.  In fact, one of my previous posts discusses how we make sure each user keeps the most up-to-date copy on their PC.  That's still required for some things, but when my most recent request came in to assist with local development on the developers machines it gave me pause.  This is what I came up with ...

Use DNS.  We already have DNS setup for our domain mydomain.local.  All of the machines in our environment register themselves there.  We also maintain local copies of our public domains with the internal private IPs so we can manage and test the environments even when they're not publicly accessible.  One of the things we implemented many years ago were wildcard entries so ...

A host entry for * in the domain mydomain.com would resolve for pickle.mydomain.com, mail.mydomain.com or www.mydomain.com.  We also implemented subdomains in the scheme to allow for simple development and testing.  A * entry in dev.mydomain.com and test.mydomain.com makes pickle.dev.mydomain.com and www.test.mydomain.com valid ;)

The developers were using their local hosts file to reference pickle.dev.mydomain.com so that the URLs would match data driven lookups.  The trouble is they had to maintain a huge hosts file and things can get crossthreaded very easily.

That's when it hit me ... use a wildcard entry in a new subdomain named local and point it to 127.0.0.1 in DNS.  Now pickle.local.mydomain.com and www.local.mydomain.com both work from each developers' local workstation.  The hosts file entries are greatly reduced and revisions/management of said files has all but been eliminated.


It also makes surfing from the server itself possible which can be priceless in troubleshooting -- or proving to the devs it really is their code having a problem and not the server, network or firewall! ;)

Monday, April 19, 2010

Beating Microsoft's Xbox Live Payment System

I have 2 boys.  Both have Xbox Live accounts.  The $7.99/mo fee drives me crazy.  I usually watch for the on-line deals that get me 13 months for $30, but I don't always keep up with it.

Have you ever used https://billing.microsoft.com/home.aspx?  It's pretty infuriating.  You cannot remove a credit card from the account.  So, if your irresponsible teenage boys decide they want that new Halo map pack you're pretty much screwed unless they fear the HAMMER (visualize my clenched fist raised in the air).

I, however, have found a work around!

It requires a PayPal account or a credit card that gives you temporary numbers to shop online with.  Login to your M$ billing site and add a new credit card with your PayPal plugin.  For safety's sake make it a 1-time use card.

Now delete your "real" credit card from the account.  Add your 12+1 Xbox Live card if that's what you came to do and then jump over to PayPal's site and void the new card.  Now your kids have 13 months of Xbox Live but there's no valid card on file so they can't purchase anything new without your help.  You also won't be automatically charged $7.99/mo in 14 months ;)

I'm sure a similar thing can be done with iTunes, World of Warcraft, etc.  iTunes and World of Warcraft have purchasable cards to add credits/time to the account.  There's really no need for a valid card on file.  You'd think they'd give parents tighter control, but face it; there's no upside in them fixing it.  They want your kids to buy stuff :)

Tuesday, April 13, 2010

Printers and Microsoft's TCP/IP Port Monitoring

I found it.  This article has a lot of detail, but it does not discuss the impact(s) of turning "SNMP Status Enabled" off.


Open your printer properties, select the port and click "Configure Port."  This is the check box of which I speak:


Now I've got some testing to do ...


Based on the data in this M$ article I have cleared the SNMP Status Enabled check box and the rogue traffic has stopped.  I will test printing and provide another followup later.  Sounds silly I'm sure, but that's one less interrupt every 70 seconds on my PC ;)  I print once every 2 weeks or so.  I wasn't getting much return on my investment.  LOL

My PC is chatty (snmp-read)

I've been on a firewall monitoring kick lately and I've noticed a lot of office computers chatting on http and/or snmp.  Mine for one was trying to open snmp-read on 192.168.1.4 all throughout the day.  That drives me crazy.  Yeah, I'm that guy.

So, how do you go about running that down?  Use the firewall to your advantage.

The firewall will tell you not only what IP address and port you're trying to talk to, but it will also tell you what port you're talking from on your PC.


Now we can use netstat -ano to tell us what process ID (PID) is using the the source port 65365.


Finally, we can use procexplore (a free SysInternals tool) to determine what process has PID 1740.  You can also use Task Manager, but I like the SysInternals tool better.



The print spooler ... dang it!


And, there you have it.  My girlfriend's printer.

My next post will hopefully be on how to make it stop talking all day long ;)  Really Microsoft?!  Do we need to query the device every 70 seconds?  Why don't we just talk to the printer when we try to use it.

And people wonder why are PCs run so slowly ... sheesh.

Thursday, April 8, 2010

1st Rule of Data-Comm ... Always Check the Connection

That one seems so obvious.  I know.  It is one of the universal truths.  I recently fought for hours with a NetApp appliance trying to figure out why it was having issues.  Turned out to be 2, not 1 but 2 bad GBICs!  I managed to duct tape and coat hanger the brain to the disk shelves while I waited the 24 hours for warranty parts replacement to get me the new GBICs, but I can never get those hours of troubleshooting back.

Everyone I've ever talked to says those things are notorious for failing.  A $300 part the size of a USB thumbdrive is notorious for failing yet we continue to use them in our enterprise class equipment.  Makes no sense to me.  At least I have several fiber loopback testers and a couple of spare GBICs on hand now.

1. As simple as it sounds ... check the connection first

2. When it's not the connection check permissions ;)

Nokia IP330 Smoothwall Express 3.0 in practice

Just a quick note to say this firewall is working perfectly.  Smoothwall is an outstanding product.  I have both public and private wireless networks at my office.  The public wireless was sitting behind a Linksys router.  I configured the Linksys as an access point (turned off DHCP, plugged into a switch port rather than the WAN port, etc) and put the IP330 between it and the Time Warner cable modem.

I have nothing allowed inbound and opened only http/s, dns, pop3 and smtp outbound.  The IP330 is acting as the DHCP server and is forwarding DNS.  I couldn't ask for a better solution ... and it's free -- double bonus.