Papua New Guinea, Boiling Point–Part 2

Imagine a day out on a banana boat, landing on a local island and picking chicken eggs for the day, and boiling them in a ocean volcano, followed by pine apple picking and to finally finish the day off with some ocean fishing.

It was a really fun experience hanging out with some local people on Mushu Island, and spending an awesome day out “shopping” for food.

We found some wonderful and friendly people to host us on Mushu Isalnd, which is just off the coast from Wewak. I have decided to post  bits and bobs of our experience in PNG without having a chronological order, it just makes it more fun!

image

Above is a map of how we get their, basically phone George and he will pick you up on a Banana boat. Let me warn you Wewak has nasty pick pockets, not violent, but they opportunists, so keep your stuff in FRONT POCKETS. We had no issues at all.

IMG_7287

A roaming banana boat

IMG_7273

We found some pine apples with our local friend Jorge, who lives on Mushu Isalnd.

IMG_7268IMG_7266

Above we boil our eggs in the ocean volcano in Victoria Bay, by Kairiru Island.

IMG_7299

Caught some mackerel for dinner, I used a traditional PNG fish wooden stick, if you may call it that Smile

 IMG_7256IMG_7257IMG_7258IMG_7259IMG_7260

We were well looked after with food on Mushu Island as well. We ate Bread Fruit, Fish, Chicken (Their is a chicken farm on Kairiru), Sagore and lots of other nice foods.

IMG_7286

 

Accommodation

Again, lets keep it local, you can live with George, and he has an amazing Guest House on the island, well it is his home and he runs the guest house faultlessly.

You can contact George on:

+675 729 78746

Surfing

There is great surf to be had here, best time to come is mid January to mid March. The kids here are passionate about surfing, the problem is…..and this gets to me…they do not have enough surfboards.

Has anyone thought of using the local chinese traders to get help get second surf boards over on containers? I think this can be a solution. We working with George to perhaps send him to Sydney to learn how the craft of making surfboards, so it is a possibility, either way, we should be aware that kids in PNG LOVE surfing, but don’t have the equipment, and I seen these guys surf on little wooden boards and getting barrelled off their heads!

Chronicles of Papua New Guinea–Part 1

17th December 2012

Port Moresby – Gordon

After a decent flight from Sydney to Port Moresby via Brisbane we were left with no transport from the Airport to our hotel (Flying Fox Inn – 311 2551), which is near Gordons Market in PM. The accommodation was basic, and only locals from different parts of PNG were staying there. We took a stroll in Gordon’s Market and tasted Betel Nut for the first time, a bit of a crowd gathered around us, whilst Jamal and I started chewing and spitting this nut for the first time. I got a bit of a high to be honest and started feeling dizzy and very very talkative!

So, as I was saying, back at the airport, we had no transport arranged, so if you going, I highly recommend to arrange transport beforehand, we eventually got some of the friendly guys from the Flying Fox Inn to pick us up.

That evening we went to the chinese restaurant opposite the Flying Fox Inn, food was pretty good and the waiter was super friendly, who offered to take us on the Kokoda trail if we ever came back to PNG.

18th December 2012

Vanimo Airport

3AM wake up call and we were off to Vanimo!

We landed in Vanimo really early in the morning, and had again not arrange any plans, so there we were at Vanimo airport loitering about with the locals, when a white guy (Peter) approached us and recommended we stay with them at their Lodge. Now our plans was not to stay at any surf lodge, mainly because it is very expensive ($200-$400 / Day), however, since we were a bit tired from all the flights, we thought it might be a good idea for one night and then we will try find accommodation in one of the local villages, of course near as possible to the surf!

Vanimo Surf Lodge

IMG_3125

We got to the surf lodge, which was a 5 minute drive from the airport, and it was pretty nice, but K300 for one night is way too much money, and frankly a rip off, the food was mainly noodles and local fruits and we could not justify the amount of money we had to pay each to stay there for ONE NIGHT. They also charge a Reef Fee which is 30K per day, we found out later that the locals that we lived with who own the reed never get the money, so it seems it goes somewhere else, to some other association perhaps, we don’t know, but we feel the locals get no benefit from these reef fees.

We did some surfing and the waves were ok, around 3ft, We surfed at a place in Lido Village called “Lefties”.

So, in Lido, there is two main surf breaks “Righties” and “Lefties”, it is great, since usually if the right is not working, then the left will be.

19th December 2012

Lido Village

IMG_3126

This village, which is located next door to the Vanimo Surf Lodge is awesome, the people are friendly and to be honest, I never met such nice, friendly and hospitable people like this for a long time. We might a local guy by the name of Solomon who gave up his house for us to stay in, and all we had to pay was 75K a day, that is around $32 a day, much better than K300 at the surf lodge. So we were ecstatic to find such a cool place to live.

Solomon was awesome, he even made us a toilet by breaking down his patio to use the wood for the toilets, I would never find this sort of helpfulness anywhere else I have been before.

I managed to get my Hammock setup between some trees as well, and slept outside as it was much cooler outside than living inside the hut. The local kids loved the hammock to, and they followed me around and tried to help whilst I got it pitched up.

We were so taken back by the cool people in the village, and contemplated on why back home we don’t even speak to our neighbours, where, here, in one evening, we had gathered neighbours from all parts of the village and spent a wonderful evening together.

Solomon’s Guest House

IMG_3141IMG_3143

Phone: +675 715 101 27

So, this is the official day that Solomon’s guest house was born, and we were honoured to be the first guests of such a wonderful host family! If you planning on going to Vanimo in Papua New Guinea, then I highly recommend to live with them, expect to pay them between 75-95 Kina per day. Which is $30-$45 /Day. Just get a PMV (Public Motor Vehicle) from Vanimo town, outside the bank to Lido Village ask for Solomon or Adam, in fact Adam runs a PMV transport mini bus business from Vanimo to Lido, and is Solomons uncle, so you might be lucky and meet him on the way to Lido, his PMV is blue. You can phone him on 715 101 27.

IMG_3758IMG_3759IMG_3776

We had a very early surf today, and then went off to Vanimo Town, it is very small, and the people in town are amazingly friendly, but be warned, the town is very dirty and Bet Nut spit is everywhere!

Reef Fees – GoodBye

Solomon’s uncle owns the reef “lefties” and “righties” so we did not have to pay any reef fees per day anymore, which we were happy about, so here we are living cheap and surfing uncrowded waves, what more can you ask for?

 

 

Food

_MG_3539

The food was absolutely amazing, they treated us like kings and cooked us 3 meals a day. We ate:

Sagore, PineApples, Paw Paw, Bread Fruit, Tare, Sweat Potatoes, Fish and lots of other local grown fruits and vegetables.

IMG_3613_MG_3795

Above is a picture of Sagore and a piece of chicken as well as sipping on coconut water.

Summary

The first few days, proved to show that PNG has some awesome people, food, culture and uncrowded surf, but you need to LIVE WITH THE LOCALS to get the benefit.

This ends part one of my blog post, in future posts we will look at some videos of Lido and talk about all the adventures we went on there Smile Perhaps post a video or two on as well. Until then…..

Slow HttpWebRequest.GetResponse()

In the development of the Neo4jClient, we noticed that all DB queries to Neo4j were taking roughly 150ms longer than on my local development machine. after using Fiddler and ApacheBench, it was clear the performance issue was inside the .Net Code.

What we use in Neo4jClient (http://hg.readify.net/neo4jclient/wiki/Home) is the RestSharp open source library. Fiddler proved to be very unreliable to produce consistent results due to it caching and reuse of connections, even when disabling them, also, when requests went via fiddler, the response time was quick, so queries taking over 150ms without fiddler were taking 10-15ms within fiddler.

Profiling

The solution was to build a custom .Net tool to send Http POSTS, and using the JetBrains DotTrace utility, we were able to see an issue where, if we FIRST bypassed RestSharp and just used HttpWebRequest, the response time was quick, as soon as we used RestSharp it went slow, and even after using it, going back to HttpWebeRequest was then slow.

Somewhere, a Static Class was causing an issue that RestSharp uses.

image

Notice the 150ms overhead in the above screenshot

Here is a profile where restsharp is bypassed

image

In the above profile, the http response time is fast.

ServicePointManager

RestSharp sets the ServicePointManager, which is a static class, and what we found was that this algorithm was causing 150ms delays in our Neo4j DB calls.

ServicePointManager.UseNagleAlgorithm

I noticed in wire shark the difference between a fast stream and a slow one, it affected the number of packets which pointed to either

ServicePointManager.Expect100Continue

or

ServicePointManager.UseNagleAlgorithm

we found changing Expect100Continue not to cause any changes, however setting UseNagleAlgorithm to false, solved the issue, and now all DB calls to Neo4j are 150ms quicker!

 

(HttpWebRequest) – SLOW – After a RestSharp call (Poisoned system)

FAST TCP STREAM (HTTPWebRequest)

This is due to UseNagleAlgorithm being off

POST /db/data/ext/GremlinPlugin/graphdb/execute_script HTTP/1.1

Content-Type: application/json

Host: 10.25.234.67:20001

Content-Length: 65

{"script":"g.v(793).in(‘USER_BELONGS_TO’).drop(0).take(100)._()"}HTTP/1.1 200 OK

Content-Length: 5316

Content-Encoding: UTF-8

Content-Type: application/json

Access-Control-Allow-Origin: *

Server: Jetty(6.1.25)

POST /db/data/ext/GremlinPlugin/graphdb/execute_script HTTP/1.1

Content-Type: application/json

Host: 10.25.234.67:20001

Content-Length: 65

Expect: 100-continue

HTTP/1.1 100 Continue

{"script":"g.v(793).in(‘USER_BELONGS_TO’).drop(0).take(100)._()"}HTTP/1.1 200 OK

Content-Length: 5316

Content-Encoding: UTF-8

Content-Type: application/json

Access-Control-Allow-Origin: *

Server: Jetty(6.1.25)

Before Optimisation in Azure

image

After Optimisation in Azure

image

Conclusion

If you doing allot of small HTTP POSTS, it might be a good idea to turn off the Nagle Algorithm.

http://www.winsocketdotnetworkprogramming.com/xmlwebservicesaspnetworkprogramming11e.html

When using the Neo4j REST API(http://docs.neo4j.org/chunked/snapshot/rest-api.html), be aware of the response times, and if you notice response times greater than 150ms for all DB calls, then perhaps you have the same issue with the ServicePointManager confguration.

Nagle Algorithm

The Nagle algorithm increases network efficiency by decreasing the number of packets sent across the network. It accomplishes this by instituting a delay on the client of up to 200 milliseconds when small amounts of data are written to the network. The delay is a wait period for additional data that might be written. New data is added to the same packet. The practice of compiling data is not always ideal for Web services, however, because a POST request often contains a small amount of data in the HTTP headers without the body (because of 100 Continue, as described earlier). The Nagle algorithm can be turned off for Web services calls via the System.Net.ServicePointManager.UseNagleAlgorithm property. Yet disabling the Nagle algorithm might not provide the best performance either, you’ll need to experiment with disabling the algorithm to fine- tune your application. Whether you should disable the algorithm in this case depends on several factors, including the size of the Web services call, the latency of the network, and whether HTTP authentication is involved.

Neo4j application performance profiling management with New Relic

Hi,

We currently need a way to have performance profiling management solution in place for Neo4j running in Windows Azure cloud. The benefits of course is on going data analysis and performance statistics, not to mention assisting in debugging issues with performance. The best part of it all, is the agent that collects the data just runs as part of the JVM and the data is automatically uploaded to the website where you can view it online.

New Relic Account

The first thing you will need to do is create a new relic account at:

http://newrelic.com/

Once, this is done, you can then download the java agent which will contain two files:

newrelic.jar

newrelic.yml

The yml file contains the license key and the application name to display on the new relic performance dashboard website. When you use New Relic it has a trial option, so it is easy to test out.

Infrastructure

What we do is store these zip files in blob storage and when the worker role is bootstrapping, it will then download the zip file, and then automatically edit the neo4j config files before starting up neo4j.

image

Neo4j configuration

It is extremely simple to configure the relic agent to run and profile neo4j, all you need to do is edit the neo4j-wrapper.conf file and add this line of code.

wrapper.java.additional.2=-javaagent:..\newrelic.jar

We use a relative path, as we store the newrelic jar relative to the neo4j binaries, so all you need to do is store the newrelic.jar file in a location where neo4j can access it from when starting up.

Dashboard

Once this has been deployed to the cloud, we then have performance statistic automatically made available to use via the neo4j JVM on the New Relic web site!

image

From here, you can actually click a segment on the graph and drill into the method level calls that occurred in the JVM.

image

Notice that you can get details about the timing of method invocation timings.

image

Comparing environments

What is really cool, is comparing response times between environments, so you can see how fast UAT/Prod/Dev are compared to one another

image

Conclusion

It is a relatively easy task to get application performance statistics for neo4j running in or out of the cloud and New Relic seems to be a really useful tool with minimal overhead to get up and running, so I would highly recommend using the combination together. This coupled with VisualJM should provide enough performance data and profiling when collecting performance data and compiling reports.

Neo4j, JMX and VisualVM

It might be necessary to use JMX to profile neo4j, which we are currently doing to address performance issues with Neo4j in combination with Windows Azure.

The first thing you will need to configure is additional switches in the neo4j-wrapper.conf file, here are mine:

wrapper.java.additional.1=-d64
wrapper.java.additional.1=-server
wrapper.java.additional.1=-Xss2048k
wrapper.java.additional.2=-Dcom.sun.management.jmxremote.port=6666
wrapper.java.additional.2=-Dcom.sun.management.jmxremote.ssl=false
wrapper.java.additional.2=-Dcom.sun.management.jmxremote.authenticate=false

Notice, that I am using a port number here, and this will allow remote JMX profiling, the reason for this is that in azure, the neo4j instance runs in a different user context than the remote desktop user, so we need a way to attach to the process, with VisualVM, we can do this via remote JMX.

Just add the neo4j JMX listener as a remote host. Then, if using the azure cloud:

  • Remote desktop into the worker role hosting Neo4j
  • Install the JDK
  • Install VisualVM
  • Configure the JMX Connectionas outlined below
    Right click Local and click Add JMX Connection:

image

image

image

From here we can now do profiling of the Neo4j application.

image

Romiko

Windows Azure SDK 1.6–CSX folder output breaking change..again..

Background

Automated deployments with SDK 1.6 have been broken with TeamCity.

Location of CSX folder in build output changed.

Location of CSRUN.exe moved to emulator folder.

Details

Before, when using the MSBUILD targets, the csx folder that is needed by CSRUN.exe for automated deployments has been changed, what is worse, is the old csx folder location is not cleaned up and is partially there, so to the untrained eye you think it is still there!

Also note, you will need to change the path of csrun.exe as this has been moved.

Old Location

CloudProject\bin\%BuildConfiguration%\CloudProject.csx

New Location

CloudProject\csx\%BuildConfiguration%

Why does the old location with impartial files still exist? Not sure…Because this was my new error when I tried to deploy.

The compute emulator had a error: Can’t locate service descriptions

image

Now the new location with all files

image

TeamCity Artefacts fix

Notice the new relative path to the project is \csx\release and not bin\release\MyProject.csx.

image

Summary

This is not the first time, that we get breaking changes. In 1.5 allot of the MSBuild target names changed, they were fine the way they were, sometimes I just do not understand certain changes that did not really need to be made.

So, can anyone explain why the folder before in bin\MyprojectName.csx was changed to a directory level up from bin and called only csx, it just seems to be changes that we really can do without, or is their some grand planned scheme that will make this change so exciting in the future…who knows?

Listening

As a listener, you grant yourself the ability to merge with anyone from any walk of life, even those you know nothing about, because rather than seeking to bathe your own ideas over others, you allow others’ to bathe over you

Chile Surf Yoga Trip April 2012

Just bought my tickets for a trip to remember, surfing big lefts in Chile, I am so excited to go and learn about the country, people and explore the places. Will be travelling with Maurice/Julie and some local surfers here in Sydney.

You can check out their website here: Chile Retreat 2012

I always wanted to check out South America, and no better way than to travel with people who are from Chile. I am really appreciative that my work, Readify,  has let me take unpaid leave.

Waters in Chile are freezing, and I don’t have a 4/.3 wetty, Maurice has been kind enough to offer one of his to use, so that puts me to just buy a hoody, booties and some gloves.

The average swell height is 4-6ft, perfect, I am a bit concerned that I might fall in love and stay there and just become a surf bum, ha ha!

Another place that I am definitely keen to surf will be Chicama in Peru, I guess I will plan this for 2013.

Well, I am hoping to survive the PNG trip, which is now only 2 weeks away, we changed the plans and will be travelling from Vanimo To Madang, and have cut out the mountain climbing, mainly due to timing, we would rather be surfing or diving instead.

Here are some picks of the last trip the guys had in Chile.

I am, well….Excited! Peace….

Actors Lab – Truth

Hi,

Finally completed the level 4 course Truth at Darlinghurst Theatre, in this performance we explored “letting go”, a place where we can perform on stage and strike a balance between Actors Craft and letting go, release real emotions. Definitely learned allot on this course, I feel it definitely contributed to successfully passing the audition yesterday at Sydney Theatre School

 

The scene I had was about Myth, Propaganda and Disaster…A professor who has gone a bit insane, or perhaps is a bit to passionate in standing up for what he believes in. The conversation is between him and a colleague who both immigrated to the US from Australia. The argue over their views on why the professor has decided to write a controversial book called “Myth, Propaganda and Disaster in Nazi Germany and Contemporary America – A Comparative study.

Having a short scene, allowed me to really focus on my feelings and emotions, it was an interesting week, as allot of the time, i would have to conjure intense emotions. It is kind of like a stem cell, you build up energy in your thorax and then just feel an emotion without thinking of a scene or past event, thus transforming energy into whatever emotion is you would like to feel, this then I believe allows for a more fluid experience.

One issue I had, is during normal day activities, I would feel intense emotions because of this, as my feelings were allowed to flow more easily, making you allot more open to experiences, from an acting perspective this is great, but be careful with it in normal day to day activities, I think a new aspect for me to learn is letting go totally after the scenes.

I feel there were two many people on the course, it would have been ideal to have 8, we had 12 on the course, and this makes it very challenging for the instructor to provide the individual attention required. Met some great people on the course and new people are always a great stream to be feed with new inspirations.

Here are some pictures from the performance.

 

Summary

Highly recommend the actors lab, if you want to get in touch with letting go. Check out www.darlinghursttheatre.com/