Sunday, 13 April 2014

Corsair Airflow (RAM Cooler) Getting Old

In my rig I have lots of silent fans (140mm silent fans, 120mm silent fans), I did a review fitting Knox silent  Fans a while back, as part of that same rig however I have a Corsair Airflot RAM Cooler:


I've never really liked this addition, but it does serve a good purpose, cooling my RAM significantly, but the fans are small and loud, very loud, as it has aged however, it is getting terrible.

I had heard some users mention this unit making noise, but they didn't have it fitted to Corsair ram, so I assumed it was just their unique problem.  Well I do have Corsair RAM, I purchased the RAM and cooler as a kit when I put the current Core i7 rig together myself

Over time, I've heard it making a bit more noise than normal, but last night whilst working, I had to actually open the case and pull the power cable on this, it was grinding, vibrating and generally grumbling like crazy, as I pulled the power on it my rig became almost silent instantly, and totally silent once I'd shut the case back up again.  This little fan had been causing such trouble.

I actually trouble shot this even more, and using my finger bravely, stopped the fan spinning (don't do that at home folks!), and figured out it was the fan to the top most position which was making all the noise, the other fan was silent...

I'm thinking after a server back up of my code, and doing some work on the house at the weekend, it might be time to strip the PC down and clean it, and see about replacing this fan unit.


Saturday, 12 April 2014

Altair 880 - Full Demo

I've a guilty secret, and this is that I've been totally and utterly obsessed with watching these videos, I recommend you do too!



You can watch the whole series as a play list form the given link, or just the first video from the one I've embedded here.  But the series takes you through Altair assembler, CP/M, and other goodies.



Friday, 11 April 2014

I've been interested at looking at new CPU's and GPU's for a couple of days, not that I can afford one, but I've come to a cross roads in my thinking...

Now I can either carry straight on, or I can go left or right.. If I go left, then K is the way, if I go right its not... Let me explain.

When I talk about K, I'm talking about the current Gaming Goto Intel Core processor with a K added on, so this is the i5 4670 K and the matching i7.  Every time I turn a page about Gaming and building a gaming rig I see people say "Get the K" version... And for the life of me I can't figure out why, maybe I'm missing something, but I don't see people explaining why.


Now, you can look any place to see these chips, here they are on Amazon... And you can notice something here, a price difference, the K version has a higher price... I'm taking the right path... Right K, more cost, an added letter... It must do More!!!! MORE!... MWHOORE!!!!!.... Nope, as far as I can see the K chip does less...

The cheaper standard 4670 here does more, lets take a look at the Intel Ark page listing them...


So on the Ark there you can highlight the rows which are different, now some of the items are highlighted in error, but if we skip down to the bottom, this is where the functional changes are.  The K version has some of the Virtual technology removed...

I use that technology a lot, so a K version is not for me... But curiously, with functionality removed, the K version costs more?

This is where I'm confused, go right, enjoy the K and be in all the gaming comments... but don't be able to virtualize?  And pay more?  Go figure.

Lots of the kits I see out are also the K version bundled in.

I don't get it... I'm not able to go left, I'm not able to buy one of these kits... I don't want to go right, and buy a K.. Cus they're nerfed... So I'll just have to go straight on...

Is my direction metaphor grating?... Sorry, its because I have directions - from the multiboxer - on the mind.

Thursday, 10 April 2014

Minecraft Ordeal #6

In this update to our Minecraft world, I've pretty much been fleshing out that project I mentioned, firstly I needed glass, so I set about cutting a hunk of desert out...




This made a nice area to set up a small garden...


Not optimised, this is just a grid of pumpkins because I needed lots of lanterns...

So, this is why I needed them... Just a bit of bed rock?...


Well, no, because above is this...



It is a strip mine, straight down, with a large stair case, and fully lit with lanterns, there are regular landings at the higher levels, but from here I'm going to set up four main corridors, for each point of the compass and off of them slowly dig out a huge grid of tunnels, branch mining.


Wednesday, 9 April 2014

World of Warcraft - Multiboxer

Update on the multiboxing software, I've had a week of feedback from my two testers, I definitely need to get a hold of a pair (or more) of high level Warlocks, as I've heard a few issues with the warlock pets... hunter pets are reported to be acceptable and following...

I don't like what Blizzard have done to hunters, I think they're now a broken class... No melee weapons and johnny come lately players calling those of us saying anything noobs... Argh.

The code itself has had a pair of re-factoring passes, the first pass added a set of key sequences to a single input, so you can make the client respond to a single key with "/follow <playername>"... This is useful, as I can use the shifting keys to switch up to a set of standard keys if need be.

One thing I've done with this is made each client have a "mount & follow" response set up, they mount from their action bar, then type /follow to the name of the previous party member (as configured with the XML files) so instead of following in a messy gaggle, when I mount and leave an area I leave in a line-a-stern formation.

I still need more support tho folks... See the prior posts if you want to donate, or volunteer to help.

Thursday, 3 April 2014

Code Line Numbers

I had a programmer sat with me the other day, he seems a good one too, though I've not seen his actual code.  And he surprised me by peering at my development environment and saying...

"How can you program without line numbers on?"

He was serious, we were exchanging information to ensure I wrote code to meet his coding standards... So why not program with line numbers... Well, I could be annoying and say, I don't write BASIC, so I don't need line numbers... I also don't count K-Locs as a form of reward as to how busy I've been, nor use it as a measure of how productive I am... So really I have to ask myself the opposite, "Why don't you program with line numbers on Xel?"

And the simple answer for me is experience.  Maybe you're different, and you like line numbers, if so "This is not the article you are looking for, move along... Move along"... But to answer for myself, it is simply because I'm human, and the human mind likes to see patterns, it likes to see things and tries it's hardest to impose some semblance of meaning into them.  And for me, if I turn line numbers on then I expect 5 to follow 4, and 4 to have followed 3, and 2 to have come before 3 but after 1... It's an order, and in modern code it is an incorrect order because we should be writing, if not object orientated, then at least functional code.

Functions can be called in any order, objects can be instantiated and used differently by different users, your code itself might do one sequence one way today but a different sequence tomorrow.  The functions themselves still do the same single job with the same input, as per their definition, but code as a whole is no longer linear.

So over time my personal experience has told me to group my code into a simple, but not formal - until this blog post - order, which is "Constructors at the top", then the functions defined "in order of frequency of use", so if you have an update function called all the time in a class, put it at the top, so its easy to spot after your constructors.  Especially in a language like C++ where your constructors can be very brief - or should be very brief, if they're not go rear Scott Meters & Bjarne Stroustrop on the topic!

And then functions are laid out in order of use, least used or single call functions are at the bottom.  I've just come to this pattern, its quite hard to even define it here in words, I suppose I should give code examples, but I'll leave this for another day and come full circle to answer the question "How can you program without line numbers on?"

"Code/Function use is not linear, don't give any indicates to your mind that it is, and if you're going to argue about the contents of one function, your function is too long, break it down into sub-functions which will fit onto the screen as a whole and so you don't need line numbers you can see the whole function in a single pass of the eye".

Monday, 31 March 2014

Ubuntu Server - Automatic E-mail of Status upon Boot

As the multiboxer project has grown, I now need to support multiple bug reporters (I have three helpers now, if you've not donated yet and joined in you're missing out!)....

So with the new bug reports I'm looking at establishing a server at home, with a private IP and allowing the helpers to post their tickets there.  The trouble is, the loft man lab, where the server is stationed, is serviced by wireless only.  The signal strength is good, and I'm not going to throw a cat-5-e cable up there because I've spent too much time fixing walls and removing old dead telephone cables as it is.

The server is a Ubuntu 12.04.4 LTS box, and when it boots I want it to e-mail the testers, and me, its IP Address.  This way I don't have to faff about with dyndns (as much as I love them, their usage terms are a pain in the arse for free users now-a-days) or any other dynamic domain name service.

Now, the IP mailing just needs to send the interfaces information out, through a few tricks the IP of eth0 is the router outbound IP, and I've carefully opened port 80 for them to chat to it over the web...

So, to set this all up... We need a script to wait an amount of time, then get the adapter information, and then e-mail it...

sudo nano /usr/sbin/bootmail.sh

The script then looks like this:

#!/bin/bash
echo Waiting...
sleep 30
echo Getting Interface Info
ifconfig > /tmp/ifinfo.txt
file=/tmp/ifinfo.txt
echo Sending mail...
function mailalert(){
  echo Calling Mail...
  sendmail -F "noreply@Git-Server-VM" -it << END_MESSAGE
To: user1@gmail.com,user2@gmail.com,xelous@hotmail.co.uk
Subject: Multiboxer IP Update

$(cat $file)
END_MESSAGE
}
mailalert
echo Complete

You can look at this yourself in detail, I'm noting it for reference myself...

You save this file and then have to allow it to execute:

sudo chmod +x /usr/sbin/bootmail.sh

And finally we need to add it to the boot script, so its run as the server comes up...

sudo nano /etc/rc.local

And before "exit" at the bottom add:

/usr/sbin/bootmail.sh

Reboot your server and you'll now get an e-mail of the IP interfaces sent out...

I may later improve the script to add the bug reporters to a known user group, use echo & cat to output the members of that group into a file, and use that list as the "To" field.  But for now, with the happy few of us, this will do.

Now, I would have previously (as you can tell by my older blog entries) used Subversion.  However, I'm managing this project with Git, so I may also now set up the Git on this server, and put a centralised copy of the code onto it, securing it with SSH... Pretty sure there was a good tutorial on setting this up on a server in a recent Linux Format...