Automate The Tedious

Today I had to update a Jira project and add some 300 new versions to a project. If anyone has done this before, you know it’s a mind numbing copy / paste / click grind. So being the script monkey I am, I decided this was a job for Selenium IDE.

I wrote a simple script that would go to the admin page, click the version section, enter a version, then save it. I then did some RegEx on my cut/paste version list to wrap each version in that script. Saved it, and let er rip. Worked like a charm.

I had some snippets here but they were murdered by the formatting. I’ll add them back in at some point.

Choose a program based on your goal, and stick with it

Martin Berkhan wrote a great article called “Fuckarounditis” that everyone should read. It’s full of so many hard truths that everyone needs to hear. Admitting to yourself that that you have it is the first step to getting over it.

Now back to the main topic, programming. For beginners, there are two very similar programs for barbell training: Starting Strength and Strong Lifts 5×5. They are simple, easy to follow, and most importantly, effective. They’re both based around the “big 4” lifts and aim to take new lifters from the very beginning to a point where I would consider a person strong. I can’t stress enough how simple these programs are, and I think that’s where people get confused.

I see in places like /r/fitness and /r/weightroom people asking “I’ve been on StrongLifts for 2 months, now what?” My answer is always the same “What is your goal and did you reach it yet?” The thing about these programs are they’re linear, which is perfect for new lifters and works well with the phenomenon known as “newb gains”, the ability for a novice to increase their strength at a faster rate. But here is the rub, at about 2 month into Strong Lifts, you should only be lifting about 145lbs (quick math) if you followed the program correctly. I would assume most people do not have a goal of squatting 145lbs.

So back to my point. If your goal is to squat in the mid 2s, keep going with the program until you’re constantly failing. These programs won’t work forever, but the large majority of people looking for help are < 6 months on it, which is clear to me they have Fuckarounditis


Hit a snag with Netbeans, Maven, and DbUnit testing utils.

I switched to Netbeans probably a month or so ago for this small side project I’ve started and so far I’m digging it. However I hit a little issue that Eclipse never had a problem with. I’m using DbUnit for integration tests and I have an AbstractDbUnitIntegrationTest class that does a CLEAN_INSERT on the database for every test, which is great. But that means I need to have a data set to start with. Read On…

How to reorder OS X menu bar icons

I just installed iStat menus from iSlayer and it’s pretty cool, but the date/time is just too far to the left. So I figured I would try and move it over to the right where the date/time used to be (I turned it off since this one now has the day displayed as well). With a few trial and errors, I figured out it’s just hold command, click and drag the item to where you want. Simple. Gotta love OS X’s simplicity and reorder OS X menu bar icons is no exception. If this was Windows, it would have probably required a reboot.


Greasemonkey script for experts-exchange

I quickly wrote this Greasemonkey script (or Greasekit if you’re using Safari) to remove a bunch of crap from experts-exchange to make it somewhat tolerable to look at. It uses jQuery because I like it. It would be a lot more efficient to include the implementation of the method I’m using in my script rather than making reference to another site, but like I said at the beginning, it was quickly thrown together while waiting for some code to deploy. So here it is in all its glory, Greasemonkey script for experts-exchange:

// ==UserScript==
// @name           BlurredAnsweres
// @namespace      ee
// @include*
// ==/UserScript==

// Add jQuery
    var GM_JQ = document.createElement('script');
    GM_JQ.src = '';
    GM_JQ.type = 'text/javascript';

// Check if jQuery's loaded
    function GM_wait() {
        if(typeof unsafeWindow.jQuery == 'undefined') { window.setTimeout(GM_wait,100); }
    else { $ = unsafeWindow.jQuery; letsJQuery(); }

// All your GM code must be inside this function
    function letsJQuery() {
        $(".blurredAnswer, .relatedSolutions, .allZonesMain, .qStats, .lightImage").remove();