Sprüche und Wünsche für alle Lebenslagen

Ein Portal mit Sprüchen für den gesamten Lebenszyklus: Von Geburt über Geburtstag zu Freundschaft, Liebe, Hochzeit, guter Besserung und Kondolenz.

Mal in eigener Sache: Wir haben da ein Sprücheportal unter sprueche-wuensche.de im Angebot, von dem einfach noch nicht genug Menschen wissen. :-) Dort gibt es im besten KISS-Design (Keep it simple and stupid) eine handverlesene Auswahl an Sprüchen für alle Lebenslagen.

Screenshot sprueche-wuensche.de Kategorie Liebesgedichte

  • Geburtstagswünsche. Brauch eigentlich jeder, der schriftlich gratulieren möchte. Karte auf dem Tisch, Stift daneben, und schnell den Heine, Schiller oder Goethe zitiert. Die hatten nämlich alle schon mal was zum Thema Geburtstag zu sagen.
  • Geburtstagssprüche. Sowas sucht man dann eher für eine Geburtstagsrede, denn zum gratulieren.
  • Geburtagsgrüsse. Da gibt es Parallelen zu den Geburtstagswünschen. Aber hey! Ein bisschen Struktur muß schon sein, oder?
  • Freundschaftssprüche. Guten Freunden gibt man ein Küsschen. Oder zwei. Und wenn das gerade nicht geht, sollte immer Zeit sein, um mal ein schönes Freundschaftssprüchlein zu versenden.
  • Geburt. So eine Geburt ist ein tolles Ereignis; da will man auch mit dem passenden (tollen) Geburtsspruch aufwarten können. Eine feine Auswahl an Glückwünschen zur Geburt, die über “Ein Kind ist sichtbar gewordene Liebe” von Novalis hinausgehen.
  • Hochzeit. Noch so ein schönes Ereignis – die Hochzeit! Da kann man sich lange den Kopf nach einem individuellen Hochzeitswunsch zermartern. Oder in unserer Sprüchesammlung nachschauen, und sich inspirieren lassen.
  • Liebesgedichte. Wer es romantisch mag, greift zu einem Liebesgedicht. Das kann man selber schreiben, oder sich der Ergüsse poetisch begabter(er) Dichter und Denker bedienen.
  • Liebessprüche. Liebessprüche müssen nicht unromantisch sein, bringen die Botschaft aber in kürzerer Form auf den Bildschirm, als dies die – üblicherweise längeren – Liebesgedichte tun.
  • Gute Besserung. Wenn’s jemandem mal nicht so gut geht, können aufmunternde Sprüche bei der Rekovaleszenz helfen.
  • Nachdenkliches. Tiefsinnig und voller Bedeutung. Es gibt auch Sprüche, die sich mal intensiv, mal kritisch und mal leichtfüssig mit bestimmten Themen auseinandersetzen. Don’t be shy, give it a try!
  • Kondolenz. Ein Trauerfall ist niemals schön, daher kann man auch nur schwerlich von schönen Beileidsbekundungen sprechen. Aber auch in der Kategorie Trauersprüche gibt es Spreu und Weizen – vielleicht ist uns auch bei diesem Thema eine gute Auswahl gelungen.

Das Portal ist voll responsiv und lässt sich auf allen Bildschirmgrößen angenehm bedienen. Es mag aus Design-Sicht nicht “der letzte Schrei” sein, ist aber durch seinen radikalen ReDux-Ansatz (reduced to the max) turboschnell. Keine Animationen oder ressourcenfressende Parallax-Animationen, sehr sparsamer Grafikeinsatz, keine Plethora an Javascript-Libraries für nicht-UX-steigerndes Chichi und die Google Speed Insights attestieren 100/100/100.

So geht Internet heute!

C64 Daten von Floppy (1541) mit OpenCBM auf Mac sichern

Daten von einer 1541-Floppy auf den Mac übertragen. Das geht! Hier eine Schritt-für-Schritt-Anleitung mit OpenCBM on Mac.

C64 – die Netzhautpeitsche

C64 mit Schachbrett-Tastatur Mein C64 ist seit Ewigkeiten in Rente und fristet seit mehr als 25 Jahren im Keller ein trauriges Dasein. Alle paar Jahre, oder eher Jahrzehnte, wurde er exhumiert und in Betrieb genommen, um mal wieder so richtig im Retro-Feeling zu schwelgen. Bis nach ein paar Runden Delta, Rambo oder Gianna Sisters der Charme ganz schnell verflogen ist. Die HD-Ultra-Mega-4k-gewöhnten Augen können stecknadelkopfgroße 8-Bit-Pixel nicht mehr lange ertragen.

Mach’ mir den SIDney!

Und nur für die – nach wie vor – grandiose SID-Musik muss man nicht das vergilbte Original-Equipment aus dem Keller schleppen. Das geht einfacher auf dem PC oder Mac bspw. mit der High Voltage SID Collection (HVSC), die unglaubliche 46.000+ C64 Songs bereitstellt. Da kann man sich ein schönes Mix-Tape für die nächste Autofahrt zusammenschneiden. Infos dazu übrigens im Artikel zu C64 Klingeltönen für’s iPhone.

Wahrer Altruismus aka “die nahende Trennung”

Bisher konnte ich mich nicht von der Brotkiste trennen, weil so viele gute Erinnerungen damit verbunden sind. Und ich eine, aus heutiger Sicht, absurde Menge Lebenszeit in die Maschine gesteckt habe. Aber die (Umzugs)Kiste, in der die (Brot)Kiste steckt, hat nun genug Keller gesehen. Es gibt Fans des Retro-Computings, die mit dem C64 vielleicht noch etwas sinnvolles anstellen können. Also weg damit!

Altlastensicherung

Doch es gibt noch etwas zu tun. Auf den ebenfalls noch vorhandenen 5 1/4 Zoll Floppy Discs schlummern unzählige Demos, Programme und andere Grausamkeiten meiner damaligen Programmierkünste, die ich selbstverständlich der Nachwelt erhalten möchte. Die Wahrscheinlichkeit ist zwar hoch, dass das “die Nachwelt” wenig bis null, nicht, zero, gar nicht interessiert, aber da halte ich es wie Richard Feynman und frage: Kümmert Sie, was andere denken? (Gutes Buch, BTW.)

Wie Daten vom C64 auf den PC/Mac transferieren?

ZoomFloppy V1.0 Die Kernfrage für dieses Datensicherungsunterfangen: Wie kommen die Programme von den labbrigen Floppy Discs auf den PC oder Mac? Findige Retro-Tüftler haben da so einiges zusammengelötet und meine Wahl fiel auf die ZoomFloppy v1.0 Platine. Damit wird ein Floppy-Laufwerk, in meinem Fall eine 1541, über die Platine mit dem PC oder Mac verbunden.

Der C64 wird für den Datentransfer nicht benötigt, allerdings eine passende Software auf dem PC/Mac, um die ZoomFloppy anzusteuern. OpenCBM ist so eine Software, die auf dem PC leicht in Betrieb genommen werden kann, da es vorkompilierte Packages gibt. Wie sich zeigte, war die Datensicherungsgeschichte mit dem Mac eine größere Herausforderung. Insbesondere, da es exakt nur eine einzige Anleitung im Netz zu geben scheint, wie denn OpenCBM auf dem Mac zum Laufen gebracht werden kann. Ok, habe nicht wochenlang recherchiert, aber egal wie man sucht, landet man am Ende doch immer wieder bei Lallafas Blog Artikel OpenCBM on Mac. Eine gute Anleitung, die nur leider bei mir nicht funktioniert hat.

Aber Lallafas Artikel enthielt genug Hinweise und Erläuterungen, um die nötigen Schritte quasi “von Hand” auszuführen. Hier ist also meine Schritt-für-Schritt-Anleitung, für alle, die sich mal wieder so richtig schön auf der Kommandozeile austoben möchten. *gg*

OpenCBM on Mac: HowTo für echte Kommandozeilenmänner

  1. XCode Developer Tools installieren. Bei mir war’s Version 6.3.1.
    Am einfachsten lässt sich XCode über Apples App Store installieren.
  2. Command Line Developer Tools installieren. Setzt die Existenz von XCode (vorheriger Schritt) voraus. Viele der folgenden Schritte erfolgen im Terminal; das $-Zeichen steht für den Terminal-Prompt. Zur Installation der Command Line Developer Tools folgenden Befehl ausführen.
    $ xcode-select --install
  3. XCode Lizenzbestimmungen zustimmen. NB: sudo erfordert in der Regel die Eingabe des (Admin-)Passwortes.
    $ sudo xcodebuild -license
  4. MacPorts installieren. Hier wird von macports.org das Package für die eigene MacOS Version benötigt. In meinem Fall war das Yosemite.
    Download von der MacPorts-Seite https://distfiles.macports.org/MacPorts/MacPorts-2.3.3-10.10-Yosemite.pkg.
    Danach das Paket mit Doppel-Klick installieren.
  5. MacPorts aktualisieren.
    $ sudo port -v selfupdate
  6. cc65 Compiler installieren. Den brauchen wir später, um OpenCBM zu kompilieren.
    $ sudo port install cc65
  7. USB Legacy Treiber installieren. Für den späteren Betrieb von OpenCBM.
    $ sudo port install libusb-legacy
  8. Verzeichnis für OpenCBM anlegen und hineinwechseln. Hier im Beispiel als Unterverzeichnis im Home-Verzeichnis des angemeldeten Nutzers.
    $ mkdir ~/opencbm && ~/opencbm
  9. OpenCBM runterladen. Das geht auf der Kommandozeile bspw. mit curl. NB: Ich habe Version 0.4.0 vom 28.04.2006 verwendet obwohl die aktuelle Version 0.4.2a vom 22.12.2007 ist. Wahrscheinlich ist es “safe”, die aktuelleste Version zu verwenden, aber ich halte mich hier in der Anleitung an das, was funktioniert hat.
    $ curl -o opencbm-0.4.0.tar.gz http://sourceforge.net/projects/opencbm/files/opencbm/opencbm-0.4.0/opencbm-0.4.0.tar.gz/download
  10. OpenCBM Archiv entpacken.
    $ tar xzvf opencbm-20110130.tgz && rm opencbm-20110130.tgz
  11. Verzeichniswechsel in den richtigen Unterordner.
    $ cd opencbm-20110130 && cd opencbm
  12. OpenCBM kompilieren. Dafür hatten wir in Schritt 6 den cc65 Compiler installiert. Nach erfolgreicher Kompilierung von OpenCBM werden die ausführbaren Dateien nebst man(ual)-Dateien automatisch an die richtigen Stellen im File-System kopiert. Nach Eingabe des folgenden Befehls erstmal Käffchen kochen.
    $ sudo make -f LINUX/Makefile PREFIX=/opt/local MANDIR=/opt/local/share/man/man1 install-all
  13. OpenCBM konfigurieren. Da ist nur ein Buchstabe in einer Datei zu ergänzen. Im folgenden Befehl wird der Editor vi verwendet. Wer dessen kryptische Syntax nicht kennt, ist verloren. Dann lieber die Datei mit dem Finder aufspüren und einem beliebigen anderen Text-Editor bearbeiten.
    $ sudo vi /opt/local/etc/opencbm.conf

    Und dort im Abschnitt

    [plugins]
    default=xu1541
    

    xu1541 durch xum1541 ersetzen. Datei speichern.

That’s it! Piece of cake! Easy-peasy! Let’s rock! Örchz.

Inbetriebnahme und Test

Das ZoomFloppy-Manual empfiehlt die folgende Reihenfolge, um die technischen Komponenten miteinander zu verbinden bzw. diese einzuschalten.

  1. Floppy Kabel mit der ZoomFloppy-Platine verbinden. Das gilt für den runden 8-poligen, also auch für ein ggf. vorhandenes Parallelkabel.
  2. Jetzt die ZoomFloppy über die Micro-USB-Buchse an den USB-Anschluß des Mac anschließen. Eine grüne LED zeigt die Betriebsbereitschaft an.
  3. Floppy einschalten.

Bei der Ausserbetriebnahme alles in umgekehrter Reihenfolge.

Jetzt wird sich zeigen, ob die Mühe belohnt wird. Terminal öffnen und den folgenden Befehl eingeben.

$ cbmctrl detect
8: SpeedDOS 1541 (XP1541)

Wenn als Antwort so eine oder eine ähnlich Meldung erscheint, dann heisst das ERFOLG!

Die Meldung wird variieren, je nach dem, um welchen Floppy-Typ es sich handelt, ob ein Beschleuniger o.ä. vorhanden ist und an welchem Bus (8 oder 9) das Laufwerk hängt. Bei mir werkelt ein in der 1541 fest verbautes “Quickdos”; eine Variante des damals beliebten SpeedDOS, bei der nicht nur der Lade- sondern auch der Speichervorgang beschleunigt wurde. (35 x schneller laden, 17 x schneller speichern. Der Hammer!)

Bei einer 1571 könnte das wie folgt aussehen.

$ cbmctrl detect
8: 1571 (XP1541)

Der Mac kann jetzt über die ZoomFloppy mit dem Floppy-Laufwerk kommunizieren. FTW!

Noch ein letzter Test; wir überprüfen den Status des Laufwerks (an Bus 8).

$ cbmctrl status 8
00, ok,00,00

Wer seinerzeit mit dem C64 gearbeitet hat, wird die Antwort “00, ok,00,00” noch kennen. Damit sind alle Tests erfolgreich abgeschlossen. Die Datensicherung kann beginnen.

Datensicherung = Fleißarbeit

So geht die Datensicherung dann los: Floppy ins Laufwerk schieben und im Terminal des Mac mit dem Befehl cbmctrl dir das Inhaltsverzeichnis (Directory) der eingelegten Diskette auslesen.

$ cbmctrl dir 8
0 ." XXXXX XXXXXXXX " P.P.P
140  "m.g.part x  /xsi" prg<   
40   "estimate    /xsi" prg<  
42   "control d.  /tsr" prg<  
87   "barbara d.  /xsi" prg<  
79   "megawurzel  /tsr" prg<  
130  "m.g.part xi /xsi" prg<   
47   "miami vice  /xsi" prg<  
31   "the tube m. /xsi" prg<  
28   "saboteur ii /xsi" prg<  
29   "shadow sc.  /xsi" prg<  
0 blocks free.             
00, ok,00,00

Kann die Diskette gelesen werden, wird das Directory wie man es vom C64 mit dem Befehl LOAD "$",8,1 und anschließendem LIST her kannte, ausgegeben. Nun gibt es zwei Möglichkeiten, um die Dateien von der Floppy-Disc auf den Mac zu übertragen.

1. Disk-Image (d64)

Auslesen des gesamten Inhalts einer Diskette mit dem Befehl d64copy und Ablegen in einer *.d64-Image-Datei. Hier ein Beispiel für das vollständige Auslesen einer Floppy-Disc.

$ d64copy --no-warp -r 3 8 dateiname.d64
[Warning] growing image file to 683 blocks
 1: *********************                  
 2: *********************                  
 3: *********************                  
 4: *********************                  
 5: *********************                  
 6: *********************                  
 7: *********************                  
 8: *********************                  
 9: *********************                  
10: *********************                  
11: *********************                  
12: *********************                  
13: *********************                  
14: *********************                  
15: *********************                  
16: *********************                  
17: *********************                  
18: *******************                    
19: *******************                    
20: *******************                    
21: *******************                    
22: *******************                    
23: *******************                    
24: *******************                    
25: ******************                     
26: ******************                     
27: ******************                     
28: ******************                     
29: ******************                     
30: ******************                     
31: *****************                      
32: *****************                      
33: *****************                      
34: *****************                      
35: *****************       100%   683/683
683 blocks copied.

Der Befehl zeigt Block-für-Block den Fortschritt an. Können Blöcke nicht gelesen werden, so wird dies ebenfalls angezeigt. In diesem Beispiel gab es keine (nicht korrigierbaren) Fehler und die Diskette wurde vollständig in das Disk-Image geschrieben.

Die verwendeten Parameter --no-warp und -r 3 haben sich bei meinen Disketten als sinnvoll erwiesen: Warp-Modus aus, da es mit eingeschaltetem Warp-Modus zu viele Lesefehler gab. Und maximal drei Versuche, um Blöcke mit Lesefehlern doch noch erfolgreich lesen zu können.

2. Einzelne Files (prg)

Auslesen einzelner Files mit dem Befehl cbmread und Ablegen im *.prg-Format. Das könnte dann so aussehen.

$ cbmread 8 "control d.  /tsr"
[Info] reading CONTROL D.  /TSR -> control d.  _tsr.prg
[Info] identified a SpeedDOS 1541 drive
.........../
[Info] 00, OK,00,00

Sowohl *.d64- als auch *.prg Dateien werden von den einschlägigen C64-Emulatoren verarbeitet. Auf dem Mac präferiere ich VICE, the versatile Commodore Emulator.

Fehlerbehandlung

Das Auslesen 25 Jahre alter Disketten mit ebensoalter Hardware lief teilweise, und wenig überraschend, ein wenig unrund.

Gealterte Datenträger

Einige Diskette zeigen Stockflecken auf der Magnetscheibe. Keine Ahnung, ob das der Langlebigkeit zuträglich ist, aber mit Anhauchen und anschliessendem kräftigem Reiben mit dem dicken Daumen lasst sich die Flecken vermindern. Interessant, wie sich Einstellungen ändern. Früher war die Magnetschicht ein Heiligtum, das um Gottes Willen mit Nichts in Berührung kommen durfte. Schon gar nicht mit einem Daumen. Aber Dinge ändern sich und wer heilt, hat recht! Einige der Disketten waren so tatsächlich wieder in einen lesbaren Zustand zu bekommen.

Gealterte Hardware

Auch die 1541 hat ihre 25+ Jahre auf dem Buckel und kam zwar mit vielen Disketten erstaunlich gut, mit einigen aber gar nicht zurecht. Manchmal wollte sie auch Disketten nicht mehr lesen, die sie zuvor schonmal problemlos lesen konnte! Dann half zumeist meine "Master-Diskette": Eine Diskette, die die 1541 erstaunlicherweise jederzeit ohne zu Murren lesen konnte. Nach wiederholtem Lesen des Inhaltsverzeichnisses meiner Master-Diskette war möglicherweise der Schreib-/Lesekopf wieder an der richtigen Position und es konnten in Folge wieder andere Disketten gelesen werden.

Irgendwann ging dann leider gar nichts mehr und ich sah mich gezwungen, den Schreib-/Lesekopf der 1541 zu reinigen. Da gibt es zahlreiche Videos und Anleitungen im Netz; ich habe mich an diese bebilderte Anleitung gehalten. Der Andruckfilz blieb unangetastet. Sicherlich wäre es noch sinnvoll gewesen, wie beschrieben, die Führungsschienen mit Haftschmieröl zu pflegen. Mangels Öl habe ich das aber gelassen. Da bin ich knallhart.

format c:

Gerade bei der 1541 hat das Formatieren immer besonders viel Spaß gemacht, wenn der Schreib-/Lesekopf mit lautem Rattern an das Ende der Führungsschienen knallte. Nach dem Exhumieren des C64 aus dem Keller, war eine "Leerformatierung", also das Formatieren ohne eingelegte Diskette, aber genau der richtige Tipp, um der 1541 wieder auf die Sprünge zu helfen.

Mit OpenCBM lässt sich auch eine Diskette formatieren, bspw. so

cbmctrl command 8 N0:NAME,2D

oder so

cbmctrl open 8 15 I0

Wenn nichts mehr geht, ist das auf jeden Fall einen Versuch wert.

Ente gut, alles gut

Nach so viel Vorarbeit, ist die Freude groß, dass alle alten Demos, Programme und andere 8-Bit-Grausamkeiten in ein neues digitales Grab Format überführt werden konnten. Ipse fecit und ich habe fertig.

Google Analytics datenschutzkonform einsetzen

Für den datenschutzkonformen Einsatz von Google Analytics auf mobilen Browsern bedarf es spezieller Massnahmen zur Sicherstellung des Widerspruchsrechts.

Google Analytics kann seit geraumer Zeit datenschutzkonform in Deutschland eingesetzt werden. Es gibt eine Vielzahl an Artikeln, bspw. Google Analytics datenschutzkonform einsetzen, die sich mit dem Thema auseinandersetzen und die Rahmenbedingungen für diesen konformen Einsatz ausführlich erläutern. Kurz gefasst, müssen die folgenden Bedingungen erfüllt sein:

  1. Abschluß einer Auftragsdatenvereinbarungserklärung mit Google. So ein Wortmonster können sich nur deutsche Behörden ausdenken, daher sprechen wir im folgenden von einer ADV.
  2. Datenschutzerklärung mit Passus zur Verwendung von Google Analytics.
  3. Anonymisierung der IP-Adressen, die von Google Analytics erfasst werden.
  4. Widerspruchsmöglichkeit (Opt-Out) für Besucher einer Website, um die Datenerfassung durch Google Analytics auszuschalten.

Dieser Artikel hier hat seinen Fokus auf dem Thema Widerspruchsrecht/Opt-Out, behandelt der Vollständigkeit halber aber auch die Punkte 1-3.

ad 1. Auftragsdatenvereinbarungserklärung (ADV)

Für den Abschluß der ADV stellt Google ein mit den deutschen Behörden abgestimmtes Dokument bereit. Hier runterladen. Zweimal ausdrucken. Beide Exemplare ausgefüllt und unterschrieben an Google Irland senden. Einige Wochen auf ein von Google unterzeichnetes Exemplar warten. Abheften. Fertig.

ad 2. Datenschutzerklärung

Der Passus zur Verwendung von Google Analytics in meiner Datenschutzerklärung ist umfassend und sollte den Konformitätsanforderungen genügen. Ich weise explizit darauf hin, dass ich keine Rechtsberatung geben kann und darf. Verwendung des Passus daher auf eigene Gefahr.

Datenschutzerklärung für die Nutzung von Google Analytics
Diese Website benutzt Google Analytics, einen Webanalysedienst der Google Inc. (“Google”). Google Analytics verwendet sog. “Cookies”, Textdateien, die auf Ihrem Computer gespeichert werden und die eine Analyse der Benutzung der Website durch Sie ermöglichen. Im Auftrag des Betreibers dieser Website wird Google diese Informationen benutzen, um Ihre Nutzung der Website auszuwerten, um Reports über die Websiteaktivitäten zusammenzustellen und um weitere mit der Website-Nutzung und der Internet-Nutzung verbundene Dienstleistungen gegenüber dem Websitebetreiber zu erbringen. Wir verwenden Google Analytics auch, um demographische Informationen und Informationen über Ihre Vorlieben zu sammeln (z.B. Alter, Geschlecht und Interessen), einschließlich Google Analytics Demographics und Interest Reporting. Mehr Informationen zu Demographics und Interest Reporting finden Sie hier.

Die durch den o.g. Cookie erzeugten Informationen über Ihre Benutzung dieser Website werden in der Regel an einen Server von Google in den USA übertragen und dort gespeichert. Auf dieser Website ist die sogenannte IP-Anonymisierung aktiv. Ihre IP-Adresse wird von Google dadurch innerhalb von Mitgliedstaaten der Europäischen Union oder in anderen Vertragsstaaten des Abkommens über den Europäischen Wirtschaftsraum vor der Übertragung an die Google-Server verkürzt. Nur in Ausnahmefällen wird die volle IP-Adresse erst an einen Server von Google in den USA übertragen und dann dort gekürzt. Die IP-Anonymisierung erfolgt mit dem Google Analytics Flag zum IP-Masking.

Browser-Plugin zur Deaktivierung der Datenerfassung von Google Analytics
Google hält zum Zwecke des Widerspruchs gegen die Erfassung von Nutzungsdaten ein Browser-Plugin (s.u.) zur Deaktivierung von Google Analytics bereit. Die im Rahmen von Google Analytics von Ihrem Browser übermittelte IP-Adresse wird nicht mit anderen Daten von Google zusammengeführt. Sie können die Speicherung der Cookies durch eine entsprechende Einstellung Ihrer Browser-Software verhindern; wir weisen Sie jedoch darauf hin, dass Sie in diesem Fall gegebenenfalls nicht sämtliche Funktionen dieser Website vollumfänglich werden nutzen können. Sie können darüber hinaus die Erfassung der durch das Cookie erzeugten und auf Ihre Nutzung der Website bezogenen Daten (inkl. Ihrer IP-Adresse) an Google sowie die Verarbeitung dieser Daten durch Google verhindern, indem sie dieses Browser-Plugin herunterladen und installieren.

Nähere Informationen zu Nutzungsbedingungen und Datenschutz bzgl. Google Analytics finden Sie in den Terms & Conditions bzw. in den Policies.

Der ganz am Anfang dieses Posts verlinkte Artikel von datenschutzbeauftragter-info.de stellt ebenfalls einen entsprechenden Passus bereit; dort gibt es auch eine englische Version sowie eine Ergänzung, falls AdWords und/oder Double-Click zum Einsatz kommen. Wer hierzu recherchiert wird meistens auf sich ähnelnde Formulierungen stossen, da die Blaupause von Google selber stammt.

ad 3. IP-Adressen anonymisieren

Google stellt aktuell zwei unterschiedliche Tracking Pixel für Google Analytics bereit: Zum einen das klassische Tracking Pixel, zum anderen Universal Analytics. Bei Letztgenanntem ist zur Anonymisierung der IP-Adresse die folgende Zeile im Tracking Kode hinzuzufügen.
ga('set', 'anonymizeIp', true);
Falls das klassische Tracking Pixel zum Einsatz kommt, wird die Anonymisierung mit der folgenden Ergänzung im Tracking Kode eingeschaltet.
_gaq.push(['_gat._anonymizeIp']);

ad 4. Widerspruch / Opt-Out

Beim Thema Opt-Out geht es im Kern um die Bereitstellung von Tools oder Mechanismen, um dem Widerspruchsrecht des Website-Besuchers gegen die Erfassung seiner Daten durch Google Analytics gerecht zu werden.

Verweis auf Browser-Plugin für Opt-Out auf Desktop-Browsern

Einige Zeit war man davon ausgegangen, dass die Verlinkung eines von Google bereitgestellten Browser-Plugins, mit dem die Erfassung von Daten durch Google Analytics nach Installation des Plugins im Browser ausgeschaltet werden kann, genügen würde. Zwar wird dieses Plugin für alle gängigen Browser angeboten, es funktioniert jedoch nur im Zusammenspiel mit Desktop-Browsern! Auf den Browsern mobiler Geräte lassen sich in der Regel keine Plugins installieren, so dass hierfür eine andere – und zwar zusätzliche – Opt-Out-Möglichkeit angeboten werden muss. NB: Der oben zitierte Passus zur Datenschutzerklärung enthält bereits die Verlinkung auf das Browser-Plugin.

Opt-Out Link per Javascript für mobile Browser

Die gängigste Lösung, um den Widerspruch auch auf mobilen Browsern zu ermöglichen, bedient sich einiger Zeilen Javascript-Kode. Der Mechanismus ist einfach: Dem Besucher einer Website wird ein Link angeboten, dessen Klick ein Cookie setzt, welches wiederum Google Analytics den Do-not-track Wunsch des Nutzers mitteilt.

Für die Implementierung bei Verwendung des klassischen Google Analytics Pixels kann folgender Kode verwendet werden. Er entspricht dem Kode, der sich auf den Seiten von Rechtsanwalt Schwenke findet (GA mobile Nutzung), mit zwei Änderungen:

  1. Statt jQuery wird klassisches Javascript in gaOptoutStatus() verwendet. Es wäre ein Overkill nur zum Ändern einer Property die jQuery-Library einzubinden. Wer ohnehin jQuery nutzt, kann natürlich nach Belieben auch jQuery einsetzen.
  2. In gaOptoutToggle() wird das Cookie beim Opt-In, also wenn ein Website-Besucher sich entscheidet das Tracking wieder einzuschalten, auf false gesetzt, statt das Cookie zu löschen. Das hat aus Sicht von Google Analytics denselben Effekt, hilft aber beim Debugging.
<script type="text/javascript">
  var gaProperty  = 'UA-XXXXXXXX-XX';
  var disableStr  = 'ga-disable-' + gaProperty;
  var ga_disabled = "Google Analytics ist deaktiviert.";
  var ga_enabled  = "Google Analytics ist aktiv.";
  if ( document.cookie.indexOf(disableStr + '=true') > -1 ) {
    window[disableStr] = true;
  }
 
  //
  // set or unset cookie and update status.
  function gaOptoutToggle() {
    if ( window[disableStr] ) {
      document.cookie = disableStr + '=false; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
      window[disableStr]= false;
      gaOptoutStatus();
    } else {
      document.cookie = disableStr + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/';
      window[disableStr]= true;
      gaOptoutStatus();
    }
  }
 
  //
  // if element with id 'ga-disable' exists, change its content to current status.
  function gaOptoutStatus() {
    var a = document.getElementById( "ga-disable" );
    if ( a )
      if ( window[disableStr] )
        a.innerHTML = ga_disabled;
      else
        a.innerHTML = ga_enabled;
  }
 
  //
  // "document ready" in plain vanilla javascript 
  if ( document.addEventListener )
    document.addEventListener( "readystatechange", change_status, false );
  else if ( document.attachEvent )
    document.attachEvent( "onreadystatechange", change_status );
  else
    document[ "onreadystatechange" ] = change_status;
  function change_status( ) {
    if ( document.readyState === "complete" ) {
      if ( document.removeEventListener )
        document.removeEventListener( "readystatechange", change_status, false );
      else if ( document.detachEvent )
        document.detachEvent( "onreadystatechange", change_status );
      else
        document[ "onreadystatechange" ] = null;
      gaOptoutStatus( );
    }
  }
 
  //
  // Google Analytics Tracking Code
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', gaProperty]);
  _gaq.push(['_gat._anonymizeIp']);
  _gaq.push(['_trackPageview']);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

Die Variable gaProperty ist mit der eigenen Google Analytics Property zu belegen. Beim Einsatz des Universal Analytics Tracking Pixels muß der zugehörige Google Analytics Tracking Kode entsprechend geändert werden.

Nun fehlt nur noch ein Abschnitt in der Datenschutzerklärung, der dieses Verfahren beschreibt und natürlich den Opt-Out Link enthält.

Cookie Opt-out zur Deaktivierung der Datenerfassung von Google Analytics
Alternativ zum Browser-Plugin (Browser-Add-On) oder in Browsern auf mobilen Geräten, bei denen Browser-Plugins nicht funktionieren, verwenden Sie bitte den folgenden Link, um die Datenerfassung durch Google Analytics auf dieser Website zu (de)aktivieren. Wenn Sie Google Analytics deaktivieren wird ein Opt-Out-Cookie auf ihrem Gerät gesetzt, das die zukünftige Erfassung Ihrer Daten beim Besuch dieser Website verhindert: . Bitte beachten Sie, dass Sie nach dem Löschen von Cookies in ihrem Browser den Link erneut anklicken müssen.

Das Ganze sieht als HTML-Kode dann wie folgt aus:

<i>Cookie Opt-out zur Deaktivierung der Datenerfassung von Google Analytics</i><br />
Alternativ zum Browser-Plugin (Browser-Add-On) oder in Browsern auf mobilen Geräten,
bei denen Browser-Plugins nicht funktionieren, verwenden Sie bitte den folgenden Link,
um die Datenerfassung durch Google Analytics auf dieser Website zu (de)aktivieren.
Wenn Sie Google Analytics deaktivieren wird ein Opt-Out-Cookie auf ihrem Gerät gesetzt,
das die zukünftige Erfassung Ihrer Daten beim Besuch dieser Website verhindert:
<a rel="nofollow" href="javascript:gaOptoutToggle()" id="ga-disable"></a>.
Bitte beachten Sie, dass Sie nach dem Löschen von Cookies in ihrem Browser den Link
erneut anklicken müssen.

Bei der hier vorgestellten Lösung wird als Linktext der aktuelle Opt-Out-Zustand angezeigt: Wenn das Tracking aktiv ist (=kein Cookie gesetzt) erscheint “Google Analytics ist aktiv.”, wenn das Tracking nicht aktiv ist (=Cookie gesetzt) “Google Analytics ist deaktiviert.”

Im Zweifel fragt man jemanden, der Ahnung hat. Das gilt sowohl für die technische Implementierung als natürlich auch für die formaljuristische Prüfung der Vollständigkeit und Korrektheit der eigenen Datenschutzerklärung.

Mac OS versteckte Dateien anzeigen (und wieder verstecken)

Der Mac OS Finder zeigt versteckte Dateien nicht an. Darum sind sie ja auch versteckt. Aber sie lassen sich leicht sichtbar machen. Und ebenso leicht wieder verstecken.

Hinter MacOS werkelt ein *nix-System. Auf diesen Systemen ist es üblich, dass Dateien, die mit einem Punkt beginnen, also beispielsweise .htaccess, vom Dateibetrachter nicht angezeigt werden. Manchmal möchte man die versteckten Dateien aber doch sehen.

Die Terminal Methode

  1. Terminal öffnen.
  2. Mit dem folgenden Befehl wird dem Finder mitgeteilt, dass er alle Dateien anzeigen soll.
    $ defaults write com.apple.finder AppleShowAllFiles TRUE
  3. Noch ein
    $ killall Finder
    hinterher. Damit wird der Finder neu gestartet.

Fertig!

Die sichtbar gemachten Dateien können genauso leicht wieder versteckt werden, indem am Ende des oben stehenden Befehls “TRUE” durch “FALSE” ersetzt wird. Danach wieder killall Finder und die Dateien sind versteckt.

Wer das häufiger braucht, möchte es aber vielleicht ein wenig komfortabler haben.

Die Profi-Methode mit Toggle-Button in der Finder-Toolbar

Wir bauen uns einen hübschen Toggle-Button für die Finder-Toolbar, der auf Knopfdruck zwischen “Dateien versteckt” und “Dateien sichtbar” wechselt. Dazu bedienen wir uns des geballten Wissens aus dem vorigen Artikel Aus Shell Skript eine MacOS App erstellen und App Icon ändern und bauen sogar noch funktional völlig unnötige bells’n’whistles ein: In Abhängigkeit des aktuellen Status “sichtbar” oder “versteckt” verändert sich das Aussehen des Icons in der Toolbar. Toll!

  1. Wir benötigen zunächst ein Skript, das den aktuellen Sichtbarkeitsstatus ermittelt, diesen dann wechselt und das Icon austauscht. Den folgenden Kode kopieren und als toggleHidden.sh im Home-Verzeichnis /Users/ speichern. NB: Alle folgenden Schritte gehen davon aus, dass die zugehörigen Dateien im Home-Verzeichnis liegen!
    #!/bin/bash
     
    # get current visibility status
    isVisible="$(defaults read com.apple.finder AppleShowAllFiles)"
     
    # toggle visibility and change app icon
    rm ~/$'toggleHidden.app/Icon\r'
    sleep 1
    if [ "$isVisible" = FALSE ]; then
      defaults write com.apple.finder AppleShowAllFiles TRUE
      Rez -append ~/toggleHidden-on.rsrc -o ~/$'toggleHidden.app/Icon\r'
      sleep .2
      Rez -append ~/toggleHidden-on.rsrc -o ~/$'toggleHidden.app/Icon\r'
    else
      defaults write com.apple.finder AppleShowAllFiles FALSE
      Rez -append ~/toggleHidden-off.rsrc -o ~/$'toggleHidden.app/Icon\r'
      sleep .2
      Rez -append ~/toggleHidden-off.rsrc -o ~/$'toggleHidden.app/Icon\r'
    fi
     
    # force changes by restarting Finder
    sleep .2 && killall Finder
  2. Mithilfe des appify-Skripts (Hinweise im verlinkten Artikel beachten!) zaubern wir aus toggleHidden.sh eine MacOS App toggleHidden.app. Dazu ein Terminal-Fenster öffnen und den Befehl
    $ appify toggleHidden.sh
    ausführen. Im selben Verzeichnis liegt nun die App toggleHidden.app.
  3. Wir brauchen zwei Icons für die beiden Status. Rechteckig, bspw. mit den Abmessungen 128 x 128 px.
    Icon für versteckte Dateien sichtbarversteckte Dateien sichtbar, Datei toggleHidden-128x128-on.png
    Icon für versteckte Dateien sichtbarversteckte Dateien unsichtbar, Datei toggleHidden-128x128-off.png
    Die sind doch ganz hübsch. Örchz.
  4. Aus den Icon-Grafiken müssen zur späteren Verwendung Ressourcen produziert werden. Dafür werden ein paar Werkzeuge benötigt, die zu den XCode Command Line Tools gehören. Beim ersten Aufruf des folgenden Tools sips im Terminal sollte MacOS von sich aus fragen, ob die Command Line Tools installiert werden. Sobald die Tools verfügbar sind im Terminal folgende Befehle eingeben, um den ersten Schritt zu den Grafik-Ressourcen zu absolvieren.
    $ sips -i toggleHidden-128x128-on.png
    $ sips -i toggleHidden-128x128-off.png
  5. Jetzt die Ressourcen extrahieren.
    $ DeRez -only icns toggleHidden-128x128-on.png > toggleHidden-on.rsrc
    $ DeRez -only icns toggleHidden-128x128-off.png > toggleHidden-off.rsrc
  6. Initiale Bindung des Off-Icons an unsere App.
    $ Rez -append toggleHidden-off.rsrc -o $'toggleHidden.app/Icon\r'
  7. Und MacOS mitteilen, dass diese App jetzt ein Icon hat.
    $ SetFile -a C toggleHidden.app
  8. Letzter Schritt! Im Finder in das Home-Verzeichnis wechseln, bspw. über das Finder-Menü “Go” und dann “Home”. Per CMD + Drag’n’Drop unsere App toggleHidden.app in die Finder Toolbar ziehen. Wichtig: Erst CMD drücken und gedrückt halten. Dann Datei packen und in die Finder Toolbar ziehen. MacOS ist da sehr “picky” was den Ablauf dieser Drag’n’Drop-Operation anbelangt.

Nun sollte unser wunderschönes Icon in der Toolbar prangen und in etwa so aussehen.

toggleHidden App in der Finder Toolbar: OFF

Nach einem Klick auf den Kreis wird der Finder neu gestartet, das Icon getauscht und fortan alle versteckten Dateien angezeigt. Das könnte dann so aussehen.

toggleHidden App in der Finder Toolbar: ON

Have fun!

Zweiter Rebrush der nullseite

Rebrush der nullseite mit neuem, responsivem Theme "Skills".

Wie schnell die Zeit vergeht. Der letzte Rebrush der nullseite ist über 4,5 Jahre her! Am 26. Juli 2009 erfolgte der Wechsel vom recht düsteren und – vor allem – kontrastarmen Theme Sodelicious Black zum Lightword Theme von Andrei Luca.

altes WP Theme: Lightword Lightword (im Bild zu sehen) hatte lange Jahre treue Dienste geleistet. Doch nun treibt Google massiv die Mobilmachung des Webs voran. Und da die Inhalte der nullseite auf mobilen Geräten – allem voran auf Smartphones – nur mit Zoomen lesbar sind, war es wieder einmal Zeit für einen Rebrush.

Die Wahl fiel auf ein WordPress Theme, das dem KISS-Prinzip folgt: Keep it simple and stupid. Will heißen: No bells’n’whistles, kein Brimborium, schwarze Schrift auf weißem Grund, und insbesondere voll responsiv. Das Theme gibt’s bei themeforest und heißt Skills.

MacOS 10.10 Yosemite Zoom Button soll wieder Fenster maximieren statt in Vollbildmodus schalten

MacOS 10.10 Yosemite Zoom Button soll wieder Fenster maximieren statt in Vollbildmodus schalten

Mit MacOS 10.10 “Yosemite” hat Apple einige Neuerungen eingeführt. Dazu zählt u.a. ein geändertes Verhalten des grünen Zoom Buttons, der sich oben links in jedem Applikationsfenster befindet. Bisher führte ein Klick auf diesen Button dazu, daß das zugehörige Fenster maximiert – also auf die gesamte Bildschirmfläche exklusive Title Bar und Dock aufgezogen – wurde.

In Yosemite schaltet ein Klick auf diesen Button die Applikation nun in den Vollbildmodus. Wenn sich die Maus den Buttons nähert, deuten dieses Verhalten auch zwei kleine Pfeile im grünen Button an.

Es gibt eine Möglichkeit, das alte Verhalten – also Maximieren des Applikations-Fensters – zu erreichen. Leider nicht dauerhaft über eine Einstellung sondern nur über eine (simple) Tastenkombination für jeden einzelnen Klick. Dazu muß während des Klicks die Alt-Taste gedrückt werden. Nähert sich die Maus den Buttons bei gedrückter Alt-Taste, so wird das (alte) Verhalten im grünen Button durch das bekannte Plus-Symbol angezeigt.

Update auf MacOS 10.10 Yosemite und MAMP Apache startet nicht mehr

Eine Lösung für das Problem, dass nach dem Update auf MacOS 10.10 (Yosemite) der Apache im MAMP nicht mehr startet.

 

  1. Falls MAMP läuft via “Stop Servers”-Button die Server stoppen.
  2. Ein Terminal-Fenster öffnen. Geht beispielsweise mit CMD+Leertaste, dann terminal tippen und mit Return bestätigen.
  3. Im Terminal-Fenster mit cd /Applications/MAMP/bin/apache2/bin und abschließendem Return in das genannte Verzeichnis wechseln.
  4. Dort die Datei envvars in _envvars umbenennen: move envvars _envvars und Return.
  5. Danach im MAMP Fenster “Start Servers” klicken.

Läuft. Die Lorbeeren gebühren Joshua Toenyes.

Gadgets galore bei GadgetMania! [Update]

Gadgets werden Allenortens vorgestellt, angepriesen, verkauft und bisweilen auch verhökert. Das GadgetMania Portal verfolgt einen qualitativ hochwertigeren Ansatz.

Die Wikipedia definiert Gadgets als kleine technologische Gerätschaften, die einem bestimmten Zweck dienen und häufig als Neuheit betrachtet werden.

Gadgets gibt es mittlerweile in einer unüberschaubaren Vielfalt; gerne auch sogenannte China Gadgets als Billig-Importware aus Fernost. Die Suche bei Amazon nach Gadgets Technik fördert Skurriles zutage. Logo gadgetmania.de Neben einen Slamdunk Toiletten Basketball gesellen sich Discokugeln für die Badewanne oder auch ein Shocking Pen, der elektrische Schläge abgibt, dazu.

Den low-budget China Gadgets will das Gadget Portal GadgetMania Paroli bieten, indem dort anscheinend qualitativ hochwertige(re) Gerätschaften vorgestellt werden. Zumindest konnten wir auf den ersten und zweiten Blick keinen Billo-China-Müll finden.

Von all den vorgestellten Gadgets hat uns besonders der Little Printer von Bergcloud begeistern können. Beim Little Printer handelt es sich um einen kleinen quadratischen Thermodrucker, der per WLAN ins heimische oder Büro-Netzwerk eingebunden wird. Fortan können über verschiedene Wege News, kleine Rätsel, Photos und andere Informationen auf den Gadget-Printer gesendet werden. So kann man beispielsweise den Daheimgebliebenen von unterwegs liebe Grüße direkt zu Hause ausdrucken. Den Anwendungsmöglichkeiten sind nur durch die eigene Kreativität grenzen gesetzt.

[Update 24.02.2015] Traurige Nachricht: Bergcloud schließt die Pforten und stellt damit zum März 2015 auch den Service ein, der nötig ist, um den Little Printer betreiben zu können. Mit einer Informations-Mail vom 09.09.2014 wurden Besitzer des Little Printer darüber in Kenntnis gesetzt, daß verschiedene Optionen eruiert würden, um den Little Printer weiter betreiben zu können. Neben dem Verkauf des Projektes stand auch die Öffnung des Source-Codes im Raum. Allerdings gab es seit der Nachricht im September weder einen neuen Blog-Artikel noch eine neue E-Mail. Es ist davon auszugehen, daß der Little Printer alsbald ein Stück toter Hardware sein dürfte.

iOS 7 iPhone 4 – Wie man den Fehler “connect to itunes to use push notifications” behebt.

Mit dem Update des iPhone 4 auf iOS 7.0.3 hat sich ein unangenehmer Fehler ins System eingeschlichen: Push-Notifications bspw. für neue Nachrichten in WhatsApp werden nicht mehr angezeigt und beim Öffnen von WhatsApp erscheint die Meldung "connect to itunes to use push notifications".

Das Problem scheint auch iMessages und FaceTime zu betreffen. Fleissige Recherche fördert unterschiedliche Lösungsansätze zu Tage, u.a. sollen

  • ein simpler Reboot (via Lock-Key)
  • ein “harter” Reboot (Lock-Key plus Home-Screen-Button ein paar Sekunden gleichzeitig gedrückt halten)
  • das Abmelden von iTunes über Settings > iTunes & App Store > Apple-ID anklicken > im Popup “Sign Out” wählen, anschließendem Reboot und wieder anmelden
  • das Ein- bzw. Ausschalten der iCloud Keychain über Settings > iCloud > Keychain, anschließendem Reboot und wieder Ein-/Ausschalten der Keychain

helfen.

Hat alles nicht funktioniert. Von der ulitmativen Lösung das iPhone komplett neu aufzusetzen wollte ich angesichts der Dauer dieses Unterfangens erst einmal absehen. Nach weiterer Recherche war dann eine weitere potentielle Lösung unter Zuhilfenahme des Jailbreak-Tools RedSn0w gefunden.

Dieser funktionierende Lösungsansatz ist einfach, geht schnell und man muß sein iPhone nicht jailbreaken! Im Kern geht es darum, das iPhone zu deaktivieren und eine neue Aktivierung über iTunes mit den Apple-Servern zu erzwingen.

Hier die wenigen Schritte.

  1. RedSn0w runterladen.
  2. iPhone via USB-Kabel mit dem Computer verbinden.
  3. Falls iTunes automatisch startet, iTunes schließen.
  4. RedSn0w öffnen.
  5. “Extras” klicken.
  6. “Even More” (ganz unten) klicken.
  7. “Deactivate” klicken und Nachfrage bestätigen.
  8. Das iPhone wird deaktiviert und sollte eine Aktivierungsmeldung anzeigen.
  9. iTunes auf dem Computer starten.
  10. Aktivierung in iTunes durchführen.

Das war’s. Nach erfolgreicher Aktivierung (und ohne Reboot) steht das iPhone wieder zur Verfügung. Diesmal allerdings mit funktionierenden Push Benachrichtigungen.

Minimierung von HTML, PHP, CSS und JavaScript mit Smaller für Mac

Ladezeiten von Web-Seiten können gar nicht kurz genug sein. Eine von zahlreichen Optmierungsmöglichkeiten ist die Minimierung von HTML-, PHP-, CSS- und JavaScript-Code. Das Mac Tool "Smaller" von Chen Luo erlaubt die effiziente stapelweise Verarbeitung solcher Dateien.

Smaller Logo Im April 2010 hat Google mit dem Artikel Using site speed in web search ranking in seinem Webmaster Central Blog offiziell die Ladezeit einer Web-Seite als Ranking-Faktor deklariert. Der Vorteil schnell ladender Web-Seiten liegt auf der Hand: Neben einer verbesserten User Experience lassen sich lt. Google dadurch ebenfalls Betriebskosten reduzieren.

Viele Tools unterstützen bei der Analyse und Optimierung der eigenen Web-Site. Zu den bekannteren gehört Googles eigenes PageSpeed-Tool, das sowohl als Online-Variante als auch in Plugin-Form bspw. für Firefox oder natürlich Chrome zur Verfügung steht. Ebenfalls bekannt: Das von Yahoo bereitgestellte YSlow sowie die in Googles Webmaster Tools angezeigte Site Performance (unter Labs, dann Site Performance).

Die Optimierungsvorschläge dieser Tools sind umfangreich und reichen vom verzögerten Laden von JavaScript, der Nutzung von Cache Validators oder Browser Caching weiter über die Angabe von Grafik-Abmessungen, der Nutzung von CSS Sprites bis hin zur Minimierung von Grafik und HTML, PHP, CSS sowie JavaScript Dateien. Für den letztgenannten Fall stellt Chen Luo mit seiner Smaller ein hervorragendes Tool bereit, daß diese Arbeit optimiert und insbesondere die Stapelverarbeitung mehrerer Dateien gleichzeitig erlaubt.

Zwar gibt es dafür auch zahllose online Tools, allerdings sind diese in der Regel auf eine Teilmenge der verschiedenen Dateitypen spezialisiert. So beispielsweise der YUI Online Compressor, der nur JavaScript und CSS komprimiert, nicht jedoch PHP oder HTML. Die Smaller App erlaubt dagegen in einem Arbeitsgang alle genannten Dateitypen gleichzeitig zu minimieren. Der Prozeß läuft in wenigen einfachen Arbeitsschritten ab.

Nach Download und Start der Smaller App wird der Nutzer mit einer leeren Arbeitsfläche begrüßt.

Smaller Startbildschirm

Im folgenden Beispiel wurden zwei Javascript- und CSS-Dateien sowie eine HTML-Datei per Drag’n’Drop auf die Arbeitsflächer der Smaller App gezogen.

Smaller Startbildschirm

Mit einem Klick auf den Minify-Button beginnt Smaller mit der Minimierung und zeigt während der Arbeit den Fortschritt auf der Arbeitsoberfläche an.
Die minimierten Dateien werden automatisch im selben Verzeichnis wie die Originaldatei gespeichert.

Im Optionsdialog der Smaller App können zahlreiche Einstellungen vorgenommen, um die Arbeitsweise des Programms an die eigenen Bedürfnisse anzupassen.

Smaller Startbildschirm

So ist es möglich, den Klick auf den Minify-Button einzusparen, indem Smaller mit der Minimierung beginnt sobald Dateien per Drag’n’Drop auf die Arbeitsoberfläche gezogen wurden. Minimierte Dateien können automatisch mit dem Suffix “.min” ergänzt werden, so daß aus “main.js” bspw. “main.min.js” wird. Das Standardverhalten die minimierten Dateien im selben Verzeichnis abzulegen kann ebenso geändert werden, wie die automatische Erstellung einer gezippten Version.

Der Autor stellt eine 30-Tage-Testversion auf seiner Webseite smallerapp.com zum Download bereit. Zum Preis von gerade einmal $20,- erhält der Nutzer eine extrem praktische Drag’n’Drop Applikation für den Mac, die die Minimierung der gängigen Web-Datei-Formate unter einem Dach bündelt.