Cover Song - Thunderstruck (Longer UltraTraxx Remix)

June 15, 2018

Not the first time that AC/DC's classic track Thunderstruck has appeared on this site, but today we have a 10 minute long remix for those times when you just can't get enough Thunderstruck.

Remixes are different from the normal covers I like to feature around here. They typically include audio samples from the original track, but then those samples are carefully mixed in such a way as to bring a whole different feel to the original track. A reasonable man might conceed that a remix is not strictly a cover, but I like remixes as much as covers, so I have no intention of being that reasonable man today.

Continue reading →

Testing Rant

June 12, 2018

(It looks like I wrote most of this back in 2015. I've dusted it off and present it for your edutainment.)

It's time to rant about a technology issue close to my heart. I realize that the gold standard for technology rants has been set by Steve of Stevey's Drunken Blog Rants and the incomparable Zed Shaw. This means I should either swear often or only write after consuming significant quantities of alcoholic beverages. Ever the rebel, I'm going to dispense with both of these requirements and enjoy a nice cup of tea instead.

At Benevolent Employer, they are trying really hard to fix things. As is often the case with large companies which have been around for many decades, there is much to fix. I wholeheartedly endorse fixing stuff. The problem is that they are trying to fix testing, particularly unit testing, as if it was a standalone thing that they could upgrade by creating enough PowerPoint slides and new policies. What they need to fix first is their understanding of what testing is and then they can proceed on to the step of testing better.

Companies with I.S. divisions generally have a department within I.S. called Quality Assurance. Interestingly, they usually never speak the full name, referring to them instead as QA. Thus testing is seen as a QA thing. This is unfortunate because if they called them by their full name, they might realize that the department is wrongly named. It is my careful observation that QA departments perform no Quality Assurance. Rather, they are acting as Quality Control and there is a significant difference. Quality Control is something that manufacturing companies use. Quality Control is the department that ensures the company's manufactured product meets all of its stated specifications. That the product is the correct size or weight within tolerances and that it operates in the correct manner before it leaves the factory and is shipped to customers. This is the exact role that most QA department fulfill, that last ditch effort to catch bad code or wrong system functionalities before they are delivered to the users. Don't get me wrong here, a certain amount of Quality Control is appropriate, as it helps to catch issues in the manufacturing process and the production line can be halted and all machines and tooling can be inspected to bring them back within tolerances. But Quality Control is not, and will never be, the same thing as Quality Assurance.

Continue reading →

Drinking Tea And Surfing The Web

June 11, 2018

(One from the archives. I wrote this in May of 2005. I think it still stands.)

A treatise on the life of a Technical Lead in the I.S. industry.

It's an interesting life being a Technical Lead as I discovered when I became one. The first thing I discovered is that it's simultaneously both a vitally important role and an often mis-understood one.

At my current instance of Benevolent Employer, the role has absolutely no definition outside of a few required documents that you're supposed to create. Fortunately, it's realized informally, that the role is where an experienced developer can bring their knowledge and wisdom to a project, to positively affect every technical aspect from the architecture to the day to day activities of the individual programmers. It's this aspect of the role that I love.

Continue reading →

Dynamic Language Experience While Learning PHP

June 7, 2018

I'm learning PHP. Technically I'm re-learning it, as I learned it many years ago (version 5.0 if I remember correctly), but between the passage of time ravaging my memory and all of the new features in it and the infrastructure around it, it feels like learning it for the first time.

I understand that the accepted thing to do with PHP is complain about it instead of writing programs in it, but I have no intention of doing that. PHP is a good language that is constantly improving and it has some amazing tools springing up around it. What I want to talk about is the experience of going from a static, strongly typed language to a dynamic, loosely typed one.

I'm working in PHP because reasons (as the young people like to say) and the time frame I'm trying to work with is shorter than would let me thoroughly learn one of my dream languages like Erlang or Elixir. Until six months ago, I was a Java programmer and had over 20 years of experience in the language having worked with it since version 1.0 back in the mid-nineties. I chose not to work with Java for a number of reasons, each of which deserve their own blog post, but basically I don't trust Oracle's stewardship of the Java language and Java web frameworks are generally gigantic monstrosities that I find to be a pain to program in. (I also seem to be entirely unable to overcome my irrational hatred of Spring, so that doesn't help.) The Java language itself is still nice and I continue to like it, but everything that surrounds it these days is questionable to my way of thinking.

As a corporate Java programmer I had gotten used to having certain tools available. A selection of IDEs (Integrated Development Environments), build tools, testing tools, coverage tools and code quality tools. These are all great and switching to PHP felt like leaving my safety net behind. I looked into the choices of frameworks in the PHP community, but while it looked like CodeIgniter was the best fit for me on paper, when I started looking into it, the usual challenge of having to do everything exactly the way the framework wants you to started annoying me even before I'd finished the Hello World example. The data access language that kinda looked like SQL, but wasn't actually SQL was the final push I needed to say I'll just use the standard libraries and carefully code things myself. My technical needs on the project are gentle and I honestly think that it is small enough to get away without a framework. (Certainly if I was using Java I'd be tempted to just use servlets and JSPs, maybe Struts if I got to feeling frisky! :-)

Continue reading →

Life Principle - Add Good Things Into Your Life

June 1, 2018

Whenever possible add good things into your life rather than removing bad things. When there are enough good things in your life you'll naturally let go of the bad things without missing them or feeling deprived of them.

I first saw this principle articulated years ago when I read Jon Gabriel's book The Gabriel Method. In the book he explained that the best approach to changing your diet was to start by adding good things to the regimen of what you eat before worrying about removing anything. His particular recommendation was to start with adding Omega-3 fish oil, as the nutrients in that is one of the most common missing elements of most peoples diet. By adding in this simple nutrient, you can actually eliminate a significant proportion of hunger feelings and thereby reduce snack eating. A great example of eating less by carefully adding to your diet rather than removing.

This life principle fits well with the life principle of Maintaining Simplicity. When maintaining simplicity, you should aim to only change one thing at a time in your life. I understand that this is not always possible, but it's still a worthy goal. Adding good things into our life should also be done in such a way as to maintain as much stability as possible. Returning to my first example, start taking that Omega-3 fish oil (I take Krill oil, slightly more expensive, but more Omega-3 by volume.) and keep taking it for a month before making any other changes. Then make your next calculated change. Perhaps, adding more non-starchy vegetables to your meal plans. Do that for a month and then add something else good. Find an unsweetened drink that you like and drink that instead of soft drinks. Keep repeating this process until you have so many good foods in your diet that you do not have room to eat the sugary and less healthy foods that you used to have.

This doesn't only apply to foods. It's a very flexible principle that can be applied to many areas of your life. Just remember to not go crazy with adding them all in at once!

Continue reading →