tag:blogger.com,1999:blog-16290465093540297842024-03-14T09:51:17.439+00:00InfomixerUnknownnoreply@blogger.comBlogger28125tag:blogger.com,1999:blog-1629046509354029784.post-41654727646790200312020-10-08T20:37:00.003+01:002020-10-08T20:37:54.148+01:00Low-knead breadBefore the COVID-19 lockdown of early 2020 it had been a while since I had made bread. As I was suddenly home it seemed like a good time to get back to regularly making bread. Panic buying had depleted the local supermarkets' stock of flour, and while I managed to find some strong white flour and some wholemeal flour, it seemed impossible to find rye flour. This was a shame, as the bread recipe I used most required some rye flour. Somewhere on social media I read a suggestion to try making bread with some cooked oats, and this got me thinking if I could replace the rye flour with cooked oats.<div><br /></div><div>A little bit of trial and error got me to this recipe. There are many steps, but not that much kneading. <div><div><br /></div><h3 style="text-align: left;">Ingredients</h3><div><ul style="text-align: left;"><li>310 ml water</li><li>50 gr rolled oats</li><li>15 gr unsalted butter</li><li>1 tsp salt</li><li>1 tbsp sugar (black treacle or honey)</li><li>1 tsp yeast </li><li>275 gr strong white flour</li><li>75 gr strong wholemeal flour</li></ul><div><h3 style="text-align: left;">Needed</h3><ul style="text-align: left;"><li>Oven</li><li>Loaf tin</li><li>Mixing bowl</li><li>Big spatula</li><li>Kettle</li><li>Measuring cup</li><li>Tsp and tbsp measures</li></ul></div><h3 style="text-align: left;">Steps</h3></div></div></div><div><ol style="text-align: left;"><li>Boil the kettle.</li><li>Pour 310 ml of boiling water into a large mixing bowl (I use the one from our Kenwood mixer)</li><li>Add the oats, butter, salt and sugar.</li><li>Leave for about twenty minutes until it has cooled enough (yeast apparently works hardest around 35℃ and dies somewhere around 60℃, so I just stick my finger in it to check that it is about body temperature).</li><li>Once cool enough, sprinkle the yeast on top.</li><li>Leave again for a few minutes until some foam has appeared, that's the yeast having been reactivated.</li><li>Add the flours.</li><li>Mix - I use the dough hook on our mixer and give it some wellie for only a few minutes - but am under the impression that just mixing well should be enough at this stage.</li><li>Cover the bowl with a clean tea towel and leave to rest for 10 to 15 minutes. This should probably be "in a warm place," but I've just left it on the kitchen work surface so far.</li><li>Uncover. Take a plastic spatula and lift the dough from one side and fold it over. Turn the bowl a quarter and do the same again. Repeat until you've turned the bowl around a few times.</li><li>Repeat steps 9 and 10 three or four times (reuse the tea towel!)</li><li>Grease and line your loaf tin. You'll want to stick the baking paper down quite well, as it will help with the next step.</li><li>"Tip" the dough into the loaf tin. In reality this will mean scraping it out with the spatula.</li><li>Stretch the dough a little so it sort of fills the loaf tin. It will rise to fill it, but if you push or pull it a little towards both ends the end result will be a more even loaf.</li><li>Cover the loaf tin with a dome of kitchen foil, making sure that the kitchen foil does not touch the dough, and that the dough has room to rise. I make the dome small enough that the loaf tin plus dome will fit in the top oven of our double oven.</li><li>Put the dough in a warm spot to rise. For this I use our top oven, which I will switch on for about a minute to 30℃. Don't want the oven to be warmer, as I don't want to kill the yeast at this point. </li><li>Wait for about half an hour. You might want to check on your dough to make sure it still has room under the kitchen foil dome. If it's not got room left, just take the foil off (but save it).</li><li>Preheat your main oven to 230℃.</li><li>When the oven is hot enough and you think your dough is ready to be baked (my estimate of this is "somewhere before it all spills over the edge of the loaf tin") move the loaf tin into the oven. Take the kitchen foil off if you haven't yet. Save the foil.</li><li>After 10 minutes, turn the oven down to 200℃.</li><li>Bake for another 25 minutes. It's probably wise to check the last 5 or 10 minutes to see if the bread needs protection from burning. If it does, stick the foil dome on top.</li><li>Take bread out of the oven and tip it out on a wire rack.</li><li>Tap the bottom. If it sounds hollow, it's probably done. If it does not sound hollow, stick it back in the oven for another 10 minutes (no need for the tin).</li></ol></div><div>The timings might be a little off, not only because not all ovens are the same, but also because I actually use a tin that is 1.5 the size and have adjusted the ingredients accordingly, but am not entirely sure about adjusting the baking timings.</div><div><br /></div><div>Now that I have found rye flour in the shops again I skip the oats steps, and add 50 gr rye flour along with the other flours.</div><div><br /></div>Mariohttp://www.blogger.com/profile/09118899499998038920noreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-68725604415005420002016-03-13T19:55:00.003+00:002016-03-13T19:55:48.226+00:00Rode kool met appeltjes en rozijnen<p>Today I made this vegetable side dish for some guests who asked for the recipe, and therefor you get to enjoy it too. The recipe that is.</p><br />
<ul> <li>1 red cabbage</li>
<li>2 apples</li>
<li>pinch of salt</li>
<li>pinch of powdered cloves</li>
<li>1 tsp vinegar</li>
<li>handful of sultanas</li>
</ul><br />
<ol> <li><br />
Cut the red cabbage into narrow strips.<br />
</li>
<li><br />
Peel and core the apples and cut into cubes.<br />
</li>
<li><br />
Place all ingredients in a pan with some boiling water. The water does not need to cover the cabbage, but there should be enough for the pan not to boil dry.<br />
</li>
<li><br />
Simmer for about 20 minutes.<br />
</li>
<li><br />
Drain and serve.<br />
</li>
</ol><br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-44078143727738258372015-05-11T22:59:00.000+01:002015-05-12T20:31:38.118+01:00Britse Lagerhuisverkiezingen 2015 <p>Sinds ik in Engeland woon heb ik de politiek matig gevolgd. Zowel de politiek in Nederland als die in het Verenigd Koninkrijk. Aangezien ik van de Nederlandse politiek weinig mee krijg en het stemmen vanuit het buitenland nogal een gedoe is, heb ik stemmen met de <a href="http://nl.wikipedia.org/wiki/Tweede_Kamerverkiezingen">Tweede Kamerverkiezingen</a> sinds de laatste keer opgegeven. Hier in het Verenigd Koninkrijk mag ik niet stemmen in het equivalent, de verkiezingen voor het Lagerhuis, omdat ik niet Brits ben.</p><p>Om hier te mogen stemmen zou ik me tot Brit moeten laten naturaliseren, met de kans dat ik dan mijn Nederlandse paspoort kwijt raak, en met op dit moment als enige voordeel dat ik mijn stem mag uitbrengen in deze verkiezing.</p><p>Dit zou me meer dan £1000 kosten en dat is het dankzij het gebruikte kiesstelsel niet waard. Stemmen is belangrijk en ik ben altijd van mening geweest dat als je niet stemt, dat je dan niet mag klagen. En stemmen vind ik nog steeds belangrijk, maar het blijkt in het Verenigd Koninkrijk niet altijd veel uit te maken. Het kiessysteem werkt hier heel anders dan in Nederland en er valt veel over te klagen.</p><p>Gedurende de jaren dat ik het kiesstelsel hier in actie heb gezien heb ik het altijd al vreemd gevonden, maar het is pas tijdens de verkiezingen van mei 2015 dat ik echt opgelet heb en zie dat het systeem knotsgek is.</p><h3>Hoe het werkt</h3><p>De verkiezingen voor het Lagerhuis in het Verenigd Koninkrijk worden gevoerd middels een <a href="http://nl.wikipedia.org/wiki/Districtenstelsel">districtenstelsel</a> in combinatie met een <a href="http://nl.wikipedia.org/wiki/Meerderheidsstelsel">meerderheidsstelsel</a>. Er zijn 650 zetels in het Lagerhuis en het land is opgedeeld in 650 kiesdistricten. Een zetel hoort bij een kiesdistrict. Stemmers die in een kiesdistrict geregistreerd zijn kunnen alleen stemmen op kandidaten voor dat kiesdistrict. In ieder kiesdistrict is maximaal 1 kandidaat per partij, maar lang niet alle partijen hebben kandidaten in alle kiesdistricten.</p><p>Voor de verkiezingen van mei 2015 waren er meer dan 60 partijen, maar in het kiesdistrict waar ik woon waren er maar kandidaten van 6 van die partijen.</p><p>Veel districten worden gezien als "safe seats" wat betekent dat het onwaarschijnlijk is dat de zetel naar een andere partij gaat. Dit komt er op neer dat als je in zo'n district stemt, dat je stem eigenlijk nutteloos is. De winnaar van die zetel had ook gewonnen als je niet op hem/haar had gestemd, en de verliezer had ook verloren als je wel op hem/haar had gestemd (aannemende dat genoeg andere mensen nog wel stemmen).</p><p>Ik heb schattingen gezien dat van de 46 miljoen kiezers, de stemmen van slechts 100 duizend kiezers er toe doen.</p><p>Om een zetel te winnen hoef je alleen meer stemmen te krijgen dan de andere kandidaten. Als er bijvoorbeeld 1000 kiezers zijn en 5 kandidaten en 4 van die kandidaten krijgen 199 stemmen en 1 krijgt er 204 dan wint die laatste de zetel.</p><p>Op deze manier is het mogelijk om een meerderheid van de zetels in handen te krijgen met ruim minder dan de meerderheid van alle stemmen.</p><p>En dat is precies wat er nu is gebeurd. De Conservatives (Tories) hebben een "overgrote meerderheid" van 331 van de 650 zetels gewonnen met minder dan 37% van de stemmen. Dit verdient het om het nog een keer anders te zeggen: ze hebben 51% van de zetels gekregen voor 37% van de stemmen.</p><h3>De resultaten</h3><p>De resultaten van de verkiezingen zijn met <a href="http://www.bbc.co.uk/news/election/2015/results">veel</a> <a href="http://en.wikipedia.org/wiki/United_Kingdom_general_election,_2015">detail</a> <a href="http://www.buzzfeed.com/bkjmiller/the-general-election-result-in-maps-lots-of-maps-a0ii#.qflyDDKZAl">beschikbaar</a>, maar ik wil er een paar uitlichten om mijn punt duidelijker te maken.</p><br />
<style type="text/css">
table tr td { text-align: right; padding-left: 10px; }
table tr td.text { text-align: left; background-color: #ccc; padding-right: 10px; }
table thead { background-color: #ccc; }
</style><br />
<br />
<table><thead>
<tr> <td></td><td>Zetels 2015</td><td>Verschil met 2010</td><td>Aantal stemmen</td><td>Stemmen percentage</td><td>Verschil met 2010</td> </tr>
</thead> <tbody>
<tr><td class="text">Conservative</td><td>331</td><td>+24</td><td>11.334.520</td><td>36,9%</td><td>+0,8</td></tr>
<tr><td class="text">Labour</td><td>232</td><td>-26</td><td>9.347.326</td><td>30,4%</td><td>+1,5</td></tr>
<tr><td class="text">SNP</td><td>56</td><td>+50</td><td>1.454.436</td><td>4,7%</td><td>+3,1</td></tr>
<tr><td class="text">LibDem</td><td>8</td><td>-49</td><td>2.415.888</td><td>7,9%</td><td>-15,2</td></tr>
<tr><td class="text">DUP</td><td>8</td><td>0</td><td>184.260</td><td>0,6%</td><td>0</td></tr>
<tr><td class="text">UKIP</td><td>1</td><td>+1</td><td>3.881.129</td><td>12,6%</td><td>+9,5</td></tr>
<tr><td class="text">Green Party</td><td>1</td><td>0</td><td>1.157.613</td><td>3,8%</td><td>+2,8</td></tr>
</tbody> </table><p>Om een overgrote meerderheid te behalen zijn minstens 326 zetels nodig. Dat is meer dan de helft van het Lagerhuis. De Conservatives hebben dat bereikt met slechts 36.9% van de stemmen.</p><p>Verder zijn er nog meer zetelverdelingen die duidelijk niet alleen op het aantal stemmen gebaseerd zijn:<br />
<ul><li>SNP heeft minder stemmen dan de Liberal Democrats, maar 7 keer zoveel zetels;</li>
<li>Het verschil in aantal stemmen voor de SNP en de Green Party is niet erg groot, maar het verschil in de zetels wel - SNP heeft er 56 keer meer;</li>
<li>SNP en Liberal Democrats hebben samen minder stemmen dan UKIP, maar <em>veel</em> meer zetels;</li>
<li>UKIP en Green Party hebben evenveel zetels, maar UKIP kreeg ruim drie keer zoveel stemmen;</li>
<li>En nog duidelijker: Liberal Democrats en DUP hebben ook evenveel zetels, maar de Liberal Democrats hebben ruim 13 keer zoveel stemmen gekregen;</li>
<li>Tevens heeft Labour deze keer een groter percentage van de stemmen gekregen, maar minder zetels!</li>
</ul></p><p>De stemmen voor de Green Party, UKIP en de Liberal Democrats zijn verspreid over het hele land, terwijl de stemmen voor de SNP en DUP in een beperkt geografisch gebied plaats vinden. Een partij heeft meer kans op een zetel als de stemmen geografisch dicht bij elkaar zijn.</p><p>Er gaan <a href="http://i100.independent.co.uk/article/7-laws-the-lib-dems-stopped-the-tories-from-passing--gkKwqOshgb">geruchten dat de Conservatives waarschijnlijk het aantal zetels naar beneden willen bijstellen</a> door zetels van andere partijen samen te voegen, zodat ze er voor de volgende verkiezingen beter voor staan. Dit klinkt als een valse methode om aan de macht te blijven, en dat het een probleem met dit kiesstelsel is, blijkt wel uit het feit dat er een woord voor bestaat: <a href="http://nl.wikipedia.org/wiki/Kiesrechtgeografie">gerrymandering</a>.</p><h3>Evenredige vertegenwoordiging</h3><p>Er is weinig kans dat dit systeem zal veranderen, aangezien de grootste partijen geen belang bij verandering hebben - hun aandeel in het Lagerhuis zou waarschijnlijk omlaag gaan.</p><p><a href="https://www.opendemocracy.net/ourkingdom/shaun-lawson/when-is-democracy-not-democracy-when-it%E2%80%99s-in-britain">Lang niet iedereen is blij met het huidige systeem</a> en er wordt uitgebreid <a href="http://theconversation.com/the-case-for-proportional-representation-in-the-uk-just-became-clearer-41544">geroepen dat het systeem moet veranderen</a>. <a href="http://www.telegraph.co.uk/news/general-election-2015/politics-blog/11594428/David-Cameron-has-a-razor-thin-majority.-Hes-going-to-miss-Nick-Clegg....html">Het systeem is verouderd en werkt niet meer.</a><br />
</p><p>4 jaar geleden was er een <a href="http://en.wikipedia.org/wiki/United_Kingdom_Alternative_Vote_referendum,_2011">referendum over Alternative Vote</a>, een systeem dat voorgesteld werd omdat het niet een erg grote verandering zou zijn - en er vermoed werd dat echte evenredige vertegenwoordiging door het electoraat afgewezen zou worden omdat het te anders was.</p><p><a href="http://nl.wikipedia.org/wiki/Evenredige_vertegenwoordiging">Evenredige vertegenwoordiging</a> wordt voor sommige verkiezingen wel gebruikt in het Verenigd Koninkrijk, maar niet voor die van het Lagerhuis - want dat zou de grote partijen geen goed doen.</p><table><thead>
<tr><td></td><td>Zetels 2015</td><td>Zetels gebaseerd op stemmen percentage</td></tr>
</thead> <tbody>
<tr><td class="text">Conservative</td><td>331</td><td>240</td></tr>
<tr><td class="text">Labour</td><td>232</td><td>198</td></tr>
<tr><td class="text">SNP</td><td>56</td><td>31</td></tr>
<tr><td class="text">LibDem</td><td>8</td><td>51</td></tr>
<tr><td class="text">DUP</td><td>8</td><td>4</td></tr>
<tr><td class="text">UKIP</td><td>1</td><td>82</td></tr>
<tr><td class="text">Green Party</td><td>1</td><td>25</td></tr>
</tbody> </table><p>Ik heb hier de simpele methode gebruikt om de stemmenpercentages te gebruiken, in werkelijkheid zou er waarschijnlijk een ingewikkeldere methode gebruikt worden die ongeveer op hetzelfde neer komt.</p><p>Aangezien veel mensen nu taktisch stemmen om te zorgen dat de partij die ze zeker niet in de regering wil ook werkelijk niet in de regering komt, is het waarschijnlijk dat minder mensen voor de twee grote partijen zouden stemmen. Ook is het waarschijnlijk dat meer mensen die nu niet stemmen, omdat hun stem er niet toe doet, alsnog zouden gaan stemmen wat de resultaten ook weer zou veranderen.</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-3472935833494166232012-11-30T10:29:00.000+00:002012-11-30T17:17:33.884+00:003D Printed Ice Structure<p>
If you're local to me, you will have noticed it rained a lot earlier in the week. And that it was very cold last night.
</p>
<p>
Well. It appears somebody didn't cover up the sandpit.
</p>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibTvrMCzRdUA2_5K915j6Ct0jwoJApATJcbRTn4GRCL1ti0wO-PDErJUTFEJnF13laj1Wzu86EgJrHvDiI-Hyi_5obZOlaj5jOr8tWBztPHdsSUkPx7-aIYGmqJUcP9W2neo63qb5gObY/s1600/DSCF9924.JPG" imageanchor="1"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibTvrMCzRdUA2_5K915j6Ct0jwoJApATJcbRTn4GRCL1ti0wO-PDErJUTFEJnF13laj1Wzu86EgJrHvDiI-Hyi_5obZOlaj5jOr8tWBztPHdsSUkPx7-aIYGmqJUcP9W2neo63qb5gObY/s320/DSCF9924.JPG" width="320" /></a>
<p>
While amusing, this is not what this post is about though.
</p>
<p>
This is:
</p>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbDBN6qrb-6JRYakuz0vihtDuT-lVZEUpvTWpYRPv1CePOu4R1z6uayqvs-TUAymnWjPemOD-QFa6G86_HiX1ykbubo0hOPDFOjIRvl-2uQLNlppcQUqXnzQnDpCjTSaTVSs4E_MBeYeE/s1600/DSCF9929.JPG" imageanchor="1" ><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbDBN6qrb-6JRYakuz0vihtDuT-lVZEUpvTWpYRPv1CePOu4R1z6uayqvs-TUAymnWjPemOD-QFa6G86_HiX1ykbubo0hOPDFOjIRvl-2uQLNlppcQUqXnzQnDpCjTSaTVSs4E_MBeYeE/s320/DSCF9929.JPG" width="240" /></a>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga-3wbki70cwE4eM6TTQKcfbi7A9V8u9geTzheoGe9tDDc-cYzhs7Fd_HB5wo-j_-GsPqtsegFn7-tL625Vjfne1UGYQkuPgpVKGsiqfsmurQwRN9AT8gDACo_RHxcj7MjCBX9razg52g/s1600/DSCF9928.JPG" imageanchor="1" ><img border="0" height="240" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga-3wbki70cwE4eM6TTQKcfbi7A9V8u9geTzheoGe9tDDc-cYzhs7Fd_HB5wo-j_-GsPqtsegFn7-tL625Vjfne1UGYQkuPgpVKGsiqfsmurQwRN9AT8gDACo_RHxcj7MjCBX9razg52g/s320/DSCF9928.JPG" /></a>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrSIC4Gx9Cm_kXLKDBwH5CVyed-FMcglNtqVXDSF4crWGNLPYT-hAzHfXA06QwqSdFKhpruTh3323Moz2PBHRLH2_Ba-1WJR0sEeGR3lQRfT5n6zO7dpz7Af2Q9Sdqc-3RLcjC-qHmLpo/s1600/DSCF9934.JPG" imageanchor="1" ><img border="0" height="320" width="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrSIC4Gx9Cm_kXLKDBwH5CVyed-FMcglNtqVXDSF4crWGNLPYT-hAzHfXA06QwqSdFKhpruTh3323Moz2PBHRLH2_Ba-1WJR0sEeGR3lQRfT5n6zO7dpz7Af2Q9Sdqc-3RLcjC-qHmLpo/s320/DSCF9934.JPG" /></a>
<p>
This ice structure is poking out of another outdoor toy that wasn't covered up.
</p>
<p>
How did this happen?
</p>
<p>
It looks like a triangular shaped ice tube. It may not be too clear from the pictures, but the walls of the structure are made of ice and the inside is liquid water.
</p>
<p>
I imagine that due to the temperature the water under the ice needs space to expand and pushes up through what must have been the last small opening. Each time the water pushes a bit higher the edges freeze, constructing the walls layer by layer - a bit like a 3D printer might do it. Whether this is actually what happened I don't know.
</p>
<p>
To check that it was actually ice, I tapped against one of the walls and it came crumbling down, spilling some of the liquid it was holding back.
</p>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuTfC0pH9sgFah5cnEkE-WA_lXYZlNQCo6eZRyHPyryLCn4QMGPH_Bk6A_teuwhTVLlwPuXCZjBBFUALk7JSz6gX-Kx4Ft3MU4IvXOsi2cPdEeUAaL-zsO3e51fAaT7hwdcoxdThcO36Q/s1600/DSCF9936.JPG" imageanchor="1" ><img border="0" height="320" width="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuTfC0pH9sgFah5cnEkE-WA_lXYZlNQCo6eZRyHPyryLCn4QMGPH_Bk6A_teuwhTVLlwPuXCZjBBFUALk7JSz6gX-Kx4Ft3MU4IvXOsi2cPdEeUAaL-zsO3e51fAaT7hwdcoxdThcO36Q/s320/DSCF9936.JPG" /></a>
<br />
<br />
<p style='font-weight:bold'>
[UPDATE 30/11/2012 17:16 GMT]
</p>
<p>
<a href="https://twitter.com/paul_edwin/status/274559338230738949">Apparently</a>, this is called an <a href="http://en.wikipedia.org/wiki/Ice_spike">ice spike</a> and they don't happen often in "non-distilled" water - making me feel all warm and fuzzy that I found one in our garden.
</p>Mariohttp://www.blogger.com/profile/09118899499998038920noreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-43305409477681087962012-01-01T07:35:00.001+00:002017-01-12T20:01:15.658+00:00Mincemeat TurnoversEvery New Year's Eve I crave oliebollen, but since these require deep frying and hence too much faff, I make appelflappen. Apple turnovers are the only traditional Dutch New Year's Eve food that isn't deep fried, but baked in the oven instead.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQnSss-YvU4P65aHHGNugRKtO7dVryR419i4rPSZa4tLMvVyz4dcP-iUC80DSoTrgSUQZcbC9jLM4F0f-Ke6PsaGsI1U5oWANH87sgmrkAwB-fODoIJaI_Shhm69bsSXWhe0v8wyXrR0/s1600/DSCF7996.JPG" imageanchor="1" style=""><img border="0" height="240" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQnSss-YvU4P65aHHGNugRKtO7dVryR419i4rPSZa4tLMvVyz4dcP-iUC80DSoTrgSUQZcbC9jLM4F0f-Ke6PsaGsI1U5oWANH87sgmrkAwB-fODoIJaI_Shhm69bsSXWhe0v8wyXrR0/s320/DSCF7996.JPG" /></a><br />
<br />
Last year I made the filling for the appelflappen from scratch. This year I used a jar of mincemeat instead. Far from traditional, but if the number of these minceflappen that my daughter ate is anything to go by then it was a success! Using a jar is definitely easier than making the filling from scratch, but I thought the mincemeat turned out a bit runny. I think I prefer the more traditional apple turnovers, but think that the ease of using a jar will probably win me over to make these again next New Year.<br />
<br />
<b>500gr puff pastry<br />
400gr mincemeat<br />
1 beaten egg<br />
About 2 tsp sugar</b><br />
<br />
Pre-heat fan oven to 200°C.<br />
<br />
Roll out puff pastry thinly.<br />
<br />
Cut pastry into twelve squares of about 12cm.<br />
<br />
Place small heap of filling in centre of each square.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi7iV7cVLuInHQRVYwwqQ8BJ-0qoedy9IUjCKLn1ZHgbND6V4gJOzeJNIgGojRycPKLss8DF3obj_98dF807JXDkaGMo-18pYmBrwpUA9C36cpyVAzXyAtnyDBjOS53m9edPS8rBYxZDc/s1600/DSCF7985.JPG" imageanchor="1" style=""><img border="0" height="240" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgi7iV7cVLuInHQRVYwwqQ8BJ-0qoedy9IUjCKLn1ZHgbND6V4gJOzeJNIgGojRycPKLss8DF3obj_98dF807JXDkaGMo-18pYmBrwpUA9C36cpyVAzXyAtnyDBjOS53m9edPS8rBYxZDc/s320/DSCF7985.JPG" /></a><br />
<br />
Fold each square over to form a triangle.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5m5bqWAJjoJaTqR-LSw5cILbgkf6RON-6TKLFSQyDd97Q7jomAw8DikMGppUWFoiFgDro3q8HfgmlwnxVZTOiFuoHwsQ6jVtKlWZgl9b3y9rBZKGSdPN5ovqOuTXjq31xyAArEp0Fddo/s1600/DSCF7986.JPG" imageanchor="1" style=""><img border="0" height="240" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5m5bqWAJjoJaTqR-LSw5cILbgkf6RON-6TKLFSQyDd97Q7jomAw8DikMGppUWFoiFgDro3q8HfgmlwnxVZTOiFuoHwsQ6jVtKlWZgl9b3y9rBZKGSdPN5ovqOuTXjq31xyAArEp0Fddo/s320/DSCF7986.JPG" /></a><br />
<br />
Brush with the beaten egg and sprinkle with sugar.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimMyx0Pni45Q9lspxjMfNX2ZoSQfDkGpltgnpwHR7ei8gbEzmBHeMyGluZCGbG3YzohNcY-gDIwCGx2ClCPRdOHh7pQcf2ZGXxgBvPPwm8QUNyGHY-IP9EgzBemetfUP3NYFl6sBh50YI/s1600/DSCF7991.JPG" imageanchor="1" style=""><img border="0" height="240" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimMyx0Pni45Q9lspxjMfNX2ZoSQfDkGpltgnpwHR7ei8gbEzmBHeMyGluZCGbG3YzohNcY-gDIwCGx2ClCPRdOHh7pQcf2ZGXxgBvPPwm8QUNyGHY-IP9EgzBemetfUP3NYFl6sBh50YI/s320/DSCF7991.JPG" /></a><br />
<br />
Bake in oven for about 10-15 minutes.<br />
<br />
<br />
<h2>1 January 2017</h2><br />
I made two batches yesterday for a party, but because I only had one jar of mincemeat I made one version with a more traditional apple and sultana filling.<br />
<br />
For the mincemeat version I heated the mincemeat in a pan and drained the liquid off through a sieve. This helped the consistency of the mincemeat turnovers, but not necessarily the flavour!<br />
<br />
For the apple and sultana turnovers I used one cored and peeled and chopped apple and an inexact amount of sultanas and currants soaked in sherry with speculaas kruiden (cinnamon would do). Before folding the pastry over the filling I put a thin marzipan sausage on the filling.<br />
This version was much tastier than the one with mincemeat and is the one I will be making in the future.<br />
<br />
<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-5120885052536244872011-12-25T21:24:00.000+00:002012-12-06T18:09:18.879+00:00Cheat's TrifleFor the last four years I have made a trifle for our Christmas dinner. You know you've been accepted when your family let's the foreigner make the trifle.<br />
<br />
When I was looking for trifle recipes my wife initially suggested I would make Heston Blumenthal's version*. Hah, very funny, love, but no. I decided to go for <a href="http://www.bbc.co.uk/food/recipes/traditionalenglishtr_71964">Rick Stein's Traditional English Trifle.</a><br />
<br />
Well, I looked at it.<br />
<br />
And then I took every shortcut I could think of.<br />
<br />
Bake my own madeira cake? Oh, look, cheap supermarket's madeira cake.<br />
Make my own custard? Ooo, look, cheap supermarket's fresh custard...<br />
<br />
I've never actually made Rick Stein's trifle and as a result I don't have a clue whether my shortcut version has any positive relation to his, but my family likes it, so who am I not to keep making it?<br />
<br />
Since I'm not actually following Rick Stein's recipe I've always had to guess most of the quantities and have ended up buying too much. My main reason for writing this down is so next year I can finally stop buying too many ingredients.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Pg9GOw4n4qRxolyWar07FWvq5nLQbZOdaAHJiewEoGaZfYO40CY0D-EYyithWT44MZTTgGR5ug-gIaLygCbG6MY0SgUdZTS1I-dnH88FC_1pjdj_ClyHaiRzXrqzS8SIZSVAUda-9H8/s1600/DSCF7874.JPG" imageanchor="1" style=""><img border="0" height="240" width="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Pg9GOw4n4qRxolyWar07FWvq5nLQbZOdaAHJiewEoGaZfYO40CY0D-EYyithWT44MZTTgGR5ug-gIaLygCbG6MY0SgUdZTS1I-dnH88FC_1pjdj_ClyHaiRzXrqzS8SIZSVAUda-9H8/s320/DSCF7874.JPG" /></a><br />
<br />
While most celebrity chefs always seem to suggest getting the best ingredients money can buy, I suggest getting the "normal" range of fresh custard from your supermarket, and the cheapest madeira cake you can get.<br />
<br />
<b>2 * 500gr tubs fresh custard</b> (I use Sainsbury's Fresh Custard, not the one from their Taste the Difference range)<br />
<b>1.5 jars raspberry conserve</b> (I use Bon Maman)<br />
<b>4 * 265gr madeira cake</b> (I use Sainsbury's Basics Madeira Cake)<br />
<b>200 gr milk chocolate</b><br />
<b>480 ml double cream</b><br />
<b>Oloroso sherry</b> (about 20 spoonfuls, far less than a bottle)<br />
<br />
This gives me about two medium sized serving bowls and a bit more worth of trifle. I tend to create little individual ones without the sherry for the kids and put all the sherry in the main bowls.<br />
<br />
<b>Day before serving</b> (i.e. Christmas Eve):<br />
Cut the cakes length ways into slices about 1cm thick, cut the "crusts" off.<br />
Put one layer of cake on the bottom of your serving bowl.<br />
Spread about two spoonfuls of jam on it. <br />
Add another layer of cake + jam.<br />
Depending on the height of your serving bowl, you might want to add another layer of cake + jam.<br />
Drizzle over the sherry and give it a bit of time to sink in, you can help it by poking the cake layers with a knife to create a few holes.<br />
Pour the custard on top, cover with cling film and put in the fridge.<br />
<br />
Grate the chocolate (First time I bought a packed of grated chocolate, and since I haven't been able to find that cheat anymore I now grate the chocolate using a food processor). Cover and put in the fridge as well.<br />
<br />
<b>Just before serving</b> (Christmas Day):<br />
Whip cream, scoop and spread on top of the trifles, sprinkle over the grated chocolate.<br />
<br />
There is no chocolate in Rick Stein's recipe, but I think the sprinkled chocolate looks and tastes good and the kids love doing the sprinkling.<br />
<br />
Enjoy.<br />
<br />
* I used to have a <a href="http://www.bbc.co.uk/food/recipes/trifle_87546">link to Heston Blumenthal's trifle recipe</a>, but the recipe seems to have disappeared from the BBC Food website. I can't find the recipe online now, but it is the one that takes 6 hours to make and requires wonderful kitchen implements such as an electric drill and a blow dryer. [UPDATE: I found a <a href="http://teafactory.wordpress.com/2008/09/09/heston-blumenthals-trifle-simplified/">simplified version of Blumenthal's trifle</a>, which still seems like an awful lot of work.]<br />
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-70922231343519284502011-06-03T14:29:00.009+01:002011-06-03T15:10:24.059+01:00Shortened URL ExpansionTwitter provides <a href="http://www.twitter.com/infomixer">me</a> with a lot of value through the plenty of interesting and/or useful links that get tweeted by the selection of people that I follow.<br /><br />Usually when I notice an interesting looking URL, I mark the tweet as favourite, so I can easily find it again later. The twitter.com's favourites interface isn't nearly easy enough for my liking, so I decided to create a webpage that would show me all my favourites links, so I could easily bookmark them on delicious or send them to instapaper.<br /><br />However, I don't want to bookmark the shortened URL, to prevent link-rot I'm only interested in the actual link hidden behind one or more layers of URL shortening services. <em>In fact I don't even want to see shortened URLs, I would much rather know where I'm going.</em><br /><br />My initial attempt to solve this problem was to use the <a href="http://api.bitly.com/">bit.ly api</a> for expanding bit.ly URL-s, which works for a lot of shortened URL-s as many of them go to bit.ly under a different guise.<br /><br />However, it doesn't work for all. Most importantly, it doesn't work for twitter's own <a href="http://t.co/">t.co</a> shortener. This also doesn't appear to have an easily discoverable API for expanding the url.<br /><br />If I can't find a nice way to expand the URL, why not simply keep following the redirects until I hit the actual page I want to bookmark? The following few lines of code should expand any shortened URL, and indeed any redirected URL whether shortened or just hidden behind a redirect.<br /><br /><pre> protected string expandurl(string url) {<br /> System.Net.HttpWebRequest hwr = (System.Net.HttpWebRequest) System.Net.WebRequest.Create(url);<br /> hwr.Method = "HEAD";<br /> hwr.AllowAutoRedirect = true;<br /> hwr.MaximumAutomaticRedirections = 10;<br /> <br /> System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)hwr.GetResponse ();<br /><br /> return response.ResponseUri.ToString();<br /> }<br /></pre><br /><br />The <code>MaximumAutomaticRedirections</code> setting will stop an endless redirection loop, but also means that you might still end up with a shortened URL if the one you've passed in hides even more lot of layers of redirection.<br /><br />The <code>HEAD</code> HTTP method should only return the HTTP headers, not the actual content of the page, so using that should reduce network traffic.<br /><br />Because I'm figuring out which URL is at the end of the redirect chain by following the chain, there is a rather high chance that every time this get's executed the intermediate URL shorteners will register our passing by as a "click" and update the stats for that particular shortened URL (if that service provides that service).Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-85153740590173495192010-12-17T09:00:00.001+00:002010-12-17T09:00:00.431+00:00Creating a Moodle course selector<a href="http://moodle.org/">Moodle</a> has a <a href="http://phpdocs.moodle.org/HEAD/user/user_selector_base.html">user selector base class</a> that is used in a few places to select users using a select box, for instance with two side-by-side user selectors to assign users to a role - one with users assigned the role, and one with users who are not assigned the role.<br /><br />For a project I'm working on I need a similar set up, but for courses, to use in a block. Initially I added the code for the course selector with my block, but have since moved it into a separate local plugin, so it should be easier to reuse.<br /><br />To start adapting the user selector I copied the /user/selector directory to /local/course_selector, and changed the relative paths inside the three files in that folder.<br /><br />Also added a version.php and lang/en/local_course_selector.php to make it a full fledged local plugin.<br /><br /><h4>Lots of simple changes</h4><br /><br /><ol><br /> <li><br /> First up in lib.php get rid of everything after line 646:<br /> <code>// User selectors for managing group members ==================================</code><br /> I don't need this for my course selector, and it just complicates the string replacements below.<br /> </li><br /><br /><li><br /> Global string replacements:<br /> <table><br /> <tr> <th scope="col"> from </th> <th scope="col"> to </th> <tr><br /> <tr> <td> "user selector" </td><td> "course selector" </td><br /> <tr> <td> "user_selector" </td><td> "course_selector" </td><br /> <tr> <td> "USER_SELECTOR" </td><td> "COURSE_SELECTOR" </td><br /> <tr> <td> "M.core_user" </td><td> "M.block_abc" </td><br /> <tr> <td> "userselector" </td><td> "courseselector" </td><br /> <tr> <td> "users" </td><td> "courses" </td><br /> </table><br /></li><br /><li><br /> change the two calls to moodle_exception to include the module name parameter<br /> so instead of <br /> <code>throw new moodle_exception('cannotcallusgetselecteduser');</code><br /> it becomes<br /> <code>throw new moodle_exception('cannotcallusgetselectedcourse', 'local_course_selector');</code><br /> so that the appropriate error message can be found in the language file for the block.<br /></li><br /><li><br /> Add these two lines to the language file local_course_selector.php:<br /> <code>$string['courseselectortoomany'] = 'course_selector got more than one selected course, even though multiselect is false.';<br /> $string['cannotcallusgetselectedcourse'] = 'You cannot call course_selector::get_selected_course if multi select is true.';</code><br /></li><br /><li><br /> All get_string calls need to get 'local_course_selector' as a second parameter as well (some have a blank one '', some have none, some have 'moodle', it's probably best to replace them all with 'local_course_selector').<br /></li><br /><li><br /><br />Then add these to the language file as well:<br /><code>$string['clear'] = 'Clear';<br />$string['searchoptions'] = 'Search options';<br />$string['courseselectorpreserveselected'] = 'Keep selected courses, even if they no longer match the search';<br />$string['courseselectorautoselectunique'] = 'If only one course matches the search, select it automatically';<br />$string['courseselectorsearchanywhere'] = 'Match the search text anywhere in the course's name';<br />$string['toomanycoursesmatchsearch'] = 'Too many courses ({$a->count}) match \'{$a->search}\'';<br />$string['pleasesearchmore'] = 'Please search some more';<br />$string['toomanycoursestoshow'] = 'Too many courses ({$a}) to show';<br />$string['pleaseusesearch'] = 'Please use the search';<br />$string['nomatchingcourses'] = 'No courses match \'{$a}\'';<br />$string['none'] = 'None';<br />$string['previouslyselectedcourses'] = 'Previously selected courses not matching \'{$a}\'';<br />$string['search'] = 'Search';</code><br /><br /></li><br /><li><br /> Next up I replaced all occurences of "user" with "course", unless it was $USER or had anything to do with user_preferences.<br /></li><br /><li><br />change output_course function (renamed from output_user in the near-global replace) to convert a course object to a string.<br /> so that instead of "fullname($user)" it now does "$course->fullname"<br /></li><br /></ol><br /><br /><h4>Slightly more complex changes</h4><br /><br />Then it would seem we are nearly there. We have a course selector.<br /><br />Except that it doesn't quite work, because the search_sql function creates SQL based on the user table, not the course table. This is mainly to make sure the references to firstname/lastname are replaced with fullname similar to how it was done for the output_course function above, and the $tests array contains the 'visible = 1' instead of the 'deleted = 0', etc.<br />'firstname', 'lastname' in the required_fields_sql function also need to be replaced with 'fullname'.<br /><br /><h5>module.js</h5><br />In module.js there are references to some strings as M.str.moodle.nomatchingusers and M.str.moodle.previouslyselectedusers. These are made available to JavaScript via hte $jsmodule definition in lib.php (approx. at line 67). <br /><br />Two lines to change there into:<br /><code><br /> array('previouslyselectedcourses', 'local_course_selector', '%%SEARCHTERM%%'),<br /> array('nomatchingcourses', 'local_course_selector', '%%SEARCHTERM%%'),<br /></code><br /><br />Now note that these will be available to the JavaScript code as M.str.local_course_selector.previouslyselectedcourses and M.str.local_course_selector.nomatchingcourses, so the references in module.js need to be updated accordingly.<br /><br />Now all that's left is to realize that the css class has been renamed from userselector to courseselector, so any css styling will need to be applied to that. I haven't done this yet, so I'll "leave that as an exercise for the reader."<br /><br /><h4>Conclusion</h4><br /><br />I think I've been lucky that the user selector wasn't more bound to the user object. It only keeps track of users using the ids, which made it very easy to do a global replace from user to course.<br /><br />It was a fairly easy adaptation.<br /><br />I only had a small issue with the Ajax version of the search only partially working, but once I'd figured out how the M.str.moodle strings turned up in the JavaScript and that I had to change the JavaScript reference to the scripts it actually seemed to work.<br /><br />If one of the requirements for this project wasn't to not change any core Moodle code, but only add using any of the plugins available, I would probably have changed the existing user_selector so that it and this course_selector could share a common ancestor object_selector, which would do the bulk of the work, while the user_selector and course_selector would only deal with their specific needs.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-16820909521011461272010-12-07T11:46:00.012+00:002010-12-15T18:47:57.032+00:00Developing on Windows, using Git, Dropbox and Ubuntu (and XAMPP)I generally do my development work on Windows, mainly because a lot of it is .NET based. Occasionally I do non-.NET work (ruby/php), but since my main development pc is a Windows pc, I still usually use Windows.<br /><br />Currently I have a client who uses Git for version control. Fair enough, I have TortoiseGit installed, so no problem, I thought. However we couldn't get the public/private key pair from my TortoiseGit/PuTTYgen to work with their Git server for authentication. I'm not sure why - something to do with the openssh keys being slightly different to the ones generated by PuTTYgen.<br /><br />Since the client knows it works fine on Linux, it seemed to make sense to just go with Linux. But I still like to use my main development pc, which is a Windows pc.<br /><br />Dropbox* to the rescue.<br /><br />I have cloned the git repository into my Dropbox folder on my Linux pc. Dropbox syncs the files between my Linux and my Windows pc.<br /><br />Now I can edit the files on my Windows pc and test them by running the Apache/MySQL/PHP based website on XAMPP. And while I'm doing the testing, Dropbox syncs my changes back to the cloned git repository on the Ubuntu pc.<br /><br />It took a very long time to sync after the initial clone of the remote repository, and again after switching to the development branch, but after that it seems to work well.<br /><br />TortoiseGit seems to be a bit confused with the synced git repository, so I'm not even going to try to actually use it for this project. Instead I'm using git on the command line on the Linux pc and that works fine.<br /><br />A couple of points:<br /><ul><br /><li><br /> Sometimes there is a couple of seconds delay between saving files on Windows pc and appearing on the Linux pc, due to having to go through Dropbox, so it seems to be wise to wait a bit with git commands or at least check that the files have finished syncing.<br /></li><br /><li><br /> Line endings. My editor saves with Windows style line endings by default, so I had to set it up to always save files with Unix style line endings (LF).<br /></li><br /><li><br /> I have created symbolic links on Windows to link the git repository folder in the Dropbox folder into the htdocs folder in XAMPP (using mklink).<br /> <code>mklink /D "moodle" "c:/users/me/my dropbox/git/moodle"</code><br /> The result is that I can now access the moodle site on http://localhost/moodle<br /></li><br /><li><br /> I'm for now only working in one branch, and hope to keep it that way, as switching branches would possibly trigger another long sync time as it did the first time.<br /></li><br /></ul><br /><br />* If you don't have a Dropbox account, feel free to use <a href="https://www.dropbox.com/referrals/NTExNjY3NjQzOQ?src=global0">this link to sign up and get a little bit of extra space</a>. It will give me a bit of extra space as well.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-87591717180973326762010-12-06T14:44:00.017+00:002010-12-07T14:41:13.360+00:00Motion Detecting Bird Feeder Cam<iframe src="http://player.vimeo.com/video/17522578?title=0&byline=0&portrait=0" width="400" height="320" frameborder="0"></iframe><br /><br />It has been snowing quite a bit recently so despite never having had much success with the birds, I decided to put our bird feeder out. It is hanging from a washing line, well away from any structures that could hide predators. Well, once the snow lady has melted it will be.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVT0cFnpHb4_qk1euvBvdu9Vma9JWG7GKFgTNevFuJL9uc09T5i10Ry_yv1phK4fesp4v0KP5UQHLdf8ckSe7M927nO1-AVhonhAZ5psLOvIjno762T0luRSCiwQIBI1feXNGDnbVBMiU/s1600/DSCF4698.JPG"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVT0cFnpHb4_qk1euvBvdu9Vma9JWG7GKFgTNevFuJL9uc09T5i10Ry_yv1phK4fesp4v0KP5UQHLdf8ckSe7M927nO1-AVhonhAZ5psLOvIjno762T0luRSCiwQIBI1feXNGDnbVBMiU/s320/DSCF4698.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5547585326925373202" /></a><br /><br />Reading and watching <a href="http://www.theapproachablegeek.co.uk/blog/reusing-old-hardware-to-get-a-webcam-online">Oli Wood's bird feeder webcam</a> inspired me to dig out our "old" digital video camera as well. Our camera is a Canon MVX350i, which has 20x optical zoom, just what's needed to be able to zoom in on the bird feeder at this distance.<br /><br />The camera is connected to the computer using a Firewire cable, and once I had figured out how to switch off the "auto power save" feature we were good to go.<br /><br />The camera is directed at the bird feeder using this expensive hand optimized stand:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDiT_nLG1HDJ_6ft2i8PwM16OM9Cu9LYhKqOcXXQUbfQwgvceqVvMHbZXwpAONJCG6TyBc2Y_JQTlBvJhFBpW9HP1v8t6f0FsfAvgVOL2lKOFJk_JaV9o1MH28zaiofAuYaBvNx6yF6kE/s1600/DSCF4697-cropped.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDiT_nLG1HDJ_6ft2i8PwM16OM9Cu9LYhKqOcXXQUbfQwgvceqVvMHbZXwpAONJCG6TyBc2Y_JQTlBvJhFBpW9HP1v8t6f0FsfAvgVOL2lKOFJk_JaV9o1MH28zaiofAuYaBvNx6yF6kE/s320/DSCF4697-cropped.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5547585313529325074" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIV65p_1Z4BWMyxKV_YhxyMXqtSR9YQyz5tPYj-2OTzoYUSQX78T_DpoI_FpNafGtXafMGzu05Conw7RZX19zedOKYFEbUsoy1d4IjGSlkKIMOH4k77RlDmDFBwdQ_6E4yGuBgq-ZW0g4/s1600/DSCF4696-cropped.jpg"><img style="cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIV65p_1Z4BWMyxKV_YhxyMXqtSR9YQyz5tPYj-2OTzoYUSQX78T_DpoI_FpNafGtXafMGzu05Conw7RZX19zedOKYFEbUsoy1d4IjGSlkKIMOH4k77RlDmDFBwdQ_6E4yGuBgq-ZW0g4/s320/DSCF4696-cropped.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5547585311310231362" /></a><br /><br />Because we always only get very few birds on our feeder, I wanted to use motion detection webcam software to take pictures of any birds coming to the feeder. I vaguely remembered a friend using software that took pictures when it detected motion and uploaded them to an ftp server. I don't remember what it was called and hence had no luck finding it.<br /><br />I did however find open source surveillance software <a href="http://ispy.developerinabox.com/">iSpy</a> that appears to do the trick.<br />Whenever it detects motion it records a bit of video up to a certain length. It has a few settings to change the motion detection and its sensitivity.<br /><br />The first day I had it running it took a nice bit of video of what I believe is a robin, but completely missed the pair of tits that appeared on the feeder a few minutes later.<br /><br />Increasing the sensitivity - I think I was increasing it: the slider doesn't mention which we is up or down, so I presume left is down, right is up - only seemed to get me lots of video of the wind blowing the feeder about, so in the end I stuck to the default sensitivity.<br /><br />It would probably be better to make sure the bird feeder is rigid by sticking a pole in the ground and up its bottom, and increase the sensitivity. The pole should stop the wind blowing the feeder about, while the increase in sensitivity should pick up even the most delecate of birds.<br /><br />One nice touch is that iSpy buffers the frames, so that when it detects motion it can use a bit of buffered video so you get all of the action, and not just the bird disappearing. It would otherwise possibly have missed this coal tit flying in:<br /><br /><iframe src="http://player.vimeo.com/video/17558846?title=0&byline=0&portrait=0" width="400" height="295" frameborder="0"></iframe><br /><br />The video of the robin is unedited. I trimmed about a minute of feeder waving about off the end of the coal tit one.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-14097935947084137752009-05-11T11:00:00.005+01:002010-12-06T15:49:46.902+00:00The Big Agile Practices SurveyLast week <a href="http://twitter.com/jurgenappelo/status/1704903804">Jurgen Appelo asked</a> if anyone could help him create an online interactive table for the results from his Big Agile Practices Survey. Having just gone freelance I figured I could use the publicity and since I had a bit of time to spare, I volunteered.<br /><br />The result: <a href="http://www.infomixer.com/big-agile-practices-survey">my sortable color coded table</a> is on a separate page since it's a bit large and wouldn't work well on this blog.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.infomixer.com/big-agile-practices-survey"><img style="cursor:pointer; cursor:hand;width: 400px; height: 186px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge4347keKN7w8Nu5ZMQavVOp8gfaOQnBoP2usZv4Fz53AuWYgAIn7QEPBQADnKPMgh3tC7mS0Zs7dVxM1sn2BvQDU5DoNpL58uAytL9WRboVWF1pSF3Kx6DlPDFIFMXaIpZabY4PId36w/s400/preview.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5334537554193474850" /></a><br /><br />Note the "ad" at the top, that's me available for some freelance work.<br /><br />The table is an ordinary HTML table, manipulated using <a href="http://www.jquery.com/">jQuery</a>, the jQuery plugin <a href="http://tablesorter.com/docs/">tablesorter</a>, and some JavaScript and CSS.<br /><br />The page has been tested in IE7, Firefox 3, Google Chrome, Safari 4 beta for Windows, but if you find anything doesn't work, let me know, and I might fix it.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-68288251924180371502008-11-06T22:08:00.004+00:002008-11-06T22:14:07.707+00:00Is disabled disabled?In HTML boolean attributes can be set on elements without a value. For instance, an option of a select could be selected using <option value='1' selected>, a checkbox could be checked using <input type='checkbox' checked>.<br /><br />In XHTML attributes are not allowed without a value, as that is not valid XML. <a href="http://www.w3.org/TR/xhtml1/#h-4.5">Attributes are required to be 'unminimized.'</a> E.g. selected becomes selected="selected", checked becomes checked="checked" and disabled becomes disabled="disabled".<br /><br />Ah. Disabled is disabled? So surely that means the element is enabled? I know it makes perfect sense to keep the standard standard, but surely if you come to XHTML without the historical information and find out that disabled="disabled" means that the element is actually disabled, this just looks plain odd, weird and wrong?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-78478488313955444402008-10-28T17:18:00.010+00:002008-11-06T22:17:24.273+00:00Stupid design<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" title="Very grainy photo taken with mobile phone in near dark" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4rlTzJ6EmB0yKbSanXhlEkivvlj7ejDUVFQB-IjI_G3qj_zSmR9_uEjPv_NcwqtBSrLrtKvc3QFret1942NdNKrEb06P5ULNeJRb7bD2bRPS0dsgLZV1Azrve2AqJ7AnaTbrkmy3pqVY/s1600-h/DSC01795.JPG"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4rlTzJ6EmB0yKbSanXhlEkivvlj7ejDUVFQB-IjI_G3qj_zSmR9_uEjPv_NcwqtBSrLrtKvc3QFret1942NdNKrEb06P5ULNeJRb7bD2bRPS0dsgLZV1Azrve2AqJ7AnaTbrkmy3pqVY/s400/DSC01795.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5262302961723063410" /></a><br /><br />Recently at my workplace the water coolers and the water boilers have been replaced by a machine which does both. It's very simple. It has a green light to indicate it is on. If you press the big button you'll get icy cold water. And if you press the small button on the left, the green light turns red to indicate there is enough hot water and that by (quickly!) pressing the big button before the light turns back to green you'll get hot water.<br /><br />Great. Apart from the short time you're given to acquire the hot water when it is available, can you see something else that is flawed in this design?<br /><br />A light that changes between red and green. Most colour blind people can't distinguish between the two. Great. Now how do they know whether there is hot water, other than by sticking their finger in the either freezing cold or scolding hot stream of water?<br /><br />But it is even worse!<br /><br />Because there are not two colours! There are three! Apparently the light turns yellow as well. I'm colour blind, but have no problem with red and green. Green and yellow on the other hand...<br /><br />The above is how I thought the machine worked, but for people without my kind of colour blindness, it apparently works like this:<br /><br />The light is yellow to say "there is no hot water", green to say "there is hot water" (or was that the other way around? I can't remember, and I can't check, because I can't tell the two apart!) and red to say "thanks for pressing the small button on the left and as a thank you I might just give you hot water if you press the big button. But only if you're quick enough."<br /><br />Stupid design.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-48046552772749530582008-06-23T12:52:00.005+01:002008-06-23T13:16:50.669+01:00Star struckJohn <a href="http://ateabutnoe.wordpress.com/2008/06/21/old-growth/">reminded me</a> just now about the first time I saw a <a href="http://en.wikipedia.org/wiki/Hummingbird">hummingbird</a> in real life. Where I come from you only get them in nature programmes on the telly, not outside hovering near flowers. I don't think I ever realized where they do appear in the outside world, so when I saw one I was absolutely star struck: "Look, it's a hummingbird, off the telly!". I was in a suburb of Goleta trying to find the local supermarket on my first day there, and noticed a couple of really really big "bees" hovering above a tree, about three meters above the ground. Imagine my joy when I realized I was going to see them most mornings having their breakfast outside my kitchen window.<br /><br />I had a similar experience years later (a couple of years ago now, blimey, I'm not getting any younger) when I visited the Grand Canyon and noticed a big vulture sitting below us. Someone uttering "condor" made me forget about the Grand Canyon ("just a big hole in the ground after all") and stare star struck at the condor. "Look, it's a condor, off the telly!". Apparently some <a href="http://en.wikipedia.org/wiki/California_Condor">California Condors</a> I had seen going nearly extinct on the telly had been moved to the Grand Canyon to thrive.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-45900674701730892692008-04-30T12:53:00.005+01:002008-04-30T13:11:10.191+01:00Een fijne dag zonder nederlandse collega's!Een van de vreemde ervaringen van het wonen in het buitenland is dat de dagen die je in je oude land als nationale feestdagen had in je nieuwe land niet altijd feestdagen zijn.<br /><br />Kerst en nieuwjaar is vrij universeel in het westen - al is tweede kerstdag bijvoorbeeld een werkdag in de VS - maar hier in Engeland is tweede pinksterdag bijvoorbeeld geen vrije dag.<br /><br />Mijn "probleemdag" is voornamelijk koninginnedag. Hemelsvaartsdag en tweede pinksterdag zijn ook geen vrije dagen, maar die vallen nog wel eens in de buurt van de twee vrije dagen die ze hier in mei hebben en omdat ze ieder jaar op een andere datum vallen weet ik nooit wanneer ze werkelijk zijn, dus merk ik ze niet echt meer op. De twee bank holidays in mei vervangen deze twee dagen met veel plezier.<br /><br />Koninginnedag daarentegen valt altijd op 30 april en dat zie ik dan ook de hele maand april al aankomen. In Nederland vierde ik koninginnedag meestal niet meer dan "hoera vrije dag" dus nu ik hier in Engeland zit voel ik dan ook niet echt dat ik de festiviteiten mis, maar die vrije dag was best leuk geweest.<br /><br />Ik mis koninginnedag duidelijk genoeg om er een blogpost over te schrijven, maar na een paar jaar is de pijn toch wel een stuk minder. Wellicht helpt het dat ik geen nederlandse collega's meer heb, die me aan hun vrije dagen helpen herinneren!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-8753623549184474382008-01-28T13:28:00.000+00:002008-01-28T13:38:38.066+00:00Fokke en Sukke filteren het nieuwsMijn kijk op Nederlands nieuws is, sinds ik in Engeland woon, voornamelijk beperkt tot de cartoons van <a href="http://www.foksuk.nl/">Fokke en Sukke</a>. Er zijn genoeg andere sites via welke ik ook nieuws ontvang en ik zou makkelijk verder onderzoek kunnen doen, maar de cartoons fungeren als een prettig filter.<br /><br />Soms heb ik geen enkel idee waar het over gaat, zoals in <a href="http://www.foksuk.nl/nl?cm=79&ctime=1199314800">"Fokke en Sukke hebben niet ondertekend"</a> en <a href="http://www.foksuk.nl/nl?cm=79&ctime=1200006000&cid=4051">"Fokke en Sukke rehabiliteren Marinus van der Lubbe."</a><br /><br />En soms herken ik dan wel de namen van de gedupeerden, zoals in <a href="http://www.foksuk.nl/nl?cm=79&ctime=1200524400">"Fokke en Sukke zijn nog niet gevraagd,"</a> maar dan heb ik nog steeds geen idee waar het over gaat.<br /><br />En wat belangrijker voor me is: ik heb ook niet altijd de behoefte om te weten welk nieuws er achter de cartoon schuil gaat. Ik vraag me af of Fokke en Sukke geschreven wordt in de hoop dat de grappen ook buiten de context werken. Het zou de verkoop van hun jaaroverzichten waarschijnlijk ten goede komen.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-83002560951748041612007-12-05T13:07:00.000+00:002007-12-05T13:13:50.398+00:00TellyYesterday, our daughter wanted to watch a bit of telly, or "teddy" as she calls it, and more particularly she wanted to watch Nijntje (Miffy). We thought we'd let her and popped in the DVD.<br /><br />Somehow this made me think that when I was a kid my mum would probably have responded with "but it is not Wednesday afternoon, there is nothing on!"<br /><br />I remember the <a href="http://www.flickr.com/photos/gywst/1426287043/">tv test screen</a>.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-1391998203757298492007-09-19T13:44:00.000+01:002007-09-22T14:33:19.981+01:00How to move your email to GMail using free toolsI've been using GMail for quite some time now, and have recently decided to import a lot of archived mail from my old mail accounts. Currently I have this mail stored in various formats, most notable Outlook PST-files. PST files are notorious for not being able to be read by anything but Outlook. Worse yet, I have an archive in Outlook 2003 format, which can't be read by the only (old) Outlook version that I have access too. I'll solve this situation one way or another, but that's not what this post is about.<br /><br />I'm trying to find a good way to import my archiving email, using free tools. My first attempt some time ago, involved importing e-mail from an imminently closing POP account into Thunderbird and then redirecting/bouncing the e-mails using the <a href="http://mailredirect.mozdev.org/installation.html" id="xoi4" title="MailRedirect plugin">MailRedirect plugin</a>. [1] This worked fine, except that all mails showed up in my GMail inbox with the date of when I redirected them (<a href="http://www.zoliblog.com/2007/03/28/how-to-import-all-your-archive-email-into-gmail/" id="fy7m" title="apparently this can be fixed">apparently this can be fixed</a> by importing them into a temporary GMail account, and then letting MailFetcher retrieve them all via POP, which fixes the date issue).<br /><br />Using the Thunderbird MailRedirect plugin is not very user friendly when you have lots of emails to transfer: some will fail and it is a lot of work to pick out the ones that have failed and re-redirect them. Also, one reason why they might fail is that the smtp server you are using for the redirecting is refusing connections because you are sending too many e-mails in too short a time interval.<br /><br />The best solution would be for all your archived mail to exist in a POP-accessible account and have GMail retrieve them. GMail will keep trying until it is done, which means that if it fails for some reason, it will just try again in an hour. If you have your e-mails in local files this doesn't work, unless you could somehow get your e-mails back into the mail server. Using IMAP you can. If you have an IMAP account available, then great. If not, you can still do it for free in a few steps, as long as your e-mail client understands IMAP and you have some time.<br /><br />Firstly you need to install a free smtp server that supports both IMAP and POP. I used <a href="http://www.mailenable.com/pro_edition.asp" id="r4ra" title="MailEnable Professional Evaluation Edition">MailEnable Professional Evaluation Edition</a>, which is fully usable for three months, for evaluation purposes. I set the mail server up inside a virtual machine (running an evaluation version of Windows) using the free <a href="http://www.vmware.com/products/server/" id="h0ow" title="VMWare Server">VMWare Server</a>. Using a virtual machine is good for security as it allows you to open a port on your firewall and forward it to just the virtual machine, which should leave your main machine protected. [2]<br /><br />In MailEnable create a post office and add user accounts for each GMail label that you want to import mail to. If you have a lot of e-mail to import, this will make things easier to sort when it finally arrives in GMail, as the MailFetcher allows you to automatically assign a label to the imported mail. Using separate POP accounts means you can set the labels when they come in, rather then sorting through your mail manually after everything has been imported. For instance, if you want to add some mail to a label called Friends and some to a label called Family, add two accounts: "friends" and "family".<br /><br />Open your e-mail client and connect to the accounts you have just created in MailEnable. You need to know the IP-address of your virtual machine. If you have called your post-office "mailenable" then the above accounts would have a login name of "friends@mailenable" and "family@mailenable" respectively. Now you're ready to start copying e-mails from your mailbox to your new IMAP accounts. Just drag them into the correct IMAP account's Inbox and they will be uploaded to the server.<br /><br />Once you've got your e-mail in your IMAP server, it is time to open a port on your firewall and forward it to the IMAP server virtual machine. The default POP port is 110.<br /><br />Add your accounts to the GMail MailFetcher (GMail settings / Accounts). You need to give them a real e-mail address, but that won't actually be used. Make sure the login name is the same as you have set up in your mail server (so friends@mailenable or family@mailenable in the above example). Set the mail/pop server address to your external IP address. Select the label you want GMail to use for the e-mails in this account (it will provide a reasonable default). Also select it to archive all the e-mails, so they don't clutter up your inbox. Don't select "leave a copy on the server", so you can easily tell when it is done by looking at the mail server. When you click "Add Account", GMail will start retrieving your e-mails!<br /><br />GMail appears to retrieve e-mail from your pop3 account about once per hour, taking 200 e-mails at a time, so if you have more than 200 e-mails, you'll have to wait a while before all of them have been retrieved. 200 e-mails per hour = 4800 per day. If you have a lot of email, it can easily take a couple of days. Because you didn't select "leave a copy on the server", the e-mails will be deleted from the mail server when GMail retrieves them. This means that you can easily tell when it is done retrieving by looking at the user account list in the mail server (well, it was easy in MailEnable): It's done when the number of messages in the mailbox is 0.<br /><br />When it is done retrieving all e-mails from all accounts you should close the port on your firewall. You can now stop your virtual machine and get rid of it if you want.<br /><br />Don't remove the pop accounts yet from the GMail accounts settings, as GMail hasn't processed all the e-mails yet, and won't label/archive them if you remove the accounts, but dump them in your inbox instead. Leave it a while (I have no idea how long, one hour? two?), and the labelling should go on.<br /><br />[1] I now wonder why I didn't just use GMail's MailFetcher for this particular case, but don't remember why. Perhaps MailFetcher wasn't available yet? Perhaps I wanted a local copy in Thunderbird? Perhaps I had other reasons? Or perhaps I <a href="http://www.codinghorror.com/blog/archives/000953.html" id="p_2k" title="just wasn't happy with handing my password for one service to another service">just wasn't happy with handing my password for one service to another service</a>.<br /><br />[2] This of course assumes you're using a firewall (or router with built-in firewall) that supports port-forwarding. Note that I'm not a security expert. Don't forget to close the port when you're done.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-48205203029343769022007-08-15T22:25:00.000+01:002007-08-15T22:30:43.637+01:00Puter!My wife and daughter are currently visiting Granny and Grandad. Apparently when asked where Grandad was, our 19-month old said "puter"...<br /><br />I'm so proud! My little girl knows about computers! I think I'm more proud of this than of her saying "papa".<br /><br />Another new word today is "key"... I wonder if she's considering a career in cryptography?Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-15994997017960023672007-06-14T12:35:00.000+01:002007-08-15T22:31:16.422+01:00Useless Ruby StringBuilderA little while ago, I wrote a StringBuilder class in Ruby in my lunch break, roughly based on the one in the .NET Framework, but simpler. I have known for a while that using StringBuilder is a much quicker way of concatening strings than just using +. I'm talking about C# indeed, and expect VB.Net to need the same.<br /><br />I'm still fairly new to Ruby, so I thought I would give it a go there. I didn't find a StringBuilder class available, so I wrote a simple one. I looked a bit further and found there are two ways to concatenate strings in Ruby, using + and <<.<br /><br />I added a bit of benchmarking code, and lo and behold, my StringBuilder class is lightning fast compared to the + method....<br /><pre>[with 100,000 iterations]<br /> user system total real<br />stringbuilder: 0.172000 0.000000 0.172000 ( 0.172000)<br />string<<: 0.094000 0.000000 0.094000 ( 0.094000)<br />string+=: 14.703000 3.860000 18.563000 ( 18.734000)</pre>But it is obvious << is a much better choice. Blimey, look at that. That's about 200 times faster than += ! No wonder there is no StringBuilder class provided with the Ruby core.<br /><pre>[with 1,000,000 iterations]<br /> user system total real<br />stringbuilder: 1.610000 0.031000 1.641000 ( 1.656000)<br />string<<: 1.156000 0.000000 1.156000 ( 1.156000)<br /><br />[with 10,000,000 iterations]<br /> user system total real<br />stringbuilder: 17.672000 0.140000 17.812000 ( 17.953000)<br />string<<: 10.047000 0.047000 10.094000 ( 10.343000)</pre>I had to remove the += case in these last two reports as my script wouldn't have returned before my lunch break was over!<br /><pre>require "benchmark"<br />include Benchmark<br /><br />class Stringbuilder<br /> def initialize(s)<br /> @s=[s]<br /> end<br /> <br /> def <<(s)<br /> @s << s<br /> end<br /> <br /> def to_s<br /> @s.join("")<br /> end<br />end<br /><br />TESTS=100000<br /><br />bm(14) do |test|<br /> test.report("stringbuilder:") do<br /> x=Stringbuilder.new("bla")<br /> TESTS.times { |i|<br /> x << "x"<br /> }<br /> z = x.to_s<br /> end<br /> test.report("string<<:") do<br /> y="bla"<br /> TESTS.times { |i|<br /> y << "x"<br /> }<br /> z = y.to_s<br /> end<br /> test.report("string+=:") do<br /> y="bla"<br /> TESTS.times { |i|<br /> y += "x"<br /> }<br /> z = y.to_s<br /> end<br />end</pre>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-1629046509354029784.post-35528441454014450672005-10-28T11:57:00.000+01:002007-08-15T22:31:51.807+01:00Denktaal<P>Sinds een jaar of zes werk ik nu met Engelsen. Vanaf het moment dat de werkrelatie persoonlijk genoeg werd om dit soort dingen te vragen, vroegen ze mij in welke taal ik dacht. Uiteraard was dit altijd Nederlands, maar recentelijk zijn er dingen waardoor ik merk dat dit na twee jaar in Engeland zijn veranderd is in Engels.</P> <P>Het eerste besef kwam toen een Amerikaanse vriendin aan een Duitse vriendin vroeg in welke taal zij haar dagboek bij hield. Op dat moment realizeerde ik mij dat ik al sinds een tijdje berichten en notities voor mijzelf in het Engels schrijf (herinneringen om iets te doen, boodschappenlijstjes, dat soort dingen).</P> <P>Toen ik vandaag bij de kapper in de stoel zat, en ik me een gesprek herinnerde dat ik destijds met mijn Nederlandse kapper had, merkte ik dat het gesprek zich in mijn hoofd zich in het Engels afspeelde. Een gesprek dat ik destijds in het Nederlands voerde, draaide zich in mijn hoofd af in het Engels. Een automatische vertaling waar ik me pas tegen het eind van het gesprek bewust van werd.</P> <P>Ik denk niet altijd in het Engels. Nu ik dit in het Nederlands typ denk ik op eens weer in het Nederlands, maar enkele zinnen kwamen er toch met een verengelste grammatica uit.</P>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-87482520238889259462005-08-21T21:58:00.000+01:002007-08-15T22:31:16.422+01:00Witte Rijst met KrentenThis recipe may well make you believe that Dutch cuisine deserves the reputation that British cuisine has, but if you, like me, love rice and, like me, love currants, and, like me, have a sweet tooth, you might think this is the best dish in the world.<br /><br />The other day I had eaten a big bowl of soup earlier on and neither fancied eating a complete meal, nor going out to the shops to buy a snack. Looking in our cupboards, I noticed all the ready-made snacks had already disappeared in our stomachs. My wife, who as always shared my predicament, decided to just boil some rice and snack on that. I would have gone along with that, had it not reminded me of one of the greatest dishes I had as a child.<br /><br />Using half of the rice she boiled I created a quick version of this "white rice with currants", and it was just as delicious as back when I could hardly reach the top of the dinner table. I have never heard of anyone else eating or even knowing of this dish, so I thought a blog entry might be in order.<br /><br />To be sure I was making enough of a fool of myself I searched for some other online recipes. Apparently, witte rijst met krenten is a speciality from a region on the other side of the Netherlands from where I grew up and the few recipes for it that are available online make something not quite the same, so I like to imagine my mom created this dish based on what it was called.<br /><br />Our family version is a simple dish, that we used to eat whenever we had fried fish.. Yes, not everybody has chips and vinegar with fish! Often on a Wednesday, when the mobile fish monger would be in town, my dad would go out on his bicycle and buy some fried fish, and while he was out, my mom would prepare this dish. As soon as my dad returned dinner would be served: White rice with currants and fried fish.<br /><br />The basic premise of mom's version of this dish is: boil long grain white rice and currants in semi-skimmed milk until the rice is cooked and serve. Not the most nutritiously balanced meal in the world, but there you go... Use as much rice as you would like to eat, and stir in as many currants to make it visually similar to a Dalmatian - the dogs are sometimes called 'rijst met krenten' dogs in Dutch. If the result looks like 'rice, currant and milk soup with not enough liquid' then congratulations! That's what we were aiming for, so don't drain the milk. Eat with a spoon.<br /><br />My quick version mentioned above consisted of me putting the already boiled rice back in the pan, adding currants and milk and bringing it to a boil, but this can only be considered quick because my wife had already boiled the rice.<br /><br />When I told my wife my plans with the rice she put on her disgusted face and said: "So you're going to have it as pudding?" I suppose she was right, it could be called a delayed pudding after the bowl of soup I had earlier on, but considering I have always eaten it as a main course, I saw it as a snack this time.<br /><br /><i>Originally posted at <a href="http://www.foodster.net/2006/01/witte_rijst_met.html">foodster.net</a></i>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-25965573074522847602004-12-19T21:55:00.000+00:002012-01-05T20:03:27.397+00:00Untraditional HutspotThis dish has a history that goes back to 1574 when the Spanish left an old version of it behind when they gave up besieging the city of Leiden. Potatoes and possibly carrots weren't known in Europe as edible at the time and were added to the recipe later.<br />
The way most Dutch people now eat it is as a mash of potatoes, carrots, onions and rib of beef. Personally I don't like the rib of beef and have made this dish for years without it. Last week I experimented a bit more with it and came up with a version that is even tastier.<br />
<br />
It's perfect winter comfort food, although I eat it all year round. It would be easy to make a vegetarian version of this by removing the sausage and using vegetable stock.<br />
<br />
<b>2 to 3 litres chicken stock *</b> (because of availability I used a mixture of about 20% vegetable stock and 80% chicken stock)<br />
<b>1 kg carrots</b> (the big chunky ones you get in winter would be best)<br />
<b>600 g potato</b> (one big baking potato)<br />
<b>500 g red sweet potato</b> *<br />
<b>300 g can of borlotti beans</b> (or brown beans if you can get them)<br />
<b>400 g of onions and/or shallots</b><br />
<b>2 leeks</b><br />
<b>2 garlic cloves</b><br />
<b>teaspoon of dried chopped dill *</b><br />
<b>half teaspoon of 'Provencal herbs' *</b><br />
<b>salt</b><br />
<b>low fat smoked sausage</b> (optional. I think low fat smoked sausage tastes better than the full fat kind)<br />
<b>freshly ground pepper</b><br />
<br />
<b>*</b> I didn't actually measure these ingredients, this is just a guess<br />
<br />
Serves four, apart from the sausage which only serves two. If you are making it for two, make it for four, it's perfect for reheating.<br />
<br />
Bring the stock to a boil in a large pan and add the not too finely chopped onions, shallots, garlic, leeks and the dill, Provencal herbs and some salt to a large pan.<br />
Chop the potato, sweet potato and carrots into equal pieces (carrots a bit smaller than the potatoes) and add them to pan,<br />
Bring back to boil.<br />
If adding the smoked sausage, remove it from all packaging and lay it on top of the vegetables in the pan (on the package it will probably say something like 'boil for 15 minutes in packaging', just ignore that).<br />
Simmer for about 20 to 25 minutes, until the potatoes and the carrots are cooked.<br />
Add the beans (drained) and keep it going for a bit longer to heat the beans.<br />
<br />
Remove the sausage.<br />
Drain (catching the liquid).<br />
Mash (add a slight amount of the liquid or milk to make a fairly smooth mash).<br />
Season with the pepper and possibly some salt.<br />
<br />
Serve with the sausage.<br />
<br />
<i>Originally posted at <a href="http://www.foodster.net/2004/12/untraditional_h.html">foodster.net</a></i>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-21131875279762863972004-04-26T10:58:00.000+01:002007-08-15T22:31:51.807+01:00Wat gebeurt ons nou?<P>Lange dag... Zaterdag was een lange dag...</P> <P>We stonden naast het bed om 4:20 in de ochtend..<BR>Na een uur lange vlucht (en alle bijkomstigheden) waren we om een uur of 9 in London om ons in te checken voor onze trip naar Salt Lake City. En daar begint het verhaal, met de security mensen die wat vreemd opkeken van mijn Nederlands paspoort. Op zich viel het mee, al vroegen ze mij meer vragen dan de gemiddelde engelsman in de rij..</P> <P>Goed, allemaal niets aan de hand, en na niet eens zo heel erg lang vertrokken we dan... 10 uur voor we in Houston zouden aankomen... Twee films, twee afleveringen van comedyseries, drie computerspelletjes, een potje scrabble en 16 pagina's uit mijn boek verder landden we.</P> <P>Er werd ons verteld dat er direct buiten het vliegtuig paspoorten gecontroleerd zouden worden (wat klaarblijkelijk niet geheel ongebruikelijk, maar ook niet helemaal normaal was)... En wat blijkt: ze hielden op met paspoorten controleren toen ze mij gevonden hadden! Ze waren op zoek naar mij! De twee douanebeambten vroegen me met ze mee te gaan. Fiona vroeg "Mag ik ook mee, hij hoort bij mij?" Een resoluut "Nee" was het antwoord.</P> <P>En weg waren ze, met mij...</P><br /><br /><h4>Haar kant van het verhaal</h4><br /><br /> <P>Fiona zag mij langs de lange rij voor de douane gemarcheerd worden, en door een deur worden geleid, waar verder alleen maar douanebeambten door gingen. Daarna niets. Niemand vertelde haar iets. Zelf sloot ze achter de lange rij aan.</P> <P>Naast de rij stond een man wiens beroep het was om vragen van twijfelachtige touristen te beantwoorden. Hij vertelde Fiona dat hij niet wist wat er met mij ging gebeuren, en dat zij in ieder geval de aansluitende vlucht niet zou missen. Maar over mij kon hij niets zeggen, het kon 5 minuten duren, en het kon uren duren...</P> <br /><br /><h4>Eminem?</h4><br /><br /><P>Terwijl de douanebeambten me langs de rij wachtenden leidden, keek een van de twee eens goed naar mijn paspoort en vroeg me verbaasd waar ik geboren was.. Nederland leek niet het antwoord te zijn dat hij verwachtte, al kwam het wel overeen met mijn paspoort. Dit maakte me duidelijk dat ze waarschijnlijk iemand anders zochten, maar toch gingen er allerlei gedachten door mijn hoofd... "Hebben ze drugs gevonden in onze koffers?", "Heb ik 10 jaar geleden bij het verlaten van de VS iets vergeten?", "Had ik mijn social security kaart toen in moeten leveren?", "Openstaande boetes waar ik niets van weet?"..</P> <P>Mijn paspoort werd gecontroleerd, en enkele douanebeambten bespraken mij, waar ik bij stond, en waren enigszins verbaasd.. "Hij stond aangemerkt als een m en m," (m en m? eminem? geen idee, wat dat betekent, maar dat het niet iets goeds is was me duidelijk) "hij lijkt niet op een m en m."</P> <P>Ze plaatsten me op een stoel in een wachtruimte waar meer mensen zaten te wachten en zeiden dat ze zouden proberen me daar zo snel mogelijk weg te krijgen. En jawel, nog geen twee minuten later plaatsten ze me in een kleinere ruimte, waar niet veel meer dan een stoel en een computer in stonden... De ruimte had ongeveer het formaat van mijn eigen kantoor, dus ik voelde me bijna thuis. Als het ware.</P> <P>Een van de beambten ging achter de pc zitten en stelde me enkele vragen als "waar ga je heen?", "wat ga je daar doen?", "wie ga je bezoeken?".. en vertrok daarna met mijn paspoort en een aantal formulieren die ik in het vliegtuig had ingevuld.. Na een minuut of 10 kwam hij weer terug en zei "het is niets dat je gedaan hebt, er is een fout gemaakt." Hij verontschuldige zich en bedankte mij voor mijn geduld.</P> <P>En ja, dat is een beetje een anti-climax aan dit verhaal.. De andere douanebeambte ging daarna met me mee om te zorgen dat ik Fiona weer vond en legde haar uit dat alles in orde was..</P> <P>Mij vertelde hij dat ik in ieder geval de lange rij voor de douane had overgeslagen..<BR></P>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1629046509354029784.post-64506977868806753302004-04-05T09:17:00.000+01:002007-08-15T22:31:51.807+01:00Junk<P>Zeven maanden.. Ruim zeven maanden woon ik nu in Newcastle. En vandaag viel het eerste aan mij geadresseerde stuk junkmail door de brievenbus... Hoera......</P>Unknownnoreply@blogger.com0