Red Villages 2010 – The summer begins

Who said that the world financial crisis would destroy Agia Napa this year?  It certainly didn’t seem so this weekend and it’s still only May!  I went over to Napa and Protaras this Sunday night and I found the crowd insane =)  Then again, why am I telling you this? You were probably there!

Where gaming stands socially

Anything you read below in this article is an opinion and as an opinion that it is you are free to disagree, criticize me and flame me behind my back. There is an overall negative spirit when it comes to the social acceptance of gaming.  I will continue by saying why I believe that this is in some cases wrong, by defining some gaming’s pros and cons.  Please note that here I will only speak for multiplayer gaming.  Whenever I say gaming, or games, I am referring to the act where a group of individuals are playing together an electronic game.

First of all, electronic gaming originates from video games and it is therefore subconsciously corelated to it.  Whenever people who had no experience of playing modern multiplayer gaming come in contact with people who do, the entire gaming act reminds them of old-generation video games.  Therefore, as those video games could be considered fun, but generally pointless, so do people consider modern games in most cases.  It is considered that playing games turns people stupid as they spend time doing something mindless instead of sharpening their brains with more constructive things.  However, studies (read article in footnote 1) have proven that playing electronic games regularly increases sugar consumption by the brain and may increase its power by up to 7 times.

Secondly, it is believed that gaming is anti-social, where a youngster would be much better off doing other stuff with friends.  This might be the case for MOST of the games.  Of course spending countless of hours at home finishing one single player game after another is really anti-social and can negatively influence a person’s ability to behave correctly in social groups, especially when that person is a teenager that hasn’t yet fully developed a personality.  However since I’m differenciating between single-player and multiplayer games and I only stand in favour of the latter, I will completely disagree with that.  Gaming is very social when done from home but especially when done with friends in the so-fast spawning gaming centers that you might have noticed in the last few years.  This is because the ultimate goal of gaming, which is winning, can only be achieved if you are able to communicate with your team, understand each of your teammates’ strengths and weaknesses in the game, and be able to applause and forgive your teammates.  During the action-packed, adrenaline-full, emotional state of gaming where everyone is in, your teammates’ actions may cause your team to win or lose.  The communicational skills therefore earned from this, can, believe it or not, help later in life, in university and work team projects.

Third, and this is somehow of a joke to me, all the media bringing in random psychologists who tend to favour the opinion that games make people violent.  The truth of the matter is that a lot of social groups claim that the video game industry has become an easy target for the media to blame modern world problems on.  There are very few studies to back-up the theory that games make people violent, while studies that prove the opposite actually exist in numbers (article in footnote 2).  A US Secret Service study found that only 12% of those involved in school shootings were attracted to violent video games, while 24% read violent books and 27% were attracted to violent films (article in footnote 3).  In fact, if you read article in footnote 1 again, you will see that the study it refers to not only claims that electronic games make people smarter, but that they also help fight post-traumatic stress.  Shouldn’t that make people even less aggressive?  Nothing like a good game to take that social stress off.

Of course, not everything is milk and honey for gaming.  I can sit here and compare multiplayer electronic gaming to traditional games that made it into the category “sports”, like pool, cricket, volley, and if I dare even football.  Electronic gaming is steadily moving into that category, because the games themselves have enough of what they need to make it through.  Gaming needs talent but not as much as football.  Football needs brains but not as much as gaming.  Chess needs more brain that gaming but not the talent, the reflexes and communication skills of football and gaming.  So you see electronic gaming is quite equal to traditional gaming in general terms, only that for good or worse it makes use of electronic equipment.  However, because of its complexity, the brilliant graphics involved in most games and generally the intrinsic motivation playing games offers, electronic games tend to be addictive.  On top of that, unlike most traditional sports they do not tire the player in terms of his physical condition, which enables people to play for prolonged periods of time.  Even more, this allows people to become skilful enough and this way push others to spend similar amount of time in order to match them.  In short, electronic gaming tends to be abused and we all know that anything done in excess is bad.

To summarize everything, regardless of all of the benefits of gaming, it is an intrinsically motivating activity for which people get addicted and may cause problems at school/work/relationships.  Thus gaming is attacked by most individuals because they do not understand it, or the potential behind it.  There is a subconscious negativity against gaming because most people have not experienced enough modern day multiplayer gaming to understand it, and therefore relate it to pointless, mindless gaming as it was 20 years ago, which causes the negative effects said above.  The media use this negativity for making people happy during air-time by pointing the gun at gaming and blaming it for modern-day social problems that are mostly caused by other factors for example teams and political parities making people fanatics, coupled with the police being incompetent to handle situations.

  1. http://www.naturalnews.com/028104_computer_games_PTSD.html
  2. http://en.wikipedia.org/wiki/Video_game_controversy
  3. http://www.ed.gov/admins/lead/safety/preventingattacksreport.pdf

Dota tourney success

The DotA tourney this past Sunday we organized on behalf of Gamers-Cy was a great success.  This was more of a test tournament to see how enthusiastic the DotA scene is regarding competitions, but even with only 2 weeks allowed for registration and low cash prizes we still had 7 teams fighting it out.  Congratulations to FAIL, CPNJ and SR for 1st, 2nd and 3rd places respectively.  If you wish to see the matches you can download the replays.  Thanks to everyone who participated and for all your nice words regarding the quality of the tourney.

Data Parallel Acceleration of Decision Support Queries Using Cell/BE and GPUs

Firstly, a small introduction on the processing units.  We all know what a GPU (Graphics Processing Unit) is.  It is the processing unit with purpose to render 3D graphics, most commonly found on video cards.  What might be a new definition is the Cell/BE processing unit.  Cell/BE is a processor developed by STI (Sony, Toshiba, IBM) and it is the processor which is used inside the Playstation 3 console.

Back in the good old days when people designed CPUs two CPUs with identical architecture could run at different speeds by changing their clock frequency.  As computing needs increased we kept increasing the CPU frequency, until we reached a dead end, where increasing the speed further resulted in such high temperatures and such low increase in throughput that we had to find other ways, and that gave birth to multi-cores.

Homogeneous multi-core processors such as Intel or AMD Quad Cores, Core Duo, I3/I5, etc provide a small number of identical cores that share cache and are generally easy to program using POSIX Threads or OpenMP directives.  GPUs on the other hand include a large number of very basic cores.  GPUs are highly multithreading, to help fast rendering of 3D graphics.  However, recently people started exploiting this feature of GPUs to have them process applications that have nothing to do with graphics.  For example, NVIDIA GPUs can be easily programmed with CUDA.  Lastly, the wonderful Cell/BE, a heterogeneous multi-core processing unit, with one general purpose PowerPC Processor Element (PPE) and eight special purpose Synergistic Processing Elements (SPEs).  Cell has some real potential, which is a big reason on why people say that the PS3 is by far more technologically advanced than the XBOX, but it is also tough to program, which is the reason why much fewer games were released for the PS3, especially in the early days of its deployment.  In fact, the world’s second most powerful supercomputer at this time of writing, the IBM RoadRunner, has a peak performance of 1.7 petaflops and uses Cell processors.

Onwards to experiments.  To make things easier for programmers, a wonderful company called RapidMind (now acquired by Intel) developed a software product that allowed developers to target any processing unit they like.  Software written in a parallel programming fashion could be compiled with RapidMind for any target processing unit to take full advantage of it.

Now consider a database management system where we wish to perform a simple nested loop on our data to join a foreign key with our table primary key to retrieve attributes.  That’s an O(n^2) algorithm right there, which for large tables would require not very pleasing time, if you are looking at an interactive application such as a web-site.  However, with this algorithm, we can run all the executions of the inner loop which is O(n) in parallel, saving us a lot of time.  On top of that,  if we hash our keys then the inner loop becomes an O(log n).

Of course, there are details to consider.  Cell/BE appears to fail to provide a significant increase in speed but that’s until you realise that due to its unique architecture.  The Cell/BE processors requires tuning.  In fact there is an entire chapter in the RapidMind documentation on Cell/BE.  Follow that and you can see how the processor can perform some real wonders.  Further more if you realise that GPUs were designed for gaming so they  work on packages of 4 floats (3 for coordinates and one for depth relevant to the camera) then you’ll find that you can gain significant speed up if you use your data as such.

To summarize things up, general-purpose multi-core CPUs have small scalability, but are simple to program and give overall best performance.  For specialized tasks however which use intense data and processing algorithms and can run in parallel, processing units with more cores would be much more efficient.  For example web servers that should handle a lot of client requests in parallel could be much more efficient to run on GPUs (experiment needed).

Size complexity of two-way finite automata

Finite automata have been so far investigated much by researchers but only when it comes to computability.  Complexity questions have only been addressed sporadically in the past.  It has been found that for a given class of problems solvable by a Turing Machine that can not write (i.e. a finite automaton) a non-deterministic finite automaton would require O(h) number of states, whereas a deterministic finite automaton would require O(2^(2h^2)), where h is the size of the input.  What this means is that a non-deterministic automaton grows in space linearly, while a deterministic one grows exponentially, in such way that for h=16 it would require space equivalent to all the matter in the universe.  Non-determinism clearly wins.

However, can it be proved that there is no way for deterministic finite automata to solve such a general problem in less space?  The answer is maybe, because neither that it can nor that it can’t has been proven yet.  In fact, the generalisation of the problem would be the famous P = NP problem.  Finding an algorithm that can deterministically solve a general problem even in polynomial time instead of exponential can change our everyday lives.  It will make industry problems easily solvable by computers, it will render cryptography useless, etc.  Afterall, it is no joke that the Clay Mathematics Institute of Cambridge, Massachusetts (CMI) is offering one million dollars to whoever solves P = NP.

So now that we have given a short definition of the problem and the motivation behind, let’s talk a little bit in more depth.   The question here is:

“Can 2DFAs always stay at most polynomially larger than 2NFAs?”

This is one of the most interesting and hard questions when it comes to researching size complexity of two-way finite automata.  In 1978, Sakoda and Sisper proposed a theory that starts with the class 2D of all families of regular problems that can be solved by 2DFAs of polynomially growing size, and a similar class 2N defined for 2NFAs.

In order to elaborate some more on this, consider a problem such as:  A Turing Machine gets input where each cells receives a two-column graph with the same constant number of nodes per column.  Considering the multi-column graph produced by merging the graphs of adjacent cells, the TM has to compute whether there exists a path from a node in the leftmost column to a node in the rightmost column.  It is easy to prove that this problem can be easily solved by a 2NFA in polynomial time, and therefore lies in the class 2N as defined earlier.  The question is, can it be also proved for 2DFAs such that 2N = 2D?  Sakoda and Sisper went on to introduce the so called homomorphic reductions between problem families, proved that 2D is closed under them and identified a particular family in 2N that is complete with respect to them, the so called “two-way liveness”.  However, as complex as this may make the question above seem, it is still tangible, and solving it brings us one step closer to solving the P = NP problem.

Dota competition this Sunday

Our first DotA competition is taking place this Sunday 7th of March at KINX Gaming Lounge in Nicosia.  It will be 5v5 -cm mode and all the money received from entrance fees will be awarded as prizes.  If anyone reading this is interested you can read more information and the rules at Gamers-Cy web-site.  Registration finishes on Thursday.

A step into usability

Usability is a very important research topic in the field of Computer Science. A functional system is not worth much unless it is also usable. According to Shackel (1991):

“The usability of a system is the capability in human functional terms to be used easily and effectively by the specified range of users, given specified training and user support, to fulfil the specified range of tasks, within the specified range of scenarios.”

Usability engineering (also known as Human Computer Interaction) is “a discipline concerned with the design, evaluation, and implementation of interactive computing systems for human use and the study of major phenomena surrounding them.”

So how exactly can we define and measure usability? The term “usability” replaced the term “user-friendly” which is a very vague term used in the past. We can think of usability in two ways:

  • Usability is a relative property of the system since it depends on the perception capabilities of its users. Evaluation of usability therefore can be subjective
  • Usability is a set of objective measures of interaction.

Shackel went on and broke down usability into four categories:

  • Effectiveness: performance in accomplishment of tasks
  • Learnability: degree of learning to accomplish tasks
  • Flexibility: adaption to variation in tasks
  • Attitude: user satisfaction with the system

Similarly, two years later, Nielsen (1993) broke down usability into the following categories:

  • Learnability: How easy it is to learn to use the system.
  • Efficiency: The system allows for high productivity once the user learns how to use it.
  • Memorability: The system should be easy to remember so that returning users will not have to go through the learning phase again.
  • Errors: The system should have a low error rate when it comes to users perceiving how they should accomplish a task. The system should also allow for recovery from these errors.
  • Satisfaction: The system should be pleasant to use.

In order to measure usability we need to establish some usability evaluation methods (UEMs). According to Zhang (2001) there are three broad types of UEMs:

  • Testing
  • Inspection
  • Inquiry

Each of these types consists of different methods, but each type has its own characteristics for all its methods. Below is a brief explanation of these types:

  • Usability testing is the method of selecting a few representative users to work on typical tasks and therefore help the evaluators get an idea of how usable the system will be in practice. Such methods include the coaching method, co-discovery learning, performance measurement, question-asking protocol, remote testing and the thinking aloud protocol.
  • Usability inspection requires usability specialists and software developers to examine and judge whether the usability features of a system follow professional and established usability principles. Such methods include heuristic evaluation, cognitive walkthrough, feature inspection, pluralistic walkthrough and standards inspection.
  • Lastly, usability inquiry requires usability evaluators to obtain information about users likes, dislikes, needs and understanding of the system by communicating with them. Such methods include field observation, interviews, focus groups, surveys and logging actual use.

Usability needs to be measured in order for the software developers to be able to define the need for improvement and its type. Current practices for measuring usability can be broken down into measures of effectiveness, efficiency and satisfaction.

Examples of measures of effectiveness:

  • Binary task completion (number of tasks users succeeded, failed within a certain time, or gave up)
  • Accuracy measures (quantify the number of errors users make while in the process of completing a task)
  • Recall measures (how much information users can recall after the use of an interface)

Examples of measures of efficiency:

  • Time (how long the users need to complete tasks)
  • Input rate (e.g. words per minute)
  • Mental effort (mental resources spent, e.g. heart rate variability)
  • Usage patterns (number of times a certain action has been performed, how much information users access, deviation from optimal solution, etc)

Examples of measures of satisfaction:

  • Preference measures (capture which interfaces users prefer using)
  • Specific attitudes towards the interfaces (liking, fun, annoyance, etc)
  • Perception of outcomes (users’ assessment of their performance, users’ perception of learning, users’ confidence in the solution to tasks)

Google vs Facebook

It`s only been a couple of days since people criticized the new layout of Facebook and said that it`s beginning to be more and more like a search engine. And it`s true actually. Facebook is tagging the entire world, allowing you to search for anyone or anything (through profiles, fan pages and groups). Facebook formulated a web of profiles and how they are interconnected and now that this web is so big they are focusing on their search making Facebook a search engine for people, companies, and groups.

On the other hand, Google has always been mainly a search engine (a good one too), that expanded its services to a lot of other fields, with one of the most important being e-mail, via Gmail. But of course, as social networking appeared to be not enough for Facebook, search was not enough for Google, so they released Google Buzz which is a social networking module for Gmail that allows people to share their thoughts, links, etc. Similar to Facebook, it allows for commenting by your followers, privacy settings, etc.

How these two web giants managed to step into each other`s field beats me, but it seems that this is only the beginning. Facebook is on a steady course to its “tag the world” goal, and is now challenged by an initial release of Buzz. I`m sure we can expect Google Buzz to be given lots of new functionality and features soon. Of course, Buzz still far behind in terms of functionality, but who knows…time will tell.

Sponsoring our ESWC qualifier

Well, for the past 2 weeks I`ve been looking for potential sponsors for our upcoming ESWC qualifier. This year is something that we do not want to miss. ESWC has a fine pool of games: Counter Strike, Fifa 10, Trackmania Nations, Street Fighter 4, Need for speed: Shift and possibly Quake Live and DotA. Their grand final will take place in Disney Land / Paris (yes players will be accommodated in hotels inside Disney Land :) ). However we estimate the whole event to cost us around 20,000 euro, which is an amount quite challenging to get from potential sponsors, the way gaming is look down in Cyprus. If anyone reading this has any idea, or is a connected with an organization that might be willing to sponsor then go ahead and let me know. One thing is for sure, from now on we will be pushing harder to project the image of our community, so next time, when we talk about gaming and Gamers-Cy, people will know what`s happening!

Free Hugs in Cyprus

“In this age of social disconnectivity and lack of human contact, the effects of the Free Hugs campaign became phenomenal.”  - Free Hugs Campaign

In an effort to show a little bit of love to people regardless of race, colour, age, sex, social class or any other discrimination class, on Saturday 26th of December we will be at Lidras in Nicosia simply…hugging people!

You can get more details about the event and see who is coming in our Facebook event page.