Friday, 28 October 2016

It’s time for the fortnightly roundup of what I’ve been up
to during my training contract at QA Consulting in mostly wet and dark Salford
Quays, Manchester!

So we started looking into Java Enterprise Edition (Java EE
or JEE) which contains a variety of different packages on-top of the standard
edition, such as unit tests for test driven development (TDD) and server based
interaction heavily integrated systems.

We were allocated into small groups of four members per team
and tasked with creating the database and front-end systems for both the staff’s
inventory management system and the website the user would interact with as a
visitor or account holder. We started on
ERD diagrams and planned out our database structure and relationships to other
tables. While this worked well for a pure database design, it did not interact
with Java Server Faces (JSF) in the way we anticipated and as such we had to
change the design to follow object oriented design better.

We then began writing the code that would interface with the
database; however we did not make the databases so it was unintuitive to write
as we did not know if the code was working or even close to relevant. We
managed to create what we believe is a working structure, although time will
tell how successful it is.

The following week we then started developing the front-end
for both the website, which was mainly copied over from one of our team members’
code from previous weeks, we also designed and created wireframes for our
front-end designed for the inventory manager to manage stock and change
products.

We then took these and implemented them in HTML, CSS and JavaScript,
making working versions of each. Then the HTML was tediously converted to
XHTML, a far stricter language which also doesn’t use many useful features that
HTML5 implements. So after rejigging
this and generally fixing the 1001 errors using all this causes, we now have a
working server that loads a template which contains content within it, the
content is dynamically loaded by different xhtml files and loads CSS and
JavaScript dynamically.

The team works well and we generally complete our targets
well before latest deadlines. Next week it will be interesting if we can hook
up the database and get everything actually interfacing correctly. Then I think
I will be able understand JSF and the entire process clearly.

This will be my last personal blog but a final technical
post will be published sometime next week. Thanks for reading if you’ve got
this far, I’m not really sure why because this content isn’t interesting to
read in the slightest.

Friday, 21 October 2016

Nintendo has revealed their new game machine as the Nintendo
Switch, a portable device akin to the Wii U controller. It doubles up as a home
console that can connect to a tv/monitor and the controllers on either side of
the screen are detachable to be used individually, as two separate controllers
or put them together to make a typical controller looking something similar to
a basic Xbox 360 controller.

You can see the teaser they posted on YouTube here:

The Nintendo consoles of recent haven’t been too inspiring
and their sales have echoed that. The Wii U sold about a tenth of what the original
Wii sold. The Switch could be Nintendo’s ‘last shot’ says one analyst.

While console sales have been a rocky road for Nintendo,
handheld portability is one of their stronger suits and we have enjoyed success
with their handheld devices ranging back to the classic Gameboy. From the
trailer we can see that it’s using small cartridges, similar if not the same to
the ones used in the 3DS.

Specific device hardware have yet to announced but should be
a significant step up compared to its predecessors, again it’ll be unlikely if
it can outperform the standard Xbox One or PS4 let alone Scorpio, PS4 Pro or a medium
grade PC.

From the varied reactions we can see that the main sticking
point is the games (rightly so). While the Wii U contained some best sellers
like Zombi U, Splatoon and Nintendoland they didn’t offer enough of an incentive
for users to make the switch to the platform long term. With the trailer we can
see with the Nintendo exclusives; Zelda Breath of the Wild which already has
shown some impressive looking trailers, a new currently unannounced 3D Mario
game. The re-mastered version of Skyrim something unheard of with Nintendo but
shown in an impressively high graphical fidelity, whether it was pre-rendered
footage or native content has yet to be confirmed so it could just be a big
hoax.

The trailer wrapped up with a public esports tournament, something
proportionally very rare with exception to smash tournaments, typically nothing
in scale to what the trailer shows. I find it unlikely that the Switch would
ever properly establish itself as a truly competitive platform. Time will tell
if this is a baseless claim or they plan on supporting a competitive scene and
games that wish to encourage that style of gameplay, typically the opposite of
what Nintendo usually target, casual group based play.

Nintendo says it will reveal more information in the months
up to the March launch. It generated a huge amount of anticipation and it will
be interesting if this is a breath of fresh air for Nintendo consoles or the
death of it.

Thursday, 13 October 2016

It’s coming to the end of my sixth week here at QA
Consulting so I’ll give a breakdown of the last two weeks.

So last week several of us have been chosen to do front-end
development potentially at BAE Systems, although this is still up in the air
(hah) as not many details have been released. So we began training in front end
development, specifically JavaScript. I’ve previously used the language to
develop a small web-based fault tree viewer in university that could break down
a hierarchical structure of gates and display them in HTML5 canvas. This time
we covered more of the basics to start with, then covering JQuery, a JavaScript
library for client-side scripting of HTML that’s used on 65% of the worlds’ top
10 million websites. We then covered Ajax which is a set of web development
techniques used for making asynchronous and updating webpages.

From these technologies and with an SQL database running
from XAMPP I could implement a database that communicates through PHP to
display on a web page using Ajax to continuously update content. Using this I
made a small catalog of products with various fields. The users could modify
the data set using lists of modifiers such as ‘sort price high to low’ or type
of products.

I also successfully implemented a searching function that
attempted to match each tag provided by the customer with the database fields
for name and a list of tags the employee adds when adding a product to the
catalog. These all dynamically changed the SQL query and displayed the
relevant content.

This wrapped up the week and while not perfectly intuitive
it was interesting to learn each of these techs as I’ve not really learnt them
much before.

I then moved onto AngularJS a structural framework for
dynamic web apps. It extends HTML’s syntax to express custom components and
features data binding as one of its core features. So we started learning
angular 1 and after getting to know the very odd and obscure syntax we were
told that there’s Angular 2 which changes basically re-does a bunch of stuff
and completely changes the syntax again.

This time Angular doesn’t look so pretty, it’s very time
consuming to create and the learning curve is extremely steep for only mild benefits.
This is because the majority of the functionality can be found from HTML5, Ajax
or JQuery which I covered all the week prior! A simple catalogue system that
took five or so files ended up taking over 70 to produce similar content.
Angular also loves to deviate from set standards within the programming world,
instead of the usual camelCase style that the majority of languages follow, Angular
goes for kebab-casing and whoever thought:

return Observable.of<Product[]>([]);

That you needed eight special characters at the end of a
simple return statement needs some crazy pills.

As you may can tell I’m not a massive fan of Angular but the
experience was good and now I know not to touch it again with a 10 foot barge pole if i can.

I’m looking forward to next week where we start to cover
Java Enterprise Edition, while I’ve done the standard version before I haven’t covered
the large scale distributed multi-tier functionality EE adds to the standard
edition.