Friday, January 8, 2016

New RPC library released, Smart-RPC.NET v1.0.8

A few weeks ago I started to play with a Universal Windows application on my Raspberry PI 2. I was able to interface with a WCF service, however running a webservice was a no-go.

At that time I decided it was time to create an RPC library, RPC stands for Remote Procedure Call. One of the reasons was that I was not satisfied with the found solutions. These solutions were either too complex, they missed certain functionality or some other reason. Another reason was that I saw it as a technical challenge.

During the last weeks I created the first version of the Smart-RPC.NET library. It is compiled as a portable assembly so using it in a Desktop or a Universal Windows application should offer no problems.

Some basic functionality:
  • Architecture in which certain parts can be extended with custom functionality. For example the communication path used between a client and a service can be customized.
  • Connection management, connection between client and service is monitored. When possible the connection is recreated from the client side.
  • Execution time of requests are monitor and terminated when the maximum period is exceeded. Client is informed when this happens to his request.
  • Notification mechanism in which the service side can trigger the client(s) without a direct request.

On the website the following is available:
  • a link to the project page at NuGet.
  • a link to a zipped example showing how to set up a client and service.
  • design information containing class diagrams and sequence diagrams detailing the mechanisms provided.

In the near future I will adapt the client side so that it can run on the micro .NET framework. I will be testing this on my Netduino Plus and Netduino Plus 2.

Thursday, January 9, 2014

[C#] Dialogs the MVVM Way

The Model-View-ViewModel pattern is really nice since it clearly defines the responsibility of the View, the ViewModel and the Model. There should be no direct contact between the View and the ViewModel and via the databinding mechanism, this is easily possible.
 
However, I ran into a problem when a confirmation was required from the user before removing an entity chosen by the user. The command responsible for the removal behavior was triggered from within the View and executed from within the ViewModel. In my opinion, the ViewModel should not directly use any presentation functionality (e.g. showing a MessageBox).
In my quest to find a reasonable solution on the web, I ran into the following solutions:
  1. Just show the messagebox from the ViewModel.  
  2. Use a solution that adds extra code to the View which reacts to a trigger from the ViewModel.
  3. Bind the View to a message property and have it show a messagebox when this changes.
  4. Use one of the available MVVM frameworks and use the solution they provide.
Solution 1 & 2 where directly discarded, solution 3 was getting close however I found it quite limiting to react to a change to a message. Solution 4 was not an option for me since I am not really fond of the MVVM frameworks I reviewed.

Because I was unable to find a solution matching my requirements, I came up with the solution as described in this linked article on CodeProject.

Wednesday, August 21, 2013

[Photos] Dive Site Mali Africa, Dubrovnik, Croatia


Picture made on July 26th 2013, maximum depth was 26.3 meters.

Tuesday, August 20, 2013

[Photos] Dive Site The Abyss, Dubrovnik, Croatia


Picture made on July 28th 2013, maximum depth was 17.7 meters.

Monday, August 19, 2013

[Photos] Dive Site The Abyss, Dubrovnik, Croatia



Pictures made on July 28th 2013, maximum depth was 17.7 meters.

Saturday, August 10, 2013

[Photos] Dive Site Sveti Andrija, Dubrovnik, Croatia

Some pictures I took when diving at the dive site Sveti Andrija. As one can see a lot of soft corals with quite some colors when using extra light. The dive was in the morning at 26 July 2013 with a maximum depth of 39.3 meters.
 
 






Sunday, July 14, 2013

[Photo] A nudibranch on the Thistlegorm

 
A nudibranch which I encountered while diving the Thistlegorm.

Friday, July 5, 2013

[Development] Abstracting the ORM Framework via Repository / Unit of Work pattern

I just finished an article on CodeProject, it is targeted for C# developers/designers/architects and it talks about an easy way of abstracting the Entity Framework via 2 design patterns, namely the Repository and Unit of Work patterns.

The link to the article 'Abstracting the ORM Framework' on CodeProject.

Sunday, June 23, 2013

[Photo] Jellyfish at the Thistlegorm


A jellyfish at which I ran into when diving on the Thistlegorm.

Saturday, June 15, 2013

[Photo] The Thistlegorm, Egypt


This is a photo I made in 2012 of some of the ammunition on the wreck of the Thistlegorm. The Thistlegorm was sunk on 6 October 1941 near Ras Muhammad in the Red Sea.

Wednesday, June 5, 2013

[Photo] Our friendly pigeons


Some friendly pigeons that visit us on a regular base while keeping an eye on us :)

Sunday, May 26, 2013

[Photo] Mount Bromo, Java, Indonesia


The view at the sunset near Mount Bromo, an active volcano in Java, Indonesia.


And the view on Mount Bromo when the sun already made some effort to set. It is very clear that the  Bromo volcano is active.

Sunday, May 19, 2013

Fixing my Epson EMP-TW700 Beamer

Last week I had some issues with my beamer. When switched on it had all its fans running at maximum speed and the power led lit up red. According to some searches this could have different reasons.
 
One of the reasons was that a plastic door with a piece of glass could not be moved in the correct position. After greasing this door it was fixed. Also check this link for more information and some pictures.
 
The reason I post this is because I did not know how to release the connectors that hold the band cables for the Red/Green/Blue signal. These need to be released before the plastic door can be reached. It turned out to be very simple, the black latch as shown in the picture needs to be flipped upwards so that it releases the cable. When done push the cable in the connector again and flip the black latch down to lock the cable.
 

Saturday, May 18, 2013

Redged RTA-320 Macro Tripod


In the near past I had bought the Redged  RTA-429 tripod. It is a very nice and sturdy tripod but on some occasions it is still too massive or too heavy. Certainly on a holiday when I am already struggling with all the stuff I want to take with me.

So recently I ran into the RTA-320 macro tripod and I ordered it. I was amazed at the quality and it has all the nice things of its big brother and that at a weight of only 594 grams.


The nice thing is that it also includes a bag in which the tripod can be stored.


When the tripod is not extended it looks really tiny.

 
When the legs and the top part are extended it still look tiny, but it is at a total height of 40 cm. That is excluding any ball head. This could extend it with another 5 or 6 centimeters.
 

 
The nice thing is that the legs have a multi functional bottom which can either be rubber feet or spikes. This can change by rotating the rubber feet.
 
 
The RNB-1 ball head I already have can also be used on this tripod.

Thursday, May 16, 2013

[Photo] The old logo of the KLM


A very old logo of the Koninklijke Luchtvaart Maatschappij (KLM), the Royal Aviation Company. I shot this one while visiting the Aviodrome, a big exposition of 200 years of aviation.

Tuesday, May 14, 2013

[Photo] The Prambanan - Java - Indonesia


This is one of the temples located at Prambanan, a Hindu temple compound located in Central Java.

Monday, May 13, 2013

[Photo] Cenote - Playa del Carmen - Mexico


This is a photo I made while diving a cenote in Playa del Carmen. It was amazing ! In the bottom left of this picture you notice the blur which is caused by a halocline. It was due to the presence of both fresh and salt water.