Beye 2010, welcome 2011!

Normaal zou ik dit posten op nieuwjaarsdag maar aangezien ik me slaap zal nodig hebben die dag (feesten + erna een familiefeest). Hierbij enkele statistieken van het jaar 2010.

Aantal bezoekers: 5 584
Drukste maand: december (761 bezoekers)
Aantal blog berichten: 76
Aantal reacties: 92

En aan allen natuurlijk een goed eindejaar en laat ons beginnen met een nieuw vel papier in 2011!

Een .NET applicatie

Voor het vak .NET moesten wij een C#/ADO.NET applicatie maken. Het is een applicatie voor scholen die hun boeken moeten bestellen bij de zaak Plato. Ik post dit eventjes omdat wij (john en ik) er verdomd keihard aan gewerkt hebben en lang gezocht hebben aan de database fout. Anyway, genoeg woorden aan vuilgemaakt, hier zijn de screenshots.

Antwoord van Brooklynn

Vandaag had ik eens een mailtje gestuurd naar de mensen van Brooklynn omdat ik toch het fijne wou weten. Twee uurtjes later kreeg ik een vriendelijk antwoord terug.

Geachte,
bedankt dat u ons de kans geeft onze werkwijze toe te lichten.

Bij elke samenwerking omtrent voorverkoop bieden wij de organisatoren
aan om de kosten (fee) op zich te nemen.
Sommige doen dit, anderen niet. Dat is hun keuze.
Wij moeten deze fee aanrekenen omdat deze extra service die wij aan
organisatoren en aan feestvierders bieden voor ons vooral lasten met
zich brengen.
Mensen die tickets komen kopen doen dat heel bewust en koppelen daar
nooit nog een aankoop in de winkel aan. Integendeel zelfs want telkens
iemand voor een kaart opduikt aan onze kassa’s moeten wij de service aan
onze echte klanten staken om die kaartenverkoop af te handelen. Dat is
niet fijn voor die klant en past niet in onze service gerichte aanpak.
Bovendien moeten wij ons beveiligen en verzekeren voor de waardevolle
voorraad kaarten die bij ons afgegeven wordt.
Verder kruipt er ook een pak tijd in het beheren, berekenen en afrekenen
van de kaarten.
Dit zijn kosten die door de fee van 0.5 of 1 euro wordt gedragen.
Wij weten dat deze kosten in lijn liggen met wat andere grotere zaken
aanrekenen voor hun overhead-kosten en dat die ver onder de kosten
liggen die Fnac aanrekent.

Ik begrijp dat u vragen heeft bij het prijsverschil en hoop dat deze
uitleg u voldoende duidelijkheid heeft verschaft.
Wij wensen u een schitterend feest toe op oudejaar in Kortrijk!

Of ik het daarmee 100% goed vind is iets anders. Ik vind dat die service gratis zou moeten zijn omdat het juist klanten aanlokt. De naam Brooklynn is immers overal te vinden en mensen komen je winkel binnen. Misschien moet een goede uitbater maar aantrekkelijke artikels leggen aan de ingang. Bv als het gaat om oudejaar evenementen dat ze oudejaar kledij voor hun neus plaatsen.

Leuk stukje C code

Ik zit geregeld op de devschuur coffe corner van tweakers.net en daarin vond ik volgend stukje code. Niet zozeer om zijn doel maar op de manier hoe struct’s en pointers gebruikt worden om delegates van .NET na te bootsen.

http://aiids.pastebin.com/qb3P7XA6

Bron: http://gathering.tweakers.net/forum/list_message/35269708#35269708

Toekomst VBA…

Op kerstdag gaf ik een demo van mijn VBA aan de eigenaar van het bedrijf. Hij was tevreden van het werk maar we hebben nog wat nagepraat. Daaruit bleek dat het programma dat ik geschreven werd een tussen oplossing is voor het ene varkensbedrijf. Nu zijn ze bezig met uitbreidingen in het bedrijf (nieuwe stallen) en gaan ze dus een geavanceerder pakket aanschaffen. Dus uniek was mijn ding niet maar dient goed als tussen oplossing. Enfin, later zal mijn hulp nodig zijn voor de data migratie naar het nieuwe programma.

Nu de toekomst van VBA slop ligt (het kan nog altijd een product worden als ik dat wil), kwam de vraag om een ander programma te schrijven die niet op de markt te vinden is. Details heb ik niet maar het gaat om het ganse voederproces van het bedrijf. Nu draait er iets DOS achtigs maar dat is enkel om de voederen te verdelen en te vermengen binnen het bedrijf. Het moet uitgebreider komen. Begin februari begint het project.

Java vs .NET quote

Vandaag een leuke quote/verhaaltje/mopje gevonden over Java en .NET.

A group of 4 Microsoft .NET programmers and a group of 4 Java programmers are going on a train to an expo. The MS programmers buy a ticket each, and then watch the Java programmers proceed to buy one ticket between them.

The MS programmers are intrigued and when they get on the train, they watch the Java programmers to see what they do when the guard comes to check the tickets. It turns out that, before the guard comes, they all cram into the toilet. The guard knocks on the door, and asks for the ticket. The guard takes it from under the door, and slides it back.

The MS programmers are all impressed, so on the way back, they buy only one ticket. Only to watch the Java folks get on the train without buying a ticket at all.

When they get on the train, the MS people cram into the toilet, as they saw the Java folks on the earlier journey. The Java programmers then knock on the door, and say “Ticket please”. The MS programmers slide the ticket under the door, as they saw the Java programmers do earlier.

“Thank you”, they say. “You steal our methods, but you don’t understand them.”

C++, iets over pointers en parameters.

Laatst was ik een binaire zoekboom aan het maken in C++. Zoals iedere boom begint met een wortel, begint mijn boom ook met een wortel.

struct element<T> *root;

Een pointer dus naar het root element. Nu had ik een add(T value) functie die een nieuwe element gaat toevoegen aan de boom. In die functie staat één regel namelijk.

addNode(root, value);

Nu had ik als volgt de definitie gemaakt voor de addNode functie.

void addNode(struct element<T> *branch, T value)

In de functie ga ik recursief de boom doorzoeken naar een plekje voor het nieuwe element en in die functie wijzig ik branch. Nu gaat dit niet zomaar dat wijzigen omdat ik eigenlijk het adres van de pointer meegeef. Dus ik gaf de pointer by-value door terwijl ik eigenlijk de pointer by-reference moest doorgeven. De compiler begon er al over te zagen maar op IRC zei een C++ guru dat dit by-reference moet doorgegeven worden als je dat wilt wijzigen. Dit ziet er als volgt uit.

void addNode(struct element<T> *&branch, T value)

Een alternatief is gebruik maken van dubbele pointers (dat is iets wat Rob zekers zal bekoren)

void addNode(struct element<T> **branch, T value)

Pointers, het is me wat… ^^