C# 3.0, .NET 3.5: Automatic properties

Properties, sommigen gebruiken het, sommigen niet. Zelf heb ik leren programmeren met getters & setters (vanuit Java). Sinds korte tijd gebruik ik toch properties in C#, omdat het eenvoudiger is, en overzichtelijker.

Voorbeeldje:

class TestProps
{
	private String nick;

	public TestProps(String nick)
	{
		this.nick = nick;
	}

	//de C# manier:
	public String Nick
	{
		get
		{
			return this.nick;
		}
		set
		{
			this.nick = value;
		}
	}

	//de Java manier (zelfde syntax in C#)
	public String getNick()
	{
		return this.nick;
	}

	public void setNick(String nick)
	{
		this.nick = nick;
	}
}

Dus ofwel gebruikt ge de C# manier, ofwel de Java manier, whatever you wish, beiden hebben hetzelfde eindresultaat.

Maar nu zit deze nieuweigheid in C#:

class TestProps2
{
	public TestProps2(String nick)
	{
		this.Nick = nick;
	}

	public String Nick { get; set; }
}

That’s it! Geen interne private variable meer, dat wordt automatisch door de compiler gedaan. Veel korter dus, en ge kunt er op dezelfde manier aan als de properties op de C# manier :)

Seminarie Visual Studio 2008

Vandaag mochten we met de klas naar een seminarie van Visual Studio 2008, met daarin uitleg van de nieuwe features van de talen vooral.

Een aantal dingen die me zijn bijgebleven:

  • Shitload aan nieuwe features
  • XAML is prachtig
  • LINQ is cool
  • Automatic properties zijn handig!

Alleen was het zeer jammer dat ook de eerste jaars daar waren, omdat zij er niets van snapten van het code-gedeelte, en zij zorgden dan ook voor lawijt. Jammer.

 

Maar over het algemeen was het zeer geslaagd, en ben ik nog meer overtuigd van wat ik al wist: Microsoft is the way to go in de toekomst.

ChatHere: Messagecode

Heb net weer wat zitten werken aan m’n ChatHere App, even uitgezocht hoe delegates werken (leuk spul! Makkelijk om u code clean te houden).

Net ook even een Message class geschreven, deze wordt geserialized naar een memorystream, en dan zo naar de socket gestuurd.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Runtime.Serialization;

namespace ChatHere
{
	///

	/// Class for holding the message
	/// 

	class Message : ISerializable
	{
		private String nick;
		private String message;
		private Font font;

		///

		/// Cosntructor
		/// 

		///
The nick
		///
The message
		///
The font
		public Message(String nick, String message, Font font)
		{
			this.nick = nick;
			this.message = message;
			this.font = font;
		}

		///

		/// The constructor for after deserialization
		/// 

		///

		///

		public Message(SerializationInfo info, StreamingContext context)
			: this ((String)info.GetString("nick"), (String)info.GetString("message"), (Font)info.GetValue("font", typeof(Font)))
		{
		}

		#region ISerializable Members

		void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
		{
			info.AddValue("nick", this.nick, typeof(String));
			info.AddValue("message", this.message, typeof(String));
			info.AddValue("font", this.font, typeof(Font));
		}

		#endregion
	}
}

Indien iemand anders misschien tips heeft, feel free to post them.

Milieutaksen, de koe als melkauto van de staat

En vandaag was het weer in het nieuws: Smogalarm in Belgie, omdat er teveel fijne stofdeeltjes in de lucht waren.

Morgen dus maximaal 90km/uur op die bepaalde wegen.

Maar we zijn niet vervuilender geworden! De normen zijn gewoon omlaag gegaan, door die stomme (ja echt stom!) Kyoto-normen.

Door dit protocol zou de CO2 uitstoot in Belgie met 7.5% verlaagd moeten worden. Een nobel streven.

Maar wat doet de Belgische staat: Belastingen en nog eens belastingen op de consument, zodat die zuiniger zou moeten gaan leven, om zo de CO2 uitstoot te verlagen.

Maar wie is de echte grootverbruiker? Juist, de fabrieken, en vooral Electrabel (kijk ook even dit filmpje). Zij blijven maar kolencentrales bijhouden, dewelke ik verschrikkelijk vind. Let op, ik ben het niet eens met hun mening over kerncentrales, ik vind kerncentrales een ongelofelijk propere energiebron. Buiten het afval. Maar wat is mis met onderzoeken hoe we het afval kunnen opwaarderen? Dat wordt niet bekeken.

Dan komen mensen met het argument dat kernenergie onveilig zou zijn, allemaal verwijzend naar Tsjernobyl.

We weten allemaal dat daar in 1986 daar een reactor is ontploft tijdens een oefening. Zo krachtig dat het 2000 ton (!) zware deksel werd opgehoffen, en nu scheef in de reactor zit.

Anyway, mensen weten niet dat er een fundamenteel verschil is tussen de reactorcore van die van Tsjernobyl,  en die van bijvoorbeeld hier in Doel.

Ten eerste:

In Tsjernobyl was er maar 1 circuit, hetzelfde water wat in contact kwam met de gesplitste kernen (en dus hoog-radioactief is) werd ook gebruikt om de stoomturbines aan te voeren.

In Doel zijn er 2 circuits, 1 hoogradioactief, dat via warmte-overdragers (geen idee welk materiaal) het water van een 2de circuit opwarmt, en zo de stoomturbines aanvoert.

Ten tweede:

Omdat de protonen die afgevuurt worden op de kernen ongelofelijk snel zijn wordt een vertrager gebruikt.

In Tsjernobyl was dit grafiet (hetzelfde als in potlooden).

In Doel gebruikt met zwaar water (H4O) (wat al blust uit z’n eigen).

Nu is het dus louter de kwestie van het afval, waarvoor een oplossing gevonden moet worden.

Genoeg over kernenergie, on to the main point again.

Maar wat doet de Belgische regering? Slurptaks voor auto’s, hogere ‘op-de-baan-zetten’ kost voor meer verbruikende auto’s, puur zodat wij zuinigere, milieuvriendelijke auto’s zouden kopen. Wel, dan mogen de ministers hun BMW X5′s inruilen voor een Volkswagen Polo 1.2.

Op bepaalde snelwegen wordt de maximumsnelheid verlaagd. Met als doel: De CO2 uitstoot dus verlagen.

Maar het verkeer gaat veel vlotter als het 120km/uur rijdt, er moet minder geremt worden, minder opgetrokken (=vervuiling!)

Voor de meeste auto’s ligt het omslagpunt dichter bij de 120 dan bij de 90, waardoor deze effectief zuiniger bij 120 zijn als bij 90! Ze hebben dus echt oogkleppen op.

Ik vind dat het voor eens en voor altijd gedaan moet zijn! Belgie, sta op, dit zijn de mensen waarvoor ge stemt! Wilt gij dat deze belasting naar immigranten gaat, die naar hier komen, een BMW pikken, en daarmee rondrijden, en dan nog gaan vragen voor subsidie voor mazout? (Huisstookolie).

To be continued!

Vista: SP 1 Final

Vista SP 1Ik heb ‘m dan eindelijk, de RTM van Vista SP 1. Weliswaar alleen de x86 versie, voor op m’n laptop dus :)

Bolt super stabiel, ze hebben de network browsing crash van explorer.exe opgelost, dewelke mijn grootste ergernis was van Vista SP 1 RC1 Refresh (de gewone RC1 had het niet).

Various: DVDbox van Thunderbirds!

Een stukje nostalgie, van toen ik een klein manneke was. Ook al weer 12 13 jaar geleden dat ik naar deze serie keek!

Ik had ‘m eergisteren totaal onverwacht van een goede vriendin gekregen, heel fel bedankt meid ;) Ik ga er zeker plezier aan beleven!

Even een foto om wat te stoefen :D

Thunderbirds DVDbox

Prachtig! :D

Blog update, verdwenen posts.

Zoals jullie kunnen zien zijn er heel wat posts verdwenen, alsook alle comments, en heel wat info.

Door een verkeerd stuk code ben ik een heel deel van m’n database kwijt geraakt, ik heb geprobeerd te redden wat er te redden viel, en dat is me ook goed gelukt :)

De website ziet er bijna hetzelfde uit als vroeger. Nu nog even een plugin zoeken die automatisch m’n database backupped ;)

Vista en mappen, registerhack

Deze post is eigenlijk een hack, een soort van bypass voor een bug in Windows Vista.

In Windows Vista zit, gelijk in XP en zijn voorgangers, de optie ‘map instellingen voor alle mappen onthouden’. Standaard staat dit aan, zodat ge 1 map op afbeeldingen kunt instellen, 1 map op details, 1 map op lijst.

Voor sommige mensen is dit fijn, maar voor mij niet. Ik wil alles gesorteerd hebben op type, gegroepeerd per type, en ik wil details zien! Zo dus:

Vista Folder

Dit werkt dus niet in Vista, ge stelt het in, en iedere keer vergeet hij het. Daarom deze oplossing, bestaande uit drie stappen:

Stap 1: Open de register-editor: Winkey + R , en dan regedit, en dan Enter duwen.

Stap 2: Verwijder deze twee keys:

HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags

en

HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\BagMRU

Stap 3: Plak dit bestand in een nieuw tekstdocument, en verander de extensie van .txt naar .reg (rechtermuisknop -> naam wijzigen).

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
"FolderType"="NotSpecified"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell]
"BagMRU Size"=dword:00020000

Het resultaat is dat nu de instellingen altijd hetzelfde blijven!

PHP: Spam op forms.

Daarnet was ik mijn harde schijf aan het uitpluizen, en kwam dit oude documentje tegen:

");
	print("
");
	print("...");
	print("

");

	//en dan bij de submit checken of empty($_POST['zpam']); ja->user->ok, nee->spambot->die();
	//voordeel: geen userintereactie
	//nadeel: wat als de spambot css ondersteund?
	//nadeel2: user MOET css hebben, anders vult hij het ook in. Eventueel er een label bijzetten 'Vul dit niet in'
	//en die ook hidden met css

	//----------------------------------------------------------------------------------
	//deze is ook soms fijn :+
	print("
"); print("..."); print("
"); //dus de eerste keer als op het form wordt geklikt, veranderd de action. //voordeel: geen userinteractie //nadeel: wat als de bot JS heeft? //nadeel2: wat als de user geen JS heeft? //---------------------------------------------------------------------------------- print("
"); print("..."); print("
"); //en op het einde van u pagina doet ge dit: ?>

Laat me weten wat ge ervan vind :)