Midnight Adages I

You win some and you lose some. Pick your battles. Great advice for those actually in control of the military. The civilian has no call, they can’t pick the battle or are prepared for the fight. They just choose to put themselves out there and see what comes at them and hope they survive. The trained private has no call, they can’t pick the battle or the fight, but when it comes, they are prepared. This is the difference between foolishness and faith.

When the wrestler goes into the ring, they are not there to fight or to win, but to put on a show. They may fight, they may win, they may cower, they may lose. But in the end, it doesn’t matter as long as the audience is engaged. What is the show and who is the audience? This does not matter, as the show should be you and the audience no one.

The Athletic Programmer

Sometimes I think it would just be easier to just throw my best at my work. I’d happily have someone paid to constantly coaches me and tell me how I can improve and have me work on the skills that need improvement. Instead we are used for the skills that we are already good at, regardless of if there is room for improvement. Part of an athletes job is to sit down and hone their skills, spending hours practicing. Only a small fraction of their time is spent performing but by this point they have neared perfection. In corporate America, all of our time is spent performing with almost no time to practice and only the bare minimum of training. We spend most of our time doing the tasks we are already good at and not expected to learn new skills as part of the normal routine. If I were able to spend half my day coding brand new things in frameworks and languages I had never used, the other half of my day would be more productive and I would probably do a better job since I had spent time building parallel neural pathways. They always said in school practice makes perfect, so why doesn’t that same principle get applied in the real world?

Google gives their employees 20% time to perform mental exercise and  practice and look where they have gone with that. How can you have your employees become athletes?

The Linux Lifecycle

So sometimes you need to pick a Linux distribution to install on a machine that is possibly going to be up and running for a really long time. Here’s a diagram of the lifecycles for Fedora, Red Hat Enterprise Linux, Debian, and Ubuntu. Basically if you want long term support, always go with RHEL. (I made this for my LUG@GT Linux for the Enterprise presentation)

Life Tidbits I

If you are unhappy with something, fix it.

If you are unhappy with someone, communicate it.

Controlled rants are good, they let you organize your thoughts.

A blog post is often just a controlled rant.

When in a room full of people, you can often learn more by observation than conversation.

Are you a conversation circle floater or commiter?

Stand your ground when confronted until you get a full scope of the situation.

Politics and religion are a great discussion item, but only in small groups.

Fall of the Freshman: The Army

Do they not see what happens around them?
Are they naive as to the purpose of the men encircling them?

The wise men sit on the edge, praying for them to learn, to notice, to join their ranks.
But they are blind to them, only noticing those encircling them.

They get attention, a private army of attention, at their beck and call for them.
They don’t know why them are around them, but that they are there and there for them.

The wise men say from the edge: Ignore them, for they are not who they claim to be.
But they discard their wisdom, only listening to those attending to them.

But then the army changes allegiance, a new General is in town. The old one gets thrown aside, tossed to the wind, and forgotten.
Only then do they listen, and they listen hard.

The Interview

Welcome, grab a seat, sit down, make yourself comfortable.

Do you need anything? A coffee? What would you like in it? I’ll get you some sugar, I’ll be right back.

So what interests you in this position? I know the benefits are excellent, but that’s pretty standard for your role in this industry .

Ah, you are drawn to working for me. Great! That’s what I like to hear. Give me a second to look through your portfolio.

Wonderful. Nice work here, I like the risks you took with it, they really pay off. As you know, working for me means I expect you take part in our endeavors to live a healthy lifestyle. Also, as you probably have figured out, this role is not appropriate for married or even in a relationship prospects due to the commitment involved. I can’t actually ask you your relationship due to hiring laws, but I’m strongly suggesting you volunteer that information to me so we can make the best decision.

Oh, you eat only vegan? Interesting. I’m a pretty big fan of meat myself, I find a way to live healthy while still eating it.

Are you a morning person or an evening one? I find that it is of utmost importance that you would tend to be awake when I am so I can call you at any time.

What’s one of the hardest challenges you’ve had to tackle in a previous position? Oh, you’ve been fired by a previous boss? What was the reason?

Wait, you’ve worked in this same role for someone else before?

Well, uh, that about wraps things up here. Tell my receptionist to send the next prospect in.

Oh, and remind her to stop accepting applications via the mail from Russians.

Java Huffman Encoding Library

For a homework assignment in Georgia Tech CS1332, I needed to write some Huffman encoding tools in Java. Since I ended up using generics and writing reusable code, I’ve thrown it up on my Github at https://github.com/kurtisnelson/Java-Huffman for anyone to use.

This software is being put in the public domain with no warranty.

The Fall of the Freshman: Beginnings

Little Miss perfect gets into school, her 4.0, her AP credits, her surplus of extra-curricular nonsense, her laundry list resume, her stunning looks, with the long blonde hair, the skinny lanky legs, and the smile of a southern belle. Her daddy made millions, and her mother was her 30 years ago. On the surface, she’s perfect. On the inside, her self esteem is trashed, her personality fractured, her education useless in the real world, her street sense that of a baby. High schooling has prepared her for nothing, her extra-curriculars nothing more than cheap glitter.

The fragile creature is pushed out of the nest with a quick pep talk and a bundle of clothes, and plops down in the middle of the real work, in a grimy, dank, city with thousands of other equally fragile and lost sheep. They are stuffed in a cubby with a buddy and set loose on the world. In her prior world, everything was pasteurized for success. Failure was censured away, hidden from view, filtered from the mind, and labeled a non-option. The delicate graph of friends was setup for success in the clean room environment of the high school, with carefully orchestrated social interactions of lunch tables, cliques, and crowds. All that goes to waste, and is replaced by adulthood, the ultimate challenge, a life with no parents, no teachers, no safety net, goggles, and pasteurized milk. Viruses, bacteria, and psychology fly through the air, embedding themselves in anything, any crevasse, any weakness or wrinkle in the skin. Character is destroyed and rebuilt, and previous persona worthless. The world stalks the sheep with the vengeance of a wolf, and the sheep has the wool on their back. Here enters the freshmen, ready to rise, or most likely, fall.

AAAA for TinyDNS PHP Function

TinyDNS has no native support for IPv6 so adding AAAA records is odd. These 3 PHP functions will generate the records for you allowing you to integrate them into your DNS/DHCP management system and sync with TinyDNS.

$ip = $_REQUEST['ip'];
$ttl = 86400;
if(isset($_REQUEST['ttl']))
$ttl = $_REQUEST['ttl'];
$host = $_REQUEST['host'];
$ip_a = ip6Array($ip);
echo ip6AAAA($ip_a, $host, $ttl)."
";
echo ip6rDNS($ip_a, $host, $ttl)."
";

//Pad out and turn into array
function ip6Array($ip){
//Make sure we have 8 parts
while(count(explode(“:”,$ip)) < 8){
$ip = str_replace(“::”,”:::”,$ip);
}
$ip_a = explode(“:”,$ip);
for($i=0;$i<8;$i++){ $ip_a[$i]=str_pad($ip_a[$i],4,”0″,STR_PAD_LEFT); } return $ip_a; } //Takes in a padded IPv6 array and returns a tinyDNS entry function ip6AAAA($ip,$host,$ttl=86400){ if(count($ip) != 8 || $host == “”){ return; } //Convert to octal $oct=array(); foreach($ip as $i){ //Convert the hex into two octal chunks because tinyDNS says so. $p1 = base_convert(substr($i,0,2), 16, 8); $p2 = base_convert(substr($i,2,2), 16, 8); $oct[] = “\\”.str_pad($p1,3,”0″,STR_PAD_LEFT); $oct[] = “\\”.str_pad($p2,3,”0″,STR_PAD_LEFT); } //Assemble it $result=”:”.$host.”:28:”; foreach($oct as $o) $result .= $o; return $result.”:”.$ttl; } //Takes in a padded IPv6 array and returns a tinyDNS entry function ip6rDNS($ip,$host,$ttl=86400){ //Now let’s make the rDNS $result = “ip6.arpa”; foreach($ip as $i){ $result = substr($i,3,1).’.’.substr($i,2,1).’.’.substr($i,1,1).’.’.substr($i,0,1).’.’.$result; } return “^”.$result.”:”.$host.”:”.$ttl; } ?>

Swinging

A dark cloud approaches. There is rumbling in the distance, it is dark, and getting darker. I still sit outside on the lawn, swinging back and forth, back and forth, for no reason. People scamper down the sidewalks faster than normal for no reason, the sky is just getting darker, no reason to fret. It swings back and forth with me on it, requiring prodding every couple to keep going. The rumbling is dark, and is getting darker, the sky is loud, and is getting louder. Yet I do not care. The sky does not rule me, the rumbling does not intimidate. I just keep swinging, back and forth, back and forth. Slowly, the world starts spitting at me. Larger and larger until it stings. Balls of water are now flinging themselves at me, but I just keep swinging. It will stop, I am in control of it, not it of me. It slows down like rain to a nice sprinkle. I keep on swinging.