dinsdag 27 januari 2009

(NL) De helft van de boodschap is lichaamstaal

Een boodschap bestaat voor 55% uit lichaamstaal, voor 38% uit
intonatie en voor 7% uit woorden. Door te schaven aan uw lichaamstaal
kunt u dus een betere communicator worden.

Het enige waaraan u moet denken wanneer u spreekt is: "Ik weet waar ik
over praat". U zult dat vanzelf ook uitstralen.

- Hoofd en schouders rechtop houden. Niet ineengedoken staan. Zo wint
u twee centimeter.
- Handen beter in de achterzakken dan vooraan in de zakken of gekruist.
- Benen evenwijdig stevig op de grond plaatsten.
- Met de handen uw woorden benadrukken.
- Hart en voeten naar de gesprekpartners toe draaien.
- Kijk naar de ogen van uw gesprekspartner. Wanneer u naar de kleur
van de ogen kijkt, geeft u de indruk nog aandachtiger te luisteren.
- Maak een kleine aanraking om vertrouwen te creëren.
- Wanneer u wilt glimlachen, zeg "Great". Dat voelt goed, en veertig
van de tachtig gezichtsspieren bewegen. Veel beter dan "Cheese".
- Spiegel uw houding aan die van de mensen om u heen. Dat schept vertrouwen.

Deze aanbevelingen voelen in het begin misschien onnatuurlijk aan,
maar dat gevoel slijt. Als u deze tips zelf even vergeet, laat u eraan
herinneren.

Dit zijn enkele lessen uit het seminarie charismacoaching van Frank
Segers, Glenn De Cliént en Bé De Meyer. Drie Bizz-lezers hebben dit
nieuw seminarie uitgetest. Hun oordeel leest u in de Bizz van deze
maand.

vrijdag 23 januari 2009

JSF controllers and bean dependencies

I'm refreshing my JSF knowledge since I've been working with spring mvc instead for a while. In fact a lot is similar to spring or can be done using a similar approach.

JavaBean: Interconnection between front- and backend are the javabeans. These you should know, having a no args ctor, properties with accessors (getters and setters), binding of these properties in frontend, ...

public class JavaBean {

private String myProperty;

public JavaBean() {};

public void setMyProperty(String property) {
this.myProperty = property;
}

public String getMyProperty() {
return this.myProperty;
}
}


Using javabeans as controllers: In JSF javabeans can be configured using the faces-config.xml (or any custom named xml configuration file when it's pointed correctly). The properties can be easily set by providing setters and getters in the javabean class and databinding in the JSF page. You can use these managed beans as controllers by just creating some extra methods and the commandButton or commandLink jsf-component bound to these methods.

<!-- ... -->

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
template="/WEB-INF/template/default.xhtml">

<!-- ... -->

<!-- example of property binding with a checkbox -->
<h:selectBooleanCheckbox title="#{file.selected}"
value="#{file.selected}">

<!-- example of method binding with commandButton -->
<h:commandButton id="refresh" action="#{StatsController.refresh}"
value="#{bundle.refresh}"></h:commandButton>

<!-- ... -->


Bean dependencies: Service and other dependencies between beans can also be configured in this xml. Therefore create managed beans with no scope and then reference these in the actual javabean.
<!-- an example of a service -->
<managed-bean>
<description>fileservice</description>
<managed-bean-name>FileService</managed-bean-name>
<managed-bean-class>
group.project.services.FileServiceImpl
</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
</managed-bean>

<!-- and this service being referenced in another bean -->
<managed-bean>
<description>
The controller for the list of files, select and process
</description>
<managed-bean-name>FilesController</managed-bean-name>
<managed-bean-class>
group.project.web.FilesController
</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>service</property-name>
<value>#{FileService}</value>
</managed-property>
</managed-bean>

Error green UML eclipse plugin 3.3

First of all, if you have a recent version of eclipse then install/update the green UML plugin using the following update site from within Help > Software Update s > Find and Install:

http://www.cse.buffalo.edu/faculty/alphonce/green/

I'm using eclipse 3.3.2 so I had to go for GEF 3.3 and Green 3.0. When dropping the plugin in the plugins folder (GEF I installed using the update sites) I had the options in the eclipse menu added to create UML diagrams.

Only when trying to view a generated Green UML file, extension .grn I got an error from eclipse:

Problems occurred when invoking code from plug-in: "org.eclipse.jface".


You can view the error log by going to the plug-in development perspective where at the bottom there is a tab Error Log (next to Tasks). I found:

java.lang.NoClassDefFoundError: com/ibm/icu/text/Bidi


Google gave me 2 threads on this problem: http://fusesource.com/forums/thread.jspa?messageID=1275 and http://www.eclipsezone.com/eclipse/forums/m92238620.html.

Solution was to update the com.ibm.icu_3.6.1.v20070906.jar in the plugins directory with a more recent version, like: com.ibm.icu_3.8.1.v20080530.jar. You can find this update at http://download.eclipse.org/tools/orbit/downloads/drops/R20080807152315/.