dream-coder.de Blog über .NET, SQL Server, PHP, Typo3 und sonstige Themen

31Jan/100

Wordpress Lightword Theme 1.9.8

Das Theme, was ich hier bei Wordpress nutze, heißt LightWord. Es gibt wieder einige Updates und kompatibiltätspatches für Wordpress 2.8. Eine Vorschau auf einige neue Features könnt ihr auf der Website betrachten.

Die aktuelle Version ist 1.9.8 und ist vom 27.01.2010.

Eine Hauptänderung, die ich jetzt nutze ist die Option, das Layout auf wide einzustellen.

Zu finden ist diese Option Plugins => LightWord Settings => Layout settings => Auf Wider stellen.

31Jan/102

Singleton Muster

Das Singleton Muster (Singleton Pattern) ist ein Entwurfsmuster in der Sofwareentwickung, welches beschreibt, das man ein Objekt nur einmal instanziieren darf.

Was genau wird realisiert?

Der Konstruktor des Objektes wird auf private gesetzt. Dies hat zur Folge, das man keine Instanz mit dem new Operator erstellen kann. Danach wird eine statische Methode erstellt, die eine neue Instanz des Objektes zurück gibt. In dieser Methode wird überprüft, ob es schon eine Instanz gibt, anhand einer statischen Membervariable. Das wars. Eingesetzt wird dies unter anderem bei Winforms, damit man ein Fenster nicht mehrfach erzeugen kann.

class Singleton
{
        /**
         * @var Singeleton
         */
	private static $_instance;
 
        /**
         * Kontruktor MUSS logischerweise auf private gesetzt werden
         */
	private function __construct() { /* beliebiger CODE */ }
 
        /**
         * @return Singleton
         */
	public function getInstance() {
		if (self::$_instance == null || !(self::$_instance instanceof Singeleton)) {
			self::$_instance = new Singleton();
		}
		return self::$_instance;
	}
}
 
// aufruf
$mySingletonOnject = Singleton->getInstance();

Quelle: Wikipedia DE

// Nur zur Veranschaulichung – bitte nicht verwenden!
sealed class Singleton
{
    private Singleton() { /* beliebiger CODE im Kontruktor */ }
    private static Singleton _instance = null;
 
    public static Singleton getInstance()
    {
       if(_instance == null) {
          _instance = new Singleton();
       }
       return _instance;
    }
}
 
// Diese Version verwenden, wegen der ThreadSicherheit
sealed class Singleton
{
    private Singleton() { /* beliebiger CODE */ }
    private static volatile Singleton _instance = null;
 
    public static Singleton getInstance()
    {
       // DoubleLock
       if(_instance == null) {
          lock(m_lock) {
              if (_instance == null) {
                  _instance = new Singleton();
              }
          }
       }
       return _instance;
    }
 
    // Hilfsfeld für eine sichere Threadsynchronisierung
    private static object m_lock = new object();
}
 
// Zugriff über Singleton 
Singleton MySingletonObject = Singleton.getInstance();

Für weitere Informationen zu Singleton oder weiteren Design Pattern empfehle ich folgende Links

Edit: eine erweiterte Variante, basieren auf Dirk Primbs Post

sealed class Singleton
{
    // > c# 2008 - Hier wird eine statische Variable erzeugt, die mit 
    // volatile => Threadsafe
    // readonly => mit dem Schlüsselwort stellen wir sicher, das keine neue Instanz erzeugt wird
    public static readonly volatile Singleton Instance = new Singleton();
 
    public string Name {get; set; }
 
    // Konstruktor auf private
    private Singleton() { /* beliebiger CODE */ }
 
}
 
 
// Testing
var x = Singleton.Instance;
x.Name = "Hans";
 
var y = Singleton.Instance;
y.Name = "Werner";
 
// Beide Ausgaben ergeben Werner, weil es nur eine Instanz des Objektes zurückgegeben wird
Console.WriteLine("X: " + x.Name);
Console.WriteLine("Y: " + y.Name);
Console.ReadLine();
24Dec/090

Frohe Weihnachten 2009

Ich wünsche allen Lesern, Kollegen und Freunden gute Weihnachten, ein fröhliches Fest und einen guten Rutsch in das Jahr 2010.

Happy Coding Icon Smile in Frohe Weihnachten 2009 // dream-coder.de

Christian

Tagged as: No Comments
17Dec/090

40 % – 50 % Rabatt auf alle Microsoft Press Bücher

Schnell zuschlagen, nur noch bis Ende des Jahres

  • 40% auf gedruckte Bücher
  • 50% auf eBooks

Hi,

Micorosoft Press hat die Vermarktung seiner Bücher vollständig an O’Reilly übergeben. Um das ganze zu feiern bekommt man bis Ende des Jahres 40 % auf gedruckte Bücher und 50 % auf eBooks. Man muß seine Bestellung dafür einfach nur über das neue Shopsystem durchführen und den Rabattcode: MSINT eingeben.

Link zum Shop: http://microsoftpress.oreilly.com/?cmp=il-orm-msp-msphp-msint

Die Aktion läuft wohl noch bis Ende diesen Jahres.

Happy shopping

via http://www.security-blog.eu/

22Nov/091

My Tools

Um das arbeiten am PC zu vereinfachen, gibt es ja eine Menge Tools. Welche ich einsetze, von denen ich bisher überzeugt bin, möchte ich euch nicht vor enthalten:

IDE:

Vielleicht kennt ja der ein oder andere einige noch nicht.

19Nov/094

Google Chrome OS – Source veröffentlicht + Demo Video + Dowload

Google hat heute ein Demovideo seines neuen Betriebssystemes Google Chrome OS, welches auf Linux / Unix basiert herausgegeben. Interessant ist, das Chrome OS komplett auf dem Browser Chrome im Vollbild setzt.

Features

  • Booten in wenigen Sekunden (etwa 5 bis 7 sekunden)
  • Alle Programme laufen im Browser
  • Verschlüsseltes Dateisystem und Daten in der Cloud

Video: Live-Demonstration von ChromeOS (9:19)

Thomas hat auch dazu eine interessanten Beitrag geschrieben.

Update: Google Chrome OS VMWare Image herunterladen

Quelle: chip.de

Hinweis: Zur Anmeldung benötigen Sie einen Google-Account. Das Google Chrome OS wird dann mit einer englischen Tastatureinstellung gestartet. Das @-Zeichen für die Anmeldung erhalten Sie mit der Tastenkombination [Shift] + [2].

11Oct/092

Windows – SVN Verzeichnisse rekursiv löschen

In einem älterem Beitrag habe ich gezeigt, wie man unter Linux SVN-Ordner rekursiv löschen kann.

Hier zeige ich, wie praktisch man es unter Windows tun kann.

Man erstellt sich eine *.reg - Datei mit folgendem Inhalt:

Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="Delete SVN Folders"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""

Diese dann ausführen. Danach erhält man einen Eintrag im Kontextmenü, wenn man über Ordner "Rechtsklick" macht:

Win Delete Svn in Windows - SVN Verzeichnisse rekursiv löschen // dream-coder.de

Windows - Delete SVN Folders

Nun kann man bequem auf den Ordner gehen, indem die ganzen .svn Ordner drin liegen und mit dem Kontextmenü löschen.

27Sep/090

Bei jedem Treffer geht eine lokale Datei verloren

Mal wieder Lust, den Rechner neu zu machen?

Dieses Spiel soll ein "Kunstwerk" darstellen. Bei jedem Treffer auf das gegnerische Schiff wird lokal eine Datei "unwiderruflich" zersört.

Quelle: http://www.golem.de/0909/70014.html

Video: LoseLose - das etwas andere Spiel von Zach Gage (0:54)
Filed under: Allgemein No Comments