Intuit holds your data hostage

So I recently started the process of applying for a home loan to buy a house and during the process I was asked to produce tax documents from the past 3 or 4 years. The past 3 years weren’t much of a problem till I got to the last year I filed using TurboTax’s website to file, since I hadn’t used them in several years they basically locked me out of access to my return paperwork; every road basically said I could file with the IRS to get the documents (which we all know might take the better part of a month) or I could shell out about 50$ to Intuit to purchase the current years basic ‘product’ just to get access to prior year returns. After going around and around with the website in hopes of finding another way I was left with no choice but to pay the extortion fee to access my information so I could print off my return and provide it to my mortgage originator. The moral of the story is to always check out who you are doing business with and what kind of policies for accessing historical data they have so you don’t end up getting scammed out of money for essentially nothing.

Remote Check

So I’ve been working on setting up a way to monitor a server at work to prevent my “assistant” from screwing up too badly and I’ve come up with a temporary solution until I can work out a much more robust script.

There are a few required elements, like the rc.head and rc.tail files which basically are the top and bottom of the email it sends out. Everything else is created and removed while the script is running making for a mostly clean experience. There needs to be at least (and ideally only) a one-way SSH trust from the testing machine to the target machine. I setup everything this way because the machine actually running the script is locked down to keep my boss and assistant from touching (see also: breaking) anything. Even if some fool removes the vixie-cron package this script continues to function until either a loss of network connectivity occurs or someone breaks the ssh trust (both of which in later versions will cause alert emails to go out)

#!/bin/sh

#
# Script requires rc.head and rc.tail to be at least present, handy places
# to put some generic information to be included in each alert email
# 

> errors.txt # this should zero out the file

HOST="192.168.0.229"


# function: checksvc
# argument: service name to check
# returns: string statement 

checksvc(){
SVC="$1"
SV="service $SVC status"
V=`ssh $HOST "$SV"`
        touch errors.txt

if echo $V | grep -q 'is running'
then
        #echo "$1 is running"
        echo ""
else
        echo "$1 is NOT running on host $HOST" >> errors.txt
fi
}


checksvc httpd
checksvc memcached
checksvc mysqld
checksvc crond
checksvc postfix

if [ -s errors.txt ]
then
        # errors present
        cat rc.head > mail.msg
        cat errors.txt >> mail.msg
        DATE=`date`
        echo "Scan run at $DATE" >> mail.msg
        cat rc.tail >> mail.msg
        mail -s '[ALERT]Services NOT running' -a errors.txt first.last@host.tld < mail.msg
else
        # no errors present
        echo ""
fi

# lets clean some junk up
rm mail.msg

Backing up Minecraft

I run an in-house server for myself and some friends and I got tired of manually running backups, by logging in, stopping the server, making the tar.gz file and then moving it around, so I threw together this simple script.  It relies upon an active screen session for the server and a named window called Server to be present, but other than that it should be pretty straight forward how to works.

#!/bin/sh

# change the argument for -S to whatever screen -ls says is the right value
# this allows us to target the running screen sessions so if there is a server
# reboot then this script must be updated (until I work out the code to make
# all that happen automatically

screen -S 436.minecraft -p Server -X stuff '/say Preparing for Server Backup
/say please get to a safe area soon (2 minutes)
'
sleep 2m # this should be 2m when testing is done
screen -S 436.minecraft -p Server -X stuff '/say commencing backup process now
/say this should take about 15 minutes max
/save-all
/say server is going down NOW!
/stop
'

cd mc-server
tar -cf "mc-backup-"`date +%Y_%m_%d`".tar" world*
gzip "mc-backup-"`date +%Y_%m_%d`".tar"
mv "mc-backup-"`date +%Y_%m_%d`".tar.gz" ~/backups

screen -S 436.minecraft -p Server -X stuff './start.sh
'

It wouldn’t be hard to make the script scp the file to a different server or possibly push to a cloud provider like Dropbox. The key here is that it also brings the server back up so you could very easily make this a completely automatic task if so inclined.

Git as a Backup System

So I have a co-worker on a coding project who has all but refused to use any kind of version control  ( and in general prefers to do most of his work in production ) so I’ve been kicking around ways to either force him to do the work, or at least make changes get committed to to a repository without his interaction at all. Took a little reading around to figure out the flags necessary but I managed to get everything working with shared ssh keys added into my bit-bucket settings as well as a cron job that runs at set intervals (in my case at about 10 am when the co-worker’s shift has ended) and pushes all changes including new files to the repository so that I can review what work he has done and the things he has broken. Unfortunately as I got all of this working it seems the web proxy between the server and the outside world shit the bed and I can’t push commits out to my external (and not under the control of the co-worker) repository.

Flattery…ain’t always that flattering.

So I can now say that the idea of flattery is not all its cracked up to be, at work I develop some tools that the department uses and to help out my boss and an ‘assistant’ sometimes ‘help’ out. Today that helping ended up being bastardizing code I had previously written that worked just fine.  There were lines commented out all over the place, loops within loops (with additional code that wasn’t there before) that just made the whole thing shit the bed when it came time to actually look at what was being created with the code.  Turns out they don’t know how to properly format HTML or even how to design something to be efficient; instead of just pulling data for the currently logged in user they created this huge drop-down menu that lists all the users and you pick your name out of that list.

Normally I wouldn’t even bother complaining about this here but the supervisor who so graciously left their name in comments they put into the code claims to have been a programmer at their previous job, however more and more I think they were simply writing SQL queries and using some kind of a front-end tool to format and display everything.  Sure that still indicates some level of skill in knowing how to do joins and all the other fancy wizardry associated with databases but it doesn’t indicate any kind of a knowledge about actual programming in general (like not putting things inside loops if it doesn’t need to be there) or even simple things like how to properly utilize html tags to positive effect.

A Year in Retrospect

This actually has nothing to do with a year ending so much as it does with wondering where I am in my life and where I am headed.

I spent considerable time learning how to do all kinds of things with computers, from understanding concepts of security to programming, databases, managing virtualization environments and all kinds of other things as well.  Despite all of that I work as a Tier 2 Linux Engineer for a massive company; as an employee I generate value for the business and that value translates to a benefit or service to the customers we server but I wonder if that’s really enough to be satisfied with my employment on a personal level.

I know several people who currently program for a living and take part in open source projects and generally contribute to things that lots of people use and derive benefit and profit from.  It seems kind of cliche to even think it but I can’t help but wonder if there is more to it than just being that wheel that never squeaks and gets compensated well for said lack of squeaking.  Part of me yearns to get involved in something for fun, for enjoyment and the sense of contribution to something larger than myself rather than just working 40+ hours a week to get paid, but at the same time I wonder how to balance that desire to do something bigger against the very real need to earn an income to survive.

Maybe its just the fact that I’m trapped at work on a holiday when I could be with friends enjoying a few drinks, maybe its natural sense of an ending of the year that is stirring thoughts that generally don’t get much time on the front of the stove but maybe its time to really consider what I am doing with myself, my career and life.

Timestamps in Bash

For whatever reason by default bash doesn’t add timestamps to bash.history, so here is how to make that happen.

Add the following line to /etc/bashrc

export HISTTIMEFORMAT="%d/%m/%y %T "

and now when you use the history command you get nice clean timestamps, just keep in mind this is not retroactive so it will only work going forward.  If you have just done this you might need to back out of your current session log back in or create another term window before it will start showing in the new format.

552 11/11/12 17:22:27 vi bashrc
553 11/11/12 17:22:27 man history
554 11/11/12 17:22:27 help history

Attention PC Brigrade!

poster_hoe_lg

If you look at this poster and find yourself nodding in self-affirming-righteousness please do the rest of the fucking world a favor and jump in front of a bus, because meat-sacks like YOU are the reason we have a whole generation of fucking chicken shit spineless worms being raised instead of well adjusted humans who know how to handle their fucking shit!

Beating the dead horse?

“If Congress won’t act, we’ll fight for a new Congress,” Biden said. “It’s that simple. But we’re going to get this done.”

Those are the words of Vice President Joe Biden regarding gun control; they simply don’t give a shit that the elected representatives of the people have NOT supported their agenda enough to get it to pass, they will keep pushing until they get their way.  Unfortunately there will be no stopping this move as the recently confirmed head of the BATFE Todd Jones is firmly in the pocket of the administration, so much so that Democrats threatened to rewrite the rules of the Senate in order to make sure he got into the position.  Make no mistake people they ARE coming for your guns, its just going to be a much slower process than some folks anticipated but they still are pushing the goal of disarmament.

 

Analog Thoughts

I had started keeping a journal, and I was discovering that I didn’t need school in order to experience the misery of appearances. I could manufacture excruciating embarrassment in the privacy of my bedroom, simply by reading what I’d written in the journal the day before

Jonathan Franzen

M2aj1jE

At the beginning of this year I started carrying a cliche Moleskine notebook with me almost everywhere, and trying my best to write at least a sentence in it every day. Some days I would churn out pages worth of thoughts (usually when I was agitated), while other times I would maybe put two sentences total on a page before forgetting about it for the day. Most of the entries were somehow tied to work, if not always because I wrote at work when I couldn’t talk to someone else or distance myself from things that bothered me because I had several hours left to go on my shift.  When you can’t discus something and you can’t escape it the only way really to stay sane it seems is to express your thoughts in a way others wont notice; in my case it tends to be writing because its something people simply don’t do anymore.

Continue reading