Etwas erklären übers Web

March 5th, 2010

Das ist oft einfacher gesagt als getan. Eine Beschreibung reicht oft nicht. Videos können genau zeigen wie etwas geht, aber sind oft zu genau, weil zuviele Details gezeigt werden, die nicht relevant sind.

Individuell angepasste Zeichnungen in einem Video sind oft am deutlichsten. Die Firma ixxie habe ich zufällig gefunden und die machen auf einer Webseite deutlich, warum solche Videos wirken.

Ist zwar holländisch, aber es ist klar, worum es geht.

http://www.ixxie.nl/

PHP-Datenbankzugriff über PDO

March 3rd, 2010

Wie in einem anderen Posting erklärt ( http://donauweb.at/ebusiness-blog/2009/11/15/sicherheit-security-eines-webshops-verbessern/ ), gibt es bei PHP keine 100% Maßnahmen gegen SQL-Injection mit konventionellem Datenbankzugriff. Nur parametrisierte SQL-Befehle bieten mehr Sicherheit. Es ist daher empfehlenswert, nur noch PDO für Datenbankzugriffe zu verwenden.

Um Datenbankzugriffe mit PDO zu vereinfachen habe ich eine Bibliothek-Klasse geschrieben für den Zugriff auf eine Datenbank mittels PDO. Diese Klasse bietet Funktionalitäten wie bei ADODB. Die wichtigsten sind:

  • pdoGetAll($sql, $data) und pdoGetRow($sql, $data) liefern ein oder mehrere Datensätze als Array zurück.
    Der SQL-Befehl kann Parameter beinhalten, deren Werte in $data mitgeliefert werden.
    zB $sql = “select * from table where id=:id”
  • pdoGetAssoc($sql, $data) holt das gleiche Resultat wie pdoGetAll, jedoch wird die erste Spalte zum Index vom Array. Dadurch ist das Lesen von zB definierten ID-Werten nachher wesentlich einfacher.
  • pdoInsUpd($table, $data, $insert_or_update, $where) erstellt einen INSERT oder UPDATE SQL-Befehl an Hand der übergebenen Parameter und führt diesen Befehl aus.

Die Klasse kann als OpenSource downgeloadet werden.

User am Browser erkennen

February 24th, 2010

Der Browser schickt soviel spezifische Informationen mit, dass man einen einzelnen Benutzer oft nur am Browser erkennen kann.

Zusätzlich zum http-Header braucht man dazu noch ein Javascript, welches sich die installierten Fonts, Browser Plugins und SuperCookie-Infos holt.

Siehe hier: https://panopticlick.eff.org/

Wie mache ich einen Screencast?

January 27th, 2010

Dafür gibt es einige Tools:

http://www.tripwiremagazine.com/2010/01/28-seriously-useful-tools-for-creating-your-own-screencast.html

Streaming günstig

January 14th, 2010

Ab sofort gibt es bei Amazon über S3 und Cloudfront auch Video Streaming. Damit lohnt sich Streaming auch für Firmen, die nur wenig Videos haben.

Vorteile:
- Amazon verteilt den Content weltweit auf mehrere Server und daher ist die Distanz vom Browser zum Server geringer als wenn es nur einen Server weltweit gibt. Amazon schaut bei jedem Request nach, welcher Server am nächsten ist.
- Amazon verrechnet nur einen Preis pro Gigabyte (unter 20 Cent), es gibt sonst keine Kosten.

Tools zum Uploaden und Verwalten von Dateien in Amazon S3 und Cloudfront:
- Cloudberry S3 Explorer
- S3Fox (Addon für Firefox)

Beschreibungen wie man Flash verwaltet:
- Longtailvideo.com
- Amazon

Warum PDF mit PHP erstellen?

January 9th, 2010

Und warum sollte man ein PDF denn mit PHP erstellen? Man hat ja üblicherweise sein PDF aus einer anderen Applikation erstellt und will es nur auf den Webserver hochladen …

Google kann PDF-Dateien lesen und da PDF-Dateien meistens langlebiger sind als Webseiten werden diese PDF-Dateien von Google relativ hoch bewertet. Also gelten für PDF-Dateien die gleichen Regeln wie für HTML-Dateien:

Wichtige Stichwörter öfters verwenden, Links zur Website angeben, gerne auch Deeplinks (denn in Deeplink-URLs kommen die Stichwörter wieder vor).

Weiters will auch der Kunde vielleicht eine allgemeine Info zur Firma, wenn er ein PDF liest. Vielleicht holt er das PDF ja nicht von der Website der betreffenden Firma sondern über einen anderen Link (zB Google).

Aus obenstehenden Gründen macht es Sinn, PDF-Dateien, die man erstellt hat, mit PHP am Server nachzubearbeiten. Dabei werden neue Seiten mit diesen Informationen zugefügt.

PDF erstellen mit PHP

January 9th, 2010

Am besten geht das mit TCPDF. TCPDF kann aus HTML ein PDF erstellen und das erleichtert die Sache sehr. Natürlich kann TCPDF nicht alle HTML-Tags und Attribute, aber da man in PHP das HTML selber erstellen kann, ist das leicht zu berücksichtigen.

Wenn zusätzlich PDF-Dateien eingelesen werden müssen, um neue Seiten einzubinden, oder PDF-Dateien zu mergen, dann kann zusätzlich PDI verwendet werden. PDI kann PDF-Dateien einlesen. Das Zusammenspiel von PDI mit TCPDF ist problemlos. Wenn TCPDF inkludiert wird, bevor man ein PDI-Objekt instanziert, dann ist PDI automatisch von TCPDF vererbt.

http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf
http://www.setasign.de/products/pdf-php-solutions/fpdi/

Sicherheit/Security eines Webshops verbessern

November 15th, 2009

Wenn man einen Webshop laufend beobachtet, dann findet man immer wieder Angriffe auf den Webshop. Hacker versuchen, Schwachstellen des Webshops auszunutzen. Hier folgen einige Methoden, wie Hacker versuchen einzubrechen und was man dagegen unternehmen kann.

Angriffe auf Webshops und Schutz dagegen

Erklärung von Anriffsmöglichkeiten
http://www.suspekt.org/2009/06/16/dutch-php-conference-the-slides/

Viele interessatnte Artikel über Sicherheit
http://entwickler.de/zonen/portale/psecom,id,125,nodeid,.html
http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet

Wie funktioniert SQL-Injection genau?
http://www.securiteam.com/securityreviews/5DP0N1P76E.html
http://unixwiz.net/techtips/sql-injection.html

Angriffserkennung in PHP
http://php-ids.org/

XSS-Tricks
http://ha.ckers.org/xss.html

XSS-Schutz in PHP
http://wiki.flux-cms.org/display/BLOG/XSS+Prevention

Die wohl beste Bibliothek zur Prüfung von Form-Eingaben
HtmlPurifier

top-15-free-sql-injection-scanners

Sicherheitsberater, die Angriffstests durchführen (Penetration Test)
(ich habe einige kontaktiert, bei diesen hatte ich ein gutes Gefühl)

http://www.redteam-pentesting.de
https://www.mark-semmler.de
http://www.internet-sicherheit.de
http://www.it-sec.de/

Titanium bringt das Web in den Desktop

October 24th, 2009

Desktop-Applikationen schreiben mit Web-Technologie:

Applikation schreiben in JavaScript, HTML, CSS, Python, Ruby und bald PHP
und laufen lassen auf Windows, Mac OS and Linux

Titanium ist ein Framework mit inkludiertem Browser und Zugriff auf alle Betriebssystem-Funktionen.

Titanium Desktop
Mehr Info auf http://www.codestrong.com/
Slideshow Intro
Diskussionsforum http://support.appcelerator.net/home

JQuery macht Form-Elemente schöner

August 28th, 2009

… und auch praktischer:

http://www.queness.com/post/204/25-jquery-plugins-that-enhance-and-beautify-html-form-elements

absolute Position ermitteln mit JQuery

August 26th, 2009

JQuery kann mit postion() die Position eines Elements ermitteln, allerdings nur relativ zum nächsthöheren absolut positionierten Element. Untenstehend Code der die absolute Position eines Elements zum Fensterrand ermittelt.

xpos=$(this).position();
xtop=xpos.top;
xleft=xpos.left;
currentTag = $(this).offsetParent();
while(currentTag[0].tagName!=’BODY’) {
p=currentTag.position();
xtop+=p.top;
xleft+=p.left;
currentTag = currentTag.offsetParent();
}

Interessantes PM-Tool

August 1st, 2009

online, einfach und doch sinnvoll, gratis

http://www.thebigpic.org/

Jquery Plugins nur laden wenn notwendig

June 20th, 2009

In einer Webapplikation ist es mühsam, zu verwalten, auf welcher Seite welche JQuery-Plugins benötigt werden. Das JQuery-Plugin “Lazy” nimmt einem diese Arbeit ab. Plugins werden nur dann inkludiert, sobald ein bestimmter Funktionsaufruf stattfindet.

http://www.unwrongest.com/projects/lazy/

JQuery Tipps

June 20th, 2009

25 wirklich exzellente Tipps für JQuery:

http://www.tvidesign.co.uk/blog/improve-your-jquery-25-excellent-tips.aspx

Schnellere Webseiten

June 20th, 2009

Die besten Tipps von Yahoo:

http://developer.yahoo.com/performance/rules.html

High performance Ajax Applications

June 20th, 2009

So macht man schnelle Webapplikationen mit JS, CSS, AJAX:

http://yuiblog.com/blog/2007/12/20/video-lecomte/

CSS-Tipps

June 20th, 2009

50 wirklich interessante CSS-Tipps:

http://www.smashingmagazine.com/2008/12/09/50-really-useful-css-tools/

PHP beschleunigen

June 20th, 2009

Hier gibt es einige Tipps zum beschleunigen von PHP-Code:
http://reinholdweber.com/?p=3
http://www.hm2k.com/posts/50-php-optimisation-tips-revisited

Aber … manche Maßnahmen zur Beschleunigung reduzieren die Lesbarkeit der Applikation. Das macht dann die Wartung zeit- und kostenintensiver und aus diesem Grund muss man immer überlegen, was in welchem Fall wichtig ist.

Caching

June 20th, 2009

Caching kann die Response des Browsers sehr beschleunigen. Grundsätzlich gibt es 2 Ansätze:

  1. Caching im Browser
    Der Server muss dem Browser Anweisungen senden, damit der Browser ganze Dateien cacht.
  2. Caching im Server
    Der Server cacht HTML von Teilen von Webseiten. Diese Teile müssen dann nicht mehr für jeden Aufruf neu generiert werden. Die gesamte Seite kann personalisiert sein, denn es kann auch Seitenteile geben, die nicht gecacht werden.

Caching ist sehr gut erklärt in diesem Artikel (ist von Nov. 2007 aber immer noch aktuell):
http://www.sitepoint.com/article/caching-php-performance/

Eine weitere Art des Cachings, die (1) und (2) kombiniert:
Die Teile einer Seite, die aktuell sein müssen, werden mit AJAX inkludiert. Dann kann die gesamte HTML-Seite im Browser gecached werden. Bei einem erneuten Aufruf der Seite im Browser wird die Seite aus dem Cache geladen, der AJAX-Aufruf findet aber erneut statt und dieser Teil der Seite ist somit immer aktuell.

Ein Nachteil dieser Methode ist, dass auch beim 1. Aufruf der Seite 2 http-Requests erforderlich sind um die gesamte Seite anzuzeigen.

Online zusammenarbeiten für Dummies

June 19th, 2009

SVN kennt jeder, der in der SW-Entwicklung tätig ist.

Ein ähnliches Produkt für den privaten und Business-Bereich gibt es jetzt: http://www.teamdrive.net
Die Software synchronisiert ein lokales Verzeichnis mit einem Verzeichnis auf einem WEBDAV-Server. Benutzerrechte können konfiguriert werden. Die SW ist gratis, 100MB Upload monatlich ist auch gratis, danach wird es kostenpflichtig. Ein eigener WEBDAV-Server kann auch genutzt werden.

Slideshow im Browser

June 18th, 2009

Hier eine Auflistung der besten browserbasierten Slideshow-Lösungen:

http://finnrudolph.de/ImageFlow (nutzt das Scrollrad)
http://www.malsup.com/jquery/cycle/ (mit JQuery)
http://www.buildinternet.com/project/supersized/ (vergrößert alle Bilder auf Fenstergröße)
http://www.hieu.co.uk/blog/index.php/imageswitch/

Scrollrad im Browser verwenden

June 18th, 2009

Hier ist beschrieben, wie man das Scrollrad in Javascript nutzen kann:
http://adomas.org/javascript-mouse-wheel/

Und hier eine Applikation die das Scrollrad verwendet:
http://finnrudolph.de/ImageFlow

Useraktionen eines einzelnen Users direkt verfolgen

June 18th, 2009

Das geht mit http://userfly.com

Sehr interessante Applikation, man kann mitverfolgen, was ein einzelner User gemacht hat. Wo geklickt wurde, was in Felder eingegeben wurde, etc. Es ist noch nicht perfekt (zB AJAX funktioniert nicht), aber schon verwendbar.

Gratis gibt es 10 Aufnahmen im Monat, für mehr wird ein Beitrag verlangt.

Alte Internet Explorer testen

May 2nd, 2009

Eine Website mit einem alten Internet Explorer testen geht mit diesem Tool:
http://finalbuilds.edskes.net/iecollection.htm

Alle IE Versionen von 1.0 bis 8.0 sind inkludiert. Mal sehen, was mit IE 1.0 noch funktioniert …

Lenovo Notebooks

March 31st, 2009

Lenovo hat die Notebook-Sparte von IBM übernommen. So lange wie Lenovo die IBM-Modelle verkauft hat, war alles in Ordnung. Nun sind neue Modelle gekommen, die von Lenovo entwickelt wurden. Die Thinkpad SL300, SL400, SL500 Serien. Thinkpad ist nur der gemeinsame Name mit den IBM-Modellen, die Qualität hat nichts mit den IBM-Thinkpads zu tun.

Viele Notebooks dieser SL-Serie haben einen sehr lauten Lüfter, der sich nie abschaltet. Dies ist extrem störend. Sehr viele Käufer haben diesen Mangel erkannt und im Lenovo-Forum um Abhilfe gebeten. In diesem Forum läuft seit 16.9.2008 eine Diskussion mit inzwischen 292 Postings. Lenovo hat ab und zu ein Posting geschrieben, sonst hat sich nichts verbessert. Also nicht nur die Qualität sondern auch das Kundenservice von Lenovo lässt zu wünschen übrig.

Forum: http://forums.lenovo.com/lnv/board/message?board.id=SL_ThinkPads&thread.id=125

Aus meiner Erfahrung kann ich daher Lenovo Notebooks nicht empfehlen!

PDF erstellen un bearbeiten mit PHP

March 15th, 2009

1) PDF erstellen: FPDF

2) Portable Document Markup Language ist eine Markup-Sprache mit der PDF-Dokumente mittels FPDF erstellt werden.

3) UTF-8 Support für FPDF: UFPDF

4) xhtml2pdf erstellt PDF-Dateien aus XHTML mittels FPDF

5) PDF erstellen mit einem PDF als Hintergrund: FPDI

6) 2 PDF-Dateien in eine mergen bzw. eine PDF-Datei in 2 Dateien splitten: SetaPDF (kommerziell)

HTML-Tag CANVAS

February 25th, 2009

Hier ein paar Links zum neuen CANVAS TAG in HTML5. Ich finde, für einfache Grafiken ist es gut zu verwenden. Vorteil ist, dass man keine zusätzliche Software wie Flash benötigt.

Bei den Links sind sehr gute und auch lustige dabei.

http://www.ajaxschmiede.de/canvas/einfuehrung-in-canvas/
http://www.golem.de/0902/65243.html
http://www.benjoffe.com/code/demos/canvascape/
http://www.snipersystems.co.nz/community/polarclock/tutorial.html
http://langexplr.blogspot.com/2008/11/using-canvas-html-element.html
http://skimpygimpy.sourceforge.net/canvas.html
http://code.google.com/p/paintweb/
http://arapehlivanian.com/wp-content/uploads/2007/02/canvas.html
http://mozilla.doslash.org/stuff/canvas/shell.html
http://www.blobsallad.se/
http://glimr.rubyforge.org/cake/canvas.html#RectangleWave
http://code.google.com/p/flot/
http://www.ajaxline.com/libraries-and-examples-for-working-with-canvas

Turnover statistics plugin for OsCommerce

January 16th, 2009

A new plugin for OsCommerce creates nice turnover statistics.

Graphical in Flash and in a table.

More info and download:
http://synctables.com/turnover-statistics-for-oscommerce.php

oscommerce turnover statistics plugin

Comments for the developer of this plugin
can be entered on this page.

Software für IT-gurus

November 5th, 2008

Eine lange Liste von interessanten Programmen für eBusiness Analysten und Entwickler:
http://software.jonasjohn.de/.

HTMLSQL

November 5th, 2008

HTMLSQL extrahiert Teile aus einer HTML-Seite, wie SQL Teile aus einer Datenbank extrahiert. Interessante Idee!

SELECT href,title from a WHERE $class=’list’

http://www.jonasjohn.de/lab/htmlsql.htm