MIjn huis is opgeleverd!

Door Luuk1983 op dinsdag 21 april 2009 09:38 - Reacties (18)
Categorie: Het huis, Views: 6.030

Sommige wisten het misschien al, maar ik ben de de afgelopen (ruim) 2 jaar aan het wachten tot mijn nieuwbouwhuis in Wijchen, vlakbij Nijmegen, gereed zou komen. Afgelopen woensdag 15 April was het eindelijk zo ver!

Ik wilde eigenlijk al eerder een blog schrijven net na de oplevering, maar ja, je kent het wel: het is dan meteen even hectisch en druk. Ik heb nu ook nog geen foto's bij de hand. Die staan nog ergens op het fototoestel en die ligt bij mijn vriendin. Beschouw deze post als korte intro van een paar post over het huis en wat ik zoal doe en gedaan heb. Misschien dat ik mensen nog tips kan geven, of misschien dat jullie nog tips voor mij hebben.

Het huis ziet er van buiten zo uit op het ontwerp van de wijk:
Ontwerp huis
Op de begane grond is een grote garage met een uitbouw, op de eerste verdieping is de woonkamer met keuken, op de tweede verdieping is de badkamer en twee slaapkamers.

Wat is er tot nu toe gedaan?
- De garagewanden zijn gelatexed
- De garagevloer is met betonverf geverfd, maar moet nog een keer
- De trapleuningen zijn geschuurd
- Alle muren, behalve in de garage zijn gespoten door een professionele spuiter.

En natuurlijk hoort daar een hoop werk omheen, zoals het verwijderen van alle stopcontacten en lichtschakelaars en radiatoren voordat er gespoten kon worden en het schoon en vlak maken van de muren en vloer van de garage. Als ik zie wat er gedaan is in 6 dagen, dan ben ik behoorlijk tevreden.

Ik zal binnenkort wat uitgebreider bij alles stil staan en wat foto's plaatsen!

Waarde van een ingevuld wachtwoordveld achterhalen.

Door Luuk1983 op maandag 20 april 2009 10:32 - Reacties (21)
Categorie: Programmeren, Views: 11.012

Vele kennen het vast wel: je hebt ooit je gebruikersnaam en wachtwoord voor dat ene forum of dat ene e-mail account wat je ooit even snel aangemaakt hebt ingevuld, en deze login gegevens door je browser laten onthouden of het vakje 'login gegevens onthouden' aangevinkt. Alleen nou weet je niet meer wat het betreffende wachtwoord is. Frustrerend is het wel: het wachtwoord staat al ingevuld, maar je kan deze uiteraard niet lezen.

Toch is het vrij makkelijk om de waarde van dit veld uit te lezen. Dit kan je doen met javascript. Ga naar een pagina met een (ingevuld) wachtwoordveld en kopieer en plak onderstaande code in de adreswerkbalk van je browser:


JavaScript:
1
javascript:(function(){var s,F,j,f,i; s = ""; F = document.forms; for(j=0; j<F.length; ++j) { f = F[j]; for (i=0; i<f.length; ++i) { if (f[i].type.toLowerCase() == "password") s += f[i].value + "\n"; } } if (s) alert("Passwords in forms on this page:\n\n" + s); else alert("There are no passwords in forms on this page.");})();

'Oude' stijl global.asax file in .NET 2.0

Door Luuk1983 op woensdag 1 april 2009 11:58 - Reacties (2)
Categorie: Programmeren, Views: 2.662

De global.asax file in .NET is klasse die je kan gebruiken voor globale functies en variabelen en het behandelen van applicatie gedrag, zoals het starten en stoppen van de applicatie, het starten van een sessie en alle fouten die nog niet afgevangen zijn eventueel alsnog af te vangen. Deze file bestond in .NET 1.1 en Visual Studio 2003 uit een global.asax en een global.asax.cs file, waarbij de global.asax file eigenlijk nutteloos was in zekere zin.

In .NET 2.0 heeft Microsoft waarschijnlijk ook bedacht dat het overbodig was om een global.asax en een global.asax.cs te hebben en in hun oneindige wijsheid hebben ze besloten om de global.asax.cs te laten vervallen en alleen de global.asax over te houden. Deze global.asax ziet er als volgt uit:


HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<%@ Application Language="C#" %>

<script runat="server">

    void Application_Start(object sender, EventArgs e) 
    {
        // Code that runs on application startup

    }
    
    void Application_End(object sender, EventArgs e) 
    {
        //  Code that runs on application shutdown

    }
        
    void Application_Error(object sender, EventArgs e) 
    { 
        // Code that runs when an unhandled error occurs

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e) 
    {
        // Code that runs when a session ends. 
        // Note: The Session_End event is raised only when the sessionstate mode
        // is set to InProc in the Web.config file. If session mode is set to StateServer 
        // or SQLServer, the event is not raised.

    }
       
</script>


Zoals je ziet heeft Microsoft ervoor gekozen om een script tag met de code in de global.asax te plaatsen. Op zich werkt dit natuurlijk wel, maar het gaat tegen het hele principe in dat je je code juist in de .cs file wil hebben. Daarnaast heeft het plaatsen van deze code binnen een script tag beperkingen. Voor een paar simpele kleine dingen werkt deze opzet zonder problemen, maar bij uitgebreide functies is het niet handig. Zo kan je lang niet bij alle objecten binnen het project.

De oplossing is simpel: we 'herstellen' de functionaliteit. De code verplaatsen we naar een 'echte' klasse in een cs file.
  • Maak een nieuwe klasse aan binnen het project. De naam maakt op zich niet zoveel uit, maar het makkelijkste is om deze gewoon iets in de trant van 'Global' te noemen. Denk eraan dat in een Webproject de klasse in de App_Code folder moet staan.
  • Kopieer van de global.asax pagina alle code TUSSEN de <script> tags naar de nieuwe klasse.
  • Gooi de global.asax file nu helemaal leeg.
  • Voeg nu deze code toe aan de lege global.asax file:

    HTML:
    1
    
    <%@ Application Language="C#" Inherits="NaamVanDeNieuweKlasse" %>

  • Klaar! Je kan nu je nieuwe klasse gebruiken om code te schrijven. Je hoeft in principe niet meer in de global.asax file te zijn.
Zo zien de files er bijvoorbeeld uit na het wijzigen:

global.asax

HTML:
1
<%@ Application Language="C#" Inherits="Global" %>



Global.cs

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class Global : System.Web.HttpApplication
{
    public Global()
    {
        //
        // TODO: Add constructor logic here
        //
    }

    void Application_Start(object sender, EventArgs e)
    {
        
    }

    void Application_End(object sender, EventArgs e)
    {
        //  Code that runs on application shutdown

    }

    void Application_Error(object sender, EventArgs e)
    {
        Exception ex = Context.Server.GetLastError();

        //Handle all custom exceptions
        if (ex.InnerException != null)
        {

        }
    }

    void Session_Start(object sender, EventArgs e)
    {
        FormsAuthentication.SignOut();
    }

    void Session_End(object sender, EventArgs e)
    {

    }
}



In Visual Studio 2008 is dit gelukkig allemaal weer terug gedraaid en is de global.asax weer hetzelfde als in Visual Studio 2003.

Voorkom Skype number highlighting

Door Luuk1983 op woensdag 1 april 2009 11:38 - Reacties (2)
Categorie: Programmeren, Views: 2.596

De skype plugin 'number highlighting' zorgt ervoor dat telefoonnummers op een website omgetoverd worden in klikbare links, waarbij de gebruiker door een klik op het nummer het betreffende telefoonnummer meteen in skype belt. Hoewel dit mooie functionaliteit is, is het ook mogelijk dat de layout van de pagina overhoop gehaald wordt of in sommige gevallen dat het telefoonnummer wegvalt. Zeker pagina's met veel dynamische elementen kunnen problemen krijgen.

We hebben zelfs wel eens gezien dat bij het opmaken van een nieuwsbrief in een webapplicatie dat skype tijdens het editen van de content een telefoonnummer vervangen had door Skype code, met als gevolg dat in de nieuwsbrief de skype code vast erin was komen te staan. Alle gebruikers kregen het betreffende telefoonnummer als skype nummer te zien.

Nou kan een gebruiker uiteraard de plugin in- of uitschakelen, maar als developer wil je soms de mogelijkheid hebben om ervoor te zorgen dat die hele skype plugin van je telefoonnummer afblijft. Daarom kan de volgende meta tag gebruikt worden:


HTML:
1
<META name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />