Sunday, August 22, 2010

ගූගල් සමර් ඔෆ් කෝඩ් -2010 ඉවරායී....

අගෝස්තු 20 වෙනිදා "ගූගල් සමර් ඔෆ් කෝඩ් -2010" වැඩ නිල වශයෙන් අවසන් කලා :),එ අවසන් ප්‍රතිඵල නිකුත් වීමත් සමගයි. ගූගල් නිල වශයෙන් ප්‍රතිඵල 23 වෙනිදා දැනුම් දීමට නියමිතයි. මගේ ප‍්රජෙක්ට් එක වූනේ Apache Derby වලට අලුත් ටූල් එකක් හදන්නයි. Derby කියන්නේ සරලව කිව්වොත් දත්ත ගබඩා කරන්න සහ අවශ්ය දත්ත ලබාගන්න උදව්වෙන FOSS software එකක්, ඉන්ග්‍රිසියෙන් කිව්වොත් Relational Database Management System (RDBMS) එකක්.

මගේ ටූල් එක ගැන කිව්වොත් එය Derby යූසර්ස්ලට තමා execute කරපු query එකක් execute වෙන අවස්ථාවෙදී Derby අනුගමනය කරපු පියවරවල් tree අකෘතියක් ලෙස බලා ගන්න හැකියාව සලසනවා. Tree අකෘතියේ තියෙන හැම node එකක් ගැනම තෝරා ගත් විස්තර සමූහයක් අන්තර්ගතයි. මෙමගින් Derby යූසර්ස්ලට තමා execute කරපු query එකේ performance බලාගන්න පුලුවන් වීම නිසා, performance අඩුයි වගේ පෙනෙනවානම් එ query එක වෙන විදියකට ලියන්න උනන්දු කරවනවා. මෙම අලුත් ටූල් එක Derby මීළග release එකට එ කියන්නේ 10.7 වලට අන්තර්ගත කරන්න ඉන්නෙ. ටූල් එකේ එක interface එකක් මෙතනින් බලන්න පූලූවන්.

මගේ ප‍්රජෙක්ට් මෙන්ට වුනේ Bryan Pendleton. Bryan ගෙ උදවූ මට ගොඩාක් උපකාරී වුනා ප‍්රජෙක්ට් එක වෙලාවටත් ඉස්සෙල්ලා ඉවර කරන්න, මට කියන්න බරිවුනානේ ප‍්රජෙක්ට් එක මම වෙලාවටත් ඉස්සෙල්ලා ඉවර කලා (අගෝස්තු 4) (මෙන්ට බලාපොරොත්තු වුන විදියට), ඊට පස්සෙ community එකෙන් පොඩි පොඩි අදහස් මතු වුනා. එ අදහස් වලට ගරැ කරමින් මට අගෝස්තු 16 ට ඉස්සෙල්ලා කල හැකි දේවල් මම කලා, community එක එකග වුනා අනිත් අදහස් ඉදිරියේදී කරන්න, තව සාකච්චා වලින් පස්සෙ. මෙහෙම තමා FOSS ප‍්රජෙක්ට් එකක් ඉදිරියටම යන්නේ.:)

Community එකේ හැමෝම මට ගොඩාක් උදවු කලා Derby එක්ක familiar වෙන්න. හැමෝටම ගොඩාක් Thanks! ගොඩාක් අය මට සුබ පැතුවා, එ අයටත් Thanks! මේ මගේ පළමු සිංහල බ්ලොග් පෝස්ට් එකයි.:)


Saturday, August 7, 2010

My Second Project at IFS as an Intern

It was a requirement of the training division itself, and an idea of Nalin, my training manager. He wanted me to write a C# GUI application, which will automate a hectic, tedious manual process. They already have a pretty old GUI, which is capable of doing 2/3 of work that the new tool should cover. But the problem with that is they need to follow a process which is sequentially ordered and they have to closely watch till one step over to proceed with the other step. So a successful solution will save lot of money and effort.

I was not familiar with any of scripting languages before start up of the project. The most challenging task was to find a scripting language which can be used to automate a Windows GUI. After searching in the Internet I found a scripting language called AutoIt (AutoIt), which is capable of automating Windows GUIs, and also very easy to learn type of language. After went through some tutorials on AutoIt, I started writing small scripts, which are basically will automate a simple installation process. Next I got familiar with the tool that is currently used at IFS. After designing a process view I implemented the needed functionality.

GUI is a most important part of an application, which I haven’t done enough thinking into. But Nalin gave me wonderful ideas and best practices of designing a GUI, which I think will help me in my future work as well. GUI has created using C# programming language, such that it takes the minimum possible inputs from a user.
·         GUI consists with four steps.
·         Easy to use, user friendly design.
·         User will be guided through steps, minimized the number of scary messages.
Following our the screen shots of the GUI.

Thursday, August 5, 2010

My Work at Google Summer of Code -2010

As I am reaching the end of successful summer, with Apache Derby and Google, I like to share with you a prototype that I've done using the tool, PlanExporter, which I've developed to Apache Derby.

You can visit this page to see the prototype.

This tool provides a high level view of the execution plans of complex queries you have executed. You can see the steps followed by the "Query Optimizer" of Derby, in order to execute the particular query. In this case Optimizer had followed a query plan with four "plan nodes", namely PROJECTION, HASH JOIN, TABLE SCAN and HASH SCAN. Intermediate results flow from the bottom of the tree to the top. In this case the filtered results of TABLE SCAN and HASH SCAN was given as the input for HASH JOIN. After performing the HASH JOIN the filtered result set given as a input to the PROJECTION node.

You can move the mouse point over an any node of the query plan to view set of available details about the execution at that step.

It is just the output that shown there. To convert to this output I had done lot of coding :).

Thanks for reading!