Someone asked me earlier this week what I thought were hallmarks of professionalism, not in any specific context or job, but as a general rule.

It wasn’t a difficult question for me to answer, as I think about this from time to time as an IT-Semi-Professional.  What did catch my attention though was some of the answers I heard from other people.

Let me start with what other people thought defined being professional.

Continue reading

AKA: Something that has caused me to lose a lot of hair.

My coworker Steve had started asking me questions about Windows 10 deployment, as we’re probably going to be in Windows 10 land next year.  I said everything I’ve read involves deployment solutions other than Altiris, our current deployment solution.  I said my roommate has suggested a bunch of things, but Windows Deployment Services is probably the easiest to work with.

If WDS is the easiest to work with, I am really glad I went with it because, my god, it has made me pull my hair out a lot over the past week

Continue reading

So on 11/16 I wrote about fixing “Janky Cables”, specifically regarding a console to USB cable.  That post was available here.

I am pleased to report that the cable was successfully repaired!

2016-11-22-11-30-41

Take a look at that.  Isn’t that a beautifully patched cable?

As a reminder the pin-out was:

USB Black to RJ-45 Pin 2 (Brown-White)
USB Green to RJ-45 Pin 4 (Blue-White)
USB White to RJ-45 Pin 3 (Green)
USB Red to RJ-45 Pin 5 & 8 (Blue & Orange-White)
USB Shield to RJ-45 Pin 1 (Brown)

I soldered the individual wires in the cable and used heat-shrink tubing on the individual wires also.

Once I had the wires all soldered together, I carefully wrapped them in electrical tape.  I then used another piece of heat-shrink tubing to bundle it all together and keep it from looking atrocious.  Pin 6 and Pin 7 from the network cable are snipped and individually heat-shrink tubed to prevent feedback/cross connecting accidentally.

Sure enough, I plugged that cable into a Keypad and a Computer; the Keypad lit up immediately.  Soon after I heard the standard Windows found hardware audio.  A moment later, the keypad was responding to input and the PC accepted the input.  Huzzah!

Sure, the colors don’t match up, but the cable actually works now.

And at the end of the day, when a new keypad is $180 and the only way to get this cable is via that (it’s not a standard Console to USB cable a’la Cisco): I’m very happy to have fixed 2 of them and saved the district close to $400.

Besides, they only have to last for a year until we switch to ID Card Barcode Readers.

I hope.

So I’ve been working on a project relating to Bungie’s game Destiny and it’s been an interesting project and process so far.  It’s my first project of this scope and size, and it’s also a project I’m not getting paid for (both because I’m an idiot and because I like a challenge).  I’ve learned a lot so far, especially about PHP Objects, Laravel (because my roommate won’t shut up about it [Sorry Nick], but it does sound really cool in his defense so I get where he’s coming from), CSS, and Javascript.

Reader beware, you’re in for a scare.

Continue reading

Been fooling around a lot with Destiny API lately. It’s been an experiment in strangeness, to say the least.  It has been a little difficult to work with, but only because at my office (where I do my thinking) the API Documentation is blocked (because Games are the devil at schools) which makes it tricky to figure out what data I need to provide in order to get the data I want (like having to provide a Platform ID and a Character ID in order to get number of kills).

That being said, it’s a learning exercise for objects and classes in PHP, which is fun.  It’s certainly a good distraction from the clusterfuck that is American Politics today.

Continue reading

We just received new UPS units (Battery Backups) for our office since we got new ESXi infrastructure (Cisco Hyperflex, which is baller frankly) and the power requirements changed as a result of that new infrastructure. Plus, the old batteries were starting to die in mass quantities (after not being replaced for 3+ years…) which was leading to headaches up to and including loss of power in the datacenter. Not cool.

Cisco Hyperflex

Cisco Hyperflex

APC SmartUPS X 3000

APC SmartUPS X 3000

These new SmartUPS X 3000 are VERY cool though.


We just finished configuring the management interfaces for them, and that got me to thinking: running ping checks on these is all well and good but what kind of data can we pull from them via SNMP.  If it’s on the network I can grab data from it, that’s my story and I’m sticking to it.

Thankfully the management cards support SNMP v1 through v3, and the configuration of it is easy enough.  That’s an exercise for the reader, if you can’t figure out the 3 clicks it takes then the rest of this will probably be way over your head.

So I set out to write my first set of truly self-written monitoring templates.  It was surprisingly easy once I started to read the documentation for Zabbix 3.0.

It’s got three “Applications” with different items, about 15 total:

  • UPS Connectivity
    • Ping
    • Packet Loss
    • Response Time
  • UPS Information
    • Battery Installation Date
    • Firmware Revision
    • Serial Number
    • System Model
  • UPS Status
    • Battery Remaining Capacity (in %, the charge left on the battery)
    • Battery Run Time Remaining (in minutes, the time until bad things happen)
    • Battery Supplying Voltage (in V, the voltage the battery is supplying to the battery backup system)
    • Battery Temperature (in C, the temperature of the battery)
    • Input Frequency (in Hz, to check the quality of the power)
    • Input Voltage (in V, to check the quality of inbound power)
    • Output Frequency (in Hz, to check how the UPS regulators are working)
    • Output Voltage (in V, to check how the UPS regulators are working)

It has a bunch of triggers too.

  • Battery Remaining Capacity 1% (Disaster Alert)
  • Battery Remaining Capacity 10% (High Alert)
  • Battery Remaining Capacity 25% (Average Alert)
  • Battery Temperature Excessive >36C (High Alert)
  • Battery Temperature High >30C, <36C (Average Alert)
  • Inbound Power Quality Warning (+/-20 V over spec, +/-10Hz over spec, while power still being providing (>0 V input))
  • Inbound Power Failure (0V being supplied)
  • Outbound Power Quality Warning (+/-20 V over spec, +/-10Hz over spec, while power still being providing (>0 V output))
  • Packet Loss
  • Response Time
  • Network Unavailable

All the triggers depend on the network being available, so the dependency is set there.  Additionally, Inbound Power Quality Warning depends on Inbound Power Failure.  I do not like duplicate alerts.  These were fairly interesting to write up and the expression constructor was VERY helpful, as was the expression tester.

Expression Constructor

Expression Constructor

Expression Tester

Expression Tester

Here is the Zabbix template, in case you’d like to use it. 🙂

smart-ups-x3000-monitoring

Here’s a screenshot of the monitoring so far:

UPS Monitoring Latest Data

UPS Monitoring Latest Data

Cheers, and may your Zabbix instance alerts be few!

-M, out