<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hinnerup Net</title>
	<atom:link href="http://www.hinnerup.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hinnerup.net</link>
	<description></description>
	<lastBuildDate>Thu, 19 Jan 2012 12:35:57 +0000</lastBuildDate>
	<language>da</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Glædelig jul 2011</title>
		<link>http://www.hinnerup.net/permanent/2011/12/24/xmas-and-newyear-2011/</link>
		<comments>http://www.hinnerup.net/permanent/2011/12/24/xmas-and-newyear-2011/#comments</comments>
		<pubDate>Sat, 24 Dec 2011 13:39:06 +0000</pubDate>
		<dc:creator>Michael Schøler</dc:creator>
				<category><![CDATA[Meddelelser]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1634</guid>
		<description><![CDATA[Hinnerup Net ønsker endnu engang alle vore kunder og samarbejdspartnere en glædelig jul og et godt nytår. Herfra lyder et tak det forgange år, vi ser frem til de kommende!]]></description>
			<content:encoded><![CDATA[<p>Hinnerup Net ønsker endnu engang alle vore kunder og samarbejdspartnere en glædelig jul og et godt nytår.</p>
<p>Herfra lyder et tak det forgange år, vi ser frem til de kommende!</p>
<div style="text-align:center">
<img src="http://www.hinnerup.net/wp-content/uploads/2011/12/fractal-xmas-tree1.png" alt="" title="fractal-xmas-tree" width="680" height="111" class="aligncenter size-full wp-image-1637" />
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/12/24/xmas-and-newyear-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presentation at Super Computing and GPU Conference</title>
		<link>http://www.hinnerup.net/permanent/2011/12/16/presentation-at-super-computing-and-gpu-conference/</link>
		<comments>http://www.hinnerup.net/permanent/2011/12/16/presentation-at-super-computing-and-gpu-conference/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 10:25:48 +0000</pubDate>
		<dc:creator>Michael Schøler</dc:creator>
				<category><![CDATA[GPGPU]]></category>
		<category><![CDATA[Konference]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Universitet]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1607</guid>
		<description><![CDATA[On December 15th 2011, Michael Schøler (Hinnerup Net) and Henrik Høj Madsen (LEGO) presented LEGO 3DServices at the &#8220;Accelerating Computations &#8211; a research conference on graphics processing units, visual computing and beyond&#8221; conference held by the Alexandra Institute / Computer Graphics Lab in Aarhus. Our presentation topic was as follows: Scalable GPU computing service architecture: [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;">
<img class="aligncenter size-full wp-image-1608" style="width: 96%;" title="Michael Schøler and Henrik Høj Madsen presenting LEGO 3DServices at the 'Accelerating Computations - a research conference on graphics processing units, visual computing and beyond' conference..." src="http://www.hinnerup.net/wp-content/uploads/2011/12/2011-12-16_1024.png" alt="" />
</div>
<p></p>
<p>On December 15th 2011, Michael Schøler (Hinnerup Net) and Henrik Høj Madsen (LEGO) presented LEGO 3DServices at the <a href="http://cg.alexandra.dk/2011/11/24/accelerating-computations-a-research-conference-on-graphics-processing-units-visual-computing-and-beyond/">&#8220;Accelerating Computations &#8211; a research conference on graphics processing units, visual computing and beyond&#8221;</a> conference held by the <a href="http://cg.alexandra.dk">Alexandra Institute / Computer Graphics Lab</a> in Aarhus.</p>
<p>Our presentation topic was as follows:</p>
<div style="margin: 1em; border: solid 2px #aaa; background-color: #ededed; color: #000; padding: 2em;">
<a href="/wp-content/uploads/2011/12/Accelerating_computations.pdf"><img class="aligncenter size-medium wp-image-1609" style="float: right;" title="Alexandra Institute conference invitation poster (click to view PDF)" src="/wp-content/uploads/2011/12/2011-12-16_1116-211x300.png" alt="" width="211" height="300" /></a><br />
<strong>Scalable GPU computing service architecture: LEGO 3DServices</strong><br /><small>Michael Schøler (Hinnerup Net) and Henrik Høj Madsen (LEGO)</small></p>
<p>As LEGO is moving into the virtual playspace, a platform technology has been developed in-house primarily based on NVIDIA technologies, featuring:</p>
<ul>
<li>CUDA, OptiX, OpenGL and general shaders</li>
<li>17 NVIDIA Quadro Plex 2200 S4 in multiple environments, multiple datacentres</li>
<li>Advanced shading techniques for approaching high-quality results in real-time</li>
<li>On-demand asset generation</li>
<li>CDN assets distribution</li>
<li>A generic service-oriented interface</li>
<li>A distributed rendering architecture</li>
<li>Architectural patterns for distributed computing</li>
<li>A plugin architecture supporting existing and future LEGO experiences</li>
<li>A mentality shift from traditional ways of doing things on CPU vs GPU</li>
<li>General experiences from developing on NVIDIA tech in a large-scale Enterprise setup</li>
</ul>
<p></p>
<p>The LEGO 3DServices system is designed to support diverse computational needs such as on-demand rendering, mesh optimisation, a Massive Multiplayer Online Game (MMO), product visualisations, 3D modeling and other current and future demanding computational tasks. Our aim with this session is to share our learnings and present LEGO’s vision of the future of distributed GPU accelerated computation as a business-driven platform technology.
</p></div>
<p></p>
<p>The conference also included these very exciting presentations:</p>
<ul>
<li><strong>How OptiX Makes the GPU Shine – a look inside NVIDIA’s Ray Tracing Engine</strong><br />David McAllister, Optix Manager, NVIDIA</li>
<li><strong>MR reconstruction on GPU</strong><br />Thomas Sangild Sørensen, Associate Professor, Computer Science, Aarhus University</li>
<li><strong>Parthenon Renderer Revealed</strong><br />Toshiya Hachisuka, Assistant Professor, Computer Science, Aarhus University</li>
<li><strong>Subsurface Light Propagation Volumes</strong><br />Thomas Kim Kjeldsen, Research and Innovation Scientist, Computer Graphics Lab, Alexandra Institute</li>
<li><strong>Accelerating Dense Linear Algebra on the GPU</strong><br />Hans Henrik Brandenborg Sørensen, Post. Doc., GPU Lab, DTU Informatics</li>
<li><strong>Massive Acceleration at the Alexandra CG Lab</strong><br />Jesper Bjerg Mosegaard, Head of Research and Innovation, Computer Graphics Lab, Alexandra Institute</li>
<li><strong>Dozens of Uses for Billions of Rays – a survey of ray tracing applications</strong><br />David McAllister, Optix Manager, NVIDIA</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/12/16/presentation-at-super-computing-and-gpu-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Undervisningsoplæg for datamatikere på Erhvervsakademi Århus</title>
		<link>http://www.hinnerup.net/permanent/2011/11/29/oop-education-at-business-academy-aarhus/</link>
		<comments>http://www.hinnerup.net/permanent/2011/11/29/oop-education-at-business-academy-aarhus/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 19:19:11 +0000</pubDate>
		<dc:creator>Michael Schøler</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Datamatiker]]></category>
		<category><![CDATA[Erhvervsakademi Århus]]></category>
		<category><![CDATA[Oplæg]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1591</guid>
		<description><![CDATA[Som en udløber af et af vore interne fredagsoplæg, har Michael Schøler d. 23/11-2011 været på besøg og afholdt et undervisningsoplæg for en større gruppe datamatikerstuderende på Erhvervsakademi Århus om hvordan man ved brug af forskellige udviklingsmetoder og principper kan blive bedre til at udføre Objekt Orienteret Design (OOD) programmering, i særdeleshed med fokus på [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.hinnerup.net/wp-content/uploads/2011/11/logo-print.png" alt="" title="Datamatiker, Erhvervsakademi Århus" width="217" height="89" class="aligncenter size-full wp-image-1592" /></p>
<p>Som en udløber af et af vore interne fredagsoplæg, har Michael Schøler d. 23/11-2011 været på besøg og afholdt et undervisningsoplæg for en større gruppe <a href="http://www.eaaa.dk/videreg%C3%A5ende+uddannelser/it+og+teknik/datamatiker">datamatikerstuderende på Erhvervsakademi Århus</a> om hvordan man ved brug af forskellige udviklingsmetoder og principper kan blive bedre til at udføre Objekt Orienteret Design (OOD) programmering, i særdeleshed med fokus på mere overskuelig og fejlfri kode. Ligeledes blev det belyst hvordan den teoretiske undervisning de studerende er vant til kan samspille med erfaringerne vi har gjort os &#8220;på den anden side af hegnet&#8221;.</p>
<p>Oplæget blev vel modtaget, og både undervejs og afslutningsvist krydret med en masse gode og interessante spørgsmål fra de studerende.</p>
<p>Vi siger tak for interessen (og vinen) og glæder os til næste gang vi får chancen for at stille op igen med et nyt interessant pust fra den praktiserende del af fagområderne.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/11/29/oop-education-at-business-academy-aarhus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL – Eksport og import via kommandopromt</title>
		<link>http://www.hinnerup.net/permanent/2011/11/25/mysql-%e2%80%93-eksport-og-import-via-kommandopromt/</link>
		<comments>http://www.hinnerup.net/permanent/2011/11/25/mysql-%e2%80%93-eksport-og-import-via-kommandopromt/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 14:49:43 +0000</pubDate>
		<dc:creator>Morten Hatting Voltelen</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1570</guid>
		<description><![CDATA[phpMyAdmin hjælper med administration af mysqldatabaser. Det kan også importere og eksportere databaserne, men begynder de at blive for store, kan phpMyAdmin ikke håndtere det mere. Det kan man så bruge eksempelvis Windows&#8217; kommandopromt til. Følgende er en guide til hvordan. For at følgende kan fungere, skal man finde sin mysql fil, som hvis man [...]]]></description>
			<content:encoded><![CDATA[<p>phpMyAdmin hjælper med administration af mysqldatabaser. Det kan også importere og eksportere databaserne, men begynder de at blive for store, kan phpMyAdmin ikke håndtere det mere. Det kan man så bruge eksempelvis Windows&#8217; kommandopromt til. Følgende er en guide til hvordan.</p>
<p>For at følgende kan fungere, skal man finde sin mysql fil, som hvis man bruger <a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> ligger i (alt efter hvor xampp er installeret, men fx direkte på c drevet) c:/xampp/mysql/bin</p>
<p>For at havne i denne mappe skrives i kommandopromt (som åbnes ved at trykke window + r og skrive ”cmd” eller ved at finde den i startmenuen)
<pre class="prettyprint">
cd c:&#47;xampp&#47;mysql&#47;bin
</pre>
<p>Herefter er man klar til nedenstående kommandoer.</p>
<p>I det følgende anvendes &lt;tekst&gt; som noget der skal skiftes ud med relevant værdi, mens [tekst] er noget der kan udelades.</p>
<h3>Eksport af eksisterende tabel/database/databaser</h3>
<p>Kommandoen til eksport af mysql i komandopromt hedder mysqldump. Til den følger en masse mulige parametre. Indledningsvis drejer det sig om at oprette forbindelse til serveren.<br />
Der skal angives et brugernavn, et password, og i nogle tilfælde også et servernavn. De angives på følgende vis:</p>
<ul>
<li>Brugernavnet:
<pre class="prettyprint"> –u &lt;username&gt;</pre>
</li>
<li>Password:
<pre class="prettyprint">
 -p&lt;password&gt;</pre>
<p> (bemærk det manglende mellemrum mellem –p og &lt;password&gt;  Det skal være der!) eller blot –p for at blive promtet.</li>
<li>Hvis man ønsker at ramme en anden server end den lokale, kan man (såfremt den tillader ekstern tilgang) skrive
<pre class="prettyprint">
 –h &lt;hostaddress&gt;</pre>
</li>
</ul>
<p>Derefter skal man angive hvad man ønsker at eksportere. Man kan vælge mellem hele samlingen, en enkelt database, eller blot en enkelt tabel:</p>
<ul>
<li>For at eksportere alle databaser i samlingen,  skrives
<pre class="prettyprint">
–-all-databases</pre>
</li>
<li>For at vælge flere databaser skrives
<pre class="prettyprint">
––databases &lt;db1&gt; &lt;db2&gt; ...</pre>
</li>
<li>For at vælge en database skrives blot
<pre class="prettyprint">
&lt;databasenavn&gt;</pre>
</li>
<li>For at vælge en eller flere tabeller i en database skrives
<pre class="prettyprint">
&lt;databasenavn&gt; &lt;t1&gt; &#91;&lt;t2&gt; ..&#93;</pre>
</li>
</ul>
<p>Til sidste skal man angive, hvor man ønsker at gemme det henne. Det gøres ved at tilføje:</p>
<pre class="prettyprint">&gt; &lt;sti til fil&#47;filnavn&gt;.sql</pre>
<p>For at eksportere en enkelt database fra en ekstern server til en fil skal man altså skrive:</p>
<pre class="prettyprint">
Mysqldump –u &lt;username&gt; &#91;-p&#91;&lt;password&gt;&#93;&#93; &#91;–h &lt;hostaddress&gt;&#93; &lt;databasename&gt; &gt; &lt;sti&#47;til&#47;fil&#47;filnavn&gt;.sql
</pre>
<p>Se flere parametre på: <a href="http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html">http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html</a></p>
<h3>Import af eksporterede sqlfil</h3>
<p>For at importere den dannede sql fil, bruges komandoen mysql.</p>
<p>For at bruge den, skal der også angives brugernavn, password og evt servernavn. Det gøres på samme måde, som ved eksport (se ovenfor).</p>
<p>Så for at få adgang til mysql panelet (MySQL monitor) skrives:</p>
<pre class="prettyprint">Mysql –u &lt;username&gt; &#91;-p&#91;&lt;password&gt;&#93;&#93; &#91;–h &lt;hostaddress&gt;&#93;
</pre>
<p>Herefter kan standard mysql komandoer bruges (Alle komandoer bør afsluttes med ”;” ) Den vigtigeste i denne sammenhæng er kommandoen</p>
<pre class="prettyprint">
source &#91;&lt;fil&#47;sti&#47;&gt;&#93;&lt;filename&gt;.sql
</pre>
<p>Den bruges til at udføre koden fra en sql-fil. Alt efter indholdet af den udvalgte sql-fil, skal forskellige ting defineres inden brug. Hvis sql-filen indholder en eksport af alle/flere databaser, kan source blot udføres  lige efter man har fået adgang til mysql. Det kræver selvfølgeligt at man benytter en bruger med de nødvendige privillegier. Man skal samtidig passe på ved import af en hel samling databaser, da den vil overskrive eksisterende tabeller i databaser, hvis der er navnesammenfald.</p>
<p>Har man kun eksporteret fra en database, skal man selv oprette/vælge den database man ønsker at importere til. Inden man gør det kan komandoen</p>
<pre class="prettyprint">
show databases;
</pre>
<p>være praktisk. Den viser de allerede eksisterende databaser (som man har adgang til).</p>
<p>Hvis den ønskede database ikke eksisterer, kan den oprettes ved at skrive:</p>
<pre class="prettyprint">
create database &lt;databasename&gt;;
</pre>
<p>Hvis man vil være sikker på at man får en &#8220;ren&#8221; database, kan man slette den først, for derefter at oprette den igen, vha tidligere komando. Man sletter en database ved at skrive</p>
<pre class="prettyprint">
drop database &lt;databasenavn&gt;;
</pre>
<p>Når man har fundet/oprettet den database man ønsker at bruge vælges den ved at skrive</p>
<pre class="prettyprint">
use &lt;databasename&gt;;
</pre>
<p>Derefter kan source komandoen bruges, og tabellerne importeres ind i den valgte database.<br />
Processen for en import af en database kunne se sådan ud:</p>
<pre class="prettyprint">
shell&gt;mysql -u &lt;username&gt; -p&lt;password&gt;
show databases;
drop database &lt;databasename&gt;;
create database &lt;databasename&gt;;
use &lt;databasename&gt;;
source &#91;path&#47;to&#47;sqlfile&#47;&#93;&lt;filename&gt;.sql;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/11/25/mysql-%e2%80%93-eksport-og-import-via-kommandopromt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stolte gazeller</title>
		<link>http://www.hinnerup.net/permanent/2011/11/02/stolte-gazeller/</link>
		<comments>http://www.hinnerup.net/permanent/2011/11/02/stolte-gazeller/#comments</comments>
		<pubDate>Wed, 02 Nov 2011 08:14:33 +0000</pubDate>
		<dc:creator>Tobias Hinnerup</dc:creator>
				<category><![CDATA[Blandet]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1559</guid>
		<description><![CDATA[Erhvervsavisen Børsen har kåret Hinnerup Net A/S som Gazellevirksomhed &#8211; på baggrund af en dokumenteret sund og bæredygtig udvikling i virksomheden over en længere periode. Særlig i en tid hvor &#8220;finanskrise&#8221; er blevet et hverdagsord, er det naturligvis noget vi i høj grad er stolte af, og som vi håber at kunne leve op til [...]]]></description>
			<content:encoded><![CDATA[<p><a style="float: right;" href="http://www.hinnerup.net/wp-content/uploads/2011/11/Gazelle2011.png"><img src="http://www.hinnerup.net/wp-content/uploads/2011/11/Gazelle2011.png" alt="" title="Gazelle2011" width="132" height="100" class="alignright size-full wp-image-1562" /></a>Erhvervsavisen Børsen har kåret Hinnerup Net A/S som Gazellevirksomhed &#8211; på baggrund af en dokumenteret sund og bæredygtig udvikling i virksomheden over en længere periode.</p>
<p>Særlig i en tid hvor &#8220;finanskrise&#8221; er blevet et hverdagsord, er det naturligvis noget vi i høj grad er stolte af, og som vi håber at kunne leve op til også fremadrettet. </p>
<p>Vi tager det som en cadeau til vores medarbejdere, kunder og øvrige samarbejdspartnere, der har båret vores strategi om langsigtede samarbejder, baseret på exceptionelle kompetencer ud i livet &#8211; med overbevisende success.</p>
<p>Med det som afsæt, forventer vi også fremadrettet at kunne understøtte og videreudvikle den base af viden og færdigheder inden for vores virkefelt der har bragt os hertil. Vi glæder os til også de næste mange år at være en værdifuld støtte og foretrukken samarbejdspartner for vores kunder.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/11/02/stolte-gazeller/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Velkommen til datamatiker praktikanterne</title>
		<link>http://www.hinnerup.net/permanent/2011/09/01/velkommen-til-datamatiker-praktikanterne/</link>
		<comments>http://www.hinnerup.net/permanent/2011/09/01/velkommen-til-datamatiker-praktikanterne/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 13:23:11 +0000</pubDate>
		<dc:creator>Michael Schøler</dc:creator>
				<category><![CDATA[Intern]]></category>
		<category><![CDATA[Meddelelser]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1549</guid>
		<description><![CDATA[Vi har d. 8. august budt velkommen til tre datamatikerstuderende fra Erhvervsakademi Aarhus. De vil beskæftige sig med følgende områder hos os: Udvikling af Determino (Hinnerup Net A/S&#8217;s måske kommende faktureringssystem) MSSQL samt .NET C# udvikling SCRUM / Agile udviklingsmetoderne Fredagsoplæg Formålet med praktikopholdet, er at få omsat noget af den teoretiske viden de har [...]]]></description>
			<content:encoded><![CDATA[<div style="width:100%;text-align:center;"><img src="http://www.hinnerup.net/wp-content/uploads/2011/09/datamatiker-gruppe-2011.png" alt="" title="datamatiker-gruppe-2011" style="width:90%" /></div>
<p>Vi har d. 8. august budt velkommen til tre <a href="http://www.eaaa.dk/videreg%C3%A5ende+uddannelser/it+og+teknik/datamatiker">datamatikerstuderende fra Erhvervsakademi Aarhus</a>. De vil beskæftige sig med følgende områder hos os:</p>
<ul>
<li>Udvikling af Determino (Hinnerup Net A/S&#8217;s måske kommende faktureringssystem)</li>
<li>MSSQL samt .NET C# udvikling</li>
<li>SCRUM / Agile udviklingsmetoderne</li>
<li>Fredagsoplæg</li>
</ul>
<p>Formålet med praktikopholdet, er at få omsat noget af den teoretiske viden de har med sig til praktisk erfaring, samtidigt med at gruppen får en fornemmelse for almindelige arbejdsgange i en IT/udviklings-virksomhed, og får snuset lidt til områder der ikke nødvendigvis har været en del af det de tre har mødt i undervisningen.</p>
<p>Medlemmerne af praktikantgruppen er:</p>
<ul>
<li>Nawed Nabi Zada</li>
<li>Jacob Sørensen</li>
<li>Jannik Schøler</li>
</ul>
<p>Efter deres 9 ugers praktikforløb, vil gruppen fortsætte et 10 ugers hovedopgave forløb hos os.</p>
<p>Velkommen til!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/09/01/velkommen-til-datamatiker-praktikanterne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All your base</title>
		<link>http://www.hinnerup.net/permanent/2011/07/05/all-your-base/</link>
		<comments>http://www.hinnerup.net/permanent/2011/07/05/all-your-base/#comments</comments>
		<pubDate>Tue, 05 Jul 2011 06:56:06 +0000</pubDate>
		<dc:creator>Michael Schøler</dc:creator>
				<category><![CDATA[Gode råd]]></category>
		<category><![CDATA[base64]]></category>
		<category><![CDATA[Encoding]]></category>
		<category><![CDATA[urlencoding]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1529</guid>
		<description><![CDATA[&#8230; are belong to us! (Nej, vi er ikke blevet hackede!) I går aftes tumlede jeg blot kortvarigt (igen) med et af de mest fejl-skabende områder inden for programmeringsverdenen; encoding. Base64 encoding og decoding er smart til overførsel og delvist til lagring af binære data over ikke binære forbindelser / lagerdestinationer. Eksempelvis som HTTP POST [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://da.wikipedia.org/wiki/All_your_base_are_belong_to_us">&#8230; are belong to us!</a><br />
<small>(Nej, vi er ikke blevet hackede!)</small></p>
<p>I går aftes tumlede jeg blot kortvarigt (igen) med et af de mest fejl-skabende områder inden for programmeringsverdenen; encoding.</p>
<p><a href="http://en.wikipedia.org/wiki/Base64">Base64</a> <a href="http://www.motobit.com/util/base64-decoder-encoder.asp">encoding og decoding</a> er smart til overførsel og delvist til lagring af binære data over ikke binære forbindelser / lagerdestinationer. Eksempelvis som HTTP POST data eller svar data på et HTTP GET request, og ligeledes til lagring i en cookie, eller en flash variabel og så videre.</p>
<div style="text-align:center;"><img src="http://www.hinnerup.net/wp-content/uploads/2011/07/base64.png" alt="" title="base64" width="400" height="274" class="alignleft size-full wp-image-1530" /></div>
<p>Problemet opstår når et led i data-kæden misforstår base64 og <a href="http://www.w3schools.com/TAGS/ref_urlencode.asp">urlencoder</a> det &#8220;bare for at være sikker&#8221; og fordi &#8220;det plejer man da at gøre&#8221;. Urlencoding anvendes ofte på streng data for at sikre at disse data kan overleve at indgå som en parameter i en URL adresse. Her vil man typisk omforme mellemrum, specialtegn med videre, til gyldige URL adresse tegn (<a href="http://www.ietf.org/rfc/rfc3986.txt">se kapitel 2 i RFC3986</a>).</p>
<p>Problemet var nemt løst, men som altid med encoding-problemer, handler fejlsøgningen mest af alt om at forstå/gennemskue hele vejen dataene rejser fra start til slut og tilbage igen.</p>
<p><b>All your base64 YXJlIGJlbG9uZyB0byB1cw==</b></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/07/05/all-your-base/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Autocomplete med Ajax på adresse med jQuery og OIO</title>
		<link>http://www.hinnerup.net/permanent/2011/06/23/autocomplete-med-ajax-paa-adresse-med-jquery-og-oio/</link>
		<comments>http://www.hinnerup.net/permanent/2011/06/23/autocomplete-med-ajax-paa-adresse-med-jquery-og-oio/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 12:04:52 +0000</pubDate>
		<dc:creator>Tobias Hinnerup</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Programmering]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[JSONP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Widget]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1470</guid>
		<description><![CDATA[Indtastning af adresseoplysninger er notorisk noget bøvlet: Der er flere indbyrdes forbundne felter og erfaringsvis opstår der meget hurtigt mangel på sammenhæng &#8211; hvilket fører til manuelle processer for opfølgning og fejlretning, for ikke at glemme muligheden for tabte forsendelser. Heldigvis har den offentlige digitalisering i danmark resulteret i gratis &#038; ubetinget adgang til services, [...]]]></description>
			<content:encoded><![CDATA[<p>Indtastning af adresseoplysninger er notorisk noget bøvlet: Der er flere indbyrdes forbundne felter og erfaringsvis opstår der meget hurtigt mangel på sammenhæng &#8211; hvilket fører til manuelle processer for opfølgning og fejlretning, for ikke at glemme muligheden for tabte forsendelser.</p>
<p>Heldigvis har den offentlige digitalisering i danmark resulteret i gratis &#038; ubetinget adgang til services, der kan sammensættes til en gevaldig hjælp i forhold til at ramme rigtigt: Med et par kombinationer af jQuery, Ajax, JSONP og autocomplete er det muligt ud fra et delvist vejnavn at få postnummer og bynavn givet, med samt en liste over gyldige vejnumre.</p>
<p>Herunder et eksempel på et sæt adressefelter der hjælper hvor hjælpes kan. Prøv eventuelt først at taste vejnavn og lade autocomplete klare &#8220;resten&#8221; &#8211; og derefter i postnummerfeltet at skrive et nyt/andet postnummer og derefter konstatér, at autocomplete i vejnavne-feltet nu kun giver navne i det pågældende postnummer.</p>
<style>  .wp-fuckup p, .wp-fuckup br  { display: none; } .ui-autocomplete-loading { background: white url('/2011/06/oiorest/ui-anim_basic_16x16.gif') right center no-repeat; }	#streetname { width: 25em; } </style>
<div class="wp-fuckup">
<link rel="stylesheet" href="http://code.jquery.com/ui/1.8.13/themes/base/jquery-ui.css">
<script src="http://code.jquery.com/jquery-latest.js"></script><br />
<script src="http://code.jquery.com/ui/1.8.13/jquery-ui.min.js"></script><br />
<script src="/2011/06/oiorest/jquery.ui.plugin_autocompleteAddress.js"></script><br />
<script>
	$().ready(function() {
		jQuery("#streetname").autocompleteAddress();
	});
</script></p>
<div class="ui-widget">
  <label for="streetname" >Vejnavn:</label></p>
<input type="text" name="streetname" id="streetname" />
  <label for="streetnumber">Nr.:</label></p>
<input type="text" name="streetnumber" id="streetnumber" size="4" />
</div>
<div class="ui-widget">
  <label for="zipcode">Postnummer: </label></p>
<input type="text" name="zipcode" id="zipcode" size="4"  />
<input type="text" name="city" id="city" size="45" disabled="disabled" /></div>
</div>
<p>Givet, at de rette inkludes er gjort, kan den fulde funktionalitet af ovenstående implementeres med et kald ala</p>
<pre class="prettyprint">
$().ready(function() {
  $(&#34;#streetname&#34;).autocompleteAddress();
});
</pre>
<p>Ovenstående under forudsætning af at der er defineret input felter i HTML&#8217;en som herunder.</p>
<pre class="prettyprint">
&lt;div class=&#34;ui-widget&#34;&gt;
	&lt;label for=&#34;streetname&#34;&gt;Vejnavn: &lt;&#47;label&gt;
	&lt;input type=&#34;text&#34; name=&#34;streetname&#34; id=&#34;streetname&#34;&#47;&gt;
	&lt;label for=&#34;streetnumber&#34;&gt;Nr.: &lt;&#47;label&gt;
	&lt;input type=&#34;text&#34; name=&#34;streetnumber&#34; id=&#34;streetnumber&#34; size=&#34;4&#34; &#47;&gt;
&lt;&#47;div&gt;
&lt;div class=&#34;ui-widget&#34;&gt;
	&lt;label for=&#34;zipcode&#34;&gt;Postnummer: &lt;&#47;label&gt;
	&lt;input type=&#34;text&#34; name=&#34;zipcode&#34; id=&#34;zipcode&#34; size=&#34;4&#34;  &#47;&gt;
	&lt;input type=&#34;text&#34; name=&#34;city&#34; id=&#34;city&#34; size=&#34;45&#34; disabled=&#34;disabled&#34; &#47;&gt;
&lt;&#47;div&gt;</pre>
<p>Såfremt det ønskes at benytte andre feltnavne/id&#8217;er en de her angivne, kan de angives eksplicit:</p>
<pre class="prettyprint">
  $(&#34;#streetname&#34;).autocompleteAddress({
    streetNumber: &#34;#streetnumber&#34;,
    zipCode : &#34;#zipcode&#34;,
    city: &#34;#city&#34;
});
</pre>
<p>Såfremt en eller flere af adresse-felterne ikke kan findes (eller angives med null i argumentet) udelades autocomplete-funktionaliteten for dét. Særligt er tilfældet, hvor det eksempelvis kun ønskes at benytte plugin&#8217;et til at lave autocomplete på postnummer/bynavn: Her skal blot sørges for, at instantiere fra et vilkårligt element der IKKE er et input felt (eksempelvis &#8220;body&#8221;).</p>
<p>Værd at bemærke er også følgende options:</p>
<p><b>matchAnywhere</b> Default: false<br />
Afgør hvorvidt det indtastede kan matche et vilkårligt sted i vejnavnet (true), eller kun i begyndelsen (false).</p>
<p><b>maxSuggestions</b> Default: 12<br />
Angiver hvor mange valgmuligheder der maksimalt vises. </p>
<p>De nødvendige inkludes er &#8220;de gængse&#8221; for brug af jQuery og tilhørende UI, med tilføjelse af en lille smule bogholderi (style) og den til formålet udviklede widget: <a href="/2011/06/oiorest/jquery.ui.plugin_autocompleteAddress.js">autocompleteAddress.js</a>.</p>
<pre class="prettyprint">
&lt;link rel=&#34;stylesheet&#34; href=&#34;http:&#47;&#47;code.jquery.com&#47;ui&#47;1.8.13&#47;themes&#47;base&#47;jquery-ui.css&#34;&gt;
&lt;script src=&#34;http:&#47;&#47;code.jquery.com&#47;jquery-latest.js&#34;&gt;&lt;&#47;script&gt;
&lt;script src=&#34;http:&#47;&#47;code.jquery.com&#47;ui&#47;1.8.13&#47;jquery-ui.min.js&#34;&gt;&lt;&#47;script&gt;
&lt;script src=&#34;http:&#47;&#47;www.hinnerup.net&#47;2011&#47;06&#47;oiorest&#47;jquery.ui.plugin_autocompleteAddress.js&#34;&gt;&lt;&#47;script&gt;
&lt;link rel=&#34;stylesheet&#34; href=&#34;jquery.ui.plugin_autocompleteAddress.css&#34;&gt;
</pre>
<p>Bag kulisserne er der tale om, at <a href="http://jqueryui.com/demos/autocomplete/#remote-jsonp">jQuery UI&#8217;s autocomplete er kædet til JSONP opslag</a> mod &#8220;.json&#8221;-udgaverne af OIO&#8217;s REST-baserede webservices, jævnfør deres dokumentation for henholdsvis <a href="http://geo.oiorest.dk/documentation/api/vej.aspx">Vejnavne</a>, <a href="http://geo.oiorest.dk/documentation/api/adresse.aspx">Adresser </a>og <a href="http://geo.oiorest.dk/documentation/api/postnummer.aspx">Postnummer</a>.</p>
<p>Værd at bemærke er, at OIO&#8217;s implementation af vejnavne-servicen returnerer resultater på matches hvorsomhelst i navnet &#8211; og i autocomplete sammenhæng er det mest intuitive for de fleste formentlig at det er starten af vejnavnet man søger på. Såfremt matchAnywhere er false, ganges maxSuggestions med to ved opslag til Geoservicen, for at tilstræbe at &#8220;have nok&#8221;, når overflødige resultater frasorteres (idet Geoservicen kun understøtter søgninger af typen &#8220;matchAnywhere&#8221;). Det har den uheldige effekt, at idet 2 og 3 bogstavskombinationer forekommer i rigtig mange vejnavne, vil de første (mange) resultater fra OIO ofte IKKE være med matches i begyndelsen &#8211; hvorfor autocomplete ikke altid udnyttes af plugin&#8217;et. Bemærk, at denne uhensigtsmæssighed vil kunne omgås ved blot at fjerne maxantal begrænsningen på kaldet mod OIO &#8211; med performance fald som den eneste pris. </p>
<p>Situationen kan eksemplificeres ved i ovenstående at lave søgning efter eksempelvis &#8220;Bygm&#8221; og &#8220;By&#8221; henholdsvis med og uden at have angivet postnummeret &#8220;2400&#8243;.</p>
<p>Rent praktisk håndteres sagen i koden med kald af .filter og derefter .slice som illustreret herunder.</p>
<pre class="prettyprint">
var serviceUri = &#34;http:&#47;&#47;geo.oiorest.dk&#47;vejnavne.json&#34;;
var serviceArguments = {
	&#47;* Note; Custom filtering on success may reduce this *&#47;
	maxantal: matchAnywhere ? maxSuggestions : eStreetName.val().length &lt; 4 ? 20*maxSuggestions : 2*maxSuggestions ,
	vejnavn: request.term
};

if(eZipCode.length) {
	var zipCode = eZipCode.val();
	if(zipCode.length == 4) {
		serviceArguments.postnr = zipCode;
	}
}

$.ajax({
	url: serviceUri,
	dataType: &#34;jsonp&#34;,
	data: serviceArguments,
	success: function( data ) {
		if(!matchAnywhere) {
			&#47;&#47;Remove matches that are not in the beginning of navn
			data = data.filter(function (vej) {
				var pattern = new RegExp(&#34;^&#34; + eStreetName.val(), &#34;i&#34;);
				return pattern.test(vej.navn);
			});
		}

		&#47;&#47;Reduce to max number of suggestions for display
		data = data.slice(0, maxSuggestions); 

		&#47;&#47;Map OIO object to label&#47;value for jQuery autocomplete
		data = $.map(data, function( vej ) {
			return {
				label: vej.navn + &#34; (&#34; + vej.postnummer.nr + &#34;)&#34;,
				value: vej.navn
			}
		})

		response(data);
	}
});
</pre>
<p>For optimering af brugeroplevelsen benyttes kun et enkelt opslag i forhold til autocomplete af vejnummeret &#8211; resultatet caches lokalt. Dette muliggør både en mere logisk sortering end den alfanumeriske (1, 10, 11, 2a, 20 &#8230;) som OIO leverer data i. Desuden omgås derved det &#8220;problem&#8221; der ligger i at adressse-servicen hos OIO matcher eksakt på husnummer-angivelse, og dermed ikke i udgangspunktet er synderligt velegnet til den nærværende autocomplete-anvendelse.</p>
<p>Dette <a href="http://plugins.jquery.com/project/autocompleteAddress">plugin er tilføjet jQuery repository med navnet autocompleteAddress</a>. </p>
<p>Øverst på listen over kommende features står:</p>
<ul>
<li><strong>Version 1.5 (?)</strong>
<ul>
<li>Forslag modtages gerne!</li>
</ul>
</li>
<li><strong>Version 1.4 (2011-08-22)</strong>
<ul>
<li>Sortering på vejnavn/postnummer tilføjet</li>
</ul>
</li>
<li><strong>Version 1.3 (2011-07-27)</strong>
<ul>
<li>Optimeret mapning og filtrering af vejnavne &#038; numre</li>
<li>Optimeret parsning og sortering af vejnumre</li>
<li>Optimeret logik omkring maxantal (tilføjet missFactor)
<li>Tilføjet &#8220;caller id&#8221; til alle requests mod Geoservien</li>
</ul>
</li>
<li><strong>Version 1.2 (2011-07-04)</strong>
<ul>
<li>Logisk sortering af husnumre (tak til Michael Schøler)</li>
<li>Mere intelligent håndtering af opslag til OIO vedrørende maxantal ved matchAnywhere = false</li>
<li>Stylesheet opsætning udtrukket til separat fil</li>
</ul>
</li>
<li><strong>Version 1.1 (2011-06-28)</strong>
<ul>
<li>Valgfri anvendelse af de 4 adressefelter </li>
<li>Valgfri angivelse af metode for selektion af vejnavne (start|alle)</li>
<li>Valgfri angivelse af maks antal indgange i dropdown</li>
</ul>
</li>
<li><strong>Version 1.0 (2011-06-23)</strong>
<ul>
<li>Første version</li>
</ul>
</li>
</ul>
<p>Yderligere forslag og kommentarer er meget velkomne.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/06/23/autocomplete-med-ajax-paa-adresse-med-jquery-og-oio/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>LEGO HERO Factory er nu sejere og vildere!</title>
		<link>http://www.hinnerup.net/permanent/2011/05/24/lego-hero-factory-cooler-and-wilder-than-ever/</link>
		<comments>http://www.hinnerup.net/permanent/2011/05/24/lego-hero-factory-cooler-and-wilder-than-ever/#comments</comments>
		<pubDate>Tue, 24 May 2011 12:58:09 +0000</pubDate>
		<dc:creator>Michael Schøler</dc:creator>
				<category><![CDATA[Meddelelser]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[HERO Factory]]></category>
		<category><![CDATA[HERO Recon Team]]></category>
		<category><![CDATA[LEGO]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1397</guid>
		<description><![CDATA[Det nyligt lancerede site for LEGO HERO Recon Team, der er en rekoniseringsenhed under LEGO Hero Factory, får meget ros og er en stor success både med hensyn til besøgende og online salg. Link til anmeldelse: www.wired.com/geekdad/2011/05/lego-hero-recon-hero-factory-has-just-gotten-a-lot-cooler/ Hinnerup Net har deltaget i udviklingen af de systemer der kan rendere din tilpassede HERO Recon Team samt [...]]]></description>
			<content:encoded><![CDATA[<div style="width:550px; text-align:center; background-color: #000; color: #fff; padding: 1em;">
<table>
<tbody>
<tr style="vertical-align: top;">
<td><img class="alignleft size-medium wp-image-1402" style="padding-right: 10px;" title="HF_Logo" src="http://www.hinnerup.net/wp-content/uploads/2011/05/HF_Logo-300x212.png" alt="" width="200" /></td>
<td><a href="http://www.hinnerup.net/wp-content/uploads/2011/05/e9093938-f382-469e-96a6-b7ad0a6002bc.png"><img class="alignleft size-medium wp-image-1398" title="e9093938-f382-469e-96a6-b7ad0a6002bc" src="http://www.hinnerup.net/wp-content/uploads/2011/05/e9093938-f382-469e-96a6-b7ad0a6002bc-300x300.png" alt="" width="300" height="300" /></a></td>
</tr>
</tbody>
</table>
</div>
<p>Det nyligt lancerede site for <a href="http://herorecon.lego.com/">LEGO HERO Recon Team</a>, der er en rekoniseringsenhed under <a href="http://www.herofactory.lego.com/">LEGO Hero Factory</a>, får meget ros og er en stor success både med hensyn til besøgende og online salg.</p>
<p>Link til anmeldelse: <a href="http://www.wired.com/geekdad/2011/05/lego-hero-recon-hero-factory-has-just-gotten-a-lot-cooler/">www.wired.com/geekdad/2011/05/lego-hero-recon-hero-factory-has-just-gotten-a-lot-cooler/</a></p>
<p>Hinnerup Net har deltaget i udviklingen af de systemer der kan rendere din tilpassede HERO Recon Team samt <a href="http://herofactory.lego.com/en-us/comicbuilder/MyComics.Aspx">Comic Builder</a> figur i nær real-time, samt levere dig en byggevejledning såvel online som sammen med din bestilte HERO Recon Team figur. Ligeledes har vi deltaget i udviklingen af bestillingssystemet hertil.</p>
<p>Byg din egen HERO Recon Team figur online i dag, hvor du kan dele den med andre og/eller købe den som dit eget unikke LEGO samlesæt:<br />
<a href="http://herorecon.lego.com">http://herorecon.lego.com</a></p>
<p>Du kan også prøve HERO Factory Comic Builder her, hvor du kan skabe en tegneserie med din egen HERO figur:<br />
<a href="http://herofactory.lego.com/en-us/comicbuilder/MyComics.Aspx">http://herofactory.lego.com/comicbuilder</a></p>
<p>God fornøjelse!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/05/24/lego-hero-factory-cooler-and-wilder-than-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Omdannelse til aktieselskab</title>
		<link>http://www.hinnerup.net/permanent/2011/05/18/stock-company-conversion/</link>
		<comments>http://www.hinnerup.net/permanent/2011/05/18/stock-company-conversion/#comments</comments>
		<pubDate>Wed, 18 May 2011 11:31:49 +0000</pubDate>
		<dc:creator>Michael Schøler</dc:creator>
				<category><![CDATA[Meddelelser]]></category>

		<guid isPermaLink="false">http://www.hinnerup.net/?p=1368</guid>
		<description><![CDATA[Siden stiftelsen af Hinnerup Net i 1998 har vi været igennem en løbende udvikling af organisationen, i forhold til at tilpasse den til omgivelsernes krav og forventninger – og ikke mindst for at understøtte virksomhedens langsigtede strategi. I forlængelse af den process, er virksomheden per maj 2011 blevet omdannet fra et anpartsselskab til et aktieselskab. [...]]]></description>
			<content:encoded><![CDATA[<p><img src="/wp-content/uploads/2011/05/jump2.png" alt="" title="jump" width="300" class="alignleft size-full wp-image-1372" style="float:right;padding-left:20px;" /></p>
<p>Siden stiftelsen af Hinnerup Net i 1998 har vi været igennem en løbende udvikling af organisationen, i forhold til at tilpasse den til omgivelsernes krav og forventninger – og ikke mindst for at understøtte virksomhedens langsigtede strategi. I forlængelse af den process, er virksomheden per maj 2011 blevet omdannet fra et anpartsselskab til et aktieselskab.</p>
<p>Beslutningen er primært truffet ud ud fra direktionens ønske om at signalere til vore kunder og samarbejdspartnere, at investeringen i virksomhedens fortsatte udvikling er seriøs og langsigtet og sekundært som en del af den strategiske professionalisering af direktionens og bestyrelsens arbejde. Ejerkredsen og direktionen fortsætter uændret efter omdannelsen, i forbindelse med hvilken bestyrelsen udvides ved tiltrædelsen af revisor Claus Loldrup Nielsen.</p>
<p>På denne baggrund beder vi venligst kunder og samarbejdspartnere om at registrere ændringen fra Hinnerup Net ApS til Hinnerup Net A/S alle relevante steder. </p>
<p>Vi ser frem til fortsatte såvel som nye projekter og samarbejder i tiden der kommer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hinnerup.net/permanent/2011/05/18/stock-company-conversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

