A Xserve Newbie Install

September 1, 2010 by Matty G · Leave a Comment
Filed under: Rants, Tech 

Ok, so I’m not a complete newbie. I’ve played around with Linux servers, WAMP, MAMP and other server technologies. But by no means do I consider myself an IT professional.

My office in the last couple months has invested in not one, but two Xserves. I was extremely excited about getting the first. We use it as a web server, and it helped me learn a lot about web server technology without having to learn all the complex command-line calls all at once.

Then, I needed to upgrade PHP, because some Open Source web apps didn’t like the version that came with Snow Leopard. Google-fu to the rescue. Here’s what I turned up in that search.

http://www.entropy.ch/software/macosx/

http://www.gen-x-design.com/archives/recompiling-php-5-3-on-snow-leopard-with-freetype-support/

http://www.afp548.com/article.php?story=20040726020639560

Recompiling PHP was an exciting and stressful experience, to say the least. The nice thing was that this was not on a production server (at the time). So I had a little bit of wiggle room, and if I had to, I could wipe the OS and start fresh (as a last resort, of course). So that server is now humming along, barely scratching 10% CPU usage, cool as an ice cube in the wickedly air-conditioned server room at my work.

And of course, having money to spend, they decided to buy another one. With the low CPU usage on the existing one, I thought I should plan another usage for the new Xserve.

The idea? Storage. We do a lot of video work at my office, and video takes up gabs of storage. But with the 6TB limit (and non-redundancy) of the Xserve, I needed a revised plan.

Enter the DroboPro. I’ve heard many good things about the consumer versions, and having the VMware seal of approval, it’s got to be good. At least as good as the hard drives attached to it.

Because we have an IT department where I work, this idea was not so well received.”That’s IT’s job.” That seemed to be the whole argument. The problem is, when we ask for high capacity storage, they gave us a virtual machine with 4TB of (tape) backed-up storage. That thing goes down, it’s down for days.

The head of the IT department met with me and advised that as long as it wasn’t for production (ie, for serving to the general public) that the DroboPro would be a good solution, and that it would last us the year. I hope he meant that the storage capacity would last us for the year, because I think that the folks at Data Robotics would almost be insulted if an IT head thought their products would die after a year.

Two Xserves are under my power. And they even talk to each other for authentication (that was an ordeal in itself). I’d love to hear from you. Leave me a comment!

Internet Explorer as the Psycho Girlfriend

August 19, 2010 by Matty G · Leave a Comment
Filed under: Humour, Tech 

This is adapted from a friend of mine, Brad Taunt. I changed just a little, to make a little bit more defined differences. Enjoy.

Internet Explorer is the scum of the internet. Now before you rant and rave about “hackers” and “trolls” let me explain why almost, well hopefully all, web designers HATE Microsoft’s devil child.

Now for all you non-tech savvy kids out there, let me use the perfect analogy to show just how much IE sucks. Let’s look at all popular web browsers as if they were girlfriends.

Mozilla Firefox, if it were a girlfriend, would be the pretty-yet-geeky, university graduate who everybody knows. She would dress nice no matter the circumstance, be polite and courteous and always try to improve herself, and help out the charitable organizations.

Safari 5.0+ would be gorgeous, very intelligent and also decently popular with the family. She would have one of the best fashion senses, would be very quick witted and could take criticism extremely well. Like that girl from Glee. If you’re into that sort of thing.

Google Chrome would most likely be the best catch of them all. Drop dead gorgeous, polite, constantly learning new things, able to teach other girlfriends how to be as perfect and dress amazing all the time. But the family would be suspicious of her, and not take to her too well.

Now we come down to it…

Internet Explorer. Dear Lord. This one would look like she fell out of the ugly tree and hit every single branch on the way down, then got spit on. She’d be dumb as a post and more stubborn than a cock-eyed donkey when it came to change and dress like a dead homeless person. But WHY is she still around? Because for some unexplainable reason, more than half the internet’s users STILL use her as if she was a free prostitute(which isn’t far from the truth). Why? Why, why, why??

I’ll tell you why; people are lazy and scared to find a different girlfriend. “I’m use to her”, “There’s no way there’s anything better”, “I’m stupid” – all of these common excuses. Well stupid people of the internet, I have news for you: There are other fish in the sea.

p.s. if anyone is reading this in Internet Explorer…I hate you.

What I Learned While Pair Programming with a Software Engineer

July 20, 2010 by Matty G · Leave a Comment
Filed under: Tech 

I’ve had the pleasure of knowing another Matt for just over a year now who is a student at UOIT, where I work. I’ve known for a while that he is a very good programmer and that he has the ego to go along with it.

It has only been recently that I’ve gotten to see his genius first hand, pair programming with him on a web app that needed to be updated (read: models and controllers completely rewritten, thankfully the views were mostly reused).

Here is a couple things I learned and/or observed during my time with him.

Object Oriented Programming is really what makes code poetry
I have learned a little bit of OOP in my long years of off-and-on programming. Visual Basic, JavaScript, ActionScript and PHP are all of the languages I’ve learned over the years. But the only reason I’ve used OOP is mostly out of necessity (with a few exceptions).

With this app (we’ll call it “Sillybizer” so as not to get my employer upset with Google getting my site instead of theirs), we didn’t have to code it OOP, but looking back it would have been complete insanity not to. Each big piece of data has it’s own object, complete with getters, setters and methods that pertain to that piece of data. It really is a true thing of beauty to behold as a programmer, knowing that you don’t have to go through either a 10,000 line function file or copy the same code over and over in different pages – you just go to the class file, and only look through a handful of methods to find the right method/function to use.

If Jesus was a programmer, he would have used MVC
MVC is just one way to write an application (be it web or otherwise), but it seems to me to be the most logical use of OOP. Having the model (or types of data to be manipulated), view (or the user interface) and controller (where the users input gets used to call manipulation methods) seems not only easier to write, but also better for future maintenance.

Singletons are a good lot
The singleton pattern in programming allows you the ability to call an objects method without having to think if you’ve instantiated your object yet. So the object’s reference is actually held by the object. The only downfall being you can only call one object at a time – but in web programming, where data persistence is virtually non-existent, this is a very helpful concept.

It’s ok to be janky, as long as it’s only a few lines of code
Sometimes, you just need to get something done.

“We really should have put that in the object,” one of us says.
“I know, but it’s only this one line of code. And it’s only in this controller, nowhere else,” says the other.
“Just do it.”

I think that was uttered in one way or another at least 3 times in those six weeks. Sometimes, you just need to get it done. It usually consisted of some weird logic that we needed to comment the crap out of. Wait… I think we forgot to comment that…

Custom Javascript Objects with Embedded JQuery

January 28, 2010 by Matty G · Leave a Comment
Filed under: Tech 

To all of you non coding geeks, you don’t have to read this. It might confuse bewilder bore you to death not be of relevance to you.

As some of you know, I’m a multimedia developer (read: web developer… that seems to be the majority of what I do) at a relatively new University in Southern Ontario, Canada. I’ve been working on a website for first year students to brush up on writing and math skills. Back at the beginning, someone had the idea of having a “virtual campus” as another means of students finding their information.

One thing led to another, it started with Flash, then moved over to an AJAX solution.

I worked on said AJAX solution and had it working relatively nicely. However, due to some usability quirks, I needed to rewrite a huge chunk of code.

I decided to objectify it, purely for my own amusement and further education.

The problem that I kept on having is that whenever I used a JQuery call and needed to reference the object’s properties, it would always give me an undefined error. Being the Actionscript junkie I am, and knowing that Actionscript borrows heavily from Javascript, I tried using parent.variable instead of this.variable.

It all seems to be working at this point. But I thought this might be of some use to someone, somewhere. I thought it was working, however, what using parent.variable did was created a variable outside of both the JQuery and VirtualCampus objects. Not a great idea, however, it served my purpose and was a lot easier than using the VirtualCampus object to extend the JQuery object.

Quick example:

function VirtualCampus() {
this.campus_location = []; //array with locations visited
this.campus_depth = 0; // what level in the nav tree they are at
this.campus_faculty = 0; // id of faculty they entered
this.current_info = []; // Data for current location in VC
$.getJSON(‘virtualcampus/vc.js’, function(jsony){ // Get JSON data for campus
$.each(jsony.location, function(i, item) {
parent.campus_info[i] = [];
parent.campus_info[i][0] = jsony.location[i].name;
parent.campus_info[i][1] = jsony.location[i].file;
parent.campus_info[i][2] = jsony.location[i].depth;
parent.campus_info[i][3] = jsony.location[i].faculty;
});
});
}

So there’s the constructor, that sets variables and gets the JSON data for the VirtualCampus. Notice the parent.campus_info 2D array… that’s stored as global scope. I tried very hard to make it local to the object, but JQuery and my object weren’t playing nice. If anyone has any idea how to get around that, let me know.