Tuesday, 3 February 2015

Into The Woods : It's A Fucking Musical!

Stop, stop right there... Yes even you at the back... Stop...

Watch this...


Right, you watched that, which is the official trailer from July 2014 for "Into The Woods"... Right, you may have recognised a few of the cast, James Corden, Meryl Streep, Tracy Ulman, Chris Pine, Anna Kendrick and the delectable Emily Blunt...

Looks a pretty cool film from that trailer...

You know what this trailer totally and utterly does NOT contain?...

Singing...

You know what none of those cast members are really known for?...

Singing...

Johnny Depp, we forgave you for the Demon Barber bullshit, but why are you here in this for like five minutes flat?  Seriously, five minutes and you got a special "and Johnny Depp" in the titles...

Yes, folks, this fucking film is full of singing, it's a musical... Something I, my wife and my mother-in-law failed to spot before paying to see this fucking thing last weekend.

We went based on this very trailer, we saw that before another film a few weeks before and thought this was pretty much just our sort of thing... Ner.

It's a fucking musical, I saw it say at the beginning "From the Director of Chicago", and I thought... "I hope that's the gangster kind, not that singing shit"... FUCK.

We were genuinely surprised and a little let down, the film was okay, there are glaring problems with the plot, which they wound up and threw away... "Jack your mother died"... no she didn't, she bumped her head, what the fuck!??!?!

Meryl Streep was very good, but they just disposed of her character in the oddest way, and the ending was rubbish...

The family sat behind us in the packed auditorium summed it up best... As the little girl turns to her Dad... "That was a nice film, how long have we been here?".... And his reply "I don't know, but it feels like forever".

I nearly fell asleep at one point, but I'm not paying £9.50 to fall asleep... I feel a little ripped off, and I'd never have gone to see the film with a more representative trailer.

The November 2014 Trailer is different in one key way... Yes, it includes the singing.



Monday, 2 February 2015

General Update

I've been a busy boy this weekend, I've ordered some new network wire to bring Cat 6 Ethernet directly to the upstairs bedrooms, so I have that to fit out, I've organised all my finances after the house move and everything.

I've retired my two Dell Power Edge servers - just because they were so loud - and I've got a whole bunch of pictures of them for their going on e-bay later this week - they'll be sold as a batch lot, as I basically use one as parts for the other, but they're not shabby, the heavily used on is is ironically one of the cleanest machines I have.

Their replacement is a much more suitable Pentium 4 PC - my old World of Warcraft & Eve-Online machine in fact, it's a massive downgrade in power - we're going from dual 64bit Xeon's on a server chassis to a 32bit 2001 Pentium 4.  But it's all about getting away with leaving the PC running in the front room, where it'll be part of my internet provision of services.

I've also been servicing and modding my Saitek X45 joystick, I've got a friend of a friend sorting out a set of new springs for me, I've looked carefully at modding the handle, and also had the thing in pieces to discover what's inside.  I maybe putting together a whole post on this alone, as there are not many or much good information about this solid old stick on the interwebs.  Mine being 12 years old it's lasted a long time with no intervention.  It's played me through MS Combat Flight Simulator, the original IL2, IL2 Forgotten Battles and IL2 1946.

It started to get a little funky in War Thunder last month, I noted I could not keep my 109's from pulling oddly, I thought it was a trimming issue, but it was actually the lack in my spring.

Anyway, as I say, more about all that later.

In Elite-Dangerous, I've been out and about in the universe, I've taken my pilgrimage to Sol, I arrived there last night, and docked at Abraham Lincolm station just as Australia was coming into view below.  I'm going to take a better look tonight.  However, on the way, though I have a fuel scoop I did decide to stop off and dock at a station, just to update my save at that point.  The Commodity reading software worked a treat, even on the system name it had never been trained on before.  Going forward I need to improve the capturing sequence, as it's a little clunky even for me; and I created it; but data capture is working out really well now.  Capturing and the reading of the commodities, with my myriad of little updates and string swaps is working extremely well.

Aside from changing the capturing to be more, shall we say, slick; I'm also going to be adding threaded operation to the OCR, so as I can leverage some of the multi-core features on machines to speed up the reading process.  There is a notable delay at the moment between the images being captured and the OCR kicking in.  Yes, part of this is writing the images as bitmaps to disk, but the major delay is the serial nature of it going down the list, I may as well go down two different parts of the lists at the same time!

Apart form selling the Dell servers, I'm also going to be selling a really nice 1024x768 resolution CRT monitor, my last CRT monitor.  I'm only selling it because it's being retired along with the servers, it was their heads up display.  But it's one of those crystal clear displays perfect for coding with.

I'm also going to be selling the Samsung CLP-320 laser printer, because... well, despite being only 4 years old it's not survived, it still works, but there are fading in and out on the printing, I've replaced the toners (at a hell of a cost) and so I can only conclude it needs some tinkering with or servicing, which I don't want to do.  So I'll go out the door for spares & repairs on ebay.

If I get a decent price for all these bits of stuff I'm selling, I may be looking to get myself the £160 X55 Rhino flight stick, but this is perhaps a pipe-dream with the financial situation as it is.

Saturday, 31 January 2015

C++ Warnings - Runtime Error - Uninitialised Variable

When we're programming, you should always look for and fix warnings, not only would this save you time in the long run, but it stops strange errors you may get at runtime.

One such error I had today was the use of an uninitialised variable, by accident, but this wasn't caught until runtime.


I missed this one because someone had set the project up with only level 3 warnings, so not only should you try to fix all warnings, but you should have your compiler spit out the highest level of warnings possible!

This can cause issues with added libraries, such as Boost, which cause lots of warnings from code you don't control but it can be confusing.  However, this does not diminish the importance of fixing errors:


The actual warning with this setting was then visible:


You can check this out with this code snippet, and check for yourselves:

#include <iostream>

int main()
{
int l_temp;
for (int i = 0; i < 100; i += 50)
{
if (i == 1)
{
l_temp = i;
break;
}
}
std::cout << "temp = " << l_temp << std::endl;
}

Friday, 30 January 2015

The World Reacts to the Mighty Jingles - #6 Langley, Virginia, USA

We've all wondered, haven't we, what happens when Jingles releases a new Video?... In this new series I aim to help solve that mystery.... This week, I'm led to believe this is inside a building in Langley, Virginia...


Check back each Friday at 18:30 UK time for the next thrilling instalment, where might we find Jingles being Enjoyed?

Thursday, 29 January 2015

C++ Alias rather than Typedef Example

I've been reading through Scott Meyers latest book, and one item I picked up on, which had passed by my eyes before; but I'd not noted, was the use of alias instead of typedef.

I used typedefs a lot in my code, to try and simplify things, well today I've created my first piece of code which would have used a typedef, but which I've used alias "using" statements for:

void ConsolePause(const unsigned int& p_Seconds,
const bool& p_Show = false,
const std::string& p_Legend = "")
{
if (p_Seconds > 0)
{
using Time = std::chrono::high_resolution_clock;
using MS = std::chrono::milliseconds;
using FSEC = std::chrono::duration<float>;
using TimePoint = std::chrono::system_clock::time_point;
using MSCount = long long;

TimePoint l_start = Time::now();
bool l_exit = false;
do
{
TimePoint l_end = Time::now();
FSEC l_duration = l_end - l_start;
MS l_durationValue = std::chrono::duration_cast<MS>(l_duration);
MSCount l_count = static_cast<MSCount>(std::round((l_durationValue.count() / 1000)));

if (l_count >= p_Seconds)
{
break;
}

if (p_Show )
{
std::setfill(' ');
std::setw(30);
std::cout << "\r" << l_count;
if (!p_Legend.empty())
{
std::cout << " " << p_Legend;
}
}
}
while (true);
}
}

The code counts down on the console for the set number of seconds.

I like this, I think it's neater than the typedef system, though when I first wrote one instead of "using NAME = TYPE;"  I actually did "using TYPE = NAME;" on sort of autopilot.

Code derived from answer here: 

Wednesday, 28 January 2015

Elite Dangerous - Trading Tools - Client/Server - Progress Pt8

Support this project now at Patreon, or donate directly via PayPal:


The development plan, now that we have reliable data collection, is to start to share the tool; but more importantly to share the data.  I will be publishing clearer details of the XML format being used, however, it is a node only based text format, at present a commodity looks like this:

I plan to wrap this basic format into an outer "Commodities" node, with the date & time included, and make that publically available.

However, I do not plan to generate that whole list - especially as the data set grows - I plan to generate that list maybe weekly at most, as I am going to be driving this for free*.

To recap the current process for capturing the information, you play the game, and run the image processing application, then from within the game client - without tabbing to the image processor, you just press keys - you can send commands to the image processor to capture images of the navigation and commodities screen, to start them capturing the character information with tesseract:


Armed with your local data, you then run the separate windows application - and yes you do have to be able to tab to this application - to perform searches of your collected data store, which looks like this:


If you opt into sharing your data you are helping the project, at the most basic level, providing your data you will help yourself and other players!  So by sharing your local data store it gets uploaded - periodically - to the server.


Once you run the trade analyser, when you've been sharing your data, it will download the latest public list and start to use this, if you are a special supporter, sponsor or donor this is where your live cycling of the data will take place, the trade tool will automatically authenticate with the server, and start to receive the updates from all other players faster than the general list.

Of course, you will be able to write your own tool to access this same data, and be able to call the server to download the current public list of commodities and use that in your tools, other sites and projects are welcome to use this data as we collect it.  However, I do ask that you share, and help this project collect data in return.

I will be generating the special patron, sponsored, active list at least daily, if not hourly, so anyone supporting the project through Patreon, or through a sufficiently high single donation will be given access levels giving them near live, or as I say at least daily updates of the information from the project.

This won't does not affect your local data store, if you collect data live, then it is your data, and you opt into sharing that information.

As the  project matures I also hope to be capturing system connectivity data, this is where other information - such as your ship's current jump range - may be required, so help the server rationalise the data.

The server will also afford a level of checking and sanitisation to the data, so signing up to help the project you will receive a more accurate data set, not only for the commodities names, but the prices as well as the supply & demand.

What do I mean by sanitised data?  Well, the OCR is not perfect, as a side effect of either over-training, or under-training, it makes mistakes.  It also makes mistakes when the background behind your commodity screen changes - this can be because you were using the capturer whilst in the hangar, or whilst just on the surface of the landing pad.  These variations affect the isolation and interpretation being carried out.

Here is a good example:
Clearly the reader got it wrong on at least one pass, and created a new erroneous commodity, or sometimes it just plain gets it wrong:
You can spot these kinds of mistakes in the other screen shots I've already published:


The server however will be able to sanitise this data, that is correct spelling mistakes, or ask the master list (or myself) to confirm what is meant by a new name or a miss-spelled name.  Helping correct this data.

Your local data store will not do this and such mistakes will just sit there, until removed or updated by your sharing your data and receiving the new ratified list of commodities.

As well as mistakes with the name, sometimes it also makes mistakes with the values being read, this can lead to interesting problems.  I did once set off on a 4 system flight loaded with (you know I forget what) but it had a profit of 800,000 credits!!!!  WHAO!

Only when I arrived did I find out I'd made a loss, because I'd bought these things at something like 2,000 units, and the OCR had mixed up the 1877 of the destination with 7811, vasting increasing the profit margin the tools thought I would get.

This problem has been reduced, but again depending on the background at the moment the commodities or captured, of if they are a "good" screenshot or not it can happen that mistakes are made.

By sharing the data however, there will be multiple, perhaps even tens or hundreds of imprints of the same commodity at the same station coming in, the server will be able to average or at least rationalise these values and filter out wildly high values!

This is data sanitation, filtering out the outrageous mistakes we as humans would spot instantly, ornot even make as we can read the screen perfectly well.

Of course, running such servers is going to be costly, and so to share we do ask you help support the project.... Over at patreon you will find our page.

Tuesday, 27 January 2015

BBC - History - Russia - Auschwitz - Remember

The lack of copy and proof reading with the BBC is getting annoying now, I've pointed things out to them, I've blogged about them, but we're down to basic bad copy now, as a journalist I think your first order of merit should be to write coherent text, which can only be scanned one way... The moment your words could be interpreted two ways you've failed in your job of clearly communicating.

Here's an example, from a BBC blog about the 70th Anniversary of the Liberation of Auschwitz...


See it... "Dozens of the Nazi killers at Auschwitz escaped justice after the war"... That can be read two ways... That there are dozens of killers whom were Nazi's who escaped being brought to justice... Or that there are dozens who killed Nazi's who escaped justice...

I know, and I presume most of you know the history, so we know the writer intends to mean that the Nazi's were the killers and they escaped, but history teaching, cultural differences and the sheer number of holocaust deniers might want to read that differently.

I personally knew a British Solider whom was part of the very first units to get to Belsen, I saw the look in his eye as he described what he saw, I do not deny the Holocaust, I hold it up as the biggest crime ever, EVER, committed, a crime which cuts through divides and should unit all people to resolve never to let something like that happen again.

But then I meet kids now who don't know it happened, that don't know who ran the countries, I've heard kids who know the name Hitler, but they associate the name more strongly with caricatures in computer games, they find it hard to realise the dark days Europe went through, the dark days which my grandparents gave their youth to abate.

And we read of parts of the world where there is conflict today, even driven - as the holocaust was - in part or in full by religion, and one has to question what is the point, why fight?

There are extremists from all over, Islamic, Christian, Orthodox, then there are extreme wings of politics, and it all leads back to a lack of context, you can fight and maim and attack today, but should you?... If you and your family, your country, your people had been ravaged by true horror, would you?

In the Ukraine, Russians do not want to remember the Great Patriotic war's beginnings, they did not until recently acknowledge they had murdered Polish officers when they sided with Nazi Germany and invaded Poland, the history is brushed under the carpet.  Just as it is with the cock-eyed Russians running into Ukraine, a whole other sovereign country, and declaring they are fighting to restore their country.

No, no you're not, you've forgotten the horror, and turmoil thrown up nearing a century ago by one World War and then another, you've got no back story, no history, perhaps only propaganda.

And propaganda has been seen to be journalism tainted with a strong bias, so journalism has a lot to answer for, and the least it could do it write coherently on matters of import.