Sunday, March 30, 2014

Trying out digital boardgaming on the VASSAL Engine

After reading about Vassal a game engine for building and playing online adaptations of board games and card games on your computer on RPS, me and my friend Nils, who literally lives on the other side of the planet making it hard to play board games together,  decided to give it a go. Here is our first impressions with the software.  

Modules

Each game you can play is represented by a module, and there is literally hundreds of modules, and hence games you can play. But there is an honor system in place you should not download and play a module/game unless you own the game. And since the rules does not seem to be available in the module it is really hard to start playing something.

Carcassonne

We wanted to start with something we both knew so we decided on Carcassonne, a board game classic. We downloaded  and installed the engine and then we downloaded and opened the module.
http://www.vassalengine.org/wiki/Module:Carcassonne

Getting started

It was a bit tricky to get started, but after we figured out how to log in, create a game and start a game we were rolling. Slowly, slowly rolling, not sure where. It took us a while to figure out that the tiles were updated and synchronized between us, but the meeples were not. So Nils placed a tile with a city and placed a mayor in the city, after clicking Finish I could see his tile, but Nils had to tell me that he placed a mayor there and I had to place one there myself also, one of his. And the reverse when I placed a meeple on the board, I had to tell Nils and he had to move a meeple of mine to his board. Confusing at first and very much configuration needed. But after a while it actually worked really well and we got pretty far into the game. 


Fun but deceitful 

But it was tricky, since usually when you are playing digital version of games you are used to that the game tells you when you have an illegal move, but since the rules are not implemented in the modules, only the board layout and tiles, you can do incorrect moves and get away with it. 

After about 30 moves each we had good speed in the game and it worked really well. But we realized that we had a bit different view of the rules, as I had mostly been playing the Android version and Nils the board game version. And also I had been doing a couple of illegal placements, as you can see in the screenshots. And we forgot to start with the center tile. So we decided to call it a draw, read up on the rules and points and try again another night.  

But I'd still call it a success, we had great fun and will definitely do it for real next time, may the best meeple commander win!


Game play Images

It looked like a lot of the expansions also were available. 


Trying another module, Small World Underground

Small World and Small World Underground are games that we have placed a couple of times and really enjoyed so we thought we would give it a try, but the amount of tokens, races, expansions got us off to a confused start. We didn't really got to play anything, we spent a quarter of an hour trying to figure out how it worked, and the we realized that we didn't know the rules well enough. But I absolutely think we can make it work and have fun playing it. 





And Another, Citadels

Citadels is a game I have a played a lot so I check it out. All the cards where in there so it looked pretty nice. But as the other it took a while to get orientated.

Summary

VASSAL looks great and I think that Nils and I will pick it up again soon and place a couple of game. I think it'll be good to make sure that the first session of a new game, or at least the first 30 - 60 minutes are set aside to learn  how that particular modules is played. 

Focus on game that we already know well and have played several times in real life will things much easier. And make sure to have the rules close by since do not come with the module.

 




Virtual Reality and Oculus Rift

Just wanted to post a quick one about how excited I am about the future of Virtual Reality and the Oculus Rift.

I know that many are skeptical about Facebook's purchase of OC and I was at first too. But after reading these two very interesting articles about the purchase and the future of VR I have to say that I am super excited what Facebook's money is going to do for Virtual Reality.

I will be following this closely from now on.

Articles

http://www.forbes.com/sites/insertcoin/2014/03/28/ready-player-one-author-ernest-cline-believes-in-facebooks-oculus/

http://www.oculusvr.com/blog/introducing-michael-abrash-oculus-chief-scientist/


Books about Virtual Reality ( that I haven't read but would love to )

http://www.goodreads.com/book/show/9969571-ready-player-one

http://www.goodreads.com/book/show/830.Snow_Crash

The future is now soon!

Saturday, March 22, 2014

Cryptocurrency and Dogecoins for the win

I started out the day with trying to learn more about bitcoin and see how I could get into the whole mining business, I live in Australia after all. But after reading a bit it seemed that I missed the train, it was cumbersome to set up and the instability of the currency makes me think that I'll hold of investing my super into bitcoins right now. 

But I wanted to know more about cryptocurrencies so I kept reading and I am amazed that there are so many currencies out there. coinmarketcap.com tracks almost 200 different currencies.

There are many of them and it can be hard to get started, but I feel for Dogecoin since I could get started straight away, it has a Aussie connection and pictures of cute dogs.

Dogecoin

Dogecoin seems to be the most ridiculous but also one of the fastest growing of the currencies. The rise to power seems to be the low entry level, it takes less than a minute to set up a digital wallet and get started. I am using dogevault for a wallet https://www.dogevault.com
And there are plenty of places called faucets where you can get your first DOGE for free for that feel good feeling. 
Checkout http://freedogecoins.net/ for a free DOGE resources. 

Read more here:



Tuesday, January 7, 2014

Software Testing rebooted and reimagined

For the last 4 years I have been doing purely Test Automation and my interest in Software Testing as a career and my involvement in the community dwindled to basically a halt.

But now I find myself as a QA Engineer at Atlassian in Sydney, Australia. Trust me, I am as surprised as you are!

So I have decided to pick up my commitment for my Testing career again and I start reading and studying more blogs and articles again.

I have started by reading this excellent article by James Bach.
http://www.satisfice.com/articles/omega_tester.pdf

Enjoy and see you soon

Friday, April 5, 2013

WhatTheFrak: Test Indicator in TestComplete breaks my Test Cases!

I am currently working on an assignment where we use TestComplete to run their automated web test cases.

I found something that made me go "What The Frak" last week that I would love to share.

Running the tests locally I was getting the ever so annoying sometimes-it-fail-sometimes-it-just-works behavior on a few test cases. The same scenario every time. Test ran as expected up until a point where it's suppose to click a button, after the click is made the new page is not loaded.

I was looking in the logs and it look like everything was ok. It would locate the correct object to click. Calculate the correct x and y co-ordinates. Move the mouse to the correct position. Fire a click. Looking at the screen shoot that is taken it looks like TestComplete was clicking exactly where it was suppose to click. But still the new page wouldn't load.

I enter the system manually to click the button in different scenarios only half expecting it randomly not to work. But the button worked perfectly every time.

I then realized that it only happened on a few select buttons all located in the upper right corner. So I ran through the tests that sometimes would fail watching the upper right corner like a hawk. And that's when I noticed that the TestComplete Indicator has a pop up text box displaying log information, the pop up changes size depending how much text is in it. We had made some changes to logging and sometime it would get pretty large. Maybe 3 times the width of the Indicator itself.

When I watched it carefully I saw that sometimes the popup text would get big enough to cover some of the buttons in the system that we use in the text.

Not believing it could actually be true I did some tests. After starting a test I immediately paused it.
Then placed a windows with a button half way under the pop up. When I tried to click through the pop up nothing happened. Trying to clicking outside the pop up, of course, worked perfectly.

So what happened to the test where that the Indicator pop up blocked the button and my tests clicked the pop up instead! Which, naturally, didn't load the expected page.
*Sigh*
I know you don't believe me so I added two example pictures below.

Image 1: Hovering over the blocked part of the settings button gives no indication that I have the mouse over it. Clicking does nothing.

Image 2: Hovering over the unblocked part of settings button gives an indication that has a mouse over it. This is happening even if the window is not active. Clicking it opens the menu.


I still have a hard time believing how SmartBear could do this. It feels like such an obvious mistake.

Solution

The solution was to hide the indicator before we clicked and showing it after clicking has been done.
Indicator.hide();
// Do the clicking
Indicator.show();

When we run the tests in our continuous integration environment we hide it permanently. Just to make sure it does not mess with any of our tests in some way.

Now all the tests run smoothly and all clicks go through as expected!
And there was much rejoicing.



Friday, October 26, 2012

Getting Started with node.js on Ubuntu

This is a small getting started guide for getting up and running with node.js on Ubunutu.

Step 0: DON'T install node.js from Ubuntu Software Center.
When I started messing about with node.js the first thing I did was to install node.js from Ubuntu Software Center. But soon I started using it I realised that some of the stuff that my friends where using, like npm ( more on that later ) was missing. I check the version and realised that the version I got from UBC was 0.2.6 while the latest verision was 0.8.12. So i quickly removed it from UBC and headed online.

Step 1: Install from nodejs.org  
Head to http://nodejs.org
Clicking the "Install" link will give you the latest version tar.gz
Extract the content to somewhere good, this example i will use ~/code/
Enter your terminal and go to the folder, cd ~/code/node-v0.8.12
Read through README.md carefully ( lol! )
>./configure
stuff happen
>make
more stuff happen
>sudo make install

Restart your terminal


Step 2: Start Server
Copy the following code to a file called node_js_getting_started.js
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Running node.js\n');
}).listen(1234, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1234/');
Or download the file here node_js_getting_started.js

Now run the command >node node_js_getting_started.js
And you should see
Server running at http://127.0.0.1:1234/

Step 3: Test it
Open a browser and go to http://127.0.0.1:1234/
and now you should see "Running node.js" in your browser.
We got a webserver with node.js up and running! Yay!


Friday, September 28, 2012

Shellshocked! - Powershell basics

This is a basic FAQ, reference table, cheat sheet, dummies guide, whatever you want to call it for Microsoft Powershell.


I started using Powershell regularly recently at my current assignment at a company that does Business Intelligence and only use Windows based systems.  I decided to document my recently acquired knowledge for my own good and I thought that maybe it'll be help to someone else out there. This is by no means a complete reference to Powershell, it's just a collection of the stuff I use the most. And I'll be adding more and more to it as time progresses.
If you spot any errors or can suggest improvements please let me know.

Running Scripts

You might get an error the first time you try to run a powershell script on a new computer, the error you get will look something like this.
File C:\scripts\test.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
To fix this you need to open Powershell in Administrator mode and run
Set-ExecutionPolicy RemoteSigned
Now it should be possible to run your scripts.

Commands

Create Directory
Let's say we want to create a folder called "Appname" in our Apps folder.
new-item C:\ProgramData\Corp\Apps\Appname -itemtype directory

Wait for input
If you want user input you can use Read-Host
$a = Read-Host "Press enter to End"

Write to Screen
Write-Host "Hello World"

Download file from Internet
Want to download something from the web? No problem. Create a Webclient object and use DownloadFile.
$webclient = New-Object System.Net.WebClient
$url = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhspnpZGK25blu0_PtvwrljVqhr7cMKHk30jlTLniStMgmlhIjx5UmnIsU93QBrX0kXXa2xFNlZds9NVM3TnPmxn7BSj0QctDlwKrz3ziAEmMMzQGu1qgc1FfroTDuwlpAwBb17D_HjdqY/s220/jonas_bw.jpg"
$file = "good_looking_guy.jpg"
$webclient.DownloadFile($url,$file)
>> WebClient at MSDN

Fun Trivia 

When writing this Google's Chrome gave me a typo warning for "Powershell" and suggested "Powers-hell". Coincidence? :)