Filed Under (Overig) by Christiaan van Bergen on January-26-2008
Regelmatig krijg ik email van mensen die een geweldige keuze hebben gemaakt in het type virusscanner. Ik weet namelijk precies welke virusscanner ze hebben omdat het onderaan hun email als signature is toegevoegd. Signatures die elke keer vermeerderen wanneer ze op een thread antwoorden.
Buiten het feit dat ik het niet mooi vind -want wat maakt dat nou uit- is het niet erg handig voor de malafide emailontvangers. Stel, ik ben een niet zo frisse jongen en ik zie dat iemand een virusscanner heeft van het type X met een update van datum drie-weken-terug. Het is dan voor mij makkelijk die persoon een bericht te sturen met een ‘grap’ die niet door zijn scanner wordt gezien. Wellicht wat ver gezocht, maar toch. Informatie die je niet wil prijsgeven denk ik.
De toegevoegde waarde voor mij als ontvanger is trouwens gering in de boodschap dat het bericht gescand is door scanner X. Wie zegt mij dat dit waar is. Ik vertrouw wel op mijn eigen scanner. Daar heb ik anderen niet voor nodig.
Goed, de boodschap is simpel. Zet die meldingen uit! Alsjeblieft. Laat mij een voorzet geven door je uit te leggen hoe je dit in AVG doet.
Dubbelklik op het AVG icoon in je tray. Het volgende scherm opent zich. Selecteer hier de E-mail Scanner en klik op properties.
In het volgende scherm klik je op ‘configure’.
In het scherm dat nu verschijnt zet je de twee vinkjes voor ‘Certify mail’ uit. Klik op Ok.
Klik weer op Ok, en sluit het AVG Control Center. Et voila. Je bent verlost van de meldingen.
Andere virusscanners hebben uiteraard andere wijzen om deze functionaliteit uit te bannen. Laat ons dit doen. Alsjeblieft.
Filed Under (Overig) by Christiaan van Bergen on January-25-2008
Een tijd terug was er een incident op de werkvloer met betrekking tot het gestolen zijn van laptops van verschillende medewerkers. Uiteraard zullen de laptops voor hun straatwaarde zijn gestolen en niet vanwege hun content, het risico voor data-misbruik is klein. Management was toch in rep en roer omdat er nu een potentieel gevaar was dat sourcecode op straat was beland. Dit was echter niet aan de orde daar de harde schijven versleuteld waren, zo werd gezegd. Maar is dit wel zo?
Windows Vista heeft een mooie schijfencryptie ingebouwd, BitLocker genaamd. Zelf gebruik ik op mijn WinXP machine True Crypt. Zo op het eerste gezicht stel je je data hiermee veilig -niet tegen verlies uiteraard. De methode die gehanteerd wordt is het on-the-fly en- en decrypten van data middels een sleutel. Deze sleutel bevindt zich in het RAM-geheugen en daar ligt nu net het gevoelige punt.
Enkele studenten van Princeton University tonen aan dat het relatief eenvoudig is de sleutel uit het RAM geheugen te trekken. In een zetten zij uiteen hoe ze dit doen. Ja, je hebt wel fysieke toegang tot de machine nodig. Laat dit nu net het geval zijn bij diefstal.
Ik weet nog niet of dit een impact gaat hebben hoe ik met mijn schijfencryptie zal omgaan. Het erover nadenken of ik het moet veranderen en hoe ik dat dan zal doen is in ieder geval wel in gang gezet. Wil ik dit eigenlijk wel? Is de data op mijn machine zo belangrijk voor anderen dat zij daarom mijn laptop zouden stelen. Waarschijnlijk zoals bij de rest van ons: de data is voor mij van belang. Laat ik zorgen dat ik goede backups maak. Misschine is SkyDrive van Windows Live een optie? Nee, niet voor het echte werk.
BitLocker - link TrueCrypt - link Lest We Rember: Cold Boot Attacks on Encryption Keys - link SkyDrive - link
Gisteravond vertelde ik bij de maandelijkse bijeenkomst van de dotNed gebruikersgroep over mijn ervaringen met Script# en haalde ik het inmiddels veel besproken Volta aan. Het was een prettige bijeenkomst waarbij zeker de mooie locatie een grote rol heeft gespeeld. InterAccess heeft als host wederom een erg goede indruk achtergelaten.
Ondertussen is inderdaad de aanzet gemaakt voor het schrijven van een codeproject.com artikel waarin Robertjan Tuit, Jasper Gilhuis en ik zullen beschrijven hoe je een projectstructuur zo opzet dat je op een eenvoudige wijze webcontrols kan schrijven met behulp van Script#. Matthijs Krempel (InterAccess) bracht ons op het idee om deze projectaanpak te plaatsen in een software factory en vervolgens te plaatsen op codeplex. Briljant plan! Eens zien hoe snel we hieraan toe komen.
Een ander project dat wij op Codeplex willen plaatsen, is de Script# compatibiliteitslibrary voor de Ajax Control Toolkit. Meer hierover zodra dit beschikbaar is en uiteraard alvast de uitnodiging om daaraan te zijner tijd mee te bouwen.
Zoals beloofd plaats ik mijn presentatie en gebruikte demos online en geef ik nog een opsomming van resources die van belang zijn.
Wanneer ik meer resources tegenkom, zelf maak of van jou te horen krijg, zal ik ze toevoegen aan de lijst welke je het eenvoudigst kan bekijken op mijn Links pagina.
Filed Under (C# code) by Christiaan van Bergen on January-22-2008
Zoals velen natuurlijk al weten kan je xml-data middels een stylesheet weergeven op een door jou gewenste manier. Je kan in de zgn. xslt gebruik maken van xpath queries en diverse transformaties. Maar op het moment dat je je niet zo’n held voelt op dit gebied dan moet het toch prettig zijn te weten dat je kan terugvallen op je vertrouwde C# (of andere .Net taal).
Voordat je je eigen code vanuit xslt kan aanroepen moet je uiteraard wel wat voorbereidend werk verrichten.
Laten we eens kijken naar onderstaande code. Deze method Transform krijgt een string die de xml data en een string die de stylesheet bevat. Deze twee worden samengevoegd en het uiteindelijke resultaat wordt als string teruggegeven.
public static string Transform(string xmlData, string xslStylesheet)
{
TextReader textreaderxml - new StringReader(xmlData);
XmlTextReader xmlreaderxml = new XmlTextReader(textreaderxml);
TextReader textreaderxsl = new StringReader(xslStylesheet);
XmlTextReader xmlreaderxsl = new XmlTextReader(textreaderxsl);
XPathDocument xpathdocument = new XPathDocument(xmlreaderxml);
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xmlreaderxsl);
StringBuilder sb = new StringBuilder();
TextWriter tw = new StringWriter(sb);
XsltArgumentList args = new XsltArgumentList();
args.AddExtensionObject(“http://voorbeeld.xslt.nl/calculatie”,
new XsltCalculatie());
xslt.Transform(xpathdocument, args, tw);
return sb.ToString();
}
De uiteindelijke transformatie van de xml volgens de stylesheet gebeurt in regel 18. Maar daar voor (regel 4) wordt een verwijzing gemaakt naar http://voorbeeld.xslt.nl/calculatie. Dit is een utility class geschreven in C# die de functie Round bevat. (Toegegeven, dit is natuurlijk niet spannend)
public Decimal Round(Decimal a, int b){ return Math.Round(a, b);}
Deze C# code wordt in regel 17(-18) in de Transform method toegevoegd aan de stylesheet als zijnde de plek waar gekeken moet worden voor elke verwijzing naar http://voorbeeld.xslt.nl/calculatie (ofwel Local)
De uiteindelijke output van de method Transform en het gewenste resultaat:
Filed Under (Overig) by Christiaan van Bergen on January-19-2008
Vaak hoor ik mensen zeggen dat zij hun notebook als het gereedschap zien van de developer. Deze opmerking wordt vaak gevolgd door iets van “goed gereedschap is het halve werk“. Met dit laatste beogen ze waarschijnlijk een geldig excuus te hebben gegeven waarom ze de nieuwste, de snelste, de gaafste, de coolste, de prijzigste machine hebben gekocht.
Er is niets mis met het willen aanschaffen van een heel goed notebook. Maar geef dan wel de juiste reden op: je vindt het leuk! Prima! Doen.
Wanneer we de aannemelijke vergelijking met gereedschap wat verder uitdiepen echter, kom ik tot de conclusie dat dit niet helemaal opgaat. In het geval van gereedschap praten we over een uitontwikkeld product dat zich onderscheidt in zijn eigen kwaliteit -qua materiaal of vormgeving-. Neem een hamer. Nee, neem er twee. Eén goedkoop de ander prijziger maar kwalitatief beter. Over drie jaar is de goedkope hamer wellicht volledig verroest of misschien is de steel gebroken, terwijl je met de ander nog vrolijk verder timmert. Kijk, hier gaat de vergelijking met een notebook dus al meteen niet meer op.
Een notebook is een nog steeds evoluerend product. Een product met veranderlijke specificaties, nog niet uitontwikkeld. Zoals ik op de pagina ‘mijn config’ ook zeg: je hebt niet per se het beste van het beste nodig. Zeker wanneer je mee wil blijven draaien kan je economisch gezien beter volstaan met een model dat net niet de top is, maar je wel in staat stelt om -zeg elk jaar- een andere aan te schaffen. Reken het zelf eens uit….
Filed Under (Cool) by Christiaan van Bergen on January-18-2008
Er zijn verschillende manieren om andere personen op je pc mee te laten kijken, denk aan: LiveMeeting, VNC en Remote Desktop. Scott Hanselman gaf de tip om Microsoft Sharedview eens te proberen. Deze nieuwe toepassing (Beta2) van Microsoft toont veel toepassings-mogelijkheden.
Met SharedView heb je de mogelijkheid om tot 15 personen tegelijkertijd een applicatie of je gehele desktop te delen. De host is de enige die wijzigingen kan aanbrengen, de clients zijn alleen in staat om de muis over het scherm te bewegen en muisklikken te tonen. Het grote voordeel bij een groot aantal meekijkers is dat de naam van de persoon onder de muiscursor is te zien.
Wanneer iemand van de meekijkers een wijziging wil aanbrengen, in bijvoorbeeld een .cs bestand, dan kan deze persoon de ‘control’ overnemen en de wijziging aabrengen.
Delen van bestanden via SharedView is ook mogelijk middels de functie ‘handouts’. Een host of een gebruiker is in staat een bestand (handout) te uploaden welke de anderen kunnen downloaden. Mijn ervaring is dat de upload niet al te snel gaat, de download echter heeft een acceptabele snelheid.
Microsoft SharedView integreert uiteraard met de bestaande Office producten. Zo kan je clients uitnodigen via bijvoorbeeld Messenger en kan je wijzigingen in bijvoorbeeld een Word document eenvoudig bijhouden middels ‘track changes’ -de naam en timestamp wordt in het worddocument opgeslagen.
Een manier om direct met elkaar te communiceren is de integratie met Messenger, niet voor niets moet elke participant een LiveID hebben. Helaas is er -nog- geen ondersteuning voor audio.
Met een kleine installbase en firewall omzeilend -maakt gebruik van een hosted server- is dit een ideale manier om bijvoorbeeld je vakgenoten eens iets uit te leggen hoe je iets voor elkaar krijgt in Visual Studio 2008 of wat dan ook… de mogelijkheden zijn er. Eens kijken of we dit kunnen gaan gebruiken voor een online versie van de dotNed gebruikersgroep hands-on labs.
Scott Hanselman - link Microsoft SharedView Beta - link
Filed Under (Events, Script#, Volta) by Christiaan van Bergen on January-17-2008
Aankomende 24 januari zal ik bij de dotNed gebruikersgroep het hebben over Script# en Volta. Ik zal vertellen over Script#, wat het is en wat je er mee kan doen. Dit aan de hand van een aantal voorbeelden uit de praktijk. Het experiment Volta zal ik aansnijden en de mogelijkheden van het scheiden van de tiers bespreken met het publiek. Ik hoop dat ik samen met het publiek een inschatting kan maken of Volta zal doorbreken als mainstream toepassing?
De laatste keer dat ik het over deze onderwerpen had -afgelopen SDE- kreeg ik van iemand de vraag wat nu de correlatie is tussen Script# en Volta. Welnu, Volta vertaald IL-code naar Javascript en verzorgt op die manier de mogelijkheid om backendcode op een eenvoudige wijze naar de frontend te brengen. Maar Volta kan meer dan dat.
Maar nog even in het kort: Script# is een compiler waarmee je C# omzet in Javascript. Volta is een toolset die je in staat stelt om met native .net code een web-clientapplicatie neer te zetten waarbij je later pas hoeft te bepalen wat op welke tier wordt uitgevoerd.
De bijeenkomst, zoals altijd op de vierde donderdag van de maand, kan je gratis bijwonen nadat je je hebt aangemeld op de site van de dotNed gebruikersgroep.
Filed Under (Cool) by Christiaan van Bergen on January-15-2008
Goed, de WIImote is alweer uitverkocht. Dit wispelturige gedrag van de verkopende partijen zullen we waarschijnlijk de komende tijd nog wel vaker tegenkomen. Houd de sites in de gaten.
Velen zijn enthousiast geworden van de demonstraties van Johnny Lee met zijn WIImote. Uiteraard ben ik zelf ook aangestoken met WII-mania. Nu ben ik zelf niet zo’n held in het solderen en prutsen met kleine dingen. Ik was dan ook blij dat je bij Conrad.nl een compleet IR Board kan kopen dat je direct kan inzetten in je experimenten. Getoonde board heeft echter niet zoveel lichtsterkte. Wanneer je meer (infrarood)licht wilt hebben, gebruik dan een kant en klare infraroodstraler. De prijs die je betaald wordt uiteraard meteen een stuk hoger, maar dan heb je ook wat.
Voor het IR Board betaal je 10,41 euro (zelf assembleren kost maar een fractie minder) en voor de straler 51,50 euro. Wellicht wanneer je wat verder zoekt kom je goedkopere opties tegen. (Laat het me dan weten!)
Wanneer je head-tracking wilt gebruiken, waarom niet het IR Board of de straler gebruiken samen met wat reflecterende tape op je montuur, in plaats van het plaatsen van ir-leds op je montuur. Let dan wel op dat je niet te reflecterende kleding aan hebt of spiegeling van de bril ondervindt, dit zou het juist tracken goed in de weg kunnen zitten.
De software van Johnny Lee’s demos vind je trouwens op wiimoteproject.
Overigens, het gebruiken van een aansteker als infraroodbron werkt wel erg grof als pointing device.
Filed Under (C# code) by Christiaan van Bergen on January-14-2008
Zo af en toe ruim ik mijn harde schijf eens op. Verplaats wat bestanden in mappen met een wat meer toepasselijke naam, wis wat rommel, defragmenteer hier en daar wat. Je kent het wel. Wat gebeurt er echter wel eens, ben je net lekker bezig, kan je sommige bestanden niet verwijderen omdat ze gelocked zijn door een bepaald proces of erger nog, de bestandsnaam is van dien aard dat je het bestand niet kan verwijderen. Deze laatste noem ik voor het gemak maar ’stupid files’.
Wat blijkt nu, in Windows verkenner kan je bestanden niet verwijderen omdat ze karakters bevatten die niet mogen of de naam is simpelweg te lang. De manier om deze bestanden alsnog te verwijderen is gebruik te maken van de oude 8.3 notatie (je kent het wel NHJ_87~1.TXT bijvoorbeeld). Om een 8.3 notatie te zien, kan je het commando dir /x gebruiken. Vervolgens gebruik je het command del <file> om het bestand te verwijderen.
Wel jammer dat er vaak zoveel bestanden staan dat het een tijdrovende taak wordt om dit bestand voor bestand uit te voeren. Tja, dan maar een klein proggie schrijven die dit voor je doet.
Een kleine console application met daarin alle bestanden op te sommen moet al voldoende zijn, ware het niet dat .Net niet het 8.3 filename formaat ondersteunt. Hiervoor moet je een dllImport uitvoeren op de kernel32.dll.
[DllImport("kernel32.dll")]
static extern int GetShortPathName(string longPath, StringBuilder buffer, int bufferSize);
...
StringBuilder buffer = new StringBuilder(256);
GetShortPathName(file, buffer, buffer.Capacity);
string shortfilename = buffer.ToString();
Om direct aan de slag te gaan met het deleten van die stupid files, kan je . De (eenvoudige) sourcecode van dit tooltje heb ik hier voor je beschikbaar.
Mocht je nou toch nog locked files tegenkomen, dan is misschien wat voor je. geeft je een extra optie in je rechtermuis-menu om een bestand te ‘unlocken’. Wel handig.
Filed Under (Cool) by Christiaan van Bergen on January-9-2008
Er zijn weer WIImotes op voorraad. Check www.consoleshop.nl. Bestel ze nu, en speel mee met Johnny Chung Lee.
Vergeet niet dat er voor connectie met de WIImote en je pc een bluetooth verbinding moet zijn. Let echter op, niet alle bluetooth devices blijken goed te werken. Een overzicht van werkende en niet werkende devices is dan ook geen overbodige luxe.