Grove Panda – A Grove shield for the FEZ Panda II board

June 27th, 2012 No comments

Grove Panda, a shield designed by me for the FEZ Panda II.

For a student project, I had recently been searching for a set of easily combinable electronic bricks that would include various sensors (e.g. force and distance sensors), LEDs, displays, and so on. As discussed in my previous post, I finally opted for the Grove components by Chinese manufacturer Seeedstudio in combination with a FEZ Panda II board by the US company GHI Electronics. In this blog entry, I want to present a custom shield I designed for the FEZ Panda II to bring the two systems together. Read more…

A comparison: Arduino vs. .NET MF vs. .NET Gadgeteer + others

June 27th, 2012 2 comments

Arduino Pro Mini, Arduino Fio, FEZ Panda II (similar size as Arduino Uno) and Raspberry Pi (model B). Because I had no hardware at hand, a Gadgeteer device is not shown here.

In the past couple of years, with the development of the Arduino platform, electronic prototyping kits have gained a lot of popularity world-wide amongst hobbyists and professionals. Today, a large number of ‘electronic bricks’ such as sensors, Wi-Fi, LED modules or motors is available, for example for building robots or for home automation purposes. While planning a project for students who had never worked with electronic circuits before, I came across a number of different systems which I want to discuss briefly in this article, by presenting some major advantages and disadvantages of these systems. Read more…

OpenCV: Equivalent to Matlab’s conv2() function

July 5th, 2011 21 comments

The numerical computing environment Matlab (or e.g. its free alternative GNU Octave) provides a function called conv2 for the two-dimensional convolution of a given matrix with a convolution kernel. While writing some C++ code based upon the free image processing library OpenCV, I found that OpenCV currently offers no equivalent method. Read more…

JSF2: Finding and re-rendering deeply nested components in different NamingContainers

July 5th, 2011 No comments

In complex JSF web applications, you sometimes need to re-render (i.e. update via AJAX) a component located outside of the current form (note that forms should not be nested). While you can access a composite’s parent in EL using the #{cc.parent} attribute, this is not of much help if your component is deeply nested in a different sub-tree of the component hierarchy. Read more…

JSF2: Rendering facets inside nested composite components

January 27th, 2011 1 comment

…is not supported, as I just found out:

<composite:interface>
	<composite:facet name="basketContent"/>
</composite:interface>

<composite:implementation>		 
	<mycomponents:box title="Shopping basket">
		<composite:renderFacet name="basketContent"/>
	</mycomponents:box>
</composite:implementation>

Read more…

JSF2: Nesting forms into each other — not a good idea

January 23rd, 2011 No comments

This problem just cost me an hour worth of debugging: Clicking on a PrimeFaces <p:commandButton/> that was inside a composite component wouldn’t trigger the server-side action that was specified in the tag. Even more strange was that I had several of these buttons (created in a loop using <ui:repeat/>), and in the generated HTML, the first one wasn’t nested into an HTML form element, while the others were. Read more…

Spring @Transactional: Verifying transaction support / Local method calls

January 23rd, 2011 2 comments

A few days ago, I was debugging a persistence issue in a recently started project that uses Spring ORM + JPA 2.0/Hibernate for persistence. Using Spring’s declarative transaction support, enabling transaction management for your services is just a matter of annotating the service methods with @Transactional, assuming you have properly set up a transaction manager and tell Spring to process your @Transactional bean annotations:

<tx:annotation-driven proxy-target-class="true"/>

Since I couldn’t explain why my code wasn’t working, I began wondering if the transaction support for my service method was configured correctly. Read more…

About this blog

December 28th, 2010 No comments

During the software development process, and especially while you are getting acquainted with new technologies, you often encounter the situation that you spend hours and hours trying to figure out how to solve certain ‘simple’ problems, until you realize that the solution to that problem is not as simple as you had expected. Or, in contrast, that there is a simple solution, but you did not think of it.

In these situations, I often wonder why these ‘simple’ things are documented nowhere. Therefore, with this blog, I want to document what I learnt when dealing with these new technologies, so that other developers who might be facing the same issues can benefit from my experiences. If you have got comments, questions or ideas for better solutions, please feel free to use the “Comments” section to express them!

Legal disclaimer

The source code posted on this site is, if not stated otherwise, released into the public domain for use in personal and commercial projects and is provided as-is. I cannot (and will not) guarantee for the correctness of this code. If my code seems helpful to you, feel free to drop by and leave a comment in the “Comments” section!