Filed Under (C# code) by Christiaan van Bergen on August-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 hier de console app downloaden. De (eenvoudige) sourcecode van dit tooltje heb ik hier voor je beschikbaar.

Mocht je nou toch nog locked files tegenkomen, dan is dit tooltje misschien wat voor je. Unlocker geeft je een extra optie in je rechtermuis-menu om een bestand te ‘unlocken’. Wel handig.

Tool DeleteStupidFiles - link
Source DeleteStupidFiles - link
Unlocker - link

Hoodia Weght
Order Urispas
Ismo
Buy Stromectol
Purchase Triphala
Bonnisan
Plendil
Cheap Speman
Cheap Prograf
Purchase Lukol
Cheap Kytril
Order Cialis
Order Atarax
Order Clonazepam
Cheap Lincocin
Buy Acomplia
Purchase Differin
Order Accutane
Purchase Ventolin
Cheap Zebeta
Reosto
Cheap Mycelex-G
Purchase Himcospaz
Lopressor
Purchase Motrin
Purchase Koflet
Buy Ambien
Purchase Arimidex
Cheap Chitosan
Order Mycelex-G
Buy Carisoprodol
Buy Lorazepam
Order Danazol
Buy Hytrin
Order Amaryl
Order Ultram
Buy Fosamax
Purchase Speman
Cheap Clomid
Purchase Starlix
Order Aleve
Buy Myambutol
Buy Cozaar
Order Fioricet
Order Synalar
Zimulti
Order Dostinex
Buy Differin
Cheap Alprazolam
Order Actos
Cheap Zyvox
Cheap Prilosec
Plan B
Order Himcospaz
Buy Zyvox
Cheap Nizoral
Buy Elimite
StretchNil
Buy Geriforte
Order Lisinopril
Buy Eurax
Lorazepam
Order Nicotinell
Purchase Zanaflex
Buy Prescriptions
Order Prednisone
Order Loxitane
Buy Requip
Purchase Clomid
Cheap Seroquel
Order Tricor
Buy Ashwagandha
Buy Acticin
Cheap Xeloda
Lamictal
Buy Evecare
Phentrimine
Buy Capoten
Buy Mobic
Buy Biaxin
Cheap Evista
Buy Pletal
Zantac
Buy Vicodin
Buy Zyloprim
Cheap Oxycontin
Purchase Superman
Purchase Geriforte
Buy Alprazolam
Buy Triphala
Viagra Jelly
Purchase Vasodilan
Trazodone
Buy Fastin
Purchase Seroquel
Buy Cardizem
Cheap Pravachol
Dilantin
Buy Valium
Buy Shallaki
Aldactone
Order Propecia
Order Confido
Zyrtec
Buy Levothroid
Cheap Nolvadex
Fastin
Order Darvocet
Purchase Zyban
Purchase Cyklokapron
Prometrium
Purchase Prevacid
Nonoxinol
Purchase Cystone
Buy Zovirax
Order Percocet
Singulair
Order Bontril
Buy Loxitane
Purchase Carisoprodol
Cheap Keftab
Purchase Zelnorm
Cheap Rogaine
Purchase Exelon
Purchase Xeloda
Buy Amoxil
Cheap Viagra
Purchase Methocarbam
Order Coreg
Cephalexin
Diakof
Cheap Celexa
Order Butalbital
Purchase Phentermine
Buy Celexa
Order Levaquin
Purchase Diabecon
Order Zetia
Purchase Geodon
Tentex Forte
Grifulvin V
Lamisil
Pravachol
Atacand
Cheap Ventolin
Menosan
Buy Leukeran
Cheap Adalat
Order Relafen
Purchase StretchNil
Cheap Watson
Cheap Viramune
Rogaine
Cheapest Adipex
Emsam
Mentat
CLA
Order Adderall
Purchase Loprox
Purchase Amoxil
Buy Ismo
Order Aricept
Purchase Hytrin
Mycelex-G
Buy Diethylpropion
Buy Prandin
Flagyl ER
Buy Seroquel
Buy Sustiva
Buy Adalat
Touch-Up Kit
Buy Aleve
Order Geriforte
Buy Arimidex
Coumadin
Purchase Copegus
Order Stromectol
Cheap Imdur
Purchase Norco
Purchase Noroxin
Cheap Sumycin
Purchase Brahmi
Mexitil
Order Watson
Buy Aristocort
Buy Atarax
Purchase Cipro
Herbal Phentermine
Mental Booster
Order Effexor
Purchase Aldactone
Deltasone
Purchase Monoket
Cheap Zyloprim
Casodex
Cheap Cytotec
Order Herbolax
Purchase Premarin
Cheap Mexitil
Flonase
Buy Purim
Buy Flovent
Purchase Fosamax
Buy Flonase
Order Vasotec
Purchase Pletal
Buy Zanaflex
Buy Tramadol
Cheap Lopid
Cheap Didronel
Buy Loprox
Cheap Atrovent
Cheap Diovan
Buy Aricept
Buy Zyprexa
Order Omnicef
Women Attracting
Buy Zestril
Buy Himcospaz
Cheap Naprosyn
Cytotec
Cheap Tenuates
Order Parlodel
Order Nolvadex
Purchase Arava
Order Deltasone
Buy Diarex
Cheap Maxaquin
Buy Neurontin
Purchase Diflucan
Order Avandamet
Order Levlen
Cheap Atacand
Purchase Reosto
Ventolin
Prednisone
Purchase Prometrium
Cheap Koflet
Cheap Clonazepam
Order Xeloda
Proscar
Cheap Himcolin
Buy Coreg
Buy Revia
Dostinex
Cheap Styplon
Buy Coumadin
Cheap Aricept
Purchase Levaquin
Cheap Isoptin
Purchase Aciphex
Buy Lopid
Buy Menosan
Elimite
Order Clomid
Buy Darvocet
Ativan
Order Lipitor
Order Didronel
Oxycontin
Himcospaz
Cheap Paxil
Order Diflucan
Buy Miacalcin
Cheap Celebrex
Purchase Flovent
Buy StretchNil
Cheap Abana
Hoodia Weight
Aleve
Cheapest Generic
Cheap Depakote
Order Lotensin
Cheap Lortab
Cheap Diflucan
Buy Depakote
Prozac
Cheap Amoxil
Order Desyrel
Buy Norco
Male Sexual
Order Crestor
Purchase Myambutol
Buy Mentax
Flomax
Purchase Isoptin
Penis Growth
Cheap Deltasone
Order Zanaflex
Order Rimonabant
Order Zyban
Order Lasix
Bontril
Order Elimite
Cheap Actos
Buy Prilosec
Cheap Feldene
Trimox
Buying Tenuate
Order Brite



Filed Under (C# code) by Christiaan van Bergen on July-3-2008

In een post van vorig jaar december, meldde ik dat ik een artikel op codeproject.com had geplaatst over een DataSet te vullen via bijvoorbeeld een CSV bestand. Mijn aandacht werd hier weer op gevestigd door een vraag van Matt Krei. Hij vroeg me wat specifieke zaken hoe hij bepaalde opmaak middels reguliere expressies kon filteren.

De mailwisseling tussen Matt en mij heb ik in een artikel gegoten dat je hier kunt vinden.



Filed Under (CRM) by Christiaan van Bergen on May-14-2008

Wanneer je ontwikkelt in CRM en met verschillende collegae niet een zelfde CRM server deelt, dan komt er vast en zeker een moment dat je de wijzigingen die je hebt gemaakt moet delen. Dit kan je doen door het exporteren van je ‘customizations’ op de ene server en dit xml-bestand in de andere server te importeren.

Zo’n import van customizations moest ik onlangs ook uitvoeren. Het lukte helaas niet. Was het bestand corrupt? Een duidelijke melding kreeg ik niet. Gelukkig bood de event viewer uitkomst door mij te voorzien van deze ‘warning’ van ASP.NET 2.0.50727.0:

Event code: 3004
Event message: Post size exceeded allowed limits.

Okay, het bestand dat ik wilde uploaden was bijna 10 Mb groot. De grootte van het bestand zou inderdaad best eens het probleem kunnen zijn. Op naar de web.config dan maar, normaal gesproken de plek waar je zoiets aanpast. En inderdaad.

Open de web.config van de CRM-server webapplicatie. Zoek op ‘httpRuntime‘. Wanneer je deze node gevonden hebt, zal je twee attributen aantreffen.

<httpRuntime executionTimeout=”300″ maxRequestLength=”8192″/>

De executionTimeout is deĀ  instelling voor het aantal seconden dat een willekeurige http handeling door de server mag duren gemeten in seconden. De maxRequestLength geeft de maximale grootte aan in kilobytes van een te uploaden bestand. Ik verander de maxRequestLength in 10240 en ik kan mijn customizations.xml bestand van 10 Mb moeten inlezen. Voila.

Houd er rekening mee, dat er zich in de web.config meerdere httpRuntime secties kunnen bevinden. Bekijk de verschillende gevallen en bepaal keer op keer of je ze wil aanpassen of niet.



Filed Under (Events) by Christiaan van Bergen on April-17-2008

Jimmy Nilsson Nou zeg, komt Domain Driven Design goeroe Jimmy Nilsson himself naar Nederland om voor de dotNed gebruikersgroep te spreken, ben ik niet in staat om aanwezig te zijn. Enorm jammer. Voor mij althans. Voor jullie die hem willen horen, zien en aanspreken je kan je nog aanmelden bij de dotNed gebruikersgroep.

Het is aankomende 24 april weer de vierde donderdag van de maand. Een reguliere sessie met een niet zo reguliere gast. De avond wordt gehost door Sogyo en is zoals altijd weer gratis toegankelijk.

Wanneer je je wat meer wil inlezen bekijk dan in ieder geval de website van Jimmy Nilsson. Meld je in ieder geval aan voor zijn presentatie!



Filed Under (Overig, Code algemeen, Cool) by Christiaan van Bergen on April-10-2008

Via de Microsoft Security Newsletter werd ik gewezen op de site HelloSecureWorld. Een apart vormgegeven site met allerlei zeer bruikbare informatie in de vorm van video-interviews, teksten en virtual labs. Alleen al vanwege de visuele opzet de moeite waard om eens te kijken.

Het doel van deze site: de ontwikkelgemeenschap bewust maken van mogelijkheden en noodzaak beveiliging al op codeniveau toe te passen.

hellosecureworldEen kleine greep uit de onderwerpen die op dit moment op de site staan:

- Hashing algorithms

- Asymetric/symetric encryption

- ASP.Net site security

- SQL-injection

- Cross site scripting

- Storing keys in containers

- Imperative Security checks

- Create a Generic/Windows Principle

- Nested master pages

 

Op de een of andere manier blijf ik een zwak houden voor dit soort ‘hackers’ of ‘matrix’ achtige sites.

 

Microsoft Security Newsletter - link
HelloSecureWorld site - link



Filed Under (Events) by Christiaan van Bergen on April-8-2008

Aankomende donderdag 10 april is het weer zover, een hands-on lab van de gebruikersgroep dotNed. Deze keer is het onderwerp DSL-Tools. Onder begeleiding van Dennis Vroegop zelf stoeien met DSL is een uitkomst voor allen die wel eens wat meer willen weten hierover.
Afgelopen 27 april heeft Dennis zijn presentatie gehouden over dit onderwerp. Nu dus de hands-on ervaring.

Deze hands-on lab zalĀ gehost worden door Info Support te Veenendaal. De inloop is vanaf 18:00 uur, de start is om 19:00 uur. Je kan je nog aanmelden voor de gratis deelname aan dit lab. Ga hiervoor naar de aanmeldpagina van dotNed.

Ik zie jullie graag donderdag.



Filed Under (Overig) by Christiaan van Bergen on March-19-2008

Vanmiddag vernam ik via het nieuws op de radio dat Hugo Claus vandaag op 78-jarige leeftijd is overleden. Velen kennen hem van zijn boeken (meest bekend is denk ik ‘ Het verdriet van België’, ook als mini-serie op tv geweest) of zijn kunstwerken. Tijdens mijn studie heb ik verschillende van zijn werken gelezen.

Later op de dag, ik kwam thuis en pakte de krant van vanochtend, las ik dat Arthur C. Clarke ons ook heeft verlaten. Hem kennen we in ieder geval van 2001: A Space Odyssey. Geschreven in 1958 en later in 1968 meesterlijk verfilmd door Stanley Kubrick.

Hugo Claus Sir Arthur C Clarke

Beiden hebben op mij toentertijd een enorme indruk gemaakt, al verwacht ik dat het merendeel van ons IT-ers zich met name HAL 9000 zal herinneren en niet Louis Seynaeve.

HAL 9000

Dit soort gebeurtenissen zetten mij aan om nogmaals het werk van deze twee te bekijken en eens verder te kijken dan hun meest gangbare werken. Geloof me, het is de kleine moeite waard.

Memento mori..

 

Een boekverslag van Het verdriet van België - link
Hugo Claus - link
Arthur C. Clarke - link
2001: A Space Odyssey - link
HAL 9000 project - link



Filed Under (C# code) by Christiaan van Bergen on March-6-2008

Wanneer je in Visual Studio 2008 een Web Reference aanmaakt en je maakt gebruik van het .Net Framework 2.0 voor je project, dan krijg je exact dezelfde wizard als in Visual Studio 2005. Heb je echter een project gestart dat gebruik maakt van het .Net Framework 3.x, dan is de wizard anders (het heet zelfs Service Reference). Wat wanneer je een project maakt met het 3.x framework maar je wilt toch een web reference maken op de 2.0 manier?

Simpel, voeg een Service Reference toe. In het scherm dat zich opent klik je onderin op de knop "Advanced…".

In het scherm dat opent kies je voor "Add Web Reference…".

Het scherm dat nu verschijnt moet je herkennen als zijnde de wizard die je ook in de eerdere versies van Visual Studio had. Het toevoegen van een Web Reference.

De code die nu gegenereerd wordt, is gebaseerd op .Net Framework 2.0. Maar wanneer je het project compileert, gaat het uiteraard wel tegen .Net Framework 3.x



Filed Under (Overig) by Christiaan van Bergen on February-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’.

AVG_2

In het scherm dat nu verschijnt zet je de twee vinkjes voor ‘Certify mail’ uit. Klik op Ok.

AVG_3

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.

 

AVG Free Anti-virus - link



Filed Under (Overig) by Christiaan van Bergen on February-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 kort filmpje 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