Testing
Testing the application was carried out on a step by step basis as development of the application progressed. Both the White and Black Box testing methods were used for this project. The main tools for testing and debugging the application were the Windows Phone Emulator and the Windows Phone HTC 7 device.
The server side encodes data using a UTF-16 style format. Windows phone supports the little -endian and big-endian Unicode formats, both UTF-16 with a different byte order (as their names imply). Testing for a suitable style encoding was important so that the right format of data could be exchanged between the InterLife server and Windows Phone.
Sending data using Unicode (little-endian)
Sending data from Windows Phone to the InterLife server using the little-endian style an “OperationTimedOut” response was received. This helped established the fact that the server could not decode little-endian data. The encoding for sending data was switched to big-endian and that worked successfully.
When receiving data, Windows Phone also needs to apply the right style of encoding to the data string. This is discussed in the next 2 subsections.
Receiving data using Unicode (little-endian)
Applying the little-endian style encoding to the string received from the server, the output was as follows:
“Ā㘀 䔀洀瀀攀爀愀爀 刀攀猀椀搀攀渀琀\0℀\0℀\0”
Clearly, the string had the general format of avatar details - number of avatars, length of name, x, y and z upon closer analysis. However, a more easily readable data string would be helpful. Thus, next encoding to test out was the big-endian.
Receiving data using Unicode (big-endian)
Applying big-endian encoding, the output of the string received from the server looked like this:
“ 16 Emperar Resident\0!\0!\0!”
This was the nature of the string interpreted by Windows Phone. Even though it had special characters, this format nonetheless played a vital role in helping identify the best algorithm for manipulating the server string discussed in section 4.2.4.
So clearly from these tests, it was established that the best encoding for sending and receiving data between Windows Phone and the InterLife server was the big-endian.
Testing Range of Values for Plotting Avatar Locations
The InterLife Island 2D map image has a 255 x 255 pixel layout. Selected coordinates were used as initial points for placing an avatar in-world to check these locations would show on the Windows Phone’s apps 2D map. These coordinates included; (0,0) for the bottom left corner of the map, (0,255) for
the top left corner of the map, (255,255) for the top right corner of the map and (255,0).
The application encountered errors with all but (255,255). It however worked for (1,1), (1,255) and (255,1). Further analysis showed the algorithm used to manipulate the server string, failed to work for coordinates with either x or y being 0. The reason being that, the string manipulation method splits the strings at ‘\0’ but the twist here is, ASCII character code for 0 is represented as null (‘\0’) so there were extra delimiters ‘\0’ within the string! This is shown below:
“ 16 Emperar Resident\0\0\0\0\0!”
The consolation here is that, the extreme ends of the island are not likely to be accessed by users of the InterLife Island. Nonetheless the problem still exists.
Multi-user Testing
The involved, testing whether the algorithm for string manipulation will work when multi-users were online. Two avatars stood at random locations in-world and this was the image obtained – see figure below.
Map Showing multi-users online
Software Maintenance
As seen
during the testing procedures, the phone sometimes translated received strings into the ‘unknown’ character format ‘�’. This character was seen on the emulator and the windows device. This indicates a serious flaw in probably the character main encoding algorithm of both the phone and emulator. There is no certainty as to what the problem is. However, since the OS is a Release Candidate version and not the final product, it will be given the benefit of the doubt. With this in mind, in terms of maintenance, regular checks will be made to keep an eye out for the Ready to Market version of the OS. As soon as the RTM version is released, the OS will be updated and the application re-installed on the device to ensure it works properly.
Also, over time, phone manufacturers slate certain libraries and some forms of coding become deprecated. When a new operating system is released and these phones are updated, previously installed apps on these devices are unstable when run. As such, constant updates will be looked at to ensure the code within the app is adjusted according to any changes made.
User Feedback
To get user feedback about the application, a questionnaire was prepared with careful selection of questions, pertaining to the general design of the system, user friendliness of the software amongst a host of other pertinent questions.
Those who tested the app were actually impressed with the design of the user interfaces as well as the whole structure of the system. However they were not too pleased about not being able to send messages to avatars online due to the fact that the Inter-life messaging service was broken. On the brighter side of things, they were impressed with the capabilities of the basic in-built twitter client which is able to send messages out to twitter.com. A feature they wanted to see implemented was the ability to receive twitter messages directly to the app and not have to log in online to view messages. They also suggested a ‘Clear’ button which will delete the stored twitter credentials from the phone’s memory citing security reasons.
Still on the messaging capabilities of the software, majority suggested sending messages directly to avatars online using a Second Life API. This way messages will be sent to Second Life servers and on the whole any exchange of information will be done between the app and Second Life without needing the Inter-Life server at all.
In summary user feedback was mostly positive and generally gave thumbs up to the app but still maintained it could do with more improvements and a few tweaks. Indeed the software could do with some more additional features.
5Conclusion
Summary
Using a powerful Interactive Development Environment, Microsoft Visual Studio for Windows Phone an application that shows avatar locations on a map was successfully developed on a Windows Phone device.
By communicating with the Inter-life server over a TCP socket connection. The app was able to send queries to the inter-life server retrieving the details of any avatar online. The data sent back to the app, was manipulated in different ways and the relevant details stored and used to plot avatar location coordinates on a map.
In addition to plotting the exact location coordinates of avatars on the map. A twitter messaging client was developed for sending messages to in-world users. A point well taking note of is that this messaging service was specifically not tested, since at the time of development there was a major fault with the Inter-life server twitter routing messaging service. However, as demonstrated in section 4.6 messages sent from the phone clearly show up on the twitter website. This gives an indication the twitter client is functional. As soon as the Inter-life’s messaging service resumes the code within the app could be modified to accommodate this.
Evaluation
What worked
The objectives outlined in section 1.2 were satisfactorily accomplished. First of all the application was successfully developed on a device running Windows Phone 7.5 operating system. The core functionalities of the application work well. Avatar details were able to be retrieved from the InterLife server and the data obtained was processed in order to display avatar positions in-world exactly at the same location on the InterLife Island map within the app. A twitter client was successfully developed to handle messaging within the InterLife application. Though there is much satisfaction with achieving the important goals of the project, there are still a few gray areas worth looking into. Miscellaneous features such as splash screens were also used effectively. In addition to that, an embedded code which alerts the user when there is no network access was also implemented.
What did not work so well
Firstly there was the issue with the unknown character error. These errors mainly popped up at login and retrieving avatar details from the InterLife server. Even though exception handlers were embedded within the code to handle these errors, it still stopped the smooth flow of the app. The issue was put before Microsoft and hopefully an updated version of the OS - RTM should have this fixed.
In addition to the unknown character error problem, the string manipulation method for processing returned avatar information from the server had some flaws within it. As seen in section 4.7.2.
Occasional glitches with the InterLife server sometimes hampered the smooth testing of the app. For example, the server begins returning empty strings after the main Second Life servers were updated and had to be reset before things run smoothly again.
Though messages can be sent from the twitter client successfully, it does not support receiving messages so that part of the app is flawed. Exception handling within the twitter client did not handle errors properly. The future work section below touches on ways this application can be improved.
Future Work
Region Expansion
This project can be expanded even further. It supports only the Inter-life Island. The app could be developed such that, it covers a wide range of other islands in Second Life.
Traveling Across Regions
After region expansion, a teleportation feature could be implemented to help travel from one region to another.
Real Time Chatting Experience
A real-time chatting experience would make the application more interesting to use. The messaging system of the application currently relies on routing messages Twitter servers; the InterLife server fetches these messages and then finally delivered in-world. In addition to the Twitter feature, the app could be developed such that it communicates directly with Second Life servers. This will in no small way enhance the messaging experience.
Empty Strings from Inter-life server
During testing, it was observed that, there were times when results obtained from the server contained empty strings. This happened regardless of an avatar being online. It was later discovered that, Second Life servers occasionally get updated.
When these updates occur, the Inter-life server loses synch with the Second Life server. The Inter-life server needs to be rebooted manually when this happens in order to restore synch.
Rebooting miraculously stops the empty strings but this is not a robust way of handling the situation. Hopefully the server could be reprogrammed to notice any changes or updates on the Second Life servers and adjust to the changes accordingly.
Automatic Updates
One has to hit the refresh button constantly to update avatars on line. New code could be written so that the updates happen automatically. A time interval could be set, for example to check updates every minute, 2 minutes and so on.
Log out Button
A log out button unfortunately was omitted in this project. However, an expansion could see this implemented.
Miscellaneous Bits
Pushing mobile hardware to its limits
This application’s functionality is restricted to just viewing avatars and their location on the map as well communicating with them. This makes the application use not very exciting after a while. The Institute of Computer Science and Mathematics at the University of Stirling could look into ways of pushing the Windows Phone platform to its limits by developing a 3D Inter-life app.
Limited Knowledge of Programming in C#
Programming for Windows was interesting even though there was a lack of knowledge in programming in C#. This was overcome by reading loads of materials online and watching loads of tutorials online as well. Even though it was quite exciting delving into all these materials, it was time consuming. Hence, it may be a good idea for the Institute of Computer Science and Mathematics to introduce a module covering C# basics either on the Masters’ Program or Undergraduate level.
References
[1] Technology Enhanced Learning, Projects,
http://www.tel.ac.uk/inter-life/, September 2011.
[2] Second Life, Terms of Service, http://secondlife.com/corporate/tos.php, September 2011
[3] Philip Rosedale, Creator of Second Life, YouTube video, September 2011. http://www.youtube.com/watch?v=C04wwLjJ0os, September 2011.
[4] Using the Linden Script Language, http://people.cc.ku.edu/~grobe/intro-to-LSL/, September 2011.
[5] Welcome To Second Life Wiki, http://wiki.secondlife.com/wiki/Main_Page, September 2011.
[6] Technology Enhanced Learning, Projects, http://www.tel.ac.uk/inter-life/, September 2011.
[7] Web 2.0 Asia, Samsung brings Second Life to mobile, http://web20asia.com/252, September 2011.
[8] .NET Framework Conceptual Overview, MSDN, http://msdn.microsoft.com/en-us/library/zw4w595w.aspx, September 2011.
[9] Christian Nagel, Bill Evjen, Jay Glynn and Karli Watson, Morgan Skinner, Professional C# 4 and .NET 4. Wiley Publishing, Inc., Indianapolis, Indiana, 2010.
[10] .NET Framework Conceptual Overview, MSDN, http://msdn.microsoft.com/en-us/library/zw4w595w.aspx, August 2011.
[11] Webopedia, CLR, http://www.webopedia.com/TERM/C/CLR.html, August 2011.
[12] Webopedia, FCL, http://www.webopedia.com/TERM/F/FCL.html, August 2011.
[13] Christian Nagel, Bill Evjen, Jay Glynn and Karli Watson, Morgan Skinner, Professional C# 4 and .NET 4. Wiley Publishing, Inc., Indianapolis, Indiana, 2010.
[14] Christian Nagel, Bill Evjen, Jay Glynn and Karli Watson, Morgan Skinner, Professional C# 4 and .NET 4. Wiley Publishing, Inc., Indianapolis, Indiana, 2010.
[15] Winrumors, http://www.winrumors.com/idc-windows-phone-7-to-beat-iphone-sales-by-2015-cement-2-position/, September 2011.
[16] Socket Overview for Windows Phone, http://msdn.microsoft.com/en-us/library/hh202874(v=VS.92).aspx, MSDN, August 2011.
[17] Building a Twitter Client for Windows Phone, http://dotnet.dzone.com/articles/building-twitter-client#comment-55599, August 2011.
[18] Twitter, https://dev.twitter.com/apps, September 2011.
Appendix 1
Questionnaire: Second Life on a Mobile Msc Project
Please answer the following questions about the application developed in this project.
The grading ranges from poor, good, very good and excellent in questions 1-2. Check one.
-
How would you rate the general design of the application?
-
Poor
-
Good
-
Very Good
-
Excellent
-
How would you rate the user friendliness of the software?
-
Poor
-
Good
-
Very Good
-
Excellent
Answer Yes or No to the following questions (3-10)
-
Were you able to log in successfully?
Yes No
-
Were you prompted to type in your username and password when you hit the ‘Sign In’ button without any details in the ‘Username’ and ‘Password’ fields?
Yes No
-
Go back to phone settings, and disable network connection; for example turn flight mode on. Now launch the application again, and try signing in. Do you get a message that asks you to check network status?
Yes No
-
Do you get a message asking you to type your correct username or password when you try to sign in with wrong data?
Yes No
-
When trying to sign in with the right data, did a message pop up indicating there was an unknown character error from the server?
Yes No
-
If there is no avatar online, do you get a promt when you click the refresh button?
Yes No
-
A. Do you see ‘miniature’ buttons on the map when there are avatar(s) on line?
Yes No
B. Are their locations plotted correctly?
Yes No
C. Is there a list of the avatar(s) below the map?
Yes No
-
Does clicking on the ‘write’ button send you to the messaging authentication page?
Yes No
-
How would you rate the level of difficulty in completing the messaging authentication process? Please tick one of the difficulties below.
-
Easy
-
Normal
-
Hard
-
Very Hard
-
Please write additional comments below: