Friday, 28 October 2016

QA Consulting – Personal Blog #4

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

Technical Blog Post #3 - Nintendo Switch

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

QA Consulting - Personal Blog #3

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.