Warning: strpos() [function.strpos]: needle is not a string or an integer in /home/opa2os.de/hosts/stockfish.de/wp-content/plugins/text-link-ads/textlinkads.php on line 176
stockfish
Skip to content
Feb 22 10

PHP hates me feiert den 500. Eintrag

by admin

Immer schön zu lesen und informativ. Jetzt auch noch der 500. Eintrag

Nov 29 09

Neuer Mitbewohner

by admin

Seit gestern haben wir einen neuen Mitbewohner.
Darf ich vorstellen: Speedy (ein Steifenhörnchen)

Jul 31 09

Heidelbeer-Sahne-Torte

by admin

Heidelbeer Torte
So heute iss mal wieder backe backe Kuchen tag ;-) .
Zutaten:

  • Den Biskuitteig von hier
  • 500ml Schlagsahne
  • 300g Heidelbeeren
  • 6 Blatt weisse Gelatine
  • 80g flüssiger Honig
  • 1 Pack. Vanillin
  • 1 EL Zitronensaft
  • 30g gehackte Piszazienkerne
      250g Heidelbeeren pürieren
      Gelatine lt. Anleitung auflösen
      pürierte Heidelbeeren und Honig mit Gelatine vermischen und kalt stellen
      Wenn die Pampe konsisten hat (so. 30min später) Sahne mit Vanillin und Zitronensaft steif schlagen.

    Dann Heidelbeerpampe und der Sahne unterheben

      Damit dann denn unteren Teil des Biskutibodens besteichen – Deckel drauf – decke oben bestreichen – Ränder Bestreichen
      Zu guter Letzt die restlichen 50g Beeren und die Pistazienkerne drüber verteilen.
      Kalt stellen – Essen
Jul 11 09

Agrarökonomie auf Balkonien

by admin

Es wächst und gedeiht ;-) bin mal gespannt wieviel es wird!
Zuccini
Tomaten
Jalapeño

Jul 3 09

GOTO – Spaghetti Code 5.3

by admin

Man kann sich freuen über PHP 5.3 oder auch einfach mal schmunzeln auf jedenfall kann das nur ein Scherz sein:


goto a;
echo 'Foo';

a:
echo 'Bar';

Comic
Mehr fällt mir dazu nicht ein….

Mai 30 09

Zugriffe steuern und kontrollieren…

by admin

Derzeit schaue ich mir die ACL vom Zend Framework etwas genauer an. Diese Komponente “Zend_ACL” macht einen sehr durchdachten und flexiblen Eindruck. Eine ACL besteht in erster Linie aus folgenden Teilen:

  • Ressourcen
  • Rollen
  • Privilegien

Ressourcen
Diese definieren in erster Line die Controller eines MVC-Frameworks. Sie können einen reinen Controller darstellen oder auch den Controller eines Moduls (dazu später mehr in einem weiteren Beitrag).

Rollen
Rollen werden Rechte auf Privilegien oder ganzen Ressourcen zugewiesen und sie später einem Benutzer, oder einer Gruppe deren, zuweisen zu können. Zudem können Rollen, mittels Vererbung von anderen Rollen rechte erben.

Privilegien
Sie stellen Aktionen innerhalb eines Controllers dar. Ein Privileg ist immer einer Rolle zugeordnet.

Feb 22 09

Biskuit Teig

by admin

Biskuit Teig
Wenn mann schnell mal nen Biskuitboden braucht kann man diesen leicht selber machen. Das ganze reicht locker für eine 28cm Springform.

    4 Eiweiß
    4 Eigelb
    150 g Zucker
    70 g Mehl
    90 g Stärkemehl
    1 TL Backpulver
    Backpapier auf den mit Butter eingeschmierten Boden der Springform befestigen.
    Zuerst das Eiweiß steif schlagen. Einfach mal ab und an über den Kopf halten dann merkt man schnell ob schon fest genug ist. ;-)
    Den Zucker dann langsam dem steifgeschlagenem Eiweiß zugeben.
    Eigelb verrühren und danach mit dem Eiweiß verrühren
    Backpulver, Stärkemehl und Backpulver sieben und unter die Eier heben.

Das ganze muss dann in den vorgeheizen Backofen bei 170 °C für 40min in den Backofen. Solange der Teig noch warm ist den Biskuitboden aus der Form nehmen und umdrehen. Das Backpapier dann mit einem Pinsel und Wasser entfernen und fertig ist das ganze.

Feb 19 09

Bonding mit Ubuntu 8.04 LTS

by admin

Kleine Anleitung um Bonding auf Ubuntu einzurichten:
1. Folgendes in die /etc/modules einfügen

bonding bond0 mode=0 miimon=100

mode definiert den Modus unter welchem das Bonding laufen soll

Bonding Modes

Mode 0 – Loadbalancing-Roundrobin (Redundanz und Lastverteilung)
Übertragt Pakete über alle im Bonding enthaltene Netzwerkinterfaces. Dieser Modus bietet Lastverteilung und Redundanz.

Mode 1 – Fault-Tolerant (Redundanz)
Es ist nur ein Netzwerkinterface aktiv. Restliche Netzwerkinterfaces springen nur im Fehlerfall ein.

Mode 2 – Loadbalancing-Roundrobin (Redundanz und Lastverteilung XOR)
Die Mac-Adresse des Netzwerkinterfaces wird per XOR mit der Mac-Adresse des Ziels verknüpft.
Dadurch wird sichergestellt das für ein Ziel immer das gleiche Interface verwendet wird

Mode 3 – Broadcasting (Redundanz)
Alle Pakete werden über alle Netzwerkinterfaces im Bonding verschickt.

Mode 4 – Dynamic Link Aggregation 802.3ad
Erstellt ein Bonding mit NICs gleicher Geschwindigkeit und Duplex-Einstellungen. Der Switch muss
Trunks unterstützen.

Mode 5 – Adaptive transmit load balancing (Lastverteilung und Redundanz)
Ausgehender Verkehr wird, abhängig von der Last, über alle Netzwerkinterfaces verteilt.
Eingehender Verkehr wird von dem jeweiligen Netzwerkinterface empfangen.
F1ällt ein Netzwerkinterface aus, übernimmt ein anderes Netzwerkinterface die Mac-Adresse der ausgefallenen Karte.

Mode 6 – Adaptive load balancing (Lastverteilung und Redundanz)
Wie Mode 5, nur mit einer Lastverteilung für IPv4 Traffic.
Dazu werden ausgehende ARP Anfragen manipuliert und jedes Mal eine andere Mac-Adresse eines Netzwerkinterfaces verwendet.

miimon definiert in welchen Abständen die Netzwerkinterfaces überprüft werden. (Millisekunden)

2. ifenslave installieren

3. In /etc/network/interfaces das bond0 interface anlegen

auto bond0 inet static
iface bond0 inet static
address 10.2.10.35
netmask 255.255.255.0
network 10.2.10.0
gateway 10.2.10.1
post-up ifenslave bond0 eth0 eth1
pre-down ifenslave -d bond0 eth0 eth1

4. /etc/modprobe.d/arch/x86_64

alias bond0 bonding
options bond0 mode=0 miimon=100

5. Neu booten

6. Überprüfen mit ifconfig

bond0 Link encap:Ethernet HWaddr 00:14:38:c4:a3:d5
inet addr:10.2.10.35 Bcast:10.2.10.255 Mask:255.255.255.0
inet6 addr: fe80::214:38ff:fec4:a3d5/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:66 errors:0 dropped:0 overruns:0 frame:0
TX packets:37 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7620 (7.4 KB) TX bytes:5626 (5.4 KB)

eth0 Link encap:Ethernet HWaddr 00:14:38:c4:a3:d5
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:34 errors:0 dropped:0 overruns:0 frame:0
TX packets:19 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3313 (3.2 KB) TX bytes:2320 (2.2 KB)
Interrupt:25

eth1 Link encap:Ethernet HWaddr 00:14:38:c4:a3:d5
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:32 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4307 (4.2 KB) TX bytes:3306 (3.2 KB)
Interrupt:26

7. cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.2.3 (December 6, 2007)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:14:38:c4:a3:d5

Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:14:38:c4:a3:d4

Weitere Infos zum Thema Linux und Bonding Linux Ethernet Bonding Driver mini-howto

Feb 16 09

PHP Design Patterns

by admin

Um mich besser in die Materie der Design Patterns in PHP einzuarbeiten, habe ich mir das Buch PHP Design Patterns (Deutsche Ausgabe) bestellt. Für mein eigenes Framework habe ich Ideen, jedoch scheitert es momentan an dem nötigen Know How. Mit dem Buch hoffe ich mich besser und tiefgreifender in die Materie einarbeiten zu können.

Feb 15 09

Dirty Singleton Pattern

by admin

Für die Programmierung meines MVC-Framework habe ich mich mal mit dem Thema Entwurfsmuster beschäftigt.
Für den Aufbau einer MySQL Datenbank Klasse habe ich mich nun dazu entschieden ein Singleton-Pattern einzusetzen. Jedoch ein solches welches mir dennoch erlaubt für jede Datenbank ein einzelnes Objekt zu erstellen. Ist zwar etwas dirty aber es erfüllt seinen Zweck ;-)

class senf_database_mysql{
	/**
	 * Returns instances
	 *
	 * @access public
	 * @return object
	 */
	public static function returnIns($database){
		if (!isset(self::$ins[$database])){
			self::$ins[$database] = new senf_database_mysql($database);
		}
		return self::$ins[$database];
	}
}

Mit dem Aufruf der statischen Funktion senf_database_mysql::returnIns(‘datenbank’) wird überprüft ob im array $ins[] bereit ein objekt zur entsprechenden Datenbank besteht. Ist das nicht der Fall so wird ein neues Objekt erstellt und in $ins[] abgelegt. Bei jedem weiteren Zugriff auf eine Datenbank, zu welcher bereits ein Objekt besteht, wir die bereits bestehende Instanz zurückgeliefert.