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

24Jun/102

Linux – grep mit ODER Verknüpfung – egrep

Oft benutzt und mal für das Archiv.

Wenn man mehrere Bedingen ODER verknüpft bei dem Programm grep haben möchte, geht das nur über egrep:

egrep
# Bsp für eine Oder Verknüpfung (PIPE-Symbol)
egrep "2010:13:59|2010:13:57" *.log
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Yigg in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Webnews in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Digg in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Delicious in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Stumbleupon in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Reddit in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Ask in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Facebook in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Google in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Live in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Myspace in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Technorati in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
  • Twitter in Linux - grep mit ODER Verknüpfung - egrep // dream-coder.de
Tagged as: , , , 2 Comments
22Jun/100

Zend Studio 7.2 – Autovervollständigung geht nicht mehr

Zend Studio 7.2 ist die kostenpflichtige IDE, wenn es um PHP-Entwicklung geht. Aus einem unbekannten Grund funktionierte meine Autovervollständigung nicht mehr.

Die Lösung habe ich in diesem Blog und dadurch auch in diesem Forum gefunden.

Man geht in seinen Workspace

# Bsp: windows 7, Standardworkspace
C:\Users\<EUER_USER>\Zend\workspaces\DefaultWorkspace7\.metadata\.plugins\org.eclipse.core.runtime\.settings

und löscht die Datei

org.eclipse.dltk.ui.prefs

Danach Zend Studio neu starten, und die Autovervollständigung funktioniert wieder.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Yigg in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Webnews in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Digg in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Delicious in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Stumbleupon in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Reddit in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Ask in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Facebook in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Google in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Live in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Myspace in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Technorati in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
  • Twitter in Zend Studio 7.2 - Autovervollständigung geht nicht mehr // dream-coder.de
24May/100

Typo3 – 4.3 / Frontendediting aktivieren

Mit der aktuellen Version 4.3.x ist das neue Frontendediting gekommen. Um in den Genuss zu kommen, muss man dies erst aktivieren.

Folgende Schritte sind dafür notwendig:

Installieren und aktivieren der Extension feeditadvanced
Aktivieren des Plugins über die TSConfig:

admPanel {
  enable.edit=1
  module.edit.forceDisplayFieldIcons=1
  hide=1
}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Yigg in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Webnews in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Digg in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Delicious in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Stumbleupon in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Reddit in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Ask in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Facebook in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Google in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Live in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Myspace in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Technorati in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
  • Twitter in Typo3 - 4.3 / Frontendediting aktivieren  // dream-coder.de
24May/101

ZendFramework – Eindeutigen Datensatz prüfen

Das Zend Framework bietet mit seinen Validatoren sehr schöne Möglichkeiten, die Daten des Benutzers zu prüfen. Bisher habe ich immer im Controller geprüft, ob es einen Datensatz schon einmal gibt, wie z.B.: E-Mail Adresse, oder Benutzername. Doch es geht noch viel einfacher. Das ZendFramework bietet dafür die Klasse Zend_Validate_Db_NoRecordExists an. Diese erbt von der abstrakten Klasse Zend_Validate_Db_Abstract. Als Parameter gibt man in diesem Beispiel die Tabelle und die zu prüfende Spalte an.

Hier ein Beispiel der Benutzung in der Formklasse eureres Moduls

 
class User_Form_Register extends Zend_Form
{
    /**
     * Init the Registerform
     *
     * @return void
     */
    public function init()
    {
 
        $this->setAttrib('id', 'registerform');
        $this->setAction('/user/index/create');
 
        // ...
 
        // username
        $dbValUnique = new Zend_Validate_Db_NoRecordExists('user', 'username'); // Das DB ValidatorObjekt
        $username = new Zend_Form_Element_Text('username');
        $username->setLabel('Benutzername');
        $username->setRequired();
        $username->addValidator('regex', true, array('/^[a-z]/i'));
        $username->addValidator($dbValUnique); // Hinzufügen zum Element
 
        $this->addElement($username);
 
 
        // ...
 
 
        // e-mail
        $dbValUnique = new Zend_Validate_Db_NoRecordExists('user', 'email'); // Das DB ValidatorObjekt
        $email = new Zend_Form_Element_Text('email');
        $email->setLabel('E-Mail');
        $email->setRequired();
        $email->addValidator(new Zend_Validate_EmailAddress());
        $email->addValidator($dbValUnique); // Hinzufügen zum Element
 
        $this->addElement($email);
 
        // ...
 
    }
}
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Yigg in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Webnews in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Digg in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Delicious in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Stumbleupon in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Reddit in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Ask in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Facebook in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Google in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Live in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Myspace in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Technorati in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
  • Twitter in ZendFramework - Eindeutigen Datensatz prüfen // dream-coder.de
31Jan/105

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.

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Yigg in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Webnews in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Digg in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Delicious in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Stumbleupon in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Reddit in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Ask in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Facebook in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Google in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Live in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Myspace in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Technorati in Wordpress Lightword Theme 1.9.8 // dream-coder.de
  • Twitter in Wordpress Lightword Theme 1.9.8 // dream-coder.de
Tagged as: , 5 Comments
31Jan/105

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();
These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Singleton Muster // dream-coder.de
  • Yigg in Singleton Muster // dream-coder.de
  • Webnews in Singleton Muster // dream-coder.de
  • Digg in Singleton Muster // dream-coder.de
  • Delicious in Singleton Muster // dream-coder.de
  • Stumbleupon in Singleton Muster // dream-coder.de
  • Reddit in Singleton Muster // dream-coder.de
  • Ask in Singleton Muster // dream-coder.de
  • Facebook in Singleton Muster // dream-coder.de
  • Google in Singleton Muster // dream-coder.de
  • Live in Singleton Muster // dream-coder.de
  • Myspace in Singleton Muster // dream-coder.de
  • Technorati in Singleton Muster // dream-coder.de
  • Twitter in Singleton Muster // dream-coder.de
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

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Misterwong in Frohe Weihnachten 2009 // dream-coder.de
  • Yigg in Frohe Weihnachten 2009 // dream-coder.de
  • Webnews in Frohe Weihnachten 2009 // dream-coder.de
  • Digg in Frohe Weihnachten 2009 // dream-coder.de
  • Delicious in Frohe Weihnachten 2009 // dream-coder.de
  • Stumbleupon in Frohe Weihnachten 2009 // dream-coder.de
  • Reddit in Frohe Weihnachten 2009 // dream-coder.de
  • Ask in Frohe Weihnachten 2009 // dream-coder.de
  • Facebook in Frohe Weihnachten 2009 // dream-coder.de
  • Google in Frohe Weihnachten 2009 // dream-coder.de
  • Live in Frohe Weihnachten 2009 // dream-coder.de
  • Myspace in Frohe Weihnachten 2009 // dream-coder.de
  • Technorati in Frohe Weihnachten 2009 // dream-coder.de
  • Twitter in Frohe Weihnachten 2009 // dream-coder.de
Tagged as: No Comments