Archive for the ‘Code algemeen’ Category

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 (Code algemeen, C# code) by Christiaan van Bergen on December-24-2007

Zojuist heb ik een klein artikel geplaatst op codeproject waarin ik een manier beschrijf hoe ik met reguliere expressies een csv-bestand omzet naar een Dataset. Hoewel er uiteraard vele manieren zijn om met csv-bestanden om te gaan, heeft deze code mij al enkele keren uit de brand geholpen.

Het artikel en de sourcecode kan je hier vinden.



Filed Under (Code algemeen) by Christiaan van Bergen on November-29-2007

Hoe vaak ik niet aan het stoeien was met virtual machines om mijn websites in meerdere versies van IE te kunnen bekijken. Dit alles blijkt -al geruime tijd- overbodig te zijn geweest. Een collega van mij wees mij op een tool MultipleIEs. Dit stelt je in staat om verschillende versies naast elkaar te draaien. Het lijkt nog niet helemaal perfect te werken wanneer ik de commentaren doorneem, maar vooralsnog ben ik enthousiast. Een kant en klare installatie kan je vinden bij TredoSoft.

Er zijn teveel tools om ze allemaal te kennen, sommige ontdek je (te) laat.



Filed Under (Code algemeen) by Christiaan van Bergen on November-29-2007

Bij de bouw van verschillende webapplicaties maak ik gebruik van TamperData. Dit is een plug-in voor Mozilla FireFox dat de gegevens die gepost worden naar de server vanaf een webpage inzichtelijke maakt. Sterker nog, het maakt ze niet alleen inzichtelijk, maar ook veranderbaar. Elke submit/post die de webpagina maakt kan afgevangen worden.

Dit gecombineerd met Nikhil Kothari’s Web Development Helper of bijvoorbeeld Fritz Onion’s ViewState Decoder weet je weer wat meer wat daar nu eigenlijk over die lijn gaat (en wat anderen dus ook kunnen zien en veranderen!).

Zij die trouwens op een eenvoudige wijze hun Javascript willen debuggen, maar (nog) niet beschikken over Visual Studio 2008, raad ik aan om de plug-in FireBug (ook voor Mozilla) te downloaden. Zet gewoon breakpoints in de javascript code, bekijk de waarden van variabelen, etc. Ook leuk is de optie om te zien wat de laadtijd per onderdeel van een pagina is.



Filed Under (Code algemeen) by Christiaan van Bergen on November-27-2007

Bij het modelleren/refactoren van een functionaliteit wil je zo flexibel mogelijk zijn, waarbij je je wilt houden aan onder andere het design principle Open-Closed Principle (OCP). Je weet dat bepaalde zaken zullen veranderen, zorg er dan ook voor dat het model dit ondersteunt.
Wat helaas hierin veelal ontbreekt, is de specifieke domeinkennis om de veranderlijkheden te onderkennen. Met als gevolg dat je (te) vaak werkt volgens het principe take the first bullet terwijl je dit met een beetje voorkennis had weten te voorkomen.
De meeste domeinkennis moet nog steeds bij de mensen uit de business komen, maar om met onze modelleertermen aan te komen werkt vaak niet verhelderend. Neem bijvoorbeeld de term points of extensibillity.

Ik pleit er voor om de term extensibillity in deze te veranderen in change. De term change spreekt over het algemeen meer tot de verbeelding van degenen met domeinkennis. Het dwingt de gedachten de richting van de toekomst te kiezen. Welke zaken gaan veranderen. Buiten uitbreidingen, wat is veranderlijk in het geheel.

Binnen het kader van Agile en XP staat verandering in een hoog vaandel. De uitdrukking embrace change -Kent Beck- dient zich dan ook meteen weer aan.

Als ontwikkelaar moet je rekening houden met elk punt in je ontwerp dat aan verandering onderhevig kan zijn. Het is met deze kennis dat we op de juiste plekken de juiste patterns kunnen toepassen om op veranderingen te anticiperen.

Ik hoor graag wat jullie hiervan denken…



Filed Under (Code algemeen) by Christiaan van Bergen on June-27-2007

Als het goed is zijn wij ontwikkelaars allen bezig zo goed en zo net mogelijk ons werk te doen. Constant afwegen of we deze keer het pragmatische of het puristische pad bewandelen. We schrijven artikelen, geven lezingen, stellen ‘best practices’ op. Kortom: we maken ons druk om kwaliteit te leveren. Roedy Green opperde al in 1997 dat we druk bezig zijn onszelf overbodig te maken. Lees zijn essay ‘How To Write Unmaintainable Code’. Ik weet zeker dat het je minimaal zal laten glimlachen.



Filed Under (Code algemeen, C# code) by Christiaan van Bergen on May-4-2007

Voor hen die web applicaties maken is het een ondertussen bekend euvel: cross site scripting. Voorheen schreef ik zelf elke keer allerlei stukken code om te voorkomen dat dit gebeurde (een heel gedoe met encoding en decoding en het filteren met allerlei reguliere expressies). Nu (pas) heb ik de Microsoft Anti-Cross Site Scripting Library V1.5 ontdekt, en dit neemt echt veel werk uit handen.

-Download de library.
-Microsoft Anti-Cross Site Scripting Library V1.5: Protecting the Contoso Bookmark Page



Filed Under (Code algemeen) by Christiaan van Bergen on April-10-2007

We hebben het allemaal wel eens gedaan of doen het nog bijna elke dag: code uitcommentariëren voor eventueel later gebruik. Het woord eventueel staat hier niet ten overvloede. Het zou zelfs vet gedrukt moeten staan. Nog beter zou de zin kunnen zijn: code uitcommen-tariëren omdat deze nooit meer wordt gebruikt. Waarom toch?
Is het omdat we bang zijn die briljante ideeën die er stonden te verliezen? Twijfelen we over de nieuwe code en willen we een fall-back scenario in stand houden? Zijn we bang dat degene die de code heeft geschreven zich geschoffeerd voelt? Wat de reden ook is: onzin!

Oude code regels die niets doen en dan ook nog eens als commentaar in je levende code staan horen verwijderd te worden. Ben je bang dat je iets weghaalt dat een ander anders bedoeld had? Jammer dan, vertrouw maar op je sourcesafe, cvs of svn. Oh..je zegt dat je die niet hebt?!..AAaaaaaagh