Tags sortiert
Bisher hatten meine Blog-Beiträge recht viele unterschiedliche Tags. Ich habe diese einmal auf umfassendere Kategorien umgestellt. Einzig Racket fällt dort etwas aus der Reihe, aber das behalte ich so vorerst einmal bei.
Bisher hatten meine Blog-Beiträge recht viele unterschiedliche Tags. Ich habe diese einmal auf umfassendere Kategorien umgestellt. Einzig Racket fällt dort etwas aus der Reihe, aber das behalte ich so vorerst einmal bei.
Ich habe mich entschlossen, meine Homepage wieder einmal umzuziehen und (ein ganz klein wenig) umzustellen. Wichtigste Änderung ist, dass sie nun nicht mehr von Github Pages, sondern direkt von mir gehostet wird. Damit erhält sie nun durchgängig TLS (über Let’s Encrypt) und ist auch über IPv6 erreichbar.
Bei den inhaltlichen Umstellungen werde ich nun zukünftig eine Kurzvorstellung auf der Startseite vorsehen und das Blog ist über einen eigenen Eintrag im Menü erreichbar. Hinzugekommen ist nun auch eine Datenschutzerklärung
(Update 2019–07–01) Ah, es reicht nicht, den Server mit einer IPv6-Adresse zu versorgen, einen DNS-Eintrag sollte man auch noch einrichten. Problem behoben, die Homepage ist nun wirklich über IPv6 erreichbar.
Bisher habe ich mein Blog mit Octopress bereit gestellt. Eine neue Version (“3.0”) ist auf dem Weg. Nachdem in letzter Zeit die einen oder anderen Schwierigkeiten mit meiner Octopress-Installation auftauchten, habe ich mich entschieden, mit dem Blog auf Frog, ebenfalls ein Generator für statische Blogseiten, zu wechseln.
Bisher hatte ich meine Blog-Einträge auf zwei Blogs aufgeteilt, eines mit mehr technischen (und zum Teil englischen Texten) und dieses hier mit deutschen Texten. Ich denke, ich werde das auf dieses eine Blog hier konzentrieren. Das reduziert doch etwas den Verwaltungsaufwand. Ich habe die Texte vom nun etwas still gelegten Blog hier herüber kopiert.
Neulich fiel mir auf, dass die Suchfunktion, die auf Google basiert, nicht nur auf der eigenen Homepage, sondern im “gesamten” Suchindex von Google gesucht hat. Eben flatterte dieser Tweet mit Link zu einem Fix an mir vorbei und da hat sich wohl die API geändert.
Also habe ich mich einmal an den Hinweisen zum Aktualisieren von Octopress orientiert. Hierzu werden die folgenden Schritte vorgeschlagen:
git pull octopress master # Get the latest Octopress
bundle install # Keep gems updated
rake update_source # update the template's source
rake update_style # update the template's style
Soweit lief das auch. Es tauchten anschließend zwei Probleme auf:
Das execjs
jammerte, dass ihm irgendwie eine JavaScript-Bibliothek fehlte. Nach kurzer Recherche gab es die Empfehlung, die Zeile gem 'therubyracer'
in das Gemfile
aufzunehmen. Okay, das funktionierte schon einmal.
Bei den Feeds für die Kategorien jammerte das Octopress ein ungültiges Layout an. In category_feed.xml
stand in der Tat layout: nil
. Ich habe das auf layout: page
geändert. Nun tat auch dies.
Mit dem Update funktioniert nun auch das Such-Formular wieder.
Ergänzung: Ich lasse das Jekyll und Octopress in einem Docker-Container laufen und irgendwie bekam ich bei rake preview
meine Seite nicht mehr zu sehen. Da ich mich mit Ruby und den Komponenten nicht so gut auskenne, weiß ich nicht, ob mein “Fix” so gut ist: Ich habe im Rakefile
den rackup
-Aufruf um den Parameter -o 0.0.0.0
ergänzt. Dann bekam ich vom Host wieder eine Verbindung zum Webserver im Octopress-Container.
Update vom 04. Januar 2014: Nach einem kurzen Gespräch via Twitter habe ich mich entschieden, den eingebauten Server doch wieder so zu belassen, wie es im Rakefile
ursprünglich stand. Statt dessen habe ich einfach in dem Docker-Container einen nginx
hinzuinstalliert, der dann mein public
-Verzeichnis an den Port 4000 ausliefert. So funktioniert es wieder prima: Ich starte den nginx
und lasse dann das rake watch
laufen, um die Seiten immer wieder neu zu erzeugen, wenn sich Dinge geändert haben.
Es kamen lange Winterabende und ich habe die alten Blog-Einträge von der mittels Org-Mode erstellten Seite hier nach Octopress migriert. Im Archiv sind diese zu finden und die Links etc. sollten nun auch passend mit migriert worden sein.
Bei der Konvertierung habe ich ein Programm kennengelernt, das mir sehr geholfen hat: Pandoc. Das ist ein Konverter, der Text- und Markupdateien hin und her konvertieren kann. Dabei beherrscht er eine ganze Reihe von Formaten. Insbesondere kann er das Org-Mode-Format (das ich für viele Dinge verwende) ebenso wie LaTeX und Markdown (daneben aber auch noch eine Legion von Formaten).
Da mein Hauptdateiformat ohnehin “Textdateien” sind (“Never trust a file that isn’t ASCII”) ist das sehr praktisch, um zwischen verschiedenen Markup-Formaten hin und her zu springen.
Für die Migration meine Blog-Einträge lief dies wie folgt: Ich hatte die in der alten Homepage mit Org-Mode und Org-Jekyll erstellt. Dabei hatte das Org-Jekyll-Modul entsprechende HTML-Dateien mit einem YAML-Header erzeugt. Mittels Pandoc konnte ich die nun wieder nach Markdown konvertieren, habe die YAML-Header ein wenig angepasst, Kategorien aktualisiert und noch mal das Markup zwecks Zeilenumbrüche, Fußnoten und Links geprüft und leicht angepasst. Insgesamt sehr schnell bewältigbar.
Dieser ganze Zoo rund um Markdown und andere ähnliche Formate ist zwar manchmal ein bisschen unübersichtlich, aber mir gefällt das sehr gut, dass man mit wenig Markup schön Textdateien strukturieren kann und dann mit Pandoc auch gut hin und her konvertieren kann.
So, nach einigem Gefummel mit Ruby und Octopress und den Weiterleitungsmöglichkeiten meines Hosters ist die Sache wohl bald so am laufen, wie ich mir das vorstelle. Es fehlt noch ein wenig das Eindeutschen der Octopress-Texte und vielleicht so eine Kategorien-Liste rechts.
Ansonsten habe ich, um der “Gem-Hölle” zu entgehen, das Octopress in einen Docker-Container gepackt; hier ist ein Link zu dem verwendeten Dockerfile
. Ich habe es dann auch so gemacht, dass ich das /opt/octopress
-Verzeichnis auf den Host-Rechner verschoben habe und in den Container als Volume hineinpacke. So kann ich auf dem Host-Rechner ganz bequem mit dem Emacs die Files editieren und verwende den Container nur noch für die Erstellung, das “Preview” und für das Hochladen.
Die “preview”-Funktion ist übrigens ein wirklich nettes Features: Die kann man derart nutzen, dass ein Webserver den aktuellen Stand lokal ausliefert. Dabei beobachtet der Dienst, ob sich Dateien ändern und erstellt unmittelbar wieder die HTML-Seiten. So kann man bequem im Editor das Markdown bearbeiten und im Browser daneben das fertige Ergebnis beurteilen.
Meine alten Homepages kann man immer noch finden:
Ich denke, mir geht es wie vielen: Nach einer gewissen Zeit, in der das bisherige Blog, die bisherige Web-Seite nicht gepflegt wird, steht irgendwann ein Neubeginn an, dann gleich mit einem “Relaunch” und vielen neuen und guten Vorsätzen.
Ich bin zwar nach wie vor ein großer Freund und Nutzer von Org-Mode, aber für das Führen eines Blogs erschien mir der Ablauf doch immer recht umständlich. Ich habe mir daher einmal Octopress angeschaut (vor allem, da die Blog-Funktion von Org-Mode, die ich nutzte, auch mit Jekyll arbeitete) und finde das eigentlich ganz hübsch. Einzig so ein wenig “eindeutschen” sollte ich es noch. Außerdem ist das Umleiten von der bisherigen Domain hierher noch ein wenig kaputt; mein bisheriger Hoster lässt mich das nicht so schön mit CNAME-Einträgen gestalten, wie das eigentlich gedacht ist.
Nun also ein Relaunch, aber ohne große Vorsätze. Es wird hier also nur selten und nur wenig zu lesen geben.
After my trouble with installing all the dependencies for Octopress I came up with the following Dockerfile for Docker. This follows the instructions from the Octopress homepage and uses RVM for managing the ruby dependencies.
# dockerfile for octopress
FROM ubuntu:14.04
MAINTAINER krrrcks <krrrcks@krrrcks.net>
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update; \
apt-get -q -y upgrade
RUN apt-get -q -y install git curl; \
apt-get clean
RUN git clone git://github.com/imathis/octopress.git /opt/octopress
RUN curl -L https://get.rvm.io | bash -s stable --ruby
ENV HOME /root
RUN echo "source /usr/local/rvm/scripts/rvm" >> /root/.bashrc;
RUN /bin/bash -l -c "source /usr/local/rvm/scripts/rvm; \
rvm install 1.9.3; \
rvm use 1.9.3; \
rvm rubygems latest; \
cd /opt/octopress; \
gem install bundler; \
bundle install; \
rake install"
RUN echo "rvm use 1.9.3" >> /root/.bashrc
WORKDIR /opt/octopress
EXPOSE 4000
CMD ["/bin/bash"]