Angepasstes Bootstrap-CSS selbst erstellen

1. NodeJS und npm installieren.

Wie das geht, hängt vom Betriebssystem ab.

Auf jeden Fall sollte man ein möglichst aktuelles NodeJS verwenden. Ich habe das folgende Verfahren mit v7.8.0 durchgeführt.

2. grunt-cli installieren.

~$ npm install -g grunt-cli

3. Aktuellen (stabilen) Source von bootstrap holen.

~$ git clone https://github.com/twbs/bootstrap.git
~$ cd bootstrap
bootstrap$ git checkout v3.3.7

4. Abhängigkeiten installieren.

bootstrap$ npm install

5. Bootstrap übersetzen.

bootstrap$ grunt dist

6. Verzeichnis für eigene Anpassungen erstellen.

bootstrap$ mkdir ../boostrap-custom
bootstrap$ cd ../bootstrap-custom

7. Dateien für eigene CSS-Anpassungen erstellen:

bootstrap-custom$ touch custom-variables.less custom-other.less
bootstrap-custom$ echo '
@import "../bootstrap/less/bootstrap.less";
@import "custom-variables.less";
@import "custom-other.less";
@import "../bootstrap/less/utilities.less";
' > custom-bootstrap.css

8. LESS CSS-compiler installieren:

bootstrap-custom$ npm install -g less

und schließlich:

9. Angepasstes bootstrap-CSS erstellen:

bootstrap-custom$ lessc -x custom-bootstrap.css > custom-bootstrap.min.css

Damit steht ein angepasstes Bootstrap-CSS als custom-bootstrap.min.css zur Verfügung. Diese kann anstelle von bootstrap.min.css verwendet werden.

Quellen:

Producing salted Password Hashes using the MD5 Algorithm

As an exercise in password storage i implemented a PHP function that takes a UTF-8 encoded Unicode cleartext, generates a random salt and produces a password hash using the MD5 algorithm.

Please note that this is just an exercise and should not be used in production.

  • This code has not been properly tested and has never been reviewed. I think it’s OK for educational purposes (otherwise i would not have published it), but it is very likely to have bugs.
  • There are computational attacks on MD5 that break the algorithms fundamental promises, they can be performed without extraordinary effort. That makes MD5 unusable for security-related purposes in the general case.
  • For PHP version 5.5 and later, you can use the password hashing API instead.

At any rate, it can be helpful to understand what the use case is and what „password hashing“ actually can accomplish. Read on for further observations.

Weiterlesen … »

Einige Bemerkungen zur neuen Webseite des Verkehrsverbundes Rhein-Neckar GmbH (VRN)

Einleitung

Ich bin selbstständiger Web-Entwickler und bin immmer auf der Suche nach interessanten Fallbeispielen, und zwar nicht nur nach den Gelungenen sondern auch nach den Problematischen. Heute möchte ich ein Beispiel für Letztere aus meinem persönlichen Erfahrungsbereich präsentieren.

Als zahlender Kunde freut es mich zwar, dass der öffentliche Verkehrsverbund der Region, VRN GmbH sich zu einer Modernisierung seines Online-Angebots www.vrn.de entschlossen und eine Webseite mit vielen sinnvollen und interessanten Informationen und Funktionen umgesetzt hat.

Leider muss ich aber feststellen, dass sich die Leistungsfähigkeit der Webseite seit deren Erneuerung insgesamt verschlechtert hat und dass gerade bei wichtigen Funktionen wie der Fahrplan-Auskunft spürbar höhere Ladezeiten und störende Fehlfunktionen auftreten, die die Bedienung langsamer und umständlicher als bei der Vorversion machen. Dies möchte ich im Folgenden anhand von vier Beispielen belegen.

Weiterlesen … »

USB-WLAN-Adapter mit externer, ausrichtbarer Antenne

Habe jetzt den Edimax EW-7811UAC (Hersteller-Seite) am Linux-Laptop im Einsatz, um Probleme mit der Verbindungsqualität beim Einsatz im Aussenbereich zu beheben.

Treiber: https://github.com/diederikdehaas/rtl8812AU

Hinweis: Andere Varianten des rtl8812-Treibers haben es nicht geschafft, das Gerät zu erkennen bzw. zu initialisieren.Ich verwende Linux Kernel Version 4.1.0.

Alles bestens:

  • Das Gerät funktioniert mit diesem Treiber problemlos, es etabliert 150Mb/s mit 2,4 GHz an einem TP-LINK TL-WR941ND.
  • Das in der README, Abschnitt „DKMS“ beschriebene Verfahren funktioniert ebenfalls.

Apfelblüte

Ausgesprochen schön in dieser Region sind Kirsch- und Apfelblüte. Hier ein sehr alter gelber Kirschbaum:

Gelber Kirschbaum

Gelber Kirschbaum

Einige Apfelbäume aus der Region:

Grüne Apfelblüte

Grüne hochstämmige Apfelblüte, aufgenommen bei diesigem Wetter.

Apfelbäume #1

Traditioneller Streuobst-Apfelbaum am Wegesrand.

Apfelbäume #2

Detail-Ansicht #1

Apfelbäume #3

Detail-Ansicht #2

Rejecting Microsoft Executables and Office Documents with Postfix

Update July 16th 2020: A reader has pointed out to me that the regular expression did not (or did not always) match if the filename of the attachment contained non-ASCII characters, opening a simple way to circumvent this header check. I was able to reproduce this behavior by sending a mail with a single attachment „täst.zip“ using Evolution which arrived at Postfix MTA with a MIME-structure like this:

...
Content-Type: multipart/mixed; boundary="=-PAoNeMrNohfkW7sWEPJ5"
...
--=-PAoNeMrNohfkW7sWEPJ5
Content-Type: application/zip; name*=ISO-8859-1''t%E4st.zip
Content-Disposition: attachment; filename*=ISO-8859-1''t%E4st.zip
...

Note the value of the Content-Type header, and there the part name*=ISO-8859-1''t%E4st.zip.

Please compare this to what arrives if i send a mail with an attachment „test.zip“ instead:

Content-Type: application/zip; name="test.zip"
Content-Disposition: attachment; filename="test.zip"

In the below suggestion for mime_header_checks i have made the following changes:

  • Change = to \*?= to allow for RFC 2231 Parameter Value Character Set and Language Information.
  • Include the surrounding sturcture from the second example in the EXAMPLES section of http://www.postfix.org/header_checks.5.html which specifically covers the case that the „.“ in the filename could arrive encoded as quoted printable =2E.

Here is a pcre-entry for Postfix‘ mime_header_checks that will cause Postfix to reject any email containing

  • a file potentially containing code that is executable on Microsoft operating systems (note that this also includes filenames ending with .js) or
  • a document for Microsoft Office (including Access, Excel, Powerpoint, Visio and Word including RTF Documents) or
  • some archive types (ZIP-, 7Zip-, LHA-Archives and MS Exchange data in TNEF format):
# Contents of file "/etc/postfix/mime_header_checks":
/^Content-(Disposition|Type).*name\s*\*?=\s*"?([^;]*(\.|=2E)(
    accd[bert]|
    do(b|[ct][mx]?)|rtf|
    pp(am|(s|t)[mx]?)|pot[mx]?|sld[mx]|
    v[dt]x|vs[dsxt]|
    xl(am?|l|m|[st][mx]?|sb|w)|
    386|
    ad[ep]|app|as[dfx]|
    ba[st]|
    cab|c[bp]l|chm|cmd|com|crt|csh|
    dll|
    exe|
    fxp|
    hlp|ht[aor]|
    in[fips]|isp|
    jar|jse?|
    ksh|
    lib|lnk|
    md[bet]|ms[cipt]|
    ocx|ops|
    pcd|pif|prg|
    reg|
    sc[rt]|sh[bms]?|swf|sys|
    url|
    vb[esx]|vcs|vxd|
    wm[dsz]|
    ws[cfh]|
    7z|lha|tnef|zip))(\?=)?"?\s*(;|$)/x
        REJECT Attachment of type $2 not accepted

Weiterlesen … »

Windows 7 auf 4k: Verwaschene Darstellung der CYGWIN-Console

Wer auf Windows 7 auf einem Bildschirm mit hoher Pixeldichte im CYGWIN-Terminal eine „verwaschene“ bzw. unscharfe Darstellung der Schrift feststellt, muss wahrscheinlich für die Terminal-Anwendung mintty.exe eine Ausnahme von der „Globalen DPI-Skalierung“ einrichten. Für mintty.exe ist das aber gar nicht so einfach, und wie ich es geschafft habe, beschreibt dieser Artikel.

Weiterlesen … »

Windows 7 auf 4k: Nach Display-Neustart alle Fenster zu klein und links oben

Der Samsung U28E590D ist ein schöner 4k-Monitor, der sich gerne ausschaltet, um Energie zu sparen. Das finde ich gut.

Jedoch tritt dann bei mir der Effekt auf, dass nach dem Powercycle des Displays alle Fenster auf 640×480 Pixel größenverändert und in die linke obere Bildschirmecke verschoben sind.

Meine Konfiguration:

  • Samsung U28E590D, Auflösung 3840×2160.
  • Anschluss via DisplayPort.
  • Nvidia Geforce GTX 760.
  • Windows 7 Professional 64bit.

Reproduziert werden kann das Problem, in dem man ein paar Fenster aufmacht, über den Bildschirm verteilt und dann den Monitor einmal aus- und wieder anschaltet. Wenn die Fenster danach alle oder teilweise links oben auf 640×480 Pixel geändert sind, hat man dieses Problem.

UPDATE: Obwohl das in diesem Artikel beschriebene Verfahren unmittelbar Abhilfe geschaffen hat, ist es nach einigen Neustarts wieder aufgetreten und kann nun nicht mehr wie in diesem Artikel beschrieben behoben werden. Ich möchte ein Update nachreichen, sobald mir eine bessere Lösung bekannt ist, die nicht „Upgrade auf Windows 10“ lautet. 😉

Weiterlesen … »