<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6557106330831665991</id><updated>2012-01-03T14:25:01.711+05:30</updated><category term='toolkit'/><category term='Architecture'/><category term='JIRA'/><category term='Multi-Core Programing'/><category term='Xwiki'/><category term='Parallelizing the Fibonacc'/><category term='Patch'/><category term='Adscene'/><category term='patterns'/><category term='Fibonacci in Parallel'/><category term='Race conditions'/><category term='Executor Framework'/><category term='Deadlocks'/><category term='Survey'/><category term='Load balance'/><category term='Processing element'/><category term='principles'/><category term='Java'/><category term='Mockups'/><category term='Component'/><category term='Unit of Execution'/><category term='java executor framework'/><category term='OpenForecast'/><category term='archetype'/><category term='Testing'/><category term='GSOC'/><category term='Todo'/><category term='grails'/><category term='Forecasting'/><category term='Ganymade'/><category term='blogger'/><category term='Maven'/><category term='Task Decomposition Pattern'/><category term='Eclipse'/><category term='Multi-Core Programming'/><category term='IRC'/><category term='OOP'/><category term='design'/><category term='Parallel Computing'/><category term='project'/><category term='Task'/><category term='google'/><category term='Struts 2'/><title type='text'>Hai Friends...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-284372460030578426</id><published>2011-01-22T20:51:00.003+05:30</published><updated>2011-01-22T21:07:24.884+05:30</updated><title type='text'>JConqurr - Multicore Programming Toolkit For Java</title><content type='html'>Our final year project research paper is got published&lt;span class="messageBody"&gt; in The International Journal of Computer and Information Engineering WASET(http://www.waset.org/journals/ijcie/).&lt;br /&gt;You can download the research paper by clicking the following link.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.waset.org/journals/ijcie/v3/v3-4-34.pdf"&gt;http://www.waset.org/journals/ijcie/v3/v3-4-34.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I would like to thanks my group members Madhawie Samaranayake, Lahiru Suranga Bandara, Lasantha Fernando and the project coordinator Mr Kishan Wimalawarne for this achievement.  success.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-284372460030578426?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/284372460030578426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2011/01/jconqurr-multicore-programming-toolkit.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/284372460030578426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/284372460030578426'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2011/01/jconqurr-multicore-programming-toolkit.html' title='JConqurr - Multicore Programming Toolkit For Java'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-2445611304086205880</id><published>2010-03-20T21:07:00.006+05:30</published><updated>2010-03-20T22:01:11.625+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='java executor framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallelizing the Fibonacc'/><title type='text'>Analysis of Parallelizing the Fibonacci using java executor framework</title><content type='html'>From my last post I have showed you a mechanism that we can used to parallel the Fibonacci. From this post I hope to analyse the various mechanism that can use to parallel the Fibonacci using java and I'll point out the some of the disadvantageous.&lt;br /&gt;&lt;br /&gt;One of the famous book in parallel computing is "The Art of Multiprocessor Programming" by Maurice Herlihy and Nir Shavit. In the book we can found a one mechanism that used for parallel the fibonacci.In achieving that the author has used the java executor framework. Here is the code used in the book.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_swOLNPM96kM/S6Tye0rFjRI/AAAAAAAAAJ0/wOt3bkAidpw/s1600-h/fib.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 190px;" src="http://3.bp.blogspot.com/_swOLNPM96kM/S6Tye0rFjRI/AAAAAAAAAJ0/wOt3bkAidpw/s320/fib.png" alt="" id="BLOGGER_PHOTO_ID_5450748060374502674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;According to the algorithm it mainly focus on the finer-grained parallelism. So when the Fibonacci number increases, number of task increases. So lot of overhead will added in resource allocation for each new task. When you using java threads or the java executor framework if you targeting a performance gain then the time taking for your algorithm complexity must be above the time which require in resource allocation of threads or the executor framework. So what you should focus is achieving the coarse gain parallelism as much as you can. Also you must consider the number of processors in your machine.  Your coarse grain parallelism must build around those processor. That's the thing which I did exactly in my algorithm. Which is shown below.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_swOLNPM96kM/S6T1nsS_ZxI/AAAAAAAAAJ8/fI4S06f3qNY/s1600-h/parallel1.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 275px;" src="http://4.bp.blogspot.com/_swOLNPM96kM/S6T1nsS_ZxI/AAAAAAAAAJ8/fI4S06f3qNY/s320/parallel1.png" alt="" id="BLOGGER_PHOTO_ID_5450751511279658770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_swOLNPM96kM/S6T12LolCMI/AAAAAAAAAKE/9vIvuUaHtZ8/s1600-h/parallel2.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 296px;" src="http://4.bp.blogspot.com/_swOLNPM96kM/S6T12LolCMI/AAAAAAAAAKE/9vIvuUaHtZ8/s320/parallel2.png" alt="" id="BLOGGER_PHOTO_ID_5450751760209873090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;According to the above mechanism resource allocation happens only for two tasks. So those two task bare equal amount of load. When you fork the problem no need to fork it too much. The amount of forking level must depend on the number of processors. That will give you a big performance hit. This is a common practise that we need to adhere in parallel computing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-2445611304086205880?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/2445611304086205880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2010/03/analysis-of-parallelizing-fibonacci.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/2445611304086205880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/2445611304086205880'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2010/03/analysis-of-parallelizing-fibonacci.html' title='Analysis of Parallelizing the Fibonacci using java executor framework'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_swOLNPM96kM/S6Tye0rFjRI/AAAAAAAAAJ0/wOt3bkAidpw/s72-c/fib.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-7375953816577504912</id><published>2010-03-20T02:43:00.011+05:30</published><updated>2010-03-20T04:02:11.871+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fibonacci in Parallel'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Executor Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel Computing'/><title type='text'>Parallelizing the Fibonacci using java</title><content type='html'>Hai...&lt;br /&gt;&lt;br /&gt;Its being a quite some time to my last post. Anyway since I currently researching on parallel computing I thought to publish a post relevant parallel programming. So I thought to implement the Fibonacci calculation algorithm in a parallel way using Java. Here is the source code.&lt;br /&gt;&lt;br /&gt;Parallel Fibonacci--------------------------------------&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_swOLNPM96kM/S6P7V1YXSrI/AAAAAAAAAJs/Kje3tr_ukMw/s1600-h/parallel1.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 275px;" src="http://4.bp.blogspot.com/_swOLNPM96kM/S6P7V1YXSrI/AAAAAAAAAJs/Kje3tr_ukMw/s320/parallel1.png" alt="" id="BLOGGER_PHOTO_ID_5450476326573525682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_swOLNPM96kM/S6P48ML8PrI/AAAAAAAAAJk/_Z19yuTky_I/s1600-h/parallel2.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 296px;" src="http://2.bp.blogspot.com/_swOLNPM96kM/S6P48ML8PrI/AAAAAAAAAJk/_Z19yuTky_I/s320/parallel2.png" alt="" id="BLOGGER_PHOTO_ID_5450473686995582642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt; &lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;br /&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;br /&gt;Sequential Fibonacci----------------------------&lt;br /&gt;&lt;br /&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_swOLNPM96kM/S6P3sO48iCI/AAAAAAAAAJU/zHhihSXDinU/s1600-h/Sequencial.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 295px;" src="http://2.bp.blogspot.com/_swOLNPM96kM/S6P3sO48iCI/AAAAAAAAAJU/zHhihSXDinU/s320/Sequencial.png" alt="" id="BLOGGER_PHOTO_ID_5450472313331681314" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;integer&gt;&lt;br /&gt;&lt;br /&gt;I have use the Java executor framework to achieve the parallelism. I tested the source code under duel core 1.73Ghz machine. Following are the results that I got for sequential and the parallel computations.&lt;br /&gt;&lt;br /&gt;number=25&lt;br /&gt;seq=0.0040     parallel=0.0070&lt;br /&gt;number=30&lt;br /&gt;seq=0.035        parallel=0.029&lt;br /&gt;number=35&lt;br /&gt;seq=0.215        parallel=0.189&lt;br /&gt;number=40&lt;br /&gt;seq=2.025        parallel=1.719&lt;br /&gt;number=45&lt;br /&gt;seq=22.215    parallel=14.291&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_swOLNPM96kM/S6Py458NmPI/AAAAAAAAAJE/PYQ_h1rtbI4/s1600-h/Screenshot2.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 233px;" src="http://2.bp.blogspot.com/_swOLNPM96kM/S6Py458NmPI/AAAAAAAAAJE/PYQ_h1rtbI4/s320/Screenshot2.png" alt="" id="BLOGGER_PHOTO_ID_5450467033488398578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Above graph shows the performance of each calculation (X=fib number,Y=time(s)).&lt;br /&gt;&lt;br /&gt;Thats it for today. I hope to explain the concept behind the performance gain in next post.&lt;br /&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;/integer&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-7375953816577504912?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/7375953816577504912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2010/03/parallelizing-fibonacci-using-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/7375953816577504912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/7375953816577504912'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2010/03/parallelizing-fibonacci-using-java.html' title='Parallelizing the Fibonacci using java'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_swOLNPM96kM/S6P7V1YXSrI/AAAAAAAAAJs/Kje3tr_ukMw/s72-c/parallel1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-3011618543862254073</id><published>2009-12-27T18:32:00.008+05:30</published><updated>2009-12-28T19:07:59.233+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Forecasting'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenForecast'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><title type='text'>How to use OpenForecast to a add forecasting features to you web applications...</title><content type='html'>Forecasting is one of a nice feature you can add to your data related web application.Assume we have to predict a measurement of a temperature for a given place and date. For that we required a data mining tool. So we achieved this task by using an open source forecasting library called OpenForecast. The advantage of the library is it provides lot of scalability our application. So we can add any data field for our prediction. Below I mentioned the approach we used to achieve the forecasting using OpenForecast.&lt;br /&gt;•    First you have to define the test data set for the forecast. For that library provides two class called DataSet and Observations.&lt;br /&gt;•    Using Observations class we can define the past observations we made. Then we have to assign the each Observation objects to the Data set. A sample code is shown below&lt;br /&gt;&lt;br /&gt;      // Create Observation for temperature measured on 2009/12/20&lt;br /&gt;      Observation observation1 = new Observation(32.0);&lt;br /&gt;      observation1.setIndependentValue("year",2009);&lt;br /&gt;      observation1.setIndependentValue("month", 12);&lt;br /&gt;      observation1.setIndependentValue("date", 20);&lt;br /&gt;&lt;br /&gt;      // Create Observation for temperature measured on 2009/12/21&lt;br /&gt;      Observation observation2 = new Observation(30.0);&lt;br /&gt;      observation2.setIndependentValue("year", 2009);&lt;br /&gt;      observation2.setIndependentValue("month", 12);&lt;br /&gt;      observation2.setIndependentValue("date", 21);&lt;br /&gt;&lt;br /&gt;      // Create Observation for temperature measured on 2009/12/22&lt;br /&gt;      Observation observation3 = new Observation(27.0);&lt;br /&gt;      observation3.setIndependentValue("year", 2009);&lt;br /&gt;      observation3.setIndependentValue("month", 12);&lt;br /&gt;      observation3.setIndependentValue("date", 22);&lt;br /&gt;&lt;br /&gt;      DataSet dataSet = new DataSet();&lt;br /&gt;&lt;br /&gt;      // Add Observations to the DataSet&lt;br /&gt;      dataSet.add(observation1);&lt;br /&gt;      dataSet.add(observation2);&lt;br /&gt;      dataSet.add(observation3);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•    After we define the test data set as above we have to use a forecast model to test the data set. For that the library provide a functionality called getBestForecastModel(DataSet dataSet). So we pass our data set and get the best forecast model that can use to train our data set. Library has set of forecasting models such as Double Exponential Smoothing Model, Multiple Linear Regression Model, Naïve Forecasting Model, Polynominal Regression Model, Simple Exponential Smoothing Model, Triple Exponential Smoothing Model, Weighted Moving Average Model. To   train the dataset we call the model.init() method. Following code shows this mechanism more clearly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    ForecastingModel model = Forecaster.getBestForecast(dataSet);&lt;br /&gt;    model.init(dataSet);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•    Then we have to create another Observation/DataPoint for our prediction. In there we set the value to zero and add other independent variables. After that we have to create a new data set and we add above Observation/DataPoint object to our new data set. Sample code shown below.&lt;br /&gt;&lt;br /&gt;      DataPoint fcDataPoint4 = new Observation(0.0);&lt;br /&gt;      fcDataPoint4.setIndependentValue("year", 2009);&lt;br /&gt;      fcDataPoint4.setIndependentValue("month", 12);&lt;br /&gt;      fcDataPoint4.setIndependentValue("date", 23);&lt;br /&gt;&lt;br /&gt;      // Create forecast data set and add these DataPoints&lt;br /&gt;      DataSet fcDataSet = new DataSet();&lt;br /&gt;      fcDataSet.add(fcDataPoint4);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;•    Now we have created the data set which we want to forecast. Next we forecast the data set using our model and we get the dependent value from above fcDataSet like below. Our forecast result is equal to the value return by the getDependent() method.&lt;br /&gt;&lt;br /&gt;      Iterator itt = fcDataSet.iterator();&lt;br /&gt;      Double value=0.0;&lt;br /&gt;      while (itt.hasNext()) {&lt;br /&gt;          DataPoint dp = (DataPoint) itt.next();&lt;br /&gt;          double forecastValue = dp.getDependentValue();&lt;br /&gt;          value = forecastValue;        &lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;&lt;a href="http://openforecast.sourceforge.net/"&gt;OpenForecast Site:http://openforecast.sourceforge.net/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/projects/openforecast/files/OpenForecast/OpenForecast%200.4.0/OpenForecast-0.4.0.jar/download"&gt;Download OpenForecast:http://sourceforge.net/projects/openforecast/files/OpenForecast/OpenForecast%200.4.0/OpenForecast-0.4.0.jar/download&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-3011618543862254073?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/3011618543862254073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/12/how-to-use-openforecast-to-add.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/3011618543862254073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/3011618543862254073'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/12/how-to-use-openforecast-to-add.html' title='How to use OpenForecast to a add forecasting features to you web applications...'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-502478475684964697</id><published>2009-11-03T14:16:00.005+05:30</published><updated>2009-11-03T15:20:54.789+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='Task Decomposition Pattern'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel Computing'/><title type='text'>Patterns in Parallel Computing - Task Decomposition Pattern in a nut shell</title><content type='html'>In parallel &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;programing we can find patterns that can use to achieve the parallelization. Here I listed the patterns that used in parallel programing.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Task Decomposition Pattern&lt;/li&gt;&lt;li&gt;Data Decomposition Pattern&lt;/li&gt;&lt;li&gt;Group Task Pattern&lt;/li&gt;&lt;li&gt;Order Task Pattern&lt;/li&gt;&lt;li&gt;Data Sharing Pattern&lt;/li&gt;&lt;li&gt;Design Evaluation Pattern &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Task Decomposition in a nut shell... &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When achieving task based parallelism programmer must aware about the following points&lt;br /&gt;&lt;ul&gt;&lt;li&gt;He must understands the which are the computationally intensive parts of the problem.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Key Data structures&lt;/li&gt;&lt;li&gt;How the data is used as the problem's solution unfolds.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Fundamentally every parallel algorithm involves a collection of tasks that can executes concurrently and the challenge is to find those tasks and crafts an algorithm that lets them run concurrently.It will be easy to achieve task based decomposition when it is set of independent task.&lt;br /&gt;&lt;br /&gt;Lets' see what are the factors which influence in parallel design&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Flexibility : Allow to adapted to different implementation requirements.&lt;/li&gt;&lt;li&gt;Efficiency : Parallel program must scale efficiently with the size of the parallel computer. Ex: Task decomposition needs to keep all the PEs busy.&lt;/li&gt;&lt;li&gt;Simplicity : Task decomposition needs to be complex enough to get the job done.&lt;/li&gt;&lt;/ul&gt;In a task based decomposition we look at the problem as a collection of distinct tasks paying particular attention to&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The actions that are carried out to solve the problem.&lt;/li&gt;&lt;li&gt;Whether these actions are distinct and relatively independent.&lt;/li&gt;&lt;/ul&gt;Tasks can be found in many different places.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Each task corresponds to a distinct call to a function defining a task for each function call... leads to what is called a functional decomposition.&lt;/li&gt;&lt;li&gt;Distinct iterations of the loops with in an algorithm.&lt;/li&gt;&lt;li&gt;A large data structure is decomposed and multiple units of execution concurrently update different chunks of the data structure. In this case the tasks are those updates on individual chunks.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; Matrix multiplication&lt;br /&gt;When we consider a multiplication of two matrices A and B(C=A.B). We can produce a task based decomposition by considering the calculation of each element of the product as a separate task. Each task needs to access to one row of A and one column of B. All tasks are independent. Also all the data that is shared among the tasks A and B is read-only. That mean an implementation of a shared memory environment.&lt;br /&gt;&lt;br /&gt;But this algorithm has a poor performance because the memory access time is slow compared to floating point arithmetic. Bandwidth of the memory subsystem would limit the performance.&lt;br /&gt;&lt;br /&gt;But we can design a algorithm that maximize the reuse of data loaded into a processor's caches. This can be achieved by two different ways.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Using the Group Tasks Pattern: tasks which use similar sort of elements are grouped and run on the same UE.&lt;/li&gt;&lt;li&gt;Data Decomposition: Design the algorithm from the beginning around the way the matrices fit into the caches.&lt;/li&gt;&lt;/ul&gt;Most of the cases we will use the Task decomposition with the conjunction of Group Tasks pattern and Data decomposition.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-502478475684964697?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/502478475684964697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/11/patterns-in-parallel-computing-task.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/502478475684964697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/502478475684964697'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/11/patterns-in-parallel-computing-task.html' title='Patterns in Parallel Computing - Task Decomposition Pattern in a nut shell'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-8573389514159023830</id><published>2009-11-01T13:42:00.003+05:30</published><updated>2009-11-01T14:48:37.769+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Unit of Execution'/><category scheme='http://www.blogger.com/atom/ns#' term='Deadlocks'/><category scheme='http://www.blogger.com/atom/ns#' term='Race conditions'/><category scheme='http://www.blogger.com/atom/ns#' term='Load balance'/><category scheme='http://www.blogger.com/atom/ns#' term='Processing element'/><category scheme='http://www.blogger.com/atom/ns#' term='Task'/><title type='text'>Jargon Used in Parallel computing</title><content type='html'>When we studying on the parallel computing there are set of terms that will we use frequently.In here I have listed some of the terms used in parallel computing...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Task&lt;/span&gt;: Task is a sequence of instructions that operate as a group ex:multiplication of sub elements in a matrices,inner products between rows and columns f the matrices or individual iterations of the loops involved in the matrix multiplication.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(UE)Unit of Execution:&lt;/span&gt;Generic term for one of a collection of possibly concurrently executing entities,usually either process or threads. A Task needs to be mapped to a UE such as a process or a thread. We can say that "thread" is the fundamental UE in modern operating systems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(PE)Processing element:&lt;/span&gt;Term for a hardware element that executes a stream of instructions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Load balance:&lt;/span&gt;How well the work is distributed among the PEs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Load balancing:&lt;/span&gt; process of allocating work to PEs,either statically or dynamically.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Synchronization:&lt;/span&gt;Task scheduling and other factors in parallel program can not be determine early. So Synchronization is use achieve the ordering of the task when is it necessary.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Race conditions:&lt;/span&gt; Is a result from errors in synchronization. Occurs when the outcome of a program changes as the relative scheduling of UEs varies. Because the scheduling of the UEs done by the OS. Race conditions are difficult to debug. Because its happens randomly. We can not reproduce as we want.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deadlocks:&lt;/span&gt;occurs when there is a cycle of task to in which each task is blocked waiting for another to proceed. Like wise every one will wait for each other forever.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-8573389514159023830?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/8573389514159023830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/11/jargon-used-in-parallel-computing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8573389514159023830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8573389514159023830'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/11/jargon-used-in-parallel-computing.html' title='Jargon Used in Parallel computing'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-107540830838134200</id><published>2009-07-06T23:12:00.005+05:30</published><updated>2009-07-06T23:20:57.588+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Core Programing'/><title type='text'>Purpose of the Multi-core programing tool kit for Java</title><content type='html'>Multiprocessor programming is one of the popular research areas developing in&lt;br /&gt;modern computer era. Even though modern computers come up with Multiprocessor facilities most of the current programming languages like Java do not have good supporting tools.&lt;br /&gt;      So the purpose of the project is to provide a tool kit which support multiprocessor programming for Java. When doing research for the project we had found some similar systems which provide multiprocessor programming support. Cilk is one of the systems which support the multiprocessor programming support for C language. Also TBB (Threading building blocks) is an API which supports multiprocessor programming for Java. But the main&lt;br /&gt;drawback of the above systems is that the developer must be aware of multiprocessor programming techniques.&lt;br /&gt;&lt;br /&gt;    From this “Multi-core programming tool kit for Java”, any developer who does not know about multiprocessor programming can enhance the quality of their code and make it run much faster. Our project aims to develop a tool-kit that would enable the programmer to identify sequential code segments that can be converted to harness the capabilities of a multi-core environment and would also optimize and convert the code such that parallel computing capabilities would be utilized. Also as a part of the tool-kit, the capability to convert traditional lock-based data structures into non-blocking (lock-free and wait-free) would be provided where such optimizations are possible. Also cache optimizations would be given. The plug-in would be developed for a java IDE that provides the above capabilities with other features such as performance analysis, code optimization and automatic code&lt;br /&gt;conversion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-107540830838134200?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/107540830838134200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/07/purpose-of-multi-core-programing-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/107540830838134200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/107540830838134200'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/07/purpose-of-multi-core-programing-tool.html' title='Purpose of the Multi-core programing tool kit for Java'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-2209011873128407576</id><published>2009-07-04T13:43:00.003+05:30</published><updated>2009-07-04T14:01:56.941+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='toolkit'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Core Programming'/><title type='text'>Multi-Core programming toolkit for Java</title><content type='html'>Multi-core programing is one of the biggest research area in modern computer era. Through this project I hope that our project team can contribute lot to the Java developers around the world. Currently we are working on the project proposal and doing the literature survey.&lt;br /&gt;Our team would like to thank Mr Krishan sir for giving this idea for our final year project. This project will touching the best areas of the computer science like Compiler theory,Concurrent and Parallel programing, Java Threading etc...&lt;br /&gt;So this will be a tremendous experience for all of us.&lt;br /&gt;&lt;br /&gt;Project members:&lt;br /&gt;Lasantha Fernando: Project leader&lt;br /&gt;Lahiru Suranga&lt;br /&gt;Madhavi Samaranayake&lt;br /&gt;Chathura Prabuddha Ganegoda.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-2209011873128407576?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/2209011873128407576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/07/multi-core-programming-toolkit-for-java.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/2209011873128407576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/2209011873128407576'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/07/multi-core-programming-toolkit-for-java.html' title='Multi-Core programming toolkit for Java'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-5346267805274648272</id><published>2009-05-08T14:03:00.000+05:30</published><updated>2009-05-08T14:04:59.325+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogger'/><category scheme='http://www.blogger.com/atom/ns#' term='Adscene'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>How to intgrate Adscene with your blogger</title><content type='html'>&lt;object width="640" height="505"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XwBsYuGrWo4&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/XwBsYuGrWo4&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-5346267805274648272?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/5346267805274648272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/05/how-to-intgrate-adscene-with-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/5346267805274648272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/5346267805274648272'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/05/how-to-intgrate-adscene-with-your.html' title='How to intgrate Adscene with your blogger'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-6269697211105954902</id><published>2009-05-07T19:47:00.008+05:30</published><updated>2009-05-07T20:07:35.690+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='archetype'/><title type='text'>How to create a simple Maven project</title><content type='html'>Execute the following command where you want to create the project.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;mvn archetype:create -DgroupId=com.yourcompany.app \-DartifactId=myApp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After you execute the command you will get directory structure like below&lt;br /&gt;src Directory contains all of the inputs required for building,documenting,testing and deploying the project&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_swOLNPM96kM/SgLvZaMRkJI/AAAAAAAAAFw/Tl3Z_A9tCDA/s1600-h/Untitled.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 240px; height: 320px;" src="http://3.bp.blogspot.com/_swOLNPM96kM/SgLvZaMRkJI/AAAAAAAAAFw/Tl3Z_A9tCDA/s320/Untitled.jpg" alt="" id="BLOGGER_PHOTO_ID_5333088128566661266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 255, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;click on the image to shrink.&lt;br /&gt;&lt;br /&gt;Good luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-6269697211105954902?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/6269697211105954902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/05/how-to-create-simple-maven-project.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/6269697211105954902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/6269697211105954902'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/05/how-to-create-simple-maven-project.html' title='How to create a simple Maven project'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_swOLNPM96kM/SgLvZaMRkJI/AAAAAAAAAFw/Tl3Z_A9tCDA/s72-c/Untitled.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-4453179480168622492</id><published>2009-05-07T19:23:00.003+05:30</published><updated>2009-05-07T19:29:35.932+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='principles'/><category scheme='http://www.blogger.com/atom/ns#' term='design'/><category scheme='http://www.blogger.com/atom/ns#' term='OOP'/><title type='text'>Design Principles</title><content type='html'>Hai...&lt;br /&gt;These are the most important design principles that we have to keep in mind when we doing the development.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Identify the aspects of your application that vary and separate them from what stays same&lt;/li&gt;&lt;li&gt;Program to an interface not an implementation&lt;/li&gt;&lt;li&gt;Favour composition over inheritence&lt;/li&gt;&lt;li&gt;Strive for looslycoupled designs between objects that interact&lt;/li&gt;&lt;li&gt;Classes should be open for extention close for modification&lt;/li&gt;&lt;li&gt;Depend upon abstractions.Do not depend upon concrete classes&lt;/li&gt;&lt;li&gt;Only talk to your friends (To maintain low level of coupling)&lt;/li&gt;&lt;li&gt;Don't call us we'll call you (Super classes runing the show)&lt;/li&gt;&lt;li&gt;A class should have only on reason to change&lt;/li&gt;&lt;/ul&gt;Good luck...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-4453179480168622492?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/4453179480168622492/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/05/design-principles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/4453179480168622492'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/4453179480168622492'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/05/design-principles.html' title='Design Principles'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-8594910012990442452</id><published>2009-04-27T10:09:00.002+05:30</published><updated>2009-04-28T22:12:50.892+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Component'/><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><title type='text'>Significance Of Component Base Architecture</title><content type='html'>Hai Friends&lt;br /&gt;I thought to share this presentation with you. I did this presentation as a gift to my Teamwork Java Team.&lt;br /&gt;click &lt;a href="http://www.xwiki.org/xwiki/bin/download/XWiki/ChathuraPrabuddha/SignificanceOfComponentBaseArchitecture.pdf"&gt;here&lt;/a&gt; to download it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-8594910012990442452?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/8594910012990442452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/04/significance-of-component-base.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8594910012990442452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8594910012990442452'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/04/significance-of-component-base.html' title='Significance Of Component Base Architecture'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-3204123401013173664</id><published>2009-04-27T00:24:00.010+05:30</published><updated>2009-05-06T00:31:42.140+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ganymade'/><category scheme='http://www.blogger.com/atom/ns#' term='Eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='JIRA'/><category scheme='http://www.blogger.com/atom/ns#' term='Patch'/><title type='text'>How to create a JIRA patch using Eclipse Ganymade</title><content type='html'>Hai...&lt;br /&gt;&lt;br /&gt;First you need to have &lt;a href="http://subclipse.tigris.org/servlets/ProjectProcess?pageID=p4wYuA"&gt;subclipse&lt;/a&gt; installed in your Eclipse Ganymade.&lt;br /&gt;Then check out the source code from the repository.&lt;br /&gt;After you worked on the JIRA issue, right click on the project root and select team.Then select the create patch. Then you will get three options. Based on your requirement select the option.&lt;br /&gt;&lt;br /&gt;This will do the differentiation with the original code base and generate the patch.txt. You will get a option to point the location that you want to save the patch.&lt;br /&gt;&lt;br /&gt;This is the easiest way to create the patches. &lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/oMgw4HJYdFQ&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/oMgw4HJYdFQ&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;So good luck.&lt;br /&gt;Happy coding...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-3204123401013173664?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/3204123401013173664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/04/how-to-create-jira-patch-using-eclipse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/3204123401013173664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/3204123401013173664'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/04/how-to-create-jira-patch-using-eclipse.html' title='How to create a JIRA patch using Eclipse Ganymade'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-2922362325613993186</id><published>2009-04-01T10:00:00.006+05:30</published><updated>2009-04-01T11:12:08.274+05:30</updated><title type='text'>How to release your stress....</title><content type='html'>For all the Gsocers&lt;br /&gt;&lt;br /&gt;Its normal that your a in a great stress when dealing with a world class company. The best thing you can do is to release you stress by talking to a great person you know.Specially a person having a MBA.&lt;br /&gt;because they can understand you in a minute.&lt;br /&gt;So calm down. Get a great guidence.&lt;br /&gt;Good luck.&lt;br /&gt;&lt;br /&gt;Special thanks to.&lt;br /&gt;Mr Gunasiri.&lt;br /&gt;CEO of the &lt;a href="http://www.teamwork.lk/"&gt;Teamwork Technology&lt;/a&gt;&lt;br /&gt;Sri Lanka.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-2922362325613993186?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/2922362325613993186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/04/how-to-release-your-stress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/2922362325613993186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/2922362325613993186'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/04/how-to-release-your-stress.html' title='How to release your stress....'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-5063329158081096207</id><published>2009-03-31T11:46:00.002+05:30</published><updated>2009-03-31T11:54:50.242+05:30</updated><title type='text'>Great Thoughts of Donald J Trump.....</title><content type='html'>&lt;ul&gt;&lt;li&gt;Be a General&lt;/li&gt;&lt;li&gt;Stay Focused&lt;/li&gt;&lt;li&gt;Maintain Your Momentum&lt;/li&gt;&lt;li&gt;Get a Great Assistance&lt;/li&gt;&lt;li&gt;Don't Equivocate&lt;/li&gt;&lt;li&gt;Every New Hire Is a Gamble&lt;/li&gt;&lt;li&gt;Ideas Are Welcome, but make sure You Have the Right One&lt;/li&gt;&lt;li&gt;Focus on the Talent instead of the Title&lt;/li&gt;&lt;li&gt;Manage the Person, Not the Job&lt;/li&gt;&lt;li&gt;Keep Your Door Open&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Think Big and Live Large&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Good luck...&lt;br /&gt;Just practice it as you can....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-5063329158081096207?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/5063329158081096207/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/great-thoughts-of-donald-j-trump.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/5063329158081096207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/5063329158081096207'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/great-thoughts-of-donald-j-trump.html' title='Great Thoughts of Donald J Trump.....'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-4972778639804381344</id><published>2009-03-30T01:38:00.006+05:30</published><updated>2009-04-28T22:14:45.558+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mockups'/><category scheme='http://www.blogger.com/atom/ns#' term='Xwiki'/><title type='text'>Xwiki Enterprise design Mockups......</title><content type='html'>Hai friends...&lt;br /&gt;&lt;br /&gt;This is the best thing to do. To get a good understanding about the data model of your application.&lt;br /&gt;Even If you not doing a Xwiki project UI is the best place to start.&lt;br /&gt;Any way with the component based architecture this is the best thing to do.....&lt;br /&gt;Ok you better have look at &lt;a href="http://incubator.myxwiki.org/xwiki/bin/view/Mockups/"&gt;this&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Then you can get my mockups from &lt;a href="http://www.xwiki.org/xwiki/bin/view/XWiki/ChathuraPrabuddha"&gt;here.&lt;/a&gt;&lt;br /&gt;This will give you some ideas  for your application.&lt;br /&gt;&lt;br /&gt;Good luck...&lt;br /&gt;Hope to give some introduction in component base architecture....&lt;br /&gt;&lt;br /&gt;Special thanks for Survey Application mentors:&lt;a href="http://www.xwiki.org/xwiki/bin/view/XWiki/LudovicDubost"&gt;Ludovic&lt;/a&gt;, Serigue&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-4972778639804381344?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/4972778639804381344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/xwiki-enterprise-design-mockups.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/4972778639804381344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/4972778639804381344'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/xwiki-enterprise-design-mockups.html' title='Xwiki Enterprise design Mockups......'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-8249173099247499669</id><published>2009-03-29T06:36:00.002+05:30</published><updated>2009-04-28T22:17:34.605+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Testing'/><title type='text'>SIGNIFICANCE TESTING</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;span style="font-family: verdana;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Null &amp;amp; Alternative Hypothesis&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;When making a statistical enquiry,we often put forward a hypothesis concerning a population parameter.For example.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The mean height of 15-year-old girls is 1.62&lt;/li&gt;&lt;li&gt;The proportion of left-handed people is 0.95&lt;/li&gt;&lt;/ul&gt;This hypothesis called the &lt;span style="font-weight: bold;"&gt;null hypothesis&lt;/span&gt; and is denoted by (H0)&lt;br /&gt;&lt;br /&gt;In order to test the validity of H0, we consider observations made from random samples taken from the population and perform a statistical test.&lt;br /&gt;If this test shows that we should reject null hypothesis,H0,we do so in favour of an alternative hypothesis,denoted by H1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-8249173099247499669?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/8249173099247499669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/significance-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8249173099247499669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8249173099247499669'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/significance-testing.html' title='SIGNIFICANCE TESTING'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-4325336943889379620</id><published>2009-03-28T15:09:00.003+05:30</published><updated>2009-04-28T22:15:37.818+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Todo'/><category scheme='http://www.blogger.com/atom/ns#' term='Xwiki'/><title type='text'>Abstraction Of The Xwiki Todo tutorial....in my view point</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_swOLNPM96kM/Sc3xRgNiljI/AAAAAAAAAAk/TySc7SdOS6E/s1600-h/Abstraction1.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 471px; height: 353px;" src="http://4.bp.blogspot.com/_swOLNPM96kM/Sc3xRgNiljI/AAAAAAAAAAk/TySc7SdOS6E/s400/Abstraction1.JPG" alt="" id="BLOGGER_PHOTO_ID_5318172018001221170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hai&lt;br /&gt;You better do the &lt;a href="http://www.theserverside.com/tt/articles/article.tss?l=XWiki"&gt;tutorial &lt;/a&gt;before studying this.&lt;br /&gt;Also give me feedback if I wrong...&lt;br /&gt;This is what I see......&lt;br /&gt;And sorry about my hand writing....&lt;br /&gt;&lt;br /&gt;Good luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-4325336943889379620?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/4325336943889379620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/abstraction-of-xwiki-todo-tutorialin-my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/4325336943889379620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/4325336943889379620'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/abstraction-of-xwiki-todo-tutorialin-my.html' title='Abstraction Of The Xwiki Todo tutorial....in my view point'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_swOLNPM96kM/Sc3xRgNiljI/AAAAAAAAAAk/TySc7SdOS6E/s72-c/Abstraction1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-7338255897936318787</id><published>2009-03-27T19:16:00.003+05:30</published><updated>2009-04-28T22:15:58.256+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Survey'/><title type='text'>Funtional Architecture Of The Xwiki Survey Application</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_swOLNPM96kM/SczZOtcbL9I/AAAAAAAAAAc/nI-Y54hOWY8/s1600-h/Figure3.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 242px;" src="http://4.bp.blogspot.com/_swOLNPM96kM/SczZOtcbL9I/AAAAAAAAAAc/nI-Y54hOWY8/s400/Figure3.JPG" alt="" id="BLOGGER_PHOTO_ID_5317864106757926866" border="0" /&gt;&lt;/a&gt;Hai  All The New Comers To FOSS &amp;amp; GSOC.....&lt;br /&gt;&lt;br /&gt;Ok If your a new comer to GSOC or FOSS like me I know your in a trouble thinking hard what to do for the this topic&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Please describe a tentative project architecture or an approach to it:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ok Xwiki has very good architecture.You will take some time to understand that. Best thing you can do try to build the functional architecture sort of thing while studying the Xwiki architecture.&lt;br /&gt;That will give a lots of confidence to you.&lt;br /&gt;&lt;br /&gt;Thank you.&lt;br /&gt;Good luck...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-7338255897936318787?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/7338255897936318787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/funtional-architecture-of-xwiki-survey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/7338255897936318787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/7338255897936318787'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/funtional-architecture-of-xwiki-survey.html' title='Funtional Architecture Of The Xwiki Survey Application'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_swOLNPM96kM/SczZOtcbL9I/AAAAAAAAAAc/nI-Y54hOWY8/s72-c/Figure3.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-8831994276455459754</id><published>2009-03-26T14:02:00.006+05:30</published><updated>2009-04-28T22:16:26.673+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='IRC'/><category scheme='http://www.blogger.com/atom/ns#' term='GSOC'/><title type='text'>How to Use IRC channel to make your GSOC projects success</title><content type='html'>This is what I had learned...&lt;br /&gt;Ok Guys Here We Go.............&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Try to be online at every time as you can.&lt;/li&gt;&lt;li&gt;Watch the chat discussions going on.&lt;/li&gt;&lt;li&gt;Wait for right moment to ask it.&lt;/li&gt;&lt;li&gt;If you have any question first do a google search.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Then try to ask it from a friend(GSOCER) not from a developer.&lt;/li&gt;&lt;li&gt;Then If you cant find the answer just ask them dont try to make the conversation too long because you are using the time of the others too....&lt;/li&gt;&lt;li&gt;If you are not hurry best thing to do is send a message to mail list.&lt;/li&gt;&lt;/ul&gt;Also this will be useful &lt;a href="http://catb.org/%7Eesr/faqs/smart-questions.html"&gt;too.....(Thank you Charith)&lt;/a&gt;&lt;br /&gt;Ok good luck for all the g soccers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-8831994276455459754?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/8831994276455459754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/how-to-use-irc-channel-to-make-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8831994276455459754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/8831994276455459754'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/how-to-use-irc-channel-to-make-your.html' title='How to Use IRC channel to make your GSOC projects success'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-1481297196086582210</id><published>2009-03-24T09:28:00.002+05:30</published><updated>2009-04-28T22:16:40.610+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><title type='text'>[FATAL ERROR] org.jvnet.jaxb2.maven2.XJC2Mojo#execute()</title><content type='html'>Ok&lt;br /&gt;&lt;br /&gt; I had faced lot of trouble while i building the Xwiki platform using maven version 2.0.9&lt;br /&gt;While running the build it gives me a&lt;br /&gt;[FATAL ERROR] org.jvnet.jaxb2.maven2.XJC2Mojo#execute()&lt;br /&gt;So I used the new version 2.1.0 of maven which has fixed this bug&lt;br /&gt;Make sure to properly install your mvn 2.1.o version&lt;br /&gt;&lt;br /&gt;good luck&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-1481297196086582210?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/1481297196086582210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/fatal-error-orgjvnetjaxb2maven2xjc2mojo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/1481297196086582210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/1481297196086582210'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/fatal-error-orgjvnetjaxb2maven2xjc2mojo.html' title='[FATAL ERROR] org.jvnet.jaxb2.maven2.XJC2Mojo#execute()'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-7806736458112818258</id><published>2009-03-24T09:23:00.003+05:30</published><updated>2009-04-28T22:16:51.348+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Maven'/><title type='text'>Increase Memory In Maven(Windows users..)</title><content type='html'>Configure your Environment Variables as follows&lt;br /&gt;&lt;br /&gt;Variable Name:&lt;em&gt;MAVEN_OPTS&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Variable Value&lt;/span&gt;:&lt;/em&gt;&lt;em&gt;-Xmx1024m&lt;/em&gt; &lt;em&gt;-XX:MaxPermSize=128m&lt;br /&gt;then simply build the application&lt;br /&gt;&lt;br /&gt;good luck....&lt;br /&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-7806736458112818258?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/7806736458112818258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/how-to-increase-amount-of-memory-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/7806736458112818258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/7806736458112818258'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/03/how-to-increase-amount-of-memory-in.html' title='Increase Memory In Maven(Windows users..)'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-1458480429406336206</id><published>2009-02-13T09:05:00.000+05:30</published><updated>2009-04-28T22:17:06.282+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Struts 2'/><title type='text'>How To Align Struts 2 Checkboxes Vertically</title><content type='html'>&lt;span style=";font-family:Verdana,Helvetica;font-size:85%;"  &gt; You Have to override the checkboxlist.ftl. There is a tag called &amp;lt;input type=""&amp;gt;wrap that tag with      &amp;lt;tr&amp;gt; &amp;lt;/tr&gt; tags.Then you can align the checkboxes verticaly. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-1458480429406336206?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/1458480429406336206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/02/how-to-align-struts-2-checkboxes.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/1458480429406336206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/1458480429406336206'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/02/how-to-align-struts-2-checkboxes.html' title='How To Align Struts 2 Checkboxes Vertically'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6557106330831665991.post-1910849640985984142</id><published>2009-02-13T07:20:00.000+05:30</published><updated>2009-04-28T22:17:17.002+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Struts 2'/><title type='text'>Checkbox list problem in Struts 2</title><content type='html'>&lt;div style="text-align: left; font-family: georgia;"&gt;I had faced a problem using &lt;s:checkboxlist&gt;s:checkboxList in a delete multiple entries from a table. But I was able to find a way to delete multiple rows in a table using s:checkbox &lt;s:checkbox&gt;. Only few steps you need to do.&lt;br /&gt;&lt;/s:checkbox&gt;&lt;/s:checkboxlist&gt;&lt;ul&gt;&lt;li&gt;First you have to create a list in the Action class.It has to be type of "String" list.Lets say I add  string array called "String[] &lt;span style="color: rgb(255, 0, 0);"&gt;userIds&lt;/span&gt;" and the getters and setters for it.&lt;/li&gt;&lt;li style="text-align: left;"&gt;Then how we can input list of checkboxes in to a table using struts 2.I used the &lt;span style="color: rgb(255, 0, 0);"&gt;"s:iterator&lt;s:iterator&gt;&lt;/s:iterator&gt;&lt;/span&gt;&lt;s:iterator&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; "&lt;/span&gt; tag for that&lt;/s:iterator&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;s:iterator&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;s:iterator value=" &lt;s:iterator value=" style=""&gt;You need a list for the "s:iterator" tag.In my case lets say &lt;span style="color: rgb(102, 255, 153);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;List&lt;"type"&gt; &lt;user&gt;users=New ArrayList&lt;"type"&gt;&lt;user&gt;();       &lt;/user&gt;&lt;/user&gt;&lt;/span&gt;      &lt;/span&gt; which has id,name,email,mobile... like properties.Then insert a check box inside a &lt;s:iterator&gt; tag.And your check box name has to be the name of the above string array name"&lt;span style="color: rgb(255, 0, 0);"&gt;userIds&lt;/span&gt;".Your code should look like this after that&lt;br /&gt;&lt;/s:iterator&gt;&lt;/s:iterator&gt;&lt;/s:iterator&gt;&lt;/li&gt;&lt;li style="text-align: left;"&gt;&lt;s:iterator&gt;&lt;s:iterator value=" &lt;s:iterator value=" style=""&gt;&lt;s:iterator&gt; &lt;/s:iterator&gt;&lt;/s:iterator&gt;&lt;/s:iterator&gt;s:iterator value=&lt;s:iterator&gt;&lt;s:iterator value=" &lt;s:iterator value=" style=""&gt;&lt;s:iterator&gt;                                                                                          &lt;s:iterator value="&lt;span style="&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;users&lt;/span&gt;" status="count"&gt;&lt;br /&gt;                         &lt;s:checkbox name="&lt;span style="&gt;userIds"  cssClass="checkboxSelect" fieldValue="%{getId()}"&lt;br /&gt;                                     theme="simple"/&gt;&lt;s:property value="name"&gt;&lt;/s:property&gt;&lt;/s:checkbox&gt;&lt;/s:iterator&gt;&lt;/s:iterator&gt;&lt;/s:iterator&gt;&lt;/s:iterator&gt;&lt;/li&gt;&lt;li&gt;Then I used a checkbox to select/deselect the list of check boxes in the table. I added the following check box in the column head&lt;/li&gt;&lt;li&gt;     &lt;div style="text-align: left;"&gt;  s:checkbox name="selectAll" cssClass="checkboxSelect" onclick="checkAllElements(document.deleteMultiple.selectAll);"theme="simple" "/&gt;"&lt;s:checkbox name="selectAll" cssclass="checkboxSelect" onclick="checkAllElements(document.deleteMultiple.selectAll);" theme="simple"&gt;&lt;/s:checkbox&gt;&lt;/div&gt;   &lt;/li&gt;&lt;li&gt;In here "deleteMultiple" is the name of the html form.&lt;/li&gt;&lt;li&gt;Then about the "onclick" function  you need a javascript to select all the checkboxes in the table rows.&lt;/li&gt;&lt;li&gt; "function checkAllElements(toggle) {&lt;br /&gt;       //checking all checkboxes in the data rows&lt;br /&gt;       var elements = document.getElementsByName("&lt;span style="color: rgb(255, 0, 0);"&gt;userIds&lt;/span&gt;");&lt;br /&gt;       if (elements &amp;amp;&amp;amp; elements.length &gt; 0) {&lt;br /&gt;           for (var i = 0; i &lt; checked =" toggle.checked;" headerelements =" document.getElementsByName("&gt; 0) {&lt;br /&gt;           for (var i = 0; i &lt; checked =" toggle.checked;"&gt;&lt;li&gt;Rest is upto you.....(action mapping and action implementation ex:add a delete button and submit the above form to delete rows.In struts xml map the action with the class and implemet the delete method according to your application)&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6557106330831665991-1910849640985984142?l=gacpganegoda.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gacpganegoda.blogspot.com/feeds/1910849640985984142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://gacpganegoda.blogspot.com/2009/02/checkbox-list-problem-in-struts-2.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/1910849640985984142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6557106330831665991/posts/default/1910849640985984142'/><link rel='alternate' type='text/html' href='http://gacpganegoda.blogspot.com/2009/02/checkbox-list-problem-in-struts-2.html' title='Checkbox list problem in Struts 2'/><author><name>Chathura Prabuddha Ganegoda</name><uri>http://www.blogger.com/profile/03230032631173494295</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://2.bp.blogspot.com/_swOLNPM96kM/TUt7q8Zxx6I/AAAAAAAAALg/OrBfWGDTVLY/s220/24328_376927587143_538167143_3906992_8333587_n.jpg'/></author><thr:total>1</thr:total></entry></feed>
