Tags

  • fun met CSS en Javascript/jquery

    by Frans van Ek | Mar 05, 2015

    Fun

    Rotation speed Size speed Object size
    176 Comments
  • Javascript more type save

    by Frans van Ek | Mar 01, 2015

    Ok ok, ik ben een beetje bevooroordeeld. Ik wil intellisense als ik codeer. Het voorkomt namelijk dat ik type fouten maak en het gaat gewoon een stuk sneller.

    Er is nog een andere reden dat ik graag interllisense gebruik. Het kan er namelijk ook voor zorgen dat ik minder runtime errors heb en dus minder hoef te debuggen.

    Dit is dan ook de reden dat ik let op de mogelijkheid om runtime errors te voorkomen.Een van de punten die ik zelf niet prettig vindt aan javascript is dat veel string literals worden gebruikt als identificatie van elementen.

    Neem het volgende stuk je code.

     

    function update_div(id) {

            $("#" + id).html(newDate().getTime().toLocaleString()).parent().addClass("selected");

        }

        function clear_div(id) {

            $("#" + id).html("&nbsp").parent().removeClass("selected");

        }

        $(document).on("trigger_selection_main", function () {

            $(document).trigger("on_selection_main");

        }

        );

       

        $(document).on("trigger_selection_both", function () {

            $(document).trigger("on_selection_both");

        }

          );


    Wat opvalt zijn de vele stukjes tekst. Dit zijn niet stukken tekst maar strings met daarin de naam van een event of een Id van een element. Met een typefout in deze zal het betreffende stukje code niet werken.

    Verbetering.

    Door in de javascript een object aan te maken met daarin alle string teksten kunnen we vervolgens met intellisense gaan verwijzen. Een ander voordeel is dat bij het veranderen van de teksten het nu maar op één centrale plek aangepast moet worden.




     

    <script>

        var naming = {
            selectClass: "selected",
            triggerMainSelection: "trigger_selection_main",
            onSelectionMain: "on_selection_main",
            onSelectionBoth: "on_selection_both",
            triggerSelectionBoth: "trigger_selection_both",
        }



        function update_div(id) {

            $("#" + id).html(new Date().getTime().toLocaleString()).parent().addClass(naming.selectClass);

        }
        function clear_div(id) {
            $("#" + id).html("&nbsp").parent().removeClass(naming.selectClass);
        }

        $(document).on(naming.triggerMainSelection, function () {

            $(document).trigger(naming.onSelectionMain);
        }
        );

        $(document).on(naming.triggerSelectionBoth, function () {
            $(document).trigger(naming.onSelectionBoth);
        }
          );

       
    </script>

    De voordelen in mijn ogen zijn:

    -       Intellisense

    -       Minder kans op runtime errors

    -       Centrale locatie van de namen

    -       Code is beter te lezen.

    Nadelen :

    -        Iets meer coderen.

    175 Comments
  • Wie wil er ICT? Niemand.

    by Frans van Ek | Feb 27, 2014

    Op ICT alleen zit niemand te wachten. Het is hetzelfde als een hypotheek. Mensen willen een huis, maar wel een huis zonder hypotheek. Veel mensen hebben een hypotheek nodig om een huis te kunnen kopen. Deze mensen zullen blij zijn dat ze door middel van een hypotheek een huis kunnen kopen. Ook al is het dan eentje met een hypotheek. Maar nog steeds willen ze liever een huis zonder hypotheek.

    Dit vergelijk gaat ook als we kijken naar ICT. Ik ken maar weinig mensen die een computer kopen, puur en alleen omdat het een mooie computer is. Een computer die zo mooi is dat je hem in de kamer zet en er naar gaat kijken. Niet om er mee te werken! Ben je gek?  Daar is hij veel te mooi voor…..
    Maar voor het grootste deel van de mensen zal een computer een middel zijn om andere doelen te realiseren. ICT is daarmee dus een middel om iets te bereiken. Door middel van ICT kan een worden voorzien in een bepaalde behoefte. Maar ICT zelf is niet de behoefte. Hoe vaak wordt dit vergeten?

    Door de behoefte centraal te zetten kan deze behoefte veel beter ingevuld worden. Soms met ICT als dit de beste oplossing is maar ook zonder ICT als dat beter is. Ook in de zakelijke wereld is ICT een middel en geen doel. Het doel heiligt de middelen. Dus ICT moet alleen maar ingezet worden als het daadwerkelijk het doel dient en dan ook alleen als het de beste oplossing is.

    Toen de Amerikanen en Russen in de wedloop waren om de eerste mens in de ruimte te brengen, kwam een klein probleempje aan het licht. In gewichtloosheid schrijft een pen niet. Er is geen zwaartekracht die de inkt naar de punt zal drukken. Er moest dus iets voor verzonnen worden om de inkt toch eruit te krijgen. Miljoenen dollars zijn er door de Amerikanen geïnvesteerd om een technische perfecte pen te ontwikkelen die ook schrijft in gewichtloze toestand.
    De russen besloten na kort beraad om een potlood te gebruiken.

    Als een business proces slecht is dan helpt het niet om dit te gaan automatiseren. De chaos wordt dan alleen maar groter. Optimaliseer je proces en zet ICT in als het bijdraagt aan de optimalisatie van het proces. Dit bespaart veel geld en resulteert in een betere oplossing.

    De business kan vaak niet zonder de ICT. Maar de ICT kan ook niet zonder de business. Want ICT die alleen maar geld oplevert zijn schaars en misschien wel niet bestaand. Om op de vraag terug te komen. “Wie wil er ICT” is het antwoord; bijna iedereen. Maar dan als middel en niet als doel.

    179 Comments
  • C#: Namespaces, private, public, internal ...

    by Frans van Ek | Feb 03, 2014
    Als je gaat programmeren dan zul je al snel tegen deze termen aanlopen. Waar zijn ze voor bedoeld?

    Om te beginnen de term Namespace. Deze term verklaart in het engels al aardig wat de reden is. Kennelijk heeft er iemand over nagedacht, wat altijd een goed teken is.

    Namespace definieert een gedeelte waar toe alle andere namen behoren. Hierdoor kunnen we dezelfde namen op verschillende plekken gebruiken zonder dat er verwarring ontstaat.
    Dit is te vergelijken met twee woonplaatsen. Binnen deze woonplaatsen hebben de bedrijven namen. Door de naam van de woonplaats mee te nemen in de naam van het bedrijf kunnen bedrijven uit twee woonplaatsen altijd uitelkaar gehouden worden.

    woonplaats.naam => Amsterdam.Jumbo is iemand anders dan Rotterdam.Jumbo.

    In C# is dit ook zo ingedeeld. Verschillende elementen die bij elkaar horen worden in dezelfde namespace geplaatst. Hierdoor wordt het mogelijk om snel de juiste class, functie en property te vinden. Want de naamgeving van elementen houdt niet op bij de namespace alleen. Dit geldt voor elk element dat aangemaakt of gebruikt wordt binnen c#.
    Maar juist door het gebruik van de Namespace wordt het mogelijk om meerdere keren dezelfde naam te gebruiken voor een class. De namespace zorgt ervoor dat de classes uit elkaar gehouden worden.

    De juiste naam kiezen is dan ook belangrijk. In een toekomstige blog zal ik verder ingaan op naamgeving als ik Clean Code ga behandelen. 
      
    Voorbeelden van namespaces. 

    System;
    System.Collections.Generic;
    System.Linq;
    System.Text;
    System.Threading.Tasks;

    Bij een project dat aangemaakt wordt kan een nieuwe namespace ontstaan. Als het project aangemaakt wordt er een namespace ingesteld waar binnen alle elementen van het project gaan vallen.
    Zie - properties op project. 



    Je kunt de namespace hier aanpassen. Zorg er wel voor dat de namgeving logisch is. 



    441 Comments

Sitefinity Web Content Management