Assoziative Arrays als Hashmaps selbst verwalten

 

Viele Programmier- und Scriptsprachen (allen voran Perl und PHP) bieten eine Datenstruktur namens „assoziatives Array“ an. Diese „assoziativen Arrays“ können Daten aufnehmen und erlauben das effiziente Suchen dar in. Computer beherrschen die Organisation von Daten in „assoziativen Arrays“ allerdings nicht von Haus aus wie etwas das speichern in „normalen“ Arrays durch Adressierung. Aus diesem Grund muss der Entwickler selbst (oder seine Programmiersprache) für diese Organisation sorgen. In der Tat gibt es für quasi alle Programmiersprachen entsprechende Implementationen. Für den interessierten Entwickler möchte ich heute aber mal zeigen wie genau diese Datenorganisation von statten geht und eine eigene rudimentäre Implementation in C++ anbieten.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

Parallelisierung in PHP, Beispiel einer Metasuchmaschine

 

Auch wenn es auf den ersten Blick nicht ganz offensichtlich ist, kann man in PHP Prozesse parallelisieren.

Möglich macht dies die PHP-Funktion “popen“, die einen neuen Prozesszeiger öffnet.

Anwendungsbereiche für die Parallelisierung

Weshalb kann es aber sinnvoll sein PHP mehrere Dinge gleichzeitig erledigen zu lassen, da ja nicht zusätzliche Prozessor-Resourcen und damit höhere Geschwindigkeit zur Verfügung stehen?

Auf vielen modernen Rechnern stehen inzwischen Mehrfachkerne zur Verfügung. Da ein einzelner Prozess gleichzeitig nur einem Kern ausgeführt werden kann, wird somit die volle Leistung des Systems nicht ausgereizt. Das Betriebssystem muss also in der Lage sein die Prozesse auf die verschiedenen Kerne zu verteilen. Wenn ein laufender PHP-Prozess einen weiteren startet, dann kann dieser auf einem anderen Kern laufen, was eine echte parallele Abarbeitung zur Folge hat.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

SQL-Injektion - Einblicke und Gegenmaßnahmen

 

Immer häufiger entstehen Schwachstellen in Web-Applikationen, weil die Entwickler versäumen Ihre Software gegen die Manipulation von außen durch entsprechende Techniken abzusichern. Eine häufig benutze Angriffsmethode stellt dabei die so genannte SQL-Injektion dar.

Mit der entsprechenden Sorgfalt und auch einem gewissen Mehraufwand ist man allerdings hat man als Entwickler allerdings durchaus die Möglichkeit sich bzw. Seine Anwendung gegen SQL-Injektion zu schützen.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

Creole, eine Datenbankabstraktionsschicht für PHP5

 

Creole Logo

Nicht nur für Skriptsprachen wie PHP, - aber gerade gerade für diese, ist der Zugriff auf Datenbanken unerlässlich. PHP bietet zwar schon von sich aus die Möglichkeit auf fast alle gängigen Datenbanken zuzugreifen, allerdings ist die Implementation sehr speziell und die darunter liegende Datenbank-Engine ist nicht beliebig austauschbar.

Damit diese und andere Nachteile der PHP-eigenen Implementation für den Entwickler nicht zum Fiasko werden gibt es verschiedenste Abstraktionsschichten für Datenbanken. Eine davon (Creole) möchte ich heute einmal vorstellen.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

Komprimieren leicht gemacht: Der Huffman-Code

 

Es gibt Kompressionsalgorithmen wie an Sand am Meer. Jede Programmiersprache hat heute die Möglichkeit (z.B. über externe Bibliotheken) auf jeden erdenklichen Kompressionsalgorithmus zurück zu greifen. Doch wie funktionieren diese Algorithmen eigentlich? Wie kann man selbst Datenkompression implementieren?

Am Beispiel des Huffman-Code stelle ich heute einen Algorithmus vor, der eine effektive Kompression erlaubt und trotzdem sehr einfach zu verstehen ist.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

Google Pagerankabfrage in Java

 

Der Google-Pagerank hat ist viele noch immer das Ei des Kolumbus. Nüchtern betrachtet ist der Einfluß auf die Suchergebnisse jedoch nicht so groß, wie viele das immer wieder predigen.

Dennoch kann es durchaus interessant sein seinen Pagerank (oder den von anderen) zu erfahren. Man findet im Internet jede Menge JavaScripts, einige PHP - Scipts und Klassen, die einem die Möglichkeit geben selbst den Pagerank abzufragen. Da ich für Java leider noch keine fertige Klasse fand, habe ich mir mit Hilfe der JavaScript und PHP-Sourcen selbst eine Programmiert.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

Sicherheit eines Passwortes in Formularen anzeigen (wie bei Google)

 

Ein nettes kleines Feature bei der Registrierung hat Google seit einiger Zeit etabliert. Während der User dort sein gewünschtes Passwort eingibt bekommt er als Indikation für die Sicherheit des selbigen einen farbigen Balken und einen Text angezeigt.

Dem, der diesen Service auch für seine eigenen User anbieten möchte, kann hier geholfen werden.

Passwortstärke

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

Blogtipps für Einsteiger: Programmiert euer eigenes Wordpress-Plugin

 


Blogtipps für Einsteiger” border=

Das Blogprojekt: Blogtipps für Einsteiger ruft dazu auf, dass man neuen Bloggern Tipps gibt, worauf sie beim vor allem am Anfang des Bloggens achten sollen.
Da es besser zum Thema meines Blogs passt, möchte statt vieler kleiner Tipps, die bereits von vielen anderen gegeben werden und von denen sehr viele auch sehr wichtig und fundiert sind, lieber nur einen einzigen veröffentlichen, der dafür eher in Richtung HowTo geht.

Ich möchte heute einmal vorstellen, wie einfach man sein eigenes Wordpress-PlugIn zu entwickeln kann.

Mein Tipp lautet also: entwickelt eure eigenen Wordpress-PlugIns, benutzt sie selbst und veröffentlicht sie.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

Anleitung: Entwicklungsumgebung für Firefoxextensions

 

Mozilla FirefoxWie man prinzipiell eine Firefox-Extension aufbaut habe ich bereits in folgendem Artikel hier in diesem Blog geschrieben.
Wie aber richtet man sich eine richtige Entwicklungsumgebung ein, damit man diese Extension vernünftig bearbeiten und testen kann.

Folgende Prozedur muss man bisher jedes mal durchführen, wenn man ein paar Zeilen Code verändert hat:

  • Speichern ( 1 Sekunde)
  • Dateien in Zip-Archiv komprimieren ( 2 Sekunden)
  • Extension installieren (7 Sekunden)
  • Firefox neu starten (10 Sekunden)

Macht zusammen 20 Sekunden, für manchmal nur eine einzige kleine Änderung.
Dass es schneller und besser geht indem man sich eine eigene Firefox-Extension-Entwicklungsumgebung erstellt, möchte ich heute zeigen.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 

CSS kann helfen Formular-Spam zu verringern

 

Da es immer mehr Spambots gibt kann man heutzutage auf kaum einer Website noch ein Formular ausfüllen ohne zusätzlich ein Captcha ausfüllen zu müssen.
Dies ist meist nicht nur lästig, oftmals kann man auch als echter Mensch kaum erkennen, was auf den mit Strichen und Kreisen verzierten Grafiken zu erkennen sein soll.

Weiterlesen…

These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Technorati
  • MisterWong
  • del.icio.us
  • Digg
  • BlinkList
  • Furl
 
Nächste Seite »