tag:blogger.com,1999:blog-372722652024-03-14T09:46:30.627+05:30dinesh WijekoonDinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.comBlogger57125tag:blogger.com,1999:blog-37272265.post-89216745995524487972016-10-11T20:46:00.001+05:302016-10-11T20:47:32.660+05:30How to stop "Docker maven builds" downloading the whole maven repository everytime<div dir="ltr" style="text-align: left;" trbidi="on">
When you google for this problem you can find different answers with different types of mounting of m2 folder. But if you are planing to mount your local m2 folder into Docker that is not really a very clean solution. The problem with that is the Docker build you are planing can be biased based on your local builds you have.<br />
<br />
So I asked the question in <a href="http://stackoverflow.com/questions/39977955/how-to-mount-docker-volume-into-my-docker-project-using-compose" target="_blank">stackoverflow</a> and here is docker-compose.yml of my final working solution<br />
<br />
version: '2'<br />
services:<br />
client:<br />
build: .<br />
container_name: client<br />
volumes:<br />
- m2repo:/root/.m2/repository<br />
volumes:<br />
m2repo:<br />
<br />
Now when you run the system for the 2nd time, it will not load the maven content form the internet spending hours downloading them.<br />
<br /></div>
Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com1tag:blogger.com,1999:blog-37272265.post-7956237197417264352015-11-15T21:58:00.000+05:302015-11-15T21:59:05.331+05:30Stubbing a method with Class<?> field<div dir="ltr" style="text-align: left;" trbidi="on">
Consider the scenario where you have to stub a method using when. In a case where parameter is a class not an object then the Matchers.any will not help in that case. Following is the code to be tested and <b>one wrong way</b> of stubbing.
<pre class="java" name="code">
// code to be tested
Long primaryKey = 12345L;
final App app = getEntityManager().find(App.class, primaryKey);
// stubbing the find method
when(em.find(Matchers.any(Class.class), Matchers.same(primaryKey)))
.thenReturn(app);
</pre>
Instead of using Matchers.any we should use Matchers.isA as the way of stubbing. Following is correct way of stubbing in this setup.
<pre class="java" name="code">
when(em.find((Class<app>) Matchers.isA(Class.class), Matchers.same(primaryKey)))
.thenReturn(app);
</pre>
The original answer was found on <a href="http://stackoverflow.com/questions/7500312/mockito-match-any-class-argument">stackoverflow</a>.
</div>
Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-87545414146633672242015-10-07T01:41:00.002+05:302015-10-07T12:39:03.788+05:30A Better String Formatter for Java <div dir="ltr" style="text-align: left;" trbidi="on">
After looking into String format techniques used in current Java implementation I found some interesting article about perfromace related in <a href="http://stackoverflow.com/questions/925423/is-it-better-practice-to-use-string-format-over-string-concatenation-in-java" target="_blank">stackoverflow</a>. Then I started checking out a better way to still use the same method type as string format since its cleaner and readable. Following is the code benchmark code (partly taken from stackoverflow link).
<br />
<pre class="java" name="code">
public static void main(String[] args) throws Exception {
final int ITERATION_COUNT = 10000000;
// contact using plus
long start = System.currentTimeMillis();
for( int i=0;i<ITERATION_COUNT; i++){
String s = "Hi " + i + "; Hi to you " + i*2;
}
long end = System.currentTimeMillis();
System.out.println("Concatenation = " + ((end - start)) + " millisecond") ;
// concat using string format
start = System.currentTimeMillis();
for( int i=0;i<ITERATION_COUNT; i++){
String s = String.format( "Hi %s; Hi to you %s",i, + i*2);
}
end = System.currentTimeMillis();
System.out.println("Format = " + ((end - start)) + " millisecond");
// concat using string builder
start = System.currentTimeMillis();
for( int i=0;i<ITERATION_COUNT; i++){
String s = new StringBuilder("Hi ").append(i)
.append("; Hi to you ").append(i*2).toString();
}
end = System.currentTimeMillis();
System.out.println("StringBuilder = " + ((end - start)) + " millisecond");
// fancy formatter
start = System.currentTimeMillis();
// Send all output to the Appendable object sb
for( int i=0;i<ITERATION_COUNT; i++){
StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb, Locale.US);
String s = formatter.format("Hi %s; Hi to you %s", i, + i*2).toString();
}
end = System.currentTimeMillis();
System.out.println("Formatter = " + ((end - start)) + " millisecond");
// concat using my-format
start = System.currentTimeMillis();
for( int i=0;i<ITERATION_COUNT; i++){
String s = myFormat( "Hi %s; Hi to you %s",i, (i*2));
}
end = System.currentTimeMillis();
System.out.println("My = " + ((end - start)) + " millisecond");
}
</pre>
And following are the results after iterating over 10000000 times.
<ul style="text-align: left;">
<li>Concatenation = 740 millisecond</li>
<li>Format = 9942 millisecond</li>
<li>StringBuilder = 540 millisecond</li>
<li>Formatter = 9586 millisecond</li>
<li>MyFormatter = 2078 millisecond (almost 5 times better than other formatters)</li>
</ul>
And following is the code for MyFormat method
<pre class="java" name="code">
public static String myFormat(String string, Object... objects) {
StringBuilder result = new StringBuilder();
boolean previousWasPercentage = false;
int i = 0;
for (char c : string.toCharArray()) {
if (c == '%') {
previousWasPercentage = true;
continue;
}
if (previousWasPercentage){
previousWasPercentage = false;
if ( c == 's') {
result.append(objects[i]);
i++;
continue;
} else {
result.append("%").append(c);
continue;
}
}
result.append(c);
}
return result.toString();
}
</pre>
</div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com2tag:blogger.com,1999:blog-37272265.post-41829022443970255242014-09-30T12:55:00.003+05:302015-10-07T01:35:13.795+05:30How to fetch all results from DynamoDBDynamo DB simple scan will not give you all the results.<br />
<br />
<br />
<pre class="java" name="code">
scanTable(List attributesToGet) {
List<> allRows = new LinkedList<>();
ScanResult result = null;
do{
ScanRequest scanRequest = new ScanRequest().withTableName(this.tableName).withAttributesToGet(attributesToGet);
if(result != null){
scanRequest.setExclusiveStartKey(result.getLastEvaluatedKey());
}
long time = System.currentTimeMillis();
result = this.client.scan(scanRequest);
allRows.addAll(result.getItems());
log.info("scan in: " + (System.currentTimeMillis() - time) + " ms");
} while(result.getLastEvaluatedKey() != null);
return allRows;
}
</pre>
Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com1tag:blogger.com,1999:blog-37272265.post-10250739822352557542012-06-06T15:09:00.001+05:302012-09-16T00:58:56.459+05:30Change Language of an Entire PPT presentation<div dir="ltr" style="text-align: left;" trbidi="on">Here goes the macro code where you can convert the language of PPT presentation into UK English. I found this code from <a href="http://www.proz.com/forum/office_applications/34774-set_language_in_entire_ppt_presentation.html" target="_blank">here</a>.<br />
<br />
<pre class="vb" name="code">Sub LangInFrames()
scount = ActivePresentation.Slides.Count
For j = 1 To scount
fcount = ActivePresentation.Slides(j).Shapes.Count
For k = 1 To fcount
If ActivePresentation.Slides(j).Shapes(k).HasTextFrame Then
ActivePresentation.Slides(j).Shapes(k).TextFrame.TextRange _
.LanguageID = msoLanguageIDEnglishUK
End If
Next k
Next j
End Sub
</pre></div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-12086990079850966082012-03-14T17:15:00.003+05:302012-09-11T15:56:01.684+05:30How to create your Database in an accessible folder in Android<div dir="ltr" style="text-align: left;" trbidi="on">When you run your codes in Android, you really cant access the DB files created automatically inside Android. So here is how to save it on your SDcard.<br />
<br />
Override the following method in your <b><i>activity</i></b> class.<br />
<pre class="java" name="code">@Override
public SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory){
File externalFilesDir = Environment.getExternalStorageDirectory();
if(externalFilesDir == null)
return null;
File dbFile = new File(externalFilesDir, DBConstant.DATABASE_NAME);
return SQLiteDatabase.openDatabase(dbFile.getAbsolutePath(), null, SQLiteDatabase.CREATE_IF_NECESSARY);
</pre><br />
Now you are good to go. I used SQLiteOpenHelper to manage my insertion of data. What i did can found below. You change it for your use.<br />
<br />
<pre class="java" name="code">public class MyDataHelper extends SQLiteOpenHelper{
private static final String DATABASE_NAME = "events.db" ;
private static final int DATABASE_VERSION = 1;
/** Create a helper object for the Events database */
public DBgpsDataHelper(Context ctx) {
super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
TIME + " INTEGER, " + ");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}
</pre><br />
Enjoy!</div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-33006918752093892912011-10-06T15:22:00.005+05:302011-10-06T17:52:15.102+05:30Great Role model of Our Generation<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-IdLQGwnrVUI/To16LPnEOpI/AAAAAAAAHYE/AH9vo8C6p8c/s1600/steavejobs.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="http://2.bp.blogspot.com/-IdLQGwnrVUI/To16LPnEOpI/AAAAAAAAHYE/AH9vo8C6p8c/s400/steavejobs.png" width="400" /></a></div><span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, FreeSans, sans-serif;"><span class="Apple-style-span" style="font-size: 12px; line-height: 15px;"><br />
</span></span></div>No one wants to die. Even people who want to go to heaven don't want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life's change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true. ~ Steve Jobs</div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-23094472587594458072011-10-02T00:32:00.000+05:302011-10-02T00:32:04.567+05:30Greek Holiday<div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div dir="ltr" style="text-align: left;" trbidi="on"><div class="separator" style="clear: both; text-align: left;">At the end of the "Finnish" summer we had our summer vacation in Greece. The time we arrived to Greece was pretty nice with temperature of around 32C. This summer holiday was my first summer vacation and in previous years we ( me and my wife ) were traveling mostly in winter. It was always good to leave Finland in winter since it is really cold in here, but we realized that the destination will be much nicer if we travel in summer.</div><br />
We first arrived to Athens air port and then took a bus to Piraeus sea port where we had our first stop. We booked a hotel very close to the port since we had to get into the ship early in the morning. The plan was to take the ferry from main land to island Santorini and then to Milos. Finally to come back to the main land.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-MpaYXGZJ1EQ/TnORj4dnxuI/AAAAAAAAHTk/cN7FqDdMvOc/s1600/greeceMap.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="244" src="http://2.bp.blogspot.com/-MpaYXGZJ1EQ/TnORj4dnxuI/AAAAAAAAHTk/cN7FqDdMvOc/s320/greeceMap.png" width="320" /></a></div><div class="separator" style="clear: both; text-align: left;">On the first day of the trip we booked a hotel close to Pieraus sea port. Later in the evening we took a metro to Athens to visit Acropolis. The people (Greek people) we met in the metro (not only metro) were really nice and advised us about thieves. They informed us to take care of our belongings especially camera and vollets when traveling in dense areas. And another girl helped us with direction to the destination. Getting to the top of the Aceopolice was a very nice experience. It was not only because of the great architecture but also the fabulous view of the city. Luckily our timing was really great. We had the opportunity to listen to some greek music (since some music band was practicing for that nights event). Finally we stayed at Acropolis till the sunset and retured back to hotel. The food cost just the same as in many Europian countries. Not that cheap at all. But worth the price.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Day 2: Early next morning we boarded the ferry heading toward Santorini. Small piece of advice, if you are travelling in the day time and in summer you really don't need a cabin. Outside deck of the ship gives you a wonderful view all through out the jouney. The ferry we booked was quite cheaper but it took around 9 hrs to get to Santorini from main land. </div><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-s-V4V48qfSE/Tn0U0LMmTtI/AAAAAAAAHV8/XFIg-DlbAx0/s1600/DSC_0260.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="http://2.bp.blogspot.com/-s-V4V48qfSE/Tn0U0LMmTtI/AAAAAAAAHV8/XFIg-DlbAx0/s400/DSC_0260.JPG" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;">After passing many islands finally the ferry reached Santorini (Thira) port around 4.30 in the evening. The island was built in such a way that there steep mountains all around it. After getting down at the port we started searching for a bus to go to Fira (main city in Santorini). Unfortunately buses leave only in every 1.5 hours. Then we shared a taxi to Fira with another traveler. It costed around Euro 17. </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">By the time we reached our hotel <a href="http://www.tripadvisor.com/Hotel_Review-g635607-d293347-Reviews-Villa_Ilias-Firostefani_Santorini_Cyclades.html">Villa Ilias</a>, we were really tired. The walk from Fira to Firastephani (That's where Villa Ilias) is a short but we felt it was very long since it was our first time there. There is a little pool in the hotel and the first thing we did was dipping in the water. That soothed the tired bodies. The view from the room was magnificent. It was one of the most beautiful things I've ever seen. That evening after dinner we walked to the Fira town and enjoyed the evening shopping around. Path to Fira is lovely. In the evening it got little mistier and bit chilly. But I enjoyed it.</div><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-spUNQuMFlJQ/Tn0XU3BcOKI/AAAAAAAAHWA/RtEB_qpGtwo/s1600/DSC_0356.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="http://2.bp.blogspot.com/-spUNQuMFlJQ/Tn0XU3BcOKI/AAAAAAAAHWA/RtEB_qpGtwo/s400/DSC_0356.JPG" width="400" /></a></div><div class="separator" style="clear: both; text-align: left;">The hotel staff was good, breakfast was great and view was superb. </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;"></div><div class="separator" style="clear: both; text-align: left;">Day 3: We started our third day with a very fresh and filling breakfast. We planned to spend this day travelling around the Island. The first thing we did was renting a motorcycle. Not really a 2 wheel bike we ended up renting a 4 wheel desert rider. The renting places gave the maps and the good thing is there is nothing much know about the roads. There are very few main roads. In many of those junctions you can find sign boards with information. You can also get a clue by observing the paths other travelers taking. </div><div class="separator" style="clear: both; text-align: left;"></div><table border="0" style="text-align: center;"><tbody>
<tr> <td><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-6OxiriDP8T0/TnORrZ64EkI/AAAAAAAAHTs/b3pmHqcxTMk/s1600/PICT5514.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-6OxiriDP8T0/TnORrZ64EkI/AAAAAAAAHTs/b3pmHqcxTMk/s200/PICT5514.JPG" width="185" /></a></div><div style="text-align: center;">Map of Santorini</div></td><td><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-e6sAwVb7p1s/Tn0dcXu4ctI/AAAAAAAAHWE/1na3grFGCWw/s1600/DSC_0483.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="http://2.bp.blogspot.com/-e6sAwVb7p1s/Tn0dcXu4ctI/AAAAAAAAHWE/1na3grFGCWw/s200/DSC_0483.JPG" width="200" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;">Perissa (Black Sand) Beach</div><div style="text-align: center;"></div></td> </tr>
<tr> <td><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-D9U0SQeg7Gw/Tn0eRIrJcII/AAAAAAAAHWI/aUbh9nzlJ4g/s1600/DSC_0522.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-D9U0SQeg7Gw/Tn0eRIrJcII/AAAAAAAAHWI/aUbh9nzlJ4g/s200/DSC_0522.JPG" width="133" /></a></div><div style="text-align: center;">Red Beach</div></td> <td><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-H93ue5kjbRo/Tn4ZOmTi6ZI/AAAAAAAAHWQ/jbWUnt5T1Lg/s1600/DSC_0541.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-H93ue5kjbRo/Tn4ZOmTi6ZI/AAAAAAAAHWQ/jbWUnt5T1Lg/s200/DSC_0541.JPG" width="133" /></a></div><div style="text-align: center;">Oia</div></td></tr>
</tbody></table><div class="separator" style="clear: both; text-align: left;"> Just another tip from our observations; renting places ask you to put fuel for like 10 euros. You really don't need it. 3 euro fuel is more than enough for a day. By the end of day 3 we have been to red sand beach, black sand beach (perissa beach) and Oia. Oia is a very attractive place. The buildings, walking path and everything else is white. Whiter than Fira. It seems very elegant. People say that Oia is the best place to see the sunset. But I prefer Firostefani over Oia.</div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Day 4: According to the plan we were suppose to board our ferry to Milos at 4 pm. But we went to a ferry agency and asked whether the ship is coming on time. I'm really glad that I asked about it before hand because the ferry has been moved to 19.50. Which is a delay of around 6 hours. When ever you are booking ferries between islands in Greece remember that rescheduling of ferries is very normal. Keep a good time gap when your booking your airlines and other fixed stuff. Finally the ferry delay gave us more time in Santorini. </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">In the morning we checked out from the hotel. But left our bags in the luggage room and could still use pool of the hotel, shower rooms and dining room until we leave. That made our day very convenient. The path from hotel ( end of Firostafani) to Fira has a magnificent view of caldera.</div><table><tbody>
<tr> <td><a href="http://3.bp.blogspot.com/-y2W9p3Jz5R0/Tn7-bhr8jaI/AAAAAAAAHWg/Y3-YTfrk7HA/s1600/DSC_0577.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="133" src="http://3.bp.blogspot.com/-y2W9p3Jz5R0/Tn7-bhr8jaI/AAAAAAAAHWg/Y3-YTfrk7HA/s200/DSC_0577.JPG" width="200" /></a><br />
<br />
<br />
Path from Firostefani to Fira</td><td><a href="http://1.bp.blogspot.com/-jg6ANejdnuQ/Tn7-2Xbe03I/AAAAAAAAHWk/hUaw22Bu-Ok/s1600/DSC_0584.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-jg6ANejdnuQ/Tn7-2Xbe03I/AAAAAAAAHWk/hUaw22Bu-Ok/s200/DSC_0584.JPG" width="133" /></a><span class="Apple-style-span" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;">Donkey Taxis</span><a href="http://www.blogger.com/goog_1915949279"><br />
</a><br />
<a href="http://www.blogger.com/goog_1915949279"><br />
</a><br />
<a href="http://www.blogger.com/goog_1915949279"><br />
</a><br />
<br />
<br />
</td></tr>
</tbody></table>From Fira we took a donkey ride to the old port of Santorini. The path was very steap and there are more than 350 steps to walk down to get there. Donkey ride was very slow but a brand new experience. Then we spent few hours in the port just relaxing and came back to Fira by cable cars (which took 3 min to get back). Then we did some souvenir shopping in Fira and returned to the hotel. Fira is a very busy touristy place. Never select that place as a relaxing destination. And if you are planing to go down by the cable car go early in the morning. Around noon there was a queue of more than 200 people. Fortunately we missed it. But believe me standing there in the queue under the scorching sun is not a pleasant experience.<br />
<br />
<div class="separator" style="clear: both; text-align: left;">Finally in the evening we took the ferry from Thira to Milos. It was only 2.5 hrs. .When we got down from ferry there was a small girl holding our names in the port. Luckily the hotel owner has come to port to pick us (not only to pick us, those hotel owners come to port every time when there is a ship arriving.). </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Day 5: The hotel we booked in Milos was really nice. It doesn't any view, but it was very close to the center (Adamas) of the island. We had a nice breakfast from the hotel and we started walking around the center and had a relaxed time in a beach closer to Adamas. Nothing much special happened on day 5. We spent the entire day relaxing in the beach and enjoying fabulous sea food. On our way back to the hotel that evening we made an advanced payment to a sailing boat for next day around the island tour. </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Around the island cruise normally leaves around 10am and returns around 6pm. They take you around the western side of the island. The western side of the island is hard to reach through a motorbike or car, because the peaks are very high and the roads are not that good. The best way to go to the west side of the island is by sailing boat. They also fish while travelling and they cook Greek traditional food on the way. If you are not happy with octopus it will be a problem. </div><div class="separator" style="clear: both; text-align: left;"><br />
</div><div class="separator" style="clear: both; text-align: left;">Day 6: We had our breakfast and got prepared to our sailing trip around the island. We were the first to reach the boat. But unfortunately they've cancelled all the trips on that day. The wind on the west course has gotten too strong and the sailors said its not possible to go there swim in that shore. So the tour was cancelled. But we didn't get discouraged instead rented a motorcycle. They just advised us not to swim in any beach facing north and no to take any of the high landed roads. </div><div class="separator" style="clear: both; text-align: left;"></div><div style="text-align: center;"><a href="http://2.bp.blogspot.com/-wC2yYbtc3NU/TnORpQWm0mI/AAAAAAAAHTo/GCzXvSMlDxU/s1600/PICT5513.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-wC2yYbtc3NU/TnORpQWm0mI/AAAAAAAAHTo/GCzXvSMlDxU/s320/PICT5513.JPG" width="320" /></a></div><br />
<div class="" style="clear: both; text-align: left;">First we visited Plaka and Klima. Plaka is the old city center of the island. And Klima is a small finishing village close to Plaka. This finishing village is some what different from many other finishing villages you see in the world. Those finishing men has created closed rooms for their boats to protect them from the harsh winter and pirate attacks. So its like a car parking garage but only thing is it opens to sea.</div><table border="0"><tbody>
<tr> <td><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-ZKPhqtrhZ0w/Tn8KJmT1i2I/AAAAAAAAHWo/KWswROIu4XY/s1600/DSC_0617.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-ZKPhqtrhZ0w/Tn8KJmT1i2I/AAAAAAAAHWo/KWswROIu4XY/s200/DSC_0617.JPG" width="133" /></a></div><div style="text-align: center;">Hotel in Milos </div><a href="http://www.tripadvisor.com/ShowUserReviews-g635606-d1901083-r118244024-Moschoula_Rooms_and_Apartments-Adhamas_Milos_Cyclades.html">(Moschoula Rooms and Apartments)</a></td><td><div style="text-align: left;"><a href="http://2.bp.blogspot.com/-yCAwkP9qjg4/Tn8KoFM99mI/AAAAAAAAHWs/29KrEs4nEXY/s1600/DSC_0672.JPG" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="133" src="http://2.bp.blogspot.com/-yCAwkP9qjg4/Tn8KoFM99mI/AAAAAAAAHWs/29KrEs4nEXY/s200/DSC_0672.JPG" width="200" /></a> </div><div style="text-align: left;"><br />
</div><div style="text-align: center;">Klima</div><div style="text-align: left;"><br />
</div></td> </tr>
<tr> <td><div style="text-align: center;"><a href="http://1.bp.blogspot.com/-OIq_dhjaKdU/Tn8LapMRtzI/AAAAAAAAHW0/NwY04Az8iY4/s1600/DSC_0715.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="http://1.bp.blogspot.com/-OIq_dhjaKdU/Tn8LapMRtzI/AAAAAAAAHW0/NwY04Az8iY4/s200/DSC_0715.JPG" width="200" /></a></div><div style="text-align: center;"><br />
</div><div style="text-align: center;">Paleochori Beach (Volcanic Cooking)</div></td><td><div style="text-align: center;"><a href="http://1.bp.blogspot.com/-4V5NTRMs1l8/Tn8MAbb0prI/AAAAAAAAHW8/mRJV2Dqg7bA/s1600/DSC_0725.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://1.bp.blogspot.com/-4V5NTRMs1l8/Tn8MAbb0prI/AAAAAAAAHW8/mRJV2Dqg7bA/s200/DSC_0725.JPG" width="133" /></a></div><div style="text-align: center;"><br />
</div><div style="text-align: center;">St. Kyriaki Beach</div></td> </tr>
</tbody></table><br />
<div class="separator" style="clear: both; text-align: left;"></div><div class="separator" style="clear: both; text-align: left;"></div><div class="separator" style="clear: both; text-align: left;"></div><table></table></div>Since the sea in north side was so rough we rode to the south coast of the island. 1st we went to Paleochori beach and next we visited the Ag Kyriaki. Paleochori beach sand is mixture of sulpher. It is bit yellowish in color and when you put you feet under the ground you experience the burning sensation. The ground the sand layer of the beach is really hot due to volcanic activities. There was a one restaurant which sells "Volcanic Food". Which means they make a soup or something using the ground heat. Then we went to Kyriaki beach which has a view very similar to Paleochori.<br />
<br />
Day 7 : This was our last day in Milos. The ferry was scheduled at 3.30pm. Again in the morning we checked ferry timetable from a travel agent. No surprise. The ferry been cancelled. Luckily our flight was at the next day evening. We booked the next ferry which was scheduled to leave around midnight. We booked it with a cabin so we can sleep until we get to Athens. Then we canceled the hostel booked in Athens. We thought to kept the bike we rented the other day for the entire day. We started the day with exploring some other places in north.</div><table border="0"><tbody>
<tr><td><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-hurDKscCajA/Tn8TcFln0yI/AAAAAAAAHXA/2SHKc95QFnk/s1600/DSC_0757.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://3.bp.blogspot.com/-hurDKscCajA/Tn8TcFln0yI/AAAAAAAAHXA/2SHKc95QFnk/s200/DSC_0757.JPG" width="133" /></a></div><div style="text-align: center;"> Papafragas</div></td><td><a href="http://2.bp.blogspot.com/-Pq2yo1iUVE0/Tn8T1YRMAcI/AAAAAAAAHXE/bFi_gF-lSEU/s1600/DSC_0780.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="http://2.bp.blogspot.com/-Pq2yo1iUVE0/Tn8T1YRMAcI/AAAAAAAAHXE/bFi_gF-lSEU/s200/DSC_0780.JPG" width="200" /></a><br />
<div style="text-align: center;">Pollonia</div></td></tr>
<tr><td><a href="http://1.bp.blogspot.com/-_uk9kRUlbnk/Tn8UPpDfVZI/AAAAAAAAHXI/knRihKja_rY/s1600/DSC_0823.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="http://1.bp.blogspot.com/-_uk9kRUlbnk/Tn8UPpDfVZI/AAAAAAAAHXI/knRihKja_rY/s200/DSC_0823.JPG" width="200" /></a><br />
<div style="text-align: center;">Sarakiniko</div></td><td><div style="text-align: center;"><a href="http://4.bp.blogspot.com/-mFQTdVB9dDA/Tn8Uk3vCKNI/AAAAAAAAHXM/jX_puvLjHi4/s1600/DSC_0907.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://4.bp.blogspot.com/-mFQTdVB9dDA/Tn8Uk3vCKNI/AAAAAAAAHXM/jX_puvLjHi4/s200/DSC_0907.JPG" width="133" /></a></div><div style="text-align: center;">Achivadolimni Lake</div></td></tr>
</tbody></table><br />
First we went to Papafragas (Filakopi) where we have seen very nice volcano like beach. It was a very windy day and the sea was so rough. No one was there. But it was a very small beach compared to other places. Then we kept riding to the end of the road and we came to Pollonia. It is a big village/city like Adamas. There is a farely large beach and plenty of restaurants. Then we walked to the most top tip of pollonia where we had a very nice view. Then we went to Sarakiniko.<br />
<br />
Sarakiniko is totally built from lime stone. Total white lime beaches resembling snow fields and complete absence of flora are unique features of Sarakiniko. When you look at the place from far it looks like nothing but snow. There we spent some time swimming on shallow water bay. If you are going there take food and drinks. There are no shops closer to Sarakiniko beach. But that is something I have seen good in Greece. Almost all the beaches had at most one shop. The travelers have more than enough space to stretch their legs and relax.<br />
<br />
Finally we came back to a beach where you can find the one and only lake in Milos. The Lake and sea are separated by a road. I do not really advice anyone to visit to that lake lake though. Its just a dry land (may be it has some water in the rainy season). But there is a very nice view of west side mountains from there. The west side mountain peaks are higher than 700m. It will be a nice place to visit (but car rental people said it will be really windy during this time of the year).<br />
<br />
Finally we went back to the hotel and had a swim. Then got prepared to come back. The ferry trip was nothing exciting, because we booked a cabin and slept tightly.<br />
<br />
Day 8: We arrived to Pieraus port at around 6 am and we took the metro to the hostel "Athens Backpackers". As soon as we got to know about the ferry delay (cancellation) we canceled the hostel. But we just went there to see whether the booking was really canceled. Yes, it was cancelled. But they have charged the whole amount. Remember if you are cancelling only a one day, dont do that. Then you will loose your money and the bed. But the person who was there allowed us to have breakfast and to keep our bags. After the breakfast we just had a walk around the city and bought some souverniers. Then after having lunch we took the bus from Athens to Athens air port.<br />
<br />
This holiday was the first holiday getaway i had. Previously I have traveled to some other location including driving around Europe. But this felt so good, more relaxing than any other trip.<br />
<br />
<br />
<br />
<br />
</div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-17781730766412723972011-08-04T17:07:00.007+05:302011-08-09T23:48:54.702+05:30How to setup LAMP in AWS (Amazon Web Services - EC2) using PuttyIm going to skip very basic steps. Is you do not have any idea how to get to the screen below this is not for you.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-ozGnqjhRK4Q/Tjp7ntUB6lI/AAAAAAAAGdc/Zkhencja2KI/s1600/aws_home.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="http://4.bp.blogspot.com/-ozGnqjhRK4Q/Tjp7ntUB6lI/AAAAAAAAGdc/Zkhencja2KI/s400/aws_home.png" width="400" /></a></div>1.) Click "Launch Instance"<br />
<br />
2.) Select "SUSE Linux Enterprise Server 11 64-bit (AMI Id: ami-e4a3578d)<br />
SUSE Linux Enterprise Server 11 Service Pack 1 basic install, EBS boot, 64-bit architecture with Amazon EC2 AMI Tools preinstalled; Apache 2.2, MySQL 5.0, PHP 5.3, Ruby 1.8.7, and Rails 2.3.<br />
Root Device Size: 15 GB" from the options. (thats what i did)<br />
<br />
<i>PS: If you select SUSE you have to pay. Later I selected "Amazon Linux AMI", which is free for 750hr per month. If you use Amazon Linux later the user name to login is "ec2-user".</i><br />
<br />
3.) For now dont change the following screen. Once you become good at this you can create once with better configurations. And I think you need to pay more when its getting better. Just click "Continue"<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-RSB1HU9jkZo/Tjp8bXZBQTI/AAAAAAAAGdg/0GqUR5mYjGk/s1600/aws_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="270" src="http://1.bp.blogspot.com/-RSB1HU9jkZo/Tjp8bXZBQTI/AAAAAAAAGdg/0GqUR5mYjGk/s400/aws_2.png" width="400" /></a></div><br />
4.) Again you will be shown with some details like "Kernal ID" and "Ram disk ID". Dont waste time. Just click "Continue"<br />
<br />
5.) Next screen it ask you to enter some keys. They have already given a key as name. For now just type what ever name you like in the value box and click "Continue"<br />
<br />
6.) Now you need to create a key pair. Select the 2nd option ("Create a new Key Pair"). Enter a name for your key. When you click create and download your browser will save a file with extension ".PEM". Keep it. We will need it for future. Once you have the file click "Continue" to get to next step.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-hFdsOxsLt4o/Tjp9kl77jMI/AAAAAAAAGdk/czuLB4cUdx0/s1600/aws_key.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="195" src="http://3.bp.blogspot.com/-hFdsOxsLt4o/Tjp9kl77jMI/AAAAAAAAGdk/czuLB4cUdx0/s400/aws_key.png" width="400" /></a></div><br />
7.) Next it will ask for security groups. Just add one with full access. I know its bad. But if you need more instructions in setting up better security options read some where else for that.<br />
<br />
8.) Finally the "Launch". Now the system starts running your instance.<br />
<br />
9.) When you click "Instances" in left menu you will find your server is now running.<br />
<br />
10.) One more thing we need to do. Go to "NETWORK &SECURITY -> Elastic IP" option in left menu. Then find the button which says "Allocate New Address". Select "EC2" since we are working on it. And you will start seeing an IP address allocated for you. Its not a public IP for you. So dont be soo happy.<br />
<br />
11.) Next right click on the IP address shown. Then you'll get the option to Associate the created server into it. Do it. Now you should get a "Public DNS" name for that given IP. This is the address where you can access your server. But for me when i try this on browser it didnt show up anything. I needed to install Apache, MqSQL and PHP first.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-TCB6EUnrKOQ/TjqArmz1ZAI/AAAAAAAAGdo/29ykU5P8_kc/s1600/elastic_ip.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="161" src="http://3.bp.blogspot.com/-TCB6EUnrKOQ/TjqArmz1ZAI/AAAAAAAAGdo/29ykU5P8_kc/s400/elastic_ip.png" width="400" /></a></div><br />
12.) Now the BUGGY part. Accessing server through SSL connection using Putty. 1st download both Putty and PuttyGen. Open PuttyGen 1st. Then Click "Load" to load an existing private key. And locate the PEM file you saved. And open it. And in the screen for parameters its selected to SSH2 as default. But select SSH1. Next save the private key. It will save as a PPK file.<br />
<br />
13.) Now open putty<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-AxF7UDd17cc/Tj_G56VSA7I/AAAAAAAAGjk/mVIBwNv0bTg/s1600/putty.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="311" src="http://3.bp.blogspot.com/-AxF7UDd17cc/Tj_G56VSA7I/AAAAAAAAGjk/mVIBwNv0bTg/s320/putty.png" width="320" /></a></div>Now enter the public DNS given for you from the AWS as the Host name ( Remember ! IT IS NOT the Elastic IP). Goto Connection->SSH->Auth. Give the location of PPK file created using puttygen. It needs to be a SSH1 type file. Now clikc open.<br />
<br />
14.) Server will ask you for the username. It is "root" and once you enter that you are logged in. When im reading through some other documents they have mentioned to try "ec-user" as username. If any case root do not work try that.<br />
<br />
Upto here i only talks about setting up a SUSE Linux server on AWS EC2.<a href="http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-opensuse-11.2-lamp"><span class="Apple-style-span" style="font-size: large;"> Read here</span> </a>to find about how to install LAMP to SUSE. Whether it says in the selection it has LAMP, it really does not have it in installation. But its very easy to set up.Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com1tag:blogger.com,1999:blog-37272265.post-77083436779391902672011-07-04T18:16:00.001+05:302011-07-04T18:16:31.265+05:30Simple Rules in Twitter, Google+ and FacebookFew days back i got an invitation an I created a Goolge+ account. I did it when Facebook came up and when twitter came up too. I was thinking whats so different in Google+ other than in Facebook. I figured three different sharing systems work in all three networks i just mentioned.<br />
<br />
<b>Twitter :</b> You can follow any person (Person X). What ever person X share can be seen for all his/her followers. But X do not see any thing that his/her followers do. This is best for people who are like actors, scientists, and so on. <br />
<br />
<b>Google+ :</b> If you add some person into your circle, the added person can see your content. So this is the absolute opposite of Twitter. So this is good for normal people to keep informing others. But you cant see what he/she is up to by adding them into a circle. They need to add you into a circle if they want to share things.<br />
<br />
<b>Facebook :</b> This is a combination of both Twitter and Google+. When you add a friend and friend accepts his/her friend request you can see their posts and friend can see your posts. Still you can set security levels and sharing levels. But default is sharing happens in both ways. <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-1HCl1BZYcvw/ThG1n-3ghTI/AAAAAAAAFsM/qp6sBOtEYoM/s1600/google-plus-four_616.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="275" src="http://3.bp.blogspot.com/-1HCl1BZYcvw/ThG1n-3ghTI/AAAAAAAAFsM/qp6sBOtEYoM/s320/google-plus-four_616.jpg" width="320" /></a></div><br />
I have a feeling now its time for me to move from Facebook to Google+. But still "Mark Zuckerberg" will be one of my favorites.Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com2tag:blogger.com,1999:blog-37272265.post-63810322036920431672011-06-11T04:25:00.006+05:302012-09-11T15:58:19.047+05:30Bugs and How to Fix them ! for Android Beginners<div dir="ltr" style="text-align: left;" trbidi="on"><b>Unknown Host Exception in Android</b><br />
When you try to load something from web, and you have done almost everything right still you might get this exception.<br />
<pre class="java" name="code">06-10 11:08:50.217: WARN/System.err(868): java.net.UnknownHostException: nopsa.hiit.fi
06-10 11:08:50.217: WARN/System.err(868): at java.net.InetAddress.lookupHostByName(InetAddress.java:497)
06-10 11:08:50.217: WARN/System.err(868): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
06-10 11:08:50.217: WARN/System.err(868): at java.net.InetAddress.getAllByName(InetAddress.java:256)
06-10 11:08:50.237: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:69)
06-10 11:08:50.237: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
06-10 11:08:50.272: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
06-10 11:08:50.272: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
06-10 11:08:50.272: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
06-10 11:08:50.277: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
06-10 11:08:50.277: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1018)
06-10 11:08:50.297: WARN/System.err(868): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:512)
</init></init></pre>Solutions:<br />
1.) Change the host name ( here it is nopsa.hiit.fi) to the ip address of the host. It can work.<br />
2.) Restart your emulator ( few times.. may be )<br />
3.) add folowing code to AndroidManifest.xml<br />
<pre class="xml" name="code"><uses-permission android:name="android.permission.INTERNET" />
</pre>In some cases when you have'nt done the last change i suggested you might bet the following error as well.<br />
<pre class="java" name="code">06-10 22:47:29.866: WARN/System.err(380): java.net.SocketException: Permission denied
06-10 22:47:29.896: WARN/System.err(380): at org.apache.harmony.luni.platform.OSNetworkSystem.socket(Native Method)
06-10 22:47:29.946: WARN/System.err(380): at dalvik.system.BlockGuard$WrappedNetworkSystem.socket(BlockGuard.java:335)
06-10 22:47:29.946: WARN/System.err(380): at org.apache.harmony.luni.net.PlainSocketImpl.create(PlainSocketImpl.java:216)
06-10 22:47:29.997: WARN/System.err(380): at java.net.Socket.checkOpenAndCreate(Socket.java:802)
06-10 22:47:30.026: WARN/System.err(380): at java.net.Socket.connect(Socket.java:948)
06-10 22:47:30.026: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:75)
06-10 22:47:30.058: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection.<init>(HttpConnection.java:48)
06-10 22:47:30.077: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnection$Address.connect(HttpConnection.java:322)
06-10 22:47:30.116: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpConnectionPool.get(HttpConnectionPool.java:89)
06-10 22:47:30.146: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getHttpConnection(HttpURLConnectionImpl.java:285)
06-10 22:47:30.146: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.makeConnection(HttpURLConnectionImpl.java:267)
06-10 22:47:30.176: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1018)
06-10 22:47:30.186: WARN/System.err(380): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:512)
</init></init></pre><br />
<b>ActivityNotFoundException</b><br />
<pre class="java" name="code">06-10 22:50:18.256: ERROR/AndroidRuntime(572): FATAL EXCEPTION: main
06-10 22:50:18.256: ERROR/AndroidRuntime(572): android.content.ActivityNotFoundException: Unable to find explicit activity class {hiit.nopsa.pirate/hiit.nopsa.pirate.GameHome}; have you declared this activity in your AndroidManifest.xml?
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.app.Activity.startActivityForResult(Activity.java:2827)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.app.Activity.startActivity(Activity.java:2933)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.view.View.dispatchTouchEvent(View.java:3885)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:942)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1691)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1125)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.app.Activity.dispatchTouchEvent(Activity.java:2096)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1675)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2194)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.view.ViewRoot.handleMessage(ViewRoot.java:1878)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.os.Handler.dispatchMessage(Handler.java:99)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.os.Looper.loop(Looper.java:123)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at android.app.ActivityThread.main(ActivityThread.java:3683)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at java.lang.reflect.Method.invokeNative(Native Method)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at java.lang.reflect.Method.invoke(Method.java:507)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
06-10 22:50:18.256: ERROR/AndroidRuntime(572): at dalvik.system.NativeStart.main(Native Method)
</pre>to fix this bug you should add the following code to the AndroidManifest.xml<br />
<pre class="xml" name="code"><activity android:name=".ClassName"/>
</pre>The ClassName should be replaced by your Class name which is a Activity.</div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-63003441157860241742011-06-10T03:13:00.000+05:302011-06-10T03:13:28.084+05:30GSoC 2011 - NOPSA GameI have been accepted to GSoC 2011 and actually im making this post after a cooldiscovery of glowing GSoC sticker :)<br />
<br />
My GSoC project is to make an android game which makes use of both haptic feedbacks and nopsa image database. In different situations the user will feel the haptic feedbacks depending on the game state. Haptic feedbacks will be used to enhance the gaming experience while nopsa database will be the source of images to the application<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-i_S9VJgGoRM/TfE9wXFszjI/AAAAAAAAFRQ/4JVgf66wsEk/s1600/PICT4803.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-i_S9VJgGoRM/TfE9wXFszjI/AAAAAAAAFRQ/4JVgf66wsEk/s320/PICT4803.JPG" width="320" /></a></div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-21444650017763787732011-05-31T15:07:00.001+05:302012-02-26T05:30:33.927+05:30Ubi-Challenge & N900<div dir="ltr" style="text-align: left;" trbidi="on">In 2009 me an my wife <a href="http://kumaripaba.blogspot.com/">(Kumaripaba)</a> participated on a competition announced by MediaTeam. The initial task was to propose a novel application to run on Ubi-Hostpots. For the competition we proposed two player Battleship game where players can play standing in two sides of the screen. Next the organizers collected data for reasonable amount of time and selected a winner from deployed applications.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-u9rDw309Chs/T0l1t7slRKI/AAAAAAAAH50/g6CKsSDU43Q/s1600/battleship_letter.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="288" src="http://2.bp.blogspot.com/-u9rDw309Chs/T0l1t7slRKI/AAAAAAAAH50/g6CKsSDU43Q/s320/battleship_letter.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Taken from: <a href="http://dl.acm.org/citation.cfm?id=1864507" target="_blank">UBI challenge workshop 2010: real world urban computing.</a></td></tr>
</tbody></table>It was really happy to be the winners of the 1st Ubi-Challenge organized. And as a award for the winners I received a N900 mobile phone. At first it was not my favorite choice. It was kind of heavy compared to many new mobile phones. But after i realized N900 is not just a mobile phone its something like a small computer i started messing with it.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-kQR6NWQNnrc/TeS24ghaHeI/AAAAAAAAFQs/FfyQCdN3Noc/s1600/n99.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-kQR6NWQNnrc/TeS24ghaHeI/AAAAAAAAFQs/FfyQCdN3Noc/s320/n99.png" width="320" /></a></div><br />
One of the best things i have done with it is i managed to install Android Gingerbread version in to N900 and currently I'm planing to run Windows 95 pretty soon.</div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-42460100761149133662011-03-11T03:24:00.006+05:302012-09-11T15:59:19.552+05:30Android : Create a Bouncing Ball on ScreenIf you are new to Android try the first article related to Android development first from <a href="http://dinesh707.blogspot.com/2011/03/android-hello-world-calculator.html">here</a>. Once you are done with that now you are ready to play with "Canves" where you can draw different kind of items. Following is a screenshot while ball is bouncing. Don't worry it will not stay at same place as in picture. It will bounce around :).<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-OzENpd-J11w/TXlNTW9leLI/AAAAAAAAE10/D_KaizMHvoc/s1600/android_ball.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="http://2.bp.blogspot.com/-OzENpd-J11w/TXlNTW9leLI/AAAAAAAAE10/D_KaizMHvoc/s200/android_ball.png" width="134" /></a></div>Start with creating an Android project in Eclipse. I used "SimplePuzzle" for project name and application name. Then i put "dinesh.fun" as my package name. Finally i used "LaunchApp" for activity. Then you click "Finish" to create the project.<br />
<br />
Then the next step of our project is to edit the "main.xml". You can find this xml file inside the "res/layout" folder. It will contain a "LinearLayout" and a "TextView" element. But now our animation will run in a "View" which will be creating by our selfs. The final code will be look like as follows. Later we will be creating a "View" named as "PuzzleAnimationView" inside the "dinesh.fun" package. Here in the "main.xml" we are refereeing to it. <br />
<pre class="xml" name="code"><linearlayout
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<dinesh.fun.puzzleanimationview
android:id="@+id/anim_view"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
</dinesh.fun.puzzleanimationview>
</linearlayout>
</pre>Now save the xml and close it. It will create necessary variables inside the "R.java" class. This is a file which is automatically generated and you DONOT need to change it at all. Next its better to add the image you need to use for animation into the folder "res/drawable". In some cases it will have three folders to support on different Android environments. For now you can copy the image into any one of them. In this example i used a "ball.png" as my image (its better to use a very small image for this example). <br />
<br />
Now at the moment you can find "LaunchApp.java" is already created inside the package. For now we'll keep it a side and we'll create a new class named "PuzzleAnimationView". This was the defined class previously in "main.xml". This class should be extending "ImageView" class. As the first step you need to create the constructor of the class and see to set the context. The constructor will be appear as following.<br />
<pre class="java" name="code">public PuzzleAnimationView(Context context, AttributeSet attrs)
{
super(context, attrs);
mContext = context;
}
</pre>Here you will need to create a private variable named as "mContext". Now we are ready to write the actual drawing part. The "ImageView" class has its own method "onDraw" which is created in order to draw what ever things in the screen. hence we will be overriding this method with our animation code. But remember this is not about Android Animation. This is some image moving around. Later I will present you some fun application with Android Animation. First give a look at the code. Then we'll discuss what it is doing.<br />
<pre class="java" name="code">protected void onDraw(Canvas c) {
int res_id = mContext.getResources().getIdentifier("ball", "drawable", mContext.getPackageName());
BitmapDrawable d = (BitmapDrawable) mContext.getResources().getDrawable(res_id);
int draw_x = Math.round(System.currentTimeMillis() % (this.getWidth()*2)) ;
int draw_y = Math.round(System.currentTimeMillis() % (this.getHeight()*2)) ;
if (draw_x>this.getWidth())
draw_x = (this.getWidth()*2)-draw_x;
if (draw_y>this.getHeight())
draw_y = (this.getHeight()*2)-draw_y;
c.drawBitmap(d.getBitmap(), draw_x, draw_y, null);
float time = System.currentTimeMillis();
while ((time+5000)>System.currentTimeMillis());
postInvalidate();
}
</pre>In "onDraw" method it is called with the parameter "Canvas". The Android phone will call this method with passing this parameter. Our goal is to draw a bitmap in to the given canvas. in line 12 you can see the bitmap drawing takes place. The line 2 and 3 is basically used to load the "ball" image into a bitmap. From 5 to 10 the lines are used here to manipulate the x and y locations that image should be drawn. You can use different kinds of algorithms here. Its just need to stay inside the screen resolution. "this.getWidth()" like emthods will return the screen size. Finally the line 14 and 15 is used as a timer to wait before the next draw. And finally in line 17 we call "postInvalidate()" method to redraw or to call the "onDraw" method through the system. Now we are done with creating the animation. <br />
<br />
The next step is really simple. Now you just need to create a "PuzzleAnimationView" object. Then it will start playing automatically. Here is the code for creation. <br />
<pre class="java" name="code">PuzzleAnimationView anim_view = (PuzzleAnimationView) this.findViewById(R.id.anim_view);
</pre>Now its ready to run the application. Enjoy. If you have any concerns leave a comment.Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com2tag:blogger.com,1999:blog-37272265.post-26631747524019385152011-03-03T03:54:00.006+05:302012-09-11T16:01:05.608+05:30Android : Hello World Calculator !Here i'm going to write about how to create a worlds most simplest calculator in a very short period of time to run on Android platform.<br />
<br />
First things first:<br />
1. Download the Android SDK (<a href="http://developer.android.com/sdk/index.html">http://developer.android.com/sdk/index.html</a>). I Installed it to windows and i used the exe to install it. It worked pretty well :).<br />
2. Install ADT Plugin for eclipse (<a href="http://developer.android.com/sdk/eclipse-adt.html">http://developer.android.com/sdk/eclipse-adt.html</a>).<br />
3. Now try to follow and create the HelloWorld Application. (<a href="http://developer.android.com/guide/tutorials/hello-world.html">http://developer.android.com/guide/tutorials/hello-world.html</a>). If you manage to get the required result you have done all the installation correctly.<br />
<br />
Now to the calculator:<br />
Follow this superb tutorial about creating the calculator in Android. <a href="http://www.brighthub.com/mobile/google-android/articles/26762.aspx">http://www.brighthub.com/mobile/google-android/articles/26762.aspx</a><br />
<br />
So Why am i writing another post??. I'll tell you what can go wrong.<br />
<br />
<pre name="code" class="java">Java.lang.NullPointerException
at com.android.ddmlib.Client.sendAndConsume(Client.java:572)
at com.android.ddmlib.HandleHello.sendHELO(srcfile.java:142)
at com.android.ddmlib.HandleHello.sendHelloCommands(srcfile.java:65)
at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)
......
</pre>Either you need to add some value to the AVD SD memory allocation or you have done something wrong in AndroidManifest.xml , It will only happen if you do not follow the tutorial instructions. And again in the emulator the application will not start or it might crash as well.<br />
<br />
And the worlds famous question... Is Android Emulator takes agers to load. YES. Don't blame your computer or code. It takes very long time to turn up the emulator. But wait till everything loads up. When everything is done you'll see some nice wallpaper and some icons. WAIT till it appear.<br />
<br />
Thats it for now :).Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com1tag:blogger.com,1999:blog-37272265.post-60718926902093044602011-01-21T16:46:00.001+05:302011-01-21T16:46:34.091+05:30Human OS<iframe frameborder="0" height="510" src="http://player.vimeo.com/video/4697849?title=0&byline=0&portrait=0&color=ffffff" width="680"></iframe>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-54941192451945743822010-10-28T17:36:00.000+05:302010-10-28T17:36:17.110+05:30Graphene & the Nobel Prize in Physics 2010The 2010 Nobel prize in physics was awarded to the founders of one atom thick carbon lattice. Graphene is honeycomb crystal structure made from Carbon atoms. While normally Carbon tends to make four bonds here the one atom thick carbon structure makes only 3 atomic bonds. This results a good conductivity on the 2 dimensional plane. While a one plane of this structure has a thickness of 0.335nm and it results to have 3 million sheets of these structure to make 1mm thickness.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_nV0peJkBGNw/TMlnJnFeAvI/AAAAAAAADpk/iOwEoQr87pI/s1600/340px-Graphen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="http://2.bp.blogspot.com/_nV0peJkBGNw/TMlnJnFeAvI/AAAAAAAADpk/iOwEoQr87pI/s320/340px-Graphen.jpg" width="320" /></a></div><a href="http://en.wikipedia.org/wiki/Graphene"></a> The Nobel price winning founders of this Graphene are two times Nobel price winner Andre Geim and Konstantin Novoselov. Andre has won Nobel price before for elevating a frog on the space by manipulating the magnetic fields. And he has published a paper related to it with having his hamster as his co-author.<br />
<div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"><br />
</div>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-32067038488785324662010-10-14T16:04:00.002+05:302010-10-14T16:11:53.668+05:30IEEE citation style for Microsoft Office Word 2007The office 2007 has very nice way of helping you with adding references to the document you make. But unfortunately that does not come with IEEE style formatting.<br />
<br />
So if you are seeking for a IEEE type formatting system what you have to do is download the "<a href="https://docs.google.com/leaf?id=0B6Cpm1_t9S6pZGE0OTNmMmMtODJkOC00MDU3LTkxNTctODQzYmQzMzgxYjRh&hl=en&authkey=COOi-pML"><span class="Apple-style-span" style="color: blue;">IEEEbyBradley.XSL</span></a>" created by <a href="http://bfarns.blogspot.com/2008/02/ieee-bibliography-xsl-style-sheet-for.html"><span class="Apple-style-span" style="color: blue;">Bradley Farnsworth</span></a>, and place the XSL file inside C:\Program Files\Microsoft Office\Office12\Bibliography\Style\ folder.<br />
<br />
If you really want to know and learn how to create a referencing style of word 2007 you can try<span class="Apple-style-span" style="color: blue;"> </span><a href="http://blogs.msdn.com/b/microsoft_office_word/archive/2007/12/14/bibliography-citations-1011.aspx"><span class="Apple-style-span" style="color: blue;">Bibliography & Citations 1011</span></a>.<br />
<br />
Good luck.Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-40047467557760258092010-10-05T16:25:00.000+05:302010-10-05T16:25:02.731+05:30Large Projector DisplaysThe Urban Intraction project (UBI-Oulu) has deployed two large projector display screens in the Oulu city. Other than the newest projector screens they have deployed 57 inch touch screen displays in around the oulu. <br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_nV0peJkBGNw/TKo5kQzCLnI/AAAAAAAADo8/t-PfDSXkP-E/s1600/PICT3270.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/_nV0peJkBGNw/TKo5kQzCLnI/AAAAAAAADo8/t-PfDSXkP-E/s320/PICT3270.JPG" width="320" /></a></div><br />
Those interactive displays were deployed very first at the time i was working at the MediaTeam, Oulu. The newest technology exposure is one of the best things i had in my last two years stay in Oulu.Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-37564350208266111242010-09-01T16:43:00.001+05:302010-09-01T16:43:47.347+05:30Gmail Priority InboxI have found a very interesting tool build up by google for make the email sorting easier. Following is how they explained it on their blog. "Gmail Priority Inbox" will be available from the 2nd Week of September 2010. <br />
<b><br />
</b><br />
<a href="http://gmailblog.blogspot.com/2010/08/email-overload-try-priority-inbox.html"><b>Email overload? Try Priority Inbox</b> </a>(Posted by Doug Aberdeen, Software Engineer)<br />
People tell us all the time that they’re getting more and more mail and often feel overwhelmed by it all. We know what you mean—here at Google we run on email. Our inboxes are slammed with hundreds, sometimes thousands of messages a day—mail from colleagues, from lists, about appointments and automated mail that’s often not important. It’s time-consuming to figure out what needs to be read and what needs a reply. Today, we’re happy to introduce Priority Inbox (in beta)—an experimental new way of taking on information overload in Gmail.<br />
Gmail has always been pretty good at filtering junk mail into the “spam” folder. But today, in addition to spam, people get a lot of mail that isn't outright junk but isn't very important—bologna, or “bacn.” So we've evolved Gmail's filter to address this problem and extended it to not only classify outright spam, but also to help users separate this "bologna" from the important stuff. In a way, Priority Inbox is like your personal assistant, helping you focus on the messages that matter without requiring you to set up complex rules."<br />
<br />
<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/5nt3gE9dGHQ?fs=1&hl=en_US&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/5nt3gE9dGHQ?fs=1&hl=en_US&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-1053981571504353282010-08-30T03:53:00.006+05:302010-08-30T04:06:21.790+05:30How to Create a Popup ad (Adsense or what ever)When visiting some blogs and webpages we have seen some advertisements appear on top of the content. And they will clover some of the useful content till reader clicks on them several times. It appears to be a pain for the users. But good for the people who want to advertise well. You can see how it appears from the <a href="http://www.srilankatravelblog.com/">demo here</a>.<br />
Now we'll see how to create this kind of advertisement. Here we have used AdSense as the provider.<br />
<ul><li>Login to your blog, And open the Design Tab. -> Edit HTML -> Check "Expand Widget Templates"</li>
<li>Search for the tag. And we are going to place </li>
</ul><ol></ol><pre class="js" name="code"><style type="text/css">
#gb{
position:fixed;
top:10px;
z-index:+1000;
}
* html #gb{position:relative;}
.gbcontent{
float:right;
border:2px solid #A5BD51;
background:#ffffff;
padding:10px;
}
</style>
</pre><ul><li>Now save that and get out from the editor.</li>
<li>Next goto "Add a Gadget" in "Page Elements"</li>
<li>The you need to paste the code below in a HTML/JavaScript Gadget ( Which you normally use to paste your AdSense code.</li>
</ul><div><span class="Apple-style-span" style="font-family: 'Times New Roman';"><span class="Apple-style-span" style="white-space: normal;"><br />
</span></span></div><pre class="html" name="code"><div id='gb'><div class='gbtab' onclick='showHideGB()'></div><div class='gbcontent'><div style='text-align:right'><a href='javascript:showHideGB()'>
Click here 2x if you interfere with this ad
</a>
</div><center>
Sample Embeded Code For Ads:
<center>
<!-- Begin: Your AdSense Code -->
<!-- End: Your AdSense Code -->
</center>
</center>
<script type='text/javascript'>
var gb = document.getElementById("gb");
gb.style.center = (30-gb.offsetWidth).toString() + "px";
</script></div></div></pre><ul><li>Fill the part between line 7 and 8 with your AdSense Code</li>
<li>Now this is ready to go. Enjoy !</li>
</ul>The original document was created by <a href="http://www.blogger-widget.com/2010/07/how-to-create-floating-ads-in-blogspot.html">http://www.blogger-widget.com/2010/07/how-to-create-floating-ads-in-blogspot.html</a>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com3tag:blogger.com,1999:blog-37272265.post-38800940581763557292010-08-25T17:03:00.005+05:302010-08-30T02:43:52.687+05:30Read URL Parameters using JavaScriptFollowing is the javascript code for get the parameter "userId" from the url.<br />
So the website url will be displayed as http:.....................whatever.html?userId=balh007&age=77<br />
The following function will return "blah007" <br />
<br />
<pre class="js" name="code">function getUserId(){
name = 'userId';
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
</pre>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-73632429177961347172010-07-16T18:02:00.001+05:302010-07-30T15:00:40.618+05:30FreeAdds<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_nV0peJkBGNw/TEBPW7JJ_GI/AAAAAAAADV4/K-iocppO11M/s1600/myad.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_nV0peJkBGNw/TEBPW7JJ_GI/AAAAAAAADV4/K-iocppO11M/s320/myad.jpg" /></a></div>FreeAdds is a free advertising platform introduced to internet on 15th July 2010. The idea behind this advertising framework specially support the small scale web content providers to give a chance to advertise their web sites.<br />
<br />
This platform works on a point based system. When ever you advertise some one else s advertisement you earn a point. And the advertisement owner looses a point. If your page has a higher viewing rate then you can earn more points. And it will increase your advertisement appearing on others. <br />
<br />
You can try this platform currently form here <a href="http://freeadds.net46.net/ads/adds.html">http://freeadds.net46.net/ads/adds.html</a><a href="http://nomilead.x10.mx/ads/adds.html"></a>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-73308444026996576772010-04-30T14:41:00.002+05:302010-07-13T13:51:10.551+05:30Wow.. this is Travelling ..<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/zlfKdbWwruY&hl=en_US&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/zlfKdbWwruY&hl=en_US&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0tag:blogger.com,1999:blog-37272265.post-18153034966632358982010-04-29T01:25:00.000+05:302010-04-29T01:25:14.503+05:30Global.me 2010Last sunday (25th April 2010) we had our closing ceremony of project "Global.me". The project started in November 2009. This project global.me is simply about giving globle eduction for children in Finnish high schools. Im really feeling glad working as the local cordinater of Oulu region to facilitate this project.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://globalme.org/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="http://2.bp.blogspot.com/_nV0peJkBGNw/S9iRP1U0pwI/AAAAAAAADIw/fLsql6I0f68/s400/gmwork.jpg" tt="true" width="372" /></a></div><br />
In this project we had to face so many difficulties. Specially the global economic crisis affected in fund raising for the project. And also there were so many issues with one of the national level members and it causes lot of energy of others to make this project successful. <br />
<br />
Any how i like to thank the trainees who come to Oulu and taught students and all the other AIESECers who helped me to make this project a succsess.Dinesh Wijekoonhttp://www.blogger.com/profile/11765557319654508520noreply@blogger.com0