Category - Programming

Facebook AI creates its own language?


“The World is a small place”. You may have heard this phrase many times in many places. But is it true? The world or “earth” in a more planetary aspect, may smaller than Saturn or Andromeda Galaxy, but still, it’s not that small. It’s a large civilization of 7 billion inhabitants. One pillar that holding the stability and sustainability of this community is communication. So how we communicate? The answer to that simple question is “using languages”. The linguistic research estimates that there are 5000 to 7000 languages in this world. But how many languages do you know? Then translators become handier in communication between people.


Today Facebook is a social networking service with 2 billion monthly active users. To enhance the networking and communication capabilities of the platform, Facebook comes with a new translation engine fueled with artificial intelligence. This time Facebook does not amaze us with AI capabilities that can create own language, but they try to assist with our human languages.

Facebook performs about 4.5 billion translations daily. The new system expected to do these translations with higher accuracy. The old system used simpler phrase-based machine translation models. The phrase-based system translated sentences word by word and usually made meaningless phrases. But in the neural network, it considers the whole sentence once. For that, Facebook uses machine learning functionality called long short-term memory network.

This system is capable of learning things by analyzing enormous amounts of data. The Facebook engineers say that their technique is nine times more efficient than other neural network-based methods. Christopher Manning, a professor at Stanford University said that using the Facebook’s neural system “You can have parallel computation on different parts of a sentence, You don’t have to push things along word by word.”

One more interesting thing is, Facebook achieved to perform translations with their new system by using lesser computing power. This means it can do more with its available data center hardware and other resources. Sometimes this can be a small advantage, but in some scenarios, it can become a huge leap over other translation systems.


The Facebook’s Applied Machine Learning team is planning to make the software engine open-source. So you and I also can contribute to the system in the near future. This is one step ahead towards the initiative of internet’s biggest companies, to freely share their AI research. We can forecast that translation will evolve far more quickly across the Internet, with the help of other tech giants like Google, Microsoft, and Baidu, not only Facebook.



ඔබටත් පරිගණක ඉංජිනේරුවෙක් වීමට අවශ්‍යද?

හැම අධුනිකයෙකුටම තියෙන ප්‍රශ්නය තමයි මම කොතනින්ද පටන්ගන්නේ කියල. කොහොමද Programmer කෙනෙක්, Software engineer කෙනෙක් වෙන්නෙ කියන එක. මේක අපි කොටස් පහකින් හොයල බලමු.

  • Programming field එකක් තෝර ගැනීම
  • Programming language එකක් තෝර ගැනීම
  • ඉගෙන ගැනීමේ මාධ්‍යයක් තෝර ගැනීම
  • Platform එකක් තෝර ගැනීම
  • IDE එකක් තෝර ගැනීම

මේ වචන ගැන දන්නෙ නැත්තම් කලබල වෙන්න එපා. ඉස්සරහට තේරුම් ගන්න පුළුවන් ඒවා ගැන.

Read More

What is ReactJS

මේ දවස්වල ජනප්‍රිය මාතෘකාවක් තමයි  ReactjJS කියලා කියන්නේ. කාලයක් තිස්සේ ඉහල user rating එකක් තිබුණු Angular, BackboneJS, KnockoutJS, EmberJS වගේ web framework වලට තරඟයක් දෙන්න පුළුවන් වුනු අලුත් technology එකක් විදියටත් ReactJS හඳුන්වන්න පුළුවන්.

Read More

Get to know about Ultrasonic Sensor HC-SR04

Ultrasonic Sensor HC-SR04 is used to measure distance. We can find precise distance to an object from the sensor, or can used to detect when something is within range of the sensor. It can measure distance with high accuracy from 2cm to 400 cm.  Its operation is not affected by darkness or light .Because it uses sound to measure distance.

Ultrasonic range finder measure distance by emitting a pulse of ultrasonic sound that travels through the air until it hits an object. It measure the time of the sound pulse which travel forward & back to the sensor when the pulse hits the object. Then it sends an electrical signal to the Arduino with information about the time that sonic pulse traveled.

Ultrasonic range finder has 2 transducers.

  • Transmitting transducer
  • Receiving transducer


Read More

University of Moratuwa wins world THIRD at IEEEXtream programming competition

IEEEXtreme is a global challenge in which teams of IEEE Student members, supported by an IEEE Student Branch, advised and proctored by an IEEE member, compete in a 24-hour time span against each other to solve a set of programming problems. Competition is conducted by IEEE (Institute of Electrical and Electronics Engineers), which is the world’s largest professional association dedicated to advancing technological innovation and excellence for the benefit of humanity.

This is an annual competition IEEE student branch of University of Moratuwa participates each year and surely secures a set of places. This year the competition occurred for the 8th consecutive year, and our budding engineers competed with the world to bring down five places in the first hundred, including the 3rd place which is the highest percentage of any participating university.

Team Oops’ from UOM with members Thilina Sameera Ambagahawaththa, Nipuna Randunu Samarasekara and Varuna Jayasiri proudly bagged the global 3rd place competing with 2000+ other teams. ‘Team Ewoks’ from UOM secured the rank 15 as well.

Congratulations all the winners and thanks for bringing the glory to the country.


Check some example questions of this competition

An Introduction to Android Mobile Game Development – Part 1

We all love mobile gaming and it has become a booming market today. Majority of the smart device users use their device for gaming. Most probably you might be a mobile gamer too. But, have you ever wanted to make your own mobile game?  And still don’t have a clue where to start?  Then this article will guide you for a quick start. We will be focusing on the Android platform in this article.

How mobile games differ from PC games

Though they have a less processing power compared to modern personal computers, smart devices are considered as small computers. Some smart devices are capable of running high quality 3D games.

Games themselves and developing games for mobile differs from conventional PC game development in several ways.

Simple concept

Most of the mobile games are built on a simple concept and a storyline. Think of the popular game “Angry Birds”. The player has to destroy different structures using a slingshot. Another example is “Cut the Rope” where the objective is feeding a monster with candy. These games became popular because of the simple design and easy to pick up playing mechanics.

 Simple controls

Mobile games use easy to use controls such as touch, tap, swipe, tilt etc. These are actions which are familiar to all smart device users. So it makes the learning curve of a game less steeper.

 Development team size and development time.

Conventional PC/Console game studios use hundreds of individuals for the development of product. But most of the mobile games are made by small teams, sometimes by a single person.

Usually a mobile game can be developed in few weeks to few months (This can change depending on the project). But most of the PC games take years to complete (Eg. Skyrim V took 3.5 years).

Larger audience

The global smartphone users are expected to reach 1.75 billion in 2014. In most of the developed countries higher percentage of the population owns a smartphone than owns a personal computer. 2013 became a lousy year for PC sales but the mobile devices are on the rise. Another thing to consider is that most of the casual gamers tend to play game on a mobile device instead of a PC. Because of these reasons mobile games have a larger potential audience.

Available game engines and frameworks for Android game development










Programming language: Java

Price : Free

Supported Platforms: Android


This is a free and open source game engine with an active user community. There’s a lot of tutorials and sample code out there to get started.


The Major drawback of Andengine is that it lacks an official API reference . And it supports only for Android. You can make only 2D games using Andengine.




Programming Language: C++

Price: Free

Supported platforms: Android, iOS, Windows Phone 8, Windows 8


This is a free and open source game engine so you can modify it according to your needs. And you can publish games on several platforms using the same code base. Cocos2d-x is one of the best engines out there when it comes to the performance.


Beginners may find the learning curve quite steep.







Programming Language: Java

Price: Free

Supported Platforms: Windows, Mac, Linux, Android, iOS, BlackBerry and Web


This is a free and open source cross platform game engine. This game engine performs well compared to other java game engines out there.


Beginners may find the learning curve quite steep.








Programming Language: Game Maker Language (GML)

Price: Depends on the version (A free version is also available)

Supported Platforms: Windows, Mac, Linux, Android, iOS, Windows Phone, BlackBerry and Web


The GameMaker is one of the easiest game development tools to use. You can just drag and drop objects into the scene and apply pre defined behaviors to those objects. You can make more advanced things using the GameMaker’s own scripting language GML. This is widely used by hobbyists and professionals both.


The free version of GameMaker comes with some limitations. You can’t publish on mobile platforms using the free version. The paid versions are pretty expensive compared to the other solutions out there. You have to learn a new language just for GameMaker.

 Corona SDK


Programming Language: Lua

Price: Depends on the version (A free version is also available)

Supported Platforms: Android, iOS


If you need to program a complete game from scratch without dragging and dropping, this is the easiest solution you have. The language used is Lua and it’s very easy to learn. You can even publish for iOS and Android using the free version of the Corona SDK. It is documented well and provides sample apps to get started easily.


The free version of the Corona SDK comes with some limitations. You can’t implement in-app purchases etc. Another drawback is that you can only make 2D games using the Corona SDK.








Programming Languages: C#, Unity Script, Boo

Price: Free and a Pro version is available

Supported Platforms: Windows, Mac, Linux, Android, iOS, Windows Phone, BlackBerry , Flash,

XBOX, Playstation etc.


Unity’s main advantage is its cross platform capability. You can publish your games on every popular platform out there. Unity3D has a strong asset store where you can buy 3d models, scripts, sounds etc. And another huge advantage of using unity is that you can publish your game on most of the platforms even if you use the free version. However, when you reach a particular revenue limit you have to buy the Pro version.


Not observed.

Why I recommend Corona SDK and Unity3D

I’ve been using Corona SDK for a year and I believe it’s a good game engine to start game development for Android. Because of the very active community of developers and resources out there, you can get started easily. You can program the game in Lua instead of C++ or Java and this makes the development process fast. And it gives you the native performance. If you need to implement in app purchases in your game you have to buy the Basic version of the SDK which costs 16$ per month.

One disadvantage of Corona is that you can’t make 3D games using it. That’s where Unity3D comes into the action. Actually the latest version of Unity3D officially supports 2D game development. Unity3D is a game engine with an editor which allows you to create levels, manage game assets etc. It supports several languages such as C#, Unity Script (A modified version of Javascript) and Boo. Unity 3D is easy to learn but I recommend using something like Corona SDK because it improves the programming skills and gives you a better understanding of how things are tied together in a game. After getting some experience in game programming you can choose something like Unity3D.

Await Part 2 of this series!

The Javascript Revolution – Part I

Scott Hanselman, the popular blogger from Microsoft, asks: if you had to start over, what technologies would you learn in 2014? It’s both an interesting and a timely question, when the software world is overflowing with new languages, programming paradigms, platforms and frameworks. Which ones to choose? Not only the newcomers to the industry, but the veterans as well seem to be in doubt about what language or technology he should master next.

Hanselman has an interesting answer to the question:

Learn one language you can build large systems with AND also learn Javascript.

That one language might be Ruby, Python, C#, Java, Scala or anything from the myriad of other choices available. That choice may depend on where you work at and your personal preferences. But Hanselman also goes on to declare that learning Javascript a must for everybody. But let us stop for a moment and ponder: why Javascript?

A decade back, Javascript was only a scripting language used to add fancy animations and validate inputs in websites. It gained popularity since it ran in the browser (as opposed to in the server) and almost all web browsers supported it. But that’s all Javascript was good for back then.

Then in 2007, Jeff Atwood, co-founder of Stack Overflow, proposed what was to be known as ‘Atwood’s Law‘:

Any application that can be written in Javascript, will eventually be written in Javascript.

It was a pretty radical statement, even in 2007.

Fast forward to 2014, we see Javascript everywhere. From client-side and server-side web apps to mobile and desktop apps, Javascript is being used almost everywhere. Never has any other programming language been able to become omnipresent to this extent.

Though Javascript started as a client-side language for webapps, it has now conquered the server-side as well with Node.js. Node is to Javascript what’s Rails is to Ruby. Many tech giants like Paypal, LinkedIn and Yahoo have begun to ditch their previous (and successful) web frameworks in favor of Node.


Projects like node-webkit have enabled developers to write desktop apps in Javascript. The effort is still in its early stages, but the community is ever more enthusiastic and are actively working to see a light in this horizon. As for mobile apps, a considerably large percentage of apps for Android and iOS are now being written using Phonegap. Ubuntu is pushing the developers to write more and more native apps in HTML5 that would work on both desktop and mobile devices.

It has made its way to hardware programming as well. Tessel is an upcoming microcontroller (similar to Arduino and Raspberry Pi) that runs on Javascript. There are other projects like Espruino that are already in the market.

One bitter point of Javascript used to be its low performance record. It was okay for short bursts of calculations and event handling, but when it came to the nitty-gritty of complex problems Javascript always lagged behind. But the tide has turned with the advent of asm.js, an optimized subset of Javascript, which can be generated by transpiling C or C++ code. This has paved way to create FPS games, database engines, and even video converters that would run in your web browser!

Keep calm and learn Javascript

Has Javascript become the one language to rule them all? We wouldn’t know yet. In the coming weeks, we’ll explore how and why Javascript has become successful in each of these domains in detail. Stay tuned!