Thursday, 10 March 2011

30% slower than broadband!!! WOOOT

Let me first phrase this post with 'I hate the technology writing on the BBC at present, the work they are doing is shoddy, misleading and sometimes just down right wrong' and this post is about just such an occasion.  I flicked into the BBC News site and into the Technology section this morning, as I normally do and was greeted with an instantly miss-leading headline banner:

"Home wi-fi '30% slower' than fixed broadband"

No shit wi-fi is slower than a physical wire!  This is so miss-leading its untrue, wi-fi by its nature is slower than a physical connection, especially in noisy office and domestic environments.  Heck in my street there are 5 wireless networks all on channel 4 alone!  (Guys in the New Brinsley area, please god move to other channels... but not the ones I'm on!).

But the BBC saying this, is plain scaremongering.  But I persevered and read on, and what the article is actually saying is that there is a "30% drop-off compared to the speed coming into the home [compared to the speed advertised by the broadband provider]".  Now, that is news worthy, it needs tackling, it needs pointing out to Ofcom.  But, the BBC headline completely leads the user away from that, with their pretty picture of a girl laying on the floor, without wires, using wi-fi to surf the net on her laptop.

The article then goes onto to shove its foot further down its own gullet with quote "people are voting with their feet and trading speed for the benefits of mobility" - Iain Wood, Epitiro.  That is a strong argument, people are trading the speed of their connection for the freedom of mobility.  Fair enough.

I know, and I'm sure you know, that what Iain means is that the wi-fi technology is intrinsically slower than the wired variety, therefore when they use wi-fi they are accepting wi-fi speeds, even if they know they have a 20mbit connection they know they only have a 10mbit wi-fi router (standard wireless-G routers are approximately 10mbits and are usually less when in a noisy environment).

Iain, I'm sure, is not saying this is knowing skulduggery by the ISP's [broadband providers] as the BBC are intimating with this article!  And indeed he goes onto explain the difference between the wireless speed and poor signal, and the broadband speed.  But instead of saying "they are different" they use the bullshit word "the disconnect between"... (gah, I hate this bullshit).

What is basically being explained, for those of you not in the know, is.  If you are paying for a big large download speed from your internet provider, and you are then plugging this into a Wireless-G router, you are simply not making all your pipe space reach your network.  I'd recommend you look at buying a Wireless-N class router, which provide much more space on the airwaves for your broadband bandwidth to be served in a bubble around your home.  However, beware, you don't just need a newer router, you also need each device on your network to be Wireless-N also.  If you are still using a laptop, or desktop PC, with just a wireless-G card, it will only suck wireless-G amounts of bandwidth out of the Wireless-N bubble your router provides.

And all this is totally different to the speed the ISP is actually giving.  If you are paying a premium for a large pipe, say 20mbits and are only using wireless you may never know your actual provided speed.  So, take your PC or laptop physically to where the broadband comes into your home and plug directly into the router with a wire.

The wire should then give you a much clearer idea of the actual speed you are getting.  You can search the internet for speed tests, one I use can be found here.  If you then take three or four traces of the speed of your connection, one early in the day, one mid-afternoon, one early evening and one late at night and find that the speed is consistently lower than that which you are paying for pick up the phone and complain.

Now, when you speak to your ISP they may use a term "ISDN" to you, or "PSTN" these two gangs of letter basically mean that "your broadband goes over telephone cables at some point" and telephone cables; bless 'em; are not designed or quiet enough for decent transmission of broadband data.  As such, you may find you're told you are "too far from the exchange" for a better speed.  This means that there is so long a physical wire from your home to the telephone exchange that your signal is too noisy and dirty to give you the full speed you are paying for.  In these cases you can bug the likes BT for some of their new longer range broadband technology.  Or you can look to go to a different supplier who give a solid copper wire direct to your door, such as Virgin Media.

Another fobbing off technique providers use is to tell you that they provide a fair usage quota, so that at busy times of the day, such as the early evening, they slow down connections so as to even out their bandwidth their end.  This is usually deep down in the small print of their contracts.  However, if you've had your broadband since before 2005 you can challenge this contractual item, as they usually didn't mention it when you took your service out with them!  Basically they imposed fair use quota's and speed limits after the explosive growth of the take up of broadband.  And usually your contract tells you nothing about it.  As such you are entitled to the service as advertised, or a refund.

If anyone in the Nottingham or north western Nottinghamshire area wants some help understanding their wireless set up feel free to drop me a line, for a small fee (or just a cup of tea) I can see what your set up is like and maybe explain how you might benefit from upgrades to your wireless for gaming, watching video or downloading.

And for god-sake, don't be sucked in by the piss poor reporting of technology from the BBC.

Wednesday, 9 March 2011

It Floats... It must Float...

So, I recently got through reading Professor Colin Pillinger's biographical account of his trial and tribulation in getting the Beagle2 Probe built and out to Mars on the back of the Mars Express mission by the European Space Agency (ESA).  I recommend the read, I really do, it's a great roll through the foothills of the frustrations he encountered and his f**k you all attitude to get the job done... something which has been sorely missed from the overall field of human space exploration since the Apollo Programme was axed in the early 1970's.  And what's more, Professor Pillinger made all his efforts under a big British flag... its not often we can say "we did that", but Professor Pillinger can.


His book is called "My Life On Mars: The Beagle 2 Diaries" ISBN: 978-0-9506597-3-2, if you can't get it from Amazon I'd recommend trying the British Interplanetary Society as a source.

But this blog post is not directly to do with my evening reading habits, its actually about a character who cropped to me as part of the Beagle 2 mission, a chap whom works for ESA (back then) and still seems to be working for them now.  His attitude has somewhat changed since Beagle 2, but thanks to Professor Pillinger I know how full of shit this guy is.

I'm talking about the so called Professor (read that as "dipshit") David Southwood.  He is the ubiquitous flotsam to which the blog post title refers, and from the read of Professor Pillinger's book I think I'm somewhat in a position to say, this guy is a knob, a class A variety Knobber.  The kind of person whom if they worked anywhere near me would be burned in effigy nightly to relieve the stress they cause...

And what has me shocked is this... look at this image...

(c)2011 - BBC - The Sky At Night

That is a still from my BBC iPlayer window which I have had playing away merrily next to me, and I have been watching the momentous 700th episode of "The Sky At Night".  Yet suddenly up pops the topic of exploring Mars, of getting out of this hiatus of stopping manned exploration of the solar system, and low and behold here comes Professor *cough*dipshit*cough* Southwood... and he's only saying he's right behind exploring Mars...

I then flick through the pages of Professor Pillingers book to read "The really bad guys from ESA: David 'call me anytime' Southwood,".

Now, in the programme shown Southwood (I can't be bothered to call him Prof no more, he may as well just accept if I ever see him in person he's going to get heckled) is only going on about exploring Mars "I want to see us explore Mars"... Really?  Really Dave?  Do you?  Then why did you throw every spanner in your bag into the cogs and gears of the Beagle 2 mission?  Why did you stir the shit?

Dave was saying on the show that he is part of the joint ESA/NASA accord to explore Mars, which makes sense as in the book he was going on and on about NASA this and NASA that, too bad it was often found to be putting words in to their mouth for them (NASA that is) when they'd said no such thing.  And then when NASA were ever checked on Dave's commentary for them they (NASA) usually said the opposite.

And I was just amazed that having read the book this guy appeared on the special 700th episode of "The Sky At Night"... I do hope one of the many host/co-hosts there, who are very learned people, had read Professor Pillingers book and gave Southwood what for before he left the studio...

However, I was even more amazed to realize that Southwood still works for ESA... I'm glad to see the UK's 260 odd million quid contribution to ESA for 2011 is being spent on such *cough* quality staff.

And it just backs up the old adage, that even shit can float.

Monday, 7 March 2011

Boring...

So, I'm really rather busy, I've been doing lots of programming, my lady is not very well and I'm just taking 15 minutes break with a cup of coffee while working from home... so, think yourselves blessed that I've come to say hello at all.

I'm happy to announce a new upgrade for my computer is in the post to me, I've bought a bunch of "silent" case fans... for anyone wanting to make their PC quieter I recommend looking into quieter ones... I've had to go with 120mm ones (not larger quieter ones) as my case will only take 3 or 4 120 mm fans... but I've gone with three which are marketed as only producing 14dB of audible noise at 1000 rpm.

People wonder whether fans shift enough air through their box, but at the end of the day, unless you clad your PC in polythene you're going to hear everything its up to... so, lets see where these puppies take me.

I've also started a fund, for myself, to purchase Visual Studio 2010... I'm using the express edition at home, and I'm using the professional version at work, and I love it... it's got LOTS of bugs - for example every now and then a project [unchanged] will cease to compile or link... this cures itself if you stop pressing anything on the computer let it have a rest and then rebuild/rebuild all... Which is just so fucking annoying.

Oh, I did last week have 3 days off work, but I spent nearly the whole time looking after my lady... but on the wednesday I did install and play through 45%-ish of the Crysis single player game again... I like it... I decided to play it on Delta difficulty (the top) and to challenge myself to go start over again if I died, only basically going from cut scene to cut scene...

I soon found however that the game has some bugs... not least of which is on this graphics card it refused to go into wide screen mode... it used to on my dual 8800 GTX SLi Core 2 Quad machine... but on this Core i7 950 dual 480 GT SLi system it just sits there saying "No".

I'll get back to you all soon with more information about the fans and their sound result...

For now though, enjoy:


Tuesday, 22 February 2011

Use the tools at your disposal

Sooo, I've had an interesting chat today, with a fellow programmer... and it got me thinking, the gist of the chat was that we had a series of interfaces all cobbled together and finally getting a review to replace them with a better structure... but this "better structure" was going from 8 to 12 modules all higgly-piggly put together.  During the conversation I described the stack of modules as "a pile of rickety plates".

So, I started to advocate the use of inheritance, so instead of splitting functionality out horizontally into 12 different modules, it would all boil down to one, or two, and then you would derive from them to inherit the base functionality and add new at each stage... meaning you didn't have to worry about coding, and testing, each module in one go, you simply have to test one the highest level abstraction...

And you know what, I got looked at like I was showing a dog a card trick:


"Inheritance, what is this inheritance of what you speak?"  I could murder some of the people in the programming game these days I really could...

I'm going to melt this guys brain tomorrow by showing him auto_ptr, instead of the risks of delete.

Wednesday, 16 February 2011

Test Drive Chrome

So, I just signed myself up to the Chrome Notebook pilot scheme, it has been a long time since I've had to sit and justify myself on line in 140 words of less.

Especially after having had to follow a series of questions which had very little to do with the kind of net activity I perform.  As such I can only assume I have a snow balls chance in hell of getting hold of one of these devices.

I mean, in the "justify yourself" section I did feel like putting, "How about because I'm in the UK and you clearly don't expect to hand any out to us poor foreign follow-ons", for the vast majority of the questions my answers were "other", but nothing on the screen was asking me to explain what those "other" options were.

For instance, in the generic category of user, I selected "developer", but then all the items in the list related to usage of a computer were related to web usage.  Not really development.

I mean, when the Chrome OS comes along, I really do hope there are a range of compilers for the system, first off I'd like to see C++ (being a bit of a fan boy of that language), but later I'd like to also see some sort of porting of .NET (just like mono for Linux) to the Chrome platform, simply because of the power of .NET as a way to prototype other applications.

I'd also like to develop on the Chrome OS to investigate its graphics abilities, to understand its file handling and security subsystems.  Mainly to see how it might hold up as a gaming platform or a mini-web server in its own right... But absolutely none of that came across from the questionnaire as posed.

And of course, the final nail in the coffin was that in the "Address" section it insisted I select a U.S. State... even though I had opted for the country of "United Kingdom".... and they can't blame my using an incompatible web browser for this annoying faux-pas as I was, and am right now, using the Chrome browser... I love google kit, I just hate that questionnaire.

So good luck to anyone who fills in the answers and to those who get a look at Chrome OS and the netbooks I hope we get lots of insights from you....

If anyone at google is interested and tracks this blog down (cus they can from the info):
  * I use an O2 XDA smart Phone
  * I use BBC iPlayer as my main source of on-line TV
  * I use SkyPlayer as my main source of on-line movies
  * I listen to music with Spotify
  * I spend over 8 hours each work day solidly connected to the internet
  * I spend all my personal time (save for time driving) connected to my wireless
  * I operate Windows, Linux and c/PM based computers
  * I prefer to utilise Chrome as my Internet Browser
  * I spend most of my personal time on my computers performing development tasks in C++ and C#
  * I spend all of my working time on computers performing development and debugging tasks in C++ and C#

My wish for the Chrome OS is to investigate its ability as a development environment, its fitness for documenting as a generic C++ platform, its ability as an entertainment platform (game/media display) and finally to have a damn good look at it in general.

The promise asks me to use the Chrome Notebook as my main computer, well, it looks to me that there is no documentation of the platform being able to act as my main platform... it could however take the role of one of my desktops and two of my laptops as my main portal to the internet and entertainment... 

However, I am not your typical internet junkie...

Wednesday, 9 February 2011

Using a Computer (A Personal Insight)

There are a few things I hate in life, soggy chips is one of them, vinegar is another... but enough of the chip shop variety of pet peeves, here's my main entry in the list, it is one which socially, economically and professionally I get slapped with time and time again, and this is people who think they know what they are doing, but don't.

Or more specifically people who think they know what they are doing with a piece of computer equipment, or software, but don't.

Many people in the UK talk about "exams getting easier", about things not being as tough now-a-days as they were, and computing this is most certainly true.  When I was born the PC was not really a realised entity, it was not until my little brother came into this world three years after me that IBM realised that they could get a big cash cow in the form of the IBM PC.  At the time I stayed with graphical computers, like the Commodore series (16+4 and 64), and then the venerable Atari ST (which is still here ready for use next to me as I type on my all singing all dancing PC).

But those long dark days of the 8bit and 16bit computing, the days tinkering with Commodore Basic and STOS and the understanding performance issues on a computer really set me up for the dawning of the current age of computing, I saw and struggled with unwieldy software, I saw and struggled with bad API [application programmer interfaces] to actually get this computers to do what you wanted, back in those days you could not just plug into the internet and download software to do a task for you, you had to go into magazines into infinitely minute font listings to see if someone out there had a disk you could buy which might do the job you wanted.

So you wrote your own software.  I remember the first software I ever "sold" was written in Personal Pascal for the Atari ST, and it was a semi-multi-user database for recording kills in Frontier Elite II.  The user had to write down their kills with pen & paper [can you imagine telling someone this today, in say warcraft?] then when you had done playing Elite II you loaded my program (they were programs then, not 'applications' or 'executables', the ST used the .PRG extension not .EXE - ahh, the good ol' days) and once loaded they entered all their kills, it listed them for them, gave them a tally of each craft type they had killed and let them save the list and mail it back to me on a second floppy disk, so it could be tallied with everyone else's list and I would send them their list back on that same floppy disk, and then they could see where they stood in the mix with all the other players in my rota.

Can you imagine anyone doing this in that exact manner today?  No, people today want instant kicks, they want to flip a switch.  And it was just such a someone, someone whom I remember as a child looking at my Atari like it was some sort of alien death ray and me like I was some two headed monster for understanding this piece of kit, who flipped some switches this week and ran into my ire.

This person was setting up a family tree on the internet, but as an experienced computer user; one aware of security risks and such; I didn't want to be included as more than a cursory glance on said chart.  However, this person wanted dates of birth, maiden names basically all the key identification information which would allow someone to get a spanking new American Express in my name.

So, I declined to want to be involved....

Holy mother fucking god, I wish I'd not bothered and just went to commit financial fraud upon myself (for a laugh).  This person out there clicking away on the internet really didn't read my reply, so I received this awful scree about her knowing what she was on about and basically that I should shut up.

So, I clicked all my knuckles, thought solemnly about going around her house to pull her around her own front garden by her hair, and then settled down to just say "hey, just me you may not know but I had a degree in this stuff, so I'm just giving you a heads up because you may not have realised you were risking breeching everyone privacy by publishing this info.  You have peeved me off, so either realised you have peeved me off, or go boil your head.  But if you're interested yadda yadda yadda" and I reeled off a bunch of information sources for her, sources which are not documented on-line at places like www.ancestry.co.uk, no I told her about placed like "grave books" which reside at cemeteries in the UK listing all internments and told her of two lesser known family internments, and then told her to check out the census information.

I thought my reply was a simple, did you know, and here you go.  The second scree of utter drivel I've received had made me block this person from being able to contact me, and remove her mother from my contacts list too.  I can only assume the self-righteous pious facets of this girls personality come from her mothers side of her family, as they certainly don't come from the side we share.

And this set me thinking, why does my saying "I have a degree in this" really goad people?  You don't go to your GP and argue with them when they tell you what's wrong with you... You don't take your car to a mechanic and then stand having a blazing row about whether your exhaust has fallen off or not.

So why do people who use a computers (and whom mostly have only started using them recently) sit there and tell those of us with actual hard earned experience and knowledge the what for and why to of computing?

I mean, they've not had to sit and be jibbed about being a geek, a nerd or a hacker, they've not been laughed at when they've listed their interests as "Computing".  Because they've only come to the computer as a play thing, as a communication device, as a portal.  As a mature piece of consumer electronics.  They have basically jumped on the band wagon late, and let are still trying to degrade and insult the knowledge and experience of those of us whom were on the wagon before the electrons were flowing so nicely.

And, it's basically utterly fucked me off.

I think these people need to stop being able to buy a computer off of the shelf, they need to have a computer users license first.  They need to pass a basic literacy test as well, because I'm sick and tired of meaningless babble that some people take for well constructed text.  Of the two scree's this girl sent me, I have to say the second was far better, she even managed to use one comma in the right place... just the one, but the effort was there... that's what you have to appreciate.

So anyway, are things getting easier with everyone and their dog using the computer as a device to mix up life?  Yes, but these people need to realise they are standing on the shoulders of all those dweebs, geeks, nerds and hackers who made is possible.  And when one of those founding fathers sends you an e-mail you rant at them at your own peril.  Because you're the one who will need them, long before they need you.

Monday, 7 February 2011

C++ Forward Dependencies

Forward declarations in C++ can be the best thing ever, they let you decouple the declaration of a class you're working on now from the implementation of another which you happen to want to use; but havn't got around to writing yet, something like this:

#include
class B; // This is a forward declaration
class A
{
private:
B* m_PointerToB;
public:
A (const B* p_InstanceOfB) : m_PointerToB (const_cast(p_InstanceOfB))
{ // I know this is declared inline, but just for this explanation
} // don't worry about it
void Output () { std::cout << "Hello World" << std::endl; }
};

So I can carry on declaring and implementing this class, without worring about B.

However, there is a problem with all this, if your forward declares are in different namespaces and you're trying to include the classes which are forward defining one another from different header files, what do I mean?

Well, I declare Class A in a header and implementation file pairing e.g, a.h and a.cpp, they might look like this

-- A.h ---
#pragma once
#ifndef CLASSA
#define CLASSA
#include
namespace SpaceA
{
class B;
class A
{
private:
B* m_InstanceOfB;
public:
A (const B*= NULL);
void Output ();
};
}
#endif
-- A.cpp
#include "A.h"
namespace SpaceA
{
A::A (const B* p_PointerToB) : m_InstanceOfB (const_cast(p_PointerToB))
{
Output();
}
void A::Output ()
{
std::cout << "Hello World" << std::endl;
}
}

This all works fine, you can compile and even run an instance of Class A around a little, the next day however, when you come along and implement Class B properly, some rather odd, and pretty badly explained (by the compiler) messages will pop out at you.

These messages will ellude, vaguly to the problem that B is not a B.  And they will usually be listed against the compilation of tile A.h but I've also had A.cpp and B.h show up as the erroneous file the fingers of failed compile are pointing at.

So, lets look at the header for B, before we go any further:

-- B.h --
#pragma once
#ifndef CLASSB
#define CLASSB
#include
namespace SpaceB
{
class B
{
static void Describe(const B*);
};
}
#endif
-- B.cpp --
#include "B.h"
namespace SpaceB
{
void B::Describe (const B* PointerToB)
{
std::cout << "Pointer to B is at ref " << PointerToB << std::endl;
}
}

If you compile now, you'll still not see an issue, you'll not get a repot of a duplicate declaration, because the two declarations are in different namespaces, i.e. they are not just "B" and "B" they are infact "SpaceA::B" and "SpaceB::B".

What we need do now is imagine we're on the third day of this (lets face it arduously hard coding task), and we go back now to link more class "B" related functionality into A, thus:

-- A.h (version 2) --
#pragma once
#ifndef CLASSA
#define CLASSA
#include
#include "B.h"
using namespace SpaceB;
namespace SpaceA
{
class B;
class A
{
private:
B* m_InstanceOfB;
public:
A (const B*= NULL);
void Output ();
};
}
#endif
-- A.cpp (Version 2) --
#include "A.h"
namespace SpaceA
{
A::A (const B* p_PointerToB) : m_InstanceOfB (const_cast(p_PointerToB))
{
Output();
}
void A::Output ()
{
B::Describe(m_InstanceOfB);
}
}

And here things go wrong, if you miss the "using namespace SpaceB" on line 6 of your new A header file, then you will get a message that "void Describe (const B*)" is not declared for class B.

Lots of you will be shouting "obvious", but some of you will be happy that someone out here on the internet has pointed this little foil out, but the bigger problem here is that you fix the name space as above or thus:

SpaceB::B::Describe(m_InstanceOfB);

And you suddenly get another error, this time you get a message that type "B* can not be cast to type B*", some compilers will be a little more specific and report "const SpaceA::B* can not be cast to const SpaceB::B*" [two of the three compilers I tried did this latter option].

And unless you're eagle eyed you might be foxed by this error for a while, the problem is of course the amgiuity you have left in your code from the forward declaration of B in the file A.h.

You could remove the forward declare and #include "B.h", but this might introduce a cyclic include, and most certainly will be a build dependency we can avoid (avoiding build inter dependencies is good - so long as you test your code properly - but that is another topic).

So avoid any problems including or making a new build dependency we simply need to move the forward declare into the correct namespace, thus:

-- A.h (version 3) --
#pragma once
#ifndef CLASSA
#define CLASSA
#include
#include "B.h"
namespace SpaceB
{
class B;
}
using namespace SpaceB;
namespace SpaceA
{
class A
{
private:
B* m_InstanceOfB;
public:
A (const B*= NULL);
void Output ();
};
}
#endif