Die Cantorsche Paarungsfunktion08
17

Neben den Diagonalargumenten entwickelte Georg Cantor auch die Cantorsche Paarungsfunktion \(\mathbb{N}^2 \to \mathbb{W}, \quad c(x,y) = \binom{x+y+1}{2}+x = z\), die zwei beliebige Zahlen \(x,y \in \mathbb{N}\) in einer neuen Zahl \(z \in \mathbb{N}\) kodiert. So ist zum Beispiel \(c(3,4)=\binom{3+4+1}{2}+3 = \binom{8}{2}+3=\frac{8!}{6!\cdot 2!} +3 = 31 = z\) eine eindeutige Kodierung der Zahlen \(3\) und \(4\) in der Zahl \(31\). Man zeige: Die Wertemenge \(\mathbb{W} = \mathbb{N}\), d.h. \(z\) nimmt alle natürlichen Zahlen an..­.­.

Die Erde und die Erbse08
17

Man betrachte die Erde (als Kugel mit \(r_1 = 6370km\)) und eine Erbse (als Kugel mit \(r_2 = 2mm\)) und spannt über den Äquator jeweils ein Seil, sodass es straff auf der Oberfläche anliegt. Nun verlängert man beide Seile jeweils um einen Meter. Beide Seile sollen nun wieder völlig ausgedehnt über dem Äquator liegen – sie liegen nun aber nicht mehr völlig an der Oberfläche an, sondern schweben über dem Äquator. Wie hoch über der Oberfläche schwebt das Seil über der Erde, wie hoch über der Erbse?.­.­.

Wahrscheinlichkeiten an der Analoguhr08
17

In wie viel % der Zeit eines Tages befinden sich alle drei Zeiger einer analogen Uhr in der rechten Hälfte des Ziffernblattes? Zunächst betrachtet man den Stundenzeiger, der in 12 von 24 Stunden jeweils auf der rechten Seite weilt (50%). Von dieser Zeit befindet sich der Minutenzeiger in 6 von 12 Stunden auf der rechten Seite (25%). Von diesen 6 Stunden verbringt der Sekundenzeiger 3 Stunden auf der rechten Seite (12.5%)..­.­.

Bitbucket: Ordner aus Git-Historie löschen07
17

Beim Hosting von Git auf Bitbucket gibt es ein Hard Limit von 2 GB – wenn dieses überschritten wird, hat man lediglich Read-Only-Access auf das Repository. Um das zu verhindern, entfernt man beispielsweise rückwirkend große Ordner oder Dateien aus seinen Commits. Doch auch in anderen Fällen (wenn Zugangsdaten in die History gelangt sind oder mal wieder node_modules auf master gerutscht ist) muss man nachträglich die Historie von Git entgegen seiner Natur rückwirkend manipulieren..­.­.

SSL-Zertifikat von DomainFactory auf IIS einbinden06
17

In Zeiten von Let's Encrypt gelten verschlüsselte Websites inzwischen zum Standard. Doch auch Wildcard- oder Extended-Zertifikate mit besonders vertrauenswürdiger Inhaber-Validierung werden oft benötigt. Der Anbieter DomainFactory bietet hier kostengünstige SSL-Zertifikate an, die man auch extern nutzen kann. Die Einrichtung auf einem aktuellen IIS gelingt ohne CSR mit Hilfe von OpenSSL. Nachfolgend zeige ich kurz, welche Schritte dazu erforderlich sind..­.­.

OPcache PHP Bootup Optimierung04
17

Bei Webseiten, die beispielsweise auf WordPress, Joomla oder Laravel basieren und keinen userspezifischen Content haben, empfiehlt es sich, alle Seiten in einem statischen HTML-Cache vorzuhalten und den Cache nur bei Änderung im Backend manuell (oder automatisch) neu zu generieren. Beinhaltet die Seite jedoch dynamische Inhalte, die abhängig von Sessions und Cookies oder auch Sprache und Ort abhängen, eignet sich der Einsatz von OPcache..­.­.

Paradoxe Gewinnstrategie beim Erraten von Zahlen04
17

Thomas M. Cover hat 1987 in "Open Problems in Communication and Computation" folgende, verblüffende Frage gestellt: Spieler \(X\) schreibt zwei voneinander verschiedene und zufällig gewählte natürliche Zahlen \(A\) und \(B\) auf zwei verschiedene Zettel und legt diese verdeckt auf einen Tisch. Spieler \(Y\) wählt nun zufällig einen dieser Zettel aus, sieht die Zahl und muss sich nun entscheiden, ob diese Zahl kleiner oder größer ist als die andere Zahl, die noch verdeckt auf dem Tisch liegt..­.­.

Fußball & Lineare Algebra04
17

Beim Anpfiff eines Fußballspiels liegt der Ball auf dem Mittelpunkt des Feldes und wird dann 45 Minuten lang durch Verschiebungen und Drehungen über den Platz bewegt. Zu Beginn der 2. Halbzeit liegt der Ball erneut auf dem Mittelpunkt des Spielfeldes. Wir zeigen mit einfachen Mitteln der linearen Algebra, dass dann entweder stets unendlich viele Punkte der Oberfläche an exakt derselben Position sind wie im Ursprungszustand oder genau 2..­.­.

Laravel: Blade Template Debugging04
17

Beim Debuggen von Blade-Templates in Laravel 5.* erhält man oft nichtssagende, auf gecachte Views verweisende Fehlermeldungen. Dabei war früher alle besser: Die Debugging-Ansicht in Version 4 enthielt dabei hilfreichere Funktionen und war auch optisch schöner aufbereitet. Mit ein paar Zeilen Code holt man sich mit Hilfe von whoops („PHP errors for cool kids“) diese Funktionalität wieder zurück..­.­.

Harmonische Darstellung von Logos mit JavaScript04
17

Ob Referenzen, Partner oder Kunden – es gibt viele Fälle, in denen man mehrere Logos nebeneinander harmonisch darstellen will. Dabei sind die Größenverhältnisse der Logos meistens uneinheitlich. Oft folgt man hier bei der Größendarstellung im Design seinem Bauchgefühl, doch es gibt auch eine exakte Berechnungsmethode einer optisch ansprechenden Darstellung, indem man die Flächen der Logos gleichsetzt. In folgendem Beispiel gelingt das mit wenigen Zeilen JavaScript..­.­.

Variablen in PHP/JS auf Existenz prüfen03
17

Bei der täglichen Arbeit mit Variablen in PHP und JavaScript stößt man oft auf die Abfrage, ob eine Variable leer ist. Dabei lohnt es sich, die nativen Funktionen und deren Unterschiede zur Überprüfung zu kennen. Ärgerlicherweise gibt es keine einfache Methode, um im intuitiven Sinne zu überprüfen, ob eine Variable vorhanden ist oder nicht. Was damit gemeint ist, verdeutlicht nachstehende Matrix. Durch kleine Helper-Funktionen lässt sich das Gewünschte aber nachrüsten..­.­.

Rekursion in SQL03
17

Relationale Datenbankmanagementsysteme auf Basis von SQL eignen sich nur bedingt für hierarchische oder rekursive Abfragen. Hier sind andere Systeme wie ArangoDB besser (einen tollen Talk dazu gab es auf der GOTO 2016). Man kann aber auch in SQL mit Hilfe von Common Table Expressions rekursive Abfragen erzeugen und so z.B. klassische Parent-/Child-Tabellen auf alle Vorfahren und Nachfahren abfragen..­.­.

WordPress: Archivseiten deaktivieren02
17

Laut w3techs.com werden mit Hilfe von WordPress momentan ca. 27,4% aller Websites weltweit betrieben. Dabei handelt es sich in sehr vielen Fällen nicht um Blogs. WordPress generiert automatisch zahlreiche, oftmals ungenutzte URLs und produziert so viele von Google indexierte Links, die der Webseitenbetreiber so gar nicht auf dem Schirm hatte. Mit einem einfachen Befehl lässt sich das alles deaktivieren..­.­.

PDF-Formularfelder massenweise umbenennen01
17

Kommt man wie ich in die Bredouille, tausende Formularfeldnamen umzubenennen, bietet sich die in Acrobat enthaltene JavaScript-Konsole an. In dieser kann man nicht nur beliebigen JavaScript-Code ausführen, sondern auch auf sämtliche Inhalte innerhalb des PDFs (unter anderem auf Formularfelder) zugreifen. Da keine native Funktion zum Umbenennen in der JS-API existiert, werden die Formularfelder mit allen Eigenschaften kopiert und mit neuem Namen angelegt..­.­.

Shopware: Variantenwechsel reparieren12
16

In Shopware 5 ist nach wie vor ein bekanntes Problem nicht behoben: Legt man einen Artikel mit voneinander abhängigen Varianten mit sich gegenseitig ausschließenden Konfigurationsmöglichkeiten an, kann es passieren, dass im Frontend manche Kombinationen nicht anwählbar und damit nicht bestellbar sind. Mit Hilfe eines Plugins lässt sich das Problem momentan leicht beheben..­.­.

Windows Kommandozeile aufhübschen09
16

Die schnöde Windows-Eingabeaufforderung lässt sich mit wenigen Handgriffen optisch etwas aufwerten. So kann man die Kommandozeile nicht nur farblich und von der Größe her anpassen, sondern auch funktional (Erhöhung des Buffers, Installation eines großen Sets an UNIX-Tools) erweitern. Zwar kommt die Eingabeaufforderung damit nicht an die PowerShell 6.0 oder auch die neue Windows 10 Bash Shell heran, braucht sich aber für Alltagsaufgaben nicht zu verstecken..­.­.

Dynamische URLs in Joomla09
16

In Content-Management-Systemen stehen URLs oftmals nicht immer im Vorfeld fest und werden damit nicht vorab statisch (als Beitrag oder Menüpunkt) angelegt, sondern sprechen Objekte aus der Datenbank an. Ähnlich wie in WordPress (wie hier beschrieben) ist es auch in Joomla möglich, dynamische URL-Strukturen (unabhängig vom internen Alias-System) aufzubauen. Dabei bietet sich entweder JRouter an – oder man greift zu einem Einzeiler in die .htaccess..­.­.

JavaScript PasteJacking06
16

Moderne Browser können mit Hilfe von JavaScript sowohl lesend als auch schreibend auf die Zwischenablage des Benutzers zugreifen, diese also auch manipulieren. Die zugrunde liegende Technik ist bereits ein alter Hut, doch erst seit kurzer Zeit kursieren immer mehr Angriffe (unter dem Namen „PasteJacking“) im Netz, die sich diese Möglichkeit nachteilig für den unbedarften User zu Nutze machen. Eine Implementierung in JavaScript ist dabei banal..­.­.

Spalten tauschen in PostgreSQL04
16

Das Vertauschen von SQL-Tabellenspalten gehört bei MySQL zum Standardrepertoire – bei PostgreSQL wird dies (noch) nicht unterstützt. Zwar widmet das offizielle Wiki dem Problem einen eigenen Beitrag, zeigt aber keine praktikable Lösung auf, die auch Views, Indizes und Triggers unterstützt. Folgende Klasse erledigt diesen Job (sowohl für MySQL als auch für PostgreSQL) entweder auf der Kommandozeile – oder alternativ direkt in Laravel 5..­.­.

Quick-Tip für den Windows-Explorer04
16

Will man im Windows-Explorer in einem Ordner schnell die Eingabeaufforderung öffnen, klickt man (eine Ebene höher) mit der rechten Maustaste und gedrückter Shift-Taste auf den Ordner und wählt dann im Kontextmenü "Eingabeaufforderung hier öffnen" aus. Gerade habe ich eine andere, schnellere Methode herausgefunden, wenn man innerhalb des Ordners ist: Hier klickt man in den aktuellen Ordnerpfad, tippt "cmd" und bestätigt mit Enter.

WordPress Kategorien: Baumansicht/Vererbung03
16

Arbeitet man mit hierarchischen Kategorien (Taxonomien) in WordPress, stellt man fest, dass zum einen die Darstellung der angehakten Kategorien im Backend verwirrt und zum anderen Beiträge nicht automatisch in der Elternkategorie landen, wenn Sie in die Kindkategorie gesetzt werden. Beides lässt sich mit wenigen Zeilen Code über das mächtige Hook-System (in Form einer Action sowie eines Filters) gerade biegen..­.­.

IIS 7.5 PHP FastCGI Timeout12
15

Bindet man PHP per FastCGI auf dem IIS 7.5 ein, so wird jedes Script standardmäßig nach 600 Sekunden (also 10 Minuten) abgebrochen. Eine Änderung der bekannten Variable "max_execution_time" in der php.ini hat hierauf keinen Einfluss, man muss (auch) die FastCGI-Einstellungen anpassen. Hierfür bietet der IIS eine komfortable Oberfläche zur Verwaltung der relevanten Variablen..­.­.

Paradoxon der Stochastik12
15

Die bedingte Wahrscheinlichkeitstheorie bringt schöne Aufgabenstellungen mit kontraintuitiven Lösungen mit sich. Neben dem bekannten Geschwisterproblem will ich nun ein anderes Beispiel kurz abhandeln: "Inzwischen habe ich zwei Kinder. Ein Kind davon ist ein Junge und an einem Donnerstag geboren. Mit welcher Wahrscheinlichkeit ist das andere Kind auch ein Junge?".­.­.

Git, Shopware und leere Ordner08
15

Das Dateiversionsverwaltungssystem Git ist schlank, schnell und portabel. Git hantiert stets mit Objekten, nämlich Dateien. Ordner werden erst angelegt, wenn sich Dateien darin befinden, ansonsten erfasst Git diese erst gar nicht. Das hat in manchen Projekten unschöne Nebeneffekte. So ist beispielsweise das Shopsystem Shopware auf die strikte Einhaltung der Ordnerstruktur angewiesen, um zu funktionieren..­.­.

Shopware: Individuelle Versandkosten08
15

Shopware hat ein mächtiges Versandkosten-Modul, in dessen Berechnung man ganz gezielt eingreifen kann. Wir wollen in unserem Fall folgendes Szenario realisieren: Die Versandkosten pro Artikel werden zunächst nach dem Gewicht des Artikels bestimmt (die Gewichtsgrenzen sind dabei vorgegeben). Nur für spezielle Ausnahmen sollen stattdessen pro Artikel feste Versandkosten individuell festlegbar sein..­.­.

Bring your own device07
15

Man kommt bereits jetzt schon kaum an ihr vorbei, wenn man flexibel und unabhängig arbeiten will: die Cloud. Es gibt wahrscheinlich eine ganze Reihe Menschen, die die Cloud bereits nutzen, ohne es zu wissen. Beim Streaming beispielsweise ist der gesamte Content in der Cloud gespeichert und wird bei Bedarf abgerufen. Netflix ist hier ein Beispiel, das sich in Deutschland immer größerer Beliebtheit erfreut. Oder die Synchronisation von Desktop PC oder Laptop mit allen Mobilgeräten erfolgt auch größtenteils über die Cloud..­.­.

Dynamische Permalinks in WordPress07
15

Das Permalink-System von WordPress kann mit Hilfe von Structure Tags sehr gut an die eigenen Bedürfnisse angepasst werden. Dabei ist die Einstellung %postname% die wohl gängigste und praktikabelste Lösung. Will man jedoch echte dynamische Links realisieren, muss man zunächst das System mit eigenem Code erweitern..­.­.

Korrupte Hyperlinks in Word und Excel06
15

Man möchte meinen, dass beim Öffnen von Hyperlinks aus einem Word-/Excel-Dokument heraus der Standard-Browser mit der gewünschten URL gestartet wird. Dem ist eigenartigerweise nicht so – was zu unschönen Nebeneffekten führt und Links für session-/cookiebasierte logingeschützte Seiten in den besagten Office-Programmen unmöglich macht..­.­.

Ein Paradoxon zum Vatertag05
15

Zum heutigen Vatertag schenkt eine Tochter ihrem Vater ein selbstgemaltes Bild, das sich der Vater schon lange von ihr gewünscht hatte. Die Tochter sagt: „Ich schenke Dir das Bild, das Du Dir gewünscht hast, und mein Geschenk wird eine Überraschung sein“. Der Vater stutzt und überlegt sich den Wahrheitsgehalt dieser Aussage..­.­.

Dynamisch Scripte mit und ohne HTTPS einbinden04
15

Bindet man im <head>-Bereich Scripte unverschlüsselt ein und ruft eine Seite mit vorhandenem SSL-Zertifikat verschlüsselt auf, werden diese Scripte geblockt und damit nicht ausgeführt. Lässt man das Protokoll einfach weg, werden alle Scripte automatisch verschlüsselt aufgerufen, wenn per https:// der Zugriff auf die Webseite erfolgt — ansonsten unverschlüsselt..­.­.

Usability in Dropdown-Menüs04
15

Bei der Arbeit mit mehrdimensionalen Dropdown-Menüs stößt man oft auf das Problem, dass falsche Untermenüs versehentlich geöffnet oder das gewünschte Untermenü versehentlich geschlossen wird. Dieser Effekt tritt auf, wenn der Mauszeiger bei der Navigation zu einem bereits ausgeklapptem Untermenü das entsprechende Menü auf oberer Ebene verlässt..­.­.

Shopware: Varianten automatisch deaktivieren03
15

In Shopware wird bei einem Abverkaufsartikel der gesamte Artikel bei einer realen Bestellung genau dann deaktiviert, wenn alle Varianten einen Lagerbestand kleiner gleich 0 haben. Um dies auch auf Variantenbasis zu realisieren, habe ich ein kleines Plugin programmiert, dessen Bootstrap.php ich nachfolgend zur Verfügung stelle..­.­.

Doppelte Passwortabfrage bei SSL03
15

Bei folgender Konstellation kommt es stets zu einer unschönen Nebenwirkung: Schützt man seine Seite mit htaccess/htpasswd und erzwingt gleichzeitig eine SSL-Verbindung, so benötigt man stets zweimal dieselbe Passworteingabe (einmal für http und nach erfolgreicher Eingabe nochmals für https). Mit Hilfe von den in Apache 2.4 eingeführten configuration sections lässt sich das Problem einfach in den Griff bekommen..­.­.

Mehrzeilige Strings in JavaScript03
15

Bei der Programmierung mit JavaScript stolpert man oft über die fehlende Möglichkeit, mehrzeilige Strings dadurch zu realisieren, dass sie auch mehrzeilig im Code eingegeben werden. Während die Aufgabe in anderen Sprachen wie PHP oder Ruby kein Problem darstellt, kann man sich bei JavaScript zunächst nur mit Workarounds behelfen, über deren Einsatz der persönliche Geschmack bzw. die Browserunterstützung entscheidet..­.­.

Die Technologie hinter Online Casinos03
15

Seit einigen Jahren sprießen sie förmlich nur so aus dem Boden: Online Casinos. Unzählige Anbieter ermöglichen es den Glücksspielfans, sich im Internet ihrer liebsten Freizeitbeschäftigung rund um die Uhr hingeben zu können. Wer früher gerne ins Casino ging, erspart sich heute den Weg und schaltet einfach den Computer an. Doch wie genau funktioniert dieses Prinzip eigentlich?.­.­.

mail() in PHP mit UTF-8 und Umlauten02
15

Einen E-Mail-Versand mit PHP realisiert man am besten mit mächtigen Klassen wie PHPMailer. Komfortable Wrapper-Funktionen ermöglichen es, mit wenigen Zeilen Code Inhalte in UTF-8 zu verwenden, Bilder einzubetten und Anhänge verschlüsselt zu versenden. Will man sich den Overhead sparen und entgegen der Empfehlung die PHP-Funktion mail() verwenden, stößt man spätestens bei der Verwendung von Umlauten und UTF-8 auf Probleme..­.­.

Willkommen JavaScript 2.001
15

JavaScript dominiert das Web – und ECMAScript, der Kern der Sprache wird erwachsen. Die neue Spezifikation (ES6 bzw. JS2), die Mitte dieses Jahres erwartet wird, bringt zahlreiche Neuerungen mit sich, die man schon heute ausprobieren kann. Firefox bringt momentan die beste Unterstützung mit, aber auch Polyfills durch sog. Transpiler wie Google Traceur sind möglich. Es folgt eine kurze Übersicht der neuen Features von ES6..­.­.

0,99999... = 1?12
14

Ob in der Schule oder im Studium: Eine interessante Fragestellung, die einem immer mal wieder über den Weg läuft, beinhaltet die Frage, ob folgende Gleichung wahr ist: \( 0,99999... = 1 \). Obwohl im linken Teil der Gleichung die Unendlichkeit schlummert, geben wir ihm einen Namen: \(0,99999... = A\). Nach Multiplikation mit dem Faktor \(10\) und einfachen algebraischen Umformungen erhalten wir eine erste erstaunliche Erkenntnis..­.­.

SQL: Schlechte Performance trotz Index12
14

Eben war ich mit folgendem Performance-Problem einer SQL-Datenbank konfrontiert: In einer SQL-Tabelle namens „users“ mit ~1.000.000 Einträgen benötigte die Ermittlung der Anzahl der Registrierungen am heutigen Tag untragbare 28 Sekunden. In der Spalte „created“ waren die Zeitpunkte der Registrierungen im Format „Y-m-d H:i:s“ gespeichert..­.­.

Kleines Schachproblem11
14

Neben dem bekannten Springerproblem und Damenproblem gibt es in der Welt des Schachs viele weitere spannende Fragestellungen. Zwei kleine Kuriositäten habe ich in einem vergangenen Blogeintrag angerissen. Setzt man sich mit Schachproblemen mathematisch auseinander, stellt man schnell fest, dass die Mathematik für viele Fragestellungen ganz einfache und erhellende Antworten gibt..­.­.

Online verfügbare Dateien mit OneDrive10
14

Ob OneDrive, Dropbox, Google Drive, OwnCloud, Box.net: Egal in welcher Box man auch seine Dateien lagert – die Dienste gleichen sich nahezu. Die für alle Desktop- und Mobil-Systeme vorhandenen Clients, die standardmäßig unverschlüsselten Dateien sowie die Freigabeoptionen unterscheiden sich nur marginal. Doch das seit Windows 8.1 fest in das System integrierte OneDrive bringt eine Besonderheit mit: Nur online verfügbare Dateien..­.­.

PHP: Dateizugriff mit Umlauten unter Windows09
14

Dateien auf Webservern sollten stets ohne Leerzeichen (nicht "dies ist ein bild.jpg"), ohne Umlaute oder Sonderzeichen (nicht "fußball.jpg"), ohne Backslashes (nicht "Arbeit\Auto.jpg") sowie in Kleinschreibung (nicht "test.JPG") abgelegt werden. Kürzlich musste ich für ein Kundenprojekt jedoch auf eine Vielzahl vorgegebener Dateien beliebigen Dateinamens zugreifen und diese weiter verarbeiten..­.­.

SQL-Query zur Ermittlung einer Rangliste08
14

Heute bin ich bei der Arbeit an einem Kundenprojekt auf folgende Aufgabe gestoßen: Man nehme eine SQL-Tabelle "user" mit den Spalten "id" und "score" und ermittle eine anhand "score" sortierte Rangliste aller Benutzer, in der Benutzer mit der gleichen Punktzahl dasselbe Ranking bekommen. Durch den Einsatz von benutzerdefinierten Variablen kann man diese Aufgabe intuitiv und einfach lösen..­.­.

Facebook SDK: Token serverseitig prüfen08
14

Bei der Arbeit mit dem Facebook SDK (genauer bei der Implementierung einer Facebook-Login-Funktion innerhalb einer REST-Schnittstelle) muss das übermittelte Token, das der Client von Facebook erhalten hat, zunächst vom Server auf Gültigkeit geprüft werden, bevor weitere Operationen ausgeführt werden..­.­.

Chrome DevTools: DOM-Elemente ansprechen08
14

Ob Chrome, Firefox, Opera, Safari oder sogar der Internet Explorer: Nachdem ausgereifte Developer Tools bis vor einigen Jahren noch ein Alleinstellungsmerkmal von Firefox und dem populären Plugin Firebug waren, gehören heutzutage mächtige Entwicklerwerkzeuge zum Standardumfang eines jeden Browsers, in denen es viel zu entdecken gibt..­.­.

Zugriff auf das Dateisystem mit Hilfe von SQL06
14

Gerade bin ich auf eine nette Möglichkeit in MySQL gestoßen, um das Dateisystem anzuzapfen und wertvolle Informationen beispielsweise über die Existenz von Dateien und Ordnern oder deren Inhalt zu erhalten. Das kann sehr hilfreich als Alternative für die php-Funktion file_exists sein, da die Information der Existenz der Datei(en) noch im Query für weitere Sortierungs- und Aggregationsfunktionen verwendet werden kann..­.­.

Animierte Hintergründe mit Canvas06
14

Animierte Vektor-Hintergründe können Abwechslung in eine von Fullscreen-Fotos und -Videos geprägte Weblandschaft bringen. Schön wäre, wenn Ladezeiten sowie eine breite Unterstützung von Hard- und Software damit einhergehen. Eine Lösung lautet: Canvas. Das durch JavaScript gesteuerte HTML-Element wird von allen aktuellen Browsern unterstützt sowie auf mobilen Geräten performant wiedergegeben..­.­.

Festes Seitenverhältnis bei HTML-Elementen04
14

Als Webentwickler kommt man häufig in die Verlegenheit, mit HTML-Elementen zu arbeiten, die von sich aus –beispielsweise im Gegensatz zum img-Element– weder eine feste Größe noch ein festes Seitenverhältnis mitbringen. Oftmals will man, dass sich diese Objekte zwar responsiv verhalten, aber die Proportionen ihrer Breite zu Höhe erhalten bleiben..­.­.

Gerichtsurteil zum Einsatz von Stock-Fotos02
14

Nachdem in der vergangenen Woche das Landgericht Köln im RedTube-Skandal zurückgerudert ist und die Herausgabe der umstrittenen IP-Adressen nie genehmigt haben dürfen, liefert es mit der Entscheidung 14 O 427/13 erneut ein höchst umstrittenes und fragwürdiges Urteil: Der Urheber von Stock-Fotos einer bestimmten Bildagentur muss auch über den Direktaufruf seiner Bilder über deren URL genannt werden..­.­.

Adieu Block & Inline - Willkommen HTML501
14

Die Neuerungen der HTML5-Spezifikation sind zahlreich und viele davon werden bereits vom Gros der Browserlandschaft unterstützt – nachfolgend will ich eine interessante Änderung an den Regeln zur Verschachtelung von Elementen beleuchten. HTML unterscheidet seit jeher zwischen Block- und Inline-Elementen. Die Document Type Definition von HTML4 nennt beispielsweise h1, p, und div als Block- sowie a, span, img als Inline-Elemente..­.­.

HTTP-Logging auf IIS und Apache01
14

Sowohl Apache auf Unix- als auch IIS auf Windows-Systemen loggen HTTP-Requests out-of-the-box in Dateiform. Anfragen auf die eigene Webseite sollten nicht nur zum Schutz vor Hacking-Angriffen regelmäßig manuell und automatisiert (z.B. durch Logfile-Analyzer wie AWStats) ausgewertet und analysiert werden. Die Pfade der relevanten Log-Dateien lauten in weit verbreiteten Konfigurationen beispielsweise wiefolgt:

  • /var/log/apache2/access.log (Beispiel: Ubuntu 12.04, Apache 2.2)
  • C:\inetpub\logs\LogFiles\W3SVC1\u_ex<YYMMDD>.log (Beispiel: Windows Server 2012 R2, IIS 8.5)

Joomla, IIS und die Verzeichnisrechte11
13

Bei der Integration von Joomla 3.2 auf einem Windows Server 2008 R2 mit IIS 7.5 kommt es häufig zu Problemen mit Verzeichnisrechten, die oftmals mit viel zu großzügig gewählten Einstellungen unzureichend gelöst werden. Folgende Lösung ist sicher und voll funktionsfähig:

  • Die Gruppe IIS_IUSRS braucht für C:\inetpub\wwwroot\ die Rechte: Lesen & Ausführen, Ordnerinhalt anzeigen, Lesen, Schreiben
  • Die Gruppe IIS_IUSRS braucht für C:\Windows\Temp\ die Rechte: Lesen & Ausführen, Ordnerinhalt anzeigen, Lesen, Schreiben
  • Der Benutzer IUSR muss in der Gruppe IIS_IUSRS sein (Computerverwaltung > Lokale Benutzer und Gruppen > Gruppen)

Benötigt man für alle via PHP hochgeladenen Dateien weitere spezielle Verzeichnisrechte (z.B. für SSH oder FTP), setzt man diese ebenfalls für den Ordner C:\Windows\Temp\. Lädt man via PHP eine Datei hoch, so kopiert PHP diese Datei zunächst in den temporären und anschließend in den finalen Pfad. Wenn die Datei im temporären Verzeichnis gelandet ist, erbt es dessen Rechte und behält diese nach dem Verschieben in das finale Verzeichnis bei.

Anonym im Netz: Unmöglich?09
13

In Zeiten des NSA-Skandals stellen sich nicht nur netzaffine User die Frage, ob und wie man sich anonym im Netz bewegen kann, um der Datensammelwut der Behörden und Geheimdienste zu entgehen. Dabei kommt es jedoch oft zu Irrtümern und falschen Annahmen. Ein zentraler Irrglaube ist die Reduzierung der Anonymität auf die Verschleierung der IP-Adresse..­.­.

McFIT - Neues Logo, neues Image06
13

Die Discount-Fitnesskette McFIT verpasst sich selbst ein neues Gesicht. Zierte früher ein knallgelbes Maskottchen in Form einer Banane den in blau gehaltenen Schriftzug, schlingt sich nun eine gelbe Schleife auf anthrazitfarbenen Grund gekonnt ineinander und formt damit ein abstraktes Gebilde. Die FDP-Farben blau und gelb weichen nicht nur auf dem Logo, sondern auch auf allen anderen Printsachen der Marke McFIT..­.­.

Photoshop: Reise in die Vergangenheit05
13

Als 1987 die Brüder Thomas und John Knoll die Entwicklung von Adobe Photoshop aufnahmen, war ich noch nicht auf der Welt. Heute, im Jahr 2013, zählt die Software zu den populärsten Programmen im Allgemeinen und zum unangefochtenen Marktführer im Bildbearbeitungsbereich. Die Software wird nun dank Adobe und dem Computer History Museum der Nachwelt in ganz besonderer Form erhalten bleiben..­.­.

Kuriositäten im Spiel der Könige03
13

Schach fasziniert seit Jahrhunderten – seine Regeln sind leicht zu erlernen und seine unglaubliche Tiefe erschließt sich nur geübten Spielern (zu denen ich leider nicht zähle). Nachfolgend behandle ich zwei kurzweilige Fragestellungen: Ist es möglich, durch eine korrekte Zugfolge zu einer Stellung zu gelangen, in der der schwarze König durch zwei weiße Damen gleichzeitig angegriffen wird? Ist dies auch durch zwei weiße Türme möglich?.­.­.

Doku-Soap statt Blockbuster: 48fps12
12

Kinofilme werden üblicherweise mit 24 Vollbildern pro Sekunde aufgezeichnet und auch wiedergegeben – doch das fast 100 Jahre alte Standardformat „24p“ scheint zu wackeln. Um die unschönen Nebeneffekte (z.B. das starke Ruckeln bei mittelschnellen Kameraschwenks) der 24fps-Projektion zu verhindern, arbeitet man schon seit längerem an einer Verdopplung der Bildfrequenz auf nun 48 Bilder pro Sekunde und mehr..­.­.

Rechtschreibprüfung auf Webseiten11
12

Automatisierte Rechtschreib- und Grammatikprüfung gehört in Textverarbeitungsprogrammen inzwischen zur Standardausstattung – doch die Rechtschreibung einer Webseite automatisch zu überprüfen, war bisher relativ umständlich. Einen ersten Schritt in diese Richtung geht Google Chrome mit einer integrierten Prüfung in mehrzeiligen Eingabefeldern (textarea). Nun gibt es einen Dienst, der dies auch für ganze Webseiten möglich macht..­.­.

Telefonnummern in Links - ein Sicherheitsrisiko?10
12

Vor wenigen Wochen berichtete ich darüber, wie man seinen Besuchern ermöglicht, auf mobilen Endgeräten durch Antippen auf eine Telefonnummer die Telefon-App zu öffnen. Nun ist eine Möglichkeit aufgetaucht, ohne Zutun des Anwenders über derartige Links die SIM-Karte unwiderruflich zu sperren oder das Gerät auf Werkseinstellungen zurückzusetzen..­.­.

Interessante E-Mail-Kuriositäten09
12

Sollten Domainnamen und E-Mail-Adressen immer kleingeschrieben werden, um sicherzugehen, dass man auch dort hingelangt, wo man hin will? Oder ist dies völlig irrelevant? Die Mail-Server von Google haben beispielsweise kuriose Einstellungen mit interessanten Auswirkungen, die ich im folgenden Artikel kurz vorstellen werde..­.­.

Design der Börsenkurse in den Tagesthemen09
12

Aufmerksam verfolge ich die Gestaltung diverser Sendungen im deutschen Fernsehen. Kaum eine Sendung behält dabei ihr Corporate Design dauerhaft. Das allabendliche Ritual der Versammlung vor dem Fernsehbildschirm um 22:15 Uhr zu den Tagesthemen löst bei mir in letzter Zeit Bauchschmerzen aus: Bei der Vorstellung der aktuellen Börsenkurse wird seit einigen Monaten eine völlig verwirrende Farbgestaltung gewählt..­.­.

Telefonnummern richtig verlinken09
12

Optimiert man den eigenen Webauftritt für mobile Endgeräte, sollte man nicht nur auf verschiedene Bildschirmgrößen, optimierte Ladezeiten und Besonderheiten in der Bedienung (wie Hover-Effekte) achten, sondern auch auf die besonderen Fähigkeiten der Devices eingehen. Dazu gehört (manch einer hat es vielleicht vergessen) auch das telefonieren..­.­.

Duplicate Content auf Blogs09
12

Gleicher Inhalt auf verschiedenen Webseiten wird von Google in vielen Fällen abgestraft — trotzdem ist der Google-Algorithmus intelligent und erkennt, ob es sich um gleichbleibende Elemente in Header und Footer handelt oder ganze Testpassagen doppelt unter verschiedenen URLs erreichbar sind. Spannend ist die Frage, wie Google mit Blogartikel-Übersichtsseiten umgeht..­.­.

Sicherheit von WordPress erhöhen09
12

Die Sicherheit des derzeit populärsten Content-Management-Systems Wordpress kann durch das Drehen an zwei kleinen Stellschrauben signifikant erhöht werden. Dazu sind nur 5 Minuten und zwei Zeilen Code nötig. Zwar kann die Problematik auch mit einer Vielzahl von Plugins behoben werden können, ich beschränke mich hier jedoch bewusst auf pluginfreie Lösungen..­.­.

nach oben