I finally managed to create a good Image Zoom Component with zooming, dragging, navigator and keyboard functionality. It’s build in Flex / ActionScript 3 and I think it’s a nice example of using the MVC (model view controller) pattern to prevent spaghetti code. The model doesn’t know anything about the size of the viewport and the image because that’s something only the view and the controller need to know. The model only knows the aspect ratio of the image and the viewport. When you want to zoom or move, you change the model and after that you update the view based on the values in the model. The model stores the position and size of the viewport in values between 0 and 1. This makes it very easy for the controller / view to scale it to the real size.
I also used the new ScrollRect feature and I like that thing a lot! Tip: Don’t use scaleX and scaleY to resize the large image because than you need to compensate the scale of the viewport. Resizing the image is done by changing its width and height.
I think there are still some things to be done. Depending on the shape of the viewport and image you might want to have the full image visible by adding empty space on the sides. But that’s some which should be easy to implement because of the clear MVC separation. Good luck if you try it and let me know! [rick /at/ companje /dot/ nl]
Afgelopen weekend deed ik mee aan een META Workshop in Amsterdam. META staat voor Making-Electronic-Thingies- in-Amsterdam. De workshop onder leiding van Tom Schouten ging over het genereren van televisie signaal met behulp van de programmeertaal Forth en een PIC chip. Bekijk het filmpje voor een sfeerimpressie.
Date: 26th-27th of May
Time: 10.00h - 18.00h.
Place: Steim
Subject: Forth TV
This workshop will stand in the light of the forth interpreter on the pic chip. Forth enables you to program your pic life and thus edit and see the changes in behavior right away. By learning to control tv tubes with forth this workshop will cover..
1. introduction forth, the forth toolchain.
1. interactivity, giving commands and updates to a live system
2. modularity, solve problems in pieces and interactive testing
2. technical applied,
1. electronic 2 bit DAC with resistors for 4 levels (sync,b/w,grey)
2. logic, PAL sync & stuff
3. software, interrupts (hsync timer) & multitasking
3. individual project, build some pic powered visuals with the knowledge gained.
Teacher: Tom Schouten
Tom Schouten is an independent software developer and artist based in Leuven, Belgium. His main interests are in generative systems, more specificly programs and devices that produce artistic works. His current efforts are concentrated on creating a series of special purpose programming languages. One of them is based on FORTH and runs on a pic microcontroller. Tom at goto10
Participants:
1. Niels Wolf
2. Heerko van der Kooij
3. Marc Boon
4. Joost Broersen
5. Sylvain Vriens
6. Rick Companje
7. Kwon Byung Jun
8. Dirk van Oosterbosch
9. Jan-Kees van Kampen
10. Aymeric Mansoux
11. Pieter Heremans
12. Roger Muskee
13. Sander Trispel
14. Marloes de Valk
15. Bart Gloudemans
Het redigeren van m’n reisverhaal uit Nieuw Zeeland gaat nog niet zo snel. Daarom hier maar alvast de ruwe versie als PDF. Wie zin heeft om te helpen met het verwijderen van spelling-, grammatica- en/of stijlfouten, graag…
Het boek dat ik geschreven heb over Nieuw Zeeland wordt op dit moment gelezen en geredigeerd door Nico van Dijk. Zijn er meer mensen geinteresseerd in de first reader’s copy (hardcover)? En wie wil er alvast intekenen voor de echte gedrukte versie?
De afbeelding hiernaast is een eerste ontwerp voor de cover door Kris Kobes.
Het gaat goed met m’n boek over Nieuw Zeeland. Alle hoofdstukken zijn geschreven. Ik ben het momenteel zelf aan het doorlezen om taalfouten en nutteloze details eruit aan het halen en daarna ga ik ‘m waarschijnlijk laten uitgeven bij www.geefjeboekuit.nl. Heeft iemand hier ervaring mee?
Ik had een mountain-bike-bike gehuurd van het hostel waar ik verbleef. Voor maar vijf dollars mocht ik er de hele dag op los fietsen. Ik kreeg een kaart van de omgeving mee en al snel zat ik de heuvels van Christchurch. Het was zo stijl dat ik niet omhoog kon fietsen, maar mijn fiets aan de hand de berg op moest leiden. Dat het zo stijl was lag er waarschijnlijk aan dat ik via de afdaling omhoog probeerde te komen. Iets wat A: Heel gevaarlijk is omdat er allerlei hele snelle dodelijke mountainbikers naar beneden komen en B: Veel zwaarder is dan de route die er eigenlijk speciaal voor gemaakt is om omhoog te gaan.
Toen ik na uuuuu-ren eenmaal boven was werd er een kudde mountainbikers uit een trailer losgelaten die zich omhoog hadden laten rijden met een gemotoriseerd vehikel. Ik kon wel janken. Ik was nu al moe en ik moest nog aan de afdaling beginnen. De moed zakte mij helemaal in de schoenen toen ik ze van start zag gaan. Dit had ik nog nooit gezien. Zo hard! Daar stond ik dan met knikkende knieën een afschuwelijke afgrond in de te kijken. De bestuurde van de trailer verwachte van mij natuurlijk hetzelfde. Toch was er iets in mij wat zei dat mijn fietsje daar misschien toch niet zo geschikt voor was. Ik keek nog eens naar het frame en dat bevestigde mijn angst. In plaats van dat daar iets geruststellends stond zoals “super-stoere-veilige-beheersbare-wel-uitgeruste-mountain-bike†moest ik het doen met de tekst “city-hopperâ€. Dat er zich in het hele frame geen grammetje vering bevond had ik toen nog niet eens opgemerkt. Vooruit-dan-maar. Met volledig afgesleten remblokjes, handen vol blaren, en zadelpijn nog erger dan na zes achtereenvolgende dagen hemelvaartsdag, kwam ik beneden aan. Trots als een pauw, maar geen veer meer om overeind te steken!
Ik heb een project van eind 2004 weer opgepakt, voorheen TrackLog, nu omgedoopt tot TravelTrace.
Samen met Daniel Kuster (student Computer Science) werk ik hieraan in opdracht voor het vak Human Computer Interaction. Het is een vrije opdracht waarbij het interface ontwerp centraal staat.
Mogelijke uitbreidingen op de applicatie zijn het kunnen wijzigen van het detailniveau van de kaart (in- en uitzoomen) en een zoekfunctie naar tekst. Ondersteuning van geluidsfragmenten is ook een mogelijke functionaliteit. Laatstgenoemde functies worden enkel uitgewerkt wanneer er tijd over is.
Ineens schiet me die kip weer te binnen die ik daar ook nog tegenkwam in het spookdorp. Bij gebrek aan natuurlijke vijanden had dit dier, welke absoluut niet de fittest uit Darwin’s survival theorie was, vrij spel. De kip droeg op zijn voorhoofd een gezwel dat minstens net zo groot was als de zonnebril van Snappie de kleine krokodil. Stelt u zich een donker grijs-bruinig stuk hersen-achtig materiaal voor dat boven de snavel van arme dier een eigen leven was gaan leiden. Onverwachts begon het gezwel met de kip eraan op mij af te rennen in een rechte lijn. Het zal een denkbeeldige lijn van zo’n zes meter geweest zijn met aan het begin van de lijn een groepje kippen die waarschijnlijk de Vrienden van het Gezwel waren, in het midden stond ik, en aan het eind van de lijn, maar zich op hoog tempo steeds meer in mijn richting begevend: de kip in kwestie. Als een kip zonder kop rende het dier op me af, hij zag me natuurlijk niet en schrok zich de helemaal de pretter toen ik heel hard ‘pas op!’ riep. Zo’n kip weet vast niet letterlijk wat ‘pas op!’ betekent, maar dat er iets niet klopte voelde hij of zij toch wel erg goed aan. Daar had ie dan wel weer voldoende hersens voor, dat dan weer wel.
Heerlijk weertje, straks op m'n dakkapel pong bouwen in Arduino voor op m'n tv. De garage is goed bezig met m'n bus. Valt eeg mee. Tot gauw! 2008-06-10 @ 13:37:02