Das neue Identi.ca

Für mich hat sich das neue Identi.ca leider in das Aus geschossen. Nicht nur das mein Stream vor Nichtnachrichten nur so wimmelt, das die Meldungen über neue Nachrichten aus dem Jahre 2009 sich nicht wegaktualisieren lassen, die Webseite schnarchlangsam geworden ist und der einzige Androidclient auf dem Martk suckt. Nein, es ist es eher das mir durch die Aktion identi.ca leider Egal wurde. Der Schritt es wie Diaspora (Ruby, bevor noch Jemand einen Pawloschen bekommt) zu machen und auf json zu setzen und damit die Installation… ach lassen wir es. Ich hoffe man kann mir folgen.
Leider mal wieder an den Bedürfnissen des normalen Anwenders vorbeigeschossen.

Goodbye Identi.ca und ich warte immer noch auf eine wirklich gute Version des freien Socialnets.

Warum ich Android vorziehe, mein eigenes ROM

iphone-or-android
via 411Droid.com
Ich denke mehr muss dazu nicht sagen.
Die letzten Tage habe ich mich auch hingesetzt und ein eigenes ROM gebastelt, welches meinem Gusto entspricht. Ich habe das ganze mit kitchen und einem CyanogenMOD-ROM begonnen, meine Radio und hboot auf eine neue Version gebracht, sodass ich das ganze mit ezTerrys 2708er Kernel nutze. Es wurde von meiner Seite massiv viel rausgeschmissen, Zeam als Homeapp genutzt, K9 und AGP implementiert etc.
Man sieht dann nach einem Boot welcher nur noch 15 Sekunden max dauert, dass ein G1 nicht zu dem alten Eisen gehört.
Ich denke ich werde das ganze dann noch so machen, dass ich Cyanogen direkt aus den Sourcen kompiliere und mir auch gleich den Kernel selbst baue, natürlich inkl der Patches, welche notwendig sind.
Und nun kommt das iPhone ツ

Erstellen eigener Seitenleisten in Serendipity

Da ich mich ein wenig problematisch angestellt habe in der Erstellung eigener Seitenleisten in Serendipity, habe ich einen sehr langen thread hervorgerufen, bis ich auf die Lösung des Problems kam. YellowLed sprach mich an, doch meinen Geistesblitz in schriftlicher Form niederzulegen und das werde ich auf jeden Fall machen, denn dann dürfte auch weiterhin Einigen die Erstellung eigener Themes mit mehr als einer Sidebar leichter fallen.

Bei der Erstellung eigener Sidebars ist der Dreh- und Angelpunkt in Serendipity die Datei confic.inc.php , die sich im Verzeichnis des Themes befindet, welches man selbst erstellt hat. Innerhalb der Datei config.inc.php lassen sich Variablen für das Theme erstellen, welche später für das Aussehen des Blogs zuständig sind. Als Beispiel nehme ich einmal das Theme von diesem Blog, auch wenn es noch nicht ganz fertig ist.
Das Theme besitzt eine sidebar, welche sich oben und eine sidebar welche sich im unteren Bereich direkt über den footer befindet.
Die obere sidebar spreche ich mit:

{if $is_single_entry !=true and $staticpage_pagetitle ==''}
<div id="sidebar_top">{if $topSidebarElements > 0}
 {serendipity_printSidebar side="top"}
 {/if}</div>
<!-- /#sidebar -->
 {else}
 {/if}

an.
Zeilen:
1. Wenn Du kein Einzeleintrag und keine statische Seite bist dann zeige an
2. DIV für die sidebar_top, div teilt den Inhalt in einzelne Abschnitte. Jeder Abschnitt kann seinen eigenen Format, der durch CSS bestimmt wird, haben und dies wird dann in der style.css definiert. Sprich Ort, Aussehen etc.
3. Wenn es Inhalte/Elemente gibt, welche größer als 0 sind dann gebe aus, die
4. sidebar Namens top
5-9 schliessen das Ganze, welches oben geöffnet wurde ab

Das Gleiche könnte man nun auch mit der unteren sidebar Namens footer machen, jene wird aber bei mir überall angezeigt und damit ist auch dementsprechend das Statement in der index.tpl kürzer:


Um diese beiden sidebars in der Konfiguration für die Plugins anzusprechen muss nun die config.inc.php angepasst werden:

$template_config = array(
array(
‘var’ => ‘sidebars’,
‘name’ => SIDEBAR_TITLE,
‘type’ => ‘hidden’,
‘default’ => ‘top,hide,footer,’
),
…. etc

Normalerweise startet innerhalb der config.inc.php des Templates ein array mit den Einstellungen für das Theme. An dieser Stelle wird definiert, welche Einstellungen das Theme besitzt. Siehe auch Was ist ein Array. In der index.tpl wurde in Zeile 4 im ersten Beispiel die sidebar top definiert und im zweiten Beispiel die sidebar footer. Diese finden wir in Zeile 6 wieder und haben sie als default definiert. Der Typ versteckt (hidden) in Zeile 5 bewirkt, dass ich nicht möchte, dass in den Themeeinstellung eine à„nderung vorgenommen werden kann und sie somit versteckt sind. Wenn dieser Typ ein string wäre, könnte man z.B. die sidebar top oder footer löschen.
Damit ich diese sidebars nun auch in der Oberfläche Plugins verwalten ansprechen kann und auch in meinem Theme vorhanden sind, stellt man an das Ende von seiner config.inc.php noch für jede sidebar eine Definierung für smarty:

$topSidebarElements = serendipity_plugin_api::count_plugins(‘top’);
$serendipity['smarty']->assign_by_ref(‘topSidebarElements’, $topSidebarElements);

$footerSidebarElements = serendipity_plugin_api::count_plugins(‘footer’);
$serendipity['smarty']->assign_by_ref(‘footerSidebarElements’, $footerSidebarElements);

In diesen Zeilen werden einmal für die obere sidebar ( top) und einmal für die untere sidebar (footer) die Anzahl der Plugins pro sidebar gezählt und smarty bekannt gemacht. Wenn der Zähler höher als 0 ist werden die Plugins ausgegeben, siehe dazu auch die Abfrage in dem Beispiel 1 Zeile 3 für die obere sidebar ( top).
Was man nun beachten sollte, ist die Zukunftssicherheit für das Theme, falls es noch unter einer späteren Smartyversion verfügbar sein soll.
Bei smarty hat sich der Aufruf der Funktion assign_by_ref geändert, welches sich in einer späteren Version von Serendipity widerspiegelt.
Das ganze würde dann für die ersten zwei Zeilen so aussehen:

$topSidebarElements = serendipity_plugin_api::count_plugins(‘top’);
if (strpos($serendipity['smarty']->_version, ’2′, 1)) {
assign_by_ref(‘topSidebarElements’, $topSidebarElements);
} else {
assignByRef(‘topSidebarElements’, $topSidebarElements);
}

Es wird abgefragt, welche Version von Smarty genutzt wird, handelt es sich noch um die Version 2 nutze assign_by_ref , wenn nicht nutze das neue assignByRef.
Hoffe ein wenig geholfen zu haben.

Neues Serendipity Template 2

So ein wenig mehr geschafft.
Die sozialen Links sind nun da, wo ich sie haben möchte und haben ein Ausblendeffekt mit CSS bekommen.
Der Facbook-like Knopf macht keine Verfolgung zu Facebook und wird erst nach einem Klick von Facebook geholt, somit sind die Facebookmenschen glücklich und solche Personen wie ich, welche kein Facebook mögen, werden nicht genervt ツ
In der Adminoberfläche, werden die Links in dem Theme nun automatisch generiert, wenn man sie eingetragen hat und es gibt auch eine Dropdown-Funktion. Das Menü ist auch reines CSS und mit li und ul konzipiert. Extra für die Kommentare wurde auch schon das Plugin für die Avatare direkt eingebunden, sprich, wenn es installiert ist, hat es seinen angestammten Platz.
Ein wenig Tricky, auf alle Fälle für mich, war das Verständnis die $sidebars in den Plugins richtig zu definieren, aber Dank der starken Hilfe im Serendipity-Forum habe ich auch das am heutigen Morgen geschafft. Sie lassen sich in dem Pluginbereich in der Adminoberfläche nun richtig mit Namen ansprechen.
Was ich gerne noch machen möchte bevor ich das Theme freigebe:
– à„nderung der Theme-Farben nach der Tageszeit des Besuchers
– à„nderung des Themes in der Form, dass es nicht direkt meinem gleicht, sprich Farben, verwendete Bilder ändern… man möchte ja irgendwo individuell bleiben.
– Noch eine optionale rechte Seitenleiste für jene, welche sie unbedingt brauchen.
– Aufräumen des Codes
– ein eigenes Mobiletemplate
– Google Plus1 für das serendipity_event_findmore-Plugin für einzelnen Einträge zum laufen bekommen

und noch ein paar Dinge die mir nun auch noch die Tage einfallen….

Neues Serendipity Template

Wie man langsam sieht, nimmt das Template immer mehr Gestalt an.
Ein paar Stellen gefixt, Menü auf reiner CSS-Basis mit Konfiguration im Adminbereich gemacht, Kommentare werden nun jedes 2te mit einer anderen Hintergrundfarbe versehen.
Nun muss ich mich um ein paar andere Dinge am Theme kümmern, dann die Farben und das Logo abändern, Code aufräumen und dann werde ich es dem Serendipity-Team unter der GPL zur weiterverbreitung anbieten.
Im Moment kloppe ich mich aber noch mit dem Plugin für die „sozialen Druckknöpfe“ rum, da jene Partout nicht direkt unter den Einträgen erscheinen wollen.

Update:: Syncany: Ein offenes eigenes Dropbox herstellen

Bitte die Updates im unteren Bereich beachten.

Ich habe mir Heute mal Syncany angeschaut. Ich muss sagen, dass mich die Idee fasziniert, vor allem der Faktor die Daten weiterhin in der eigenen Hand zu halten und Support für:

Local Folder: uses any local folder as storage. This could be any mounted device, network file systems (NFS), or any virtual file system based on FUSE.
FTP: uses an FTP folder as remote repository.
IMAP: uses an IMAP folder as remote storage. Stores file chunks as e-mail attachments.
Google Storage: uses a bucket in the Google Storage service as repository.
Amazon S3: uses a bucket in the Amazon Simple Storage Service as remote storage.
Rackspace Cloud Files: uses a Cloud Files container as remote storage.
WebDAV: uses one folder in a WebDAV as remote storage.
Picasa: encodes the file chunks in images, and uses a Picasa album as repository.
Windows Share (NetBIOS/CIFS): uses a Windows share as data repository.
more to come …

zu haben.
Leider scheiterte bei mir das Testen der Anwendung an der nicht vorhandenen libappframework-java in Debian Squeeze. Ich hätte es mir gerne mal ohne den Nautilus-Support angeschaut. Gut, Java ist für mich normalerweise ein absolutes Abschreckmittel, aber in dem Punkt wollte ich einfach mal sehen, welche Art von Anwendung mich dort erwartet.
Dies brachte mich in einem Punkt zum Überlegen, wie ich doch mein eigenes Dropbox mit meinem Webspace oder mit einem anderen Speicherplatz über das Netzwerk schaffen kann. Mir ist klar, dass ich die mannigfaltige Unterstütung für mich mit Linuxboardmitteln nicht bringen kann. Aber von der Logik her ist die ganze Situation im Grunde nicht so schwer zu meistern und FreeBSD sollte in dem Sinne auch damit laufen können.
Somit ergebe ich mich einer kurzen Hirnflatulenz in meinem Blog, um eine spätere Notiz für mich, oder auch andere zu haben, da ich jenes gerne mal prokastiniere bis ich mal so Zeit habe…

– Überwachen der Files kann mit inotify geschehen.
– Einbinden des Remoteverzeichnisses per fuse als verstecktes Verzeichnis.
– Anschubsen von rsync bei entfernter Veränderung und Meldung per notify
– Automatisches Verschlüsseln der Daten im privaten Ordner mit encfs, für die geteilten Daten per GPG-Schlüssel, welcher verteilt wird.
– Geschwindigkeit des Hochladens/Herunterladens der Dateien per trickle begrenzen.
– ShortURLs könnte mit yourls lösen.

So zur weiteren Verwendung ausgebläht ツ

[UPDATE]
Ich bitte doch einmal in die Kommentare zu schauen, da sich Philipp Heckel der Entwickler von Syncany gemeldet hat und sich auf die Abhängigkeiten der Software bei verschiedenen Betriebssystemen bezieht. Ich finde die Aussage sehr Gut und hoffe es sind ein paar Leser des Blogs vorhanden, welche sich mit Ant-Scripten und Java auskennen und ein wenig Unterstützung bieten. Heutzutage finde ich es bald nicht mehr normal, dass sich ein Entwickler nicht nur um Ubuntu/RedHat/OpenSuSE, oder die neuesten Bibliotheken kümmert, sondern versucht ein Spektrum so weit abzudecken, dass jede Distribution, bzw. Windows und OSX diese Anwendung nutzen können.

[UPDATE 2012]
Des weiteren funktioniert die Software unter Debian Wheezy mittlerweile perfekt und kann ohne weiteres Empfohlen werden

Bücher sind angekommen

Heute sind meine zwei bestellten Bücher angekommen und ich muss sagen, ich freue mich wie nichts ツ
Einmal das Buch „Einführung in Perl“ von Schwartz, Phoenix und Foy und von Garvin Hicking das Buch „Serendipity Individuelle Weblogs für Einsteiger und Profis“.
Ich werde mich die nächsten Tage auf alle Fälle damit befassen und auch meinen Eindruck auf diesem Blog zum besten geben.
Vom Überfliegen her kann ich sagen, das Buch von Garvin Hicking scheint wirklich ein fundiertes Fachwerk für Serendipity zu sein und auch viele Kapitel decken jenes ab, welches ich noch nicht kenne, vor allem die Template-Variablen.
Für Einsteiger in das bloggen mit Serendipity kann ich es jetzt schon einmal empfehlen, denn es scheint wirklich nichts zu fehlen.
Ich hoffe, dass noch bis zu dem erscheinen des neuen Buches einiges an Neuzugängen bei dem Author heruntergeladen werden können und diese man dann als Inlay in das Buch packen kann.
Wie soll man ein Buch über eine Scriptsprache überfliegen ?
Nun, ich habe es ein wenig gemacht, die Neugier packt einen und es scheint genau die Lücken abzudecken, welche es bei mir gibt.
Ich kann es nur einem Einsteiger in die Programmierung/das Scripting bedingt empfehlen, aber wer ein wenig Biss besitzt, sollte damit schnell klar kommen.
Aber wie gesagt, ich habe es bis Dato nur überflogen und werde mich die nächsten Tage damit genauer beschäftigen.
Dann denke ich, dass es nicht nur bei den paar kleinen Perlscripten hier im Blog bleiben wird.
Somit freue ich mich schon auf die Sonne, oder den Moment, wo meine Beste auch lernen muss…