Thursday, 30 June 2016

Blog Update : New Look

Some of you, the eagle eyed, may have spotted a new look & feel for the blog just went live... If you did spot it, congratulations, have a cookie on me!

I hope you like the new look, and I'll be talking to you soon about my adventures trying to secure new branding & hiring artists/designers to help!

Wednesday, 29 June 2016

Office of Tomorrow : Smart Pens

Making copious notes, meetings, diagrams, sketches... Today has been a day all about the pen, I'm one of the few developers around the place whom always has a pile of scrap paper and a bunch of coloured pens in order to express an idea.  Many of the projects I help with, or developers I point back into the right direction leave my desk with a lot of notes written out.

The trouble with this however, is I've just been tasked with finding a way to reduce the amount of paper going across everyone's desk, through the photocopiers and especially out of the printers.

I of course have no budget for this, being tasked with saving money means one is not actually able to speculate anything, even if it were in order to accumulate savings.

As such, I've discussed removing all flip charts for white boards, using apps on tablets, or smart phones (which seem ubiquitous around the place), and been thoroughly looked down upon.  Either by the owners of the devices steadfastly not wanting to use them for work purposes; which is fair; or their simply not wanting to stop using paper; which I agree with.

Unfortunately every scrap of paper used here has to go to a shredder, and as such we are paying for the paper, paying for the ink, paying for the time to put the ink on the paper, and then paying again to see it destroyed.

Those that be want something better, something digital, something progressive.

With drawing tablets already a taboo, and the insistence on not using their desktop PC's for such note making, I'm reducing the problem to something meeting three key criteria:

i) Reduce the paper usage in the long run, by digitising anything written down, and so removing the need for distributing physical copies... "Write Once, Share Forever".

ii) Leave users happy that they can still take, make, sketch or otherwise flesh out notes they take.  By hand, with a real pen.

iii) Not break the bank.

Having taken a look around, there is only one obvious candidate technology, the "Smart Pen".

This is a pen, designed to capture whatever they write from the real physical page, directly, to a digital page.  They do rely on apps, but some are generic bluetooth connected units, and so would be (I hope) fairly easy to connect to a desktop computer rather then a phone or tablet.

One can write once and indeed re-share that digital copy infinitely.

Unfortunately, the cost of entry to such ambrosia is very high, ranging from anything from £150 to £700.  

We shall have to see where this journey takes me, but certainly considering the technology of today which maybe more widely adopted, Smart Pens are high on my wish list, not least as information about them seems to sketchy.

Sunday, 26 June 2016

World of Warships : Cruiser Grinding

I've been, between lots of work, playing some world of warships this week.  I've actually been pushing my German Cruiser grind from tier IV to V.  Which I completed earlier...

I've had some excellent games, admittedly I've only been playing Cooperative, but it has been great fun.  And I love the option in Warships to play cooperatively.

Friday, 24 June 2016

Software Engineering : C++14/make_shared & Factory Create Pattern

I have a C++ issue, it's not often I can pick fault, but this is one of them... For years, I've used the factory create pattern; or at least my take on that pattern.  

Whereby I make the constructor private, or the whole class "Uncopyable/Uncreatable", and then I add a new static function which returns the class wrapped into a smart pointer.

By doing this, I get the advantage that no-one can use outdated "new" calls on it, and I drastically reduce the potential for third party memory leak creation/exploitation.

I can still do this with C++14, however, for a while now authors have recommended using "std::make_shared".  Their points are valid, but they break my factory creation pattern.  Which has much more to offer me than just using "make_shared" or whatever smart pointer creation template.

Lets take a look...

So, we have the class, but we're creating and deleting it in the old style, anyone forgetting to perform that delete will leak memory.

There, we can implement creating the class instance with a smart pointer...

A big change next however, we make the constructor private, to absolutely stop other programmers creating instances of our class with "new" and so totally negating anyone creating the class and potentially forgetting to delete it.

So we offer the programmer the static create function, which returns the shared pointer wrapped class... At least, that was the idea, as we can see, it utterly fails, because the std::make_shared template class is not a friend of our "foo" class.

Finally, we have to take a step back, to use the create, and hence enforcing our whole factory create pattern, we have to return this smart pointer wrapped instance after using "new".  This is fine, it is the same as "std::make_shared", but feels like a retrograde step.

Tuesday, 21 June 2016

Project - Socket 775 to Socket 771 Xeon - Update

As an update to my original post, I got another socket 775 motherboard and took a video of how to cut the tabs off the socket, making it able to accept a socket 771 Xeon, but doing so with the original chip in place, to protect the socket pins.

Check it out here:

Sunday, 19 June 2016

RIP Anton Yelchin

Little bit stunned by the news of Anton Yelchin's accidental death...

Friday, 17 June 2016

Gaming: Snake.IO

Is this a bad habit forming?

Find me, sometimes, on

Wednesday, 15 June 2016

My Reviews, CPU's and Books

Well folks you'll have no-doubt noticed I'm getting a fair few reviews out there, mainly through my YouTube channel, but also via Amazon where you'll find me fiddling and filming many items.

However, I wanted to just take a moment, to say; even though I get these items, if they are rubbish, I'll tell you.  I reserve all my own editorial rights, and though you can see something as cheap or free as a viable worthy thing, I'm still going to tell you if they fail miserable; simply because that's what people need to know.

You need to know if the items you're getting are utterly rubbish or not, whether it's worth spending money on, or even if it's cheap and decent, or just "good enough"; you know as a stop gap measure.

So expect many more things to float this way soon... I have an Android Tablet to review, a pretty nice looking Carry-All for gaming/software purposes; as someone on the move with many software facets, it'll be nice to have a bag with actual pockets for CD's or DVDs... and yes, I still use optical media!

I am also looking at filming a new-updated series about writing your own CPU, my previous posts here about it are perhaps my most viewed pieces, and the YouTube videos about them (which are silent) are pretty popular too.... But they're not perfect, they are as I say, Silent, they are perhaps incomplete, and to be honest they need updating to C++14.

There is also another reason for me to push out a new software series anyway, and that is that I'm constructing a book, yes me... An author!... I've been toying and trialling different styles for a technical book for sometime, a book for office use, to teach others to think and code as I do.

The reason being, we're hiring graduates, and they don't have the experience firstly, but now they're all very much younger than myself, and they don't have the grounding in computing.  When they're sat in front of an eight core, 3Ghz PC with 16GB of RAM, and they describe it as "slow", I just want to slap them around the back of the head with a rolled up news paper.

So, I started a document about how they should perhaps approach programming, gave some algorithms as to how they can see how something can be slow, but actually their machines are quite fast!... This was a success, and at least two of the people hired around me have stuck around, despite being very young graduates with very narrow fields of experience, they've become pretty good jobbing programmers.

I feel therefore I might make a more experience orientated programming book, many of them out there are tutorials, or "beginners", or even expert friendly, and many of them impart good knowledge, but I don't believe many expand or impart skills to the reader, and it's that skills bit which is difficult.

Difficult because in text, you're reduced to being very verbose, a picture speaks a thousand words, but a picture is not going to explain how to code all the time, so I'm struggling with word count and audience attention span at the moment, at least with my initial drafts.

Drafts?... Multiple?... Yes, because, like with my blog posts, I'm breaking this whole thing down in to different texts, a basic, a couple of middling and one expert tome, it what I'm aiming for at the moment.  Backed up with an initial FREE! Introduction set.  I also plan to perhaps have a free book about cross-platform work too, or the cross-platform development environment, and then a paid for book about actually doing cross-platform work.

The idea being, the reader can boot-strap into my text for free, then cherry pick what sections they may want.

I'd not want the whole series to cost more than a few pounds, we're not even talking tens of pounds, literally the whole lot for less then £9.99.  But each individual part I do want to charge for, a few pounds at a time, so to speak.

And why read my stuff?.. Well, if not to get a job with me, to at least feel more than just a programming, to take that step towards being a developer, to being better, and thinking better of the work you do.

Also to let me feel a little self-important... Right?... that's the best bit!... Be Xel trained today!

Monday, 13 June 2016

Electronics Tinkering : Project Plan #1

I've been wanting to tinker with some electronics for ages, and in my store, I have some Z80 CPU's and lots of TTL logic.  But before I dive into that, and since I'm totally untrained, I thought I'd have a play about with my soldering iron and see what I could mash together.

My plan therefore is to desolder a PS2 connector from one of the Socket 775 motherboards I killed, and to connect it to an arduino uno to read the pins.

Looking at this, I can mount the PS2 connector to a project board, solder on a set of headers and wire each pin to a known point on the header.

From there I can use jumper cables from my breadboard to bridge from the headers on the project board to the arduino.

At least, this is the theory.

The first thing I need to worry about is the clock, I have no idea what the clock rate is, if I need a crystal, or if a capacitor charging & discharging will do, or even if I can create the signal from a GPIO pin or PWM pin from the arduino... I'll have to look into that and let you all know.

My rough schematic is going to look like this on the project board:

The outer shell will be going to ground, and it has four feed to solder.  Then the four pins seem to point to clock, Ground, VCC and Data.  I'm not clear on which of the pins below become the sockets, so I'll have to insert something into the socket holes and check for continuity to the pins to know the order.

But each group of four will be soldered to a header, which I've marked read and blue.  One will be the upper set of ports, the other the lower.  I'm not going to distinguish keyboard/mouse because I just want a keyboard signal.

So, a bit of soldering with my new iron.  I'm going to have to de-solder with it too.

Below follows a list of the links I'm interested in looking through:

From the Wikipedia entry (yes I read Wikipedia) states:

"Communication is serialsynchronous and bidirectional.[1] The attached device generates the clock signal. The host controls communication using the clock line; when the host pulls the clock low, communication from the device is inhibited."

Saturday, 11 June 2016

Tech Rant - Fix Your Filter

You already know I stream a lot to, despite making zero income or anything and have pretty much no viewers, it lets me at least think I'm involved in something - seriously guys, I get like 100 views a day on here, go check out my twitch, and my YouTube!  They're linked on the right by the tips jar - which you could also use.. *cough* cheap bastards.

Anyway, what's my problem today?... Well, I've had ANOTHER copyright strike on Twitch, this is the second, the first time was a false positive, it detected god knows what from a truly free royalty free music source.  As a consequence I stopped steaming with music, despite nearly everyone else being able to do so, I didn't want to take the chance.

Today's strike though beggars belief.  It reckons I'm playing Shaggy's rendition of "Mr Bombastic"... I am not doing any such thing, this is a video of me talking... and Tinkering with a server...

Do I look like Mr Bombastic?  Am I totally Fantastic?

I am getting so annoyed with this, because when you submit your appeal, it does not go to twitch, or a forum, it goes off to some mindless entity and you get this horrible worrisome message about their submitting your details to some court in California.

News flash twitch, you'll have to drag me kicking and screaming to get me to go to California, and also the sound doesn't contain any music, and I certainly don't sing!


Wednesday, 8 June 2016

Selling Infrastructure Today, to the Mindset of Yesteryear (IT Provisioning Talk)

Today, I'm going to talk about presenting, or selling, an idea to internal management.  How to sell them the idea of a capitol level expense without having it rejected.  Because in 16 years of professional development, I've seen the world change, when I began working the age of the Internet was in full swing, the dot COM boom was about to burst, but in infrastructure the world had two sides of a divide, "big iron", with big costs or PC's which were relatively cheaper.   Today however, that same PC class hardware (though in a different form - the wrack mounted server) is ubiquitous in the work place, however the costs for major infrastructure are ever growing.  To sell a purchase is a challenge, and this is how I've dealt with that challenge, and would like to continue to challenge it in my office today - if only I were given chance to help.

If you work in an environment where those above understand the value added to a business by having decent infrastructure, then you need not read any further nor know anything more than I envy you!

In a large business, or situation where funds and a core understanding for the need to invest in your IT infrastructure is understood, it is very easy to justify and secure funding for the right storage solutions to suit the business needs, be that a decent Network Attached Storage solution in a small office, or a large scale Storage Attached Network at the capitol expense level.  The key to getting either end of that scale of investment is not really explaining the hardware & what it does, though that is very important, but instead it is communicating multiple smaller pieces of the over-all jigsaw as to how this investment will impact and improve the company.

One can cherry pick topics, or even name drop them, "total cost of ownership (TCO)", "return on investment (ROI)", you can demonstrate the value of IT, the value of this hardware investment to justify the cost, and how integrating it with the business will potentially improve performance.

Anyone whom has tried to explain this the lay man, or just a stubborn audience, can find themselves on the loosing end of the battle, even with added credibility (such as your being ITIL certified), if your audience doesn't understand, nor buy into your vision of the future, or even if they're the kind of work collegue who likes to see the world burn, then you are going to struggle to put your point across.

This is something I wish to discuss with you today, for it's something which dogs the infrastructure around me, both professionally and personally.

We all understand that spending money today is hard, but those of us looking at what needs buying, sometimes we do know more than those who just look at the bottom line cost.  So seeing the price of new equipment as a cost, rather than an investment is the first hurdle to cross.

Before any jargon, before any numbers go on spreadsheets or slide shows, you need to set the mind of your audience into the correct frame, and this needs careful phraseology from yourself, and careful use of easy to handle concepts.  A practical example is also of good use.

Always when approaching this topic, I begin by never speaking of costs, or expense, I always talk about investment and better yet expansion.  Sometimes you may want to create a whole new system, such as a Storage Attached Network, this maybe many thousands of pounds, and if your audience has no idea what a storage attached network is your task is made more difficult.  So, immediately drop any technojargon, a none-technnical audience is going to feel more at ease with simple phrases and careful handling.

Introduce the technology later in your presentation, but initially talk about Storage over the network, or storage over the wire, talk about internetworking the machines in your company and a pool of storage.  Then explain the pool is to be stored on equipment known as a Storage Attached Network Array.

This jogging with the facts, and altering the terminology thrown out makes you appear less as though you are educating, rather you are introducing old thinkers to something new, and doing it gently.  All this introduction should take two to three minutes, no more, and have a big picture.

The best case scenario you can assume occurring is that they simply are looking at the price, the worst is that they think they know what you're talking about and that they know how much it should cost, by abating their feeling antagonised by your testing their knowledg with techno-jargon, you immediately stop their feeling alien from presentation.

Plus, they will one-day be one of the users of your new infrastructure, to include that, and the benefits of going the extra mile now in the implementation will improve their working environment for three, five, maybe ten years is worth keeping in their minds eye.

Once you have explained to them what is the target of your investment, you need to quickly give them a price break down, I recommend starting with the solution you want, it's cost, and a maximum of three bullet points about why... For example:

SAN unit, twelve disks, giving all the storage we need:
* Easy maintenance
* Brilliant Performance
* 3 years vendor provided assistance & service

Don't yet put the price, next give the maximum price example, and make sure you include the price as a negative, so they become aware you have checked above the realistic price point for a good solution...

Gold plated magnetic frizbee
* Again Easy Maintenance
* Best in class performance
* Most expensive solution

State boldy, this most expensive solution has no benefit over the previous mid-priced example... Remember you're trying to sell the idea more than the hardware, you're the buyer of this equipment, and you will be using it to furnish IT Service to the audience you are now addressing, they must realise they can pay more for something better, even if you do not want this top of the range performance and costs.

Finally, you should give a lowest spec variant, this should however, still be something you can manage, but do point out the added costs of your having to be there to trouble shoot, to coax it along, to keep it on the straight and narrow.  In todays world we do run a multi-facetted high availability model of computing.  Unfortunately in many middle of the road businesses the funds come from staff who's experience and idea of large scale computing is just that, large!  They remember the era of Big Iron of mainframes, they do not understand why a 1U sized server should cost multiple thousands of pounds, and they don't care for you explaining it.

But they do care that you show due dilligence in researching the costs of these items, and what you want to sell them is the idea that they are picking your best option.  So make sure there are more negative points with the least performant option...

Stone Tables
* Extremely slow to store data
* Difficult to source new media for
* Will require constant monitoring by staff to operate

The next piece of your presentation should focus on the price, but still avoid calling it a cost, a price is the "price of success", or the "price to deliver", never ever call is the "cost of ownership" or the "cost to the business", I believe this is the most erroneous part of courses such as the ITIL qualification; and yes I understand you need to explain the "cost" to a business of their IT services, but calling them a cost when you are trying to get investment in them from those above is ludicrous, address the costs of running later, today talk about the price, get the price out there as simple as possible.

A table is a good solution, the options you present in the order presented left to right, with your preferred column highlighted a slight different colour.

Include yearly maintenance, hardware maintenance, licensing & your estimated costs in salary terms, don't be specific with that last item, just let them know:

SAN Frizzbee Tablets

Capitol Investment £8,500 £11,850 £2,300
Maintenance/year £250 £530 £1,200
Additional* £500 £1,200 £2,400
Staff Overhead** £2,400 £3,800 £4,500

* One off costs related to installation or delivery
** Annual cost, estimated against staff time & pay grades, to operate the system in house.

Make it clear that you are presenting the best solution for not only the performance of the services being provisioned, but also in your own time, you are trying to make sure you are free to help the business expand.

The maintenance/year costs is also an area you should leverage, make it clear to the audience that you want to provide a continual improvement program, include that value here, and call it a value, never a cost.  This is one of the good clear items within the ITIL concept, that you have a continual cycle of improvement, if you never factor that into the cost of modern infrastructure, then you are as guilty of living in the past as those member of your audience stuck on the idea of "big iron".

To conclude your presentation, recommend your desired solution, explain you have gone both above and below the price point selected, and state this is the best solution for the business, make reference to specific things within your business process; and if you find yourself wondering what the business process is, then scrub your talk, you are not ready to deal with any queries regarding the business yet!

So, why am I talking about this?... Well, this is a problem relayed to me second hand from the office, there's a current effort to upgrade the whole network.  The server infrastucture has already been done, without my input, however, the next item is all about the network which is very much in my sphere of interest.

There are highspeed, high availability SAN's available on this network, however the back-bone is a mix of gigabit and megabit unmanaged switches, there is no separation of departments with VLans, there is a domain which I believe needs rebuilding as it sometimes struggles and there is a lot of network chatter all the time, from myriad devices.

All problems which could be solved with decent wiring and decent switching equipment, managed smart switches being one of the key infrastructure requirements... Are we getting decent switching equipment?... Unfortunately not.  And the poor soul who had to try and fight this good presentation fight, and whom lost, was simply beaten down in their request by old-hat thinking, indeed the quoted reply when they asked for managed versus unmanaged switches was "They all do the same bloody thing".

A bloody minded reply which pretty much set the tone of what was being delivered, for this being perhaps only the third major network infrasturcture investment in 53 years it's extremely disheartening to see the investment only going as far as replacing like-for-like, instead of actually leveraging value for the investment.

Is going from a mix of unmanaged switches going to solve all the problems in the business, no.  Is it going to solve some of them some of the time, yes, but only with lots of staff input still.  Would fully managed switches been worth the investment?  Yes!  Would they have saved on staff over head and solved more of the business challenges at hand?... Yes.

Unfortunately, and ultimately, the presenter of the idea was not talking to an audience whom were on the side of the technology, nor an audience willing to buy equipment for seemingly its own sake.  The audience was hostile, they were firmly of the belief that the problems would best be solved by working around them with a human, rather than with better equipment.

How do you argue against mind-sets like this?... Being qualified is one way, having qualifications to back up your argument is fine, but it only goes part of the way, and in my experience to go all the way with these arguments, you have to approach them in the manner we've talked about today, to bring the potentially hostile over to acceptance, and do it gently, do it by stroking their ego and making them feel part of the process, that they're really doing more than you ever will to benefit the company, by their accepting your advice, for the greater good.

Tuesday, 7 June 2016

Google seem to know something about today....

Thursday, 2 June 2016

Software Engineering : My History of Odd vs Even

I've been a avid fan of Intel's processors since my very first PC, powered by an Intel 80486 SX-25 it taught me so much, it also got me into a lot of trouble once, being an SX it was essentially a DX unit with a failed floating point unit at fabrication.  But Intel being the trixsy tech wizards they are, they didn't throw all those chips away, they simply disabled the broken portions, kept the working addition and subtraction sides and sold them under the SX label.

This of course led to some interesting differences between the SX & DX chips, the most obvious being the multiplication behaviour, on a DX to multiply to numbers you simply loaded each into a register and executed the one step multiply.  However, on an SX you loaded the start value, and the denominator into two registers and then looped through for a number of times adding them.  So the pseudo assembly code for it might look like this:

      LDA 3
      LDB 10
      DEC LDB

Where we find us loading up the two registers, then performing an add in a loop until we've added enough times.  This is of course a lot slower than:

      LDA 3
      LDB 10

And, the more you multiply the slower the SX could behave.  It wasn't as simple as this, however, for demonstration purposes we'll assume it was, there's no need to comment telling me I'm a moron (again) I know I am, but this is only a demo.
But this little SX machine was the only machine I had, and I was moving my programming skills from the playground of the Atari ST to the PC proper, and so I chose to try and get a lot of juice out of the machine.  On trick I learned was to page through screen memory scanning for shapes, but of course I quickly needed a bunch of math functions.  Using the CMath library was quite slow on the SX, so I started to find quicker home-brew alternatives.

Initially I had no idea I was working around my own CPU's hindrances (I only found this out later, when I realised on a DX2-66 chip I was getting magnitudes better performance).

One hunderance, of function, I worked around was odd & even... To calculate this, you would usually use a remainder, by division, in C this might look like this:

int remainder = 34 % 2;

Remainder would have a zero value for even values

const bool OddEven (const int& p_Value)
    return ( ( p_Value % 2 ) == 0 );

I was doing this in Pascal at the time, the syntax of which I have forgotten.  But you can see, it is a fairly simple function call, quite non-descript.  My problem on the SX was it ran so slowly.  A lot faster was to convert the value into a string, and inspect the last character!

bool l_IsEven = true;
int l_Number = 42;
char* l_str = new byte[16];
memset ( l_str, 0, 16 );
sprintf( l_str, "%i", l_Number );
int l_lastCharacter = strlen(l_str);
switch ( l_str[l_lastCharacter-1] )
     case 1:
     case 3:
     case 5:
     case 7:
     case 9:   l_IsEven = false;

So, we get a value in l_IsEven more quickly, and it was indeed quicker for me to do this...

However, when I first looked at this problem, I had no itoa, nor sprintf, all I had was integer control.  Indeed, in the programming language suite I started with the only way to get text easily from a value reference to a string of characters was to write them to the screen with "write" and then to move back to the start of the line with a return carriage, and then to "read" the line again.

This was very very very slow, much slower than even the switch statement bastardization above.

So, I set about it the most logical way my 14 year old mind could think of...

It took the number, and did this:

bool l_IsEven = false;
int l_Number = 12354;
while ( l_Number > 10000 )
     l_Number = l_Number - 10000;
while ( l_Number > 1000 )
    l_Number = l_Number - 1000;
while ( l_Number > 100 )
    l_Number = l_Number - 100;
while ( l_Number > 10 )
    l_Number = l_Number - 10;
switch ( l_Number )
    case 0:
    case 2:
    case 4:
    case 6:
    case 8:   l_IsEven = true;

This of course was totally horrible, and I quickly stopped using it in favour of the string method, and later in favour of the remainder function.

However, this horrible history of code remained in one of my header libraries, at the time they were Turbo Pascal Unit files (TPU), but when I went to University at 18, some four years after writing this original code I had tried to convert some of my Pascal support libraries to C and then C++.

One of the legacy calls I converted, without even looking, with an automatic tool was this very stupid function above... And yes, it ended up in at least one degree level project (oh what a fool I looked).

P.S. I'm sorry to report, I've never owned an AMD processor... However, I did have a Cytrix x86 to upgrade this very Intel Chip!

Wednesday, 1 June 2016

Reaching Out & Being Pushed Back

I've spent the last few days talking to a few companies I'd love to partner with, to bring you more reviews.  Now, on the internet we already have a lot of gaming related or performance reviews, but I was inspired more about the idea of working environment, development cycles, or throughput for the worker.

I'm interested in things like cables, drives, storage, cases and also the main centre piece of your working time, the machine itself.

I tried to speak to Intel, and was given a pretty flat "you're too small"... Believe it or not, 400,000 of you have passed through these pages in the six years they've been running (thank you so much), and by far the most popular posts are my programming tutorials, followed closely by the reviews.

Combining the two, could only be a win-win situation!

I have today therefore, sent missives to AMD, Asus and nVidia.  I've also sent online messages to some smaller storage firms, like Xstra in the EU and Kingpin.

It is actually quite hard to find UK based reviews of items, often you can be watching coverage of some great ideas from US sources, only to find either the items are not available or they cost an absolute fortune compared to US prices.

What else am I up to this week?... Well, I had a long researched article in the fire, it was related to my uncovering of several cheaters on US based IT courses, at least the US students were the only ones silly enough to get caught by myself.  However, during my uncovering of this situation one of the colleges in question took extreme exception to my posting about their students activities, and they slapped me with a "cease & desist" order.

Their order only covers publishing any names in the US, but my problem is, I can't prove conclusively who the students in question were, so if only one person out of a class of 29 were cheating in the manner I uncovered, then by just posting the name of the course or college, I would be defaming the innocent twenty nine; not something I want to do at all.

So, for now that article, as interesting as it was is on hiatus, and I can only thank the other three colleges and lecturers whom got back to me, however briefly, for your time and frank disclosures.