Friday, September 19, 2008

Ahoy Matey!

Since Talk Like A Pirate Day (TLAPD) seems to be recognized by a lot of tech companies I figured I would add some of my own thoughts on the matter.

Pirates have that certain nautical attitude that basically says "don't mess with me".  Or it may even be that certain aptitude to make things happen, or just do what they want, damn the consequences, Piratitude if you go by the original creators of TLAPD. That is an attitude that can help in testing as well, as others have noted specifically Phil Kirkham there is such a thing as Pirate Testing, take what you want and steal the rest, that is a common trait that I have seen in testers and I think its a good one.

First the attitude, when your job revolves around testing and the basic premise of your job is to find faults in others work (mind you this it not my total thinking on the matter just a realistic view on part of it) then you need to have a sense of humor about it.  Who has a better sense of humor about life than pirates?  When your time is spent wenching, drinking and fighting you better be able to find enjoyment in anything cause when your time comes that's it, if you haven't enjoyed the ride on the way there then you are missing out.  Being able to come into work with a smile on your face, and a skip in your walk, every day or even when facing down a Developer for a specific bug, having a devil-may-care attitude is sometimes your best friend.  Giving difficult news is tough enough, but when you can come in with an "Arrrrr Matey" and a cutlass at your side, its amazing how the levity and sharp blade can turn things around to your advantage.  Pirates have it all, and they never let you forget it.

Testers are like pirates in another way as well, as the Beastie Boys once said, "What do you call Pirate's Trease?  BOOTY!!".  What's Test Booty?  Well its not that hot chick/guy who just got hired out of college.  No.  It's the treasure and self satisfaction you can get from a job well done, cause after all treasure is just a pirate's way of saying "we took that ship unawares with its cannon locked up and its sails limp".  Test Booty can be anything from writing a script that catches bugs, to that program you need to write which once you get it working and see it doing its job are able to sit back and say "my job just got 10% easier".  You can shoot for more, but lets keep those goals realistic, we are pirates after all, men in the real world, not philosophers who look towards some Eternal Truth.  Unless you can find it at the bottom of a cup of grog.

Yes, Testers are like Pirates, because we go our own way, earn our booty and still at the end of the day can enjoy a nice cup of grog.

Wednesday, September 3, 2008

Windows IPv6 Socket Clients

Just got through building my very first windows IPv6 socket client and server, I am using them for validating that the application I am testing, can detect the IPv6 sockets across machines.  Lots of fun stuff.

In trying to get the code to build on Windows 2003 Server, using Visual Studio, I had to add the following into the include directives to get them fixed.  Since it took me some searching to get this done let me go over some of this.  My code is as follows (and yes its probably not good form, but like I said, this is my first Windows app, I've taken 1 C++ course and read a couple of books and looked at some example code...I'm a total newbie on this).

First the ifdef, I needed to define WIN32 in the project properties under C/C++/PreProcessor Directives

#ifndef WIN32
   
 #else

This pragma was to get rid of a Warning due to a conversion from size_t to int problem where I was holding the result of the bind operation in an int in order to be able to tell what the status was later on.
#pragma warning(disable:4267)
There were problems due to linker errors which are due to ws2_32.lib and iphlpapi.lib not being found on the path, I also needed to add in the libraries to the Visual Studio Platform SDK, and I even placed in the latest Microsoft SDK on my local box, then in the project options under Linker/General/Additional Libraries added the paths to the two SDK's.  I'm still not sure I need both of these or not, but they are there just in case.
#pragma comment(lib, "IPHlpApi")
#pragma comment(lib,"ws2_32")


Because I am trying to use IPv6 operations in these apps, I need the updated winsock library, not the older one that only supports IPv4.
#include
End the if directive.
#endif
A couple of other items I had to add:
  • When trying to build this for IPv6 I kept getting warnings about sprintf being insecure, and deprecated, this was removed by adding _CRT_SECURE_NO_WARNINGS in the PreProcessor directives.
  • I needed the pragma lines because the Linker was having problems with the socket operations and would give me errors regarding LNK2019: unresolved external symbol
That's it for now...I'm sure I'll be getting back to this, I still need to do work on the code, but I definitely need more practice.