Tuesday, November 1, 2011

Launched!



Finally, the gaming site is online and free for all!

It comes with 3 board and puzzle titles for a start and a forth one would be added soon with more to follow.

Current games include the award winning (IESL - Cruncher 2011) Elephant Trap.

Enjoy playing with freinds, chat while playing, get yourself ranked...

Give it a try!   (choose 'Play Now' from Araaya site)

Sunday, September 18, 2011

Back to Blogging with a vengeance ?

Well, not quite. I have an unfinished business to settle down first, so please bare with us. Apologies for failing to post anything for some time now...

However, we have not wasted time doing entirely nothing in last month or so. For one, we are doing not too badly at the Google AI competition .

Current ranking page is in here.

Secondly, our long promised online free gaming site is just around the corner! You can already have a glimpse at the Araaya web site. Official launch will happen really soon too!

Thirdly, we have done some porting of our games into Android platform lately and doing same for iPhone. For this we got 2 phones, an iPhone 4 and a Motorolla Atrix. We have been playing with these 2 great phones lately which are easily the best in their categories at present, that I thought it would be useful for few to write a review and a comparison on them.

My last post about a similar subject (about Toyota Prius) was welcomed by many and judging by comments have helped few people... so probably I should do that more. After all, how often do we bloggers get a chance to actually help someone, (except for helping readers to kill their time) :-)

So, that (on iphone and Android) would probably be our next post. Meanwhile, some of interesting games from the AI competition can be found in this link. I'm regularly update that page with game links. Stay tuned....

Tuesday, July 5, 2011

That time has come again! Worlds best programming contest is back!


Google AI challenge is back! (well, at least about to. Beta server is there and folks are already slugging it out!) Can feel the competition heat is already building up!

Last year competition (Planet Wars) was a tremendous success for this competition to catapult it into arguably the worlds best programming contest. My experience, misfortune and the way I compensated for it, is found in here.

This year competition is about building up and growing a colony of Ants. Ants have two major functions, spawning and fighting (killing enemy ants). In a 2D battlefield we get food randomly but fairly placed and continuously supplied in various locations. Players have to program their bots to compete for those food resources which will help them spawn more ants and then command your ant armies in battle to conquer the whole field! It's a multilayer game, meaning there are several players competing at the same time.

As in the last year, the API is very elegant and simply done. One could master it and deploy a sample bot in a matter of minutes! The game server is arranging a continuous tournament contesting bots all the time and one can see the games being played (like this one here!) and the ranking / leader boards in near real time! Can you imagine the thrill this can generate ? well, you can just find out!

After I entering the last year completion only in last few days and made to curse my fate, this year I have made a head start. You could see our bots fighting with worlds best!

This is lot of fun! Challenging and a dream challenge for a programmer who is up to it.

Why don't you give it a try! nothing to loose!!

Warning : This is very addictive and sometimes even more so than just playing a game. You would loose  weeks of your time hacking away clever ways to beat the other programs. Only consolation is your programming/analytical skills are going to get a definite boost!

See you in battle!

Friday, June 24, 2011

Just formatted our last remaining windows desktop. Welcome Ubuntu!


We all were using Windows about 5 years ago. My office desktop was also Windows, even though I was enjoying OS X in my MacBook. As we began to develop enterprise applications at ITF (IT Front), slowly and one by one desktops began to get converted into Linux. Ubuntu was the winner. By about 2-3 years ago, everything got reformatted. Everything except my desktop machine which was running windows XP!

Something kept me from formatting that machine. Was it some unknown fear/hesitation that we should not totally depart from Windows world, or was it a reasonable judgement that we may need to run certain Windows only applications once in a while, or was it just the inertia working against change... ? I don't know but I kept that machine going, I was working with Ubuntu at office, comfortable with Open Office, very impressed with stability and performance Ubuntu gave us while in development. Above all, we were free from viruses, malware and system crashes. Come to think of it, there really wasn't a very critical windows application that I couldn't do without. In that sense this outcome was always something which was written on the wall. On yesterday night, it happened!

For some urgent task at Araaya, I needed to install Python in my home desktop machine, the Win XP one. Installing python was never an issue in anywhere. In fact, in my office Ubuntu desktop, it was there by default. However, Windows installer didn't work. It just stopped without giving any output when I double click on it. I downloaded a different, newer version of Python and picked the so called 'very good'  windows installer, a MSI. Then tried an older version too but all with same result. No error messages, no clues, just hanging up. I had to go to task manager and manually kill the running process. I was in a hurry to get my task going and it was just a matter of time me realizing that installing Ubuntu and work with Python there is going to be a lot surer and possibly quicker way than further investigating why the installer failing on XP.

A critical point! Should I try to keep both OSs ? no I didn't have enough hard drive space left for that. Also, there was so much junk in the windows installation which has accumulated over time that the mere thought of cleaning it up was a refreshing thought. You all know how Windows get slower and slower as the time goes and so many left overs from past applications have accumulated etc don't you ? Well, I suspect my machine had few viruses as well! Not series ones but when I use my pen drives in other Windows machines with paid proper virus guards (I didn't want to pay for a virus guard and haven't had much success with downloaded free ones after my old McAfee auto update stopped responding, a result of another virus) they always complained about a virus or two.

So in the end that seemingly mighty hard decision which put me off for 2 years just happened in the course of few minutes! I carefully copied my content in Desktop, My Documents etc into another drive and all was ready in just 10 minutes! C drive was ready to give way to Ubuntu 10.10. ! Just put the installation CD in and after a few more minutes I had a brand new, blazing fast, hassle free, easy to use operating system in my old machine! And I had enough time in the night to do some Python and Java code too!

So, there went the last windows machine in our office... I really liked windows XP despite some of it's obvious weaknesses. However, enough was enough! Ubuntu is actually not even my favorite OS, that honor goes to mac OS. We are waiting for our laptop to arrive with Mac OS X - Lion, (on which we will develop iPhone versions of our games) but I will continue to work with Ubuntu too.

There is really nothing special to say or hints to give about Ubuntu installation or usage, just put the CD in and all very simple! no hassle at all! If you want to download and install anything on Ubuntu, Just use the built in Synaptic Package Manager and it will be ridiculously simple, while staying clean, fast and legal all the time!

Having said all that, once our Mac OS one arrives, We will still have to install a parallel Windows 7 or a XP there using Bootcamp. Why ? because for our users! For those who going to use our game site in IE browsers. We need at least one machine where we can get hold of a IE for testing. So Windows will still be staying with us, after all.

Talking about the game server, good news is that it is now in the amazon cloud going through final round of testing! It will be available for all for free and pretty soon too! stay tuned....

Tuesday, May 24, 2011

Games, Algorithms and Code

Thought of publishing a new post with links to some of our earlier posts to help the users who have joined us from syndicate sites we have recently got listed into.



BTW, all algorithms, some code we produce, analysis in solving some gaming puzzles etc are in the coding blog which is iq-games Our starting puzzle Towers of Hanoi was just complete there (with a staggering series of 10 posts!) That series takes one deep into the world of Hanoi Towers with general cases (what we know most is just a one specific case of the puzzle), multiple towers etc After analyzing the puzzle and sharing ideas and explaining of algorithms, finally the source code has also been shared there, have fun! For absolute beginners on towers of Hanoi, this link should be the starting point. Those who already know the puzzle and the code to solve the basic case of it, can start from here to dig deep. More game analysis, algorithms and code for different games/puzzles will appear in this blog, stay tuned....

At this blog we have discussed about the future of Thin Client and Javascript. We placed our bets on web application to over take desktop applications and similarly languages like Javascripts together with technologies like HTML5 and AJAX are poised to become next big things in the programming world. Like to know more ? hop in!

Newest programming Language! Ceylon!! will it overtake Java ? what's the secret reasoning behind naming it as Ceylon ? (of all names for god's sake!) read Here to find more...

Can meditation help improve programming skills ? What's in common with programming meditation and Chess ? You will find few more questions and even fewer answers in here.

Finally, what we are about. The Free for all online gaming site!

Thursday, April 28, 2011

Can Meditation improve programming skills ?


Positive influence of meditation in emotional well being, mental faculties and general mental/physical health is well known and well supported by research too. Therefore, one might think meditation will greatly help software engineers to develop their mental skills which are related to programming skills. However, as far as I know not much research is done on this subject yet and hence we don't have evidence yet to prove this hypothesis.

Looking at it from a different angle, games like Chess which require players to concentrate for long durations and help them become objective and develop their analytical thinking can also help people to improve their mental faculties. This is well acknowledged around the world and in many countries chess is already in the primary school curriculum, sometimes even as a mandatory subject!

Recently Word Chess Federation, FIDE has signed a interesting agreement with the World Meditation Academy. Among other things, FIDE will from now on offer scholarships for chess players to  attend meditation courses. Many other sports are also using mediation as a part of trainings, but this I think is the first time a sports governing body has so openly endorsed meditation as a tool which can help the game. In fact the connection between Chess and Meditation should not be a surprise. More about this piece of news can be found in here.

Now, I have personally seen good chess players also performing well as good software engineers (computer programmers). So, can there be a link between meditation and programming too. Will it be a good try for kids who like to become good computer programmers in future to pay some attention to meditation and chess or at least one of them ?

I personally think there (judging by my own personal experience all 3 fields and judging by what I have seen in others) is a good healthy relationship between these fields in terms of the mental skills needed to excel in those. While meditation can help in Chess and programming, will the reverse of that be true as well ?

If anyone have evidence or know about any research done on these, feel free to share it with us. This is one such place I know of where similar discussions are already happening.

PS : It seems like there are already initiatives to get programmers into meditation. Google for instance is conducting Mindfulness workshops at their campuses.

Mindfulness with Jon Kabat-Zinn
Cognitive Neuroscience of Mindfulness Meditation
How the Essence of Mindfulness Parallels the Nuts and Bolts of Science

Thanks Black_Irish at reddit for providing above links. More on this can be found at the discussions at reddit

Tuesday, April 19, 2011

Ceylon - The New programming language to take on Java !


News of the day (oh well, may be yesterday) is that the newest upcoming programming language to take on Java's enterprise market share could be Ceylon. A big thank to my good friend Damith for putting me on this news.

Yep, you heard it right. (Check the date of this post if you don't believe me. See, it's not April 1st!) The very first thought to spring out screaming is why that particular choice of name ? Well, I think it's a easy guess (and I'm taking a personal risk of being wrong here).

Folks at Sun Microsystems used to drink lot of coffee while developing the new programming language they intended to take on C++, when they were faced with the task of choosing a name for it, they choose the place where their favorite beverage is coming from. Java. So I bet good folks at RedHat are drinking tea and buckets of it! May be it is the ultra healthy Green Tea. Well, good for them! at least they have got their beverage right, Ceylon Tea!

Back to the language itself : Some have rushed to call Ceylon the (would be) Java Killer. Although the creators of Ceylon themselves are more cautious and pragmatic. Oh, I forgot to give the original article yet. Here it is.

According to the Gavin King (as mentioned in the article above) lead of the Ceylon team at RedHat, New language will have following goals : It would run on the JVM and feature static typing, automatic memory management, and built-in modularity. 

Following current problems in Java were also given. Tied too much with XML, absence of a good way to design a user interface, A lack of language-level modularity, issues in Java meta-programming, Java SE (Standard Edition) SDK lacks modernization and is bloated etc.


In one of my earlier posts I made a case for Java Script (or something similar with a sexier name) to be the next big thing in programming. I was prepared for comments like "JS, r u sure? Java and JS are miles apart" or in that line of thinking. The given article says : "Java also has survived amid competition from dynamic scripting languages such as JavaScript". Well, at least the official comparisons have started to appear on that count. We will see more and more items on this line of thinking in the months to come...

Back to Ceylon vs Java. Now then here are my interpretations :
1) Language is being made by a very capable team at RedHat who are already "unapologetic fans of Java" So it's a safe bet (unless they make some really bad design decision upfront) that the new language will be a better one than Java. When Subversion team wanted to build on existing CVS and make a better one out of it, they did it, for instance. These folks know the strengths and weaknesses of Java so this part is a safe bet I guess.

2) The point above does not in any way imply Ceylon will beat Java at the enterprise software market. Being just a better language is not enough for that! Developers should have a very compelling reason to switch over to a new language. I think Ceylon will not beat Java in a hurry and become the top language in that sector in any time soon. There is simply too much inertia for Java right now. Unless.... well, lets get back to that in little later.

3) I'm not sure how important it is to have a "good way of designing a user interface". While it is certainly a good thing to have, I think the days of thick clients are on decline. To be the best future language, this user interface design part (assuming they mean thick client user interfaces, like in Java Swing) will not contribute that much. However it will be hugely important to have a light weight framework (MVC preferably) to develop web applications, may be that should be very close or built in to the language components it self, or may be the language should make it really easy for others to develop such frameworks. Web applications are going to be the future, current Java frameworks (struts, JSF etc) suck.

4) Having a JVM and automatic memory management is a must these days nothing surprising there.

5) To beat Java at their own game, one need some revolutionary new features, aspects or paradigms. Let's see whether the new language has got any. May be they have few cooler stuff hidden on their sleeves but if they have I didn't hear King mentioned any yet. Let's see what we mean by revolutionary changes.. How did Java beat C++ ?

Java had cool features C++ could only dream of. Java introduced (or got it right and made it popular) memory management,  a huge issue in C++, a JVM a very novel concept which gave them the theme "write once runs everywhere" (or "write once debug everywhere" depending on which camp you are in), garbage collection etc  These were Huge improvements in those days that C++ folks have migrated en mass.

What would we like to have in a future language which would embarrass Java ? Here is my List, for more see in here :
1) Dynamic language features (such as in LISP, Ruby) lot of meta programming.
2) More support for scripting. macros etc
3) Do away with Type Safety and statically bounded types (this would be a  tough one for a enterprise language)
4) Inherent support for web applications. (Java introduced JSP, where to go from there?) and AJAX in particular.

Success of Ceylon being a Java Killer will depend on those factors (and also probably few others I have missed) I think. So far I haven't heard much on those lines.

Ceylon would be a better language but will it be better enough to convert Java followers, that's the question!

However, there is no doubt that the King and his team at RedHat have got the most important thing absolutely right. The name!! that will certainly give the new language some wind initially. (partisan thinking here, take no notice! :-) )

Going to have my cuppa now.. and I like the green type.

(Image source http:/www.decidetostayfit.com)

Online Games of a different kind - and for free !


We are developing an online gaming site!

People could challenge others and play games online, keep records, play and organize tournaments, play matches with selected opponents, replay their past games, pass their university exams, complete their office work etc.  It would be so much fun! (except for last 2 items in the previous sentence).

To make it even more interesting, there will be few AI driven computer players as well. With ratings, rankings leader-boards, records etc

What will be the difference of our site with other such online gaming sites in abundance ?

Well, there will be few :

1) Our site will not require users to install any additional plugins or other software to play. No flash, flex, java applets etc They will just work from a "vanilla" web browser  just out of the box! no hassle, very light weight and universal. Yea it really will work from everywhere even on browsers running on iPhone, Android, iPads etc

2) The games running on the site will not be just animated flash games where users are just required to time their mouse clicks/drags. We believe a computer game could and should do lot more than that! Our games would mainly be board and puzzle, they would have classic games as well as few home cooked one but all would require some series analytical/calculation and strategic thinking from the players. There would be AI computer players for each and every game! Typically these games would be good for brains (comes under the category of IQ Enhancers) while fun to play!

3) It would be Free to play. It would be fast, lightweight and will not bother your system or browser performance. No hassle!

Can we achieve all that at once? We believe yes! and very soon we all will be witnessing that and playing with each other!!

So, who would be paying.. where will the money comes from ?

There are few plans. We might go for few sponsored on site ads, or may be there will be a little "donate" sign with a picture of a hungry programmer (kidding) in a corner, or may be there will be even cooler fantastic feature set for subscribed users.

Or may be non of above!

We will also be developing mobile versions for games in the site which prove to become more popular than the others. (hopefully all of them!) Some of these mobile versions will be free for all to play while few others might appear in various app stores. If it looks like there are enough players who think it's worthwhile to buy those games from app stores then, I guess we don't need to put adds in our gaming site after all!

So in short, we will leave the money problem open for the time being, there are various options we could take judging by how things will proceed.

For the time being, let's just say that we could play some very interesting, addictive and challenging games online with friends, totally free!

In the next post we will have few sneak peaks on what those games exactly are... We would love to know what you think. Who knows, if you have a cool request to make, we might just be able to deliver that for you!

Like to play a game ?

(image source from : http://frenchboxing.blogspot.com)

Thursday, March 31, 2011

Sense of humor at Microsoft

When the words Microsoft and humor both appear in the same sentence, it is usually at the expense of Vista, IE, Windows Mobile, Zune or some other Microsoft adventure.

So it is nice to see this little piece of code inside a Microsoft code. I saw this at reddit today. Original source of the image can be found in here.  (Hint : click to enlarge and look at the method name)

Sunday, March 13, 2011

Destiny of the Thin Client and Java Scripting


Applications which run on web browsers are getting expanded by the day. Some are things which (just few years ago) we didn't even believe was possible to have on a web browser. Anyway, the purpose of this article is not to debate the life time of desktop applications. May be some other day... but not today.

For the arguments sake, let's just say that there are more and more applications now running on top of a browser (thin client), Hence in future there will be many many apps written in scripting languages which runs on browsers.

Let me share with you few experiences I had recently come across on the programming front, the thoughts they generated and their conclusions. To make it bit interesting, I will disclose the conclusion first, then we would discuss the reasons for it.

Conclusion (my prediction for future) : Java Scripting (or something similar) is destined to conquer the programming world!

there... I said it! Some might say Java Scripts have already conquered the world.

For others, here are my reasoning :

Like mentioned before there will be more number of web based applications/products in future than desktop applications. This client is winning the war against the thick client. Javascript is designed to run on thin clients, the platform which is most common and will be most supported in future. (if not already!)

Programming is now moving once again towards dynamic, loosely typed languages which offer more flexibility and productivity to developers.

This is why people embrace new languages like Ruby, when C++ like languages are increasingly looked down upon. Strongly typed is no longer considered a good thing, not necessarily. Steve Yegge has apparently become so frustrated with Type Safety that he has written this little (well...,  long actually) story about TS (Type Safety). Power of dynamic programing languages is very attractive and top programmers are already either  migrated, migrating or considering doing it. Here migration is from C++, Java .Net worlds into the worlds of Ruby, Haskell, Lisp etc. To me it seems like the Virtual Machine concept is the only thing which keeps Java alive right now. They have the best VM so far designed, as soon an alternative VM comes for another language (or one which supports multiple languages) things would start to look more interesting.

Java Scripts are dynamic, not strongly typed and very flexible. A language which has a huge potential when compared to the existing giants like Java, C++ etc. There is a common perception that Java Scripts is really simple, naive, not even real programming. This perception is set to change dramatically in the coming few years!  As for a little example, consider how easily you can pass a function as a parameter to another function in java scripts. Read this (With Joel's skillful way of hammering a point through) as well for the ways that can be important in modern programming. I think Java Script has got the basic concepts right in contributing towards building the next big thing in programming languages.

Reasons ?

1) Ajax and so called Web 2.0 - Ajax (and it's fancy but unfortunate marketing term Web 2.0) has made a mental shift in web aplication programming. User freindly, fast, smooth dynamic applications are now the norm and expectation. Web application is supposed to be very interactive and super fast isn't it ? almost like a desktop application. Well, that's how peoples expectations have shifted.  Think about the effect of this shift on programmers. Ajax means more and more javascripts. More and more advances and cool javascripts. Good skills in Ajax and Javascripts is now becoming a must for a web developer while old giant frameworks like Struts are made to look bulky and outdated in comparison.

2) JQuery : what do we think about javascripts as soon as we hear the word ? a very unreadable spagetti, old C like code, which is somewhere between html and proper programming. Series programmers will not making their hands dirty with that jargon.... well, that was how it was until few years ago, Things are changing now and the change will grow even more rapidly in coming few years. Jquery is a good example for neat, organized library of javascripts. Some vital, so far missing component to popularize this technology. This is a sign of things to come. More and more cool and smart libraries like Jquery will apeear and that will shift the Javascrip language into a new level in terms of usability, re-usability, readability, efficiency and all.

3) V8 & Nitro : Other vast improvement is made from the side of Javascript rendering engines. Google's V8 in Chrome and Apple's Nitro in Safari seems best out there right now but Firefox is not far behind either. This will provide the necessary muscle to run JavaScript code faster and will act as a catalyst to fasten the growth of the technology. More and more tasks will be feasible to run on a browser using JavaScript to power them.

4) HTML5 : HTML5 (and the new element canvas, among other things) is a cool technology which is clearly the future of HTML. This will raise the profile of thin client applications in to a new level. It will also increase the role of javascripts

5) Problems in other rival technologies : Adobe Flex, Macromedia MS Silverlight and other technologies all have problems. None of them as popular, well known and available as Javascripts are. None of them are as readily available everywhere. More importantly, none of them are as commonly accepted by all as javascripts. Problems between Apple and Adobe on iPhone Flash support is just a one example. HTML5, Ajax and improves version of Javascript is well poised to take over the dynamic application development on thin clients.  That will also provide standard compliant, universal, free alternative for all.

6) Anatomy of a modern web application : When we look at modern web applications which offer lot of dynamism, interactivity and finer smoothness of operations for the users, one trend become noticeable.  More and more interesting and smarter code is being written at the front end. Less and less smarter critical code is being written in the back end.

     Now, I 'm not saying all cool, critical code should be written in the front end in javascripts. What I'm saying is that we are used to the notion that almost all activities of a web site happen in the back end and only the dumb, non-critical, display related activities are done in the front end. This thinking is chanigng now. (probably not as fast in enterprise applications as opposed to all other applications, but enterprise applications in themselves is loosing the significance, well. we will discuss that in some other post.) What I find is with the use of Ajax, Jquery and with all other nice feature we could provide to the user using those, we find much more code is being written in the front end. Much more than there used to be! This fact requires recognition and that will also lead to more attention to front end code. (Will put up a seperate article detailing this based on our own development experiance) Skills of writing good Ajax/Javascripts code will be more appreciated while more and more frameworks and technologies would appear to solve the development problems of these parts in web applications. What will all this lead to ? it will raise the profile of Javascripts and it will come to the forefornt of technologies.
 


However, there is a one last improvement remaining to happen. We will need a new name for Java Scripts! Already JS is very different than how it was until few years ago but the perception of it is yet to get updated. If it is to be the new and next big thing, it will surely need a much better marketable name that JS. Any suggestions ?

Saturday, March 12, 2011

Welcome to Gaming Fun @ Araaya !

Welcome all!

We started this blog to share our experiance in game development (both technical and business) and related programming challenges with you all.

Hopefully this will grow into a forum where lot of useful discussions and arguments happen on game development, artificial intelligence and programming in general. If you have an interest in any one of those categories or if you are an eunterprenuar who is interested in following how a new gaming startup progresses and like to share our experiances, you all are most welcome. Let us have your valuable comments  and thoughts...

By the way, I almost forgot to mention about Araaya. We focus on developing games and utility applications for smart mobile devices like iPhone, iPad, Android etc.. Our sister company ITF is focusing on enterprise solutions, outsourcing and consultancies. More on ITF later.. for the time being, we have dedicated another blog for discussions on that front.

In addition to develop games for mobile devices, Araaya also planning to launch a website for online gaming where most of its titles will be avaialbe for people to test and play for free! Work on this is underway right now and our team is busy finishing up this work.. Hoping to meet you all there pretty soon and challenge you for a game!


Following are our team members who will also be sharing their developing experiances, trick & tricks and other programming adventures (and missed ones too!) with you on this blog.

Mahesha Kalpanie
Chathuranga Withana
Shan Chathuranga
Amith Jayasekara

Once again a warm welcome to all!

- Ashoka Ekanayaka -