Links van 28 februari 2014 tot 1 maart 2014

zaterdag 1 maart 2014 in Links. Permanente link | Eén reactie

Jan Tritten crowd sources a life or death decision and the baby ends up dead | The Skeptical OB
Homebirth midwives are dangerous, witless fools and babies die as a result.

Most winning A/B test results are illusory
In this article I’ll show that badly performed A/B tests can produce winning results which are more likely to be
false than true. At best, this leads to the needless modification of websites; at worst, to modification which
damages profits.

A tcpdump Tutorial and Primer
In a discipline so dependent on a true understanding of concepts vs. rote learning, it's important to stay fluent in the underlying mechanics of the TCP/IP suite. A thorough grasp of these protocols allows one to troubleshoot at a level far beyond the average analyst, but mastery of the protocols is only possible through continued exposure to them.

Obama’s Trauma Team: Inside the Nightmare Launch of HealthCare.Gov – TIME
Unknown to a nation following the fiasco, McDonough's assignment from the President had boiled down to something more dire than how to fix the site. As the chief of staff remembers his mission, it was "Can it be patched and improved to work, or does it need to be scrapped to start over? He wanted to know if this thing is salvageable." Yes, on Oct. 17, the President was thinking of scrapping the whole thing and starting over.

De achterkant van de revolutie in Oekraïne | RTL Nieuws
De EU speelt in de politieke gang van zaken een bedenkelijke rol. Het was een komen en gaan van zwaaidiplomaten uit Brussel en Den Haag op het demonstrantenpodium in Kiev. Even een hart onder de riem steken, heet dat dan. Maar zulke dikke vrienden met het arme land zijn we nooit geweest. Het land is met 140 miljard dollar schuld binnenkort failliet. En wie draait ervoor op? We steunen de Maidan-opstand van harte zolang we voor de buis zitten, maar de revolutie mag ons in Europa niets kosten. De Europese verkiezingen staan voor de deur. Nou, de kiezer ziet de  Oekraïners al aankomen. Dus dat Europarlementariër Guy Verhofstadt het rouwende publiek visumvrijheid met de EU belooft moet met een korrel zout genomen worden. Je moet het maar durven.

Filmpjes maken

zondag 30 december 2007 in Sonstiges. Permanente link | 10 reacties

Naar aanleiding van deze vraag van Rinus: stopmotion filmpjes voor op het internet, da’s tegenwoordig bijzonder gemakkelijk te maken.

In telegramstijl—meer uitleg is te vinden op het internet, vermoed ik.

Stap één: veel foto’s nemen. Dertig foto’s per seconden voor echt vloeiend beeld. Zet uw fototoestel op een statief en gebruik een ontspanner op afstand (een afstandsbediening of een kabel zijn een gemak). Zet uw instellingen op manueel en zorg voor goede belichting, dat voorkomt geflikker in het uiteindelijke resultaat.

Ik heb voor het voorbeeld mijn fototoestel op automatisch gezet, en op automatisch foto’s trekken gezet. En op een stapel kussens op ons bed, want ik vond mijn statief niet zo snel terug.

Stap twee: foto’s op computer zetten en eventueel bewerken. Ik had een stuk of 350 foto’s, die ik allemaal in Lightroom geïmporteerd heb, omdat het daar gemakkelijk was om er globaal een paar correcties op los te laten (het was allemaal te donker, vooral, omdat het in de slaapkamer was met alleen een nachtlamp als verlichting):

Allemaaldinos

Stap drie: omzetten naar video.

Alle foto’s geëxporteerd uit Lightroom, en in Virtualdub ingeladen. Virtualdub is iets om filmpjes mee te maken, het is uitstekend en het is gratis. In dit geval doe ik er niets meer mee dan alle foto’s inladen en weer bewaren als een filmpje: File > Open video file…, de eerste foto in de reeks aanduiden, en alles wordt automatisch ingeladen. Dan File > Save as AVI… en hopla, klaar.

Stap vier: omzetten naar FLV.

FLV kan gemakkelijk afgespeeld worden door Flash, en is redelijk klein ook, van formaat. Ik gebruik hier de video encoder van Flash zelf voor.

Stap vijf: afspelen. Ik doe dat met Jeroen Wijering’s speler: één swf op uw server, het flv-fimpje ook ergens, eventueel een thumbnail-jpg-beeldje, gebruik de configuratiewizard als je de handleiding niet wilt lezen, hopladiejee:

Working with sources in Genbox

dinsdag 23 mei 2006 in Genea. Permanente link | 4 reacties

Imagine you ran a narrative report on a person in your genealogy database and you got this as a result:

Basilius Franciscus Gilliet, son of Benedictus (Benoit) and Françoise Ferdinande (Springael) Gilliet, was born on 20 December 1818 in the rue des Ecuries in Gent. Witnesses to the birth declaration were Basil Van Loo and Joseph Verschaffel. Basilius married Maria Ludovica Massaux before 1848. Basilius had a daughter before 1848. He had a son Julien Gilliet abt 1848. Basilius had a daughter Octavia Gilliet on 10 August 1850 in Gent. Basilius was employed as a lithograph in December 1850. He witnessed the birth of Marcellus Gilliet on 12 December 1850 in Gent. Basilius had a son Petrus Constantinus Gilliet there on 28 June 1862. Basilius died in Gent on 23 December 1890. Witnesses to the death were Petrus and Isidorus Campens.

Pretty good, right? Well, no. Not really.

In fact, pretty much all of this information is almost useless if you don’t know where it came from. You need to be able to check the data, and you need to know how reliable it is.

You may very well have different versions of the same story: a death certificate that says someone was born about 1812 and a marriage certificate that says the same person was born about 1807. How do you handle this? Easy—just enter all you discover in Genbox, and add source information for each thing you enter.

Let’s take a typical example. I’m looking for information about Basilius Gilliet and I have a copy of a birth certificate of a Marcellus Gilliet:

sourcesintro01

The certificate is dated 12 December 1850 and Basilius is mentioned as a witness. The certificate says that he’s thirty-two years old (“Basilius Gilliet, oud twee en dertig jaren”), so we can conclude he was probably born about 1818.

Here’s how we enter this information in Genbox (we’ll pretend we’re not interested in Marcellus Gilliet and only in Basilius for now).

Create a new person

Assuming Basilius Gilliet was not present in the database, add a new person. Click the Individual form or select View | Individual in the menu, then hit CTRL-N to add a new individual and fill in what you now about Basilius (his name, sex, and birth date—about 1818):

Generate an idividual report for this person (Reports | Individual | Basic > Make Report) and you’ll get this, short and to the point:

Basilius Gilliet was born abt 1818.

Next we’ll flesh this out.

Documenting the event

Double click the “Birth” event. You’ll be taken to the “Events” tab for Basilius Gilliet:

There’s a great number of things we can enter here, amongst others:

  1. the birth date
  2. the birthplace (and a local place, like a hospital or a street in a town)
  3. the child’s father
  4. the child’s mother
  5. any number of witnesses to the birth

Next to each of the data items you can enter you’ll find a button—plus one extra button (circled) next to the name of the event:

You can choose to individually document everything, or you can choose to add sources to the entire event. Or you can choose a mixture of the two.

Create a source record

We’ve got a source that tells us when the person was born and nothing else, so we’re just going to add a source to the birth date. Click the button next to the date field; this will take you to a form where you can select the source from a list or create a new one:

The source is where you got the information. In this case we got the information (Basilius’ birth circa 1818) from birth certificate (“geboorteakte”) #3600, which is part of the Gent birth records for 1850, which are part of the civil records of the city of Gent.

There are many ways you could enter this information. This is one way to go about it.

First we’ll enter the name of the source:

Click “add new” and Genbox will open two new windows—a Citation form and a Source form:

We’ll first flesh out the source and then turn to the citation.

The source type is a Birth Certificate (City Level); the rest is a matter of filling in the blanks and making sure you have enough information to be able to locate the actual source (microfilm, photocopy, book, …) if you ever needed to. And if you have an image of the source—as we have—you can add it to the source record too:

If you want to go the extra mile, you can move on to the Evidence tab and add a transcript of the document:

That’s it for now. We’ll close the source window and turn our attention to the Citation window.

Citations

The citation window is where the source we created is connected to Basilius’ birth date.

The Assertion tab holds information about the thing you’re documenting. Note that you can have more than one citation for a given assertion. In that case you’ll have more than one source listed on the Assertion tab, like so:

In our example, there’s just the one source for the date of the birth event for the individual Basilius Gilliet:

Double click the source on the Assertion tab to go to the Cited Sources tab:

This is where you see how the source (Marcellus’ birth certificate) relates to the assertion.

In our case the source is quite specific: just one birth certificate, identified by year and number, so you don’t need to fill in the “where in source” field. Some alternative ways to go about things:

if you’ve defined the source as…enter this in “where in source”
Gent Civil RecordsBirth Records 1850, #3600
Gent Birth Records1850, #3600
Gent Birth Records 1850#3600

As for the other fields on the form:

  • Lead text is where you can optionally put a short introduction to the citation.
  • Annotation: is where you can optionally put another short text which will appear at the end of the citation. Use it to put an appreciation of the source, or any other, well, annotations.
  • Support level for assertion indicates how well the source supports the assertion, ranging from Primary and Direct Support (indicating the source was an eye witness, or that the source specifically talks about the event) to Direct Conflict (indicating the source says something completely different than the assertion). Do not leave the support level set to “Undetermined”!
  • Credibility: how much you think the source should be believed.
  • the box under the Credibility drop-down: a new field since 3.1.11, named “Rationale”. This is to store text that briefly explains why you believe the cited source is relevant to the current assertion. It is for your own personal research purposes, and does not normally appear on output reports. You can store here the reasons why you assigned a low/high support level or low/high credibility, or the facts extracted from the source that you think make your case, or personal reminders of work yet to be performed.

An example:

If you’ve entered a transcript of the source, you can optionally move on to the third tab (Excerpts). You’ll see the transcript you entered before:

Locate the bit in the text that supports the assertion, select it and click the “Mark” button. The relevant part of the transcript will be highlighted:

One last thing: go back to the Assertion tab, and decide with all you’ve just entered about the source in the back of your mind just how sure you are of the assertion. We’re going for “probable conclusion”:

Note that if there’s more than one source you have to take into account the combination of all the sources.

Now, to put it all together, take a look at the Formatting tab to see what the citation will look like in a report:

…or to see what it will look like in the contect of a “real” report, click the preview button on Basilius’ birth event:

If we do the same for all the different assertions in the statement, we can get something like this:

Basilius Franciscus Gilliet[1], zoon van Benedictus (Benoit) en Françoise Ferdinande (Springael) Gilliet , werd op 20 december 1818 geboren in Gent[2]. Hij trouwde met Maria Ludovica Massaux[3]. Basilius kreeg een dochter Gilliet . Basilius kreeg ca. 1848 een zoon Julien Gilliet[4]. Basilius kreeg op 10 augustus 1850 in Gent een dochter Octavia Gilliet . Getuige: Joachim Benedictus Gilliet[5]. Basilius was in december 1850 steendrukker[6]. Hij was getuige bij de geboorte van Marcellus Gilliet op 12 december 1850 in Gent[7]. Basilius kreeg in Gent op 28 juni 1862 een zoon, Petrus Constantinus Gilliet[8]. Basilius overleed daar op 23 december 1890. Getuigen: Petrus Constantinus Gilliet en Isidorus Campens[9].

1. Burgerlijke Stand Ledeberg, BS/G 789746 Petrus Constantinus Gilliet.

2. Burgerlijke Stand Gent, Tienjarige tabel geboorten 1811-1820; Rijksarchief, Beveren; “Basil François Gilliet, né avant hier à huit heures du matin” geboorteakte Basil François Gilliet, BS/G Gent, 22 december 1818, nr. 354, Rijksarchief, Beveren.

3. “Basilius Franciscus Gilliet… Maria Ludovica Massaux… zijne huisvrouw” geboorteakte Petrus Constantinus Gilliet, BS/G Ledeberg, 30 juni 1862, Rijksarchief, Beveren.

4. Huwelijksakte Petrus Constatinus Gilliet & Juliana Joanna Vandenbossche, BS/H Gent, 1 mei 1897, Rijksarchief, Beveren.

5. Geboorteakte Octavia Gilliet, BS/G Gent, 12 augustus 1850, nr. 2388, Rijksarchief, Beveren.

6. Geboorteakte Marcellus Gilliet, BS/G Gent, 12 december 1850, nr. 3600, Rijksarchief, Beveren.

7. Ibid.

8. Burgerlijke Stand Geboorten Ledeberg: geboortes Ledeberg 30 juni 1862.

9. Ibid; Burgelijke Stand Huwelijken Gent: huwelijk Petrus Constatinus Gilliet & Juliana Joanna Vandenbossche, 1 mei 1897, Rijksarchief, Beveren; Geboortakte Basil François Gilliet: geboortes Gent 22 december 1818; Overlijdensakte, Burgerlijke Stand Overlijdens Gent, 1890, nr. 3918, Rijksarchief, Beveren.

Nice, what?

Geschreven al luisterend naar: Stereophonic Space Sound Unlimited – Plays Lost TV Themes – Revenge of the Belly Dancer {From “Korla Rides Again”}

Goeroe

dinsdag 28 februari 2006 in Computers en dingen. Permanente link | 14 reacties

Zegt Luc naar aanleiding van mijn vorige entry:

Als die mensen “dank u, goeroe” roepen, dan wijst dat er toch op dat ze tot dan toe van niets beter wisten? En dan heeft die ‘aansteller’ hen wel degelijk iets nieuws geleerd. De aanstellerij bestaat dan vooral in jouw perceptie.

Maar jouw houding is wellicht een beetje typerend voor de intellectueel die kakt op domme of onwetende mensen, die minachting heeft voor de typische VTM-kijker, en die vindt dat iedereen die iets mee te delen heeft, dat moet doen “zonder pretentie”. Naar goede Vlaemsche gewoonte: het boerke moet, als het iets mede te delen heeft, eerst zijn klak afdoen, nederig naar de grond kijken, en dan liefst in een zo informeel mogelijk taaltje zijn zegje doen!

Neen dus, ik kak niet op onwetende mensen. Wel integendeel, en om in dezelfde metaforen te blijven: ik krijg het schijt van mensen die doen alsof ze het warm water uitgevonden hebben.

Kijk, een voorbeeld. Een tijdje geleden (um, gisteren dus, op tinternet vliegt de tijd) stond op BoingBoing een entry en een vervolgpost die een prima kandidaat is voor zo’n entry waar ik het van krijg. Zo’n entry zou dan nog eens uitleggen hoe je een bestaande foto kan bewerken met Photoshop om hem er te doen uitzien alsof het een foto is van een schaalmodel. Zou een link leggen naar bijvoorbeeld de website van lensbabies waar je zo’n goedkope échte tilt-shiftachtige lens kan kopen. Zou ook de link leggen naar de Flickrgroep. En daar zouden dan mensen met verbazing op reageren. “Ooo maar meneer/mevrouw de fotografie-fotosjopmens wat bent u toch machtig goed!”

Kijk, als BoingBoing het al gedaan heeft, volstaat een eenvoudige link. En als er echt uitleg moet bij gegeven worden, is het dan “intellectueel” om verwijzen naar een pagina die het concept uitlegt? Of als er echt iets moet gezegd worden over die techniek, is het dan “minachtend” doen als ik erop wijs dat de oorspronkelijke link van BoingBoing naar een achterlijke uitleg gaat, die niet meer is dan een zogezegde Photoshop-tutorial met twee stappen (“1. maak een selectie met een verloop / 2. Pas de lens blur plugin toe”) die eigenlijk allebei konteverkeerd zijn?

Als ik het zou moeten doen, iets over die “techniek” posten, dan zou ik proberen wat meer te zeggen dan klakkeloos overnemen en doen alsof ik de grote jan ben. En dat hoeft dan niet belerend te zijn, gewoon wat zeggen over diafragma (bijvoorbeeld deze eenvoudige uitleg parafraseren of naar linken) en hoe dat gevolgen heeft voor hoeveel van je beeld je in focus kunt houden (scherptediepte, bijvoorbeeld dit hier parafraseren of naar linken), en een voorbeeld geven van een foto met veel scherptediepte, genomen met diafragma f/16:

Bureau f16

…en een foto van hetzelfde onderwerp met weinig scherptediepte, genomen met diafragma f/1.4:

Bureau f1.4

Dan zou ik uitleggen dat het doel van de oefening is om met Photoshop van een bestaande foto met veel scherptediepte naar een foto met weinig scherptediepte te gaan.

En dat er sinds Photoshop CS een plugin bestaat, Lens Blur, die kunstmatig scherptediepte aan een foto kan toevoegen.

En dan, vooral: dat die plugin niet noodzakelijk helemaal uniform moet toegepast worden op de hele foto (zoals dat kieken van die link van BoingBoing doet), maar dat je een “depth map” kunt maken, een zwartwitbeeld bijvoorbeeld in een masker of een nieuw kanaal, dat aanduidt wat “ver” van de camera is en wat “dicht” bij de camera is.

[Dan zou ik in ‘t kort misschien uitweiden over maskers en selecties en hoe zowat het belangrijkste van Photoshop is dat selecties geen booleaanse maar fuzzy logic zijn, maar dat is dan weer mijn dada, dus ik zou het misschien in een aside zetten.]

Ik zou er, foto voor ogen, op wijzen dat rechtsboven in deze foto het verst van de camera is en linksonder het dichtst, en dat dat wil zeggen dat je een verloop moet maken van rechtsboven zwart naar linksonder wit—misschien wel aanschouwelijk voorgesteld met een voorbeeldje, genre split screen:

Bureau f16-verloop

of misschien wel met een screen shot van hoe het er uitziet met zo’n masker toegepast:

Bureau f16-masker

En dan zou ik tonen hoe je in die lens blur zegt dat de bron van de depth map het nieuwe kanaal is:

Lensblur

En dan zou ik tonen hoe je door aan die “blur focal distance”-schuiver te schuiven, met één moeite enkel de voorgrond in focus zet:

Bureau f16-vals vóór

of enkel de achtergrond:

Bureau f16-vals achter

of, wat het doel van de oefening was, enkel het autootje:

Bureau f16-fake 

…misschien met nog eens, for good measure, de “echte” foto zonder scherptediepte bij plakkend:

Bureau f1.4

…erop wijzend waarom de illusie niet perfect is, en hoe daar iets aan kan gedaan worden—voorzichtiger uw masker tekenen bijvoorbeeld: hier stond het teveel schuin, het had meer horizontaal gemoeten. En dan zou ik misschien nog een aantal voorbeelden maken, en misschien een downloadbaar photoshopbestand erbij geven dat nog in lagen staat, met een complexer voorbeeld met masker al op voorhand gemaakt.

Zoiets dus. En is dat dan kakken op de VTM-kijker? Nee toch? Vooral als ik dat veel minder lapidair zou doen, in eenvoudige maar toch niet belerende taal? Met links en rechts misschien een grapje of een anecdote er door gesmeten? Toch?

En waarom doe ik dat dan niet méér? Omdat het verdorie maar twee handelingen zijn in Photoshop! Iedereen die ogen in zijn hoofd heeft en Photoshop staan heeft, redeneer ik, zal toch wel ooit al eens de verschillende plugins uitgeprobeerd hebben?

En iedereen die de lens blur-plugin uitgeprobeerd heeft, zal toch wel al op die vreemde “depth map” uitgekomen zijn? En zelfs als die mens geen Engels begrijpt, zal die toch wel al eens in de help-functie gekeken hebben?

En moet ik dat hier dan allemaal nog zitten uitleggen? Gelijk een schoolmeester?

…maar blijkbaar wel dus, ja.

Geschreven al luisterend naar: June Carter Cash – Press On – Wings Of Angels

Kaartjes

woensdag 11 januari 2006 in Computers en dingen. Permanente link | 4 reacties

Zegt BVLG onder meer:

Hoe heb je overigens de kaart van Frappr kunnen inkleuren ?

In Photoshop. En wel als volgt. Vertrek van een screenshot van Frappr (eigenlijk vier aan mekaar geplakte omdat anders de navigatie over stukken België stond, maar goed):

Kaart01

Zoek naar een kaartje van België in dezelfde projectie met de provincies erop:

Kaart02

Zorg er in Photoshop voor dat het tweede kaartje precies zo groot is als het eerste. Selecteer de Vlaamse provincies met het Magic Wand-tooltje. Omdat het kaartje al wat gepixeld was en het niet zo nauw stak, heb ik de tolerance op 80 of zo gezet, en anti-alias en uiteraard ook contiguous aangevinkt. Resultaat:

Kaart03

Maak een nieuwe laag aan, kies een kleur, en doe dan alt-backspace (voor “vul selecie met voorgrondkleur”). Vink, als dat nog niet het geval was, “sample all layers” aan, selecteer de Waalse provincies en vul die met een andere kleur. Vul Brussel met nog een andere kleur. Resultaat:

Kaart04

Ja, ik weet het, ik had net zo goed meteen kunnen het Paint Bucket-dinges gebruiken, maar ik doe dat niet graag. Photoshop is vaak nog erger dan perl qua tmtowdi.

Plak de bovenste laag op de frappr-screenshot, zet ze op multiply, en dat geeft dit:

Kaart05

Ik vind het ambetant dat de pushpins in het rode gedeelte (wegens multiply) donkerder zijn dan in het gele gedeelte, dus ik heb met “contiguous” àf en verder dezelfde Magic Wand-settings zo’n oranje stukje pushpin geselecteerd, dan de selectie met een pixel of zo vergroot, de selectie omgekeerd (shift-F7), en dan een laagmasker toegevoegd aan de laag met de kleuren. Dat geeft dit:

Kaart06

Voilà. Véél rapper gedaan dan uitgelegd, uiteraard.

photoshoptutorial

Smoothing

woensdag 9 november 2005 in Computers en dingen. Permanente link | 7 reacties

In de rapte: ik zag deze hello kitty staan en ik dacht, die zou ik wel graag in het groot afgeprint hebben.

Probleem: het beeldje is van erbarmelijk slechte kwaliteit. Dat is redelijk duidelijk te zien als je het een beetje vergroot:

Kitty

Als ik het beeldje op 300 dpi afdruk, dan zijn er eigenlijk maar genoeg pixels om een postzegeltje van ongeveer drie op vier centimeter te krijgen.

Vergroten in Photoshop helpt niet veel: je krijgt dan wel genoeg pixels om op 300 dpi een A4 te printen (het beeld gaat van 371×502 naar 2362×3196 pixels), maar de kwaliteit blijft even slecht. Photoshop kan er uiteraard niet echt informatie bij gaan maken, al doet het wel ferm zijn best met interpolatie.

En naast het gebrek aan pixels, is er ook nog dat het beeld eigenlijk maar slecht van kwaliteit is: de foto is een beetje blauwig, de JPEG-compressie maakt het allemaal nóg wat modderachtiger, en het mooie van zo’n Nijntje/Musti/Hello Kitty is net dat zowel lijnen als kleuren helder zijn.

Photoshop to the rescue! Geheim wapen nummer één om alles veel strakker en minder flou te krijgen: Gaussian Blur. Geheim wapen nummer twee: Levels.

Als volgt. Vergroot het kleine beeldje naar het juiste formaat. Ga naar Image > Size en geef de gewenste grootte in centimers in; zorg ervoor dat de resolutie ook hoog genoeg is (ik heb 300 dpi genomen). Zorg er voor dat Resample Image ààn staat en niet op “Nearest Neighbour”:

Resize

[1] Résultat des courses—gene vetten:

Kitty

Het is nog minder scherp dan gewoon inzoomen met het vergrootglaasje gedorie! Ha. Stap twee: omzetten naar zwart-wit. Ja, je zou kunnen Desaturate doen (ctrl-U voor de habitués), maar dat maakt ons in dit geval het leven moeilijker. Ga in de plaats daarvan naar het Channels-palet en zoek een kanaal uit waar het zwart het beste uitkomt—hier was dat het roodkanaal:

Channels

[2] Selecteer de inhoud, copieer die, en plak die in een nieuwe laag:

Kitty

[3] Open het levels-dinges (ctrl-L), en zet het zwart– en het witpunt (die driehokejs onderaan het historgram) dicht bij elkaar, ergens rond het midden:

Levels

‘t Is een beetje prutsen en spelen, maar het eindresultaat zou iets dergelijks moeten zijn:

Kitty

[4] Wis het overgebleven grijs in het midden van witte vlakken weg, en dan is het nu tijd om het écht scherp te krijgen: haal boven die Gaussian Blur:

Blur

‘t Is weer wat zoeken en duwen en trekken—absolute instructies in de zin van “het moet 5.7 of 7.3 zijn”, zijn er niet te geven, maar het resultaat zou een beeld moeten zijn dat er met uw hoofd een beetje scheef en uw ogen een beetje toe, er redelijk smooth uitziet. Iets dergelijks bijvoorbeeld:

Kitty

[5] En dan nu: de grote verdwijntruuk. Ga weer naar Levels, en doe hetzelfde als daarnet, wit en zwart dichter bij mekaar zetten. Wat dat doet, is als het ware de grijswaarden “tegen mekaar duwen”: waar er een groot verloop van puur zwart naar puur wit was, worden een hoop van die lichtgrijzen wit, en een hoop van die donkergrijzen zwart.

‘t Is gemakkelijker gedaan dan uitgelegd, en ‘t is alweer een kwestie van zoeken en zo, maar uiteindelijk is het resultaat iets als dit:

Kitty

[6] Maak een nieuwe laag aan, zet die op Multiply, en kleur de nodige vlakjes in met propere heldere kleuren… tada:

Kitty

Hoe? Waar komen die blauwe tuutjes vandaan?! Wel: zelfde methode als om het zwart te krijgen, maar dan moet je in stap 3 de driehoekjes alledrie een eindje meer naar rechts zetten, om op die manier het lichter grijs te “isoleren”.

Neem het beeldje van stap 2 (je hebt dat toch bewaard ergens in een afzonderlijke laag hé?), copieer het naar een nieuwe laag, en doe het Levels-ding:

Kitty

Je krijgt dan wel wat te dikke zwarte lijnen, maar die moet je dan maar weg wissen:

Kitty

Dan houd je alles over dat blauw moet worden, maar het staat wel in het zwart. Selecteer alles, cut, ga naar quickmask (duw op Q), paste, verlaat Quickmask (nog eens Q), resultaat:

Kitty

een wit blad met alleen dààr waar het blauw moet worden, een selectie. Zet de huidige laag op Multiply, kies een blauwe kleur, en doe alt-Backspace om de selectie te vullen… hey presto, werk gedaan.

Rol met uw muis over het beeld voor een illustratie vóór en na, en klik voor het finale beeld op A4-formaat:

 

En ja, ik weet dat het beter kan en dat het niet perfect is, en dat er veel methodes zijn om het properder te krijgen (in dit geval: gewoon overtrekken in Illustrator, ‘t is simpel genoeg), maar het is zo’n techniek die al jàààren meegaat, en die zó gemakkelijk en nuttig is…

Geschreven al luisterend naar: The Bee Gees – The Very Best Of The Bee Gees – First Of May

photoshop tutorial

Ajax schmajax

zaterdag 5 november 2005 in Computers en dingen. Permanente link | 7 reacties

Ik zie wel wat plaats voor refreshloze dingen op ons nieuw intranet—vooral voor dingen in widgets in sidebars. Maandkalenders vooruit en achteruit laten gaan bijvoorbeeld, of menu’s van het cafetaria, of snelle zoekopdrachten in lijsten en zo.

Na enig rondkijken op tinternet: is that all there is to it? ‘t Is dat ik er nog nooit nood aan gehad heb, want die zo geroemde xmlhttp-nonsens is eigenlijk echt wel poepsimpel.

Ter illustratie een voorbeeld: maak een formulier dat een opzoeking doet in een telefoonboek, en toon het resultaat op dezelfde pagina zonder de pagina te laten over en weer gaa naar de server. [allemaal zonder enige error checking en vies geprogrammeerd, maar ‘t is het principe dat telt natuurlijk]

Om te beginnen moet er een XMLHTTP-object aangemaakt worden. Dat gebeurt in IE anders dan in andere browsers, dus het javascript ziet er bijvoorbeeld zo uit:

var req;
if (navigator.appName=="Microsoft Internet Explorer") {
    req=new ActiveXObject("Microsoft.XMLHTTP");
} else {
    req=new XMLHttpRequest();
}

Dan definieer ik twee functies: één om de data te versturen, en één om de terug ontvangen data op de pagina te plaatsen:

function doGet(param) {
    req.open('get', 'handler.php?param='+param);
    req.onreadystatechange=doResult;
    req.send(null);
}

function doResult() {
    if (req.readyState == 4) 
        document.getElementById('srchRes').innerHTML=req.responseText;
}

doGet heeft één parameter, en die word naar handler.php verstuurd, als een parameter van een gewone GET. Dan wordt er gezegd dat bij een verandering van readyState doResult opgeroepen moet worden, en dan wordt de hele zooi opgestuurd.

doResult kijkt na of de readyState wel “Object is completely initialized” is, en in dat geval smijt het (in dit voorbeeldje) de inhoud van het teruggekregen document in zijn volledigheid in het element met ID “srchRes”.

Het formpje ziet er bijvoorbeeld zo uit, met net eronder een lege paragraaf:

<form>
    <input type="text" id="srchTxt" />
    <input type="button" value=" go " 
      onclick="javascript:doGet(document.getElementById('srchTxt').value);" />
</form>
<p id="srchRes"></p>

[jaja, er zou om goed te zijn ook een action en een method bij het form moeten staan, en een name bij het tekstinputveld, en de button zou zo goed een submit kunnen zijn, en dan zou het allemaal óók voor mensen zonder javascript werken, maar bon, ‘t is maar een voorbeeld]

In handler.php wordt de opzoeking gedaan en precies zo getoond als ze op de resultaatpagina moet komen te staan. Voor het voorbeeld heb ik geen opzoeking gedaan maar gewoon dit:

<?php
echo "Resultaat voor <strong>".$_REQUEST['param']."</strong> was, enz.";
?>

…en dat is het. Twee bestandjes. Twee functietjes.

De dingen wat fancier maken is hoegenaamd niet moeilijk: data die te versturen en te ontvangen is, wrappen in XML bijvoorbeeld, en waar nodig serialiseren/deserialiseren. Of css-en-javascriptgewijs dingen laten oplichten als ze verschijnen. Maar dit is de basis: een XmlHttpRequest maken, data naar een andere pagina smijten, wachten tot die pagina een resultaat teruggeeft, en dan het resultaat verwerken.

Enjoy!

Geschreven al luisterend naar: Miranda Sex Garden – Suspiria – Willie Biddle And His Waltzing Maggot

Vriendjes

Zoek

<insert standard disclaimer>

Alles wat hier staat is mijn eigen opinie. Het wordt niet nagelezen of goedgekeurd door mijn werkgever voor het on-line komt, en ik bied geen enkele garantie voor kwaliteit of correctheid.

Mijn werkgever is het niet noodzakelijk eens met wat ik schrijf, en het spreekt vanzelf dat hij dan ook op geen enkele wijze aansprakelijk kan zijn voor wat ik hier publiceer.

Ter info

Eén van mijn e-mailadressen is michel [at] zog punt org. Normaal gezien antwoord ik daar, buiten de kantooruren, onmiddellijk op.

Valideert, in principe: css & xhtml.
Gemaakt met WordPress.
Syndicatie: Entries (RSS) en commentaar (RSS).



ISSN 1780-1338