Blog

Library Voyager @ TU Delft

Library Voyager: Ervaar de reis door de digitale collectie van de TU Delft Library

Vroeger snuffelden wetenschappers nog wel eens door de bibliotheekboekenkasten. En zo nu en dan vonden ze iets heel interessants waar ze helemaal niet naar op zoek waren. Serendipiteit. Tegenwoordig is het merendeel publicaties full text online beschikbaar, wat het toevallig even rondsnuffelen in bibliotheekboekenkasten tot een minimum brengt. Om dit te compenseren, heeft de TU Delft Library “De Spullenmannen” opdracht gegeven een tool te creëren waarmee wetenschappers toch nog steeds interessante informatie kunnen vinden waar ze niet naar op zoek waren. Zij ontwierpen daarom de Library Voyager. (5 mei 2012 door Robin Barbier)

Lees meer...

Afrondingsfouten met floats

Hey Rick,

Ik heb een vreemd programmeer probleem in Processing.
Wanneer ik het volgende uitvoer krijg ik, naar mijn idee vreemde resultaten.

println(2.0/3.0); // -> 0.6666667
println(2.0-(2.0/3.0)-(2.0/3.0)); // -> 0.66666657
println(2.0-(2.0/3.0)-(2.0/3.0)-(2.0/3.0)); // -> -1.1920929E-7
println(2.0-(2.0/3.0)*3.0); // -> 0.0

Zo snap ik niet waarom 2.0-(2.0/3.0)-(2.0/3.0)-(2.0/3.0) niet hetzelfde is als 2.0-(2.0/3.0)*3.0.
Bijna vreemder vind ik nog dat hij zelfs naar minder dan -1 schiet.

Heb jij een idee?

Alvast bedankt,
Peter

Ha Peter,

Ik heb wel een verklaring. Een float wordt opgeslagen in 4 bytes. Hierdoor moet een breuk zoals 2/3 afgerond worden omdat het werkelijke getal 0.6666666666666666666666666666666666666666666…(plus nog eens oneindig veel zessen) niet zou passen.
Het feit dat 2.0/3.0 afgebeeld wordt als 0.666667 laat de afronding al zien. Maar als je met nf (number format) de float afbeeld zie dat ie nog een paar meer cijfers achter de comma heeft maar wel een beperkt aantal: println(nf(2.0/3.0,0,20)); = 0.66666668653488160000. Waarom ie het niet als 0.666666666666666666000000 opslaat weet ik. Dat zou in mijn beleving wel moeten kunnen…

Hieronder zie je iets beter wat er gebeurt.

float f = 2.0/3.0;
println(nf(f,0,40));            //0.6666666865348816000000000000000000000000
println(nf(f+f,0,40));          //1.3333333730697632000000000000000000000000
println(nf(f+f+f,0,40));        //2.0000000000000000000000000000000000000000
println();
println(nf(2.0+(-f-f-f),0,40)); //0.0000000000000000000000000000000000000000
println(nf(2.0-(f+f+f),0,40));  //0.0000000000000000000000000000000000000000
println(nf(2.0-f-f-f,0,40));    //-0.0000001192092895507812500000000000000000

Het gaat dus eigenlijk pas fout als je geen haakjes gebruikt. Als je eerst -f-f-f of f+f+f uitrekent en dat geheel van 2.0 aftrekt krijg je 0. Ga je ze 1 voor 1 van 2.0 aftrekken dan krijg je afrondingsfouten.

Jou opmerking over naar -1 schieten klopt niet helemaal: -1.1920929E-7 ligt niet in de buurt van -1 maar is een heel klein getal namelijk -0.0000001192092 alleen is bij deze notatie de comma 7 plaatsen verplaatst om het getal leesbaarder te maken (of dat help is maar de vraag, geef mij maar de 0.0000001192092 notatie.

Groetjes Rick

Thanks, erg leerzaam. Met deze info kan ik het probleem zeker oplossen.
Peter

dmpstr.nl

Vanaf 13 maart live op http://dmpstr.nl/#033: het laatste dumpster nieuws uit Amersfoort. Het is een mobiele website die gekoppeld is aan het DumpsterDive033 Twitter-account waarmee je live vanaf je smartphone elkaar op de hoogte kunt houden over de laatste aanbiedingen uit de Amersfoortse vuilcontainers.

Het is makkelijk ook naar andere steden uit te rollen, weet je elders een supermarkt die goed eten aan de straat zet laat het ons dan weten.

Bekijk ook deze aflevering van Zembla over voedsel verspilling, ten minste houdbaar tot en dumpster divers: http://www.uitzendinggemist.nl/afleveringen/1243245

VARA: In Nederland wordt jaarlijks voedsel met een totale waarde van meer dan vier miljard euro op de vuilnisbelt gegooid. Maar veel daarvan is nog prima eetbaar. We onderzoeken waarom Nederlanders zoveel eten verspillen.

Ook Wageningen Universiteit heeft er recentelijk over geschreven in hun blad: Kijk op blz. 10 t/m 15 van dit tijdschrift.

Op HollandDoc staat de documentaire: Taste the Waste

· 2012/03/13 at 00:23 · Rick Companje

Writing SVG's with SVGKit and JSBin

I've been using FabLab Amersfoort's Parametric SVG editor for a while now, a great online tool for writing scalable / parametric vector images. Recently I found out about SVGKit, a Javascript library based on MochiKit which makes it easy to create SVG's from Javascript.

FabLab Amersfoort's pSVG editor by Harmen Zijp & Peter Uithoven: FabLab Amersfoort's pSVG editor by Harmen Zijp & Peter Uithoven

SVGKit with JSBin experiment by myself SVGKit with JSBin

You can try it here and improve the sourcecode you like.

Add two circles the svg group <g> called root:

//Circles
var innerRadius = 322;
var outerRadius = 390;
 
appendChildNodes(
  root, 
  svg.CIRCLE({cx:0, cy:0, r:outerRadius}),
  svg.CIRCLE({cx:0, cy:0, r:innerRadius})
);

Clone SVG nodes and transform them in a for loop:

//Lockers
var lockerY = -338;
var lockerAngleOffset = 85; //75;
 
appendChildNodes(locker = svg.G(),
  svg.CIRCLE({r:3,cx:-48/2}), //left
  svg.CIRCLE({r:3,cx:48/2}), //right
  svg.RECT({x:-5,y:-8,width:10,height:16,rx:4,ry:4}) //middle
);
 
for (i=0; i<3; i++) {
  var locker2 = locker.cloneNode(true); //recursive
  svg.rotate(locker2,i*120+lockerAngleOffset); //note: never rotate 0 degrees
  svg.translate(locker2,0,lockerY);
  appendChildNodes(root,locker2);
}

Universiteit Amersfoort

Universiteit Amersfoort is een experimentele universiteit. Een vrijruimte voor onderzoek en ontwikkeling in Amersfoort. Vanaf eind 2011 is het Magazijn op het terrein van de War beschikbaar voor workshops, demonstraties, experimenten en lezingen op het gebied van wetenschap, kunst, techniek, duurzaamheid en educatie.

Tussen kerst en oudjaar is er een eerste kennismaking, met lezingen, workshops, publieke experimenten en aanverwante activiteiten. Klik hier voor het programma.

Aan deze Salon doet een groot aantal wetenschappers, uitvinders en kunstenaars mee. Bent u zelf geinteresseerd om te experimenteren in ons vrijlab? Neemt u dan contact met ons op!

Universiteit Amersfoort is een ongesubsidieerd project van de War en Discover!

ua_salon1_web.jpg

In de week tussen kerst en oud & nieuw sta ik met mijn blauwe Renault Estafette busje warme chocomelk en pannenkoeken te serveren. Daarnaast staan er een hoop OpenToko workshops ingepland en zijn er een hoop lezingen waaronder door Bas Haring en Govert Schilling. Kom ook van 26 t/m 31 december naar de Kleine Koppel 40 in Amersfoort. Zie www.universiteitamersfoort.nl

Heropening FabLab Amersfoort

Sinds september 2010 is FabLab Amersfoort gevestigd aan de Kleine Koppel 40. Een FabLab is een open werkplaats waar iedereen gebruik kan maken van digitaal gestuurd gereedschap zoals een lasersnijder en een 3D printer. In minder dan een jaar werd het lab te groot voor de plek waar het begon, de werkplaats van de Spullenmannen. Inmiddels is het Fablab verhuisd naar een nieuwe locatie op hetzelfde adres.

Op 20 november om 15 uur wordt het FabLab feestelijk heropend op de nieuwe plek. Kom je Sinterklaassurprise fabben en maak kennis met de mogelijkheden van digitale fabricage, het nieuwe workshopaanbod en nog veel meer. Van 12 tot 17 uur kun je in het Fablab dingen komen maken, koffie komen drinken of gewoon eens rondkijken. Daarnaast is het FabLab elke dinsdag open van 10:00 tot 22:00 uur. Kijk voor meer informatie op www.fablabamersfoort.nl.

Cardboard Mechanics Cardboard Mechanics van o.a. Saskia Freeke en Sonja Van Vuure.

FabLab Amersfoort, Kleine Koppel 40, Amersfoort

Wat is OpenToko.org?

OpenToko.org is een kennis uitwisselingsnetwerk waarbij iedereen een workshop kan aanvragen of geven over een willekeurig onderwerp.

OpenToko.org is gestart toen Harmen Zijp en Diana Wildschut en ik als onderdeel van kunstenaarscollectief De Spullenmannen bedachten dat we voor de kunstprojecten die we doen regelmatig nieuwe (vaak technische) kennis nodig hebben over zaken waar we zelf nooit voor hebben geleerd maar mensen in ons netwerk misschien wel expert in zijn. We zijn toen open workshops gaan houden over onderwerpen waar we zelf wat aan hadden, met sprekers die we meestal persoonlijk kenden en met een groeiende groep van geïnteresseerden die de workshops kwamen bij wonen. Bij iedere OpenToko vragen we alle bezoekers in welk gebied zij expert zijn en of ze daar een volgende keer een workshop over zouden kunnen geven. Op die kan iedereen kennis komen halen en brengen.

Heb je zelf een idee voor een workshop stuur me dan een mailtje.

· 2011/11/19 at 17:26 · Rick Companje

Art && Code 3D - Pittsburg

Ik zit momenteel samen met Diederick (roxlu) een week in Pittsburg, Pensylvania in het lab van Golan Levin (STUDIO for Creative Inquiry) te coden aan 3D visualisaties en het uitlezen van 3D camera's en andere sensors. Ik zelf focus me vooral op het aansturen van 3D printers vanuit openFrameworks en dat heeft al geleid tot een drietal openFrameworks addons te weten ofxFontExtruder, ofxMesh en ofxGCode (nog in ontwikkeling). Anderen zijn bezig met het streamen van live point cloud data van de Kinect en die vervolgens client sided in je browser in 3D te bekijken/besturen zijn. Ook is er een spel voortgekomen die de 3D audio uit de Kinect gebruikt (de Kinect heeft 4 microfoons) om door te schreeuwen missiles naar elkaar af te schieten.
De hele week hebben we in het lab zitten werken van 10 uur 's ochtends tot 2 uur 's nachts. Vanaf vandaag beginnen de lezingen en workshops. Zelf geef ik vanavond een presentatie over Globe4D.

ART && CODE: DIY 3D Sensing and Visualization (#artandcode is a festival and conference concerned with the artistic, technical, tactical and cultural potentials of low-cost 3D scanning devices — especially, but not exclusively, including the revolutionary Microsoft Kinect sensor. This highly interdisciplinary event will bring together, for the first time, tinkerers and hackers, computational artists and designers, professional game developers, and leading researchers in the fields of computer vision, robotics and human-computer interaction. Half maker’s festival, half academic symposium, ART && CODE will take place October 21-23 at Carnegie Mellon University in Pittsburgh., and will feature:
- Hands-on workshops in programming interactive software with low-cost depth cameras, such as the Kinect;
- Live demonstrations and speed presentations of interactive experiences made with the Kinect;
- Lecture presentations by leading international artists, designers and researchers;
- Social events that mix independents, corporates, and academic researchers;
- An evening of immersive audiovisual performances; and
- An unconference with topics selected by you!

Some results on https://github.com/companje.

Ongebruikte stukjes code...

Soms schrijf je een mooi stukje code dat precies op het moment dat het af is al weer overbodig is… Dit keer is Google de boosdoener. Er bestaat geen API voor Google Scholar dus ik dacht zelf de HTML output van een search-query dan maar te parsen maar na enkele queries werd m'n IP adres al geblokkeerd en moest ik een Captcha invoeren… Hierbij de code, hopelijk komt 't iemand nog van pas.

void *citationsLoaderThreadedFunction(void *arg) {
 
    for (;;) {
 
        if (datamine.currentStop) {
            TiXmlNode *cur = datamine.currentStop;
            int i=0;
            do {
                string author = datamine.getAuthor(cur); //"Joanne Drinan");
                string title = datamine.getTitle(cur); //"the drinking water handbook");
                int numCitations = datamine.getCitations(cur); 
 
                if (datamine.getCitations(cur)==-1) {
 
                    string url = "http://scholar.google.nl/scholar?as_q="+urlencode(title)+"&as_sauthors="+urlencode(author)+"&num=1&btnG=Zoeken+in+Scholar&as_epq=&as_oq=&as_eq=&as_occt=any&as_publication=&as_ylo=&as_yhi=&hl=nl";
 
                    UrlLoader loader;
                    string result = loader.load(url);
 
                    string qStart = "Geciteerd door ";
                    string qEnd = "<";
 
                    int posStart = result.find(qStart);
                    if (posStart!=string::npos) {
                        result = result.substr(posStart+qStart.size());
                        int posEnd = result.find(qEnd);
                        if (posEnd!=string::npos) {
                            result = result.substr(0,posEnd);
 
                            int citations = toInt(result);
                            datamine.setCitations(cur,citations);
                            cout << "found " << citations << " citations for article " << title << " by " << author << endl;
                        } else {
                            //not found
                            cout << "not found: " << result << endl;
                            datamine.setCitations(cur,0);
                        }
                    } else {
                        //not found
                        cout << "not found: " << result << endl;
                        datamine.setCitations(cur,0);
                    }
 
                    sleep(1);
                }
 
                //next
                if (cur->NextSibling()) cur = cur->NextSibling();
                else cur = datamine.stops->FirstChild("srw:records")->FirstChild("srw:record");
 
 
            } while (cur->NextSibling());
 
        }
 
        sleep(5);
    }
}

2e editie van het Repair Café in Amersfoort

zaterdag 9 juli 12:00-18:00 uur

Werkplaats van De Spullenmannen
Kleine Koppel 40
3812 PH Amersfoort

In het Repair Cafe kun je kapotte spullen (laten) repareren, denk bijvoorbeeld aan fietsen, kleding, electronica, computers, meubels, naaimachines, muziekinstrumenten etc.

Ben je een klusser, handige meid of man en vind je het leuk om je diensten aan te bieden in het Repair Cafe, kom dan op zaterdag 9 juli naar de werkplaats van de Spullenmannen.

Meld je aan via iedereenin@dewar.nl!

http://www.dewar.nl

Media Tech Expo

New Media New Technology 2011
Open Lab Expo
Tuesday May 31, 2011
4pm-9pm.
Scheltema Complex - Marktsteeg 1, Leiden

Nieuwe media, kunst, wetenschap en technologie komen samen in de New Media New Technology (NMNT) Open Lab Expo van master studenten Media Technology van de Universiteit Leiden. De studenten tonen halffabrikaten en eindproducten van het vak NMNT dat de laatste New Media technologieen en concepten combineert met meer tijdloze themas als New Media History, Old Media, Social, Mobile, Things & Space.

De expo is niet een traditionele statische expositie, maar meer een dynamisch ‘Open Lab’ oftewel een open werkplaats. Veel van de installaties zijn interactief en zijn exploratieve vingeroefeningen die nieuwsgierig maken naar meer. Alle makers zijn aanwezig om vragen te beantwoorden en van gedachten te wisselen over de concepten, gedachten en technologieen achter hun werk, en soms kan er ter plekke verder geklust worden. Iedereen is welkom, met maar nadrukkelijk ook zonder nieuwe media achtergrond.

Nieuwsgierig? Kijk op http://www.nmnt.nl voor voorbeelden van projecten en op http://mediatechnology.leiden.edu/ voor meer informatie over the MSc Media Technologie als opleiding voor Creative Research.

· 2011/05/23 at 09:28 · Rick Companje

3D printen met de Ultimaker

Een paar maanden geleden ben ik begonnen met het bouwen van een Ultimaker, een zelfbouw 3D printer ontworpen door Martijn, Erik en Siert bij het FabLab van Utrecht. De machine print laagje voor laagje een 3D object van plastic. Inmiddels doet mijn exemplaar het maar nu is het een kwestie van 'm goed leren kennen zodat alles goed op elkaar is afgestemd: warmte, snelheid etc.
Benieuwd naar de printer, kom naar FabLab Amersfoort want daar kun je 'm iedere dinsdag van 10:00 tot 17:00 bekijken én gebruiken.

Video experiment Benjolin

Sinds vandaag is de kabel afgesloten… niet dat ik 'm ooit officieel had laten aansluiten maar ik had eerst wel zenders en nu alleen sneeuw. Daarom moet ik nu maar andere dingetjes met m'n “TV” doen zoals freaken met m'n Benjolin.

Push Notification voor iPhone

Deze handleiding die ik heb samengesteld uit verschillende bronnen kan handig zijn wanneer je iets wilt doen met Push Notificatie op de iPhone.


Push Notificatie voor iPhone

Harig badeendje

Processing code

PImage img = loadImage("duck.jpg");
 
size(img.width,img.height);
background(0);
smooth();
noFill();
 
for (int y=0; y<img.height; y+=5) {
  for (int x=0; x<img.width; x+=5) {
    color c = img.get(x,y);
    float br = brightness(c)/255.0;
    float sa = saturation(c)/255.0;
    float hu = hue(c)/255.0;
    pushMatrix();
      translate(x,y);
      rotate(br*TWO_PI);
      stroke(c);
      line(-5,-5,10,10);
    popMatrix();
  }
}

openFrameworks workshop in Auckland


Check http://of.opentoko.org for the slides, example code and notes.
An openFrameworks workshop will take place at CoLab at the Auckland University of Technology (AUT), New Zealand this Thursday (January, 27th @16:00h).

openFrameworks is a free application framework designed for creative coding. It’s a c++ library designed to assist the creative process by providing a simple and intuitive framework for experimentation.

OpenFrameworks is designed to work as a general purpose glue, and wraps together several commonly used libraries under a tidy interface: openGL for graphics, rtAudio for audio input and output, freeType for fonts, freeImage for image input and output, quicktime for video playing and sequence grabbing.

The code is written to be both cross platform (PC, Mac, Linux, iPhone) and cross compiler. The API is designed to be minimal and easy to grasp. There are very few classes, and inside of those classes, there are very few functions.

Kyle McDonald's ofxKinect Depth of Field point cloud

Topics that will be addressed during the workshop:

  • What is openFrameworks? Who made it and what can you do with it?
  • Some interactive art projects made with openFrameworks will be discussed.
  • How to create your own openFrameworks projects?
  • How to use OpenFrameworks for text, audio, vector graphics, 3D graphics, vector math, images, movies, live video, xml files, hardware (ie. Arduino, multiple mice, Kinect), network (ie. Open Sound Control), PDF or Illustrator output etc.
  • How to build a simple Particle System and also how to create some nice graphic design effects for creating printable posters.
  • How to use Microsoft's Kinect in openFrameworks?
  • How to contribute to the community by creating addons?
  • How to make an iPhone App with openFrameworks?

OpenFrameworks is often considered as being 'the big brother of Processing' and is used a lot by interactive media artists.

If possible please bring a laptop:

  • Mac: Make sure (!) to have XCode (Developer Tools) installed (it's on the 'application DVD' you got when you bought your mac).
  • Windows or Linux: if you can please download and install CodeBlocks.

Where: Auckland University of Technology, AUT Tower, corner Wakefield/Rutland st.
When: Thursday 27th, January, 2011 from 16:00 until 21:00.

This is a FREE workshop but a 'koha would be nice (chips, cookies, drink etc). Please register for the workshop by email openframeworks@go.to.

Please check http://bit.ly/openframeworks for possible updates.

For inspiration and more examples visit the openFrameworks channel on Vimeo.

An example OpenFrameworks project in Auckland: NightLights

This workshop is an initiative from http://OpenToko.org and is hosted by CoLab.

Open weekeinde in De War

Op 22 en 23 januari zijn er open dagen in 'de War', de plek in Amersfoort waar het al jaren bruist van de underground cultuur en wetenschap.
Kunstenaarscollectief de Spullenmannen werkt al ruim acht jaar in de oude kleurstoffabriek Warner en Jenkinson aan de Eem. Vanuit deze plek zijn de laatste jaren heel wat initiatieven gestart die de plek tot meer maken dan alleen een kunstenaarsatelier. Tijd om deze ontmoetingsplek voor de Amersfoortse underground scene op de kaart te zetten.

  • FABLAB AMERSFOORT is een open werkplaats waar iedereen gebruik kan maken van de nieuwste digitale productietechnieken.
  • In het TRANSITIELAB wordt gewerkt aan kleinschalige lowbudget oplossingen voor duurzame energie en voedselvoorziening.
  • Het STUDIUM GENERALE AMERSFOORT presenteert maandelijks een lezing door een interessante wetenschapper.
  • Tijdens de OPENTOKO workshops draait het om open kennisuitwisseling tussen kunstenaars, techneuten, programmeurs en wetenschappers.
  • FESTIVAL FRANJE is sinds vier jaar hèt podium voor ondernemende podiumkunstenaars.

Regelmatig worden kleine voorstellingen en try-outs gespeeld op PODIUM DE WAR.
En natuurlijk zijn er de projecten van de SPULLENMANNEN zelf, zoals afgelopen jaar 'de Pers', 'de Waan' en het 'Knopjesmuseum'.

Kijk voor meer info op http://dewar.nl