Artikel mit Tag serendipity
Verwandte Tags
autotitle bartleby blogs ursprung buzz commentedit dbclean listsearch projekt markupcomment nl2p photo android feedtragón ice-prefer ice-win icewm idesk-helper image-sacon izulu nachhaltigkeit pc-kombo rsspusher simdock sustaphones pubsubhubbub reallivecomment realtimecomments spamblock_bayes template_editor dsnblog rubyInstallationsskript für Serendipity
Wednesday, 29. April 2015
Wie installiert man Serendipity eigentlich möglichst einfach und automatisch auf einem Vanilla-Ubuntu? Um ein Image zu bauen, wie ich es vorhatte, brauchte ich ein Installationsskript. Besonders beim Download war ich mir nicht sicher - beim Autoupdate-Plugin war das Parsen der aktuellen Version noch etwas aufwändig.
Aber Sourceforge hat einen festen Link zur aktuellen Version, und zusammen mit dem ist ein Skript einfach. Zumindest für Ubuntu:
apt-get update && apt-get upgrade apt-get install php5 php5-sqlite imagemagick unzip wget -O serendipity.zip http://sourceforge.net/projects/php-blog/files/latest/download unzip serendipity.zip rm -R /var/www/html # Vorsicht: Ist das Ubuntu nicht neu, könnte hier schon was sein mv serendipity /var/www/html
SQLite statt MySQL macht das alles nochmal einfacher, der Blog ist bereits jetzt zur Installation bereit. Und Serendipity wird automatisch erkennen, dass nur SQLite als Option zur Verfügung steht. Dadurch spare ich mir das Anlegen einer Datenbank samt Nutzer und Passwort.
Das Serendipity-Treffen
Tuesday, 10. March 2015
Am Wochenende in Essen gewesen zu sein und mich mit den Mitstreitern von Serendipity zu treffen hat mir Spaß gemacht. Größtenteils haben wir einfach zusammen geredet, gegessen und getrunken, ein erstes Kennenlerntreffen außerhalb des Internets eben. Aber dann eben doch Zeit gefunden, strukturiert über Serendipity zu reden. Eine Zusammenfassung unserer Ergebnisse schrieb Garvin für den s9y-Blog, die Trackbacks dort und Matthias Bericht führen zu denen der anderen.
Zwei Anmerkungen:
- Wir kamen dazu zu definieren, was für ein Projekt wir sein wollen, was das Ziel ist. Das war davor diffus. Unser Ergebnis, s9y als klassisches Blogsystem zu definieren und so abzugrenzen, existierte auch vorher schon als Gedanke. Aber nun ist es Konsens des Kerns.
- Es sind auch klare technische Aspekte in der Zukunftsplanung dabei: Ergänzungen der Plugin-Api für Datenbank-Tabellen, echtes Caching, Komfortfunktionen mithilfe von cron, … . Meiner Einschätzung nach können wir alleine mit den Überlegungen aus dem Treffen einige wirklich gute neue Versionen füllen, wenn wir es schaffen, sie jetzt auch zu entwickeln.
- Die Menschen hinter den Internetrepräsentationen, ob Text oder Stimme, zu treffen war wirklich lustig. Die meisten kannte ich schon ein paar Jahre, aber ohne sie getroffen zu haben. Welche Aspekte der Person dann beim Treffen außerhalb des Internets sichtbar sind, aber auch welche dort verschwinden, ist echt nicht vorhersehbar.
Warum ist der erste Punkt so wichtig? Weil er dabei hilft, das Projekt als echtes Projekt zu bewahren. Serendipity ist das Produkt eines bestimmten Punktes der technischen Entwicklung von Blogengines. PHP, SQL mit Fokus auf MySQL, dynamisch erzeugte Seiten. Dem gleichen Punkt entsprang Wordpress, das sich jetzt zum vollständigen CMS entwickelt. Die Leute, die Serendipity entwickeln, sind dann entweder Leute, die verstreut ab und an Code in ein Repo pushen weil sie es eben tun - im Zweifel einsam, planlos und ohne Elan. Oder sie entwickeln mit einem gewissen für ein echtes Projekt notwendigen Eifer gemeinsam hin zu einem bestimmten Ziel; die Bewahrung und Weiterentwicklung der Idee eines klassisches Blogs ist ein solches - das man auch noch wunderbar abgrenzen kann zu modernen Systemen wie Ghost (dabei aber bei nicht sorgfältiger Formulierung nicht nett klingt, daher lass ich das hier erstmal).
Dafür sind solche Treffen toll. Ebenso um zu planen, wie wir uns besser präsentieren können, damit die Arbeit nicht unnötig vergebens ist.
Serendipity 2.0 ist veröffentlicht
Saturday, 24. January 2015
Endlich! Es hat ein paar Jahre gedauert, aber nun ist Serendipity 2.0 fertig. Die offizielle Ankündigung steht im Blog.
Heute kann ich mich kurz fassen, denn ich habe mich bereits bei meinen Mitstreitern bedankt und die wichtigsten Änderungen vorgestellt.
Einen Nachtrag habe ich: Auf Openhub ist s9y als Projekt eingetragen und dort wird auch der Quellcode analysiert. Und wir sind geschrumpft. Sicher im Core nur unwesentlich - die Smartifizierung kostet eher etwas mehr Code, aber sie strukturiert ihn besser - und ich kann den Zeitpunkt nicht ganz einem bestimmten Commit zuordnen, trotzdem ist das eine sehr gute Sache. Weniger Code heißt normalweise weniger Bugs.
Ich wünsche frohes Updaten und viel Spaß mit dem neuen Backend!
Schaut im Zweifel auch, was die anderen schreiben:
Dankeschön, Rückblick und Ausblick für s9y
Wednesday, 24. December 2014
Es mag verfrüht sein, denn es kann ja noch alles um die Ohren fliegen. Aber weil wir ja doch ausgiebige Alpha- und Betaphasen hatten und weil ich wirklich glaube, dass mit dem RC die 2.0 fertig ist, ist hier auch der Punkt, an dem ich mich bedanke. Matthias dafür, dass er als Frontend-Designer massgeblich das Backend und damit 2.0 gebaut hat. Ian für die wahnsinnig wertvolle Hilfe vor allem in der Anfangszeit mit der Smartifizierung - ohne dich hätten wir gar nicht angefangen. Garvin gleich für zwei Dinge: 1. den Freiraum, 2.0 überhaupt anzugehen und 2. die fortwährende Hilfe beim Entscheiden und beim Ausbügeln von Bugs.
Gedankt sei auch allen, die s9y 2.0 getestet haben, also Bernd, Dirk, Thomas, Robert, Ben, … und wen ich gerade vergesse.
Wir haben damit schon angefangen, aber es wird jetzt weiterhin darum gehen, 2.x zu bauen und dabei den Entwicklungsmodus zu normalisieren. 2.0 war lange Zeit ein Alleingang von Matthias und mir. Das hat Vorteile: Es entfällt die Notwendigkeit, alles direkt abzustimmen und auszudiskutieren. Es hat schon so zu lange gedauert, das war notwendig. Aber als wir 2.0 öffneten gab es dann direkt Zusammenstöße. Das gleiche passierte, als ich Falk einbringen wollte. Beide Male ging es meines Erachtens vor allem um Entscheidungskompetenz - und um das klar zu sagen, der Streit führte zu Ecken in 2.0, die ich immer noch für falsch halte, die kein Nutzer verstehen kann, so wie der Streit mit Falk dazu führte, das wichtige Modernisierungen nicht angegangen wurden. Gleichzeitig dauerte nach der Öffnung alles - für mich frustrierend - lange. Das müssen wir in Zukunft besser machen: Nicht, dass ich alles entscheide, sondern dass wir da zu einem Modus finden, der ohne Streit zu besseren Egebnissen führt.
Ich glaube, dafür brauchen wir vor allem gemeinsame Vorstellungen, was wir erreichen wollen - denn genau die sind etwas, die ich bei 2.0 etwas forciert habe; was nur dank der Anpassung derselben, der Kompatibilität mit Matthias Vorstellungen und Garvins Duldung funktionierte.
Ich hoffe, dass das s9y-Treffen im März in Essen da helfen wird. Dort können wir wir neben dem Kennenlernen klären, wie wir weitermachen: Wie wir s9y entwickeln, wohin wir wollen, ob es das mit den Großprojekten erstmal war oder ob wir ein s9y 3 anstreben.
Für mich war 2.0 eine wertvolle Erfahrung, ein wichtiger Teil meiner Entwicklerlaufbahn. Denn eigentlich sind die Grundlagen einer Blogsoftware nicht kompliziert. Aber eine 10 Jahre alte PHP-Blogsoftware mit den Ausmaßen und den Fähigkeiten von s9y ohne zu große Brüche zu erweitern, und das noch in einem Projekt mit anderen Menschen, das ist durchaus kompliziert genug - und das musste ich erst lernen. Und das mit meinem inneren Konflikt zusammenbekommen, ob die Entwicklung an s9y überhaupt eine sinnvolle Nutzung meiner Zeit ist, was zu der Frage führt, was ich mir überhaupt wovon verspreche. Darüber nachzudenken war wichtig.
Darüber nachzudenken passt wohl jetzt auch gut in die Weihnachtszeit. Ich wünsche euch allen eine schöne.
Die Änderungen von Serendipity 2.0
Tuesday, 23. December 2014
Wenn wir nun wirklich fertig sind, dann wird es Zeit zurückzublicken. Serendipity 2.0 existiert als Branch auf Github seit Dezember 2012, Überlegungen dazu seit mindestens Januar 2011. Aber es ist ein kleines Team von Entwicklern gewesen, das sich in eine Legacy-Codebasis einarbeiten musste. Was hat sich überhaupt getan?
Ein neues Backend
Das neue Backend ist die große Änderung. Ein Blog hat ja gar nicht so viele Ebenen - das Frontend, das Backend, vielleicht noch den Kern und die Datenbank. Version 2.0 ist die Version des Backends.
Die Smartifizierung
Vor allem gibt es ein neues System, um das Backend zu bauen. In 1.x waren es PHP-Dateien, welche die Logik beinhielten und das HTML ausspuckten, unter include/admin/*.php. Jetzt beinhalten diese Dateien nur Logik, befüllen Variablen und reichen die an die Template-Dateien des Admin-Themes weiter, unter templates/2k11/admin/*.tpl. Es funktioniert also nun genau so, wie auch das Frontend erstellt wird. Nebeneffekt ist, dass dieses Backend-Theme auswechselbar ist!
Das nannten wir die Smartifizierung und war der erste Schritt, getragen von Ian und mir.
2k11 als Backend-Theme
Der zweite Schritt war das neue Admin-Theme, das Matthias auch im Video beschreibt. Wir wollten nicht einfach nur ein neues System haben um das altbackene 1.x-Backend zu zeichnen. Es sollte ein modernisiertes Theme sein, das sich an 2k11 orientiert. Im Rahmen dieses neuen Backends ging es uns nicht allein ums Aussehen. Alle Aspekte des Backends sollten auf den Prüfstand und wenn nötig verbessert werden. Da waren einige große Punkte dabei, die insbesondere Matthias in Angriff nahm, mit Unterstützung von mir vor allem auf der PHP-Ebene.
Ein neues Menü
Von Anfang an sollte das Menü überarbeitet werden. Das Pluginmenü unter Aussehen, sowas muss ja nicht bleiben. Das neue Menü ist unterteilt in Inhalt, Mediendatenbank, Aktivität und Konfiguration. Zusätzlich gibt es oben rechts ein Zusatzmenü für die Optionen, die da nicht reinpassen, wie das Logout. Unten kommt der Menüpunkt Wartung dazu, in dem einige zuvor im Menü verteilte Aktionen wie Thumbnails neu generieren gruppiert wurden.
Ein neuer Editor
Das war teilweise als Experiment gedacht, aber es scheint jetzt so zu bleiben. Das Formular wurde umstrukturiert und die HTML5-Inputelemente genutzt, wo es passt. Buttons wie die Kategoriezuweisung, die man praktisch jedes mal braucht, sind nun zusammen oben gruppiert und können in einem Rutsch gedrückt werden.
Ein neues Dashboard
Wie begrüßte 1.x den Nutzer nach dem Login? Mit einer leeren Seite. Nichts gegen Whitespace, aber da gab es bereits ein sinnvolleres Konzept: Das Dashboard-Plugin. Das ist nun in das Backend integriert und zeichnet anders als andere Dashboards keine sinnlosen Statistiken, sondern zeigt die aktuell nötigen Aktionen, wie neue Kommentare und noch nicht fertige Einträge.
Überarbeitete Mediendatenbank
Der Code im Core der Mediendatenbank war ein Wirrwarr. Obwohl teilweise etwas angepasst ist er das immer noch. Doch bei der Darstellung hat sich einiges getan: Der Uploader ist komplett überarbeitet in einem Tab-Interface, unterstützt Drag&Drop und kann Bilder vor dem Upload verkleinern.
Die Mediendatenbank selbst zeigt per Voreinstellung größere Bilder, hat Overlays und eine angepasste Buttonbar.
Sacht überarbeitetes Plugin-Menü
Das Plugin-Menü ist nun per Tabs in Seitenleisten- und Eventplugins unterteilt. Drag&Drop wird durch ein jQuery-Plugin umgesetzt, es gibt einen Button um zu den Plugineinstellungen zu gelangen und einen neuen Anfasser.
Sachte Überarbeitung nahezu aller Menüs
Wahrscheinlich könnte man durch alle Menüs gehen und würde überall Änderungen sehen. Neue Buttons, neue Strukturen, neue Darstellung. Beispielhaft hier das Kategoriemenü, bei dem die Zebraliste auffällt. Was man dagegen nicht sieht ist die neue Methode, Kategorien mit bereits vorhandenem Namen über HTMLs Formvalidierung noch vor dem Senden abzufangen.
Weniger Labels
Labels sollten ein letztes Mittel sein, eine Funktionalität zu erklären. Besser ist es immer, wenn ein Label gar nicht erst nötig ist. Im alten Backend dagegen fanden sich Seiten mit gleich mehreren dauerhaft anzeigten Boxen mit Hinweistexten, oft genug mit fragwürdigem Nutzen. Neue Nutzer überfordert das, alte Nutzer brauchen die Hinweise sowieso nicht. Labels wurden daher wo nötig verdammt und mit Hinweisen im Fehlerfall oder klareren Menüs ersetzt.
In eine ähnliche Richtung geht die Änderung, Beschreibungstexte für Optionen nur auf Knopfdruck und nicht immer anzuzeigen.
Keine leeren Seiten
Einige Aktionen führten den Nutzer auf Seiten, bei denen nichts als ein kurzer Text angezeigt wurde. Jetzt sollten alle Aktionen zurück zum Menü führen und der Text in einer Box obendrüber angezeigt werden.
Weniger Filter
In der Mediendatenbank, bei der Kommentar- und der Eintragsliste wurden die Filter ersetzt. Als Voreinstellung werden hier nur noch die oft genutzten angezeigt, und sie wurden in Aufklappmenüs gesteckt.
Neue Pluginauswahl
Für 2.0 wurden keine neuen Plugins geschrieben. Aber viele der bestehenden wurden angepasst, sodass ihr Adminmenü in das neue Backend passt.
Andere wurden stärker verändert. Das Syndication-Seitenleistenplugin, das den Feed-Button anzeigt, unterstützt nun subtome, und viele seiner Optionen wurde in den Core verlagert.
Die Vorauswahl der Plugins wurde verändert. Kalender zur Navigation waren vor Jahren eine Blogmode und sind inzwischen verrufen, das fiel weg. Spartacus wurde vorher wahrscheinlich von jedem Serendipity-Nutzer manuell aktiviert, es ist nun eines der automatisch aktivierten Event-Plugins.
Als Hauptergebnis sieht ein neuer Serendipity-Blog nun etwas besser aus, auch im Frontend. Und da auch Core-Plugins nun über Spartacus aktualisiert werden können, kann hier leicht später noch viel getan werden.
Neue Themeauswahl
Es ist immer noch alles da. Aber bisher waren ausgerechnet einige der besonders alten MT-Themes prominent im Serendipity-Archiv gebündelt. Die wurden nach Spartacus verschoben.
Auf lange Sicht wird 2.0 hoffentlich helfen, neue und moderne Themes für Serendipity zu schaffen, weil sie mit 2k11 als Fallback und den neuen Theme-Events nun angenehmer zu bauen sind. Mit photo und bartleby habe ich schonmal zwei anzubieten.
Neu ist die Optionen, dass Backend-Themes unabhängig vom Frontend-Theme ausgewählt werden können. Man könnte jetzt also ein dediziertes Backend-Theme bauen und das mit 2k11 oder auch mit bartleby nutzen.
Sonstiges
Der alte WYSIWYG-Editor war xinha. Der bescherte uns Sicherheitslücken und war generell einfach fällig. CKEditor ist der neue WYSIWYG-Editor. Er ist mächtig, hübsch und anpassbar genug.
Im Core ist nun ein Logger integriert. Der schreibt nach templates_c und muss erst aktiviert werden. Er soll helfen, Probleme im Forum leichter zu diagnostizieren. Immer, wenn Serendipity bisher Fehlermeldungen einfach vom Kern her ausgab, kollidiert das ja nun mit den smartifizierten Templates. Solche Meldungen müssen nun also enweder über das Theme ausgegeben werden, wenn sie an den Nutzer gerichtete Statusmeldungen sind, oder aber sie landen im Logger.
Zum Schluss noch mein Lieblingsfeature: Die Autosave-Funktion des Editors.
Lange Texte zu verlieren ist furchtbar. In s9y konnte das immer dann passieren, wenn beim Speichern oder dem Erstellen der Vorschau der Nutzer durch ein Session-Timeout ausgeloggt wurde oder die Internetverbindung abriss. Nur manchmal rettete der Browser den Inhalt des Editors, meist war alles weg. Jetzt speichert s9y alle paar Sekunden den Text per localstorage explizit im Browser und stellt ihn automatisch wieder her. Diesen Blog habe ich erst vor zwei Wochen aktualisiert und diese Funktion hat mir schon zwei Artikel gerettet.
Zum Abschluss
Das waren nicht alle Änderungen. jQuery ist jetzt überall verfügbar, Magnific-Popups werden statt Popupfenstern verwendet, … . Selbst wenn ich wollte könnte ich nicht alles aufzählen, weil ich einiges schlicht vergessen habe. Die Änderungen von 2.0 sind massiv. Und gleichzeitig ist es doch die kleine Variante gewesen, die Weiterentwicklung ohne Rewrite des Kerns, fast ohne inkompatible Änderungen, bei der das Frontend kaum angerührt und der Charakter von s9y meines Erachtens bewahrt wurde. Aber ich glaube, wir haben doch einiges verbessert.
Serendipity 2.0 Release Candidate
Monday, 22. December 2014
Zur Beta rief ich zum Testen auf. Den RC will ich nutzen, um zum Wechseln aufzurufen.
Version 1.x wird noch eine Weile mit Patches versorgt werden. Und die 2.0 ist noch nicht stable, da hat Matthias schon recht. Andererseits sind wir im Grunde fertig. Unvorhersehbare Bugs ausgenommen ist unsere Issue-List für die stable überschaubar. Der größte Brocken da ist die Überarbeitung der Texte. Das ist also durchaus bereit für ein Produktivsystem, solange es nichts kritisches ist - ein persönliches Blog wie dieser hier beispielsweise.
Neuheiten seit der Beta
110 Issues sind dem RC zugeordnet, alle sind erledigt. Die in meinen Augen wichtigsten Änderungen:
- Serendipity hat nun neue Plugins, die bei der Installation mitgeliefert und direkt aktiviert werden. Dazu gehört, dass Spartacus direkt aktiviert, der Kalender nicht mehr dabei und Gravatar Teil des Archivs ist.
- Gegen Ende der Beta entdeckten und fixten wir einen durch stümperhafte PHP-Änderungen provozierten größeren Charset-Bug.
- Einige Upgrade-Fehler wurden durch einen überarbeiteten Smarty-Cache-Purge behoben. Das Problem trat beim Upgrade dieses Blogs auf.
- Im Editor wurde die Tagliste nochmal überarbeitet, um besser mit vielen Tags zurechtzukommen.
- Die Autosave-Funktion löschte ihren Buffer nicht.
5 von 110 Issues, und einige andere Änderungen werden durch Issues gar nicht erfasst. Es sind auch viele kleine Änderungen dabei: Spartacus gibt ein paar Meldungen weniger aus, Subtome funktioniert nun tatsächlich, der CKEditor wurde aktualisiert, …
Im Vergleich zur Beta ist alles etwas runder. Und damit in meinen Augen bereit, 1.x zu ersetzen.
Neues Theme heißt bartleby und hat eine Demo
Sunday, 7. December 2014
Mein neues Theme hat nun einen Namen, bartleby, eine Demo und sieht so aus:
Änderungen seit der ersten Vorstellung:
- Es kann zwischen Serif und Sans-Serif-Webfonts umgeschaltet werden. Die Voreinstellungen dafür sind Fira Sans und Vollkorn. Für Zitate wird in beiden Fällen Alegreya, für Code Latin Modern Mono genutzt.
- Codeblöcke bekommen durch highlight.js Syntaxhighlighting, wie hier im Blog.
- Die Schriftgröße folgt nun stumpf den Browservoreinstellungen, ist also nicht mehr vergrößert
- Einige Anpassungen bei Margins, Padding und Positionierung
Es hat nicht viele Optionen, Änderungen sollten eher per userstyle umgesetzt werden. Sicher ist es auch noch nicht fertig, aber die Grundlage steht jetzt.
Feedback willkommen.
Die in der Demo gezeigte und aktuelle Variante: bartleby-0.1.tar.gz
Ein neues Text-Theme für s9y - Vorschläge?
Friday, 5. December 2014
Ich habe eine erste Version eines neuen Themes für Serendipity. Der Arbeitstitel lautet texto.
Das Theme soll mehrere Sachen bewirken.
Zum einen will ich das Design meines dsnblogs nach s9y bringen. Das soll keine stumpfe 1:1-Kopie werden, sondern es geht mir um die Designideen: Fokus auf den Text, Trennung durch Whitespace statt Linien, keine Boxen.
Zum anderen sind da die Sachen aus photo, die in einem Theme ohne Fokus auf Bilder auch gut funktionieren könnten, wie die asides.
Außerdem soll es ein bisschen simpler werden. Der Gedanke ist, ein weiteres HTML5-Theme zu haben, das man einfach auf einem Blog installieren kann und dann weiß, dass es akzeptabel aussehen wird.
In meinen Augen hat s9y da wieder eine Lücke, an die mich Thomas erinnert hat.
Da es im Gegensatz zu 2k11 kein Standardtheme werden soll, kann es sich ein paar Konfigurationsoptionen einsparen, und wenn es nicht jedem gefällt ist das auch ok. Im Moment sieht es so aus:
Die sichtbaren Merkmale:
- Der Header hat keine weiteren Element, er ist einfach nur platziert und groß.
- Artikeltext wird nicht zu breit, ist aber auch nicht in einer Box.
- Die Seitenleiste ist ein Footer.
- Fira Sans wird als Webfont geladen.
Ich suche noch einen griffigeren Namen. Texto passt zwar zur Mission und Herkunft, aber klingt irgendwie nicht toll - Arbeitstitel und Notlösung, nicht mehr. Ideen dazu? Außerdem würde ich gerne Ideen zum Theme selbst entgegen nehmen. Bis auf die Kernidee bin ich da auf noch nichts festgelegt, weder Linkfarbe, Seitenleiste noch Schriftart. Gibt es Featurewünsche?
Photo 1.0 veröffentlicht und in Spartacus
Tuesday, 12. August 2014
Vorhin habe ich photo im Forum vorgestellt und auf Spartacus hochgeladen.
So sieht es jetzt aus (in der hellen Variante):
Es hat sich ein bisschen was seit dem ersten Blogpost darüber getan. Zuerst bin ich durch Yellowleds Anmerkungen gegangen. Dementsprechend:
- …ist das Kommentaformular nun etwas grauer
- …werden günstigere Webfonts als default genutzt (droid sans). Ich bin daran gescheitert, generell nur kleine und gute auszuwählen, und sah das als zweitbeste Lösung
- …stammen diese Webfonts jetzt von Google, nur Aleo nicht, da es dort fehlt
- …werden die Webfonts für das Banner (Aleo oder Philosopher) nun auch für normale Überschriften genutzt, wodurch sie zu laden weniger verschwenderisch wirkt
- …wurden einige Standardeinstellungen geändert
- …gibt es nun ein lazyload für alle Bilder, mit no-js fallback
Dazu kommen noch einige andere Änderungen:
Die helle Variante ist nun vollständig - aber mir gefällt die dunkle immer noch besser, in ihr steckt auch insgesamt mehr Sorgfalt, sie war einfach zuerst da und ich hatte sie länger vor Augen.
Es gibt ein Fallback für die Slider-Box (das mir fast besser gefällt als die Box selbst) für Nutzer mit deaktiviertem JS oder falls die Box deaktiviert wird, das Beachten der Option fehlte nämlich noch.
An den margins und paddings wurde ein bisschen gedreht und es wurden ein paar kleinere Bugs gefixt, wie das Anzeigen des Kommentarformulars bei deaktivierten Kommentaren oder die falsche Farben für die s9y-Benachrichtigungen.
Außerdem habe ich eine Readme im Demoblog angelegt, in der (bisher nur) die initiale Einrichtung der Bilderverknüpfung beschrieben wird.
Sobald die Mirrors aktualisiert sind, sollte es im Adminbereich eines jeden Serendipity-Blogs angeboten werden. Allerdings wird es erst ab Version 2.0 funktionieren und ist entsprechend markiert, ich hoffe also, dass es in 1.x-Versionen nicht in der Liste auftaucht oder zumindest nicht installierbar ist.
Ich bin gespannt auf die ersten Bugreports oder Erfahrungsberichte und hoffe, dass es seine Funktion gut erfüllt.
Eine Sache noch: Ich hatte ja darüber nachgedacht, das Theme nicht freizugeben und stattdessen zu verkaufen. Schlussendlich hab ich mich offensichtlich dagegen entschieden. Für mich war das interessant, denn ich bin mir nicht sicher, warum das nicht-freigeben auf einmal eine Option was. Kam der Gedanke daher, dass ich inzwischen sowas wie arbeite? Das wäre widersprüchlich, denn es bedeutet, dass ich mehr Geld habe als früher - aber gleichzeitig ist es zur Zeit auch mehr wert, falls das irgendwie zusammenpasst. Lag es eher wirklich daran, dass es eines der ersten Projekte war, dass ich nicht für mich gebaut habe? Könnte durchaus sein, denn tatsächlich plane ich nicht, das Theme für mich selbst zu nutzen. Das ist bei nahezu allen s9y-Plugins, an denen ich werkelte, anders gewesen, und gilt ja genauso auch bei s9y 2.0. Und ich zögerte deswegen, soviel Zeit ohne tieferen Nutzen aufzuwenden (aber sobald ich anfing war es dann das übliche, Reiz der Herausforderung samt Wunsch, es genau so umsetzen zu können wie geplant).
Wo ich mir sicher bin: Teilweise hat es mich schlicht interessiert, ob es geht. Ob ich das Theme verkaufen könnte, ob meine Arbeit gut genug ist und ob es Käufer gibt (was alles andere als sicher ist, s9y ist schlicht zu wenig verbreitet oder in einer dafür passenden Nische). Das wäre schon cool gewesen, auch um später zu wissen, ob sowas eine Option ist.
Es läuft darauf hinaus, dass ich mich durchgerungen habe, eine Spendenseite für photo auf pledgie einzurichten und im Demoblog zu verlinken. Das erste mal für mich, und ich muss mich an den Gedanken noch gewöhnen. Aber ich weiß: Ich würde mich riesig drüber freuen, wenn bei Gefallen und entsprechendem Nutzwert des Themes dies ein bisschen vergütet werden könnte.
Ein Foto-Theme für Serendipity: photo
Tuesday, 5. August 2014
Serendipity fehlt ein Foto-Theme.
Für 2.0 haben wir die Mediendatenbank überarbeitet. Einiges ist einfacher geworden, vieles hübscher, aber funktioniert es am Ende wirklich gut? Ich gehe davon aus, dass da noch Kanten sind. Aber grundsätzlich sollte sich s9y für ein Foto-Blog gut eignen, aber eben mit einem passenden Theme. Beim Überlegen darüber stellte ich fest, dass es mich reizte, ein solches Theme zu bauen.
Demo: https://onli.columba.uberspace.de/s9y/
Genereller Aufbau
So sieht das derzeit aus:
Einträgen können (und sollten) per Freifeld des entryproperties-Plugins ein Bild zugeordnet werden. Dieses wird dann in den Übersichtsseiten und zu Beginn des Artikels angezeigt. Fährt man mit der Maus über die Bilder, wird ihr Titel und Datum eingeblendet.
Sticky Entries werden in das Karussel oben aufgenommen, das sich natürlich nicht automatisch dreht. Die Bilder dort sind größer als bei normalen Einträgen, doppelt so groß.
Es gibt eine Sidebar, die unten in den Footer gesetzt wird.
Design der Einträge
In den Einträgen kann Text per aside an die Seite gesetzt werden:
Fotos in Einträgen werden durch Magnific in einer Lightbox angezeigt. Das gilt für alle, nicht nur für das Hauptbild des Eintrags. Natürlich kann man das deaktivieren und eine Lightbox des s9y-plugins nutzen, aber ich wüsste nicht, warum man das wollen würde.
Typographie
Ich habe versucht, sinnvolle Optionen und Defaults für die Webfonts bereitzustellen. Für ein Fototheme ist es besonders wichtig, gut auszusehen, und sobald Texte neben den Bildern stehen, hat Typographie darauf einen großen Einfluss.
Welche gewählt wird ist natürlich konfigurierbar (PT Sans, Open Sans, Lato, Cabin, Ubuntu, Droid Serif), auch ist das deaktivierbar und fällt dann auf die Browsereinstellungen zurück. Meinungen zu der Auswahl?
Webfonts werden zudem von Brick geladen, nur Cabin und Ubuntu kommen von Google.
Die Browsereinstellungen definieren übrigens auch die Schriftgröße, normaler Text wird nicht verkleinert.
Für Zitate (blockquotes) wird Crimson geladen, das mit den gewählten Webfonts gut zusammenpasst, für mein Auge.
Die Schrift im Blogheader ist Aleo.
Sonstiges
Den Einfluss von 2k11 sieht man auch in ein paar der Optionen: Das konfigurierbare Datumsformat, der Link zu dem Elternkommentar, außerdem ein Header Image. Bei letzterem bin ich aber nicht sicher, ob es drin bleiben soll - man kann zwar eines wählen, das ordentlich aussieht, aber es ist für ein solches Theme nochmal schwieriger als bei 2k11.
Eine user.css wird unterstützt. Eine globale Navigation für Links auf statische oder andere Seiten natürlich ebenfalls.
Im Hintergrund ist ein Bild von unsplash, meiner Meinung nach gewinnt das Theme dadurch.
Zusätzlich zu dem dunklen Standard-Farbschema möchte ich auch noch ein helles anbieten. Das existiert auch schon, muss aber inzwischen wieder überarbeitet werden, weil sich das Theme seit seiner Erstellung verändert hat.
Meinungen?
Wie das so ist, am Ende wird man seiner eigenen Arbeit gegenüber blind. Ich wäre dankbar für Anmerkungen: Was sieht nicht gut aus? Was fehlt? Insbesondere, wer selbst Fotograf ist oder ein Blog mit vielen Bildern betreibt, möge sich hier bitte angesprochen fühlen, mir notwendige Funktionen zu beschreiben.
Ich bin übrigens noch am überlegen, ob ich das frei veröffentliche. Inzwischen tendiere ich dazu, anders als am Anfang, als ich den Zeitaufwand für den Bau eines Themes, das ich wohl nicht selbst nutzen werde, vor mir selbst rechtfertigte mit dem Gedanken, ich könnte ja versuchen es zu verkaufen. Das wäre allerdings neu für mich. Ideen dazu?
Serendipity 2.0 Beta raus - jetzt brauchen wir euch!
Monday, 14. April 2014
Nach langer Entwicklungszeit ist nun die Beta von Serendipity 2.0 erschienen. Die Ankündigung erklärt nahezu alle Änderungen, deswegen hier nur ein kurzer Überblick:
- Neues, responsives HTML5-Backend, mit vielen kleinen und größeren Verbesserungen
- Integriertes Dashboard mit Übersichts- und Komfortfunktionen
- CKeditor als WYSIWYG-Editor
- Überarbeitetes Interface für die Mediendatenbank
- Überarbeitetes Interface des Eintragseditors
- Neue Menüstruktur
- Der komplette Core von Serendipity nutzt nun Smarty, um das Backend zu erzeugen, dessen Templates sind daher nun einfach auswechselbar
Ausführlich zeigt YellowLed das im Screencast:
Eine Beta ist natürlich nichts wert ohne Tester. Daher die Bitte: Falls ihr irgendetwas wie einen Testblog habt oder einen, der mit einem guten Backup versehen ist und im Fall der Fälle etwas Downtime ertragen kann, schmeißt die Beta von Serendipity 2.0 drauf und nutzt es einfach. Wenn etwas nicht läuft oder ihr Ideen habt, was sich noch ändern soll (wir sind noch nicht fertig, bis zur stable darf sich noch was tun - auch bei den Plugins, im Core oder im Frontend), meldet es im Forum oder hier.
Serendipity 2 in 2014
Monday, 20. January 2014
Der aktuelle Stand von Serendipity 2 ist: Wir sind mit dem Alphatest durch. Für eine begrenzte Zahl von Testern wurde ein Testblog vorbereitet, in dem sie spielen sollten. Und auch wenn nicht jeder Tester dann wirklich Zeit hatte, kam am Ende doch einiges an Feedback zusammen: 58 Issues, teilweise mehrteilig, extrahierten wir (=primär Yellowled) aus dem Feedback, diskutierten sie, und versuchten die verbliebenen als lösbar erscheinenden dann zu lösen. Damit sind wir jetzt fast durch.
Ich finde es ja wirklich toll, wenn sich ein Stück Software runder anfühlt, nachdem Arbeit reingesteckt wurde. Und gerade löst das neue Backend genau dieses Gefühl bei mir aus. Sowas kann natürlich täuschen, und vor allem geht immer noch mehr. Und viel sehen tut man von den letzten Änderungen auch nicht:
Aber ein bisschen schon.
Thema "es geht immer noch mehr": der Titel ist auch als Absichtserklärung zu verstehen. Der grobe Plan sieht so aus: Wir machen die letzten vom Alphatest motivierten Änderungen, besprechen dann mit den anderen was zu tun ist im Hinblick auf einen regulären Betatest - mit RCs und eben so, wie das auch mit den 1.x-Versionen gehandhabt wird. Das kann durchaus noch ordentlich Arbeit sein, selbst wenn wir uns mit allem einig sind (z.B. könnte man derzeit noch nicht sauber von 1.x auf 2.0 upgraden). Aber doch sollte es bald möglich sein, den derzeitigen Part der Entwicklung - also die separate 2.0-Entwicklung mit Fokus auf das neue Backend - abzuschließen.
Was schön wäre, selbst wenn dadurch einige der größeren Pläne unvollendet bleiben. Denn zum einen wird es Zeit, dass es fertig wird, damit andere von den neuen Funktionen profitieren können, wenn sie denn gefallen. Und außerdem würde ich es gerne für mich abhaken. Selbst wenn es gerade Spaß macht.
Große Pläne für 2.0
Friday, 28. June 2013
Falk hat im Forum eine Reihe von größeren Projekten vorgeschlagen
* Ich möchte die 1.7er und die 2.0er zusammenfügen (am besten bis KW 27)
* Danach baue ich Composer-Unterstützung ein
* Datenbank-Schema-Überarbeitung (mysql)
* Die veralteten PEAR-Bibliotheken werden ausgetauscht (gegen aktuelle oder andere Bibliotheken weiß ich noch nicht).Dann entscheide ich mich zwischen:
* neuem Datenbank-Layer
* neuer Setup-Routine
* neuem Event-System
Garvin hat explizit um Nutzerfeedback gebeten
Wie sehen die anderen das? Und was sagen vor allem Nutzer dazu?
Also, nur zu!
Ich halte die Pläne für sehr sinnvoll, aber zu wie man z.B. am besten mit den Plugins umgeht würde mich Nutzermeinung auch interessieren.
Serendipity 2.0 Entwicklertagebuch 2: Datetime-local, JS-Hook
Wednesday, 19. June 2013
Vor nun fast 2 Wochen habe ich den aktuellen Stand unserer Entwicklungsbemühungen für ein moderneres Serendipity 2.0 vorgestellt. Mir ist es wichtig, dass der Entwicklung möglichst einfach gefolgt werden kann. Die Commitliste ist dafür nur begrenzt geeignet, deswegen werde ich jetzt einfach öfter mal vorstellen, was ich inzwischen getan habe. Immer gilt: Wenig davon ist unumstößlich.
Datumseingabe
Die Datumseingabe im Eintragseditor ist ein Textfeld, das nur funktioniert, weil es vorgefüllt wird. Ansonsten ist es ein normales Textfeld und der Nutzer müsste ein valides Datumsformat erraten. Das Vorfüllen mitsamt dem Button zum Setzen auf die aktuelle Zeit ist eine solide Lösung.
HTML5 bietet eine andere Lösung an: Ein datetime-local Eingabefeld:
Das zu nutzen führt jedoch gleich zu zwei Problemen: Das smartygenerierte Datumsformat zum Vorfüllen des Eingabefeldes muss anders werden, unlesbarer (von YYYY-MM-DD HH:MM zu YYYY-MM-DDTHH:MM) und es wird derzeit von Firefox und mobilen Browsern nicht unterstützt. Für solche Browser wäre das also ein Rückschritt, sie würden das neue Datumsformat in einem normalen Texteingabefeld sehen (alle anderen nicht!). Deswegen brauchte es ein Fallback in der serendipity_editor.js.tpl:
if($entryEditor.size() > 0) { $('#serendipityNewTimestamp').val($('#serendipityNewTimestamp').val().replace("T", " ")); }
Durch das Entfernen des T wird das Datumsformat wieder lesbar in Browsern, die datetime-local nicht unterstützen. Bei allen anderen hat der Code keinen Effekt, weil es kein valides Format for datetime-local ist.
Ich hätte lieber ein Polyfill genutzt, aber fand kein funktionierendes - genau genommen fand ich nur ein echtes Polyfill, das jedoch jquery-UI benötigt, und eine JS-Alternative, die jedoch in FF bei mir nicht solide funktioniert.
serendipity_define.js.php
Die serendipity_define.js.php liegt im Hauptverzeichnis und scheint nur eine Funktion zu haben: Die Javascript-Variable xhtml zu setzen. Die Variable wird nicht mehr benötigt und der ganze Mechanismus ist in meinen Augen durch die serendipity_editor.js.tpl, die klarere Strukturierung des Admin-Javascripts und den neuen JS-Hook (siehe unten) gut ersetzt. Sollte ich mich da täuschen, wäre hier und jetzt ein guter Moment mir das mitzuteilen. Fürs Erste habe ich die Datei und ihre Einbindung entfernt.
JS-Hook
Für CSS gibt es einen Plugin-Hook, über den Plugins ihr CSS der vom Kern generierten serendipity.css hinzufügen können. Das macht es für Pluginautoren wesentlich einfacher, CSS-Code auszugeben und führt dazu, dass er weniger häufig einfach stumpf ins HTML geschmissen oder über mehrere Dateien verteilt wird (was zu mehreren GET-Requests beim Seitenaufbau führt). Für Javascript gab es noch keinen solchen Mechanismus, er wäre aber durchaus genauso nützlich. Deswegen habe ich einen Hook namens js zum Kern hinzugefügt, der eine serendipity.js mit dem gesammelten Code aller ihn nutzenden Plugins erzeugt. Ich denke, es wäre auch überlegenswert, den Code des Adminbackends darin zu bündeln. Eventuell fehlt hier noch Logik, um parallel zum CSS eine serendipity_admin.js mit nur dem Code das Backends zu erzeugen, das würde ich hinzufügen wenn es sich als nötig erweisen sollte.
Layout.php Überbleibsel und API-Stabilität
Vor meiner Zeit mit s9y gab es eine layout.php, die wohl statt der Smarty-Templates zur HTML-Codegenerierung genutzt wurde. Es gibt immer noch ein Template im Kern, das eine solche nutzt, das Template newspaper. Die Überbleibsel im Kern zur Unterstützung dieser layout.php habe ich nun entfernt - ich glaube nichtmal, dass diese Methode noch einwandfrei funktionierte, aber selbst wenn ist das einer der alten Zöpfe, die ich für eine bessere Wartbarkeit des aktuellen Kerns gerne los wäre.
In diesem Zusammenhang habe ich die Parameter der generate_plugins-Funktion verändert, nämlich den zweiten Parameter $tag entfernt, der keinen Effekt mehr hatte. Das führt dazu, dass fast alle Aufrufe dieser Methode (zwei im Kern) verändert werden müssen, weil sich ja die Reihenfolge der Parameter danach ändert (PHP kennt nativ keine named parameter). Dagegen hat Garvin zurecht protestiert, und ich habe (in meinen Augen ebenso zurecht) für diese Änderung argumentiert. Das ist kein Streit, sondern eine berechtigte Diskussion um die Frage, ob solche Änderungen im Kern für Nutzer, die ggf gegen den Kern ihre eigene PHP-Seite geschrieben haben, zumutbar und ob sie nötig sind. Ich würde das immer noch bejahen, was aber nicht heißt, dass ich Garvin überzeugt habe. Aber wenn mir jemand mitteilen will, wieviel Mehrarbeit eine solche Änderung für ihn bedeuten würde - ich will sowas noch bei ein paar Funktionen machen - wäre wieder hier und jetzt ein guter Moment.
Serendipity 2.0 pre-alpha: Der aktuelle Stand
Thursday, 6. June 2013
Für Serendipity 2.0 wurde einiges geplant. Was ist der aktuelle Stand?
Zusammenfassend: Das HTML im Backend ist modernisiert, das Javascript ist zu jQuery portiert und dabei aufgeräumt worden, und es gibt ein neues Admin-Design.
Vorab: Alles, was ich im Folgenden zeige, ist vorläufig. Nicht alles ist abgesprochen mit den anderen, nicht alles wird so kommen, viel kann noch dazukommen. Sowohl funktional als auch auf Designseite.
Das Adminbackend ist von Ian und mir smartifiziert worden. Vorher war das HTML und Javascript in den PHP-Dateien enthalten und wurde von dort ausgegeben, wenn eine Seite aufgerufen wurde. Jetzt macht das PHP seine Aufgabe und stellt die Daten den Smarty-Templates zur Verfügung, die sich dann um die Präsentation kümmern. Wir haben sogar einen neuen Mechanismus, um Javascript-Dateien des Designs per Smarty generieren zu lassen, um dort ebenfalls direkt auf die Daten des PHP zugreifen zu können.
Das heißt: Während in 1.7 das Adminbackend aus den PHP-Dateien in include/admin/ generiert wurde, war der Frontend-Part zwischenzeitlich in include/admin/tpl/ und ist jetzt in templates/templatename/admin/.
Das alles erleichtert uns die Aufgabe, das Admin-Backend zu modernisieren - HTML5, jQuery und allgemeine Verbesserungen. Das wird im Rahmen des hervorragenden 2k11-Designs von Yellowled gebündelt, der auf der Designseite auch im Backend den Großteil der Arbeit gemacht hat. Dieses 2k11-Design soll bulletproof als Default-Design ersetzen und ist auch schon als solches gesetzt.
Die genutzten Smarty-Templates sind jetzt Teil des Designs, nicht mehr Teil des Kerns. Das ermöglicht es theoretisch, sehr unterschiedliche Adminbackends zu designen. Aber auch der Installer gibt jetzt sein HTML per Smarty-Template des Designs aus (wodurch die serendipity_admin.php um 200 Zeilen schrumpfen konnte).
Von den Code-Änderungen sieht man als Nutzer natürlich wenig, sie führen vor allem zu besser wartbaren Code. Aber was man durchaus wahrnimmt ist das 2k11-Adminbackend:
Ich fand es beeindruckend, wie deutlich anders das Backend alleine durch die Verbesserungen beim HTML und die andere Farbgebung wirkt. Mir gefiel der Effekt sehr gut.
Ansonsten ist es bisher größtenteils das alte Backend. Wir kommen jetzt erst an den Punkt, an dem wir grundlegendere Änderungen ausprobieren können, wie beispielsweise eine andere Navigationsstruktur. Ein paar Änderungen boten sich direkt an. So wurden die Einstellungen des Designs auf eine eigene Seite verfrachtet:
Und in der Mediendatenbank gibt es eine Reihe von Änderungen, wie ein Anzeigen der Informationen per Overlay und Buttons zum Filtern nach Dateityp:
Generell wurden die Filter versteckt, auch in der Eintragsliste:
Soviel zum Backend.
Ein Serendipity 2.0 könnte auch Änderungen auf anderer Ebene bringen, inklusive neuer Funktionen. Gleichzeitig soll natürlich nicht alles umgeschmissen werden und als altes System ist der Großteil dessen, was man sich vorstellen kann, schon umgesetzt. Ich werde mich aber sicher noch am Caching probieren und ein Autospeichern des Editors per localStorage implementieren. Was sich noch ändern wird ist die Auswahl mitglieferter Plugins, beispielweise ist der Kalender inzwischen ein Relikt einer vergangenen Blogzeit. Aber in der Richtung ist noch nichts großes passiert, daher kann ich da auch nichts zeigen.
Yellowled wollte den aktuellen Stand auch vorstellen - er kann sicher viel mehr zu den Details des Admindesign sagen als ich - das würde ich dann hier verlinken.