<?xml version="1.0" encoding="iso-8859-1" ?> 
<rss version="2.0">
<channel>
<title>yoy.be - Why-O-Why</title> 
<link>http://yoy.be/</link> 
<description>yoy.be - Why-O-Why - is it a structure wiki? is it a blog? does it have any answers or only questions?</description> 
<item>
		<link>http://yoy.be/item.asp?i3070</link>
		<title>Bitcoin Grant: funding the future</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> Bitcoin Grant: funding the future<br /><p><a href="http://bitcoingrant.org/">http://bitcoingrant.org/</a></p>
<p>Realistisch gezien, maak ik geenenkele kans. Maar, stel! Stel dat het mogelijk zou zijn dat je uit het anonieme een bedrag krijgt per maand waar je comfortabel kan leven, om in ruil je tijdens de kantoor-uren in te zetten voor het constructief meewerken aan een of meer open-source projecten. Hoe zou dat in het echt werken? Ik vroeg me recent al af als ik eventuele winsten die ik dit jaar zou halen op de stijgende Bitcoin koers moet aangeven aan de inkomstenbelasting. Hoeveel is het forfait eigenlijk? Ik denk niet dat ik dat zal bereiken, maar toch. Zou de fiscus het snappen? &quot;Waar komt dat geld van? Is het zwart?&quot; Eeuh, nee, ja, misschien, ik weet het niet. In theorie kan je het zelfs niet weten. Gezien er geen bedrijfsvorm is die je als werknemer inschrijft, zal dit als zelfstandige moeten. Gemakkelijker gezegd dan gedaan in ons apenlandje, en best met wat gevolgen. Zoals wat je moet afdragen aan de sociale kas en ervoor zorgen dat je boekhouding klopt voor onder meer <span class="newwiki">BTW</span>. Urgh. En als dat in de vorm van een eenpersoonsbedrijf moet moet dat waarschijnlijk met een businessplan, en marktonderzoek? Hoe ligt open source software in de markt? Dat alleen al ligt moeilijk want dat zorgt niet rechtstreeks voor je inkomsten. Bon, overdag braaf gaan werken en 's avonds als hobby wat sleutelen aan een sourceforge/github/codeplex dingetje lijkt plots al bij al zo slecht nog niet.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i222" style="white-space: nowrap;"><img src="http://yoy.be/img/ic86.png" width="16" height="16" border="0" align="top" /> spotted on the net</a> &gt; <a href="http://yoy.be/item.asp?i228" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> IT-related</a> &gt; <a href="http://yoy.be/item.asp?i567" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> development related</a></span><br /> <span class="date">created: 8/04/2013 19:50:27 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 8/04/2013 19:50:27</span>
	 <span class="date">weight: 0</span>
	<br /> <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3070</guid>
		<comments>http://yoy.be/report.asp?i3070</comments>
		<pubDate>Mon, 8 Apr 2013 17:50:27 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3068</link>
		<title>&quot;database locked&quot; errors with SQLITE_CONFIG_SERIALIZED</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> &quot;database locked&quot; errors with SQLITE_CONFIG_SERIALIZED<br /><p>I've been impressed by sqlite3 ever since I get to know about it. It's open source, and even more it's really put in the public domain completely avoiding the licensing headache. I haven't read the source in great detail, but as I understand it it's all in a single big file! Even how it works internally is impressive.</p>
<p>Since I didn't like the options available, I created <a href="https://github.com/stijnsanders/TSQLite">my own very thin wrapper</a> for sqlite3.dll without much trouble. Only in this one multi-threaded application, I've run into an occasional &quot;database locked&quot; error, so I had to search documentation and source for what I can do about it.</p>
<p>Working with other database solutions, I've had the common sense of using a database connection for each thread, so each could work with the database undisturbed by eachother. As it turns out this is not required with sqlite3! As stated with <a href="http://www.sqlite.org/c3ref/c_config_covering_index_scan.html#sqliteconfigserialized">SQLITE_CONFIG_SERIALIZED</a>, which is the default setting, you're better off using a single connection over all threads. Indeed in my case it solved the &quot;database locked&quot; errors.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i78" style="white-space: nowrap;"><img src="http://yoy.be/img/ic81.png" width="16" height="16" border="0" align="top" /> Application Development</a> &gt; <a href="http://yoy.be/item.asp?i594" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Data Storage</a> &gt; <a href="http://yoy.be/item.asp?i2962" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> SQLite</a></span><br /> <span class="date">created: 23/03/2013 22:36:26 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 23/03/2013 22:36:26</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt27*"><img src="http://yoy.be/img/cat/cat_delphi.gif" width="50" height="13" border="0" align="top" alt="delphi" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3068</guid>
		<comments>http://yoy.be/report.asp?i3068</comments>
		<pubDate>Sat, 23 Mar 2013 21:36:26 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3066</link>
		<title>Ik wil ook wel zo van die structurele maatregelen.</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic43.png" width="16" height="16" border="0" align="top" /> Ik wil ook wel zo van die structurele maatregelen.<br /><p>Ik heb geen pol en sok gestudeerd. Ik ben helemaal geen expert. Ik heb iedere dag het gevoel dat ik nog maar net een beetje probeer de politiek te volgen. Ook belangrijk: ik baseer mij enkel op de zaken zoals ze via het 'normale' kanaal tot bij u en mij raken: nieuws op TV, radio, tijdschriften en internet. En toch...</p>
<p>Als het geld op is moeten ze er nieuwe bij drukken. De VS doet het. Groot Britanni&euml; doet het. Maar Europa? Ho maar. Ik veronderstel voorlopig even gemakkelijkheidshalve dat Merkel en Hollande dat niet wil. Als het moeilijk gaat, en je beschikt over een nationale munt, en met het sleutelen aan de percentages van dit en dat helpt niet meer, dan kan je gaan voor een devaluatie (een duur woord voor geld bij drukken). De mensen zijn even kwaad, de koopkracht schommelt een beetje, maar uiteindelijk keert er vanalles, doet iedereen verder en komt het goed.</p>
<p>Ik vermoed dat er iemand zal gedacht hebben misschien werkt het ook als we gewoon van iedereen een stuk spaargeld afnemen, dan daalt de koopkracht toch ook? In Cyprus zit zelfs veel geld van buiten Europa, dat is ook mooi meegenomen. Maar zo werkt het niet. Ik vrees dat een run-on-the-bank onafwendbaar is. Misschien zelfs trubbels met Rusland. Niet goed.</p>
<p>Intussen in eigen land vragen de banken of de staat toch niet wat langer zou willen schulden maken. Lijkt me geen zo'n goed idee, al was het voor de trubbels met Europa. Ze vragen 'structurele maatregelen'... Dat vond ik wel heel vreemd. Banken schreven meer leningen uit dan goed voor hun was, toegegeven vooral in de VS, maar die rommelkredieten worden in alle soorten en vormen herverpakt en doorverkocht, tot het boeltje ineenstort, ze straten en wijken met een keer iedereen uit het huis zetten (en niemand die wil kopen, lijkt me nog eens een slecht idee op zijn eigen) en dan lijken er wereldwijd banken of onderuit te gaan of het heel erg moeilijk te krijgen.</p>
<p>Maar da's intussen al een paar jaar terug. Intussen gaat het niet goed met het heropleven van de economie, dus houden ze de percentages laag. Wij krijgen minder dan de inflatie op spaargeld (handig voor de banken) en lenen zou moeten makkelijker om dragen zijn met zo'n lage rente, toch als de bank je wil lenen. Daar lijkt het te schorten als ik het zo hoor. Ze zijn nu plots wel heel streng om hun geld uit te geven. En ze vragen om 'structerele maatregelen', om wat precies? Of de staat zou willen borg staan voor de leningen voor deze heroplevende economie? Lijkt me wat vreemd dat de huizen die sterker uit de storm zijn gekomen zo bang zijn van een beetje risico.</p>
<p>In plaats van te liggen verhuizen, zouden de rijke mensen beter zelf schuldnota's uitdelen. Iets in de zin van 'deze bon geeft u in 2020 recht op 50 euro uit de pocket van rijke mijnheer of mevrouw X'. Daarmee betaal je dan je boodschappen. En dan zien we in 2020 wel om ze terug te betalen. Lijkt misschien vreemd, maar het totaal bedrag aan Amerikaanse staatsschuld lijkt me een groot genoeg bedrag om een volledig land uit te bouwen. En hoeveel de dollar waard is, is toch afhankelijk van hoeveel de Chinezen er voor willen geven, toch?</p>
<p>Maar ik ben geen expert. En ik probeer maar te volgen wat ik in het nieuws zie. Maar ik denk er toch het mijne van.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i135" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Opinions</a> &gt; <a href="http://yoy.be/item.asp?i339" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> &quot;.be&quot;-related</a></span><br /> <span class="date">created: 21/03/2013 23:00:10 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 21/03/2013 23:00:10</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt24*"><img src="http://yoy.be/img/cat/cat_beurs.gif" width="50" height="13" border="0" align="top" alt="beurs" /></a> <a href="http://yoy.be/log.asp?tt37*"><img src="http://yoy.be/img/cat/cat_actueel.gif" width="50" height="13" border="0" align="top" alt="actueel" /></a> <a href="http://yoy.be/log.asp?tt34*"><img src="http://yoy.be/img/cat/cat_politiek.gif" width="50" height="13" border="0" align="top" alt="politiek" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3066</guid>
		<comments>http://yoy.be/report.asp?i3066</comments>
		<pubDate>Thu, 21 Mar 2013 22:00:09 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3065</link>
		<title>Delphi's TDateTime in a datetime column: how to manipulate from SQL?</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic91.png" width="16" height="16" border="0" align="top" /> Delphi's TDateTime in a datetime column: how to manipulate from SQL?<br /><p>Thanks to sqlite's <a href="http://sqlite.org/different.html#typing">manifest typing</a>, it's possible to insert Delphi's <span class="newwiki">TDateTime</span> values in a field defined by <span class="newwiki">SQL</span> as datetime. I was using this for a while without any problem before I found out sqlite was actually storing a floating point value. There may be a problem though when you try to manipulate these dates with <span class="newwiki">SQL</span>. I searched around for a suitable conversion, and using default sqlite features, I came up with this code:</p>
<pre>datetime('1900-01-01','+'||myDateField||' day')</pre>
<p>where <em><span class="newwiki">myDateField</span></em> is a column or value of type datetime.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i108" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> freeware</a> &gt; <a href="http://yoy.be/item.asp?i2951" style="white-space: nowrap;"><img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> TSQLite</a></span><br /> <span class="date">created: 19/03/2013 22:25:01 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 19/03/2013 22:25:01</span>
	 <span class="date">weight: 0</span>
	<br /> <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3065</guid>
		<comments>http://yoy.be/report.asp?i3065</comments>
		<pubDate>Tue, 19 Mar 2013 21:25:00 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3059</link>
		<title>Information, Un-information, Dis-information, Re-information</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> Information, Un-information, Dis-information, Re-information<br /><div>Information. 'In' is Latin for 'not', 'form' as in shape or structure. It depends on us to get it in to shape. When we do, we can start processing, but depending on the trustworthiness of the source (which may be variable, not constant!) problems may turn up.</div>
<div>&nbsp;</div>
<div>When designing a system to process input, in general I check these four concepts:</div>
<div>
<ul>
    <li>Information: is the formatting correct? is transfer complete and smooth? are errors handled appropriately? (e.g. xml or json validation)</li>
    <li>Un-information: is everything there? can I detect if anything is missing? (e.g. is the footer present and correct)</li>
    <li>Dis-information: is everything correct? does it fit with what is already known or is expected? is it within acceptable range? (e.g. negative <span class="newwiki">VAT</span> amount on a product)</li>
    <li>Re-information: did we get this before? and is it sure it's the same data about the same thing in the real world? (e.g. double input from barcode scanner)</li>
</ul>
</div><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i62" style="white-space: nowrap;"><img src="http://yoy.be/img/ic13.png" width="16" height="16" border="0" align="top" /> www.yoy.be</a> &gt; <a href="http://yoy.be/item.asp?i36" style="white-space: nowrap;"><img src="http://yoy.be/img/ic16.png" width="16" height="16" border="0" align="top" /> users</a> &gt; <a href="http://yoy.be/item.asp?i18" style="white-space: nowrap;"><img src="http://yoy.be/img/ic22.png" width="16" height="16" border="0" align="top" /> StijnSanders</a> &gt; <a href="http://yoy.be/item.asp?i1459" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> Consider Advice</a></span><br /> <span class="date">created: 16/01/2013 16:55:59 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 16/01/2013 16:58:15</span>
	 <span class="date">weight: 0</span>
	<br /> <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3059</guid>
		<comments>http://yoy.be/report.asp?i3059</comments>
		<pubDate>Wed, 16 Jan 2013 15:58:14 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3045</link>
		<title>How to create a shell extension context menu.</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> How to create a shell extension context menu.<br /><p>I've put it <a href="http://stackoverflow.com/questions/13345488/can-i-get-file-property-displayed-clicking-right-button-mouse-then-detail-from-o">up here</a>, but since it's a pretty good <em>boiler plate code</em>, I'll put it up here as well. Include a unit like this one into an <span class="newwiki">ActiveX</span> library. I especially had a though time to get the values right that are based on <span class="newwiki">idCmdFirst</span> and get sent back when a menu item is invoked. Something that gives pretty strange results if you don't get it right.</p>
<pre>unit demoContextMenu;

interface

uses
  Windows, Classes, ActiveX, ComObj, ShlObj;

type
  PItemIDList=LPCITEMIDLIST;

  { TContextMenu }
  TContextMenu = class(TComObject, IShellExtInit, IContextMenu)
  private
	Files:TStringList;
  protected
	{ IShellExtInit }
	function IShellExtInit.Initialize = SEIInitialize;
	function SEIInitialize(pidlFolder: PItemIDList; lpdobj: IDataObject;
	  hKeyProgID: HKEY): HResult; stdcall;
	{ IContextMenu }
	function QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst, idCmdLast,
	  uFlags: UINT): HResult; stdcall;
	function InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult; stdcall;
	function GetCommandString(idCmd: UINT_Ptr; uType: UINT; pwReserved: PUINT;
	  pszName: LPSTR; cchMax: UINT): HResult; stdcall;
  public
	procedure Initialize; override;
	destructor Destroy; override;
  end;

const
  Class_ContextMenu: TGUID = '{put a new GUID here by pressing Ctrl+Shift+G}';

implementation

uses ComServ, SysUtils, Registry;

procedure TContextMenu.Initialize;
begin
  inherited;
  Files:=TStringList.Create;
end;

destructor TContextMenu.Destroy;
begin
  Files.Free;
  inherited;
end;

function TContextMenu.SEIInitialize(pidlFolder: PItemIDList;
  lpdobj: IDataObject; hKeyProgID: HKEY): HResult; stdcall;
var
  StgMedium: TStgMedium;
  FormatEtc: TFormatEtc;
  i,c:integer;
  s:string;
begin
  if lpdobj=nil then Result:=E_INVALIDARG else
   begin
	FormatEtc.cfFormat:=CF_HDROP;
	FormatEtc.ptd:=nil;
	FormatEtc.dwAspect:=DVASPECT_CONTENT;
	FormatEtc.lindex:=-1;
	FormatEtc.tymed:=TYMED_HGLOBAL;

	Result:=lpdobj.GetData(FormatEtc,StgMedium);
	if not(Failed(Result)) then
	 begin
	  c:=DragQueryFile(StgMedium.hGlobal,$FFFFFFFF,nil,0);
	  for i:=0 to c-1 do
	   begin
		SetLength(s,1024);
		SetLength(s,DragQueryFile(StgMedium.hGlobal,i,PChar(s),1024));
		Files.Add(s);
	   end;
	  ReleaseStgMedium(StgMedium);
	  Result:=NOERROR;
	 end;
   end;
end;

function TContextMenu.QueryContextMenu(Menu: HMENU; indexMenu, idCmdFirst,
  idCmdLast, uFlags: UINT): HResult; stdcall;
var
  h:HMENU;
  i:integer;
begin
  i:=1;
  h:=CreatePopupMenu;
  AppendMenu(h,MF_STRING,idCmdFirst+i,'Menu item one');      inc(i);
  AppendMenu(h,MF_STRING,idCmdFirst+i,'Menu item two');      inc(i);
  AppendMenu(h,MF_STRING,idCmdFirst+i,'Menu item three');    inc(i);
  InsertMenu(Menu,indexMenu,
	MF_BYPOSITION or MF_POPUP or MF_STRING,h,'DemoContextMenu');
  Result:=i;
end;

function TContextMenu.InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult;
  stdcall;
begin
  Result := E_FAIL;
  //not called by application
  if HiWord(Integer(lpici.lpVerb))=0 then
	begin
	  Result := NOERROR;
	  case LoWord(Integer(lpici.lpVerb)) of
		1:;//perform action one (use data in Files:TStringList)
		2:;//perform action two
		3:;//perform action three
		else Result := E_INVALIDARG;
	  end;
	end;
end;

function TContextMenu.GetCommandString(idCmd: UINT_Ptr; uType: UINT;
  pwReserved: PUINT; pszName: LPSTR; cchMax: UINT): HResult; stdcall;
begin
  if idCmd=0 then
   begin
	if (uType=GCS_HELPTEXTW) then
	  StrCopy(pszName,'Perform one of several functions on files');
	Result:=NOERROR;
   end
  else
	Result:=E_INVALIDARG;
end;

type
  TContextMenuFactory = class(TComObjectFactory)
  public
	procedure UpdateRegistry(Register: Boolean); override;
  end;

procedure TContextMenuFactory.UpdateRegistry(Register: Boolean);
var
  ClassID:string;
  r:TRegistry;
begin
  if Register then
   begin
	inherited UpdateRegistry(Register);

	ClassID := GUIDToString(Class_ContextMenu);
	CreateRegKey('*\shellex', '', '');
	CreateRegKey('*\shellex\ContextMenuHandlers', '', '');
	CreateRegKey('*\shellex\ContextMenuHandlers\DemoContextMenu', '', ClassID);

	CreateRegKey('Folder\shellex', '', '');
	CreateRegKey('Folder\shellex\ContextMenuHandlers', '', '');
	CreateRegKey('Folder\shellex\ContextMenuHandlers\DemoContextMenu', '', ClassID);

	if Win32Platform=VER_PLATFORM_WIN32_NT then
	 begin
	  r:=TRegistry.Create;
	  try
		r.RootKey:=HKEY_LOCAL_MACHINE;
		r.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions',True);
		r.OpenKey('Approved',True);
		r.WriteString(ClassID,'DemoContextMenu Shell Extension');
	  finally
		r.Free;
	  end;
	 end;

   end
  else
   begin
	DeleteRegKey('Folder\shellex\ContextMenuHandlers\DemoContextMenu');
	DeleteRegKey('*\shellex\ContextMenuHandlers\DemoContextMenu');

	inherited UpdateRegistry(Register);
   end;
end;

initialization
  TContextMenuFactory.Create(ComServer, TContextMenu, Class_ContextMenu,
	'', 'DemoContextMenu Shell Extension', ciMultiInstance, tmApartment);
end.</pre><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i78" style="white-space: nowrap;"><img src="http://yoy.be/img/ic81.png" width="16" height="16" border="0" align="top" /> Application Development</a> &gt; <a href="http://yoy.be/item.asp?i80" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Programming Languages</a> &gt; <a href="http://yoy.be/item.asp?i1595" style="white-space: nowrap;"><img src="http://yoy.be/img/ic86.png" width="16" height="16" border="0" align="top" /> Object Pascal</a> &gt; <a href="http://yoy.be/item.asp?i81" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Delphi</a> &gt; <a href="http://yoy.be/item.asp?i91" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> ActiveX / COM objects</a></span><br /> <span class="date">created: 12/11/2012 16:41:31 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 12/11/2012 16:42:58</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt27*"><img src="http://yoy.be/img/cat/cat_delphi.gif" width="50" height="13" border="0" align="top" alt="delphi" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3045</guid>
		<comments>http://yoy.be/report.asp?i3045</comments>
		<pubDate>Mon, 12 Nov 2012 15:42:58 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3037</link>
		<title>E-mail over HTTP</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic5.png" width="16" height="16" border="0" align="top" /> E-mail over HTTP<br /><p>It <em>might</em> be a stupid idea, but why has no-one ever thought of mapping <span class="newwiki">SMTP</span>/<span class="newwiki">POP3</span>/<span class="newwiki">IMAP</span> onto <span class="newwiki">HTTP</span>. (Or has someone?)<br />
I know, there's a lot on the blogosphere about e-mail and it being broken in all kinds of ways, or not at all, but I don't want to touch upon that.</p>
<p>What I think it really is about is a clean straight-forward way of sending asynchronous messages to eachother. <span class="newwiki">SMTP</span> was created specifically for that. But it is getting old. Really old. Even so, it is based on a number of even older protocols (<a href="http://tools.ietf.org/html/rfc822">RFC822</a>, anyone?). It's only normal that protocols cooperate or are based on eachother, but some are clearly established <em>and</em> are a really good fit for most if not all situations and environments, and some are <em>established</em> but happen to be the <em>least&nbsp;worse</em> solution that is available, just waiting to get replaced by something better, <a href="http://tech.slashdot.org/story/12/03/29/0246202/sm-vs-spdy-microsoft-and-google-battle-over-http-20">as soon as the folk could agree on the replacement</a>.</p>
<p><span class="newwiki">HTTP</span> was designed to transport hypertext. At first from a server to a client, but basically in any direction. And thanks to <span class="newwiki">MIME</span>, anything really. And face it, isn't almost all of our e-mail in hypertext nowadays? So <span class="newwiki">HTTP</span> and <span class="newwiki">SMTP</span> may have a lot in common, except <span class="newwiki">HTTP</span> has seen a lot more evolution as far as I know, both in design and in support by hardware and software.</p>
<p>How would it work? Just like an MX-record, something else (<span class="newwiki">HTMX</span>-record?) could point at a <span class="newwiki">URL</span> for the domain of an e-mail address. (And I mean full <span class="newwiki">URL</span>: http/https, (sub)domain, path, etc...) So the sender starts a request:</p>
<pre>POST /incomingmail HTTP/1.1<br />Host: example.com<br />From: &quot;John Doe&quot; &lt;john.doe@acme.us&gt;<br />To: &quot;James Day&quot; &lt;james.day@example.com&gt;<br />Subject: Meeting invitation about some project<br />Date: Sat, 29 Sep 2012 15:38:11 +0000<br />Content-Type: text/html; charset=&quot;utf-8&quot;<br />Content-Transfer-Encoding: deflate<br />Content-Length: 1234</pre>
<p>At this point the server can respond with '100 Continue' or a <a href="http://www.webmonkey.com/2012/06/error-451-this-page-has-been-burned/">suitable error code</a>&nbsp;when spam detection or a blacklist does its job.</p>
<p>Same for <span class="newwiki">POP3</span>/<span class="newwiki">IMAP</span>: much like this <span class="newwiki">REST</span> thing that's getting so much attention, <span class="newwiki">HTTP</span> verbs <span class="newwiki">GET</span>&nbsp;and <span class="newwiki">DELETE</span> should be all you need to sift through the wad of timewasters people send you daily.</p>
<p>But, off course, it's just an idea. I've got lots of interesting stuff to work on before I'll put time in this probably, but if you think it's a good idea, let me know.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i135" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Opinions</a> &gt; <a href="http://yoy.be/item.asp?i209" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Computer related</a> &gt; <a href="http://yoy.be/item.asp?i208" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Internet</a></span><br /> <span class="date">created: 30/09/2012 1:35:03 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 30/09/2012 1:35:03</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt30*"><img src="http://yoy.be/img/cat/cat_internet.gif" width="50" height="13" border="0" align="top" alt="internet" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3037</guid>
		<comments>http://yoy.be/report.asp?i3037</comments>
		<pubDate>Sat, 29 Sep 2012 23:35:02 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3036</link>
		<title>&quot;Even snel een login-procedure maken&quot;...</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> &quot;Even snel een login-procedure maken&quot;...<br /><p>Ik dacht 'ik bouw even snel een login-procedure op die website', niets van. Laat dat 'even snel' maar weg, en 'login-procedure' is volgens de regels van de kunst ook niet meer wat het was als je het vergelijkt met begin de jaren 90. Laat ik dan even snel even een exhaustieve lijst proberen op te stellen: (Als ik iets vergeet geef me een seintje!)</p>
<ul>
    <li>Login form:
    <ul>
        <li>vakjes: &quot;Login&quot; (of &quot;e-mail&quot;?), &quot;Wachtwoord&quot;</li>
        <li>knop: &quot;Aanmelden&quot;</li>
        <li>checkbox &quot;Aangemeld blijven&quot;</li>
        <li><a href="https://en.wikipedia.org/wiki/Cross-site_request_forgery">CSRF</a> bescherming op het form</li>
        <li>een &quot;Ik heb nog geen login&quot; link (<a href="http://www.useit.com/alertbox/990711.html">op de juiste manier!</a>)</li>
        <li>een &quot;wachtwoord vergeten&quot; link</li>
        <li>(optioneel aanmelden met <a href="http://oauth.net/">OAuth</a> en links naar de usual suspects van tegenwoordig: Google,Facebook,Twitter...) [Dit heb ik nog nooit echt gedaan dus weet ik voorlopig niet wat dit verder inhoudt, vul ik mogelijk later nog aan]</li>
    </ul>
    </li>
    <li>Login:
    <ul>
        <li><span class="newwiki">CSRF</span> bescherming controleren, gepaste melding bij falen, (inbraakpoging melden/mailen/loggen?)</li>
        <li>user data opzoeken aan de hand van login (of e-mail)</li>
        <li>wachtwoord controleren, eerst met geschikte salt een hash maken</li>
        <li>wachtwoord klopt:
        <ul>
            <li>sessie-user-data laden en doorsturen naar hoofdpagina, of originele <span class="newwiki">URL</span> als er naar het login-form werd doorgestuurd.</li>
            <li>was &quot;Aangemeld blijven&quot; aangevinkt: token uitvinden en cookie zetten, toevoegen aan DB</li>
            <li>(ergens tonen wat de vorige login op de account was)</li>
        </ul>
        </li>
        <li>klopt niet:
        <ul>
            <li>doorsturen naar login-form met de melding dat het niet klopt. <span style="font-size: 8pt">(Hier is naar het schijnt &eacute;&eacute;n melding &quot;Ongekende login of onjuist wachtwoord&quot; beter, zodat niet kan worden nagegaan of iemand wel een account heeft.)</span></li>
            <li>(klopt al een paar keer niet: tijdelijk toegang ontzeggen? inbraakpoging melding/mailen/loggen?)</li>
        </ul>
        </li>
    </ul>
    </li>
    <li>Nieuwe gebruiker form:
    <ul>
        <li>login, met script en call om te controleren of de login nog beschikbaar is</li>
        <li>wachtwoord, twee keer, met script om te controleren of ze gelijk zijn</li>
        <li>eventueel extra script met controle op kwalitelt: hoofletters en kleine letters en minstens een cijfer en/of leesteken, minimum lengte</li>
        <li>(eventueel een <a href="https://en.wikipedia.org/wiki/CAPTCHA">CAPTCHA</a>)</li>
        <li>e-mail en script om te controleren of het wel 'x@x.x' is</li>
        <li>e-mail nog eens tegen de schrijffouten</li>
        <li>naam, adres? nog dingen? (en dan <a href="http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/">is er ook deze</a>)</li>
        <li>(wachtwoord-herinner-hint? zoals &quot;de naam van je eerste huisdier/schoonmoeder/school/werk&quot;...)</li>
        <li><span class="newwiki">CSRF</span> bescherming op het form</li>
        <li>knop: toevoegen (altijd handig: onsubmit script om de knop disabled te zetten, tegen dubbel-posten)</li>
    </ul>
    </li>
    <li>Nieuwe gebruiker maken:
    <ul>
        <li><span class="newwiki">CSRF</span> bescherming controleren, gepaste melding bij falen, (inbraakpoging melden/mailen/loggen?)</li>
        <li>(<span class="newwiki">CAPTCHA</span> controleren)</li>
        <li>Gegevens aan de DB toevoegen, wachtwoord opslaan als een hash met geschikte salt.</li>
        <li>(ofwel direct ook sessie-user-data laden, ofwel liever:)</li>
        <li>e-mail sturen met een <span class="newwiki">URL</span> om de account te laten activeren</li>
    </ul>
    </li>
    <li><span class="newwiki">URL</span> specifiek om nieuwe accounts te activeren via link in mail met een specifieke lange random code</li>
    <li>Wachtwoord vergeten:
    <ul>
        <li>ofwel e-mail alleen en wachtwoord resetten met iets random (ook hier beter altijd zeggen dat een mail is verstuurd, ook als de e-mail helemaal niet in de DB zit) ,<br />
        plus in de mail de uitleg wat te doen als dat ongevraagd is gebeurd</li>
        <li>ofwel hier werken met de wachtwoord-herinner-hint [moet ik de details nog eens van opzoeken]</li>
        <li><span class="newwiki">CSRF</span> bescherming (eigenlijk gewoon iets globaal op alle forms)!</li>
        <li>(eventueel <span class="newwiki">CAPTCHA</span>?)</li>
    </ul>
    </li>
    <li>Bij nieuwe sessie (eerste bezoek aan de site):
    <ul>
        <li>Is er een &quot;aangemeld blijven&quot; cookie? Opzoeken in de DB, sessie-user-data laden en cookie vervangen met een nieuwe token, aanpassen in DB.</li>
        <li>Geen cookie? Doorverwijzen naar login form (hou de eerste <span class="newwiki">URL</span> bij!)</li>
        <li>(Of is er een 'anonymous user' account die je eerst kan laden tot iemand manueel inlogt?)</li>
        <li>(In mijn geval was er ook een mogelijkheid om de gebruiker automatisch te herkennen als er met <span class="newwiki">NTLM</span> op <span class="newwiki">IIS</span> was aangemeld)</li>
    </ul>
    </li>
    <li>log-off functie
    <ul>
        <li>log-off link met echte sessie-invalidatie</li>
        <li>eventueel ook een keuze-optie om de automatic-login-cookie te verwijderen</li>
    </ul>
    </li>
    <li>DB tabel user
    <ul>
        <li>login (controle uniek!)</li>
        <li>wachtwoord (eigenlijk de hash van wachtwoord en salt)</li>
        <li>e-mail adres</li>
        <li>naam, adres? nog dingen?</li>
        <li>wachtwoord-herinner-hint?</li>
        <li>nog gegevens?</li>
        <li>statistiek: originating IP, user-agent, aangemaakt op, gewijzigd op</li>
    </ul>
    </li>
    <li>DB tabel 'user automatisch aanmelden' (er is duscussie over, maar ik denk dat een aparte tabel nodig is, ikzelf heb inderdaad thuis en op het werk aparte computers die ik wil ingelogd hebben en de rest niet)
    <ul>
        <li>user id</li>
        <li>token (zoals verondersteld ook in cookie bij user)</li>
        <li>statistiek: originating IP, user-agent, aangemaakt op, laatst gewijzigd op</li>
    </ul>
    </li>
    <li>Beheer
    <ul>
        <li>lijst gebruikers, manueel toevoegen, wijzigen, verwijderen, wachtwoord resetten, (nog?)</li>
        <li>lijst/controle automatisch aanmelden</li>
        <li>wat doe je met stoute gebruikers (<a href="http://www.codinghorror.com/blog/2011/06/suspension-ban-or-hellban.html">deze zeker eens lezen!</a>)</li>
    </ul>
    </li>
    <li>'get my data': exporteren van alle data, zie <a href="http://www.dataliberation.org/">http://www.dataliberation.org/</a></li>
    <li>
    <p>'delete my data','delete my account': alles wissen (of alleen de account disablen? anonymiseren?)</p>
    </li>
</ul><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i62" style="white-space: nowrap;"><img src="http://yoy.be/img/ic13.png" width="16" height="16" border="0" align="top" /> www.yoy.be</a> &gt; <a href="http://yoy.be/item.asp?i36" style="white-space: nowrap;"><img src="http://yoy.be/img/ic16.png" width="16" height="16" border="0" align="top" /> users</a> &gt; <a href="http://yoy.be/item.asp?i18" style="white-space: nowrap;"><img src="http://yoy.be/img/ic22.png" width="16" height="16" border="0" align="top" /> StijnSanders</a> &gt; <a href="http://yoy.be/item.asp?i330" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> IRL</a></span><br /> <span class="date">created: 15/09/2012 16:32:15 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 29/09/2012 11:29:56</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt30*"><img src="http://yoy.be/img/cat/cat_internet.gif" width="50" height="13" border="0" align="top" alt="internet" /></a> <a href="http://yoy.be/log.asp?tt25*"><img src="http://yoy.be/img/cat/cat_coding.gif" width="50" height="13" border="0" align="top" alt="coding" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3036</guid>
		<comments>http://yoy.be/report.asp?i3036</comments>
		<pubDate>Sat, 29 Sep 2012 09:29:56 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3030</link>
		<title>BSON and arrays</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic49.png" width="16" height="16" border="0" align="top" /> BSON and arrays<br /><p>&nbsp;Dear Mr. Sanders:</p>
<div>I posted a question on stackoverflow,</div>
<div><a href="http://stackoverflow.com/questions/11380576/how-to-write-the-mongodb-code-in-delphi">http://stackoverflow.com/questions/11380576/how-to-write-the-mongodb-code-in-delphi</a></div>
<div>it is fully in your grip, so please take a while to see it! thank you!</div><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i108" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> freeware</a> &gt; <a href="http://yoy.be/item.asp?i2949" style="white-space: nowrap;"><img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> TMongoWire</a></span><br /> <span class="date">created: 8/07/2012 7:50:12 <a href="http://yoy.be/item.asp?i1" title="i1">&laquo;</a></span>
	 <span class="date">modified: 8/07/2012 7:50:12</span>
	 <span class="date">weight: -100</span>
	<br /> <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3030</guid>
		<comments>http://yoy.be/report.asp?i3030</comments>
		<pubDate>Sun, 8 Jul 2012 05:50:12 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3020</link>
		<title>Force Application.Run to skip the message loop (from within OnCreate event handler).</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic91.png" width="16" height="16" border="0" align="top" /> Force Application.Run to skip the message loop (from within OnCreate event handler).<br /><p><strong>Warning: this is a very specific hack an may not apply to other situations.</strong></p>
<p>For a number of projects that check for an update of the program executable&nbsp;on the central file server, from within the main form's <span class="newwiki">OnCreate</span> event handler, I was searching for a way to 'skip' <code>Application.Run;</code> when an update is found. I was using &quot;<code>raise EAbort.Create('Auto-update available.');</code>&quot; already to <em>skip</em> the remainder of the <span class="newwiki">OnCreate</span> event handler, but back in the project source (.dpr), Application.Run would start and perform the message loop. I used <span class="newwiki">PostQuitMessage</span> before, but that doesn't seem to always work, a better way would be to skip the message loop altogether.</p>
<p>I used &quot;<code>if SelfUpdateAvailable then Application.Run;</code>&quot; for some time, but in any new project that would use the auto-update mechanism, you would have to remember to put it in, or the support-calls after the first update for the program would remind you, or have you wondering first what's wrong with the auto-update this time. Anyway, it's better to leave the .dpr just the way Delphi hands it to you since it will modify it later when you add forms or data modules.</p>
<p>So I figured out I could <em>disarm</em> Application.Run by calling this from the 'start auto update' code:</p>
<p><code>&nbsp; Application.ControlDestroyed(Application.MainForm);</code></p>
<p>This causes Application.<span class="newwiki">MainForm</span> to be unassigned, and Application.Run to skip starting the message loop, mission accomplished.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i78" style="white-space: nowrap;"><img src="http://yoy.be/img/ic81.png" width="16" height="16" border="0" align="top" /> Application Development</a> &gt; <a href="http://yoy.be/item.asp?i80" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Programming Languages</a> &gt; <a href="http://yoy.be/item.asp?i1595" style="white-space: nowrap;"><img src="http://yoy.be/img/ic86.png" width="16" height="16" border="0" align="top" /> Object Pascal</a> &gt; <a href="http://yoy.be/item.asp?i81" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Delphi</a></span><br /> <span class="date">created: 10/05/2012 13:13:32 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 10/05/2012 13:14:52</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt27*"><img src="http://yoy.be/img/cat/cat_delphi.gif" width="50" height="13" border="0" align="top" alt="delphi" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3020</guid>
		<comments>http://yoy.be/report.asp?i3020</comments>
		<pubDate>Thu, 10 May 2012 11:14:51 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3018</link>
		<title>MetaKeys</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic94.png" width="16" height="16" border="0" align="top" /> MetaKeys<br /><p><a href="freeware/MetaKeys_335.exe"><img border="0" alt="[MetaKeys icon]" align="left" width="32" height="32" src="http://yoy.be/freeware/ico_metakeys.png" /></a><strong>Download:</strong> <a href="freeware/MetaKeys_335.exe">MetaKeys_setup.exe</a> ~<span class="newwiki">672KB</span><br />
<span class="newwiki">MetaKeys</span> is a resizable, customizable on-screen keyboard.</p>
<p><a href="http://www.softpedia.com/progClean/MetaKeys-Clean-213638.html"><img border="0" alt="Softpedia 100% Clean Award" width="170" height="116" src="http://yoy.be/images/softpedia_clean_award_f.gif" /></a> <a href="bitcoin:17E8FTNMbWyVuuT3Z5UGfogtmcLG7WjYmd"><img border="0" alt="bitcoin accepted" width="84" height="32" src="/images/BC_Rnd_32px.png" /></a></p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i108" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> freeware</a></span><br /> <span class="date">created: 17/04/2012 22:30:50 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 26/02/2013 18:53:47</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <img src="http://yoy.be/img/ic8.png" width="16" height="16" border="0" align="top" alt="(friendly-url)" /> <img src="http://yoy.be/img/ic8.png" width="16" height="16" border="0" align="top" alt="(item on yoy.be homepage)" />  <span class="label">references:</span> 
			<a href="http://yoy.be/item.asp?i3016" title="see also MetaClick"><img src="http://yoy.be/img/ic63.png" width="16" height="16" border="0" align="top" alt="" /><img src="http://yoy.be/img/ic94.png" width="16" height="16" border="0" align="top" alt="" /></a>&nbsp;
			<br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3018</guid>
		<comments>http://yoy.be/report.asp?i3018</comments>
		<pubDate>Tue, 26 Feb 2013 17:53:47 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3017</link>
		<title>How to recreate 70's 'programming conditions'</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic0.png" width="16" height="16" border="0" align="top" /> How to recreate 70's 'programming conditions'<br /><p>When getting my batchelor CS, we were the last batch to get <span class="newwiki">COBOL</span>. (They replaced it with Java the next year. And Pascal with C++ as well, by the way.) It feels like I was the only one that understood the code width was limited to 72 characters and had to start at position 8, just to be sure it would fit on Hollerith cards. We had all the modern editors and compilers of the age, so I never worked with cards and tape.</p>
<p>I searched around a bit back then, and remember reading about how hard programming was back in the 70's (pre-dating my existance). <span class="newwiki">COBOL</span> was there just to make the process somewhat easier, and serve as a stepping-stone to a working result so you wouldn't have to do it all in raw processor-code. You still had to 'write' the program, prepare it as a stack of cards, get over the the card-reading office in time for when you're on the schedule (don't drop the cards!), wait for mainframe time to get around to having the compiler run on your code, and just hope and pray you finally would get something else back than a print-out of syntax errors. If the mail-boy didn't misfile it.</p>
<p>I remember even earlier on errors would arise because cards would get out of order (like I said, don't drop the stack, which regretfully unfortunately did happen), or even worse no compiler-errors arise and it only later gets apparent when the program behaved unexpectedly. (Did they even do debugging back then?) This was easily (...) solved by introducing code-line-numbers and have the (pre-)compiler order the lines from the input-file by number.</p>
<p>So I was wondering, in this day and age of virtual reality, advanced computing and online<span>&nbsp;</span><em>gamified </em>educational experiences, would it be interesting to have something so us youngsters could appreciate how it was back then, by trying to recreate how it was to code. I'm not so much thinking about an emulated <span class="newwiki">PDP</span>-11 with a hall of tape stations. I'm more thinking of cubicles, internal mails, stacks of cards, print-outs, fighting for a few minutes of terminal access...</p>
<p>It's just an idea though. I'm afraid I don't have the time and skill to create a game like this.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i62" style="white-space: nowrap;"><img src="http://yoy.be/img/ic13.png" width="16" height="16" border="0" align="top" /> www.yoy.be</a> &gt; <a href="http://yoy.be/item.asp?i36" style="white-space: nowrap;"><img src="http://yoy.be/img/ic16.png" width="16" height="16" border="0" align="top" /> users</a> &gt; <a href="http://yoy.be/item.asp?i18" style="white-space: nowrap;"><img src="http://yoy.be/img/ic22.png" width="16" height="16" border="0" align="top" /> StijnSanders</a> &gt; <a href="http://yoy.be/item.asp?i1313" style="white-space: nowrap;"><img src="http://yoy.be/img/ic10.png" width="16" height="16" border="0" align="top" /> nice idea's but no time to spend on them</a></span><br /> <span class="date">created: 16/04/2012 11:17:11 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 16/04/2012 11:17:11</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt25*"><img src="http://yoy.be/img/cat/cat_coding.gif" width="50" height="13" border="0" align="top" alt="coding" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3017</guid>
		<comments>http://yoy.be/report.asp?i3017</comments>
		<pubDate>Mon, 16 Apr 2012 09:17:10 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3016</link>
		<title>MetaClick</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic94.png" width="16" height="16" border="0" align="top" /> MetaClick<br /><p><a href="freeware/MetaClick_333.exe"><img border="0" alt="[MetaClick icon]" align="left" width="32" height="32" src="http://yoy.be/freeware/ico_metaclick.png" /></a><strong>Download:</strong> <a href="freeware/MetaClick_333.exe">MetaClick_setup.exe</a> ~<span class="newwiki">677KB</span><br />
<span class="newwiki">MetaClick</span> does mouse clicks for you when you're unable to click, or when clicking is an opeation that takes a lot of effort.</p>
<p><a href="http://www.download.com/AutoClick/3000-2056-10761367.html?part=dl-AutoClick&amp;subj=uo&amp;tag=button"><img border="0" alt="Get it from CNET Download.com!" align="right" width="150" height="60" src="http://www.download.com/i/dl/button/anim_button.gif" /></a>When the mouse pointer stops moving, <span class="newwiki">MetaClick</span> counts down a fixed interval and orchestrates a mouse click. This may cause you to click more than normally, but there's a lot of space to direct the click to when you don't need the click (e.g.&nbsp;the application caption bar), and if you think about it, in most cases you move to somewhere to click there. Switching modes enables double-clicks, drag operations, and rolling the scrolling wheel!</p>
<p><a href="http://www.softpedia.com/progClean/Stijn-Sanders-AutoClick-Clean-100805.html"><img border="0" alt="Softpedia 100% Clean Award" width="170" height="116" src="http://yoy.be/images/softpedia_clean_award_f.gif" /></a> <a href="http://download.famouswhy.com/autoclick/"><img border="0" alt="Famous Software Download" src="http://download.famouswhy.com/awards/Famous_Software_Award_Logo2.png" /></a> <a title="FindMySoft - AutoClick" href="http://autoclick.findmysoft.com/"><img border="0" alt="FindMySoft.com Safe To Install Award: AutoClick" width="160" height="110" src="http://yoy.be/images/findmysoft_AutoClick_award.png" /></a><br />
<a href="http://www.brothersoft.com/metaclick-244959.html"><img border="0" alt="BrotherSoft Editor's Pick" width="90" height="70" src="http://img.brothersoft.com/v1/img/awards/Editor's-Pick.gif" /><img border="0" alt="Brothersoft rating: 5/5" src="http://author.brothersoft.com/softimg/star_101.gif" /></a> <a href="http://www.softsea.com/review/AutoClick.html"><img border="0" alt="Reviews on SoftSea" src="http://www.softsea.com/images/pro-logo-4stars-1.gif" /></a> <a href="http://www.softsea.com/review/AutoClick.html"><img border="0" alt="Reviews on SoftSea" src="http://www.softsea.com/images/pro-logo-clean-1.gif" /></a> <a href="bitcoin:17E8FTNMbWyVuuT3Z5UGfogtmcLG7WjYmd"><img border="0" alt="bitcoin accepted" width="84" height="32" src="/images/BC_Rnd_32px.png" /></a></p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i108" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> freeware</a></span><br /> <span class="date">created: 12/04/2012 18:18:36 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 20/02/2013 21:53:36</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <img src="http://yoy.be/img/ic8.png" width="16" height="16" border="0" align="top" alt="(friendly-url)" /> <img src="http://yoy.be/img/ic8.png" width="16" height="16" border="0" align="top" alt="(item on yoy.be homepage)" />  <span class="label">references:</span> 
			<a href="http://yoy.be/item.asp?i3018" title="see also MetaKeys"><img src="http://yoy.be/img/ic63.png" width="16" height="16" border="0" align="top" alt="" /><img src="http://yoy.be/img/ic94.png" width="16" height="16" border="0" align="top" alt="" /></a>&nbsp;
			<br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3016</guid>
		<comments>http://yoy.be/report.asp?i3016</comments>
		<pubDate>Wed, 20 Feb 2013 20:53:35 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3010</link>
		<title>md5.pas</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic94.png" width="16" height="16" border="0" align="top" /> md5.pas<br /><p>This is odd, it looks like there isn't an open source md5.pas unit. And by open source I mean under a permissive license or without copyright or licensing.&nbsp;So I set out to write my own and share it here. I based it on the <a href="http://www.ietf.org/rfc/rfc1321.txt">original RFC</a>, and even more the description than the reference implementation, because it uses a few of those C tricks I don't like. I hope it's performant enough, in case you're demanding performance of it. I've done some testing myself, but if you detect any kind of issue, please let me know.</p>
<p><code>md5.pas</code> with <code>MD5Hash</code> for strings, sometimes used with passwords</p>
<p><code>md5Stream.pas</code> with <code>MD5HashFromStream</code> which takes any kind of stream (<span class="newwiki">TFileStream</span>, <span class="newwiki">TMemoryStream</span>...), and optionally a preset number of bytes to take from the stream (from the current position!).</p>
<p>Enjoy.&nbsp;</p>
<p><strong>Update:</strong> since <span class="newwiki">MD5</span> and <span class="newwiki">SHA1</span> are really similar, I've done the same for <span class="newwiki">SHA1</span> and added <font color="#000066" face="Lucida Console">sha1.pas</font> and <font color="#000066" face="Lucida Console">sha1Stream.pas</font>.<br />
<strong>Update 2:</strong> since I needed it for something else, I've added <a href="http://homes.esat.kuleuven.be/~bosselae/ripemd160.html">RIPEMD160</a> as well. And while I'l at it <span class="newwiki">SHA256</span> as well</p>
<p><a href="/docs/md5.zip">md5.zip (12KB)</a></p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i108" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> freeware</a></span><br /> <span class="date">created: 16/02/2012 20:26:41 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 14/03/2013 21:24:12</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt27*"><img src="http://yoy.be/img/cat/cat_delphi.gif" width="50" height="13" border="0" align="top" alt="delphi" /></a> <img src="http://yoy.be/img/ic8.png" width="16" height="16" border="0" align="top" alt="(friendly-url)" />  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3010</guid>
		<comments>http://yoy.be/report.asp?i3010</comments>
		<pubDate>Thu, 14 Mar 2013 20:24:11 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3008</link>
		<title>COM/ActiveX objects and Windows Vista and newer</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic91.png" width="16" height="16" border="0" align="top" /> COM/ActiveX objects and Windows Vista and newer<br /><p>Applications that provide one or more <span class="newwiki">ActiveX</span>/<span class="newwiki">COM</span> automation objects, created with older versions of Delphi, running without administrative privileges, throw an&nbsp;<span class="newwiki">EOleSysError</span> when strarting up (typically from within the <code>Application.Initialize;</code>). This is because the application will try to register its type library and class registrations when it starts. Add this unit to the project to silent this error at run-time:</p>
<pre><strong>unit</strong> comFixW6;

<strong>interface</strong>

<strong>implementation</strong>

<strong>uses</strong> Windows, SysUtils, ComObj;

<strong>var</strong>
  SaveInitProc:pointer=<strong>nil</strong>;

<strong>procedure</strong> FixComInitProc;
<strong>begin</strong>
  <strong>try</strong>
    <strong>if</strong> SaveInitProc&lt;&gt;<strong>nil</strong> <strong>then</strong> TProcedure(SaveInitProc);
  <strong>except</strong>
    <strong>on</strong> e:EOleSysError <strong>do</strong> <strong>if</strong> e.ErrorCode&lt;&gt;TYPE_E_REGISTRYACCESS <strong>then</strong> <strong>raise</strong>;
  <strong>end</strong>;
<strong>end</strong>;

<strong>initialization</strong>
  SaveInitProc:=InitProc;
  InitProc:=@FixComInitProc;

<strong>end</strong>.</pre><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i78" style="white-space: nowrap;"><img src="http://yoy.be/img/ic81.png" width="16" height="16" border="0" align="top" /> Application Development</a> &gt; <a href="http://yoy.be/item.asp?i80" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Programming Languages</a> &gt; <a href="http://yoy.be/item.asp?i1595" style="white-space: nowrap;"><img src="http://yoy.be/img/ic86.png" width="16" height="16" border="0" align="top" /> Object Pascal</a> &gt; <a href="http://yoy.be/item.asp?i81" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Delphi</a> &gt; <a href="http://yoy.be/item.asp?i91" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> ActiveX / COM objects</a></span><br /> <span class="date">created: 2/02/2012 21:55:51 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 2/02/2012 22:01:41</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt27*"><img src="http://yoy.be/img/cat/cat_delphi.gif" width="50" height="13" border="0" align="top" alt="delphi" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3008</guid>
		<comments>http://yoy.be/report.asp?i3008</comments>
		<pubDate>Thu, 2 Feb 2012 21:01:40 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3006</link>
		<title>&gt;=, &lt;= operators</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic49.png" width="16" height="16" border="0" align="top" /> &gt;=, &lt;= operators<br /><p>Very nice, I'm trying it.<br />
<br />
Is there a way to use &gt;=. &lt;= operators for quering objects? I know I should use &amp;gt, but, how to use it with <span class="newwiki">TMongoWireQuery</span>?</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i108" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> freeware</a> &gt; <a href="http://yoy.be/item.asp?i2949" style="white-space: nowrap;"><img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> TMongoWire</a></span><br /> <span class="date">created: 2/02/2012 14:02:01 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 2/02/2012 21:31:28</span>
	 <span class="date">weight: -100</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt25*"><img src="http://yoy.be/img/cat/cat_coding.gif" width="50" height="13" border="0" align="top" alt="coding" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3006</guid>
		<comments>http://yoy.be/report.asp?i3006</comments>
		<pubDate>Thu, 2 Feb 2012 20:31:28 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3004</link>
		<title>Delphi 6: Sockets.pas doesn't call WinSock.closesocket!!!</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> Delphi 6: Sockets.pas doesn't call WinSock.closesocket!!!<br /><p>I've made a strange discovery! The code in Delphi's default Sockets.pas doesn't call <span class="newwiki">WinSock</span>'s closesocket! (At least Delphi 6, newer versions may have this fixed)&nbsp;Which causes a handle leak when you use <span class="newwiki">TTCPClient</span> and related classes. (At least in Delphi 6 and 7, I haven't been able to check newer versions.)<br />
<strong>Update:</strong> I've found <a href="http://qc.embarcadero.com/wc/qcmain.aspx?d=1845">this item on edc's qc</a>&nbsp;(from 2002!)</p>
<p>I've done extensive debugging to find out which would make the best work-around and this is what I came up with:</p>
<pre><strong>class</strong>
  TMyTCPClient = <strong>class</strong>(TTCPClient)<br />  <strong>public<br />    procedure</strong> Close; <strong>override</strong>;
  <strong>end</strong>;<br /> <br /><br /><strong>procedure</strong> TMyTCPClient.Close;<br /><strong>var</strong><br />&nbsp; h:TSocket;<br /><strong>begin</strong><br />&nbsp; h:=Handle;<br />&nbsp; <strong>inherited</strong>;<br />&nbsp; <strong>if</strong> h&lt;&gt;INVALID_SOCKET <strong>then</strong> closesocket(h);//handle leak?<br /><strong>end</strong>;</pre>
<p>You need to keep a local copy of the Handle value, since <em>inherited</em> performs shutdown-code, but also sets the socket handle value to <em><span class="newwiki">INVALID</span>_<span class="newwiki">SOCKET</span></em> without calling closesocket.</p>
<p>There appears to be an <span class="newwiki">OnDestroyHandle</span> event, but the socket's handle is no longer available by the time it gets called.</p>
<p>It's a nasty little bug that also only pops up unexpectedly after a long time running. It&nbsp;took me a pretty long while with intensive sleuthing now and them, but I'm glad I found this.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i78" style="white-space: nowrap;"><img src="http://yoy.be/img/ic81.png" width="16" height="16" border="0" align="top" /> Application Development</a> &gt; <a href="http://yoy.be/item.asp?i80" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Programming Languages</a> &gt; <a href="http://yoy.be/item.asp?i1595" style="white-space: nowrap;"><img src="http://yoy.be/img/ic86.png" width="16" height="16" border="0" align="top" /> Object Pascal</a> &gt; <a href="http://yoy.be/item.asp?i81" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Delphi</a></span><br /> <span class="date">created: 30/01/2012 14:43:11 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 2/02/2012 22:17:10</span>
	 <span class="date">weight: 0</span>
	<br /> <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3004</guid>
		<comments>http://yoy.be/report.asp?i3004</comments>
		<pubDate>Thu, 2 Feb 2012 21:17:09 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i3003</link>
		<title>Printer.Canvas is not threadsafe!</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> Printer.Canvas is not threadsafe!<br /><p>What a strange discovery I made today. I was hunting down&nbsp;a weird exception we noticed in the logs of the live system.</p>
<p>It turns out that a 'global' callback procedure is being called when you use Printer.Canvas (Printer.Canvas.<span class="newwiki">StretchDraw</span> in my case) by the <span class="newwiki">GDI</span> subsystem. The default <span class="newwiki">AbortProc</span> in Printers.pas calls Application.<span class="newwiki">ProcessMessages</span>, which was causing trouble in my case.</p>
<p>There's a quick workaround:</p>
<pre><strong>function</strong> MyAbortProc(Prn: HDC; Error: Integer): Bool; <strong>stdcall</strong>;
<strong>begin</strong>
  Result := <strong>not</strong> FPrinter.Aborted;
<strong>end</strong>;</pre>
<p>And then right after <code>Printer.BeginDoc;</code> call <code>SetAbortProc(Printer.Canvas.Handle,MyAbortProc);</code></p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i78" style="white-space: nowrap;"><img src="http://yoy.be/img/ic81.png" width="16" height="16" border="0" align="top" /> Application Development</a> &gt; <a href="http://yoy.be/item.asp?i80" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Programming Languages</a> &gt; <a href="http://yoy.be/item.asp?i1595" style="white-space: nowrap;"><img src="http://yoy.be/img/ic86.png" width="16" height="16" border="0" align="top" /> Object Pascal</a> &gt; <a href="http://yoy.be/item.asp?i81" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> Delphi</a></span><br /> <span class="date">created: 26/01/2012 19:46:39 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 26/01/2012 19:46:39</span>
	 <span class="date">weight: -200</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt27*"><img src="http://yoy.be/img/cat/cat_delphi.gif" width="50" height="13" border="0" align="top" alt="delphi" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i3003</guid>
		<comments>http://yoy.be/report.asp?i3003</comments>
		<pubDate>Thu, 26 Jan 2012 18:46:38 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i2999</link>
		<title>Trajectmeting E17</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic41.png" width="16" height="16" border="0" align="top" /> Trajectmeting E17<br /><p>Achthonderdduizend euro! Achthonderd duizend euro is al besteed aan een systeem om op twee punten langs een weg een poging te doen om je nummerplaat geautomatiseerd te lezen, en aan de hand van de tijd daartussen vast te stellen of de bestuurder zich hield aan de maximumsnelheid of niet. Eerst las ik dat er abnormaal zware voorwaarden waren gesteld om te blijven opereren in extreme condities zoals diepe vorst, maar daarna las ik dat er ernstige fouten zaten in zelfs de allerlaatste test-metingen. Het eerste is misschien storend, maar heb ik begrip voor, dat laatste is ronduit verschrikkelijk.</p>
<p>Ik vermoed, <a href="http://www.humo.be/humo-dossiers/26632">ook hier</a>, dat er offertes zijn opgehaald bij precies drie bedrijven (omdat het er minimum drie moeten zijn), eentje belachelijk duur, eentje terecht duur, maar te duur in vergelijking met de derde en goedkoopste. Ik schreef bijna belachelijk goedkoop, maar achthonderdduizend blijft een bedrag dat ik wel eens graag bij de lotto zou willen winnen (minimum natuurlijk). Ik hoef u er waarschijnlijk niet bij te vertellen welke twee van de drie het beste voor-onderzoek voor hebben gedaan.</p>
<p>Het grappige aan dit alles is dat ik laatst op het werk een <em>proof-of-concept</em> opstelling heb opgesteld om met een minimum aan middelen 'barcodes in de verkeerde richting' te scannen langs een transportband. Ik gebruikte open-source-software en een webcam die we als relatiegeschenk kregen en in de kast was beland. Als ik even mijn eigen bestede tijd niet reken, dan kom ik zelfs niet met een veelvoud van mijn budget aan het totaal van de offerte die we een professionele firma lieten opstellen, want alle veelvouden van nul zijn ook nul.</p>
<p>Misschien is dit niet helemaal te vergelijken met juridisch geldige trajectmeting op de openbare weg, maar volg even mee. Tijdens het familiale chaufferen van het voorbije oud-en-nieuw-weekend, speelde ik met het volgende in gedachten. De grootste materiaalkost zou moeten de beeldvormende toestellen zijn. Daar kan je niet rond. Ik lees dat er voor de trajectmeting op de E17 voor infra-rood werd gekozen, maar dit ernstige invloeden ondervind van wind en weer. Dit zou beter zijn om de tekst op nummerplaten waar te nemen, maar ik geloof dit niet echt. Een nummerplaat is nog altijd bedoeld om het best met het blote oog waar te nemen. Dus gebruiken we best 'gewone' camera's die zichtbaar licht meten. Dit zal ook de kost drukken want je vind ze nagenoeg overal tegenwoordig.</p>
<p>In een andere dimensie, bijvoorbeeld een waar ik het voor het zeggen zou hebben, zou de inrichtende macht gewoon kunnen opleggen dat elke nummerplaat moet magnetisch of radiografisch reageren op een elektronische lus in het wegdek met een digitale code die de belettering van de nummerplaat reproduceert, maar dit ligt waarschijnlijk zowel politiek als inzake privacy best gevoelig.</p>
<p>Dan, eenmaal je beeld kan vastleggen, moet je op zoek naar de nummerplaat. Er bestaat waarschijnlijk wel open-source <span class="newwiki">OCR</span> software (of er zou er moeten bestaan), maar die zou ik niet zomaar loslaten op het rauwe beeldmateriaal. Meeste nummerplaten zijn van dezelfde grootte, en dus zou je moeten kunnen snel op zoek gaan in het beeld naar een rechthoek van deze verhouding. Nummerplaten hangen meestal horizontaal, da's ook handig. Zelfs als je geen nummerplaat kan waarnemen, ik denk aan bezoekers uit het buitenland of tijdelijke oplossingen achter de voorruit, dan zou ik er durven op wedden dat de specifieke verhouding van breedte en hoogte, en eventueel andere kenmerken van de omtrek, van alle auto's die tegelijk op het stuk trajectmeting aanwezig zijn, een behoorlijk hoge graad van uniciteit vertoont (<a href="http://www.google.be/search?q=finger+length+biometric">een beetje zoals deze</a>).</p>
<p>Deze gegevens moeten allemaal nog verwerkt worden, maar veel moet dat niet kosten. Tegenwoordig worden rekeneenheden niet alleen veel kleiner maar ook veel goedkoper. (<a href="http://www.raspberrypi.org/">Ken je deze?</a>) En iets anders kiezen dan 'gewone' <span class="newwiki">STP</span> netwerkkabels zoals ze overal al liggen zou ik ook niet doen.</p>
<p>Dit alles zou toch veel minder moeten kosten dan wat nu al weer is verdwenen van de staatsrekeningen? Toegegeven, er kruipt nog een hoop werk in. Tegen weer en wind de dingen gaan ophangen. Uitgebreid testen, finetunen, controleren... Maar net dat zijn ze nu waarschijnlijk ook aan het doen. Al maanden lang.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i135" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Opinions</a> &gt; <a href="http://yoy.be/item.asp?i339" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> &quot;.be&quot;-related</a></span><br /> <span class="date">created: 2/01/2012 8:29:04 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 2/01/2012 8:30:29</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt34*"><img src="http://yoy.be/img/cat/cat_politiek.gif" width="50" height="13" border="0" align="top" alt="politiek" /></a> <a href="http://yoy.be/log.asp?tt37*"><img src="http://yoy.be/img/cat/cat_actueel.gif" width="50" height="13" border="0" align="top" alt="actueel" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i2999</guid>
		<comments>http://yoy.be/report.asp?i2999</comments>
		<pubDate>Mon, 2 Jan 2012 07:30:29 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i2993</link>
		<title>Een 'eenvoudige' controle bij aanbestedingen?</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic41.png" width="16" height="16" border="0" align="top" /> Een 'eenvoudige' controle bij aanbestedingen?<br /><p>Ik had een idee deze morgen. Stel dat een ambtenaar op zoek moet naar een minimum aantal offertes voor een openbare aanbesteding voor iets heel specifiek. Hij/zij vind er eentje, maar moet er meer hebben volgens de regels. Stel dat alle contacten en het zoeken in de buurt en het bedrijfsregister niets opleveren, wat dan? Nu dacht ik, stel dat die terecht kan bij de federatie van de sector. Ik weet niet of de staat federaties van verscheidene bedrijfstakken herkent, maar die zouden toch goed geplaatst moeten zijn om over een overzicht te beschikken van welke leden welk specifiek werk zouden kunnen verrichten voor de staat (aan de beste prijs/kwaliteit). Of als er te weinig zijn onder de leden een initiatief nemen om een nieuwe samenwerken op te zetten.</p>
<p>Meer nog, welke controle op offertes in openbare aanbestedingen is er eigenlijk? Zelfs als er aan een minimum aantal is voldaan, zou ook daar niet een vakfederatie goed geplaatst zijn om het kaf van het koren te scheiden? En misschien zelfs een extra filter op corruptie te zijn. Als ze zelf niet te correupt zijn natuurlijk... Dus hoe zou de controle op beroepsfederaties moeten gebeuren?</p>
<p>Maar ik zit waarschijnlijk maar wat uit mijn nek te kletsen, want eigenlijk ken ik daar helemaal niets van.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i135" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Opinions</a> &gt; <a href="http://yoy.be/item.asp?i339" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> &quot;.be&quot;-related</a></span><br /> <span class="date">created: 17/11/2011 23:30:10 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 17/11/2011 23:30:10</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt34*"><img src="http://yoy.be/img/cat/cat_politiek.gif" width="50" height="13" border="0" align="top" alt="politiek" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i2993</guid>
		<comments>http://yoy.be/report.asp?i2993</comments>
		<pubDate>Thu, 17 Nov 2011 22:30:10 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i2992</link>
		<title>Vet-taks? Wat dacht je van een anti-cocooning-taks?</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic42.png" width="16" height="16" border="0" align="top" /> Vet-taks? Wat dacht je van een anti-cocooning-taks?<br /><p>De vet-taks. Geen rokers in de horeca. Een strengen voedsel-inspectie. Cocooning en de verzuring van de maatschappij. Politieke desinteresse. Nog 5 miljard extra inkomsten zoeken. Al dat economisch en politiek nieuws doet rare dingen in mijn hoofd.</p>
<p>Plots dacht ik zo wat het zou doen als ze een ongunstig <span class="newwiki">BTW</span>-regime zouden instellen voor voeding voor thuis-gebruik. Niet alleen vette voeding of kant-en-klaar maaltijden, maar gewoon alle voedsel bedoeld om thuis te gebruiken. Samen met een verlaagd <span class="newwiki">BTW</span>-tarief voor de horeca zou het dan misschien wel lukken om de mensen ertoe te brengen meer buitenshuis te eten. Echte fauteuilaardappelen trekken hier misschien hun neus voor op, en denken misschien direct aan riant eten in een restaurant, maar een gewoon eethuis om de hoek is ook al goed.</p>
<p>De verhoogde vraag naar gewone maaltijden zou de plaatselijke economie ten goede komen. De werkgelegenheid. Misschien ook de volksgezondheid. Maar misschien vooral dat de mensen meer onder elkaar komen. Dat zou moeten het sociaal weefsel ten goede komen.</p>
<p>En zou het meer opbrengen voor de staat? Als het lukt om mensen meer te doen gebruik maken van het betere <span class="newwiki">BTW</span>-regime in de horeca, misschien niet, maar lijkt me helemaal niet erg. Als je ziet wat het op allemaal andere gebieden zou kunnen betekenen dan is de originele <span class="newwiki">BTW</span>-aanpassing eigenlijk maar een kleine operatie, maar die moet wel doelgericht en secuur worden uitgevoerd. En ik reken natuurlijk ook op de strenge voedselveiligheid-inspectie.</p>
<p>Maar het is allemaal maar een ideetje natuurlijk.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i135" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Opinions</a> &gt; <a href="http://yoy.be/item.asp?i339" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> &quot;.be&quot;-related</a></span><br /> <span class="date">created: 9/11/2011 20:26:40 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 9/11/2011 20:26:40</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt34*"><img src="http://yoy.be/img/cat/cat_politiek.gif" width="50" height="13" border="0" align="top" alt="politiek" /></a> <a href="http://yoy.be/log.asp?tt37*"><img src="http://yoy.be/img/cat/cat_actueel.gif" width="50" height="13" border="0" align="top" alt="actueel" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i2992</guid>
		<comments>http://yoy.be/report.asp?i2992</comments>
		<pubDate>Wed, 9 Nov 2011 19:26:39 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i2991</link>
		<title>mini-milestone: first auto-build through a cross-project include</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> mini-milestone: first auto-build through a cross-project include<br /><p>Woohoo! the first auto-build from a second project by using a cross-project include. It'll be available in the next release, but first I'll have to make sure you can't get a deadlock by re-including from the first project... and complete this demo project... and documentation...<br />
<img width="346" height="324" alt="" src="/docs/20111108xxmcpi.PNG" /></p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i108" style="white-space: nowrap;"><img src="http://yoy.be/img/ic85.png" width="16" height="16" border="0" align="top" /> freeware</a> &gt; <a href="http://yoy.be/item.asp?i1443" style="white-space: nowrap;"><img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> xxm</a></span><br /> <span class="date">created: 8/11/2011 22:39:39 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 8/11/2011 22:39:39</span>
	 <span class="date">weight: 0</span>
	<br /> <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i2991</guid>
		<comments>http://yoy.be/report.asp?i2991</comments>
		<pubDate>Tue, 8 Nov 2011 21:39:39 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i2990</link>
		<title>Liquidatiereserve</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic42.png" width="16" height="16" border="0" align="top" /> Liquidatiereserve<br /><p>Ik zit met een idee. Als een bedrijf sluit is dat jammer. Er zijn altijd gevolgen van die de mensen treffen. Soms is het een klein jong bedrijf dat niet slaagde in vooropgestelde doelen. Soms is het een grote onderneming waarvan de buitenlandse directie beslist te verhuizen naar een land met lagere lonen.</p>
<p>Stel nu dat alle bedrijven verplicht zouden zijn om een 'liquidatie-reserve' op te bouwen, met daarin een bedrag die zou moeten de kosten van een sluiting dekken. Bij kleine bedrijven is dit niet zo veel omdat het vereffenen van de bezittingen normaal nog iets kan opbrengen. Bij grote bedrijven is dit de geschatte kost van de ontslagpremies, plus de sociale opvolging achteraf, plus eventuele herbestemmingskosten van grotere bedrijventerreinen. Eventueel nog dingen, ik ben geen ekspert op dit gebied.</p>
<p>Is het vreemd dat de staat bedrijven verplicht om geld op zij te houden? Misschien. Maar als het van pas komt zal het goed zijn dat dat geld klaar staat. En geld is nooit alleen. Als de staat oplegt het binnen het land moet worden bewaard, dan neemt het nog altijd deel aan de lokale economie.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i135" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> Opinions</a> &gt; <a href="http://yoy.be/item.asp?i339" style="white-space: nowrap;"><img src="http://yoy.be/img/ic113.png" width="16" height="16" border="0" align="top" /> &quot;.be&quot;-related</a></span><br /> <span class="date">created: 2/11/2011 15:36:13 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 2/11/2011 15:37:12</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt34*"><img src="http://yoy.be/img/cat/cat_politiek.gif" width="50" height="13" border="0" align="top" alt="politiek" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i2990</guid>
		<comments>http://yoy.be/report.asp?i2990</comments>
		<pubDate>Wed, 2 Nov 2011 14:37:12 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i2981</link>
		<title>Power user trick: restart the Printer Spooler service.</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic81.png" width="16" height="16" border="0" align="top" /> Power user trick: restart the Printer Spooler service.<br /><p>Sometimes, there's still one or more jobs in the printer queue, none are deleting or cancelled or in an error state, the printer is powered on, connected, doesn't report any error also, but doesn't start printing. It's a strange situation, but just happens to happen from time to time. This power user trick comes in handy: (No guarantees: this may still not work if something else actually is causing the disruption)</p>
<ul>
    <li>Open the start menu</li>
    <li>Right-click the Computer icon or item.</li>
    <li>Select 'Manage'</li>
    <li>Open or double click 'Services and Applications'</li>
    <li>Open or double click 'Services'</li>
    <li>Locate 'Print Spooler' in the list.</li>
    <li>Right-click and do 'Stop' and then 'Start', or 'Restart' if that option is present.</li>
</ul>
<p>This breathes new live into the print job sub-system and may <strong>sometimes</strong> cause the 'hanging' jobs to resume printing.</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i62" style="white-space: nowrap;"><img src="http://yoy.be/img/ic13.png" width="16" height="16" border="0" align="top" /> www.yoy.be</a> &gt; <a href="http://yoy.be/item.asp?i36" style="white-space: nowrap;"><img src="http://yoy.be/img/ic16.png" width="16" height="16" border="0" align="top" /> users</a> &gt; <a href="http://yoy.be/item.asp?i18" style="white-space: nowrap;"><img src="http://yoy.be/img/ic22.png" width="16" height="16" border="0" align="top" /> StijnSanders</a> &gt; <a href="http://yoy.be/item.asp?i330" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> IRL</a></span><br /> <span class="date">created: 13/09/2011 0:04:51 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 13/09/2011 0:04:51</span>
	 <span class="date">weight: 0</span>
	<br /><span class="label">tokens:</span> <a href="http://yoy.be/log.asp?tt26*"><img src="http://yoy.be/img/cat/cat_computers.gif" width="50" height="13" border="0" align="top" alt="computers" /></a>  <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i2981</guid>
		<comments>http://yoy.be/report.asp?i2981</comments>
		<pubDate>Mon, 12 Sep 2011 22:04:51 +0100</pubDate>
		</item>
		<item>
		<link>http://yoy.be/item.asp?i2980</link>
		<title>Hoe noemde dat nu weer?</title>
		<description><![CDATA[
		<img src="http://yoy.be/img/ic82.png" width="16" height="16" border="0" align="top" /> Hoe noemde dat nu weer?<br /><p>Een tijd terug, sinds ik deze zag: <a href="http://xkcd.com/556/">http://xkcd.com/556/</a>&nbsp;en ik bijna dagelijks&nbsp;kan uitkijken op de <a href="http://maps.google.be/?ll=50.98152,3.816547&amp;spn=0.009267,0.034332&amp;t=h&amp;z=16&amp;vpsrc=6">windmolens tussen Melle en Wetteren</a>, moet ik zo af en toe terug denken aan iets wat ik me herinner van vroeger. Ik moet nog niet zo oud geweest zijn, en misschien zelfs te jong om te snappen waar het over ging (en daarom blijf ik denken dat het misschien de moeite is om er naar op zoek te gaan), dus het moet in de buurt van de vroege jaren 80 op de televisie zijn geweest. Het moet een soort science fiction serie zijn geweest die handelde over de bezetting van de aarde of toch een deel er van door een andere groep wezens. Mensen of buitenaardse wezens weet ik niet meer, maar ik herinner me wel iets van een driehoekige tatoeage op het hoofd. En ook van die grote machines met lange poten waarmee ze over het landschap bewogen, zeg maar een meter of 20. Het was een behoorlijk donkere serie, en misschien zelfs niet engelstalig. Als ik zo zou moeten gokken kom ik op dit <a href="http://en.wikipedia.org/wiki/Rise_of_the_Triad">http://en.wikipedia.org/wiki/Rise_of_the_Triad</a>&nbsp;maar da's een computerspel van midden de jaren 90, en heeft er dacht ik niets mee te maken, dus dat spoor loopt dood. Iemand enig idee?</p><span class="label">location:</span> <span class="locator"><a href="http://yoy.be/item.asp?i62" style="white-space: nowrap;"><img src="http://yoy.be/img/ic13.png" width="16" height="16" border="0" align="top" /> www.yoy.be</a> &gt; <a href="http://yoy.be/item.asp?i36" style="white-space: nowrap;"><img src="http://yoy.be/img/ic16.png" width="16" height="16" border="0" align="top" /> users</a> &gt; <a href="http://yoy.be/item.asp?i18" style="white-space: nowrap;"><img src="http://yoy.be/img/ic22.png" width="16" height="16" border="0" align="top" /> StijnSanders</a> &gt; <a href="http://yoy.be/item.asp?i330" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> IRL</a> &gt; <a href="http://yoy.be/item.asp?i1220" style="white-space: nowrap;"><img src="http://yoy.be/img/ic84.png" width="16" height="16" border="0" align="top" /> Nostalgia</a></span><br /> <span class="date">created: 10/09/2011 14:07:40 <a href="http://yoy.be/item.asp?i18" title="i18">&laquo;</a></span>
	 <span class="date">modified: 10/09/2011 14:07:50</span>
	 <span class="date">weight: 0</span>
	<br /> <br />]]></description>
		<guid isPermaLink="true">http://yoy.be/item.asp?i2980</guid>
		<comments>http://yoy.be/report.asp?i2980</comments>
		<pubDate>Sat, 10 Sep 2011 12:07:49 +0100</pubDate>
		</item>
		
</channel>
</rss>