Windows 8.1 and Visual Studio

I upgraded my Sony Vaio Pro 13 to windows 8.1 immediately after taking it out of the box. My intention was to use it as a development machine, so I planned to slap Visual Studio 2013 RC on next.

I grabbed the web installer and ran it. It started, ran for three seconds, and promptly crashed. Odd…maybe an issue with the web installer? I grabbed the .iso and mounted it. Same thing. Ok…ok…all part of trying to install a release candidate. I retreated back to the safety and comfort of VS2012. Oh no! Same problem!

At this point I did some googling and found out it has to do with a combination of Windows 8.1 and an Intel display driver. I changed my display driver to the generic one using the device manager and tried again. VS2013 still had issues, but VS2012 worked. I haven’t tried updating my display driver back and launching it yet. I’ll come back to this.

UPDATE
After several Sony and several Visual Studio/Windows updates, the issues are no more.

SVN Repo Admin – Commands to Remember

Things I need to remember about SVN on my server that I use less and less:

Make A Repo:

sudo mkdir /var/svn/
sudo svnadmin create /var/svn/
sudo chown -R www-data:www-data /var/svn/
sudo service apache2 restart

Add a user

sudo htpasswd2 -m /etc/apache2/dav_svn.passwd

document.getElementBy Whatever I Want

During re-factoring of a dreadful legacy app, I often came across javascript like this:

document.getElementById('firstName');

with HTML like this:

<input type="text" name="firstName" />

I was confused as to how this ever worked and made it into production. I always assumed that getElementById would get an element by it’s Id. This is for the most part true. However, in earlier versions of IE, getElementById would also work with name attributes. It’s this kind of “IE Logic” that did immeasurable damage to both development practices and the web at large. Even as a convenience feature, it should not have been used. When a function explicitly says what it does in it’s name, don’t use it any other way.

In hindsight, if you were of the opinion that “we only use IE here so it doesn’t really matter”, you were wrong. It does matter.

The Book of G’Kar

What is Truth? What is God?

When a question like this is asked on TV, the best answers come from science fiction. Babylon 5 presented this answer through the character G’Kar:

If I take a lamp and shine toward the wall, a bright spot will appear on the wall. The lamp is our search for truth, for understanding. Too often we assume the light on the wall is God, but the light is not the goal of the search, it is the result of the search. The more intense the search, the brighter the light on the wall. The brighter the light on the wall, the greater the revelation upon seeing it. Similarly, someone who does not search, who does not bring a lantern with him, sees nothing. What we perceive as God is the by-product of our search for God. It may simply be an appreciation of the light, pure and unblemished, not understanding that it comes from us. Sometimes, we stand in front of the light and assume we are the center of the universe – God looks astonishingly like we do! – or we turn to look at our shadow and assume that all is darkness. If we allow ourselves to get in the way, we defeat the purpose – which is to use the light of our search to illuminate the wall in all its beauty and all its flaws, and in so doing, better understand the world around us.

The writing for G’Kar rarely disappoints. For that, I will continue to suffer through season 5.

Codility

For weeding out developers from fakes, hit up codility.com.

I took the demo test and found it to be a fair challenge. Any developer mid-level and up should have no issues completing the test. They can choose from a variety of languages to complete the task. Hell, their language choice might even be a great topic during an interview.

I have sat through far too many interviews where the candidate had no business even applying – but somehow made it through the phone screens. From now on, CODE MUST BE WRITTEN!

jQuery Font Resizer

First, the CSS:

body, a#medium {
font-size:14px;
}
body.small, a#small{
font-size: 10px;
}
body.large, a#large{
font-size: 18px;
}

Second, the JS:

$(function() {
$("a#large").on("click", function (event) {
$("body").removeClass("small");
$("body").addClass("large");
event.preventDefault();
});

$("a#medium").on("click", function(event) {
$("body").removeClass("small");
$("body").removeClass("large");
event.preventDefault();
});

$("a#small").on("click", function(event) {
$("body").addClass("small");
$("body").removeClass("large");
event.preventDefault();
});
});

Third, the HTML:

<a id="small" href="#">A</a>
<a id="medium" href="#">A</a>
<a id="large" href="#">A</a>

Check it out