”Oh, it would be soo delicious to have some pancakes right now…”
“…with sirup”
“…with marmalade”
“…with cheese”
“…with sugar”
“…with chocolate”
… we had so many ideas…

But at this afternoon there weren´t any pancakes around. That´s why we decided to have some next day for lunch. Chris suggested to do it on our own and what should I say – here is the result cooked by Chris:

>> more…

Today is the 2nd Ada-Lovelace-Day, an “international day of blogging to celebrate the achievements of women in technology and science”. This initiative originating in the UK encourages people to write about tech women whom they admire, who impressed them and who are heroines to them. I also pledged myself to write something, because womens achievements are often overlooked, disregarded or even disrated and therefor its a duty to me to spread the word.

There are plenty of stories to tell, so it was not easy to choose which one to write about. There are for instance the girls I work with, who are inspiring, amusing and fun to work with every day. They earn my respect, but instead of glorifying my colleagues (you can meet them in this blog btw) I want to take my hat off to three of the great ladies out there, each one totally different from the other. >> more…

We use Apache POI to export lists of drawing deliveries to excel files. To overcome the limitation of 65.535 rows per file with xls (Excel 97) we introduced xlsx (Excel 2007) support which allows for up to 1.048.575 rows. In addition to the increased amount of data which has to be handled, we encountered increased memory consumption by XMLBeans which is used by POI for creation of the xlsx document tree. The bigger memory footprint of xssf compared to hssf model is a well-known problem. In POI 3.5 there was an example included demonstrating a workaround for big tables: BigGridDemo.java >> more…

One of the biggest advantages of Groovy over Java are those nice little collection helpers. For people who first encountered them in functional languages the names are confusing. Here’s a short comparison:

Functional Language Groovy
map (list, function) list.collect (closure) Applies the function to each element of the list and returns the results as a new list
filter (list, function) list.findAll (closure) Returns a list of all elements in the input list for which the function returns true
fold (list, initial element, function) list.inject (initial element, closure) Applies the function to the initial element and the first element of the list. Then applies the function to this result and the second element of the list. Get the idea?

>> more…

Over and over in study after study two important factors emerge for both sucessfull learning in school and productive work in the office:

a) You need to be in a setting where you feel appreciated and actually like and are liked by the people you work with

b) You need to be self-determined with respect to what you work on.

Here is another nice blog post that illustrates how important these two factors are.

http://home.foerster-kreuz.com/2010/03/statement-warum-sie-am-wochenende.html

Last  week we  implemented a small but very interesting CAFM module Cleaning Controls using a digital pen and paper solution.

The digital pen has a mini processor, memory, and a built-in infrared camera. With that pen you can write on normal paper, which was previously printed with the cleaning control form which has a very fine grid pattern in the background, so the pen knows exactly where and what you are writing (ICR technique).

When you have completed the control form, the written data can then be transferred directly to a third-party data server, via mobile phone (Bluetooth) or PC (USB).  Of course you can correct/update your text as often as required. >> more…

Hunting one of the strangest layout issues in IE – if you hover over an element, the input elements on the page mysteriously move down – we learned about the very strange concept of “layout” internet explorer employs: Give your elements height, width or one of the other CSS-properties that “cause an element to have layout” (I can’t help but giggle when I read this, and I have no clue what it’s supposed to mean) and many of your IE display issues will disappear. >> more…

Although it may seem to be obvious for experienced web page authors, it was a discovery for me: XHTML does not understand special symbols “&” and “<” if written directly. So it’s impossible for example to perform “and” operation (&&) in javascript on the page.

There are two solutions for that:

1) Use CDATA for such sections of data, f.e.

  1. <script type="text/javascript">
  2.   //< ![CDATA[
  3.      function enableDisableRegisterButton(element1, element2) {
  4.         registerButtonWrapper.disabled = !(element1.checked && element2.checked);
  5. ...
  6.      }
  7.   ]]>
  8. </script>

>> more…