Hi Maxim,

Need your assistance in figuring out the whitboard synchronization logic.
Currently what we have is this.

   - WhiteboardBehaviour which can be applied in this format,

WhiteboardBehavior whiteboardBehavior=new WhiteboardBehavior("whiteboard");

   - When this is added to a page, all the whiteboard elements will be
   added to a Map. Each Creation,Update will effect on this collection
   - Using this kind of a JavaScript, we can add elements to a whiteboard.

elementCollection=whiteboard.getMainCollection();
elementCollection.acceptJsonStr('ChangedElementJSON');

   - Using this kind of a JavaScript, we can load a whiteboard using JSON
   string of all the elements

elementCollection=whiteboard.getMainCollection();
elementCollection.acceptJsonStr('elementLisyJSON');

In the current test application, I use two buttons to add elements to
whitebord and load whitebord from given JSON string.

My question is what is the best way to implement Whiteboard Synchronization
using these code in Wicket? I planned is this kind of approach,

   - 1st person open the Whiteboard
   - He is draws some elements and the element map in the
   WhiteboardBehaviour get update
   - 2nd person comes and open the whiteboard. The behavior found that
   element map(This should be a static collection) is not empty. Thus load the
   content of whiteboard using the element map. 3rd, 4th happens like that
   - When one person do a change in the whiteboard, element map wll be
   updated. Meanwhile all the other have to be pushed with the new change
   - There whiteboards get update with new change

If this is OK how can we push updates to clients form wicket server to
achieve 4th step? If you want to have a look a the current code, all are in
github.

Thanks!

On Sun, Jul 7, 2013 at 2:52 AM, Andun Sameera <[email protected]> wrote:

> Hi Maxim,
>
> I have created the WhiteboardBehaviour in
> https://github.com/andunslg/Whiteboard-Wicket. Also I have created JAVA
> objects to map elements in Andrey Whiteboard. Now each and every drawing on
> whiteboard are mapped in to a JAVA Object. Also other way around is
> happening. Also all the elements are kept in a MAP.
>
> I have implemented all these in the repo. Still the code is in a
> preliminary stage. But please have a look. There is a sample webapp in the
> repo.
>
> Thanks!
>
>
> On Sat, Jul 6, 2013 at 7:42 PM, Bogdanov Andrey <[email protected]> wrote:
>
>> Yes, you should be carefull with quotes and doublequotes. You could use
>> any of them, but if you use single quotes inside string, then you should
>> use doublequotes to enclose the string. And vise versa.
>>
>>
>> Суббота, 6 июля 2013, 18:31 +05:30 от Andun Sameera <[email protected]>:
>>
>>   Got it working with this,
>>
>> collection.acceptJsonStr('{"id": "0", "type": "PointFree", "x": "-530",
>> "y": "14"}')
>>
>> Thanks!
>>
>>
>> On Sat, Jul 6, 2013 at 6:22 PM, Andun Sameera 
>> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
>> > wrote:
>>
>> Sry for the previous mail!
>>
>>
>> Hi Andreay,
>>
>> Is this syntax correct to add a element to Whiteboard?
>>
>> var collection = whiteboard.collections.main;
>> collection.acceptJsonStr("{"
>> id": 0, "type": "PointFree", "x": -530, "y": 14}");
>>
>> I get this error in Firebug console,
>>
>> SyntaxError: missing ) after argument list
>>
>> Thanks!
>>
>>
>> On Sat, Jul 6, 2013 at 6:21 PM, Andun Sameera 
>> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
>> > wrote:
>>
>> Hi Andreay,
>>
>> Is this syntax correct to add a element to Whiteboard?
>>
>> collection.acceptJsonStr(
>>
>> collection.acceptJsonStr(
>>
>> collection.acceptJsonStr({collection.acceptJsonStr({collection.acceptJsonStr({
>>
>> var collection = whiteboard.collections.main;
>> collection.acceptJsonStr("{"id": 0, "type": "PointFree", "x": -530, "y":
>> 14}");
>>
>> I get this error in Firebug console,
>>
>> SyntaxError: missing ) after argument list
>>
>> Thanks!
>>
>>
>> On Sat, Jul 6, 2013 at 12:48 AM, Andun Sameera 
>> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
>> > wrote:
>>
>> I got the update and will work on creating the Java Objects.
>>
>> Thanks!
>>
>>
>> On Fri, Jul 5, 2013 at 10:40 PM, Bogdanov Andrey 
>> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
>> > wrote:
>>
>>  Hi Andun,
>>
>> Just now I pushed corrected version of whiteboard to the repo (
>> https://github.com/bay73/whiteboard.git ).
>> You could take it. I hope text element works well now.
>> Thanks for finding this bug.
>>
>> Regards,
>> Andrey
>>
>>
>> Пятница,  5 июля 2013, 3:08 +05:30 от Andun Sameera 
>> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
>> >:
>> >Hi Andrey,
>> >
>> >Currently I am in the process of Mapping Whiteboard Elements to  Java
>> Objects. There I noticed that Text fields are bit buggy. I have attached a
>> screen shot. When we draw a text box, we are shown a label. But I can find
>> a place to edit it. Also I tried with info tool. When I enter a text using
>> that, it overlaps as shown in screen shot. Is there a fault in my code ?
>> You can look at it in the git repo.
>> >
>> >Thanks!
>> >
>> >On Fri, Jul 5, 2013 at 2:10 AM, Andun Sameera  < 
>> >[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>
>> > wrote:
>> >>Hi All,
>> >>
>> >>I have create the  https://github.com/andunslg/Whiteboard-Wicket repo.
>> I have committed my POC code there and doing the development on that.
>> >>
>> >>Thanks!
>> >>
>> >>
>> >>On Thu, Jul 4, 2013 at 12:10 PM, Maxim Solodovnik  <
>> [email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>
>>  wrote:
>> >>>sure, please create git repo!
>> >>>
>> >>>instead of using Wicket.ajax.get you can use normal *AjaxBehavior you
>> can also create functions of it using getCallbackFunction.
>> >>>Old OM code had examples of that (was replaced with
>> wicketjquieryui-calendar)
>> >>>
>> >>>
>> >>>On Thu, Jul 4, 2013 at 3:45 AM, Andun Sameera  < 
>> >>>[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>
>> >>> wrote:
>> >>>>Hi All,
>> >>>>
>> >>>>I have successfully did a first step integration of Andrey's
>> whiteboard with Wicket. Now I can send the JSON string successfully to the
>> JAVA code. Now I know the way and will work on formalizing the thing!
>> >>>>
>> >>>>
>> >>>>@Andrey
>> >>>>
>> >>>>Can you give me a example to add a onChnage method to main
>> collection. I tried to do it. But is fails.
>> >>>>
>> >>>>@ Maxim
>> >>>>
>> >>>>Can I create a Git Repo for the task? Is it going to be a
>> wicket-jquery-UI plug-in ? or else ?
>> >>>>
>> >>>>Thanks!
>> >>>>
>> >>>>
>> >>>>On Wed, Jul 3, 2013 at 11:18 PM, Andun Sameera  < 
>> >>>>[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>
>> >>>> wrote:
>> >>>>>Hi Andrey,
>> >>>>>
>> >>>>>OK will do it like that!
>> >>>>>
>> >>>>>Thanks!
>> >>>>>
>> >>>>>
>> >>>>>On Wed, Jul 3, 2013 at 11:15 PM, Bogdanov Andrey  < 
>> >>>>>[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>> 
>> >>>>>wrote:
>> >>>>>> Hi Andun,
>> >>>>>>
>> >>>>>>Unfortunately I can't help you with wicket-ajax (I'm nit familiar
>> with wicket).
>> >>>>>>Only one remark about onChange - defining onChange for prototype is
>> not a good idea, because whiteboard use two auxilary collections which need
>> not to be synchronized. onChange function should be defined only for one
>> main collection.
>> >>>>>>
>> >>>>>>Regards,
>> >>>>>>Andrey
>> >>>>>>
>> >>>>>>
>> >>>>>>Среда,  3 июля 2013, 22:50 +05:30 от Andun Sameera <
>> [email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>:
>> >>>>>>>Hi,
>> >>>>>>>
>> >>>>>>>Considering the example which Andrey gave me early, I am planning
>> to do
>> >>>>>>>this,
>> >>>>>>>
>> >>>>>>>   - Using the method given below, we can get a JSON string for
>> any update
>> >>>>>>>   happen in Closure WhiteBoard
>> >>>>>>>
>> >>>>>>>// to be defined on using of collection
>> >>>>>>>bay.whiteboard.Collection.prototype.onChange = function(element){
>> >>>>>>>    alert(this.getJson(element));
>> >>>>>>>}
>> >>>>>>>
>> >>>>>>>   - I will do a Wicket.Ajax call in this JavaScript method to
>> send this
>> >>>>>>>   JSON string to the Server Side
>> >>>>>>>   - There I process the string and map it to Java Objects
>> >>>>>>>   - Then Synchronization happens
>> >>>>>>>
>> >>>>>>>As the initial step to do that, I am trying to implement a simple,
>> >>>>>>>application which can sent JavaScript Ajax calls to Wicket server.
>> I use
>> >>>>>>>this article
>> >>>>>>>
>> https://cwiki.apache.org/confluence/display/WICKET/Calling+Wicket+from+Javascript.
>> >>>>>>>I have created the application given below.
>> >>>>>>>
>> >>>>>>>public class HomePage extends WebPage {
>> >>>>>>>    private static final long serialVersionUID = 1L;
>> >>>>>>>
>> >>>>>>>    public HomePage(final PageParameters parameters) {
>> >>>>>>>        super(parameters);
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>        final AbstractDefaultAjaxBehavior behave = new
>> >>>>>>>AbstractDefaultAjaxBehavior() {
>> >>>>>>>            protected void respond(final AjaxRequestTarget target)
>> {
>> >>>>>>>                target.add(new Label("foo", "Yeah I was just
>> called from
>> >>>>>>>Javascript!"));
>> >>>>>>>            }
>> >>>>>>>
>> >>>>>>>            public void renderHead(Component
>> component,IHeaderResponse
>> >>>>>>>response){
>> >>>>>>>
>> >>>>>>>                String componentMarkupId = component.getMarkupId();
>> >>>>>>>                String callbackUrl = getCallbackUrl().toString();
>> >>>>>>>
>> >>>>>>>                response.render(
>> >>>>>>>JavaScriptHeaderItem.forScript("var
>> >>>>>>>componentMarkupId='"+componentMarkupId+"'; var
>> >>>>>>>callbackUrl='"+callbackUrl+"';","values"));
>> >>>>>>>            }
>> >>>>>>>        };
>> >>>>>>>
>> >>>>>>>        add(behave);
>> >>>>>>>
>> >>>>>>>    }
>> >>>>>>>
>> >>>>>>>}
>> >>>>>>>
>> >>>>>>>and my HomePage.html,
>> >>>>>>>
>> >>>>>>><!DOCTYPE HTML>
>> >>>>>>><html>
>> >>>>>>><body>
>> >>>>>>><script src="
>> http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js
>> >>>>>>>"></script>
>> >>>>>>><script type="text/javascript">
>> >>>>>>>    $(function() {
>> >>>>>>>        var wcall = Wicket.Ajax.get({ u: '${callbackUrl}' + '' });
>> >>>>>>>        alert(wcall);
>> >>>>>>>    });
>> >>>>>>></script>
>> >>>>>>></body>
>> >>>>>>></html>
>> >>>>>>>
>> >>>>>>>Still I cant get this to a working position. When I start this
>> application,
>> >>>>>>>wicket-ajax.js file is not loading. Thus console gives following
>> error,
>> >>>>>>>
>> >>>>>>>ReferenceError: Wicket is not defined
>> >>>>>>>[Break On This Error]
>> >>>>>>>
>> >>>>>>>var wcall = Wicket.Ajax.get({ u: '${callbackUrl}' + '' });
>> >>>>>>>
>> >>>>>>>Still cant find why wicket-ajax is not loaded to my application.
>> Will let
>> >>>>>>>you know further updates!
>> >>>>>>>
>> >>>>>>>Thanks!
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>On Tue, Jul 2, 2013 at 2:08 PM, Andun Sameera <
>> [email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>
>>  wrote:
>> >>>>>>>
>> >>>>>>>> OK Maxim. Will do it like that!
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> On Tue, Jul 2, 2013 at 2:05 PM, Maxim Solodovnik <
>> [email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>wrote:
>> >>>>>>>>
>> >>>>>>>>> I would totally disagree with
>> >>>>>>>>> "At the Wicket Java code we save these elements as Java Objecst
>> which
>> >>>>>>>>> contains the JSON strings."
>> >>>>>>>>>
>> >>>>>>>>> Java objects should contain normal fields like "Point center;
>> int
>> >>>>>>>>> radius;" and be (de)serialized (from)into JSON if necessary.
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>  On Tue, Jul 2, 2013 at 2:27 PM, Andun Sameera <
>> [email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>>wrote:
>> >>>>>>>>>
>> >>>>>>>>>> Hi Andrey,
>> >>>>>>>>>>
>> >>>>>>>>>> Great! If you can give me a example for,
>> >>>>>>>>>>
>> >>>>>>>>>> collection.onChange(element)
>> >>>>>>>>>>
>> >>>>>>>>>> it will be highly appreciated.
>> >>>>>>>>>>
>> >>>>>>>>>> @Maxim,
>> >>>>>>>>>>
>> >>>>>>>>>> After some thinking I cam across of this idea. Please correct
>> me If I am
>> >>>>>>>>>> wrong.
>> >>>>>>>>>>
>> >>>>>>>>>>    - All the whiteboard elements can be represented as JSON
>> strings
>> >>>>>>>>>>    (Have to find a way to add PDF,DOCs, Pictures to whiteboard
>> in this way)
>> >>>>>>>>>>    - At the Wicket Java code we save these elements as Java
>> Objecst
>> >>>>>>>>>>    which contains the JSON strings.
>> >>>>>>>>>>    - To synchronize white board we can send these object to
>> all the
>> >>>>>>>>>>    viewers.
>> >>>>>>>>>>    - To save/load we can use this already implemented JSON
>> based
>> >>>>>>>>>>    serialization and de-serialization.
>> >>>>>>>>>>
>> >>>>>>>>>> But have to find ways to get all these data from closure
>> implementation
>> >>>>>>>>>> to wicket!
>> >>>>>>>>>>
>> >>>>>>>>>> Thanks!
>> >>>>>>>>>> On Tue, Jul 2, 2013 at 11:28 AM, Bogdanov Andrey <
>> [email protected] <https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>> 
>> wrote:
>> >>>>>>>>>>
>> >>>>>>>>>>> Hi Andun,
>> >>>>>>>>>>>
>> >>>>>>>>>>> Whiteboard consists of two main objects: ui-component
>> >>>>>>>>>>> "bay.whiteboard.Whiteboard", which contains functionality for
>> user
>> >>>>>>>>>>> interaction and collections of objects
>> "bay.whiteboard.Collection" which
>> >>>>>>>>>>> contains list of objects and some stuff to manipulate them.
>> >>>>>>>>>>> After createing WB with
>> >>>>>>>>>>>    whiteboard = bay.whiteboard.Create();
>> >>>>>>>>>>> you could access to collection as
>> >>>>>>>>>>>   collection = whiteboard.collections.main; or
>> >>>>>>>>>>>   collection = whiteboard.getMainCollection(); - i've just
>> added this
>> >>>>>>>>>>> method
>> >>>>>>>>>>>
>> >>>>>>>>>>> After that you could define
>> >>>>>>>>>>>    collection.onChange(element) - method wich will be invoked
>> every
>> >>>>>>>>>>> time when some drawing elements add or change.
>> >>>>>>>>>>> Also you could use methods:
>> >>>>>>>>>>>     collection.getJson(element); -  to obtain json code for
>> an element
>> >>>>>>>>>>>      collection.jsonCode();   -  to obtain json code for whole
>> >>>>>>>>>>> collection
>> >>>>>>>>>>>      collection.acceptJsonStr(str); -  to add or change one
>> element
>> >>>>>>>>>>> described as json
>> >>>>>>>>>>>      collection.parseJson(str); -  to rebuild all from the
>> given json
>> >>>>>>>>>>> string
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>> As an example you could explore linkWebSocket method in
>> ui.js, which
>> >>>>>>>>>>> allows synchronize wb-content through webSocket
>> >>>>>>>>>>>
>> >>>>>>>>>>> Regards,
>> >>>>>>>>>>> Andrey Bogdanov
>> >>>>>>>>>>>
>> >>>>>>>>>>> Вторник, 2 июля 2013, 1:25 +05:30 от Andun Sameera <
>> [email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
>> >>>>>>>>>>> >:
>> >>>>>>>>>>>
>> >>>>>>>>>>>   Hi Andrey,
>> >>>>>>>>>>>
>> >>>>>>>>>>> I am moving in to this new thread to discuss about the
>> clarifications,
>> >>>>>>>>>>> improvements and integration of your Whiteboard to wicket. I
>> have looked at
>> >>>>>>>>>>> your code which can be found
>> https://github.com/bay73/whiteboard . I
>> >>>>>>>>>>> have following questions,
>> >>>>>>>>>>>
>> >>>>>>>>>>>    - In Wicket, I want map Whiteboard Elements(Rectangle,
>> Circle,
>> >>>>>>>>>>>    Text, etc.) to Java objects.
>> >>>>>>>>>>>    - Thus we can send those object to all the Whiteboard
>> viewers.
>> >>>>>>>>>>>    - Using these objects there Whiteboards will be updated.
>> >>>>>>>>>>>    - To do that, can I get some data from your code? which
>> can be
>> >>>>>>>>>>>    later used to create elements. I saw there is a
>> serialization methods and
>> >>>>>>>>>>>    deserilization method in base.js. If we can extend that
>> mechanism to give
>> >>>>>>>>>>>    some data when element is drawn or edited as an event, I
>> can use them to
>> >>>>>>>>>>>    create Java objects.
>> >>>>>>>>>>>    - Also there should be a mechanism to draw elements on your
>> >>>>>>>>>>>    Whiteboard by passing those data.
>> >>>>>>>>>>>
>> >>>>>>>>>>> Can we do these things?
>> >>>>>>>>>>>
>> >>>>>>>>>>> Thanks!
>> >>>>>>>>>>> --
>> >>>>>>>>>>> Regards
>> >>>>>>>>>>> Andun S.L. Gunawardana
>> >>>>>>>>>>> Undergraduate
>> >>>>>>>>>>> Department of Computer Science And Engineering
>> >>>>>>>>>>> University of Moratuwa
>> >>>>>>>>>>> Sri Lanka
>> >>>>>>>>>>>
>> >>>>>>>>>>> Blog -   http://www.insightforfuture.blogspot.com/
>> >>>>>>>>>>> LinkedIn -
>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >>>>>>>>>>> Twitter -  http://twitter.com/AndunSLG
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>> --
>> >>>>>>>>>>> Андрей Богданов
>> >>>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>> --
>> >>>>>>>>>> Regards
>> >>>>>>>>>> Andun S.L. Gunawardana
>> >>>>>>>>>> Undergraduate
>> >>>>>>>>>> Department of Computer Science And Engineering
>> >>>>>>>>>> University of Moratuwa
>> >>>>>>>>>> Sri Lanka
>> >>>>>>>>>>
>> >>>>>>>>>> Blog -   http://www.insightforfuture.blogspot.com/
>> >>>>>>>>>> LinkedIn -
>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >>>>>>>>>> Twitter -  http://twitter.com/AndunSLG
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> --
>> >>>>>>>>> WBR
>> >>>>>>>>> Maxim aka solomax
>> >>>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>> --
>> >>>>>>>> Regards
>> >>>>>>>> Andun S.L. Gunawardana
>> >>>>>>>> Undergraduate
>> >>>>>>>> Department of Computer Science And Engineering
>> >>>>>>>> University of Moratuwa
>> >>>>>>>> Sri Lanka
>> >>>>>>>>
>> >>>>>>>> Blog -   http://www.insightforfuture.blogspot.com/
>> >>>>>>>> LinkedIn -
>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >>>>>>>> Twitter -  http://twitter.com/AndunSLG
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>--
>> >>>>>>>Regards
>> >>>>>>>Andun S.L. Gunawardana
>> >>>>>>>Undergraduate
>> >>>>>>>Department of Computer Science And Engineering
>> >>>>>>>University of Moratuwa
>> >>>>>>>Sri Lanka
>> >>>>>>>
>> >>>>>>>Blog -   http://www.insightforfuture.blogspot.com/
>> >>>>>>>LinkedIn -
>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >>>>>>>Twitter -  http://twitter.com/AndunSLG
>> >>>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>--
>> >>>>>>Андрей Богданов
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>--
>> >>>>>Regards
>> >>>>>Andun S.L. Gunawardana
>> >>>>>Undergraduate
>> >>>>>Department of Computer Science And Engineering
>> >>>>>University of Moratuwa
>> >>>>>Sri Lanka
>> >>>>>
>> >>>>>Blog -  http://www.insightforfuture.blogspot.com/
>> >>>>>LinkedIn -
>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >>>>>Twitter - http://twitter.com/AndunSLG
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>>--
>> >>>>Regards
>> >>>>Andun S.L. Gunawardana
>> >>>>Undergraduate
>> >>>>Department of Computer Science And Engineering
>> >>>>University of Moratuwa
>> >>>>Sri Lanka
>> >>>>
>> >>>>Blog -  http://www.insightforfuture.blogspot.com/
>> >>>>LinkedIn -
>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >>>>Twitter - http://twitter.com/AndunSLG
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>
>> >>>
>> >>>--
>> >>>WBR
>> >>>Maxim aka solomax
>> >>
>> >>
>> >>--
>> >>Regards
>> >>Andun S.L. Gunawardana
>> >>Undergraduate
>> >>Department of Computer Science And Engineering
>> >>University of Moratuwa
>> >>Sri Lanka
>> >>
>> >>Blog -  http://www.insightforfuture.blogspot.com/
>> >>LinkedIn -
>> http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >>Twitter - http://twitter.com/AndunSLG
>> >>
>> >>
>> >>
>> >>
>> >
>> >
>> >--
>> >Regards
>> >Andun S.L. Gunawardana
>> >Undergraduate
>> >Department of Computer Science And Engineering
>> >University of Moratuwa
>> >Sri Lanka
>> >
>> >Blog -  http://www.insightforfuture.blogspot.com/
>> >LinkedIn -  http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> >Twitter - http://twitter.com/AndunSLG
>> >
>> >
>> >
>> >
>>
>> --
>> Андрей Богданов
>>
>>
>>
>>
>> --
>> Regards
>> Andun S.L. Gunawardana
>> Undergraduate
>> Department of Computer Science And Engineering
>> University of Moratuwa
>> Sri Lanka
>>
>> Blog - http://www.insightforfuture.blogspot.com/
>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> Twitter -http://twitter.com/AndunSLG
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> Regards
>> Andun S.L. Gunawardana
>> Undergraduate
>> Department of Computer Science And Engineering
>> University of Moratuwa
>> Sri Lanka
>>
>> Blog - http://www.insightforfuture.blogspot.com/
>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> Twitter -http://twitter.com/AndunSLG
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> Regards
>> Andun S.L. Gunawardana
>> Undergraduate
>> Department of Computer Science And Engineering
>> University of Moratuwa
>> Sri Lanka
>>
>> Blog - http://www.insightforfuture.blogspot.com/
>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> Twitter -http://twitter.com/AndunSLG
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> Regards
>> Andun S.L. Gunawardana
>> Undergraduate
>> Department of Computer Science And Engineering
>> University of Moratuwa
>> Sri Lanka
>>
>> Blog - http://www.insightforfuture.blogspot.com/
>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
>> Twitter -http://twitter.com/AndunSLG
>>
>>
>>
>>
>>
>>
>>
>> --
>> Андрей Богданов
>>
>
>
>
> --
> Regards
> Andun S.L. Gunawardana
> Undergraduate
> Department of Computer Science And Engineering
> University of Moratuwa
> Sri Lanka
>
> Blog - http://www.insightforfuture.blogspot.com/
> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
> Twitter -http://twitter.com/AndunSLG
>
>
>
>
>



-- 
Regards
Andun S.L. Gunawardana
Undergraduate
Department of Computer Science And Engineering
University of Moratuwa
Sri Lanka

Blog - http://www.insightforfuture.blogspot.com/
LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703
Twitter -http://twitter.com/AndunSLG

Reply via email to