Jun 18

On 16th June 2008 the University of Bedfordshire organised a Partnership Showcase. This allowed 3rd year students to present their final year project work to the businesses invited. The university also organised a 2 hour long seminar where the head of department (Prof Carsten Maple) and lectureres (Geraint Williams, Dr Antony Brown and Dr Nik Bessis) did presentations alongside with me, so it was a great honour to be there.

Showcase Seminar Programme

(clicking on the image will open a PDF file with the evening’s schedule)

 

Let me discuss my presentation hereby. As the article’s title shows I was doing a presentation on Open Source. I had 4 sections in my presentation which are:

 

  • What do we mean by Open Source?
  • What are the benefits and issues assiciated with Open Source?
  • What’s available and where has it been successful?
  • Example project built with Open Source tools

First you have to understand what is the difference between Freeware and Open Source. Many people tend to confuse these two terms however there is a very important difference:in freeware applications you are not able to see the source code. While both freeware and open source are free the significant difference is important as it has an impact on the customisability.

So how does one can really benefit from using open source? As mentioned before the source code is available. This enables businesses to tune and improve their code and it’s also possible to port the code to new hardware, to adapt it to changing conditions (e.g. just think about the business processes. How frequently they change? What if the current software is unable to perform under the new processes? A new software needs to be purchased whereas with open source it would have been a little tweaking of the code).

There is noone with the power to restrict how the software is being used. We all heard the stories where a software vendor decided to stop supporting an application or simply abandoned the project. With open source, it won’t happen. Also software vendors are not able to force businesses into upgrading to their latest software version.

The final benefit is that open source is reliable. A bug in the system is corrected literally within hours and you don’t need to wait for an update, patch or fix for days or weeks.

 

If there are benefits there must be issues as well, and yes there are some. As open source software is usually written by highly computer literate people they put functionality above everything else, they desire to create a perfectly well functioning application but they forget about the look and feel of the application. Inadequate design indeed has an impact on usage.

Open source applications usually lack proper documentation. What they have is a general guide rather then a manual therefore unless you are an advanced computer user you might have difficulities even installing that specific product.

Finally summing up all these issues we can say that open source applications - sadly - are made by programmers to programmers, who think that if something is straightforward to them, it is straightforward to everybody else.

 

The top 10 open source applications and tools are as follow:

 

  1. Linux
  2. Mozilla Firefox (which according to the latest browser statistics is used by 39.1% of all internet users)
  3. Apache
  4. MySQL (which has more then 11 million installations)
  5. OpenOffice.org
  6. The Gimp
  7. PHP
  8. OpenSSH
  9. BitTorrent (which accounts~35% of all internet traffic)
  10. Audacity

Finally a success story. Following the arrest of a russian teacher back in 2007 who was claimed to use unlicenced Microsoft products at the school where he was teaching the Russian government made an initative to change from Microsoft prodcuts to Open Source products. An investigation revealed the fact that ~70% of software in schools in Russia is unlicensed. The Russian Government is expecting to reduce sofware piracy, boost the local IT industry and avoid IT security risks.

 

Feel free to download my presentation.

Jun 13

I have had some busy months, lots of work for the uni, assignments, exams…you know what I’m talking about. I will have my results within a month.

I have finally decided what to create for my final year project. I will develop an instant messenger application using C#, WPF, WCF and XAML. Initially it will allow you to send text messages over the network and some basic file sharing/sending. If there is some time left, I will implement video conferencing/chatting as well. My choosen supervisor is Dr Paul Sant who is a senior lecturer at the UoB.  I will post updates on the progress of this project.

Next Monday I’m doing a presentation for the ABC Centre’s showcase. The title of the presentation is “Using open source software to create business solutions“. I will give further info on this presentation as well - and will surely make the slides available for download.

Apr 16

I recently found a case study written by Mark Hooper (Project Manager - University of Bedfordshire - Academic Into Business Computing Centre). It’s about my last finished project (Cardguy) and I think Mark really sums up what I have achieved with the project. At the end of the day the ABC prooved to be useful as we had a satisfied client and I received a lot of experience.

Apr 07

Not a long time ago we had to do a presentation on a topic selected by ourselves for the module “Software Engineering”, this was assignment one for the previously mentioned module. I choose the topic Project Management and did a research on Managing Geographically Distributed Projects.

Before doing the research I never really thought of how projects are run these days, how many problems and barriers project managers have to face. After reading a couple of academic papers I started to enjoy this topic more and I became more and more curious. How project leaders manage time differences? What about cultural differences? How the client and the developing company establish trust? How they communicate?

As you might know already, managing IT projects have radically changed in the last couple of years. Years ago, one project was usually run by the same company and usually within one building. These days the projects are distributed, work is outsourced and both the client and the company could be offshore.

Finally I choose the academic paper by: Talha Javed, National University of Computer and Emerging Sciences, Pakistan - Manzil-E-Maqsood, National University of Computer and Emerging Sciences, Pakistan and Quaiser S. Durrani, National University of Computer and Emerging Sciences, Pakistan titled “Managing Geographically Distributed Clients Thgroughout the Project Life Cycle”. (Š2006 by the Project Management Institute - Vol. 37, No. 5, 76-87, ISSN 8756-9728/03)

The authors of the paper use the 12 issues on which projects usually fail and identify 6 of them which are crucial when speaking about geographically distributed projects. These 6 points of possible failure are:

  • Common understanding of project domain and requirements
  • Managing changes requested by client
  • Managing delays from the client side
  • Understanding and meeting the client’s definition
  • Sufficient communication and involvment
  • Successfully negotiating the contracts

Common understanding of project domain and requirements

I think I’m not going to say something new, it is vital that the project is defined clearly from the start, unclear objectives and requirements can contribute up to 18% toward the failure of a project. Also bare in mind that the overall cost of the project may go up as (more) time is spent on defining the project but results in an end-product that meets the client needs and on the end of the day, you will have a happy and satisfied client.

Managing changes requested by client

This second point is as obvious as the first one: changing requirements can contribute toward the failure of a project. Controlling and managing the changes can consume your resources. The common experience with projects is if the clients review the progress of the projects they require additions / modifications, hence expanding the scope of the projects. (This is called the “requirements creep”.)

Managing delays from the client side

Ever heard of a project finishing well after the deadline? Good. Delays can’t be only caused from the developer side but also from the client side. If the client is not keeping the schedule developers think that the client is non-serious and/or disorganised. The delays from the clients can also lead to schedule pressure at the development end which leads to excessive schedule pressure and that reduces the productivity.

Managing Time Differences

The working hours often have a small (or no) overlap, thereby the number of ways for communicating is reduced to e-mail and voice mail (or video conferencing). As a result communication between the client and the development team reduces. It is vital that the communication structures are established in the early stages. Also, an extra care as to be taken as misinterpretation could happen between the developers-analysts-client(s).

Trust and Cultural/Language Differences

In the early stages of the projec the possibility of winning business depends on the relationship established during the marketing cycle. A good way to gain trust (and enhance the communication level) is to use an onshore coordinator. It allows the offshore organisation to meet the client’s needs better and also helps to establish a strong relationship.

Due to cultural and language differences it is much more difficult to communicate one’s meaning clearly and precisely across geographical borders.

IT managers also have to explore the culture of the given country they work with. Let me give you an example. Assume you work with a development team located in Spain and you would like to call them up to discuss an important thing at 1400. I think a lot of people know that Spanish people usually have their “siesta” from 1200/1300 to 1500/1600. In my opinion these little differences make managing (geographically) distributed projects a really interesting topic.

Feel free to download my presentation: Managing Geographically Distributed Projects

Jan 18

A new year means a start of a new semester, hence new stuff to learn. My modules for the upcoming semester are:

Jan 17

Please feel free to download my work for Concepts of AI assignment.

Concepts of AI - Wumpu's World (132)

How to play the game?

 First of all type in ‘start.’, this is what launches the game.

If you are ever lost during the gameplay, you can type in help or hint, which gives you all the commands.

 Basically all you have to do is to pick up the bow and arrow and proceed to “Issum Forest”. You are able to enter the forest with the knife or with the swords as well but you can’t fight the wumpu. It will fly away. To kill it, you have to use the bow and the arrow. There are two ways of completing the game. One is that you either kill the wumpu or you take the girl.

There is one secret area on the map. There is a temple in Vint Plains. That temple is not shown your map. There is a cave in Vint Plains and if you issue the correct command (look at or look hole) you will see that there is a temple called Hephaestus Temple. Then you are able to issue the command go to Hephaestus Temple. In there you will find a secret word which can be ‘said’ by the player. (Please be advised that using the “magic” word might not be the best solution :) ).

Be advised that you can pick up water and “eat” it. I did not have time to implement the “drink” command. There are many options for the player to pick up things, look at things. Whenever the player enters a particular area on the map, the items are listed.

To run this application you need to download SWI prolog.

Oct 08

We received our first task to be submitted till the 11th January 2008, please read it below:

Task: to develop a computer game called Wumpu’s world using Prolog. An hunter walks into the Wumpu’s world where there are a monster called Wumpu who can eat the hunter, pits that can trapped the hunter, and a heap of gold. By carefully playing this game, the hunter should avoid to be eaten by the Wumpu, avoid to fall into pits, try to pick up gold and try to explore the entire Wumpu’s world.

Now putting together the “world” is really straightforward:

1
2
3
4
5
6
7
8
9
10
11
location(hunter, r11). %start position, first row
location(breeze, r12).
location(hole, r13).
% second row
location(stench, r21).
location(glitter, r22).
location(breeze, r23).
% third row
location(wumpu, r31).
location(gold, r32).
location(hole, r33).

If we have all the fields, we can now establish the map:

1
2
nextto(r11, r12).
nextto(r11, r21).

where r11 is the start position and we have a 3×3 square so the fieldnames are r[row number][coloumn number].

Now we need to set the start position of the hunter which is:

1
here(r11).

I would like to mention one important thing. As we will move within our map we need to constantly update there here() function. As we declare here to have the value r11 it is a static declaration, therefore it cannot be updated. For example examine the following set of rules for the movement:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
% set up the movement between the locations
connect(X, Y) :- nextto(X, Y).
connect(X, Y) :- nextto(Y, X).
 
goto(Place) :-
can_go(Place),
move(Place),
look.
 
can_go(Place) :-
here(X),
connect(X, Place).
can_go(Place) :-
write('You can''t get there from here'),
nl,
fail.
 
move(Place) :-
retract(here(X)),
asserta(here(Place)).

Now if you’d try and run the following giving it the command goto(r12). would result in an error (No permission to modify static_procedure [procedure name]).

To avoid this the here procedure should be declared dynamic:

1
2
:- dynamic here/1.
here(r11).

Problem solved.

I will continue to post my updates on this assignment.

Sep 29

On the 29th of October I will attend a free seminar held by the Academic into Business Computing section of the Computing Department.

Topics will include:

  • How secure are you?
  • Turning browsers into customers online
  • Get Results and Hits further up Search Engine Listings
  • and much more…

Detailed information, with full seminar schedule is available.

Sep 29

Now I have some better ideas on my modules.

Object Oriented Program Development is a module on C# which is really cool. I already have some understanding about C# but this knowledge can now be expanded :) Also we are going to study about .NET 2.0 which is relevant enough nowadays.

Concepts of AI will kick some arse. It’s not beating around the bush. It’s AI, it’s hard. We will study about Prolog as well which came as a surprise to me but I’m quite satisfied with that too.

Both of the above mentioned modules will be held by Dr Dayou Li, Vitaly Schetinin, Des Stephens and Keith Lam (demonstrator).

DBMS Development will be about nothing else then Oracle. Held by Penny Onley and Mike Niblett.

Information Systems Engineering is rather a theoretical subject on understanding system developments and software development methodologies. Also this module will give practical understanding of the range of modern Information Systems approaches to software development. Held by Penny Onley again and Adrian Benfell.

Sep 24

My modules for Year 2 / Semester 1 are as follow: