I was also formulating my order at the coffee shop and barely caught the error below just before I pressed send. This is also why I initially leave the TO: line blank and re-read almost every email I send before I press the send button.
“These machines are self-contained and we will only need access on ports 80 and 443, as well as a medium decaf latte, RDP access”
I should know better than to order a server with Java on it
As a student of both my Dad, and Sun Tzu, the following advice has proven useful to me over the years.
The English translation I prefer is:
“The best victory is when the opponent surrenders of its own accord before there are any actual hostilities… It is best to win without fighting.”
Being prepared for what is ahead, and framing your perceived position to be one of strength, can often yield a successful outcome without the need for a more involved, high-risk, confrontation.
One of the stories my Dad told me gives a great example of this…
Dad was behind a car at a traffic light and noticed the driver seemed very nervous and kept glancing in the rear view mirror. It was a long light, so he had time to run the plate to check for any abnormalities.
Sure enough, the driver had reason to be nervous, as he had just stolen a shiny new sports-car, and the marked police car behind him seemed to have figured this out.
For whatever reason, Dad ended up in a lot of car chases in the 33 years as a cop and started carrying a helmet to keep from getting banged up as much.
When the car came back stolen, he reached over, grabbed his helmet, put it on, and tightened the chin strap.
Expecting the guy was going to run as soon as the light turned green, he caught the driver looking back at his now-crash-helmeted self and gave a huge grin indicating he was ready for an epic car chase.
As soon as the light turned green, the driver went through the light and pulled over before Dad even turned on the lights and siren.
When Dad got to the window and asked him why he pulled over, the driver says…
“Sir, this car isn’t mine, and honestly I was gonna make a run for it… But when I saw you strap on a helmet, I knew you meant business.”
Posture and preparation can often provide a shortcut to the desired outcome without the struggle and risk of conflict.
Buffalo Mountain is a great short hike in Southern Virginia. I find it hard to believe that I had never been there until yesterday.
When I was a kid, my family spent a bit of time in Laurel Fork at a cabin my Grandfather built himself in the 1970’s. On the drive there, and from the top of the hill behind the cabin, you can see a tall rock face on the horizon. Just five miles away, and something I had seen hundreds of times, I didn’t know the name of this mountain until one of the locals asked if I had hiked it.
The tallest thing in several surrounding counties and I haven’t stood on top of it? This must be remedied in short order.
On a previous visit to Laurel Fork with my wife, we tried to locate a trailhead just by casually driving in the direction of the mountain. We got within a couple of miles, but there wasn’t a proper trailhead. We could get there just by following a topographical map, but crossing private property in Confederate Battle Flag country is not something I would recommend.
After more research than should have been necessary, I found the correct name (by mistake I was looking for “Bull Mountain”) and this post with plenty of great info.
If using GPS, you can plug in this address to get you most of the way there, then enter these coordinates to get you to the trailhead.
There were a couple of routes to the top that I explored. The route I took up is the more travelled and better maintained route, so I’d recommend it for at least the route up. If you’re feeling a bit more adventurous on the way back down, just follow the ridge-line, don’t fall off a cliff, and you’ll find the parking lot again without much trouble. The route up is marked with red blazes and the route back is somewhat well marked with pink surveyor flags.
Note for hikers with dogs
If you have a fawn-colored pup that even remotely could be mistaken for a deer, make sure you bring an orange blaze vest of some sort for them to wear during hunting season. The season had just opened a week prior and I forgot to bring anything, so Lina got to wear this stylish grocery bag.
Unfortunately it was very foggy on this day and nothing to see further than 50 feet or so. Fortunately this is the perfect excuse to go back one day soon.
This morning, my wife asked me to fix the printer so that she could print some forms. Sure, I could have spent a few minutes fighting with printer drivers and what-not, but I hate printing and printers – They seriously stab at my soul.
If you remember the MadLib notepads you had as a kid, then this will be very familiar to you.
The premise is that you have a story with words cut out by type.
For example, “_______ (person in the room) is an excellent _______ (job / profession) who once _______ (verb) a/an _____ (noun) with his/her bare hands”
There would be a separate page with the following form, and while filling it out you can’t see how the words will fit into the final narrative shown above.
Person in the room
Job / Profession
Once completed, the form might look like this…
Person in the room
Job / Profession
Then you transfer the words into the narrative from earlier and you get the unusual story of George the fireman who impales sharks.
“George is an excellent fireman who once impaled a shark with his bare hands”
Since I was unsure of her internet access at the location of the event, I needed to build something that was completely self-contained and did not need internet access while it was running. She has a Mac, so slapping together a WPF app wasn’t a straightforward option without installing a VM.
I’ve been learning Node.js in my spare time (since @chimon1984 thinks it might catch on one day), so this was a perfect real-world scenario for me. I had about an hour to time-box the project and set off to code it up in my pajamas on a Saturday morning.
The technologies used are all free and very simple to install and get running with. I’m assuming Linux or OS X, but it could be made to run on Windows without many additional steps.
If you want to check out the code and try it yourself, hop on over to the GitHub where I’ve posted the code. Feel free to use it any way you like, as it has a standard MIT license and submit Pull Requests for improvements and updates. There’s a todo.txt section with things I might add to it as I have free time (whenever that mythical time might be).
Of all the things in the world that I procrastinate about – and there are a few – packing for a trip is the one thing I try to put off the most.
My wife finished packing yesterday and clearly has better Tetris skills than I do. She did a week in Tokyo last year with just a carry-on.
Granted, I’m not traveling as light as I had planned from a photography standpoint. I had this grand idea to switch to a mirror-less primary like my wife shoots with, but I forgot to actually buy one and make that switch.
So out rolls the Pelican. This thing is bomb-proof, but sitting empty it’s already halfway to the 10kg weight limit for carry-on bags. I’ve had to check it once, just once, on an overbooked flight back from shooting a wedding in San Francisco and was on pins and needles the entire time.
I’m trying to cut everything that’s not necessary but I can’t bring myself to leave the 500mm telephoto at home and miss out on obligatory Puffin close-ups. At 2000 grams, this lens is case and point why I’m over the limit.
For my checked bag (autocorrect thinks “cracked” bag and may be correct) I can have up to 23kg in it, but nothing breakable.
I find myself weighing things on a kitchen scale, 50 grams here 75 grams there, and so forth. Did you know a AA battery weights 25g? That really adds up and not in my favor. After taking the batteries out of everything and moving it to my checked bag, I have ended up with a bunch of batteries zip tied together in what I can only imagine looks like a redneck dirty bomb on an X-ray machine.
The trick is to see when they are weighing things and make some modifications once I’m in the tunnel to board. My backpack and Pelican collectively weigh 20kg, the allowed limit for steerage like myself flying coach. However the split is uneven due to the weight of the hard case. By switching my three lenses to my backpack and being exceedingly careful with it for weigh-in, I can switch them back to the safety of the Pelican once I’ve made my fighting weight.
So I’m off with 41kg of gear and clothes for 10 days near the arctic circle.
I seriously need to make the switch to mirror-less.
I have a project in which I’m maintaining both a beta and a release branch. Bugfixes need to be applied to both branches, except in cases where the bug has already been fixed in the release branch, in which case it would only need to be addressed in the beta branch.
Yesterday I ran into a case where I wanted to just merge a single commit from “beta” to “release” in order to apply a fix from “beta” directly to “release.”
It Kind of blew my mind how easy this was…
1. Find the commit you want to take from the source branch beta. In this case its hash was af19aadbcfa61d2d2816307044318d637d35cee5.
2. Switch to the branch where you want to apply the commit.
git checkout release
3. Apply the commit from dev as a new commit of equivalent changes to the beta branch.
First off, don’t run the full length of Section 9 of the French Broad past Stackhouse when the river is low. We ran it at 550 cf/s or probably less and we basically pulled the raft most of the way during this section. You can do it, but it just isn’t a good time. Check the gauge at Marshall before you set out, as that will give you a good idea of where water levels are. They’re generally the best in the Spring, but rain can change things pretty quickly.
Initially this was a pretty straightforward activity, until the moment before our shuttle left and we realized a critical blunder. In our haste to get the shuttle vehicle loaded up, we forgot two critical things – paddles. I still can’t believe we both forgot them, but next time my tried & true checklist method will be in place. Luckily Dan, our shuttle driver from Bluff Mountain Outfitters, was kind enough to give Kate a ride back to the campsite to pick up our two paddles and our spare. Perhaps she cleverly planned this all-along, because around the time she got back I had just finished inflating and prepping the boat, checking all our gear, and was ready to launch.
Kayaker’s ledge, we skirted on the left, since I don’t have any interest in just tipping the raft stern over aft onto rocks for the sake of one 5′ drop. I’m glad we took the route left of the island, as the rapids there were some of the best wave trains of the trip. I’m hoping I got some good video of that part, but it seems Windows 10 doesn’t ship with a video player installed – really Microsoft? (see the finished video below)
We stopped for lunch by tying ourselves to a dead tree in Windy Flats. A footlong sammich tastes great after a long morning of rafting. My wife was kind enough to pack us a six-pack of Yeungling, and our inflatable cooler kept them nice & cold. A train passed by and by special request blew his whistle in the valley to a great resounding echo. Thanks Mr. Engineer!
Things got a bit sideways on Frank Bell’s rapid. Kate and I were both exhausted, and I was fiddling with the GoPro when I should have been setting us up for a proper path. I also skipped a step and didn’t scout the rapid before we went over it, and we ended up much more at the mercy of the river than I would have liked. Let’s face it, a Class IV or V rapid in a boat you can technically procure at your local Walmart is more intense than it is in a 12 person guided Cadillac raft. That’s part of the reason I do it, for the extra challenge of doing it myself rather than just being along for the ride. It’s our expedition that my fearless First Mate Kate and I planned, supplied, and executed ourselves.
The water levels being crazy-low ended up causing us to get stuck on the ledge of a sideways 5-6′ drop among a series of drops at Frank Bell’s. We missed the main flow at the left, which was totally my fault for a number of reasons, and the water is just too fast at that point to retrace. So here we are, trying not to go directly over a dry rock and the strong current just wants to pound the boat into the rock. A worst case scenario would have been for us to flip over the rock sideways and take the 5-6′ plunge to the rapids below. The pool below wasn’t very large, very deep, or where we would have likely landed. I’m imagining the “discussion” we’ll be having once we’re out of harm’s way that I will totally deserve, and trying as best I can to un-lodge the raft. Since we were literally stuck between a rock and a hard place, we had to choose the least of two evils. The route to the left was wide enough to fit our raft through, but at best we were going to hit it at an awful angle. The route to the right was totally out, nope, not going to fit a raft. In this fleeting moment of insanity, I stepped onto the rock, pushed the raft down the slightly less evil route and somehow was able to belly-flop back into the raft before it miraculously went over the drop more-or-less straight and upright.
We’re past the most dangerous portion, but we’re not out of the woods yet. Frank Bells always seems to be one set of follies setting you up for your next set of difficulties. I look back over and Kate is giving me the best Grumpy Cat impression I’ve ever seen. She’s sitting in the front of the boat, which technically is now the back of the boat as the river flows, and she’s sitting under the main flow of the small waterfall that we just passed through. Again, we’re stuck, albeit in a much safer place, but not able to move forward just yet. Pushing off rocks with the paddles wasn’t working for us, so I again stepped out to push us loose. I barely made it back into the raft by way of another well-timed belly-flop, and had turned us around so that we were facing forward again for the next section of the rapid. The rest of Frank Bells Rapid was a fantastic wave train that made good and sure the raft was full of water. The river was surprisingly warm, so we had that going for us, which is nice.
Just before all the corporate rafters got out at Stackhouse – their boats can’t make the route from Stackhouse to Hot Springs when levels are low – One of the raft guides from French Broad Rafting makes this snide comment in our direction,
“Over there folks, you see what happens when you go to Walmart and try to do this.” ~Elitist Cadillac raft guide
This moron neglected to remember us helping get some of his rafters get unstuck from various rocks along the way. I had an answer for him when everyone in his group got out to go home for the day at the halfway point.
"Onward! … To the Walmart!" ~Ballancio
Oddly enough, almost nothing on our boat actually came from Walmart, but the raft is technically available there, though I think you have to order it from their website. Again, the main reason I do this route in a small raft is quite deliberate. On top of that, running this route again any time we want costs us nothing more than the cost of fuel to get us here, and not hundreds of dollars per raft ride.
How did the raft hold up?
When we turned the raft over back at camp, I was shocked at how well the bottom had held up. This magical boat from Idaho is the Intex Mariner 4 that can be had for just under $250, with free shipping, from RubberBoats.com The fact that it had a hard floor is something I’d never tried before, and was not necessarily sure that the added weight would be worth it. It also has an inflatable keel that runs the length from aft to stern to keep the raft from bending in half when going over rapids. As we got toward the end, the water in the boat was causing my end of the floor to roll up and hitting rocks without it was definitely a less pleasant experience and more taxing on the bottom of the raft. The 16 plastic slats it shipped with it were nice, but I had a hunch that they were heavier than treated 1″x4″s, which turned out to be right. My miter saw, electric sander, and I had replaced the plastic slates with treated lumber night before we left for Hot Springs. If you end up picking up one of these, I highly recommend the plastic-to-wood conversion, as it saved 155g per slat adding up to about 3.5kg (5lbs) saved overall. Aside from tools I already had, it cost around $25 for the 4 – 1″x4″x12′ treated boards needed to complete the job.
We’re looking forward to soaking in the natural hot springs across the street this evening to relax and sooth all our aching parts.
Since it’s Fathers’ Day, I feel obligated to share a story about my Dad that I was reminded of at lunch the other day with some of my coworkers. I have so many of these stories, and as my Father’s son, they remind me why my sense of humor also turned out to be just a little bit left of normal.
For this story, we’ll have to set the way-back machine to the late 1980’s. Does anyone remember voice pagers? I’m dating myself by admitting that I do, or that I remember a time before pagers at all. For folks who don’t remember, or weren’t born at the time, they were these little precursors to text messaging that you could wear and receive voice messages from folks who called your “pager number.” Wow, did I just say “pager number” out loud? The particular model we’re talking about would make a series of beeps and then automatically play the message. This becomes important later in the story.
When Dad was working in CID as a detective in Greensboro, he had a Sergeant with a particularly large ego who had just gotten one of the fancy-pants new devices. The squad had a brief bit of down-time for lunch, so they had met up at a local diner to have some lunch. Dad had witnessed just how exceedingly proud his sergeant was of this new voice pager and all the attention it garnered when it sounded off an important message. Sarge had become predictable when a page came in. The ‘new message’ sound would go off and there would be a slight delay before the caller’s voice could be heard. As soon as he knew the message was about to play, he would crank up the volume so everyone could hear how important he with his fancy gadget on his belt.
This time was no different, the pager started beeping to let him know that a message was about to play. He predictably cranked up the volume on the pager and awaited his important call. Except this wasn’t the kind of call he was expecting. All of a sudden his pager started yelling:
“Heeeeeey… fat boy! Where ya been, man? This is your belt buckle speaking and I haven’t seen you in a really long time. When are you gonna stop eating all those cheeseburgers and get in shape so we can see each other again? …”
I can only imagine his Sergeant’s struggle to turn the volume back down as quickly as possible once he realized his folly.
While I still miss Dad a lot, he left me with a lifetime of stories like these to remember him by. They continue to entertain me and remind me to always take life seriously, but never too seriously.
I used to think that changing jobs every couple of years was risky and could lead to less job security.
In the last couple of years, I have learned that the inverse is true. (at least for my industry and skill-set.)
I’ve stopped caring whatsoever about annual performance assessments and “moving up in the company” but rather focus on delivering projects successfully and keeping my eye out for the next cool project to work on. Outside your current company, nobody cares about your eleven-star annual reviews at another company – nobody.
There are enough failing software projects to jump into and get back on track to last me many lifetimes.
Software projects don’t (and shouldn’t) last forever. If you stick around after it ships, and v1 should ship in a year or less, you’re either doing maintenance or put onto the next project the big wigs deem to be important work for your team. At that point, don’t limit yourself to the project you’re given unless you can be passionate about it. Some folks can be passionate about whatever project they are on currently – and in a lot of ways I envy them- but as a “glass was designed twice as large as it needs to be” engineer, I cannot.
Find something you’re passionate about. I promise you it’s out there.