After a short walk back into town, we found it and indeed, it was an experience for us we'll never forget. The great thing also was that they have their own market stall outside of the restaurant!
Monday, 30 December 2013
Toinou - Les fruits de mer!
When we visited Marseille last november, we passed a few people selling their fish while we walked along the harbor side. Of course the talk went to about eating fish and then a few people there pointed us to 'the best fish restaurant in town': Toinou - Les fruits de mer!
After a short walk back into town, we found it and indeed, it was an experience for us we'll never forget. The great thing also was that they have their own market stall outside of the restaurant!

After a short walk back into town, we found it and indeed, it was an experience for us we'll never forget. The great thing also was that they have their own market stall outside of the restaurant!
Wednesday, 4 December 2013
Your bike as camera support with Joby Gorillapod
Always take a Joby Gorillapod with you. If you forget your big tripod, you can always use your bike for support!

Saturday, 30 November 2013
Foto: Marseille en een stukje Provence

Panorama Marseille Port, France

Panorama Marseille Centre, France

Panorama Provence, France
Friday, 29 November 2013
De Saint 0744 - Saint Magazine 12
Een weer een Saint gedigitaliseerd. Geen OCR, dus gewoon met Calibre of een Comicbook reader lezen. Klik hier...

Thursday, 7 November 2013
Store/Show BLOB images with PHP and Lasso 9
I have added a new page to the 'How To'-list where you can find information about how to read an image from disk, store it into a MySQL blob-field and display that image on a web page. Reading and storing is done with PHP, displaying with Lasso 9. [Read more...]
Sunday, 20 October 2013
Riesling Machtum Onkaf - Grand Premier Cru 2011 - Luxembourg
We had this wine during dinner in hotel-restaurant Koener, Clervaux. We were surprised that Luxembourg had such good wines.


Saturday, 5 October 2013
Periquita 2009 - Península de Setúbal, Portugal
Een echt heerlijke wijn uit Portugal.


Te koop bij de Jumbo en sommige Albert Heijn supermarkten.
Te koop bij de Jumbo en sommige Albert Heijn supermarkten.
Tuesday, 1 October 2013
Grand Rolland - Grande Cuvée 2011 - Bordeaux, France
Een hele lekkere, zeer aan te bevelen wijn.

Te koop bij Jumbo supermarkten voor een mooie prijs.
Te koop bij Jumbo supermarkten voor een mooie prijs.
Wednesday, 25 September 2013
Friday, 20 September 2013
Even pauze bij Brasserie Lettink
Op een wandeling van Warnsveld naar Vorden stuitte ik bij Vorden op een leuke plek om te pauzeren: Brasserie Lettink. Even tijd voor een Latte Macchiato en een vegetarische broccoli-soep, geserveerd in een alleraardigst pannetje!



Thursday, 15 August 2013
De Saint 0686 - Saint Magazine 11
Een weer een Saint gedigitaliseerd. Geen OCR, dus gewoon met Calibre of een Comicbook reader lezen. Klik hier...

Saturday, 20 July 2013
Foto: Kasteel Hernen
Sunday, 14 July 2013
De Saint 0632 - Saint Magazine 10
Een weer een Saint gedigitaliseerd. Geen OCR, dus gewoon met Calibre of een Comicbook reader lezen. Klik hier...

Thursday, 4 July 2013
Friday, 7 June 2013
De Saint 0631 - Saint Magazine 9
Een volgende Saint gedigitaliseerd. Geen OCR, dus gewoon met Calibre of een Comicbook reader lezen.


De hele collectie kan je hier downloaden.
De hele collectie kan je hier downloaden.
Thursday, 30 May 2013
Hex2Str and Str2Hex Javascript Functions
Today I needed some Javascript to convert a HEX-encoded string to an ASCII-encoded string. The reason is that to be able to send all possible strings via AJAX-calls back to the client, without problems with quotes, apostrophes and other non-ASCII7 characters, I decided to encode the AJAX-data to hex, which is a nice and simple ASCII7 string of only the characters 0 through 9 and A through F.
After Googling a bit I found an example on webdeveloper.com and some tips on stackoverflow.com, and both combined with some of my own JS-knowledge, I came up with the following small and handy functions:
For example, after a user made a selection from the autocomplete menu and you return a HEX-encoded string containing multiple values, separated by "+++", to fill other form-fields too:
Or when you return multiple values as a HEX-encoded JSON array:
Happy coding!
After Googling a bit I found an example on webdeveloper.com and some tips on stackoverflow.com, and both combined with some of my own JS-knowledge, I came up with the following small and handy functions:
function Str2Hex(tmp) {
var str = "";
for (var i=0; i<tmp.length; i++)
str += ("00" + (tmp.charCodeAt(i)).toString(16)).substr(-2);
return(str);
}
function Hex2Str(tmp) {
var str = "";
for (var i=0; i<tmp.length; i+=2)
str += String.fromCharCode(parseInt(tmp.substr(i,2),16));
return(str);
}
For example, after a user made a selection from the autocomplete menu and you return a HEX-encoded string containing multiple values, separated by "+++", to fill other form-fields too:
..., select: function(e,u) {
var x = Hex2Str(u.item.value).split("+++");
$("#field1").val(x[0]).change();
$("#field2").val(x[1]).change();
... etc.
return false; } ....
Or when you return multiple values as a HEX-encoded JSON array:
..., select: function(e,u) {
var x = u.item.value;
$("#field1").val(Hex2Str(x.field1)).change();
$("#field2").val(Hex2Str(x.field2)).change();
... etc.
return false; } ....
Happy coding!
Monday, 27 May 2013
Nederlandse tekst voor Accessnow actie over Privacy Bescherming
Subject:
Gelieve in te staan voor mijn privacyrechten
Message:
U zal binnenkort stemmen over het voorstel van de Commissie voor een algemene verordening gegevensbescherming. Ik schrijf u om u aan te sporen mijn fundamentele rechten te verdedigen op het gebied van privacy en gegevensbescherming en ervoor te zorgen dat ik de controle over mijn persoonlijke gegevens behoud.
Om dat te doen, is het belangrijk voor u om zeker te zijn dat de verordening het volgende bevat:
- Bescherming van al mijn gegevens, waaronder gegevens die kunnen worden gebruikt om mij er uit te pikken of mij te identificeren als gebruiker;
- De mogelijkheid om mijn uitdrukkelijke toestemming te geven voor gegevensverwerking, welke beperkt is tot specifieke doeleinden;
- Een recht om mijn gegevens te verwijderen en de verplaatsen;
- Strikte beperkingen op profilering;
- Een verbod voor bedrijven die toegang bieden tot mijn persoonsgegevens aan buitenlandse overheden of instanties.
Ik dank u dat u een waardevolle partner in het opkomen voor mijn recht op privacy wilt zijn.
Link naar de actie: Act now: tell MEPs to stand up for our privacy as European citizens.
Gelieve in te staan voor mijn privacyrechten
Message:
U zal binnenkort stemmen over het voorstel van de Commissie voor een algemene verordening gegevensbescherming. Ik schrijf u om u aan te sporen mijn fundamentele rechten te verdedigen op het gebied van privacy en gegevensbescherming en ervoor te zorgen dat ik de controle over mijn persoonlijke gegevens behoud.
Om dat te doen, is het belangrijk voor u om zeker te zijn dat de verordening het volgende bevat:
- Bescherming van al mijn gegevens, waaronder gegevens die kunnen worden gebruikt om mij er uit te pikken of mij te identificeren als gebruiker;
- De mogelijkheid om mijn uitdrukkelijke toestemming te geven voor gegevensverwerking, welke beperkt is tot specifieke doeleinden;
- Een recht om mijn gegevens te verwijderen en de verplaatsen;
- Strikte beperkingen op profilering;
- Een verbod voor bedrijven die toegang bieden tot mijn persoonsgegevens aan buitenlandse overheden of instanties.
Ik dank u dat u een waardevolle partner in het opkomen voor mijn recht op privacy wilt zijn.
Link naar de actie: Act now: tell MEPs to stand up for our privacy as European citizens.
Tuesday, 21 May 2013
Wednesday, 24 April 2013
Sublime Text 2 Color Scheme for Lasso
Sublime Text 2 is a
superb code editor. I am using it now since 4 days and I am already completely
used to it. I thought I would miss all integrated functions in
Coda 2, but it turns out
that I don't. I already use applications like
Transmit,
SmartSVN and
Navicat outside Coda 2 to
do more than can be done from within Coda 2, so I am already used to that. After
4 days of coding with Sublime Text it is now the other way around - I miss stuff
in Coda 2 that makes me turn back to Sublime Text!
A fellow developer has made a great Lasso syntax highlighter for Sublime Text 2 and I have been playing around a color scheme to get the (almost) same syntax coloring as I had in Coda 2. Maybe you find it useful too.
Download myLasso.tmTheme and put it into:
/Users/<YOU>/Library/Application Support/Sublime Text 2/Packages/Color Scheme - Default/
(to install on Win / Lin - read this part of the manual)
And this is my 'all-the-extra-packages-you-need' list:
A fellow developer has made a great Lasso syntax highlighter for Sublime Text 2 and I have been playing around a color scheme to get the (almost) same syntax coloring as I had in Coda 2. Maybe you find it useful too.

Download myLasso.tmTheme and put it into:
/Users/<YOU>/Library/Application Support/Sublime Text 2/Packages/Color Scheme - Default/
(to install on Win / Lin - read this part of the manual)
And this is my 'all-the-extra-packages-you-need' list:
-
http://wbond.net/sublime_packages/package_control
A full-featured package manager
-
The following packages can all be installed via Package Control:
-
https://github.com/weslly/ColorPicker
A multi-platform color picker plugin for Sublime Text 2
-
https://github.com/sobstel/SyncedSideBar
Sublime Text 2 plugin to sync project sidebar (folder view) with currently active file.
-
https://github.com/titoBouzout/SideBarEnhancements
Enhancements to Sublime Text sidebar. Files and folders.
-
https://bitbucket.org/cryzed/sweylas-color-theme-generator
Sublime Text 2 package that utilizes Sweyla's Color Theme Generator (http://themes.sweyla.com/).
-
https://github.com/bfad/Sublime-Lasso
A Sublime Text package for the Lasso programming language
-
https://github.com/SublimeText/jQuery
Sublime Text 2 package bundle for jQuery
-
https://github.com/SublimeText/Open-Include
Will open file paths found under the cursor with ALT+D
Friday, 19 April 2013
ICSviewer v2 is out. View and export .ics calendar files
Version 2 of ICS Viewer was released today. Someone reported a crash, which had to do with the order of VEVENT entries. This, among other things, has been fixed. Enjoy!
Saturday, 13 April 2013
Foto: Ice Dick / IJspenis
Thursday, 28 March 2013
Logistics Dictionary
While cleaning my databases I found a Logistics dictionary called 'Terminology in Logistics', which I once digitized from a paper version. I've put it online as a searchable database. If you miss anything, please let me know and I'll add it - if is a valid entry.
Monday, 11 March 2013
Connect your Mac to the Tor Network
I created a page how to 'Connect to the Tor Network', which describes the steps to connect your whole Mac, not just clients with their own proxy settings, to the Tor Network. It's really simple and not complicated at all.
Happy free and anonymous browsing!
Happy free and anonymous browsing!
Sunday, 10 March 2013
Country codes, Postcodes, City names, etc. at GeoNames
In search for a good list with ISO-country names and relevant data, I ended at GeoNames. This site offers really super data, like even the RegExp to test a postcode value! Really great! And even more data of countries worldwide, like largest cities, highest mountains, capitals, postal codes, country statistics and much more.
And all for free. However, I can imagine what a job this must be to keep all that data up-to-date, so I donated for the data I downloaded (donate button is at the top of the donate & sponsoring page).
See also my earlier post about calculating postcode-to-postcode distances.
And all for free. However, I can imagine what a job this must be to keep all that data up-to-date, so I donated for the data I downloaded (donate button is at the top of the donate & sponsoring page).
See also my earlier post about calculating postcode-to-postcode distances.
Restaurant Majesteit in Velp
Als je in Velp bent en weer eens echt lekker wilt eten in een aangename ambiance, dan is eetcafé Majesteit een echte aanrader.

Makkelijk bereikbaar door achter de AH te parkeren en dan een klein stukje door te lopen naar de Wilhelminastraat 21 (bekijk in Google Maps)
Makkelijk bereikbaar door achter de AH te parkeren en dan een klein stukje door te lopen naar de Wilhelminastraat 21 (bekijk in Google Maps)
Saturday, 2 March 2013
iOS Home Screen Backgrounds
I created my first series of iOS Home Screen backgrounds and you can see and download them from this page.
Yourhead Collage 2 not working in IE9
I found the bug that blocked YourHead's Collage 2 from working in Internet Explorer 9. You can read about it at, and download the corrected plug-in from, the YourHead Support Forum. I attached it there to my last response. If you can't download it from there, contact me and I'll mail you the 2MB zipped file.
Do not 'install' the unzipped file. Rather copy it to /Users/YOURNAME/Library/Application Support/RapidWeaver/
You can open your 'Library' folder, if you do not see it, like described here: https://www.macworld.com/article/1161156/view_library_folder_in_lion.html
Do not 'install' the unzipped file. Rather copy it to /Users/YOURNAME/Library/Application Support/RapidWeaver/
You can open your 'Library' folder, if you do not see it, like described here: https://www.macworld.com/article/1161156/view_library_folder_in_lion.html
Thursday, 14 February 2013
Remove dynamic tables from Lasso 8 and MySQL
I wrote a small script that cleans up Lasso 8's internal SQLite database from dynamically created tables in MySQL. It also deletes the dynamic tables from MySQL when older then 2 days, so you do not need a separate script for that.
In my case, the script has been written to clean my dynamically created temp tables, which names all begin with 'REP'. But you can copy the script and of course modify it to your needs.
Happy coding!
In my case, the script has been written to clean my dynamically created temp tables, which names all begin with 'REP'. But you can copy the script and of course modify it to your needs.
Happy coding!
Thursday, 7 February 2013
Monday, 4 February 2013
Foto: Old Water Tower in Gorinchem
Sunday, 27 January 2013
Thursday, 10 January 2013
Foto: Still Life
Wednesday, 9 January 2013
Bronkhorster bieren
Een paar weken geleden vond ik in de supermarkt in Hummelo een setje lokaal gebrouwen bieren: Bronckhorster, gebrouwen door Brouwerij Rodenburg in Rha. Wel prijzig, dus een aanrader voor af en toe en speciale gelegenheden zoals Ome Joop's speciale gelegenheden: als het regent en als het niet regent!
Monday, 7 January 2013
Restrict Lasso AJAX-file calls to the intended web page
Suppose you have a nice setup where a page interacts with the server via AJAX-calls and executes a Lasso file on the server to get some data. You don't want this file to be called directly via the URL-bar in a web browser, or via other self-made web pages by others who try to access it via a copy of your page. Anybody can see which AJAX-files your page is calling, so for some it is always a challenge to execute them outside the normal webpage to see what data will come up. Might be of interest! So you want to prevent that, somehow.
There is a Lasso-tag called referrer_url, which returns a string containing the URL that requested your AJAX-page. If you look into this string for a domain name or a path that only you have, you can block execution if the requestor is not coming from your server. When a page is called directly in the browser, the referrer_url is always an empty string. Which is logical, since the page was not referred to by another page.
Suppose I have a page mypage.html with a jQuery auto-complete implementation in it. This auto-complete can of course be used by more than one page and you do not want people to try it out in other ways.
...
...
<input type="text" id="inp1" size="25"><span id="desc1"></span>
...
...
<script>
$(document).ready(function() {
$("#inp1").autocomplete({minLength:2, source: "ajax.lasso?p1=a&p2=b", select: function(e,u) { $("#inp1").val(u.item.value); $("#desc1").html((u.item.label).replace("(" + u.item.value + ")", "")); return false; } });
});
</script>
Simple protection:
[
if (referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html');
...
...
/if;
]
Better protection:
[
if (string(referrer_url)->beginswith('http://my.domain.com/') &&
(referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html'));
...
...
/if;
]
So this gives you some protection from just try something-users. Add a login-system, which restricts the number of users that might want to hack your pages - you can trace their actions on your site. In that case, add a check if the user is logged in. You must execute your complete login-sequence in your AJAX-pages too, as with 'normal' pages, since the xhttprequest is a normal HTTP request and thus the browser sends the same HTTP-headers and cookies, etc.. to your AJAX-page.
More protection:
[
if (referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html');
var('loggedIn = false');
include('checkuser.lasso');
if($loggedIn);
...
...
/if;
/if;
]
Even better protection:
[
if (string(referrer_url)->beginswith('http://my.domain.com/') &&
(referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html'));
var('loggedIn = false');
include('checkuser.lasso');
if($loggedIn);
...
...
/if;
/if;
]
But, as with everything web-related, nothing can be trusted.
There is a Lasso-tag called referrer_url, which returns a string containing the URL that requested your AJAX-page. If you look into this string for a domain name or a path that only you have, you can block execution if the requestor is not coming from your server. When a page is called directly in the browser, the referrer_url is always an empty string. Which is logical, since the page was not referred to by another page.
Suppose I have a page mypage.html with a jQuery auto-complete implementation in it. This auto-complete can of course be used by more than one page and you do not want people to try it out in other ways.
...
...
<input type="text" id="inp1" size="25"><span id="desc1"></span>
...
...
<script>
$(document).ready(function() {
$("#inp1").autocomplete({minLength:2, source: "ajax.lasso?p1=a&p2=b", select: function(e,u) { $("#inp1").val(u.item.value); $("#desc1").html((u.item.label).replace("(" + u.item.value + ")", "")); return false; } });
});
</script>
Simple protection:
[
if (referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html');
...
...
/if;
]
Better protection:
[
if (string(referrer_url)->beginswith('http://my.domain.com/') &&
(referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html'));
...
...
/if;
]
So this gives you some protection from just try something-users. Add a login-system, which restricts the number of users that might want to hack your pages - you can trace their actions on your site. In that case, add a check if the user is logged in. You must execute your complete login-sequence in your AJAX-pages too, as with 'normal' pages, since the xhttprequest is a normal HTTP request and thus the browser sends the same HTTP-headers and cookies, etc.. to your AJAX-page.
More protection:
[
if (referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html');
var('loggedIn = false');
include('checkuser.lasso');
if($loggedIn);
...
...
/if;
/if;
]
Even better protection:
[
if (string(referrer_url)->beginswith('http://my.domain.com/') &&
(referrer_url >> '/mypage.html' || referrer_url >> '/myotherpage.html'));
var('loggedIn = false');
include('checkuser.lasso');
if($loggedIn);
...
...
/if;
/if;
]
But, as with everything web-related, nothing can be trusted.
Subscribe to:
Posts (Atom)