Kajak kursus på Øresund
I weekenden var undertegnede og to kolleger (Andreas og Sarah) på kajak kursus ved Amager strandpark. Ved at gennemgå kurset fik vi et EPP2 certifikat, EPP står for Euro Paddle Pass. På kurset lærte vi div. manøvrer og styretag, men vigtigst af alt lærte vi forskellige redningsteknikker.
Udover at være meget lærerigt var det også utrolig sjovt. For mit vedkommende var noget af det sjoveste at prøve at vende rundt, så man kom under vandet, det var lidt surrealistisk at sidde i en kajak, der vender på hovedet.
Om lørdagen var vejret helt fantastisk kun lidt vind og ingen regn. Søndag derimod fik vi nogle ordentlige regnskyl, desværre også torden, hvilket bevirkede at vi måtte gå på land. Men det var ikke nok til at slå os ud, vi havde alt i alt en rigtig god weekend. Vi er alle enige om, at vi skal ud på vandet igen, selvom sæsonen går på hæld. Måske vi kan lokke nogle flere kolleger med næste gang?
25/08-2010 | Uncategorized |
Kraftvaerk kåret til Gazelle virksomhed af Børsen
For første gang i Kraftvaerks historie er vi efter et kanon 2009 kåret til Gazellevirksomhed. Kåringen er en anerkendelse af virksomheder, som har formået at skabe overskud samt fordoblet sin omsætning indenfor en 4-årig periode – altså en hurtigløber, der løber forrest. Et klart skulderklap til hele vores organisation, der til daglig knokler for at levere solide IT-løsninger med stor forretningsmæssig indsigt.

I 2010 peger pilen fortsat i den rigtige retning. Her i sensommeren er begge vore kontorer blevet udvidet, og kundeporteføljen vokser stadig støt.
I første omgang glæder vi os over æren, og at vi er en af Danmarks bedste it-konsulenthuse.
Se de øvrige Gazeller og yderligere information her.
Afslutningsvis er det absolut også værd at nævne, at Kraftvaerk er med i opløbet, som er på ca. 500 virksomheder, om Ernst & Youngs Danmarksmester i vækst – også kendt som Entrepreneur OF The Year….
Mere damp på Kraftvaerket
02/08-2010 | Uncategorized |
Nye ansigter
Det er med stor fornøjelse at vi i København i dag byder velkommen til 4 nye ansigter:
Ibrahim Uslu – konsulent til vores kundecenter
Thomas Gilg – konsulent til vores kundecenter
Anders Bøgh – senior manager
Mads A. Lorenzen – intern it-konsulent
Vi forventer at alle fire har fulde cv’er på websitet indenfor 1 uges tid. I mellemtiden kan du bruge tiden på at læse cv’er på vores øvrige dygtige konsulenter.
01/07-2010 | Uncategorized |
Kraftvaerk udvider
I takt med Kraftvaerks positive udvikling er vores kontorer i Århus og København blevet for små, og vi har derfor besluttet at begge kontorer udvides henover sommeren.
I Århus er de nye kvadratmeter allerede indviet, hvilket øger kontoret fra ca. 75 til 300 kvadratmeter.
I København udvides der med dele af 6. salen, således at der i sensommeren disponeres over i alt mere end 650 kvadratmeter.
Begge kontorer er at finde på samme adresser og telefoner som hidtil.
24/06-2010 | Uncategorized |
Find vej til Kraftvaerk
På baggrund af flere henvendelser har vi lanceret en vejviser til vores kontorer.
Klik på ovenstående link og vælg efterfølgende vejviser til det kontor du skal besøge.
Hermed skulle det være endnu lettere at blive kunde hos Kraftvaerk.
17/06-2010 | Uncategorized |
Regnskab for 2009
Den 19. april 2010 afholdt vi i København ordinær generalforsamling i Kraftvaerk A/S.
Året 2009 blev et godt år hvor vi styrkede vores position i Danmark, særligt i kraft af vores kontor i Århus, der aflagde første årsrapport og i øvrigt blev omdannet til et aktieselskab efter blot et års drift.
Derudover er det første gang i Kraftvaerks historie at vi aflægger koncernregnskab, som i øvrigt forventes at indbringe os Børsens Gazellepris anno 2010 som uddeles i august.
Vores ambitionerne for 2010 er høje og vi har til dato set en fornuftig udvikling i markedet. Med knofedt og hårdt arbejde fra alle mand, er vi overbevist om at 2010 bliver mindst lige så godt som 2009.
28/05-2010 | Uncategorized |
Tour de Furesø
Igen i år blev det tid til Kraftvaerks årlige cykeltur i Nordsjælland, også kaldet Tour de Furesø. Vejret var noget svingende op ad dagen, mente endte heldigvis godt. Om end skoven absolut ikke var tør. Til forskel fra tidligere år delte vi deltagerne i 3 hold og routen var også lidt længere, alt i alt endte vi med godt 11 km i benene.
Efter cykelturen stod den på en velfortjent omgang øl og mad, og ellers op på hesten og ned til Virum st. i regnvejr.
Enkelte valgte at satse på Virum Bodega mens andre satte sig på toget. En ting er dog helt sikkert, der er dømt øm bag allerede nu..
Du kan se vores rute her
11/05-2010 | Uncategorized |
Google Chrome Speed test
Ganske anderledes performance-måling af en browser:
Der er også et interessant “making-of“-filmklip
14/04-2010 | Uncategorized |
jQuery tablesorter – Localized dates and numbers
At Kraftvaerk we have been using the jQuery tablesorter plugin in many of our projects. In most of these we have had to deal with localized dates and numbers in the tables. Ie a custom date format such as “25 jan 2010″ where the month name is localized, or a localized number with different thousand and decimal separator like “13.450,50″, or it could a totally custom display of weight like “200 Ton 352 Kg”.
How do you parse such strings with a custom jQuery tablesorter parser plugin in Javascript? The short is answer: You don’t, it simply requires too much work to maintain both the Javascript code and the server side code, in our case C#, that handles the formatting/parsing.
Instead you should include a sortable value, an integer, a decimal, or a string, in each table cell. You could display the aforementioned custom weight format as:
Make sure you read the update below for very simple sorting on localized values without a custom textExtraction function.
<td> 200 Ton 352 Kg<span class="hidden">200.352</span> </td>
With CSS you can hide the span tag with:
span.hidden {
display: none;
}
Since “200.352″ is a simple decimal number that tablesorter can sort you just need to tell tablesorter to use this hidden value instead of the formatted text. Fortunately this is very easy using the textExtraction config option.
$("table.sortable").tablesorter({
sortList: [[0, 0]],
widgets: ['zebra'],
textExtraction: function(node) {
return $(node).find("span.hidden").text();
}
});
Using this code you will need to include hidden span for all table cells, even though its not really needed, ie for simple text values or integers. To be honest we dont really like the use of an extra span tag inside the table cell. So we decided to create a custom attribute on the td tag and sort by this value:
<td sortvalue="200.352"> 200 Ton 352 Kg </td>
And the jQuery tablesorter config code:
$("table.sortable").tablesorter({
sortList: [[0, 0]],
widgets: ['zebra'],
textExtraction: function(node) {
return node.getAttribute('sortvalue') || node.innerHTML;
}
});
This code will check for an attribute named “sortvalue” and if it doesn’t exist it will use the text in the table cell instead. Unfortunately because the “sortvalue” attribute is not defined in any HTML specification by W3C your pages will not be fully valid (X)HTML. However using the jQuery Metadata plugin you can inject arbitrary information into the “class” attribute on any element. If you haven’t noticed the tablesorter plugin allows you to use this feature, so you might already be using the metadata plugin.
The table cell:
<td class="{sortvalue: '200.352'}">
200 Ton 352 Kg
</td>
jQuery tablesorter config code:
$("table.sortable").tablesorter({
sortList: [[0, 0]],
widgets: ['zebra'],
textExtraction: function(node) {
return $(node).metadata().sortvalue || node.innerHTML;
}
});
Update – Very simple sorting on localized values
A reader, Mathias, pointed out that when using the technique with a hidden span tag, there is no need for a custom textExtraction function. This is because the default textExtraction method for jQuery tablesorter checks for any child nodes in each table cell, and if the cell contains any child elements it will use the innerHTML value for the first child node. Here’s a snip from the jQuery tablesorter source code:
if(config.textExtraction == "simple") {
if(node.childNodes[0] && node.childNodes[0].hasChildNodes()) {
t = node.childNodes[0].innerHTML;
} else {
t = node.innerHTML;
}
} else {
// Snip
}
So using the hidden span technique is very easy, just make sure that the element containing the sortable value is the first child element of the table cell. In my example above the span was the only child element since the raw text "200 Ton 352 Kg" is not considered a node in DOM.
I have discussed the this hidden span/element technique with a designer colleague, and we both agree that it does mess up the semantics of the table a bit. What you could do is to wrap the human readable value in an element too. Like
<td> <span class="machine">200.352</span> <span class="human">200 Ton 352 Kg</span> </td>
That would bring some semantics back. Thanks to Mathias for the very useful comment.
13/04-2010 | Uncategorized |
Kenn på toppen
Det er ikke kun i vore løsninger, vi gerne bryder grænser for at levere god kvalitet og høj service. Kenn har lige været en tur i Argentina for at prøve kræfter med Sydamerikas højeste bjerg. Her ses resultatet


