Category Archives: Experiment

Windows Azure – Virtual server – Enable TCP connection (open the door to Internet traffic)

I finally created an account for Windows Azure, it is quite easy to do so and the cost are very affordable (if you have a MSDN premium subscription as each Microsoft employee does :)).
I never really had the opportunity learning in-depth IIS and ASP.net so now that I have this server available, I am starting!

The first step is obviously to have IIS role configured on the server (I am using a Windows Server 2012 OS). This is really straight forward to do:

  1. Open the server manager
  2. Click on Add roles and features
  3. Click ‘next’ until you reach the ‘Select server roles’ tab
  4. Check the Web Server (IIS) entry
  5. Click ‘next’ until installation is done

Once the installation is completed, you should be able to validate that ISS is running by opening the http://localhost page on a web browser. At this point you should see the ISS8 starting page.

The next step is to try to reach this webpage from the internet, this would generally require a static ip and a new DNS entry (or a dynamic ip and a dynamic dns server) BUT the people at Azure made it super simple to do. Just add a TCP endpoint to your virtual server, to do so follow these steps:

  1. Open the management portal for your Virtual machine (this can be accessed via the Virtual machines list in the portal)
  2. Click on the endpoints menu
  3. Click on Add endpoint
  4. Give any name for your endpoint, select the TCP protocol and configure the public and private port to be 80.

Once Windows Azure has completed to provision the new endpoint you will be able to access your IIS page from the outside world. Enter the DNS of your virtual machine (*.cloudapp.net) from any web browser and you should see thee IIS8 starting page.

6 years of blogging – time for a change!

Six years ago, I was still a student at the University of Geneva, I decided to host myself a blog in order to be able to share my ideas and views with other people. It was also a convenient way for me to be able to remember some random ideas I would have read or learnt.  

I quickly realized that nobody was reading my blog :)! So I changed the switched the main language to English instead of French, this helped quite a bit to increase the number of visitors. I remember that I was really proud when around 30 people per day would visit my blog.
With time my focus and the focus of this blog sharpened on web design and web development (mostly Macromedia/Adobe Flash). Being actively focused drive this blog high in page rank and I had a decent amount of daily visitors (for a personal blog, that said).

Since my professional focus shifted from web design and development to software engineering and testing, the focus on this blog has been lost. Frankly, I am writing about too much random stuff to be able to capture someone attention.

In computer science there is a known paradigm, called divide and conquer, that state that to fix a complex problem a solution is to divide it in simpler problems. Starting today I will apply this paradigm to my online presence.

I am a software tester by profession and I am passionate about software testing knowledge and theories. I have opened a blog dedicated to software testing: testingpatterns.info where I will be blogging about software testing whenever I have something to write. Join me there if you are interested by software testing :).

I work at Microsoft, on Lync server and I own the testing for Response Group Service and Call Park Service. I have opened a while ago a blog on MSDN dedicated to this topic. Join me there if you are interested by Lync server response group service and call park service :).

What about metah.ch / ahmetgyger.com blog? Well I am going to use this blog only for more personal related blogging, giving my point of view on technologies and sharing some information about my life in the US.

Thanks for reading!
A.

Spec Explorer – Model Based Testing for all

Some interesting Spec Explorer videos from Channel9. It is all you need to get started with Model Based Testing.
The idea behind spec explorer is to make a model of the requirements of your products and let Spec Explorer generate millions of interesting test cases. You just need to find enough CPU power to run all the generated test cases :-)!

Continue reading

Nearly achieved my ‘new eve 2007 objective': Ranking Ahmet keyword on top of Search engines

In that time I was a big fan of SEO and thought that it would be cool to place my first name (Ahmet) in top positions of search engines. When I started I couldn’t even find a reference to my website while searching on Google.com (European server) and there are about 44,700,000 results when searching for Ahmet on Google. I’m now positioned in average at the 15 position, which isn’t bad at all :)

Why do I talk about this? Just because I think it will be harder to go above my actual positioning and I don’t have has much fun in old and traditionnal SEO.
So I am officially ending my (useless) experience about positing the Ahmet Keyword :)

Ahmet [Yes I’ll keep on singing my post :) ]

A Chat with FMS 3 coded in ActionScript 3.0

Some days ago I started using FMS (Flash Media Server). Obviously I wanted to write my project in AS3 and realized that they weren’t a lot of documentation on the topic, that why I’ll post here every part of code I made working.

My last project was about creating a chat. I downloaded the demo from FMS2 and tried to update it to AS3, not a big deal, but I’m happy that it works now.

FMS Chat Demo

I didn’t design it in OOP (object oriented programming) as it is only a simple demo, but I think it can be a good start for anybody starting using FMS with AS3.

I wrote 2 files, one .fla for the client and one .asc for the server.

The .asc file

//Fired when the application is loaded on FMS
application.onAppStart = function()
{
	trace(" *** FMS Application Started *** ");
	/**/
	// Get the server shared object 'users_so'
	application.users_so = SharedObject.get("users_so", false);

	// Initialize the history of the text share
	application.history = "Welcome to this chat!n";

	// Initialize the unique user ID
	application.nextId = 0;

}

//Fired when a client connect to the server
application.onConnect = function(newClient, name)
{
	// Make this new client's name the user's name
	newClient.name = name;

	// Create a unique ID for this user while incrementing the
	// application.nextID.
	newClient.id = "u" + application.nextId++;

	// Update the 'users_so' shared object with the user's name
	application.users_so.setProperty(newClient.name, name);

	// Accept the client's connection
 	application.acceptConnection(newClient);

	// Call the client function 'setHistory,' and pass 
	// the initial history
 	newClient.call("setHistory", null, application.history);

	// The client will call this function to get the server
	// to accept the message, add the user's name to it, and
	// send it back out to all connected clients.
	newClient.msgFromClient = function(msg) {
		msg = this.name + ": " + msg + "n";
		for(var i=0; i < application.nextId; i++)
		{
			application.clients[i].call("msgFromSrvr",null, msg);
		}
		application.history += msg;
	}
}

//Fired when a clien disconnect from the server
application.onDisconnect = function(client)
{
	trace("disconnect: " + client.name);
	application.users_so.setProperty(client.name, null);
	application.nextId--;
}

Here we got 3 steps,

  1. application.onAppStart: is called when the application is loaded in FMS, it basically inform us that the application is ready to use.
  2. application.onConnect: is called when a client connect to this application in FMS, here is all the server logic to interact with the client(s).
  3. application.onDisconnect: is called when a client disconnect from the application or when the application is unloaded from FMS

The .fla is only the for UI (user Interface) and for the interaction with the server. If you have trouble understanding what is happening look at this code where I explain how to call functions from server side to client and from client to server.

I know it is not the state of the art in terms of chat but again, this is just a small demo on which complex interaction could be built.

you need to download FMS 3 free developer edition to start having fun with FMS.

Download the source of the FMS Chat

Ahmet