Heute hatte ich eine Kundenanfrage, ob wir eine fertige Weblösung erweitern können. Und dann waren an der Mail noch 2 Bilder angehängt, wie es später ungefähr aussehen soll. Keine Nennung der Software, keine Schnittstellenbeschreibung, keine Spezifikation. Das war es.
Diese laienhaften Herangehensweise basiert oft auf folgenden Trugschluss: “Wenn Open Source kostenlos ist, können Einrichtung, Anpassung oder Erweiterung nicht schwer sein (und daher nicht viel kosten).”
Dieser Denkfehler ist übrigens eng verwandt mit
“Ich vergleiche einfach ein paar Werte von Softwareprodukten und finde dann selbst die passende Lösung.”
“PHP, Ruby, .NET oder Java: ist doch alles dasselbe.”
“Open Source ist per se fehlerfrei, rechtssicher, vollständig und klappt auf jeder Plattform.”
“Ich kann mit Open Source machen, was ich will.”
“Ich will keine Updates, es läuft doch alles.”
“Ich würde es ja selber machen, aber mir fehlt die Zeit, mich da einzuarbeiten.”
Ich stoße immer wieder auf Webseiten mit eklatanten Userrechtsverletzungen (Ha, das Wort wollte ich schon seit langer Zeit mal schreiben). Es gibt Betreiber, die mit solchen repressiven Mitteln den “Diebstahl” von Bildern oder Texten verhindern wollen.
Was sich wie ein Pamphlet liest, ist trauriger Alltag der Webbesucher. Man kann keinen Text markieren und auch andere wichtige Funktionen wie z. B. das Kontextmenü werden rechtswidrig unterdrückt.
Daher habe ich ein kleines Javascript programmiert, was als Favlet die Sperrung wiederaufhebt.
Reset Right
Und hier ist das Script zum nachlesen.
function f(a) {
a.onclick = a.oncontextmenu = a.onmousedown = a.onmouseup = a.onselectstart = a.a = null
}
var d = document, b = d.body;
f(d);
f(b);
Alle Macht den Usern:)
Nachdem ich festgestellt habe, dass ich über disqus kaum Kommentare auf meinen Blog erhalte, habe ich heute einfach mal Google Comments eingebunden. Ich bewege mich sowieso viel auf Google+ und kommuniziere dort am meisten.
Was soll ich sagen, es sieht nach viel mehr Kommunikation aus:)
Weitere Informationen:
How to add Google+ Comments to any website
Ich muss gestehen, die Suche nach einer perfekten Aufgaben- und Projektverwaltung hat sich bei mir zur Suche nach dem heiligen Gral entwickelt. Es gibt kaum ein System, was ich noch nicht ausprobiert habe.
Dann wurde ich auf Trello aufmerksam. Trello ist eine krude Mischung aus Kanban und Evernote. Es arbeitet mit sogenannten Boards, auf welchen man Listen erstellt und in die man Karten ablegen kann. Die Karten kann man sehr komfortabel zwischen den Listen (oder auch Boards) verschieben und bei Bedarf archivieren. Zu guter Letzt bietet Trello eine gut gemachte Android- und iPhone-App an.
Meine Listen sind wie folgt aufgebaut:
Future Projects
Hier kommen alle geplanten Projekte rein. Es kann durchaus sein, dass ein Projekt aus dieser Liste niemals umgesetzt wird.
Projects in Work
Hier kommen alle Projekte rein, an denen ich aktiv arbeite. Abgeschlossene Projekte werden archiviert.
Todo
Hier kommen alle Aufgaben rein, die ich noch nicht angefangen habe.
Doing
Hier kommen alle Aufgaben rein, an denen ich gerade arbeite.
Waiting
Hier kommen alle Aufgaben rein, auf deren Freigabe ich warte oder die ich delegiert habe.
Done
Hier kommen alle erledigten Aufgaben rein. Theoretisch könnte ich erledigte Aufgaben auch sofort archivieren, aber aus einem Höhlenmenschtrieb heraus macht es mir mehr Spaß, erledigte Aufgaben erst einmal hier abzulegen. Wenn ich zwischendurch gefrustet bin, archiviere ich alle Karten in der Liste und sofort geht es mir wieder besser:-)
Wie man auf dem Screenshot sehen kann, habe ich tatsächlich alle Projekte und Aufgaben im Blick. Dadurch verliere ich nichts mehr aus den Augen, außer ich vergesse es aufzuschreiben.
Weitere Informationen:
Trello
Trello - Android-App
Trello - iPhone-App
Kunde: Kann man das so machen?
Ich: Ja, das würde gehen.
Kunde: Super, wann können Sie damit anfangen?
Ich: Soll ich nicht erst einmal ein Angebot schreiben?
Kunde: Sonst lassen Sie es (die Änderung), so wichtig ist es auch nicht.
Wer sein TypoScript wiederverwenden möchte, findet zurzeit keine perfekte Lösung. Das Dilemma fängt schon mit dem fehlenden Syntax-Highlighting an :P
Ich benutze seit einiger Zeit snippets.me. Es ist leicht zu bedienen und hat eine Sync-Funktion. Leider kann man nur ein Snippet pro Eintrag speichern und die Weiterentwicklung geht im Schneckentempo voran.
Etwas besser ist da die Adobe Air-Anwendung snippely aufgestellt. Allerdings bin ich kein Freund von Air und manchmal ist die Bedienung etwas hackelig. Außerdem fehlen mir die Farben, um z. B. HAML, SASS, TYPO3 u.a. Snippets auch farblich zu kennzeichnen.
Heute bin ich durch Zufall auf Gistbox gestoßen. Gistbox kann man als eine Art Gisthub-Erweiterung verstehen. Gist selbst bringt schon viele wichtige Features für eine gute Codeverwaltung mit. Gistbox birgt weitere Vorteile, u.a. eine Chrome-App, Farblabels, Suche + Filter sowie das schnelle Verkleinern von Ansichten. Außerdem habe ich die Hoffnung, dass es über kurz oder lang ein Syntax-Highlighting für TypoScript geben wird. Und die Hoffnung stirbt bekanntlich zuletzt;)
Weitere Informationen:
http://www.gistboxapp.com/
https://code.google.com/p/snippely/
http://snippets.me/
Der Vollständigkeit halber hier noch der Link zu meiner Contacts App.
https://github.com/SimonWpt/chrome.app.contacts
Die App hatte über 2.000 Nutzer, bevor sie vom Google Store Team entfernt wurde. Ich nutze sie täglich und mir ist ein Rätsel, warum es von Google keine entsprechende App gibt.
Die Web-Apps von Chrome ersetzen bei mir quasi den Lesezeichen-Manager. Da ich zur Zeit versuche, kleine Dinge mit Google Keep zu erledigen und es keine Lesezeichen-App von Google gibt, habe ich meine eigene App erstellt. Ich habe sie auch im Store hochgeladen, aber ich glaube nicht, dass Google die App erlauben wird.
Also habe ich die App parallel auf meinen GitHub-Account hochgeladen:
https://github.com/SimonWpt/chrome.app.keep
Viel Spaß:-)
TYPO3 ist ein echter Zeitdieb, wenn es um das Setzen von Typoscript geht. Noch zeitraubender sind allerdings die Behebung von Bugs in TYPO3 und den Erweiterungen. Ein tt_news-Bug hat mich die letzten Stunden ganz schön auf Trab gehalten.
Das Problem
Wenn man in tt_news mit Bildern arbeitet, sind Default-Bilder eine sinnvolle Sache. Das funktioniert über den Wrap noImage_stdWrap. In meinem Beispiel hat das wunderbar mit displayList funktioniert, aber grandios bei displaySingle versagt.
plugin.tt_news {
displaySingle.image.noImage_stdWrap {
cObject = IMAGE
cObject {
file = fileadmin/foto.jpg
wrap =|
}
}
}
Das Bild wurde einfach nicht angezeigt. Zwar hatte ich bei meiner Recherche den folgenden Bug http://bugs.typo3.org/view.php?id=13561 gefunden, aber der war von Februar 2010 und damit überholt. Dachte ich.
Die Lösung
Der Bug ist immer noch vorhanden und wird wahrscheinlich nicht mehr gefixt. Daher schreibe ich meine Lösung auf:
plugin.tt_news {
imageMarkerOptionSplit = 1
imageWrapIfAny = |
enableOptionSplit = 1
displaySingle.image.noImage_stdWrap {
cObject = IMAGE
cObject {
file = fileadmin/foto.jpg
wrap =|
}
}
}
Nun fügt man im Template neben dem Platzhalter ###NEWS_IMAGE### noch den Platzhalter ###NEWS_IMAGE_1### ein. Fertig.
Gestern habe ich in einer TYPO3-Website eine Share-Funktion für Facebook & Co. integriert. Alles klappte, nur das Bild wurde nicht angezeigt. Diverse Validierungstools zeigten das Bild anstandslos an. Nach einiger Zeit habe ich meinen blinden Fleck gefunden, Facebook zeigt Bilder nur ab einer Größe von 200 Pixel in Breite und Höhe an. Argghhh.
Weitere Infos:
Facebook Object Properties