diff --git a/.build/ox-hugo-build.el b/.build/ox-hugo-build.el deleted file mode 100644 index 938b66c..0000000 --- a/.build/ox-hugo-build.el +++ /dev/null @@ -1,35 +0,0 @@ -;; Package configuration -(package-initialize) -(add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/") t) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) - -(setq-default load-prefer-newer t) -(setq-default package-enable-at-startup nil) - -(package-refresh-contents) -(package-install 'use-package) -(setq package-user-dir (expand-file-name "./.packages")) -(add-to-list 'load-path package-user-dir) -(require 'use-package) - -(setq use-package-always-ensure t) - -;; Install and configure necessary packages -(use-package org - :pin gnu - :config - (setq org-todo-keywords '((sequence - "TODO(t!)" "NEXT(n!)" "STARTED(a!)" "WAIT(w@/!)" "SOMEDAY(s)" - "|" "DONE(d!)" "CANCELLED(c@/!)")))) - -(use-package ox-hugo - :after org) - -;; Export blog posts -(defun mmk2410/export (file) - (save-excursion - (find-file file) - (org-hugo-export-wim-to-md t))) - -(mapcar (lambda (file) (mmk2410/export file)) - (directory-files (expand-file-name "./content-org/") t "\\.org$")) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..31d9fc2 --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,25 @@ +FROM php:8.2-apache + +# Add composer +COPY --from=composer /usr/bin/composer /usr/bin/composer + +# Add PHP extension installer helper +COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/ + +# Install system dependencies +RUN apt-get update &&\ + apt-get install -y git unzip &&\ + apt-get clean && rm -rf /var/lib/apt/lists/* + +# Install GD PHP Extension +RUN install-php-extensions gd intl zip + +# Enable support for .htacces files +COPY vhost.conf /etc/apache2/sites-available/000-default.conf + +# Enable mode_rewrite and mod_headers +RUN a2enmod rewrite headers + +# Set UID of web server user to the same as the user on the host maching +# This enables the webserver to create and write files, e.g. sessions. +RUN usermod -u 1000 www-data diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100644 index 0000000..30b9b43 --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,14 @@ +version: "3.11" + +services: + app: + build: . + ports: + - 8080:80 + volumes: + - ../:/var/www/html + + mail: + image: axllent/mailpit + ports: + - 8081:8025 diff --git a/.devcontainer/vhost.conf b/.devcontainer/vhost.conf new file mode 100644 index 0000000..7563dfd --- /dev/null +++ b/.devcontainer/vhost.conf @@ -0,0 +1,11 @@ + + ServerAdmin webmaster@localhost + DocumentRoot /var/www/html + + + AllowOverride All + + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..31cb096 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,21 @@ +[*.{css,scss,less,js,json,ts,sass,html,hbs,mustache,phtml,html.twig,md,yml}] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.md] +indent_size = 4 +trim_trailing_whitespace = false + +[site/templates/**.php] +indent_size = 2 + +[site/snippets/**.php] +indent_size = 2 + +[package.json,.{babelrc,editorconfig,eslintrc,lintstagedrc,stylelintrc}] +indent_style = space +indent_size = 2 diff --git a/.gitignore b/.gitignore index fa0ea24..e286955 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,70 @@ -public/ -content/ -resources/ -/.hugo_build.lock +# System files +# ------------ + +Icon +.DS_Store + +# Temporary files +# --------------- + +/media/* +!/media/index.html + +# Lock files +# --------------- + +.lock + +# Editors +# (sensitive workspace files) +# --------------------------- +*.sublime-workspace +/.vscode +/.idea + +# -------------SECURITY------------- +# NEVER publish these files via Git! +# -------------SECURITY------------- + +# Cache Files +# --------------- + +/site/cache/* +!/site/cache/index.html + +# Accounts +# --------------- + +/site/accounts/* +!/site/accounts/index.html + +# Sessions +# --------------- + +/site/sessions/* +!/site/sessions/index.html + +# License +# --------------- + +/site/config/.license + +# Content +# --------------- + +/content + +# NodeJS +# --------------- + +/node_modules + +# Composer +# --------------- + +/vendor + +# Kirby +# --------------- + +/kirby diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 82426af..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,24 +0,0 @@ -variables: - GIT_SUBMODULE_STRATEGY: recursive - -before_script: - - apk add --no-cache openssh tzdata - - cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir ~/.ssh - - chmod 700 ~/.ssh - - echo "$SSH_KNOWN_HOSTS" | tr -d '\r' >> ~/.ssh/known_hosts - - chmod 644 ~/.ssh/known_hosts - -build: - image: silex/emacs:27.2-alpine-ci - stage: build - script: - - emacs -Q --script .build/ox-hugo-build.el - - apk add --no-cache hugo rsync - - hugo - - rsync --archive --verbose --chown=gitlab-ci:www-data --delete --progress -e"ssh -p "$SSH_PORT"" public/ "$SSH_USER"@mmk2410.org:/var/www/mmk2410.org/ - artifacts: - paths: - - public diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 9b3aa84..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "nextDESIGN"] - path = themes/nextDESIGN - url = ../nextDESIGN diff --git a/.htaccess b/.htaccess new file mode 100644 index 0000000..5fe5c71 --- /dev/null +++ b/.htaccess @@ -0,0 +1,67 @@ +# Kirby .htaccess +# revision 2023-07-22 + +# rewrite rules + + +# enable awesome urls. i.e.: +# http://yourdomain.com/about-us/team +RewriteEngine on + +# make sure to set the RewriteBase correctly +# if you are running the site in a subfolder; +# otherwise links or the entire site will break. +# +# If your homepage is http://yourdomain.com/mysite, +# set the RewriteBase to: +# +# RewriteBase /mysite + +# In some environments it's necessary to +# set the RewriteBase to: +# +# RewriteBase / + +# block files and folders beginning with a dot, such as .git +# except for the .well-known folder, which is used for Let's Encrypt and security.txt +RewriteRule (^|/)\.(?!well-known\/) index.php [L] + +# block all files in the content folder from being accessed directly +RewriteRule ^content/(.*) index.php [L] + +# block all files in the site folder from being accessed directly +RewriteRule ^site/(.*) index.php [L] + +# block direct access to Kirby and the Panel sources +RewriteRule ^kirby/(.*) index.php [L] + +# make site links work +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d +RewriteRule ^(.*) index.php [L] + + + +# pass the Authorization header to PHP +SetEnvIf Authorization "(.+)" HTTP_AUTHORIZATION=$1 + +# compress text file responses + +AddOutputFilterByType DEFLATE text/plain +AddOutputFilterByType DEFLATE text/html +AddOutputFilterByType DEFLATE text/css +AddOutputFilterByType DEFLATE text/javascript +AddOutputFilterByType DEFLATE application/json +AddOutputFilterByType DEFLATE application/javascript +AddOutputFilterByType DEFLATE application/x-javascript + + +# set security headers in all responses + + +# serve files as plain text if the actual content type is not known +# (hardens against attacks from malicious file uploads) +Header set Content-Type "text/plain" "expr=-z %{CONTENT_TYPE}" +Header set X-Content-Type-Options "nosniff" + + diff --git a/README.md b/README.md index a4dd07e..f3d1f4e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,16 @@ # mmk2410.org -This is the source code of my website. It uses [Hugo](https://gohugo.io/) with [ox-hugo](https://ox-hugo.scripter.co/). +Kirby implementation of the website running at mmk2410.org -Visit it at [mmk2410.org](https://mmk2410.org)! +The site uses nextDESGIN 9 as a theme. + +The content is not part of this Git repository, at least not at the beginnng. + +## Asset Building + +Running the site requires buidling and compiling assets. This is done using [esbuild](https://esbuild.github.io/). + +```bash +npm install +npm run build +``` diff --git a/archetypes/default.md b/archetypes/default.md deleted file mode 100644 index 00e77bd..0000000 --- a/archetypes/default.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -date: {{ .Date }} -draft: true ---- - diff --git a/assets/build/main.css b/assets/build/main.css new file mode 100644 index 0000000..6b5cb10 --- /dev/null +++ b/assets/build/main.css @@ -0,0 +1,9 @@ +html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}:is(a){background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:Raleway;font-style:normal;font-weight:400;src:local("Raleway"),local("Raleway-Regular"),url(data:font/woff2;base64,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) format("woff2")}@font-face{font-family:Raleway;font-style:italic;font-weight:400;src:local("Raleway Italic"),local("Raleway-Italic"),url(data:font/woff2;base64,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) format("woff2")}@font-face{font-family:Raleway;font-style:normal;font-weight:700;src:local("Raleway Bold"),local("Raleway-Bold"),url(data:font/woff2;base64,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) format("woff2")}@font-face{font-family:Raleway;font-style:italic;font-weight:700;src:local("Raleway Bold Italic"),local("Raleway-BoldItalic"),url(data:font/woff2;base64,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) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;src:local("JetBrains Mono"),url(data:font/woff2;base64,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) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:400;src:local("JetBrains Mono Italic"),url(data:font/woff2;base64,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) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;src:local("JetBrains Mono Bold"),url(data:font/woff2;base64,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) format("woff2")}@font-face{font-family:JetBrains Mono;font-style:italic;font-weight:700;src:local("JetBrains Mono Bold Italic"),url(data:font/woff2;base64,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) format("woff2")}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#f8f8f2;background:#272822}.hljs::selection,.hljs ::selection{background-color:#49483e;color:#f8f8f2}.hljs-comment{color:#75715e}.hljs-tag{color:#a59f85}.hljs-subst,.hljs-punctuation,.hljs-operator{color:#f8f8f2}.hljs-operator{opacity:.7}.hljs-bullet,.hljs-variable,.hljs-template-variable,.hljs-selector-tag,.hljs-name,.hljs-deletion{color:#f92672}.hljs-symbol,.hljs-number,.hljs-link,.hljs-attr,.hljs-variable.constant_,.hljs-literal{color:#fd971f}.hljs-title,.hljs-class .hljs-title,.hljs-title.class_{color:#f4bf75}.hljs-strong{font-weight:700;color:#f4bf75}.hljs-code,.hljs-addition,.hljs-title.class_.inherited__,.hljs-string{color:#a6e22e}.hljs-built_in,.hljs-doctag,.hljs-quote,.hljs-keyword.hljs-atrule,.hljs-regexp{color:#a1efe4}.hljs-function .hljs-title,.hljs-attribute,.ruby .hljs-property,.hljs-title.function_,.hljs-section{color:#66d9ef}.hljs-type,.hljs-template-tag,.diff .hljs-meta,.hljs-keyword{color:#ae81ff}.hljs-emphasis{color:#ae81ff;font-style:italic}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-meta .hljs-string{color:#c63}.hljs-meta .hljs-keyword,.hljs-meta-keyword{font-weight:700}:root{--c-bg: #fafafa;--c-bg-inv: #333;--c-bg-main: #fff;--c-bg-main-inv: #222;--c-primary: #4d3c9b;--c-bg-category: #4d3c9b;--c-primary-inv: #ad9bff;--c-bg-category-inv: #755bf0;--c-bg-tag: #8171c8;--c-bg-tag-inv: #a49ccc;--c-font: #333;--c-font-inv: #fafafa;--c-btn-font: var(--c-font);--c-btn-bg: var(--c-bg-category);--c-btn-shadow: #aaa;--c-btn-shadow-inv: #000;--s-content: 800px;--s-nav-title: 36px;--s-border: 2px;--s-border-radius: 2px;--s-comment-margin-top: 60px;--s-font-size: 18px;--p-box-shadow: 1px 1px 5px #888}html{font-size:var(--s-font-size)}body{background-color:var(--c-bg);color:var(--c-font);font-family:Raleway,sans-serif;line-height:1.5;@media (prefers-color-scheme: dark){background-color:var(--c-bg-inv);color:var(--c-font-inv)}}body>header{align-items:center;color:var(--c-font);display:flex;justify-content:space-between;padding:20px 40px;#title{color:var(--c-font);font-size:var(--s-nav-title);font-weight:700;text-decoration:underline;text-decoration-color:var(--c-primary);text-decoration-thickness:5px}& a{color:var(--c-primary);text-decoration:none;&:hover{text-decoration:underline}}& nav{display:inline;& a{text-transform:capitalize;padding:5px 6px;display:inline-block;&:hover{text-decoration:none;&:after{width:100%;background:var(--c-primary)}}&:after{content:"";display:block;margin:auto;height:2px;width:0;background:0 0;transition:width .25s ease,background-color .25s ease}}& ul{margin:0;padding:0;float:right;& li{display:inline;&:last-child{padding-right:0}}}}.show-menu{display:none;margin-top:10px;padding:10px;text-align:center;width:100%;color:var(--c-primary);font-weight:700;text-transform:uppercase;@media (prefers-color-scheme: dark){color:var(--c-primary-inv)}}& input[type=checkbox]{display:none}@media screen and (max-width: 1100px){border-radius:initial;flex-direction:column;background:var(--c-bg-main);padding-bottom:0;& nav{display:none;text-align:center;width:100%;& ul{float:unset;& li{display:block;padding:0;& a{display:block;padding:10px 0}}}}.show-menu{display:block}& input[type=checkbox]:checked~nav{display:block}}@media (prefers-color-scheme: dark){background:var(--c-bg-inv);& a{color:var(--c-primary-inv)}#title{color:var(--c-font-inv);text-decoration-color:var(--c-primary-inv)}& nav{& a{&:hover{&:after{background:var(--c-primary-inv)}}}}}}main{background-color:var(--c-bg-main);border:solid var(--s-border) var(--c-primary);border-radius:25px;box-shadow:var(--p-box-shadow);margin:50px auto 100px;max-width:var(--s-content);padding:20px 60px 80px;@media (prefers-color-scheme: dark){background-color:var(--c-bg-main-inv);box-shadow:none}& article{margin:40px 0}& h1,h2{font-size:3rem;margin:20px 0 0;padding:0;text-decoration:underline;text-decoration-color:var(--c-primary);text-decoration-thickness:4px;@media (prefers-color-scheme: dark){text-decoration-color:var(--c-primary-inv)}}& h2{font-size:2rem;margin:40px 0 0;text-decoration-thickness:3px;& a{color:var(--c-font);text-decoration-color:var(--c-primary);@media (prefers-color-scheme: dark){color:var(--c-font-inv);text-decoration-color:var(--c-primary-inv)}&:hover{text-decoration:none}}}& h3{font-size:1.3rem}& h4{font-size:1.1rem}.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}& figure{margin:0;& img{width:100%;border-radius:20px}}& p{text-align:justify}& a{color:var(--c-primary);@media (prefers-color-scheme: dark){color:var(--c-primary-inv)}&:hover{text-decoration:underline}}& code{font-family:JetBrains Mono,monospace}.btn{border:1px solid var(--c-primary);padding:8px 12px;border-radius:20px;line-height:3;white-space:nowrap;transition:all .15s;margin-right:5px;text-decoration:none;&:hover{box-shadow:var(--c-btn-shadow) 1px 2px 6px;text-decoration:none;@media (prefers-color-scheme: dark){box-shadow:var(--c-btn-shadow-inv) 1px 2px 6px}}@media (prefers-color-scheme: dark){border-color:var(--c-primary-inv)}}pre{overflow-y:auto}pre.hljs{border-radius:20px;overflow-y:auto;padding:20px}.pagination{text-align:center}.page-item{display:inline;padding-right:10px;&:last-child{padding-right:0}}.comment{margin-top:var(--s-comment-margin-top);text-align:center;& a{font-size:1.1rem}& p{font-size:.95rem;text-align:center}}#tags>a,#categories>a{font-size:.9rem;color:#fff;padding:4px 8px;border-radius:20px;white-space:nowrap;transition:all .15s;text-decoration:none;&:hover{box-shadow:var(--c-btn-shadow) 1px 1px 4px;text-decoration:none;@media (prefers-color-scheme: dark){box-shadow:var(--c-btn-shadow-inv) 1px 1px 4px}}}#tags>a{color:var(--c-bg-tag);border:1px solid var(--c-bg-tag);@media (prefers-color-scheme: dark){color:var(--c-bg-tag-inv);border-color:var(--c-bg-tag-inv)}}#categories>a{color:var(--c-primary);border:1px solid var(--c-primary);margin-right:3px;@media (prefers-color-scheme: dark){color:var(--c-primary-inv);border:1px solid var(--c-primary-inv)}}@media screen and (max-width: 1100px){border:none;box-shadow:none;margin:0 auto;padding:0 20px 80px;.tagories{text-align:left}#tags a,#categories a{line-height:35px}}}footer{background-color:var(--c-font);color:var(--c-font-inv);padding:40px;text-align:center;& a{color:var(--c-font-inv);text-decoration:none;&:hover{text-decoration:underline}}} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ +/*! + Theme: Monokai + Author: Wimer Hazenberg (http://www.monokai.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ diff --git a/assets/fonts/JetBrainsMono-Bold.woff2 b/assets/fonts/JetBrainsMono-Bold.woff2 new file mode 100644 index 0000000..07fe5d7 Binary files /dev/null and b/assets/fonts/JetBrainsMono-Bold.woff2 differ diff --git a/assets/fonts/JetBrainsMono-BoldItalic.woff2 b/assets/fonts/JetBrainsMono-BoldItalic.woff2 new file mode 100644 index 0000000..57263ef Binary files /dev/null and b/assets/fonts/JetBrainsMono-BoldItalic.woff2 differ diff --git a/assets/fonts/JetBrainsMono-Regular.woff2 b/assets/fonts/JetBrainsMono-Regular.woff2 new file mode 100644 index 0000000..cc9a1ae Binary files /dev/null and b/assets/fonts/JetBrainsMono-Regular.woff2 differ diff --git a/assets/fonts/JetBrainsMono-RegularItalic.woff2 b/assets/fonts/JetBrainsMono-RegularItalic.woff2 new file mode 100644 index 0000000..cf9e8ef Binary files /dev/null and b/assets/fonts/JetBrainsMono-RegularItalic.woff2 differ diff --git a/assets/fonts/raleway-v14-latin-700.woff2 b/assets/fonts/raleway-v14-latin-700.woff2 new file mode 100644 index 0000000..0220642 Binary files /dev/null and b/assets/fonts/raleway-v14-latin-700.woff2 differ diff --git a/assets/fonts/raleway-v14-latin-700italic.woff2 b/assets/fonts/raleway-v14-latin-700italic.woff2 new file mode 100644 index 0000000..e0742c8 Binary files /dev/null and b/assets/fonts/raleway-v14-latin-700italic.woff2 differ diff --git a/assets/fonts/raleway-v14-latin-italic.woff2 b/assets/fonts/raleway-v14-latin-italic.woff2 new file mode 100644 index 0000000..e142d3f Binary files /dev/null and b/assets/fonts/raleway-v14-latin-italic.woff2 differ diff --git a/assets/fonts/raleway-v14-latin-regular.woff2 b/assets/fonts/raleway-v14-latin-regular.woff2 new file mode 100644 index 0000000..86b505e Binary files /dev/null and b/assets/fonts/raleway-v14-latin-regular.woff2 differ diff --git a/static/favicon/homescreen128.png b/assets/img/favicon/favicon-128.png similarity index 100% rename from static/favicon/homescreen128.png rename to assets/img/favicon/favicon-128.png diff --git a/static/favicon/homescreen144.png b/assets/img/favicon/favicon-144.png similarity index 100% rename from static/favicon/homescreen144.png rename to assets/img/favicon/favicon-144.png diff --git a/static/favicon/homescreen16.png b/assets/img/favicon/favicon-16.png similarity index 100% rename from static/favicon/homescreen16.png rename to assets/img/favicon/favicon-16.png diff --git a/static/favicon/homescreen168.png b/assets/img/favicon/favicon-168.png similarity index 100% rename from static/favicon/homescreen168.png rename to assets/img/favicon/favicon-168.png diff --git a/static/favicon/homescreen192.png b/assets/img/favicon/favicon-192.png similarity index 100% rename from static/favicon/homescreen192.png rename to assets/img/favicon/favicon-192.png diff --git a/static/favicon/homescreen256.png b/assets/img/favicon/favicon-256.png similarity index 100% rename from static/favicon/homescreen256.png rename to assets/img/favicon/favicon-256.png diff --git a/static/favicon/homescreen32.png b/assets/img/favicon/favicon-32.png similarity index 100% rename from static/favicon/homescreen32.png rename to assets/img/favicon/favicon-32.png diff --git a/static/favicon/homescreen48.png b/assets/img/favicon/favicon-48.png similarity index 100% rename from static/favicon/homescreen48.png rename to assets/img/favicon/favicon-48.png diff --git a/static/favicon/homescreen72.png b/assets/img/favicon/favicon-72.png similarity index 100% rename from static/favicon/homescreen72.png rename to assets/img/favicon/favicon-72.png diff --git a/static/favicon/homescreen96.png b/assets/img/favicon/favicon-96.png similarity index 100% rename from static/favicon/homescreen96.png rename to assets/img/favicon/favicon-96.png diff --git a/static/favicon/favicon.png b/assets/img/favicon/favicon.png similarity index 100% rename from static/favicon/favicon.png rename to assets/img/favicon/favicon.png diff --git a/assets/src/fonts.css b/assets/src/fonts.css new file mode 100644 index 0000000..9d73e93 --- /dev/null +++ b/assets/src/fonts.css @@ -0,0 +1,80 @@ +/************** + * Raleway + **************/ + +/* raleway-regular - latin */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 400; + src: local('Raleway'), + local('Raleway-Regular'), + url('../fonts/raleway-v14-latin-regular.woff2') format('woff2'); +} +/* raleway-italic - latin */ +@font-face { + font-family: 'Raleway'; + font-style: italic; + font-weight: 400; + src: local('Raleway Italic'), + local('Raleway-Italic'), + url('../fonts/raleway-v14-latin-italic.woff2') format('woff2'); +} +/* raleway-700 - latin */ +@font-face { + font-family: 'Raleway'; + font-style: normal; + font-weight: 700; + src: local('Raleway Bold'), + local('Raleway-Bold'), + url('../fonts/raleway-v14-latin-700.woff2') format('woff2'); +} +/* raleway-700italic - latin */ +@font-face { + font-family: 'Raleway'; + font-style: italic; + font-weight: 700; + src: local('Raleway Bold Italic'), + local('Raleway-BoldItalic'), + url('../fonts/raleway-v14-latin-700italic.woff2') format('woff2'); +} + +/************** + * JetBrains Mono + **************/ + +/* JetBrains Mono Regular */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 400; + src: local('JetBrains Mono'), + url('../fonts/JetBrainsMono-Regular.woff2') format('woff2'); +} + +/* JetBrains Mono Regular Italic */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: italic; + font-weight: 400; + src: local('JetBrains Mono Italic'), + url('../fonts/JetBrainsMono-RegularItalic.woff2') format('woff2'); +} + +/* JetBrains Mono Bold */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 700; + src: local('JetBrains Mono Bold'), + url('../fonts/JetBrainsMono-Bold.woff2') format('woff2'); +} + +/* JetBrains Mono Bold Italic italic */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: italic; + font-weight: 700; + src: local('JetBrains Mono Bold Italic'), + url('../fonts/JetBrainsMono-BoldItalic.woff2') format('woff2'); +} diff --git a/assets/src/highlight-monokai.css b/assets/src/highlight-monokai.css new file mode 100644 index 0000000..1020055 --- /dev/null +++ b/assets/src/highlight-monokai.css @@ -0,0 +1,177 @@ +/*! + Theme: Monokai + Author: Wimer Hazenberg (http://www.monokai.nl) + License: ~ MIT (or more permissive) [via base16-schemes-source] + Maintainer: @highlightjs/core-team + Version: 2021.09.0 +*/ + +/* + WARNING: DO NOT EDIT THIS FILE DIRECTLY. + + This theme file was auto-generated from the Base16 scheme monokai + by the Highlight.js Base16 template builder. + + - https://github.com/highlightjs/base16-highlightjs +*/ + +/* +base00 #272822 Default Background +base01 #383830 Lighter Background (Used for status bars, line number and folding marks) +base02 #49483e Selection Background +base03 #75715e Comments, Invisibles, Line Highlighting +base04 #a59f85 Dark Foreground (Used for status bars) +base05 #f8f8f2 Default Foreground, Caret, Delimiters, Operators +base06 #f5f4f1 Light Foreground (Not often used) +base07 #f9f8f5 Light Background (Not often used) +base08 #f92672 Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted +base09 #fd971f Integers, Boolean, Constants, XML Attributes, Markup Link Url +base0A #f4bf75 Classes, Markup Bold, Search Text Background +base0B #a6e22e Strings, Inherited Class, Markup Code, Diff Inserted +base0C #a1efe4 Support, Regular Expressions, Escape Characters, Markup Quotes +base0D #66d9ef Functions, Methods, Attribute IDs, Headings +base0E #ae81ff Keywords, Storage, Selector, Markup Italic, Diff Changed +base0F #cc6633 Deprecated, Opening/Closing Embedded Language Tags, e.g. +*/ + +pre code.hljs { + display: block; + overflow-x: auto; + padding: 1em; +} + +code.hljs { + padding: 3px 5px; +} + +.hljs { + color: #f8f8f2; + background: #272822; +} + +.hljs::selection, +.hljs ::selection { + background-color: #49483e; + color: #f8f8f2; +} + + +/* purposely do not highlight these things */ +.hljs-formula, +.hljs-params, +.hljs-property +{} + +/* base03 - #75715e - Comments, Invisibles, Line Highlighting */ +.hljs-comment { + color: #75715e; +} + +/* base04 - #a59f85 - Dark Foreground (Used for status bars) */ +.hljs-tag { + color: #a59f85; +} + +/* base05 - #f8f8f2 - Default Foreground, Caret, Delimiters, Operators */ +.hljs-subst, +.hljs-punctuation, +.hljs-operator { + color: #f8f8f2; +} + +.hljs-operator { + opacity: 0.7; +} + +/* base08 - Variables, XML Tags, Markup Link Text, Markup Lists, Diff Deleted */ +.hljs-bullet, +.hljs-variable, +.hljs-template-variable, +.hljs-selector-tag, +.hljs-name, +.hljs-deletion { + color: #f92672; +} + +/* base09 - Integers, Boolean, Constants, XML Attributes, Markup Link Url */ +.hljs-symbol, +.hljs-number, +.hljs-link, +.hljs-attr, +.hljs-variable.constant_, +.hljs-literal { + color: #fd971f; +} + +/* base0A - Classes, Markup Bold, Search Text Background */ +.hljs-title, +.hljs-class .hljs-title, +.hljs-title.class_ +{ + color: #f4bf75; +} + +.hljs-strong { + font-weight:bold; + color: #f4bf75; +} + +/* base0B - Strings, Inherited Class, Markup Code, Diff Inserted */ +.hljs-code, +.hljs-addition, +.hljs-title.class_.inherited__, +.hljs-string { + color: #a6e22e; +} + +/* base0C - Support, Regular Expressions, Escape Characters, Markup Quotes */ +.hljs-built_in, +.hljs-doctag, /* guessing */ +.hljs-quote, +.hljs-keyword.hljs-atrule, +.hljs-regexp { + color: #a1efe4; +} + +/* base0D - Functions, Methods, Attribute IDs, Headings */ +.hljs-function .hljs-title, +.hljs-attribute, +.ruby .hljs-property, +.hljs-title.function_, +.hljs-section { + color: #66d9ef; +} + +/* base0E - Keywords, Storage, Selector, Markup Italic, Diff Changed */ +.hljs-type, +/* .hljs-selector-id, */ +/* .hljs-selector-class, */ +/* .hljs-selector-attr, */ +/* .hljs-selector-pseudo, */ +.hljs-template-tag, +.diff .hljs-meta, +.hljs-keyword { + color: #ae81ff; +} +.hljs-emphasis { + color: #ae81ff; + font-style: italic; +} + +/* base0F - Deprecated, Opening/Closing Embedded Language Tags, e.g. */ +.hljs-meta, +/* + prevent top level .keyword and .string scopes + from leaking into meta by accident +*/ +.hljs-meta .hljs-keyword, +.hljs-meta .hljs-string +{ + color: #cc6633; +} + +.hljs-meta .hljs-keyword, +/* for v10 compatible themes */ +.hljs-meta-keyword { + font-weight: bold; +} diff --git a/assets/src/main.css b/assets/src/main.css new file mode 100644 index 0000000..4deac20 --- /dev/null +++ b/assets/src/main.css @@ -0,0 +1,433 @@ +@import "normalize.css"; +@import "fonts.css"; +@import "highlight-monokai.css"; + +/* nextDESIGN v9 + * + * nextDESIGN is a personal web design for mmk2410.org. + * The current version (v9) is focused in simplicity and minimalism. + * + * 2020-2022 © Marcel Kapfer + * Licensed under the MIT License + */ + +/*************** + * Variables + ***************/ + +:root { + --c-bg: #fafafa; + --c-bg-inv: #333; + --c-bg-main: #fff; + --c-bg-main-inv: #222; + --c-primary: #4d3c9b; + --c-bg-category: #4d3c9b; + --c-primary-inv: #ad9bff; + --c-bg-category-inv: #755bf0; + --c-bg-tag: #8171c8; + --c-bg-tag-inv: #a49ccc; + --c-font: #333; + --c-font-inv: #fafafa; + --c-btn-font: var(--c-font); + --c-btn-bg: var(--c-bg-category); + --c-btn-shadow: #aaa; + --c-btn-shadow-inv: #000; + + --s-content: 800px; + --s-nav-title: 36px; + --s-border: 2px; + --s-border-radius: 2px; + --s-comment-margin-top: 60px; + --s-font-size: 18px; + + --p-box-shadow: 1px 1px 5px #888; +} + +html { + font-size: var(--s-font-size); +} + +body { + background-color: var(--c-bg); + color: var(--c-font); + font-family: "Raleway", sans-serif; + line-height: 1.5; + + @media (prefers-color-scheme: dark) { + background-color: var(--c-bg-inv); + color: var(--c-font-inv); + } +} + +body > header { + align-items: center; + color: var(--c-font); + display: flex; + justify-content: space-between; + padding: 20px 40px; + + #title { + color: var(--c-font); + font-size: var(--s-nav-title); + font-weight: 700; + text-decoration: underline; + text-decoration-color: var(--c-primary); + text-decoration-thickness: 5px; + } + + & a { + color: var(--c-primary); + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } + + & nav { + display: inline; + + & a { + text-transform: capitalize; + padding: 5px 6px; + display: inline-block; + + &:hover { + text-decoration: none; + + &:after { + width: 100%; + background: var(--c-primary); + } + } + + &:after { + content: ""; + display: block; + margin: auto; + height: 2px; + width: 0; + background: 0 0; + transition: width .25s ease, background-color .25s ease; + } + } + + & ul { + margin: 0; + padding: 0; + float: right; + + & li { + display: inline; + + &:last-child { + padding-right: 0; + } + } + } + } + + .show-menu { + display: none; + margin-top: 10px; + padding: 10px; + text-align: center; + width: 100%; + color: var(--c-primary); + font-weight: bold; + text-transform: uppercase; + + @media (prefers-color-scheme: dark) { + color: var(--c-primary-inv); + } + } + + & input[type=checkbox] { + display: none + } + + @media screen and (max-width: 1100px) { + border-radius: initial; + flex-direction: column; + background: var(--c-bg-main); + padding-bottom: 0; + + & nav { + display: none; + text-align: center; + width: 100%; + + & ul { + float: unset; + + & li { + display: block; + padding: 0; + + & a { + display: block; + padding: 10px 0; + } + } + } + } + + .show-menu { + display: block; + } + + & input[type=checkbox]:checked ~ nav { + display: block; + } + } + + @media (prefers-color-scheme: dark) { + background: var(--c-bg-inv); + + & a { + color: var(--c-primary-inv); + } + + #title { + color: var(--c-font-inv); + text-decoration-color: var(--c-primary-inv); + } + + & nav { + & a { + &:hover { + &:after { + background: var(--c-primary-inv); + } + } + } + } + } +} + +main { + background-color: var(--c-bg-main); + border: solid var(--s-border) var(--c-primary); + border-radius: 25px; + box-shadow: var(--p-box-shadow); + margin: 50px auto 100px; + max-width: var(--s-content); + padding: 20px 60px 80px; + + @media (prefers-color-scheme: dark) { + background-color: var(--c-bg-main-inv); + box-shadow: none; + } + + & article { + margin: 40px 0; + } + + & h1, & h2 { + font-size: 3rem; + margin: 20px 0 0; + padding: 0; + text-decoration: underline; + text-decoration-color: var(--c-primary); + text-decoration-thickness: 4px; + + @media (prefers-color-scheme: dark) { + text-decoration-color: var(--c-primary-inv); + } + } + + & h2 { + font-size: 2rem; + margin: 40px 0 0; + text-decoration-thickness: 3px; + + & a { + color: var(--c-font); + text-decoration-color: var(--c-primary); + + @media (prefers-color-scheme: dark) { + color: var(--c-font-inv); + text-decoration-color: var(--c-primary-inv); + } + + &:hover { + text-decoration: none; + } + } + } + + & h3 { + font-size: 1.3rem; + } + + & h4 { + font-size: 1.1rem; + } + + & .gallery { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 20px; + } + + & figure { + margin: 0; + + & img { + width: 100%; + border-radius: 20px; + } + } + + & p { + text-align: justify; + } + + & a { + color: var(--c-primary); + + @media (prefers-color-scheme: dark) { + color: var(--c-primary-inv); + } + + &:hover { + text-decoration: underline; + } + } + + & code { + font-family: "JetBrains Mono", monospace; + } + + .btn { + border: 1px solid var(--c-primary); + padding: 8px 12px; + border-radius: 20px; + line-height: 3; + white-space: nowrap; + transition: all 0.15s; + margin-right: 5px; + text-decoration: none; + + &:hover { + box-shadow: var(--c-btn-shadow) 1px 2px 6px; + text-decoration: none; + + @media (prefers-color-scheme: dark) { + box-shadow: var(--c-btn-shadow-inv) 1px 2px 6px; + } + } + + @media (prefers-color-scheme: dark) { + border-color: var(--c-primary-inv); + } + } + + pre { + overflow-y: auto; + } + + pre.hljs { + border-radius: 20px; + overflow-y: auto; + padding: 20px; + } + + .pagination { + text-align: center; + } + + .page-item { + display: inline; + padding-right: 10px; + + &:last-child { + padding-right: 0; + } + } + + .comment { + margin-top: var(--s-comment-margin-top); + text-align: center; + + & a { + font-size: 1.1rem; + } + + & p { + font-size: 0.95rem; + text-align: center; + } + } + + #tags > a, #categories > a { + font-size: 0.9rem; + color: #fff; + padding: 4px 8px; + border-radius: 20px; + white-space: nowrap; + transition: all 0.15s; + text-decoration: none; + + &:hover { + box-shadow: var(--c-btn-shadow) 1px 1px 4px; + text-decoration: none; + + @media (prefers-color-scheme: dark) { + box-shadow: var(--c-btn-shadow-inv) 1px 1px 4px; + } + } + } + + #tags > a { + color: var(--c-bg-tag); + border: 1px solid var(--c-bg-tag); + + @media (prefers-color-scheme: dark) { + color: var(--c-bg-tag-inv); + border-color: var(--c-bg-tag-inv); + } + } + + #categories > a { + color: var(--c-primary); + border: 1px solid var(--c-primary); + margin-right: 3px; + + @media (prefers-color-scheme: dark) { + color: var(--c-primary-inv); + border: 1px solid var(--c-primary-inv); + } + } + + @media screen and (max-width: 1100px) { + border: none; + box-shadow: none; + margin: 0 auto; + padding: 0 20px 80px; + + .tagories { + text-align: left; + } + + #tags a, #categories a { + line-height: 35px; + } + } +} + +footer { + background-color: var(--c-font); + color: var(--c-font-inv); + padding: 40px; + text-align: center; + + & a { + color: var(--c-font-inv); + text-decoration: none; + + &:hover { + text-decoration: underline; + } + } +} diff --git a/assets/src/normalize.css b/assets/src/normalize.css new file mode 100644 index 0000000..e83217b --- /dev/null +++ b/assets/src/normalize.css @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +:is(a) { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..06cb4f8 --- /dev/null +++ b/composer.json @@ -0,0 +1,41 @@ +{ + "name": "getkirby/plainkit", + "description": "Kirby Plainkit", + "type": "project", + "keywords": [ + "kirby", + "cms", + "starterkit" + ], + "authors": [ + { + "name": "Bastian Allgeier", + "email": "bastian@getkirby.com", + "homepage": "https://getkirby.com" + } + ], + "homepage": "https://getkirby.com", + "support": { + "email": "support@getkirby.com", + "issues": "https://github.com/getkirby/starterkit/issues", + "forum": "https://forum.getkirby.com", + "source": "https://github.com/getkirby/starterkit" + }, + "require": { + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "getkirby/cms": "^4.0", + "johannschopplich/kirby-highlighter": "^3.1" + }, + "config": { + "allow-plugins": { + "getkirby/composer-installer": true + }, + "optimize-autoloader": true + }, + "scripts": { + "start": [ + "Composer\\Config::disableProcessTimeout", + "@php -S localhost:8000 kirby/router.php" + ] + } +} diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..909ef4b --- /dev/null +++ b/composer.lock @@ -0,0 +1,1347 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "204970cc6ac724b02a71c7c43253f93c", + "packages": [ + { + "name": "christian-riesen/base32", + "version": "1.6.0", + "source": { + "type": "git", + "url": "https://github.com/ChristianRiesen/base32.git", + "reference": "2e82dab3baa008e24a505649b0d583c31d31e894" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ChristianRiesen/base32/zipball/2e82dab3baa008e24a505649b0d583c31d31e894", + "reference": "2e82dab3baa008e24a505649b0d583c31d31e894", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.17", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^8.5.13 || ^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Base32\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Riesen", + "email": "chris.riesen@gmail.com", + "homepage": "http://christianriesen.com", + "role": "Developer" + } + ], + "description": "Base32 encoder/decoder according to RFC 4648", + "homepage": "https://github.com/ChristianRiesen/base32", + "keywords": [ + "base32", + "decode", + "encode", + "rfc4648" + ], + "support": { + "issues": "https://github.com/ChristianRiesen/base32/issues", + "source": "https://github.com/ChristianRiesen/base32/tree/1.6.0" + }, + "time": "2021-02-26T10:19:33+00:00" + }, + { + "name": "claviska/simpleimage", + "version": "4.0.6", + "source": { + "type": "git", + "url": "https://github.com/claviska/SimpleImage.git", + "reference": "969de5e61810ef91f6f83c475b192c4841367dfa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/claviska/SimpleImage/zipball/969de5e61810ef91f6f83c475b192c4841367dfa", + "reference": "969de5e61810ef91f6f83c475b192c4841367dfa", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "league/color-extractor": "0.4.*", + "php": ">=8.0" + }, + "require-dev": { + "laravel/pint": "^1.5", + "phpstan/phpstan": "^1.10" + }, + "type": "library", + "autoload": { + "psr-0": { + "claviska": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Cory LaViska", + "homepage": "http://www.abeautifulsite.net/", + "role": "Developer" + } + ], + "description": "A PHP class that makes working with images as simple as possible.", + "support": { + "issues": "https://github.com/claviska/SimpleImage/issues", + "source": "https://github.com/claviska/SimpleImage/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/claviska", + "type": "github" + } + ], + "time": "2023-07-27T16:48:12+00:00" + }, + { + "name": "composer/semver", + "version": "3.4.0", + "source": { + "type": "git", + "url": "https://github.com/composer/semver.git", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", + "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "shasum": "" + }, + "require": { + "php": "^5.3.2 || ^7.0 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^1.4", + "symfony/phpunit-bridge": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Composer\\Semver\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nils Adermann", + "email": "naderman@naderman.de", + "homepage": "http://www.naderman.de" + }, + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + }, + { + "name": "Rob Bast", + "email": "rob.bast@gmail.com", + "homepage": "http://robbast.nl" + } + ], + "description": "Semver library that offers utilities, version constraint parsing and validation.", + "keywords": [ + "semantic", + "semver", + "validation", + "versioning" + ], + "support": { + "irc": "ircs://irc.libera.chat:6697/composer", + "issues": "https://github.com/composer/semver/issues", + "source": "https://github.com/composer/semver/tree/3.4.0" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2023-08-31T09:50:34+00:00" + }, + { + "name": "filp/whoops", + "version": "2.15.4", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/a139776fa3f5985a50b509f2a02ff0f709d2a546", + "reference": "a139776fa3f5985a50b509f2a02ff0f709d2a546", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0 || ^8.0", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "require-dev": { + "mockery/mockery": "^0.9 || ^1.0", + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3", + "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "throwable", + "whoops" + ], + "support": { + "issues": "https://github.com/filp/whoops/issues", + "source": "https://github.com/filp/whoops/tree/2.15.4" + }, + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2023-11-03T12:00:00+00:00" + }, + { + "name": "getkirby/cms", + "version": "4.1.2", + "source": { + "type": "git", + "url": "https://github.com/getkirby/kirby.git", + "reference": "6b7ac66c55ecac20d6b580ef01a667d1806d5c72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getkirby/kirby/zipball/6b7ac66c55ecac20d6b580ef01a667d1806d5c72", + "reference": "6b7ac66c55ecac20d6b580ef01a667d1806d5c72", + "shasum": "" + }, + "require": { + "christian-riesen/base32": "1.6.0", + "claviska/simpleimage": "4.0.6", + "composer/semver": "3.4.0", + "ext-ctype": "*", + "ext-curl": "*", + "ext-dom": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-iconv": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-openssl": "*", + "ext-simplexml": "*", + "filp/whoops": "2.15.4", + "getkirby/composer-installer": "^1.2.1", + "laminas/laminas-escaper": "2.13.0", + "michelf/php-smartypants": "1.8.1", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0", + "phpmailer/phpmailer": "6.9.1", + "symfony/polyfill-intl-idn": "1.28.0", + "symfony/polyfill-mbstring": "1.28.0", + "symfony/yaml": "6.4.0" + }, + "replace": { + "symfony/polyfill-php72": "*" + }, + "suggest": { + "ext-PDO": "Support for using databases", + "ext-apcu": "Support for the Apcu cache driver", + "ext-exif": "Support for exif information from images", + "ext-fileinfo": "Improved mime type detection for files", + "ext-intl": "Improved i18n number formatting", + "ext-memcached": "Support for the Memcached cache driver", + "ext-sodium": "Support for the crypto class and more robust session handling", + "ext-zip": "Support for ZIP archive file functions", + "ext-zlib": "Sanitization and validation for svgz files" + }, + "type": "kirby-cms", + "extra": { + "unused": [ + "symfony/polyfill-intl-idn" + ] + }, + "autoload": { + "files": [ + "config/setup.php", + "config/helpers.php" + ], + "psr-4": { + "Kirby\\": "src/" + }, + "classmap": [ + "dependencies/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "authors": [ + { + "name": "Kirby Team", + "email": "support@getkirby.com", + "homepage": "https://getkirby.com" + } + ], + "description": "The Kirby core", + "homepage": "https://getkirby.com", + "keywords": [ + "cms", + "core", + "kirby" + ], + "support": { + "email": "support@getkirby.com", + "forum": "https://forum.getkirby.com", + "issues": "https://github.com/getkirby/kirby/issues", + "source": "https://github.com/getkirby/kirby" + }, + "funding": [ + { + "url": "https://getkirby.com/buy", + "type": "custom" + } + ], + "time": "2024-03-06T11:38:42+00:00" + }, + { + "name": "getkirby/composer-installer", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/getkirby/composer-installer.git", + "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/getkirby/composer-installer/zipball/c98ece30bfba45be7ce457e1102d1b169d922f3d", + "reference": "c98ece30bfba45be7ce457e1102d1b169d922f3d", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0" + }, + "require-dev": { + "composer/composer": "^1.8 || ^2.0" + }, + "type": "composer-plugin", + "extra": { + "class": "Kirby\\ComposerInstaller\\Plugin" + }, + "autoload": { + "psr-4": { + "Kirby\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Kirby's custom Composer installer for the Kirby CMS and for Kirby plugins", + "homepage": "https://getkirby.com", + "support": { + "issues": "https://github.com/getkirby/composer-installer/issues", + "source": "https://github.com/getkirby/composer-installer/tree/1.2.1" + }, + "funding": [ + { + "url": "https://getkirby.com/buy", + "type": "custom" + } + ], + "time": "2020-12-28T12:54:39+00:00" + }, + { + "name": "johannschopplich/kirby-highlighter", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/johannschopplich/kirby-highlighter.git", + "reference": "93bf41f7850ee8c6eaf4cbc0be4ee1f228ae2e98" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/johannschopplich/kirby-highlighter/zipball/93bf41f7850ee8c6eaf4cbc0be4ee1f228ae2e98", + "reference": "93bf41f7850ee8c6eaf4cbc0be4ee1f228ae2e98", + "shasum": "" + }, + "require": { + "getkirby/composer-installer": "^1.2", + "scrivo/highlight.php": "^9.18" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "@stable", + "getkirby/cms": "^4", + "phpunit/phpunit": "^9.0" + }, + "type": "kirby-plugin", + "extra": { + "kirby-cms-path": "tests/fixtures/kirby" + }, + "autoload": { + "psr-4": { + "JohannSchopplich\\": "classes/JohannSchopplich/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Johann Schopplich", + "email": "pkg@johannschopplich.com", + "homepage": "https://johannschopplich.com" + } + ], + "description": "Server-side syntax highlighting for Kirby CMS", + "homepage": "https://github.com/johannschopplich/kirby-highlighter#readme", + "keywords": [ + "highlight", + "highlighter", + "hljs", + "kirby" + ], + "support": { + "issues": "https://github.com/johannschopplich/kirby-highlighter/issues", + "source": "https://github.com/johannschopplich/kirby-highlighter/tree/v3.1.0" + }, + "time": "2024-02-14T06:53:45+00:00" + }, + { + "name": "laminas/laminas-escaper", + "version": "2.13.0", + "source": { + "type": "git", + "url": "https://github.com/laminas/laminas-escaper.git", + "reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/af459883f4018d0f8a0c69c7a209daef3bf973ba", + "reference": "af459883f4018d0f8a0c69c7a209daef3bf973ba", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-mbstring": "*", + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + }, + "conflict": { + "zendframework/zend-escaper": "*" + }, + "require-dev": { + "infection/infection": "^0.27.0", + "laminas/laminas-coding-standard": "~2.5.0", + "maglnet/composer-require-checker": "^3.8.0", + "phpunit/phpunit": "^9.6.7", + "psalm/plugin-phpunit": "^0.18.4", + "vimeo/psalm": "^5.9" + }, + "type": "library", + "autoload": { + "psr-4": { + "Laminas\\Escaper\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs", + "homepage": "https://laminas.dev", + "keywords": [ + "escaper", + "laminas" + ], + "support": { + "chat": "https://laminas.dev/chat", + "docs": "https://docs.laminas.dev/laminas-escaper/", + "forum": "https://discourse.laminas.dev", + "issues": "https://github.com/laminas/laminas-escaper/issues", + "rss": "https://github.com/laminas/laminas-escaper/releases.atom", + "source": "https://github.com/laminas/laminas-escaper" + }, + "funding": [ + { + "url": "https://funding.communitybridge.org/projects/laminas-project", + "type": "community_bridge" + } + ], + "time": "2023-10-10T08:35:13+00:00" + }, + { + "name": "league/color-extractor", + "version": "0.4.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/color-extractor.git", + "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/color-extractor/zipball/21fcac6249c5ef7d00eb83e128743ee6678fe505", + "reference": "21fcac6249c5ef7d00eb83e128743ee6678fe505", + "shasum": "" + }, + "require": { + "ext-gd": "*", + "php": "^7.3 || ^8.0" + }, + "replace": { + "matthecat/colorextractor": "*" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "~2", + "phpunit/phpunit": "^9.5" + }, + "suggest": { + "ext-curl": "To download images from remote URLs if allow_url_fopen is disabled for security reasons" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\ColorExtractor\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathieu Lechat", + "email": "math.lechat@gmail.com", + "homepage": "http://matthecat.com", + "role": "Developer" + } + ], + "description": "Extract colors from an image as a human would do.", + "homepage": "https://github.com/thephpleague/color-extractor", + "keywords": [ + "color", + "extract", + "human", + "image", + "palette" + ], + "support": { + "issues": "https://github.com/thephpleague/color-extractor/issues", + "source": "https://github.com/thephpleague/color-extractor/tree/0.4.0" + }, + "time": "2022-09-24T15:57:16+00:00" + }, + { + "name": "michelf/php-smartypants", + "version": "1.8.1", + "source": { + "type": "git", + "url": "https://github.com/michelf/php-smartypants.git", + "reference": "47d17c90a4dfd0ccf1f87e25c65e6c8012415aad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/michelf/php-smartypants/zipball/47d17c90a4dfd0ccf1f87e25c65e6c8012415aad", + "reference": "47d17c90a4dfd0ccf1f87e25c65e6c8012415aad", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "autoload": { + "psr-0": { + "Michelf": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Michel Fortin", + "email": "michel.fortin@michelf.ca", + "homepage": "https://michelf.ca/", + "role": "Developer" + }, + { + "name": "John Gruber", + "homepage": "https://daringfireball.net/" + } + ], + "description": "PHP SmartyPants", + "homepage": "https://michelf.ca/projects/php-smartypants/", + "keywords": [ + "dashes", + "quotes", + "spaces", + "typographer", + "typography" + ], + "support": { + "issues": "https://github.com/michelf/php-smartypants/issues", + "source": "https://github.com/michelf/php-smartypants/tree/1.8.1" + }, + "time": "2016-12-13T01:01:17+00:00" + }, + { + "name": "phpmailer/phpmailer", + "version": "v6.9.1", + "source": { + "type": "git", + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "039de174cd9c17a8389754d3b877a2ed22743e18" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/039de174cd9c17a8389754d3b877a2ed22743e18", + "reference": "039de174cd9c17a8389754d3b877a2ed22743e18", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-filter": "*", + "ext-hash": "*", + "php": ">=5.5.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "doctrine/annotations": "^1.2.6 || ^1.13.3", + "php-parallel-lint/php-console-highlighter": "^1.0.0", + "php-parallel-lint/php-parallel-lint": "^1.3.2", + "phpcompatibility/php-compatibility": "^9.3.5", + "roave/security-advisories": "dev-latest", + "squizlabs/php_codesniffer": "^3.7.2", + "yoast/phpunit-polyfills": "^1.0.4" + }, + "suggest": { + "decomplexity/SendOauth2": "Adapter for using XOAUTH2 authentication", + "ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses", + "ext-openssl": "Needed for secure SMTP sending and DKIM signing", + "greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication", + "hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication", + "league/oauth2-google": "Needed for Google XOAUTH2 authentication", + "psr/log": "For optional PSR-3 debug logging", + "symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)", + "thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication" + }, + "type": "library", + "autoload": { + "psr-4": { + "PHPMailer\\PHPMailer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1-only" + ], + "authors": [ + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP", + "support": { + "issues": "https://github.com/PHPMailer/PHPMailer/issues", + "source": "https://github.com/PHPMailer/PHPMailer/tree/v6.9.1" + }, + "funding": [ + { + "url": "https://github.com/Synchro", + "type": "github" + } + ], + "time": "2023-11-25T22:23:28+00:00" + }, + { + "name": "psr/log", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", + "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ], + "support": { + "source": "https://github.com/php-fig/log/tree/3.0.0" + }, + "time": "2021-07-14T16:46:02+00:00" + }, + { + "name": "scrivo/highlight.php", + "version": "v9.18.1.10", + "source": { + "type": "git", + "url": "https://github.com/scrivo/highlight.php.git", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/scrivo/highlight.php/zipball/850f4b44697a2552e892ffe71490ba2733c2fc6e", + "reference": "850f4b44697a2552e892ffe71490ba2733c2fc6e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.4" + }, + "require-dev": { + "phpunit/phpunit": "^4.8|^5.7", + "sabberworm/php-css-parser": "^8.3", + "symfony/finder": "^2.8|^3.4|^5.4", + "symfony/var-dumper": "^2.8|^3.4|^5.4" + }, + "suggest": { + "ext-mbstring": "Allows highlighting code with unicode characters and supports language with unicode keywords" + }, + "type": "library", + "autoload": { + "files": [ + "HighlightUtilities/functions.php" + ], + "psr-0": { + "Highlight\\": "", + "HighlightUtilities\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Geert Bergman", + "homepage": "http://www.scrivo.org/", + "role": "Project Author" + }, + { + "name": "Vladimir Jimenez", + "homepage": "https://allejo.io", + "role": "Maintainer" + }, + { + "name": "Martin Folkers", + "homepage": "https://twobrain.io", + "role": "Contributor" + } + ], + "description": "Server side syntax highlighter that supports 185 languages. It's a PHP port of highlight.js", + "keywords": [ + "code", + "highlight", + "highlight.js", + "highlight.php", + "syntax" + ], + "support": { + "issues": "https://github.com/scrivo/highlight.php/issues", + "source": "https://github.com/scrivo/highlight.php" + }, + "funding": [ + { + "url": "https://github.com/allejo", + "type": "github" + } + ], + "time": "2022-12-17T21:53:22+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" + }, + { + "name": "symfony/polyfill-ctype", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-ctype.git", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", + "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-ctype": "*" + }, + "suggest": { + "ext-ctype": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Gert de Pagter", + "email": "BackEndTea@gmail.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for ctype functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "ctype", + "polyfill", + "portable" + ], + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-intl-idn", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-idn.git", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ecaafce9f77234a6a449d29e49267ba10499116d", + "reference": "ecaafce9f77234a6a449d29e49267ba10499116d", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-intl-normalizer": "^1.10", + "symfony/polyfill-php72": "^1.10" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Idn\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Laurent Bassin", + "email": "laurent@bassin.info" + }, + { + "name": "Trevor Rowbotham", + "email": "trevor.rowbotham@pm.me" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "idn", + "intl", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-01-26T09:30:37+00:00" + }, + { + "name": "symfony/polyfill-intl-normalizer", + "version": "v1.29.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-normalizer.git", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", + "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Intl\\Normalizer\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for intl's Normalizer class and related functions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "intl", + "normalizer", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-01-29T20:11:03+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "42292d99c55abe617799667f454222c54c60e229" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229", + "reference": "42292d99c55abe617799667f454222c54c60e229", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.28-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-07-28T09:04:16+00:00" + }, + { + "name": "symfony/yaml", + "version": "v6.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/yaml.git", + "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/yaml/zipball/4f9237a1bb42455d609e6687d2613dde5b41a587", + "reference": "4f9237a1bb42455d609e6687d2613dde5b41a587", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-ctype": "^1.8" + }, + "conflict": { + "symfony/console": "<5.4" + }, + "require-dev": { + "symfony/console": "^5.4|^6.0|^7.0" + }, + "bin": [ + "Resources/bin/yaml-lint" + ], + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Yaml\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Loads and dumps YAML files", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/yaml/tree/v6.4.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-11-06T11:00:25+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": "~8.1.0 || ~8.2.0 || ~8.3.0" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/config.toml b/config.toml deleted file mode 100644 index 00fddf0..0000000 --- a/config.toml +++ /dev/null @@ -1,106 +0,0 @@ -############### -# General Config -# - -baseURL = "https://mmk2410.org/" -languageCode = "en-us" -languageName = "English" -defaultContentLanguge = "en" -title = "Marcel Kapfer" -theme = "nextDESIGN" - -# Enable the possibility to use .GitInfo -enableGitInfo = true - -############### -# RSS -# - -# Only put the last ten entrys in the RSS feed -rssLimit = 10 - -############### -# Author -# - -[author] -name = "Marcel Kapfer" - -############### -# Permalinks -# - -[permalinks] -blog = "/:year/:month/:day/:title/" -quotes = "/:year/:month/:day/:title/" - -############### -# Related Content -# - -[related] -includeNewer = true - -############### -# Additional menu entries -# - -[menu] - -[[menu.main]] -identifier = "composing" -name = "Composing" -weight = 5 -url = "https://marcel-kapfer.de" - -[[menu.main]] -identifier = "photography" -name = "Photography" -weight = 6 -url = "https://marcelkapfer.photography" - -############### -# Further paramters -# - -[params] - -about = "I do creative things." -copyrighthtml = "2023 © Marcel Kapfer
Content licensed under CC-BY-SA 4.0" -imprinttext = "Impressum und Datenschutz" -giturl = "https://git.mmk2410.org/mmk2410/mmk2410.org" - -[params.social] -mastodon = "https://fosstodon.org/@mmk2410" -gitlab = "https://gitlab.com/mmk2410" -forgejo = "https://git.mmk2410.org/mmk2410" - -[params.comment] -mail = "comment@mmk2410.org" - -############### -# Markup -# - -[markup] -[markup.goldmark] -[markup.goldmark.renderer] -unsafe = true - -############### -# Privacy -# - -[privacy] - [privacy.disqus] - disable = true - [privacy.googleAnalytics] - disable = true - [privacy.instagram] - disable = true - [privacy.twitter] - disable = true - [privacy.vimeo] - disable = true - [privacy.youtube] - disable = true diff --git a/content-org/blog.org b/content-org/blog.org deleted file mode 100644 index f12f96a..0000000 --- a/content-org/blog.org +++ /dev/null @@ -1,4395 +0,0 @@ -#+HUGO_SECTION: blog -#+HUGO_BASE_DIR: ../ -#+startup: indent - - -* DONE Discontinuing Scribbles :@meta: -CLOSED: [2023-12-05 Di 21:07] -:PROPERTIES: -:EXPORT_FILE_NAME: discontinuing-scribbles -:END: -:LOGBOOK: -- State "DONE" from [2023-12-05 Di 21:07] -:END: - -Well, I already [[https://fosstodon.org/@mmk2410/111505636463994751][wrote a few days ago on Mastodon]] that I'm thinking of shutting down my "Scribbles" microblog and moving the articles I wrote there to this blog. And now I did it :D - -And not even three months after I started it and about two months after [[*Re: Having a Microblog on a Traditional Blog][I defended the content separation]]. So, what led to that decision? - -First of all, I think I got over my fear of not publishing articles of high enough quality. This is one of the main reasons that motivated me to write on Scribbles. But at least as of now, I am less concerned about publishing something which may not have the highest quality it could Perhaps this is the consequence of writing more freely on Scribbles during the past months. Perhaps this is also due to me currently [[https://pixelfed.social/i/web/profile/462215951050235638][publishing a new photograph]] on various social networks every day. Perhaps I just got older... However, I won't strive for the highest quality (that I can deliver) on this blog anymore. And I also will not just be about technological topics. This always was a generalist blog and it will continue to be. It is my main blog. Therefore, it will naturally feature articles about what I'm currently interested in. At the moment this is mostly photography. A few years from now on it might be something different. - -Discarding Scribbles also means that I /might/ be a bit more active on [[https://fosstodon.org/@mmk2410][Mastodon]] since I perhaps write short thoughts rather there than here. After all, I currently have no real opportunity to write blog posts on mobile devices. But this might change: The [[/tags/cms][CMS for my photography website I'm currently searching for]] might be first used here. I have enough content to test it and (more importantly) already a theme to see how easily I can theme the chosen software. - -Conclusively, I think that this (admittedly rather short) experiment of running my own microblog helped me to grow a bit. Therefore, it has done its job and hopefully, it helps me to write more regularly and especially freely here. - -P.S.: Regarding the scribbles.mmk2410.org domain and the URLs pointing towards there. Of course, I will redirect them for the foreseeable future. Regarding the Fediverse account: I have no idea what will happen. I think it will just vanish. But since it wasn't possible to reply to its posts anyway and it only had one follower it won't be a big problem, I guess. - -* DONE CMS Search Update: The Shortlist Problem :@web:cms: -CLOSED: [2023-11-29 Mi 23:44] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-cms-search-update-the-shortlist-problem -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -I just published [[*CMS Search Update: The Shortlist][the shortlist]] of my search for a new CMS for [[https://marcelkapfer.photography][my photography website]]. There are five systems (in no particular order) that are on it: Kirby, WordPress, TYPO3, Contao, and Statmic (if you're curious about how I got there, you can [[/tags/cms][read my other articles on that topic]]). - -One might think "This is easy. Five is not so much. Spend a few hours with each and see which you like most". But, of course, it is not as easy. At least not for me since I have one problem with each one which I cannot resolve or ignore/accept (at least not now). - -** Kirby - -A really interesting solution and it has the potential (of course with some initial effort) to build a system that exactly reflects what I want to do and that I could precisely adjust to my workflow. But there is one thing that bugs me. And no, it's not the price or the license per se. - -*It is a proprietary project of a single company.* - -And I saw a few other CMS with the exact same story: great features, modern, good UX. But most of them got (practically) deprecated by the company behind them. I would like to avoid this fate. - -** WordPress - -As I wrote in the shortlist post: Using plugins, you can do /everything/ with WordPress. There is just one tiny catch: - -*I do not like plugins.* - -Not that that there is anything wrong with the concept of plugins nor with many of the plugins out there and there was not a single CMS that I could use without plugins. But the sheer amount of plugins possibly necessary for the website I intend to create scares me. I'm quite sure that some will get deprecated and that I would need to put in the time to migrate to another solution. Not a nice though. I would like to avoid that as well. - -** Contao - -This software has some really nice approaches and is very configurable from its backend (including layouting and theming). But.... - -*Why not just use TYPO3?* - -Regarding the type of system and its features, it is very similar to TYPO3. In some circumstances, it is a bit easier to configure using the backend (but this could also be seen as more complex). But generally, the backend is way worse IMO and as far as I could see the template development is by far not as developer friendly. Additionally, I have some experience in creating TYPO3 templates and sites. - -** TYPO3 - -A system I "often" opted for in the past and I have still a TYPO3 website running as of now. I need to update the self-created theme every one and a half years when a new major version comes out (due to the update period you could also always skip one major). The problem is just: - -*It's an enterprise CMS and undoubtedly too complex for my goal.* - -Creating an own theme takes a serious amount of work (at least for me, since I'm not doing it every day) and if I need some adjustments beyond what a plugin provides it gets quickly complex as well. This would not be an easy and minimal setup "just" fulfilling my requirements - -** Statamic - -Regarding the setup, it is quite similar to Kirby. You have to configure the backend yourself to create what you need from it. Thereby it could be more complex than Kirby but since it has some things already included it could turn out to be less work. However, my problem with it is exactly the same as with Kirby. - -*It is a proprietary project of a single company.* - -To continue copy-pasting: And I saw a few other CMS with the exact same story: great features, modern, good UX. But most of them got (practically) deprecated by the company behind them. I would like to avoid this fate. - -** Conclusion - -Yeah... I cannot be satisfied.... And perhaps I'm a bit too pessimistic here. - -I'll sleep on it a few nights and perhaps then the path will look a bit less foggy... :) - -* DONE CMS Search Update: The Shortlist :@web:cms: -CLOSED: [2023-11-29 Mi 22:19] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-cms-search-update-the-shortlist -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -[[*CMS Search Update: The Requirements][I just published the requirements]] for the CMS that should manage [[https://marcelkapfer.photography][my photography website]] in the future. As announced over there that I already analysed the CMS [[*CMS-Search Update: The Longlist][on the longlist]] but I wanted to split all the information into two posts to avoid making one too long. Well.... the other one certainly got too long. Let's see what will happen here. - -** The process - -I went over the longlist and checked one CMS after another and examined each for every requirement before continuing with the next one. I wrote down all my findings on a digital piece of paper (using my tablet). This resulted in a document of about 22 DIN A4 pages. While I didn't track it, looking at the clock from time to time revealed that I spend at least 30 minutes for each CMS (the maximum was about 4 hours, I think. The mode should be between 30 and 60 minutes). With the exception of TYPO3 and WordPress (I know both well enough) and some, where it was clear at first sight that they would not meet the requirements, I installed all and played around in the backend to test the requirements thoroughly. In case something was not answerable I put in a considerable (but not indefinitely) amount of time to understand enough to answer all my questions. In two cases even after I already finished the complete review. - -Although I tried to be as objective as possible the choices are of course also based on my personal goal, my prior knowledge and my general attitude. Therefore, I try to be as precise as reasonable on why I excluded and included the systems so that someone else can perhaps more easily deduce a shortlist for themself. - -** The losers - -It would be a bit too easy to just write a few names and click on "publish". Therefore, I first write a list of all the systems that didn't make it to the shortlist and give a short reason why. - -- *Craft CMS:* It seems to be more a framework for building a custom CMS than a CMS itself. And by what I read and understood the setup could turn out to be too complex for the job. The features offered in other areas (besides the more or less included shop functionality) also were not that outstanding. - -- *Joomla!:* Feature-wise it would be an ideal product. Everything I need is included and the requirements are very well fulfilled. But that templating language... HORRIBLE! I really don't want to work with that. (This is one of the two which I read a bunch of documentation afterwards to find out if it is really that bad and I even consulted with a colleague today. Both validated my findings.) - -- *Roadiz:* The project didn't make a very good impression at first sight and I could not get it running using the provided Docker compose setup as the only documented installation procedure. At that point, I continued with the next one. - -- *Strapi:* An interesting product for sure. But since it is a headless CMS framework offering "only" an API I would need to write a frontend either using JavaScript technologies (and for a normal website this is bullshit) or write a server-side backend that produces a frontend. Way too much work. Oh, and the company behind is VC-funded. Big no. - -- *Exponent:* Although it had a release earlier this year I checked the activity of the project more thoroughly and found out that there is no much active development anymore and evidently no community anymore (at least no one uses the forum). - -- *BigTree:* I'm a bit sad that I had to throw it out. But after very carefully checking the source code activity, the releases (really not regular and not following the release schedule), the announcement of a major release in 2017 (with a planned release in the same year which didn't happen yet at all) and finally the website of the company behind the product I had to conclude that this is most likely abandoned and will perhaps not see any further development or even maintenance. - -- *Concrete CMS:* One with a really good file manager! But evidently (the docs say so) it tracks you unless you modify the source code. Also, it is not editable from mobile, the theming seems to be very complex and apparently, there is no shop plugin available. - -- *Neos:* This one has some very interesting concepts and if I would need to develop a site for a company or organisation I would at least put it on the shortlist. However, the lack of a responsive backend, the complex theme process and the unavailability of a shop plugin make it uninteresting for this project. - -- *Django CMS:* The lack of built-in blogging utilities that would need to be added using plugins as well as the potentially(!) cumbersome integration of django-shop made this not very interesting. Given that I do not have any prior knowledge of Django (and as of now also no interest in learning) led to the exclusion of this one. - -- *Tina:* Although with a different tech stack and principles, it seems to have the same problems for me as Strapi. I would need to write my own complete frontend (either client- or server-side) and it seems to be more a framework for building a CMS. - -** First in, but still out - -Two systems that meet all the requirements but I have the same bad feeling about them: *Textpattern* and *dotclear*. While they both are currently actively developed and have perhaps even a community using them I have the feeling after checking the repositories, forums and issues that both my still no longer be around (meaning maintained) in a few years. This sadly contradicts my goal of using the system I'm currently searching for for at least five years. - -Nevertheless, if you are searching for a simple, yet customisable, CMS for your blog where you can quickly get started but are not limited by its options, then I can recommend both to you (at least after these tests). - -** The shortlist - -Finally, here it is. - -- *Kirby:* This one is only in after a second look and reading lots of documentation. The first time I stopped quite soon reviewing it due to the lack of a dedicated file/asset manager. Only later I realised that it could provide something similar that would exactly fulfil my needs -- perhaps even more than some file manager module. All other requirements can be sufficiently fulfilled. - -- *WordPress:* Using plugins, everything is possible in Wordpress... - -- *TYPO3:* To be honest, if you do not have any prior experience do not put this on your short list. The templating is too complex for what I'm doing but I created a few TYPO3 pages during the last years already and know my way around (at least a bit). - -- *Contao:* It plays in a similar league as TYPO3: Enterprise CMS. But it has more features built-in and this means fewer plugins. However, the templating could turn out to be tricky. - -- *Statamic:* Although it is quite similar to Craft CMS it seems to be much easier to configure and set up. Additionally, I have some experience in Laravel, the PHP web framework that is used by Statamic under the hood. - -If you don't have any prior web development experience I would perhaps not recommend TYPO3, Contao or Statamic. Excluding those would mean that you have the choice between Kirby and WordPress if your requirements equal mine. - -** What's next - -Five systems. And each one has a problem. I'll write about that in the next post. - -* DONE CMS Search Update: The Requirements :@web:cms: -CLOSED: [2023-11-29 Mi 21:21] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-cms-search-update-the-requirements -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -Back when I started searching for a content management system for [[https://marcelkapfer.photography][my photography website]] a few weeks ago I first wrote a list of requirements that should be fulfilled. Categorised as "Nice to have", "Important", and "Deal Breaker". - -Using four deal breakers as basic criteria I culled through a total of 40 relevant finds and created [[*CMS-Search Update: The Longlist][a longlist including 18 different systems]]. - -After being occupied during the last weeks with other tasks I got back to the "hunt" at the end of last week and wrote myself a more detailed requirements list. To not bore you to death I summarize each one as short as possible. - -** Feasible Theming (Important) - -With a relatively low effort it should be possible to create my theme or customize an existing one to fit my needs (I like to design my websites myself, more often than not entirely from scratch (yes, Scribbles is an exception)). The templating language should either be already known to me or very easy to learn and easy to apply to a previously created "raw" HTML design. Adjustments (in the best case: only a few) should only be necessary for major upgrades and a higher initial effort is prepared to constant effort to keep the template working. - -** Self-hosted (Deal Breaker) - -Well... Of course, this is a deal breaker. And although it won't, it should be even possible to run the software on the cheapest VPS. The initial installation should not take more than an hour. - -** Responsive (Important) - -Or -- to be more precise -- editable on mobile. Basic changes like publishing new pictures or writing/updating text should be possible on a smartphone from everywhere. Spoiler: Hard to believe, but some quite new system failed here... - -** Open-Source / No VC Funding / Community-Driven (Nice to have) - -To make it short: A VC-funded product is an unreliable product IMO. And I want to choose a system which runs without major issues for at least five years. Also: community-driven does not necessarily exclude projects where the community mostly consists of companies. - -All three together would be perfect, of course. However, I would choose a proprietary project of a reputable company over an open-source product backed by VC funding. - -** Potentially usable for other sites (Nice to have) - -The CMS should not be so specific to my use case that I cannot use it anywhere else. It would be nice to run all my pages using the same software and potentially even the same theme (or at least the same theme basis). - -** Shop System (Important) - -It could be possible that I may offer some digital assets for purchase at some point in the future. Nothing is planned as of yet but I'm quite sure that this could happen at some point. The system should therefore be capable of handling a shop of digital assets (or provide a plugin for doing so). - -** Blog (Deal Breaker) - -Although the primary goal of the page is to have a portfolio I also would like to start a photography blog (and potentially write an article a bit more often than on [[https://mmk2410.org][my main blog]] :D). Of course, a blog isn't a blog if it doesn't have a RSS or Atom feed. Oh, and why not choose something that has a (built-in or plugin-based) newsletter functionality? - -** Digital Asset Manager (Deal Breaker) - -OK, less slang: a module (or whatever you may call it) to upload and manage upload files. It must be possible to sort them into folders (a folder hierarchy would be preferred) and it would be nice if I could tag uploaded pictures. - -Additionally, I would like to see in the asset information on which pages it is currently linked. Spoiler: Not many solutions have this. And I don't get why. The asset has most likely a database entry and the page where it is used will reference it in its DB entry. So why not write a little query and show me where the asset I'm thinking of deleting is currently used? - -** Actively Developed (Deal Breaker) - -This is very difficult to define. I'm not one of these people who say "What? No commit today???" or "The latest release is older than a week?" followed by "This must be a dead project". - -In most cases, it was quite clear that the project is actively developed. Recent activity in the source code repository, regular releases and in some cases even a clear release schedule. Nevertheless, there were a few cases that were not so clear and during the analysis of those CMS, I spent a considerable amount of time checking this. Those included (but were not limited to): response activity on issues, forum and chat activity, blog activity, blog announcements about upcoming releases (that never happened), in case of company-owned products even a check of the company's website if they still promote or use the product themselves. - -** Conclusion - -OK. Sorry... This got WAY longer than I would like to have... - -The CMS on the long list are also already analysed and I post the results as soon as possible (meaning most likely this evening). - -* DONE Getting back on track -CLOSED: [2023-11-17 Fr 18:45] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-getting-back-on-track -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -After some very busy weeks, I slowly have more time to focus on some projects I started before then. The last two days I had some fun continuing a small web scraping project written in Clojure (more on that another day) and I just had enough time to submit my [[https://mmk2410.org/uses/][uses]] page to [[https://defaults.rknight.me/][Robb Knight's App Defaults list]]. Yeah, I know... I'm a bit late to the party... - -I also finally started reading (or working) through some photography (e-)zines I bought a quarter to half a year ago! And related to photography: I intend to put some time in the [[*CMS-Search Update: The Longlist][search for a CMS]] for my photography site. - -* DONE A bit of useless knowledge -CLOSED: [2023-11-01 Mi 14:54] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-a-bit-of-useless-knowledge -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -Are you, like me, interested in learning or reading about something you quite likely never need? And are you also a fan of RSS feeds? - -Then you may be happy to learn that there are RSS feeds for Wikipedia's "Today's feature article" and "On this day" (both found on the [[https://en.wikipedia.org/wiki/Main_Page][main page]])! - -- For "Today's featured article": https://en.wikipedia.org/w/api.php?action=featuredfeed&feed=featured&feedformat=atom -- For "On this day": https://en.wikipedia.org/w/api.php?action=featuredfeed&feed=onthisday&feedformat=atom - -If you change the subdomain from 'en' to your locale you may also have feeds in your preferred languages (at least for German (de) it works). - -Have fun! - -P.S.: If you currently have nothing else to do I can recommend reading through the [[https://en.wikipedia.org/wiki/List_of_common_misconceptions][list of common misconceptions]] - -* DONE Re: Having a Microblog on a Traditional Blog :@meta:mastodon:microblogging: -CLOSED: [2023-10-11 Mi 17:32] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-re-having-a-microblog-on-a-traditional-blog -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -I read Kev Quirk's newest blog post [[https://kevquirk.com/having-a-microblog-on-a-traditional-blog]["Having a Microblog on a Traditional Blog"]] earlier today, and since I (more or less) "microblog" here, I have a few thoughts I'd like to share. - -Contrary to Kev, I prefer this platform separated from my [[https://fosstodon.org/@mmk2410][Mastodon account on Fosstodon]] for some freedoms. - -Fosstodon is not a generalistic instance; it is a tech-related one. And although it seems as if non-tec-related content is handled in a quite relaxed way I don't want to exploit this friendliness. - -Nowadays, I'm less interested in the newest software or technology, but I'm more focused on my creative projects. Sometimes software plays a role in this (and in those rare cases, I post to Fosstodon every once in a while). However, more often than not, I think about other things. Of course, I could move to another instance. Though, I'm extremely satisfied with the maintenance and administration of the Fosstodon team, and I don't want to search for something similar elsewhere. Yeah, I'm getting old :) - -But this is not the only reason. This (micro)blog gives me a few options: - -- I can write about whatever I want -- I can write longer articles than the regular limit on Mastodon (and I loathe long posts or threads on Mastodon or any other social network for that matter) -- I can use the full Markdown formatting features that WriteFreely has to offer (e.g. code blocks). - -Perhaps some articles I publish here would fit better on [[https://mmk2410.org][my main blog]], but over there, I strive for a high level of quality, which requires more time than I'm currently willing to invest. - -Nevertheless, this does not mean that I never thought about moving a post from here over to my blog. As a matter of fact, I'm considering it for some articles. - -So far, these are my reasons and thoughts about this topic. And I realised over the last few days that I published more (written) content here than anywhere else in years (combined!). - -I think there are two main reasons: - -1. I don't care about quality as much as on my blog; I just write down what currently floats in my head. -2. I can write from anywhere: from a laptop to a smartphone. At the moment, I'm writing this on my tablet using an external Bluetooth keyboard. But I also wrote a shorter post on my smartphone while cooking! - -Therefore, I will keep posting here and boost the posts that are more or less tech-related on my Mastodon account. - -* DONE CMS-Search Update: The Longlist :@web:cms: -CLOSED: [2023-10-11 Mi 17:29] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-cms-search-update-the-longlist -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -A few days ago [[*Searching for a CMS][I wrote]] that I'm currently search for a different content management solution for [[https://marcelkapfer.photography][my photography website]]. - -I initially browsed through some list of CMS I found online (e.g. [[https://github.com/awesome-selfhosted/awesome-selfhosted#content-management-systems-cms][awesome-selfhosted]] and [[https://en.wikipedia.org/wiki/List_of_content_management_systems][Wikipedia]]) and got a list of 40 different solutions that sounded interesting on first sight. - -Since then I culled through them to get a shorter list of systems which are worth a closer look. For this, I defined four "deal-breakers": - -- The CMS must be self-hostable -- It must feature a blogging solution with an RSS feed (either integrated or using a well-known plugin) -- It must have a least a very basic asset manager (uploading files to in an own module (not just as part of an page/article), creating folders to organise the content) -- The CMS must be under active development (either a release during the last year or some activity in the source code repository; this is a difficult metric, but all projects where either clearly dead or alive) - -Whats now left is a long list (or is it a mid list?) of the following CMS (in no particular order): - -- Kirby -- Wordpress -- TYPO3 -- Craft CMS -- Statamic -- Contao -- Joomla! -- Roadiz -- Strapi -- Exponent -- BigTree -- Concrete CMS -- Neos -- Textpattern -- dotclear -- django CMS -- Tina - -Amoung those are some which absolutely cannot see using. But up to this point I'm trying to be as objective as possible to find a solutions that fits my needs perfectly. Perhaps, I even surprise myself. - -The next steps - I'm trying to follow Karl Voit's [[https://karl-voit.at/2021/01/18/tool-choices/]["How to Choose a Tool"]] articles as close a possible) - is creating a complete list of requirements and determining a methodology of how I intent to use the software. - -* DONE Searching for a CMS :@photography:@web:cms: -CLOSED: [2023-10-09 Mo 19:30] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-searching-for-a-cms -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -Currently, [[https://marcelkapfer.photography][my photography website]] is generated using WordPress. Back in March when I created it I needed something to finish the first version as soon as possible (I created some business cards for a trip and wanted to put a URL there). WordPress was the best and first solution that came to mind. - -Originally, I intended to create my own TYPO3 site package (theme) and also wanted to follow through with this project after the launch of the WordPress side. But I didn't have any spare time for this during the last few months. Up to now, at least. Since I didn't put any time into the theme development for TYPO3 and as I'm still not sure whether this is the right platform I'm currently looking around at what's out there. - -Well... Now I'm sitting in front of a big list with 40 different CMS and slowly working through them using [[https://karl-voit.at/2021/01/18/tool-choices/][Karl Voit's "How to Choose a Tool"]] system. - -* DONE Getting some stats from WriteFreely :@selfhosting:writefreely:plausible: -CLOSED: [2023-10-06 Fr 23:35] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-getting-some-stats-from-writefreely -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -Out of pure curiosity I want to get a few stats from this WriteFreely instance using my self-hosted [[https://plausible.io/][Plausible]] instance. But at the current point it does not seem to be too easy to add custom JavaScript or arbitrary HTML to WriteFreely. - -But there is a =templates= folder in the installation directory which contains some more or less well named =.tmpl= files. Sadly there is not documentation available at this point. But after a bit of playing around, I found out that it seems to be enough, to adjust the following template files: - -- =collection.tmpl= (the post list/home page) -- =collection-tags.tmpl= (the tags list, I guess) -- =collection-post.tmpl= (evidently a single post view) - -To not collect views from myself I looked a bit around and found promising boolean name =.isOnwer=. This, combined with the script tag as generated by Plausible, resulted in the following three lines which I added to the three above mentioned files: - -#+begin_src html -{{ if not .IsOwner }} - -{{ end }} -#+end_src - -A few tests show that this apparently works. - -I should mention that it requires a self-hosted WriteFreely instance (in single user mode) and a good memory to not override/adjust the template files after the next WriteFreely update... - -* DONE A little change of wallpaper :@linux:kdeplasma:nixos: -CLOSED: [2023-10-06 Fr 21:40] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-a-little-change-of-wallpaper -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -Well, actually the wallpaper stayed the same. But about two hours ago I had an urge to play around with KDE Plasma on my private laptop after installing Tuxedo OS (which comes with Plasma) for some debugging reasons on my work device. - -Thankfully, Nix OS made it unbelievable easy to switch from Gnome. Changing two configuration values in the system configuration and the preferred GPG pinentry program in my Home Manager setup. - -* DONE Outside: Success depends on measurement :@photography:life: -CLOSED: [2023-10-06 Fr 19:54] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-outside-success-depends-on-measurement -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -As you may know, I started doing some [[https://pixelfed.social/i/web/profile/462215951050235638][street photography]] regularly since early this year. For a few months, I started to walk through Ulm more regularly (2-3 times a week) for about an hour or more taking pictures. - -After a bit of forced hiatus during the last weeks, I finally got out again today. Normally, I come home with about 40-80 pictures per walk (in total, not sorted out). But today I took only about five... - -So you might say that this day was quite unsuccessful. But quite the contrary! The amount of pictures I take is not a good measurement, neither is their quality. Street photography needs (next to other things) a bit of luck and obviously this will not always be by your side. - -I measure the success more on the personal outcome: I had fun, and the walk calmed me down and gave my mind a bit of time to rest. All in all: I enjoyed today, I'm much more relaxed than before and I'm looking forward to next time. - -If that isn't success, then I don't know what is :) - -* DONE Tagging :@photography: -CLOSED: [2023-10-02 Mo 22:49] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-tagging -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -I'm currently re-organizing the tags on my photographs since it grew kind of wild over the last years. But to be honest I have no idea if the work I put into it will be worth at some point... - -* DONE Struggling with colour labels, Darktable and Digikam :@photography:darktable:digikam: -CLOSED: [2023-09-24 So 18:52] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-struggling-colour-darktable-digikam -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -I currently use Darktable for developing my RAW files and Digikam for organizing all my pictures. As I've written earlier, using only star ratings is not enough and I need to integrate something else into my organising workflow. Colours labels would be perfect for this. - -The problem is just, that there is evidently no way for "syncing" colour labels from Darktable to Digikam. Only Digikam to Darktable works. With the process that I'm trying to establish, it is necessary that I assign colour labels to /edited/ photographs (meaning: while viewing the edited version). But, of course, Digikam cannot display the edits done with Darktable. - -Why not just use Darktable only and drop Digikam? I would if: - -1. I would have some possibility in Darktable to label the processing status of a folder (not yet processed, culled, processed) (that is the more important point) -2. It would be possible to show video files in Darktable (just show; but I could work around that) - -Do you have any idea? If yes, please reach out to me! - -* DONE Struggling with ratings and colour labels :@photography:digikam:darktable: -CLOSED: [2023-09-24 So 10:36] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-struggling-ratings-colour-labels -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -Rating my picture is an important part of my editing workflow using [[https://www.darktable.org/][Darktable]] and [[https://www.digikam.org/][Digikam]]. In some rare occasions I also add a colour label. - -The problem is, that my concept of almost exclusively working with ratings slowly makes more and more problems. Perhaps I should use colour labels more extensively. - -* DONE Too narrow :@photography: -CLOSED: [2023-09-23 Sa 23:07] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-too-narrow -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -I probably will get haunted for this... - -But personally, I think that the 2:3 image format is too narrow for portrait orientation photographs. I almost always crop to a 4:3 and don't seem to loose any information. - -* DONE The Start -CLOSED: [2023-09-23 Sa 22:28] -:PROPERTIES: -:EXPORT_FILE_NAME: scribbles-the-start -:END: - -/Note: This was initially published on Scribbles, my previous "micro blog". I discontinued it and moved the contents into this blog on 2023-12-05./ - -I [[https://fosstodon.org/@mmk2410/111115250909631975][posted early on Fosstodon]]: - -#+begin_quote -Somehow I have the sudden urge to start a "brainfart" blog, similar to what [[https://social.lol/@jbaty][@jbaty@social.lol]] has on [[https://daily.baty.net/][daily.baty.net]] I really enjoy the (type of) content over there. But if history is any indication, then it is most likely that the project would die faster than I could start it.... :D -#+end_quote - -Well, as you may guess: I couldn't withstand the urge and set up an own [[https://writefreely.org][WriteFreely]] instance. It seems to be the right tool for the job: minimal, federated, editable on mobile and providing an [[https://scribbles.mmk2410.org/feed/][RSS feed]] (/Note: This won't work anymore. But you can subscribe to [[/index.xml][my main RSS feed]]/). - -Let's see, how long this project will survive :) - -You should be able to follow my scribbles using @mmk2410@scribbles.mmk2410.org (/Note: This won't work anymore. But you can still [[https://fosstodon.org/@mmk2410][follow me on the fediverse]]/) in case you're in search for some really disturbing news from me :D - -* DONE On Finding a To-Do Setup That Works :orgmode:gtd:tasks:pim: -CLOSED: [2023-05-22 Mon 17:49] -:PROPERTIES: -:EXPORT_FILE_NAME: on-finding-a-to-do-setup-that-works -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2023-05-22 Mon 17:49] -:END: - -How many to-do apps have you already tried? All of them? Did you find one that "works" for you? No? Well, you're certainly not alone. - -** The Endless Search - -I tried a fair share of apps and setups but all of them seemed to fail sooner or later. Whether it was a plain paper notebook I kept in my pockets, a [[*Why I failed using Org-mode for tasks][custom Emacs Org-Mode setup]] or some apps like Nextcloud Tasks, Trello or Todoist. I discard each one of them after a while. And it took me some years to realize why and how to resolve this dilemma. - -In search of managing my life a bit better and handling tasks more proficiently, I read and worked through David Allens' book "Getting Things Done (GTD)" starting in January 2022 and implemented his methodology in Todoist about a year ago. And only after some time I slowly realized that I didn't stop using the app. And I'm still following the GTD methodology as closely as possible even after switching back to Emacs Org-Mode in December 2022 for obvious privacy concerns. - -** A Different Problem - -Perhaps the "problem" was not all the apps and setups out there, but myself! Don't get me wrong, there are certainly some applications that are just not good or don't provide the features I truly need. But that's beside the point. Successfully /maintaining/ a to-do system is not determined by finding the right app that just magically works for you. No, it is a *state of mind*. Whether an app fits you or utterly fails comes only down to how you use it. - -So, if you're in the same place as I was and cannot find an app that "functions reliably" even after trying almost everything out there and wasting countless hours searching for programs and migrating between different setups, then it may quite possibly be, that you should *find a system* that suits you *first* and then search for a solution (whether digital or on paper doesn't matter) that supports you the most for the system that works for you. - -I'm not saying that GTD is necessarily the right methodology for you. It works for me but you very likely have different requirements and a different life than I and perhaps another system is better suited for you. Take some time to learn about the different ideas that are available and try them out. In the long run investing time in finding, learning and implementing a methodology that fits your life and your tasks and supports you is certainly worth it. - -Finally, keep in mind that a system does not maintain itself! It is mandatory that *you* invest time *regularly* into maintaining the system and keeping it alive and running! If you don't do this then you have yet another system and app to put on your "doesn't work for me" list. If you established a system that works for you then every minute and every hour you spent keeping your system up is time saved. - -* DONE Publishing my Emacs Configuration using Gitea Actions :@code:emacs:orgmode:cicd:pipelines:gitea:emacs: -CLOSED: [2023-04-02 Sun 13:05] -:PROPERTIES: -:EXPORT_FILE_NAME: publishing-my-emacs-configuration-using-gitea-actions -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2023-04-02 Sun 13:05] -:END: - -About a year ago I already wrote [[*Publishing My Emacs Configuration][a few]] [[*Update on Publishing my Emacs Configuration][blog posts]] about publishing my Emacs configuration, lastly using a [[*Another Update on Publishing my Emacs Configuration][GitLab pipeline]]. This worked quite fine since back then and I had zero problems or issues with the pipeline. Although I'm using the GitLab CI feature for this I don't use GitLab for hosting the repository. My [[https://gitlab.com/mmk2410/dot-emacs][dot-emacs-repository over there]] is just a mirror, the main one is in my personal [[https://git.mmk2410.org/mmk2410/dot-emacs][Gitea instance]]. - -So, a few days ago, [[https://blog.gitea.io/2023/03/gitea-1.19.0-is-released/][Gitea 1.90.0]] was released with an experimental feature called "[[https://blog.gitea.io/2023/03/hacking-on-gitea-actions/][Gitea Actions]]". This is a pipeline implementation like GitLab Pipelines or GitHub Actions. And since I didn't have anything better to do yesterday I decided to give this thing a try and publish my Emacs configuration using it. - -The [[https://gitea.com/gitea/act_runner][runner]] for Gitea Actions is an adjusted fork of [[https://github.com/nektos/act][nektos/act]] which is a tool for running GitHub Actions locally. This means that the Gitea Runner is largely compatible with the GitHub Actions Workflow format. If I understand it correctly, most GitHub Action definitions should "just" work without any adjustments. - -I followed to [[https://blog.gitea.io/2023/03/hacking-on-gitea-actions/][Guide from the Gitea Blog]] for enabling the feature in the Gitea configuration and installing the Gitea Act runner. Afterwards, I started migrating the pipeline script from the GitLab CI format to the GitHub/Gitea format. Since I never used GitHub Actions before I run into a few problems and misunderstandings before I had a successful configuration of the runner (as it turned out: the defaults work just fine, but my adjustments didn't) as well as the workflow action configuration. - -Given a successful runner installation and configuration, it is necessary to activate the Gitea Actions for the =dot-emacs= repository. - -[[file:../static/2023/2023-04-02-activate-actions.png]] - -Then I needed to declare some secrets for the publish job to deploy the changes to my server using =rsync=. At the moment I keep using the =gitlab-ci= user I already created and configured it. So I copied the four secrets =SSH_PRIVATE_KEY=, =SSH_KNOWN_HOSTS=, =SSH_PORT= and =SSH_USER= from GitLab to Gitea. If you're following, along save the variables somewhere else (e.g. a password store) since contrary to GitLab you are not able to view or edit Gitea Secrets after saving them. - -[[file:../static/2023/2023-04-02-set-secrets.png]] - -Now I can add and push my new Gitea workflow configuration, which I placed in the repository at =.gitea/workflows/publish.yaml=. - -#+begin_src yaml -name: Publish - -on: - push: - branches: - - main - -jobs: - publish: - runs-on: ubuntu-latest - container: silex/emacs:28.1-alpine-ci - steps: - - name: Install packages - run: apk add --no-cache rsync nodejs - - - name: Add SSH key - run: | - mkdir ~/.ssh - chmod 700 ~/.ssh - echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - echo "$SSH_KNOWN_HOSTS" | tr -d '\r' >> ~/.ssh/known_hosts - chmod 644 ~/.ssh/known_hosts - env: - SSH_PRIVATE_KEY: ${{secrets.SSH_PRIVATE_KEY}} - SSH_KNOWN_HOSTS: ${{secrets.SSH_KNOWN_HOSTS}} - - - name: Check out - uses: actions/checkout@v3 - - - name: Build publish script - run: emacs -Q --script publish/publish.el - - - name: Deploy build - run: | - rsync \ - --archive \ - --verbose \ - --chown=gitlab-ci:www-data\ - --delete\ - --progress\ - -e"ssh -p "$SSH_PORT""\ - public/\ - "$SSH_USER"@mmk2410.org:/var/www/config.mmk2410.org/ - env: - SSH_USER: ${{secrets.SSH_USER}} - SSH_PORT: ${{secrets.SSH_PORT}} -#+end_src - -Essentially, not much changed compared to the [[https://gitlab.com/mmk2410/dot-emacs/-/blob/1e51334059d0e91f51e795b1ff6973ca90dd2e77/.gitlab-ci.yml][GitLab CI version]]. As a base image, I decided to go with the [[https://hub.docker.com/r/silex/emacs][silex/emacs]] using Emacs 28.1 on top of Alpine Linux. I additionally restricted the job to only run when pushed to the main branch. While I didn't work with any other branches until now, this is a possibility I'd like to keep open without destroying the [[https://config.mmk2410.org][website]]. - -The rest of the workflow itself is still quite the same. First, we install necessary packages. We need =rsync= for uploading the resulting website to my server and =nodejs= for the =actions/checkout@v3=. Then I add the private key to the build job and this works a bit easier since a running =ssh-agent= is not needed (apparently for GitLab there was no way around this). After checking out the repository code I execute my [[https://git.mmk2410.org/mmk2410/dot-emacs/src/commit/d77f2c19f52964b44e13b5caa7f0483b74cf1b73/publish/publish.el][publish.el]] Emacs Lisp script that generates a nice HTML page from my [[https://git.mmk2410.org/mmk2410/dot-emacs/src/commit/d77f2c19f52964b44e13b5caa7f0483b74cf1b73/config.org][org-mode-based Emacs configuration]]. The last thing to do now just trigger the upload of the resulting files using =rsync=. - -Although the Gitea Action file is more verbose and longer than its GitLab equivalent I prefer it slightly due to the option to name the individual build steps. This is something I come to enjoy quite a bit from writing and using Ansible playbooks. - -Since the configuration is done and tested in a private repository with a modified upload path I removed the =.gitlab-ci.yml= file and push the changes to the Gitea repository. We can now see the running pipeline in the "Actions" tab. - -[[file:../static/2023/2023-04-02-running-action.png]] - -And with a click on the job title we can see the detailed execution and finally some nice green checkmarks. - -[[file:../static/2023/2023-04-02-running-action-details.png]] - -Interestingly, the whole run takes only 11s on Gitea compared to about 33s on GitLab.com. I don't know if the reason for this is the platform itself or the restriction of the public runners on GitLab.com. - -After running into a few problems initially due to my missing knowledge regarding GitHub Actions I enjoyed writing and optimizing the pipeline so well that I will not only keep this process but perhaps also migrate my other CI and CD jobs over. - -If you want to see the resulting page, head over to [[https://config.mmk2410.org][config.mmk2410.org]]. - -* DONE Quitting 100 Days To Offload :@100DaysToOffload: -CLOSED: [2022-03-07 Mon 16:08] -:PROPERTIES: -:EXPORT_FILE_NAME: quitting-100-days-to-offload -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-03-07 Mon 16:08] -:END: - -I was thinking a long time about this step. To be precise, I had my first doubts back at the end of January, just two or three weeks after starting the project. Although, the /reasons/ for considering quitting were a bit different back then than now. - -When I decided to jump into the project on January 9th I had my doubts that I will be able to keep up the writing speed to produce 100 blog posts in one year. Therefore, I set myself a task to write a new post every three days and this worked surprisingly well. I only once missed the deadline last Friday. So, during the last two months, I wrote a total of 20 blog posts, which would mean that I would finish in about ten months total if nothing unexpected happens. And even if I needed to stop for some time I would have enough breathing room. - -So, unreachability is and was not a reason for quitting. But what then? Well, at the end of January my doubts came from the output of my statistics dashboard. While I was writing posts that I thought had a certain quality the visitor numbers were not that high. One or two of my Emacs-related posts were added to the [[https://www.reddit.com/r/planetemacs/][/r/planentemacs]] subreddit and I think one was even featured on [[https://sachachua.com/blog/category/emacs-news/][Sacha Chua's famous weekly Emacs news]]. But besides that, there were no other popular sources which was quite de-motivating. Although, I have to admit that this is for the most part my fault since I only posted links to the blog post on [[https://fosstodon.org/@mmk2410][my Fosstodon account]] but not on any other service: neither using my lurking Reddit account nor tweeting from my more-or-less dead Twitter profile. - -However, as you can tell, I didn't stop back then but I decided to write at least 20 posts to feel the workflow and reactions instead of quitting too soon. But nothing changed since then and the twentieth post is now indeed my "resignation letter". - -But what is the final reason now? Well, there is not /one/, but a total of /three with different priorities/. - -** The Outcome Problem - -The /outcome/ problem described above is still something that bugs me, even if it is not my primary reason. Except for the last few posts (I come to that later) I spend some hours each time to write them: about 2-3 hours /without/ preparation (but this cannot be part of the calculation since I would have done these things anyway). That is a total of four to nine hours a week. - -The "founder" of the 100 Day To Offload project, [[https://kevq.uk/][Kev Quirk]] writes on the [[https://100daystooffload.com/][project website]]: - -#+begin_quote -“Someone will find it interesting.” -#+end_quote - -And I do agree with this statement. There are most probably even two or three people that found the posts I published during the last two months interesting. But is this worth the time I invested? - -For answering this question I decided to look in my Plausible analytics dashboard and if I subtract the incoming traffic related to r/planetemacs and Sacha Chua's Weekly Emacs News then the numbers are not that high anymore and the picture looks even a little bit darker if I also consider the bounce rate and visit duration. To be honest, there are of course much more visitors on my blog than I ever had and I'm also aware that there are even more since some blockers even block self-hosted Plausible instances. But the question is not resolved: Is it worth investing that much time? - -I don't think there is a clear answer. Of course, it is not possible to build a "highly popular" block in just two months, especially if the posts are only shared in one network. But it is also interesting, that there was nearly no engagement from the readers. I have to say, that I did expect more mails, boosts or messages on Fosstodon. Therefore, together with the other two reasons, I currently have my doubts that what I do at the moment is worth the time. - -** The Quality Problem - -I wrote earlier that I put about 2-3 hours into writing a blog post (without preparation). Well, it is more likely that this can be seen as an average over the last two months. Especially during the last week or two, my motivation to write was nearly at 0 and I didn't invest that much time in writing the posts. - -To put it in other words: the quality of my blog posts drastically decreased during the last two months. While I wouldn't say that my blog posts had a high quality at any point I think that during the first 1-1.5 months the readers of the articles could get some interesting or relevant information from most (if not all) posts. In my eyes, the outcome for the readers decreased continuously. - -Regarding this, I stumbled upon two quite different opinion. On the one hand, Kev Quirk writes on the [[https://100daystooffload.com/][100 Days To Offload website]] - -#+begin_quote -“Posts don't need to be long-form, deep, meaningful, or even that well written.” -#+end_quote - -On the other hand [[https://rusingh.com/][Ru Singh]] writes in her post [[https://rusingh.com/100-days-to-offload-end/]["An end to #100DaysToOffload"]] - -#+begin_quote -“I want to start fo­cus­ing a lit­tle on qual­ity again.” -#+end_quote - -The key between these different statements is the personal /goal of the own blog/. If my blog would have the goal to offer a window into my life then the project would be easy since I would not expect the posts to have any meaning or be helpful for someone. But this is not what I want to achieve with this blog. Even though it was a bit different in the distant past since a few years I want to post articles that are: - -- /Either/ *helpful* for someone and this includes a certain depth of the information; an example is [[https://mmk2410.org/2022/02/17/mirroring-my-gitea-repos-with-git-hooks-again/][my post on mirroring my Gitea repos using Git hooks]] - -- /Or/ state a *funded opinion* which would also require more text than just some "btw. I use Arch" (btw. I don't); an example /would/ be a post on why I don't use an ad blocker - - -But why did the quality of my post drop? It was not time, regarding this not much changed during the last two months (well, at least not directly but I'll discuss this in the next section). While I'm not entirely sure I think it's the same thing that also Ru [[https://rusingh.com/100-days-to-offload-end/][experienced]]: - -#+begin_quote -“And write when I /want/ to, in­stead of /feel­ing/ forced to do it every three days or once a week.” -#+end_quote - -But also the quality is not the number one reason why I decided to quit the project. - -** The Focus Problem - -Well, probably not the focus you're thinking and it also is not a problem. I'm sorry, but I wanted to keep the headline style... :D - -However, *focus* /is/ the /primary reason for quitting/. If you're one of the few persons that found and read my [[/uses][What I Use page]] or you had some spare time and read my [[https://mmk2410.org/about/][about page]] then you know that I have some interest besides coding, self-hosting or configuring my system or Emacs. - -As I wrote on many of my social projects: *I like doing creative things*. And while I also see developing software at least in some parts as a creative discipline (naming variables! Joke aside: e.g. problem solving requires being creative) I mainly mean the following areas: music composition, graphic design and photography. I've been interested in these things for a long time but during the last nearly seven years, I had not much time for it. But since I started working in November I have more time and the interest to invest time into these areas is rising steadily. - -The problem is just that I started many small "projects" (e.g. self-hosting, a few TYPO3 websites, an event, my unofficial IntelliJ Debian packages, playing around with Emacs, ...) during the last few years that while small constantly require some amount of time. But my urge to do more creative things is now that large that I want to invest a much larger amount of time in it than I currently have available. This is the /focus/ I want to switch: Away from coding, towards creative projects. - -This necessarily means that I will need to stop some things to have the time available that I want to invest. Together with the two reasons mentioned earlier (outcome and quality) it was clear to me that I will stop the #100DaysToOffload project. - -** Conclusion and Answers for Unasked Questions - -To summarize the last three sections: I quit the 100 Days to Offload project because the outcome for me is not what I wanted/hoped, the quality of the posts is decreasing (as well as the motivation) and mainly because I want to focus on other creative areas. - -What does this mean to the blog? Will it die? Of course, I won't write any further posts that are part of #100DaysToOffload. But this does not mean that it will die. Writing /is/ a creative discipline and I don't want to stop doing this entirely. There will be new blog posts: Maybe once a month, maybe once a quarter or maybe just once a year. But I won't write them so that I have something to publish. I will write them when I have a topic that I find is worthy of investing the time to write a meaningful and helpful blog post. It is also possible that I will extend the posts I've written during the last weeks so that these are also helpful for the readers. - -What does this mean for my other projects? I don't know at this point. Some will maybe die while others will persist, but perhaps with some changes. For example, the themes for the few TYPO3 websites I maintain won't go anywhere because I need them personally. The unofficial IntelliJ IDEA Ubuntu PPA / Debian packages will meet some drastic changes. Until the summer (perhaps even earlier) I want to automate the packaging and deployment process completely so that I don't need to do anything. If this does not work or the automation fails at some later point I cannot promise that I will maintain them any longer. But if this happens I will inform the users in advance. Regarding the Emacs rabbit hole, I'm not sure. Due to some graphical applications only being available on Microsoft Windows and macOS I'm nowadays more often using Windows than Linux. Always starting Emacs through WSL is slow and cumbersome and therefore always demotivates me a bit. Therefore I'm currently not entirely sure if I will switch back to Org-mode for task management at some point and I'm currently also trying Nextcloud Notes with MarkText for notes. But I still need Emacs for work (what else should I use for coding?!) and this won't change anytime soon. - -Why the hell did I spend time writing such a long blog post? After all, a single "I quite, want to do other things" would have been enough, wouldn't it? It probably would have but I felt that I needed to write this lengthy post. For me, it was a great way to sort my thoughts on this and also make my mind up regarding some parts. It may also be a good read for some people who are thinking about trying the #100DaysToOffload project to see the problems others had to deal with. If /you/'re currently thinking about doing this and you are certain about the kind of content you want to produce and the time you have I absolutely encourage you to do it! Although it was only two months it still was a great experiment for me and all in all I had some fun with it! The best part was the conversations I had with some readers who really provided some extremely helpful advice. In some way, I think that even though I didn't reach the goal of 100 blog posts (the goal is so far off it is not even visible) the project was a success. Not regarding the #100DaysToOffload idea, but personal growth. - -Will I try it again sometime in the future? This is something I don't want to rule out. It is indeed possible that I will again start a #100DaysToOffload journey but I won't be on this blog (or at least not while I have the same goals as I have now). - -At last, I want to finish this post with some final thoughts for my readers. - -- If you finished the #100DaysToOffload project yourself I have huge respect for you! - -- If you're currently in the middle of it I wish you the best of luck and a ton of fun as well as many nice experiences with your readers! - -- If you're thinking about starting or never even though about writing a blog I encourage you to do so! Even if you stop after just five or ten posts it is worth the experience in my opinion! And (although this comes from a quitter in this case) quitting something is not a bad thing! Quite the contrary: Not finishing things or dropping a project is something that /everyone/ goes through, forcing yourself to finish something against your will is a fight against yourself that you cannot win and that is certainly not worth some kind of "DONE" label. - - -/Day 20 (and also my last day) of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE hledger for personal finances: two months in :@100DaysToOffload:finance: -CLOSED: [2022-03-05 Sat 07:35] -:PROPERTIES: -:EXPORT_FILE_NAME: hledger-for-personal-finances-three-months-in -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-03-05 Sat 07:35] -:END: - -For years I wanted to use some kind of personal accounting system to keep track of where my money goes. This is perhaps mostly founded in some sick interest or based on the idea to better manage my expenses. However, I always failed to successfully implement such a system. I vaguely remember that I used some app once, but only for a short time. I already found some trace of an old Org document where I keep track of my incomes and expenses from January to mid-March of 2018. The last entry there is from March 17th, and I don't remember what happened back then and why I stopped. The most likely reason is, that I had too much to do and forgot to use it. - -I also remember that I looked at ledger once or twice and always wondered about the strange format and didn't go any further. Mostly because I didn't know, how to even start. Nevertheless, in early January (probably more or less exactly two months ago) I decided to start again with accounting. I chose to use hledger for this and so I made myself a warm cup of tea, leaned back and started to read the website and related blogs until I knew enough to get started. - -And then I did it! I started to add all my current financial belongings and entered all the expenses starting on January 1st. This was now over two months ago and every day since then I at least checked if there were new expenses and added them, if necessary. Since I have a tendency to quickly forget such smaller tasks I created two to-do recurring to-do entries in my system: one that recurring every day to update my ledger file and another one recurring each Sunday re-check the balance of my different accounts (banks as well as cash). - -So, did it help me in any way? I /think/ so... Through the book-keeping, I get a clear overview of two things that I could not check easily before: - -- How much money did I spend this month? Or: How much of my income is still left? -- How much money did I spend on /what/? - -Especially the answer to the second question gave me a much clearer understanding of my financial actions. Not only where I should cut back but also gave me an understanding that certain expenses are not as high as I thought (relatively speaking). But also the first questions helps me a lot to understand how I could use my money, e.g. by putting it into a savings account. - -Therefore, I'm really satisfied with hledger! Even if it doesn't save me money directly (which was never really my goal) it makes me understand my transactions better and therefore maybe save me some bucks indirectly. But also just the insight I get is worth the few minutes that I need every day for maintaining the system. - -/Day 19 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE My Emacs Package of the Week: CRUX :@100DaysToOffload:emacs: -CLOSED: [2022-03-01 Tue 20:05] -:PROPERTIES: -:EXPORT_FILE_NAME: my-emacs-package-of-the-week-crux -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-03-01 Tue 20:05] -:END: - -Some packages get mentioned over and over on different blogs and other Emacs related platforms. And other packages do not seem to get the same degree of attention (or at least I don't see it) although they deserve it. IMO one of these is *[[https://github.com/bbatsov/crux][CRUX]]*, which is most fittingly described as "a Collection of Ridiculously Useful eXtensions for Emacs" by its created, [[https://metaredux.com][Bozhidar Batsov]]. It does provide a large collection of helper functions that may assist you in all kinds of situations of your Emacs life. I think I stumbled upon the package when reading an Emacs configuration file of some other fanatic and added it to [[https://config.mmk2410.org][my configuration]] after some inspection. And I have not regretted it ever since! - -As with the functionality of Emacs itself I also only use a very small subset of the commands that CRUX provides. There are currently only five functions that I actively use (or intend to do so) out of the 32 ones that are currently provided. So I won't go into full detail above all of them but only shortly cover the ones that sweeten my daily use. - -- =crux-duplicate-current-line-or-region= which (as the name already says) duplicates the currently selected text or (if nothing is selected) the current line. I have it bound to =C-c C-.=. - -- =crux-duplicate-and-comment-current-line-or-region= is quite similar, it also does the duplication but also comments the current line or selection/region out. This helps me quite a lot when developing and wanting to test something slightly different for the current line. I bound this one to =C-c C-M-.=. - -- =crux-delete-file-and-buffer= is another small helper that not only deletes the current file but also its buffer inside Emacs leaving no trace left. Because I know myself and already cursed a lot while trying to restore completely deleted files and folders (if I remember correctly the theme of this blog once became the victim of such an accident during initial development and before the first Git commit) I deliberately decided to /not/ bind some key to this command. I rather executed it using =M-x=. - -- =crux-rename-file-and-buffer= on the other hand is a completely safe command that helps to rename a file and its associated buffer. Since I need to do this quite often I decided to bind it to =C-c M-r=. - -- =crux-top-join-line= is another small helper to join lines. This means that the line break and all whitespace (except one) is removed. To be honest, I don't use this yet but I have an urgent need for this functionality and will bind to some key quite soon. - -The funny thing is that the functions defined in =crux.el= are neither that large (or use many helper functions themselves) nor very complex. It would be quite easy to implement most stuff on your own and it would certainly provide a great opportunity for learning a bit of Emacs Lisp (and Emacs). And I'm sure many have implemented at least some functions on their own. While I must admit that from time to time I'm tempted to do the same I am really grateful that this awesome package exists so that I can focus on other things. - -If you have not heard, looked or tried CRUX for yourself then I can only recommend it and I encourage you to take a look and see what it can provide for you. - -/Day 18 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Using stow for managing my dotfiles :@100DaysToOffload:linux: -CLOSED: [2022-02-26 Sat 08:54] -:PROPERTIES: -:EXPORT_FILE_NAME: using-stow-for-managing-my-dotfiles -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-26 Sat 08:54] -:END: - -For [[https://git.mmk2410.org/mmk2410/dotfiles/commit/44f89359ecea53ba17b412b136a27a8ccd87eb38][more than four years]], I've been using a self-written [[https://git.mmk2410.org/mmk2410/dotfiles/src/commit/685e4dbe8bc6c33c5572f10d1673ca6e9c6a61fa/install.fish][installation script]] for linking my [[https://git.mmk2410.org/mmk2410/dotfiles][dotfiles]]. I didn't search for any pre-made solution back then but instead just tried to automate my workflow of creating a symlink for every file in the repository individually. Since I was a big fan of the [[https://fishshell.com/][fish shell]] back then (and I'm still one) I decided to use it for the script. - -The requirements were simple and clear: directories should be created if necessary and files need to get linked from the correct places. Since I didn't want to put all this information in one file (and a programming language is IMO not a good place to store data) I opted for two helpers files: =dirs.list= and =links.list=. The former just contained a list of directories (each on one line) that should get created, relative to the home directory. The links file contained two paths in each line, separated by a space. The first was the path to the actual file, relative to the dotfiles repo, and the second was the place where the symlink should get created, starting from the home directory. - -The script then first created the directories and afterwards the links. This worked quite well. OK... It worked well for one use case: the initial creation of the links. For new links, the script also worked but threw an error for each link that already existed. Additionally, there was no way to delete the links. Finally, I also constantly had to fight with some issues. - -After seeing and reading some people talk/write about [[https://www.gnu.org/software/stow/][GNU stow]] recently I decided to take a look at it and really liked the workflow. I found that stow is quite easy to use since the program only takes care of managing symlinks and nothing else. Thereby it solves all the shortcomings I had with my custom solutions: I can easily stow new configuration files and also remove all my symlinks. - -About my structure: For each application, I have a folder and there the dotfiles are stored in the same directory structure as to where the symlinks will get placed. Additionally, I have three repositories where I keep my dotfiles (a general one for all kinds of configs and two others containing additional sensible information: one for work and one for personal). I clone the general dotfiles repo to =~/.dotfiles= and have the relevant specialized repo inside there. This would mean that "stowing" every folder (aka package) manually would take too much time (and be very boring). - -Therefore I created myself a small [[https://git.mmk2410.org/mmk2410/dotfiles/src/commit/ef157712a14cc8da0d2356a133ce1ba97d5d1941/stow.sh][wrapper script]] (this time in bash since that's more universally available) that first iterates over the folders I want, executing =stow= on them. For this, I defined a variable holding a list of folder names that I can overwrite by passing an environment to the script. Afterwards, according to the hostname, either the additional work or private dotfiles are seeded using the same principle. - -I just implemented this approach yesterday and didn't have much time to use it thoroughly but until now I'm satisfied. - -/Day 17 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Small changes to my website design :@100DaysToOffload:design:web: -CLOSED: [2022-02-23 Wed 16:29] -:PROPERTIES: -:EXPORT_FILE_NAME: small-changes-to-my-blog-design -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-23 Wed 16:29] -:END: - -[[file:../static/2022/2022-02-23-old-website.png]] - -For some years until May 2020, I used WordPress for this site with the initial goal to focus more on writing instead of tweaking the templates. If you look in the archive of my blog you may see that this didn't work as intended. So nearly two years ago I decided to [[*Switching my Website to Hugo using ox-hugo][switch]] to a workflow that better suits my needs and set up this page using [[https://ox-hugo.scripter.co/][ox-hugo]] with [[https://gohugo.io/][hugo]] and a custom theme. - -Back then I was quite satisfied with how it looked and I didn't even change much regarding the design during the last two years. But since I started writing more and visited my page more often I realized that some parts are starting to look a bit dated. Currently, I don't want to create a whole new design (that may be a task for 2023) but tweak it in a way that the page looks somewhat modern again. - -The main parts that didn't feel right anymore were the large blocks with the solid purple background color (the navigation bar, the footer and the buttons) and I searched for a different solution there. In the end, I decided to cloth the footer in a modest dark gray and remove the background of the navigation bar completely. For the buttons, I went with a "bordered" design and gave them a nice shadow when hovering. Additionally, I took the sharpness out of the "page" by rounding the corners. - -I'm still not completely convinced with the overall appearance since it feels very "dry". What really would help were more images. But that's for another update. - -/Day 16 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Another Update on Publishing my Emacs Configuration :@100DaysToOffload:gitlab:cicd:emacs:orgmode: -CLOSED: [2022-02-20 Sun 19:39] -:PROPERTIES: -:EXPORT_FILE_NAME: another-update-on-publishing-my-emacs-configuration -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-20 Sun 19:39] -:END: - -A few weeks ago I [[*Publishing My Emacs Configuration][wrote a post]] about how I experimented with publishing my Emacs configuration (which is written in Org) using =org-publish=. [[https://mastodon.technology/@kaushalmodi][Kashual Modi]], the creator of [[https://ox-hugo.scripter.co/][ox-hugo]], replied to me and asked me if I thought about publishing the configuration using =ox-hugo=. I didn't! And it turned out that it was done by just adding three lines at the top of my Emacs configuration file as I wrote in a [[*Update on Publishing my Emacs Configuration][follow-up post]] a few days later. I was really astonished and didn't know what to do. Should I choose the =org-publish= or the =ox-hugo= path? - -Well, after writing the blog post I didn't invest much time in thinking about what solution I should use and just got on with other stuff. Until I made some changes to my Emacs configuration last week and wanted to display these changes online. At this point, I wanted some CI/CD solution so that I don't need to take care of the building and publishing manually. - -For some reason, it seemed a little bit easier for me to use the solution I wrote using =org-publish= instead of importing my [[https://git.mmk2410.org/mmk2410/dot-emacs][dot-emacs]] repository into the GitLab pipeline (for the sake of completeness: I know that this is not only possible but also quite easy but decisions don't need to be rational all the time ;) ). So I decided to quickly set up my own pipeline for the =dot-emac= repository using a slightly adjusted version of the [[*Publishing my Website using GitLab CI Pipelines][pipeline the builds and publishes my website]]. - -The resulting GitLab CI pipeline configuration (=.gitlab-ci.yml=) is quite easy (well at least the script for the build stage, admittedly the =before_script= is not that obvious). - -#+begin_src yaml -before_script: - - apk add --no-cache openssh - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir ~/.ssh - - chmod 700 ~/.ssh - - echo "$SSH_KNOWN_HOSTS" | tr -d '\r' >> ~/.ssh/known_hosts - - chmod 644 ~/.ssh/known_hosts -#+end_src - -I first define a ~before_script~ for setting up the SSH configuration for uploading the published files to my server. - -#+begin_src yaml -build: - image: silex/emacs:27.2-alpine-ci - stage: build - script: - - emacs -Q --script publish/publish.el - - apk add --no-cache rsync - - rsync --archive --verbose --chown=gitlab-ci:www-data --delete --progress -e"ssh -p "$SSH_PORT"" public/ "$SSH_USER"@mmk2410.org:/var/www/config.mmk2410.org/ -#+end_src - -Using the [[https://hub.docker.com/r/silex/emacs][Emacs Docker image from silex]] I run the =publish= Emacs Lisp script I wrote earlier, install =rsync= and upload the resulting website files in the =public= folder to my webserver. - -As you can see I again defined four SSH related variables: - -- =$SSH_PRIVATE_KEY=: The private key for uploading to the server. -- =$SSH_KNOWN_HOSTS=: The server public keys for host authentication. These can be found by executing =ssh-keyscan [-p $MY_PORT] $MY_DOMAIN= (from a trusted environment, if possible from the server itself). -- =$SSH_PORT=: The port at which the SSH server on my server listens -- =$SSH_USER=: The user as which the GitLab CI runner should upload the files. - -After a few stupid mistakes regarding the place of the =publish.el= script, the paths in the script and the =public/= folder I got it running quite fast and now always have my [[https://config.mmk2410.org][config.mmk2410.org]] page up-to-date. - -Regarding =ox-hugo=: As long as the scripts I wrote for using =org-publish= work I will probably continue using this solution. But if it fails someday in the future and/or I would need to make some larger adjustments I will more likely switch to =ox-hugo=. - -/Day 15 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Mirroring my Gitea Repos with Git Hooks, again :@100DaysToOffload:git:selfhosting: -CLOSED: [2022-02-17 Thu 18:37] -:PROPERTIES: -:EXPORT_FILE_NAME: mirroring-my-gitea-repos-with-git-hooks-again -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-17 Thu 18:37] -:END: - -** My Journey - -In August 2020 I started hosting all my Git repositories on my own Gitea instance after previously using it for my private projects for some time. Since a self-hosted Gitea instance is not very discoverable I decided to keep showing my repos on GitLab and GitHub. At this point, all my relevant GitLab (which I used as a main hosting platform before) projects already were mirrored to GitHub directly after each commit. So I decided to keep this part and only search for a solution for bringing the data from Gitea to GitLab. Since Gitea did not have anything built-in I searched a bit and finally found some posts showing a way how to achieve this with Git hooks. I also wrote a blog post about my setup back then. - -Last year Gitea 1.15 came out and included support for mirroring repositories and I decided to switch to that solution since it is much cleaner than using a~15 line Bash script for each repository. There's just one catch that didn't bother me until recently. Gitea currently doesn't have a feature to mirror after each push but uses a given interval (by default eight hours). For most projects, this is enough and for some that are a little bit more active, I reduced it to four hours. - -** My Problem - -A little bit over a week ago this became a little bit problematic since I'm using GitLab Pipelines for building and publishing my blog post. So after pushing to my Gitea instance I would need to wait for up to four or eight hours until the build finally starts. Of course, that's not what I did. - -I manually open the settings page for my Gitea repo and pushed the "Synchronize Now" button. - -This is clearly not a permanent solution and so I already thought about going back to my Git hook solution some days ago. And today I did it! At least for three repos that are either active and/or have a GitLab Pipeline configuration for publishing. - -The requirements are a little bit different this time: when switching from Git hooks to the built-in feature I also moved all GitHub mirror configuration from GitLab to Gitea since it doesn't make any sense to keep this configuration separated (and it's also no fun to configure this in the settings menus for every new project). So it is necessary that my new Git post-receive script pushes to both: GitLab and GitHub. - -** My Solution - -I initially started using my previous script and adjusted it a bit by using a for loop iterating over a space-separated string of repository URL which worked quite well. But shortly after starting to write this blog post, I had another idea. - -/Is it really necessary to put an SSH private key in the Git hook script in each repository?/ - -Well, the answer is no! It seems that I learned at least a bit during the last time I did this and so I connect to my server using SSH. Since I'm not hosting Gitea using Docker but using the binary it needs to have some "real" user running it. After a =cat /etc/passwd= I found out that it is not even a system user but a normal one with a normal home directory at =/home/git= where also all the repositories are stored. From there on it was quite clear: I switched to the user and created a set of SSH keys. - -#+begin_src sh -sudo -u git -i -ssh-keygen -t ed25519 -#+end_src - -I copied the /public/ key, added it to my GitLab and GitHub profiles and adjusted my post-receive Git Hook scripts to just push and not store a private SSH key. - -#+begin_src sh -#!/usr/bin/env bash - -set -euo pipefail - -downstream_repos="git@gitlab.com:mmk2410/dotfiles git@github.com:mmk2410/dotfiles" - -for repo in $downstream_repos -do - git push --mirror --force "$repo" -done -#+end_src - -The result is just a script with 10 lines that simply iterates over a list of repository URLs and force-mirror-pushes to each one of them. I don't need to care about any authentication in the scripts since it is executed using the =git= user and thereby authenticates to GitLab and GitHub using the previously generated SSH key. - -It's that easy that I'm really wondering why I didn't have this idea the last time. - -** And some final warnings - -A little note to everyone who wants to try this at home. If you're hosting a Gitea instance that multiple people use then you should *make sure that only you can add Git hooks*. Since *everyone who can define Git hooks can run every command on your system*. There is no additional security layer. That's also the reason why Git hooks are by default disabled in Gitea. Using the correct configuration option you can change this. - -Another note on performance, if you care for this: your =git push= executions will take longer since the post-receive hook on the server is run during the execution (at the end, of course, but still) and it may take a little while. I also don't know yet what will happen if one of the remote repositories (or their host) has a temporary outage. Be warned that your push command will probably hang if this happens. - -/Day 14 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Why I failed using Org-mode for tasks :@100DaysToOffload:orgmode:emacs:pim: -CLOSED: [2022-02-14 Mon 14:58] -:PROPERTIES: -:EXPORT_FILE_NAME: why-i-failed-using-org-mode-for-tasks -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-14 Mon 14:58] -:END: - -I started using [[https://www.gnu.org/software/emacs/][Emacs]] back in 2016 and shortly after that I discovered [[https://orgmode.org/][Org-mode]] a little while after (I don't know the exact date but I have tasks in my archive going back to 2018 and I know that I used it some time without the archiving functionality). For some time [[https://fosstodon.org/@mmk2410][my bio on Fosstodon]] even contained the line „couldn't survive without Org-mode“ and yet, since two months I haven't used it. - -Well, this is not entirely true. I still use Org-mode with its Agenda for tasks at work, I just stopped using it for my out-of-work things. OK... I need to make another slight adjustment to this statement. I didn't stop two months before, it was much earlier. Though I couldn't name an exact date or even a month. It was a gradual process. - -** Finding the Perfect Tool - -/„But why?”/ you may ask. - -There are two answers to be given here. On the one hand why I /stopped/ using it and on the other hand why I /failed/ using it in the first place. When I started using Org-mode it had an interesting effect on me: /it felt right/. I could adjusted it to my needs, I /really/ used it, I worked with the tasks and I could trust it. Storing a note in there was really reliable for me. I could count on the system that it would help me to deal with it and I was sure that it would not get forgotten in there. - -** Error: Task Overflow - -After some time (I think until 2019) this still worked perfectly but I didn't use it anymore for all my tasks. To be precise it became quite hard to deal with it. I worked with my tasks by scheduling every single one and at one point there were way too many tasks each day. I didn't re-schedule them to a later date, I just let them stay. At the end the list was far too long to deal with it anymore and so my usage slowly decreased. And a to-do system that is not used is not a good to-do system. - -A while later (I think it was 2020) I decided to reform the progress to make it usable again. My main decision was to /not/ schedule any tasks at all but using Org Super Agenda for grouping the tasks and make them easily discoverable. Well, this worked a little bit... I mean, it was not a total failure but it quickly became only a task management tool for larger projects and habits. Only a few smaller tasks had the “opportunity” to get added there. - -** Fleeing from the Beast - -Especially during the last quarter of 2021 I more and more recognized this. It went that far that I decided in early December that I cannot use Org-mode for To-dos anymore. At least not with this configuration and so I made myself a small plan to change this: - -1. Use a completely different tool for a limited time (for about one year) -2. Read up on task and to-do management -3. Recognize the problems with the old Org-mode configuration -4. Recognize the requirements for a task management tool -5. Configure Org-mode to fulfill these requirements -6. Switch back to Org-mode (after about one year) - -** Working from Exil - -I started immediately searching a tool that works flawlessly. I tried the tasks features of CalDav with my Nextcloud instance (and the Tasks app) as well with my email hosting provider mailbox.org. I could not work with it. It was much too complicated and UX-unfriendly for me to use this as a to-do-system. And so I finally decided to go with a tool that apparently works for millions: Todoist. Although I'm really not a friend of such centralized more or less privacy respecting companies but after using it for two months now I have to admit that it really works for me. It may be completely subjective but it seems to me as I would get more things done than ever before. At least I add all the to-dos I need to deal with and I always (OK, sometimes I forget to check of already done tasks in the evening) finish my day with all tasks either done or mindfully rescheduled. - -In the meantime I already started with the second step. I read a few articles online and bought the [[https://gettingthingsdone.com/][“Gettings Things Done” book from David Allen]]. Although I have not even finished the first chapter I can already get some value from it in how I create and manage my to-dos. - -** Diagnosing the Failure - -Regarding the third step: why did I *fail* to use it *twice*? Any I mean /fail/ and not /stopped/ since it was me who used and configured the system in a way that makes it unusable. - -Although I still don't have much experience I think that the main reason was wrong task management. Having a gigantic list of tasks in front of you is not motivating and doesn't help to actually work on them. Having many tasks (perhaps even the larger part) annotated with a message that the task was already scheduled some months ago and still occurs every day is also no motivation boost. And—regarding my second setup—not scheduling tasks but needing search through them every time I want to have something done is also not helpful at all. The nice and easy tasks get done then but the more difficult ones get lost in endless lists of to-dos. - -I'm still just at the beginning of the journey of learning more about task management and setting up my Org-mode in a way that works. Further articles about this will surely follow! - -/Day 13 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Using Emacs tab-bar-mode :@100DaysToOffload:emacs: -CLOSED: [2022-02-11 Fri 21:04] -:PROPERTIES: -:EXPORT_FILE_NAME: using-emacs-tab-bar-mode -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-11 Fri 23:04] -:END: - -Everyone knows tabs. From your favorite web browser, your file manager, your terminal emulator and perhaps many other programs. And if you know Emacs or heard anything about it you perhaps wouldn't be surprised if I told you the it has not one, but *two* tab modes. There is =tab-line-mode= which is equivalent to what we know from other editors or the browser: one "thing", file, windows, buffer, whatever per tab. - -But there is also =tab-bar-mode= which works a little bit different: instead of having one file per tab you have one window configuration per tab. Let's say we're working on three different projects at a time. Then we could have one tab (let's give it the name /dotfiles/) which has two windows (e.g. my zsh and fish configurations), split equally horizontally. Our next tab is named /API/ and contains three windows, two files and an eshell buffer (e.g. one horizonal split and in the left half an additional vertical split). And in the third tab there are our files corresponding to the frontend project. Let's say there is just one window taking the complete space. With =tab-bar-mode= it is now possible to switch between these tabs, making adjustments to the window layout going to another tab and still having the same configuration for this tab. For code projects I have exactly this workflow of using the tabs as workspaces. - -But I also use =tab-bar-mode= for some more general stuff. Normally I have one Emacs frame open where I actively work with (be it coding or writing or something else where my main attention goes to). And one frame (either on a second monitor, on another virtual desktop or just in the background) where I keep stuff like mail or agenda. To get a good overview and quickly switching between these “meta” buffers I have an own tab for each of them: - -- *Mail* with [[https://www.djcbsoftware.nl/code/mu/mu4e.html][mu4e]] -- *Agenda* with [[https://orgmode.org/][Org]] -- *Journal* with [[https://github.com/bastibe/org-journal][org-journal]] -- *Random org file* with relevant notes, e.g. my =projects.org= file -- *IRC* with [[https://www.gnu.org/software/erc/][ERC]] -- *RSS* with [[https://github.com/skeeto/elfeed][Elfeed]] - -Although I don't necessarily have all of them open all the time. - -The problem is just that it is quite cumbersome to initially open them. I need to create a new tab with =C-x t 2= and the run the required command, e.g. =C-c m= for starting mu4e. With about six open tabs switching is also not that efficient. I could tab around using =C-TAB= or =C-SHIFT-TAB= or search with =C-x t RET= (this presents a search field with completion for the open tabs). - -*What really would be handy where some keybindings for switching to a certain tab that also creates and runs the necessary commands if the tab doesn't exist yet.* - -This itched me already some months ago and initially I wrote a large function which would open all the tabs and start the clients or open buffers. Additionally I had a small command for each of them that would switch to the correct tab and bound them to a keybinding. While it was working somehow at some point I constantly started commenting out parts of the large initial run function because I didn't want to run necessarily everything if I only need a mail client and an agenda. - -Yesterday I took some time to find a better solution for this problem and came up with a few handy functions. - -#+begin_src emacs-lisp -(defun mmk2410/tab-bar-switch-or-create (name func) - (if (mmk2410/tab-bar-tab-exists name) - (tab-bar-switch-to-tab name) - (mmk2410/tab-bar-new-tab name func))) -#+end_src - -In working through the problem I though that I essentially need some more or less abstract function that checks whether a tab with a given name already exists and, if not, creates one using a given function. =mmk2410/tab-bar-switch-or-create= does exactly this. - -#+begin_src emacs-lisp -(defun mmk2410/tab-bar-tab-exists (name) - (member name - (mapcar #'(lambda (tab) (alist-get 'name tab)) - (tab-bar-tabs)))) -#+end_src - -After browsing the source code of =tab-bar= a bit and reading some Emacs Lisp pages I came up with this little helper for determining if a tab with a given name already exists. It uses the function =(tab-bar-tabs)= which returns all exiting tabs as a list of /attribute lists/ over which I iterate (=mapcar=) and extracted the tab name (=alist-get 'name tab=). The =member= function now tells me if the given name is a member of the list of all names of existing tabs. - -#+begin_src emacs-lisp -(defun mmk2410/tab-bar-new-tab (name func) - (when (eq nil tab-bar-mode) - (tab-bar-mode)) - (tab-bar-new-tab) - (tab-bar-rename-tab name) - (funcall func)) -#+end_src - -The tab creation part was a bit easier. I wrote a this simple function which enables =tab-bar-mode= in case it is not already running, creates a new tab with the given name and runs the given function for setting the new tab up. - -What's left to do? Writing the specific functions for the different programs or files. Essentially all are interactive (this means that I could also execute them via =M-x=) and call =mmk2410/tab-bar-switch-or-create= with a tab name and either a function name, e.g. =elfeed=, or a lambda function with some instructions. The following blocks show the functions I have currently configured. - -#+begin_src emacs-lisp -(defun mmk2410/tab-bar-run-elfeed () - (interactive) - (mmk2410/tab-bar-switch-or-create "RSS" #'elfeed)) - -(defun mmk2410/tab-bar-run-mail () - (interactive) - (mmk2410/tab-bar-switch-or-create - "Mail" - #'(lambda () - (mu4e-context-switch :name "Private") ;; If not set then mu4e will ask for it. - (mu4e)))) - -(defun mmk2410/tab-bar-run-irc () - (interactive) - (mmk2410/tab-bar-switch-or-create - "IRC" - #'(lambda () - (mmk2410/erc-connect) - (sit-for 1) ;; ERC connect takes a while to load and doesn't switch to a buffer itself. - (switch-to-buffer "Libera.Chat")))) - -(defun mmk2410/tab-bar-run-agenda () - (interactive) - (mmk2410/tab-bar-switch-or-create - "Agenda" - #'(lambda () - (org-agenda nil "a")))) ;; 'a' is the key of the agenda configuration I currently use. - -(defun mmk2410/tab-bar-run-journal () - (interactive) - (mmk2410/tab-bar-switch-or-create - "Journal" - #'org-journal-open-current-journal-file)) - -(defun mmk2410/tab-bar-run-projects () - (interactive) - (mmk2410/tab-bar-switch-or-create - "Projects" - #'(lambda () - (find-file "~/org/projects.org")))) -#+end_src - -I also wrote, that I want to have these functions available with some keybinding. A few days ago I first dealt with [[https://github.com/abo-abo/hydra][hydra]] and I have to say, that I really like it! Therefore I chose to define a hydra configuration for these functions that are accessible with =C-c f=. - -#+begin_src emacs-lisp -(defhydra mmk2410/tab-bar (:color teal) - "My tab-bar helpers" - ("a" mmk2410/tab-bar-run-agenda "Agenda") - ("e" mmk2410/tab-bar-run-elfeed "RSS (Elfeed)") - ("i" mmk2410/tab-bar-run-irc "IRC (erc)") - ("j" mmk2410/tab-bar-run-journal "Journal") - ("m" mmk2410/tab-bar-run-mail "Mail") - ("p" mmk2410/tab-bar-run-projects "Projects")) - -(global-set-key (kbd "C-c f") 'mmk2410/tab-bar/body) -#+end_src - -After using it a little bit today I'm quite satisfied. There are just a few things I would like to change, e.g. I want to have the journal and agenda in the same tab. But I think this will be easy to achieve. Another thing that I may want to add is a possibility to replace or use the current tab instead of creating a new one. But I'm currently not sure how I could do this nicely. - -As you may or may not already recognized: I don't have much experience in writing Emacs Lisp code and there are certainly things that could be improved. If you have some suggestions feel write to write me a mail! - -/Day 12 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* Publishing my Website using GitLab CI Pipelines :@100DaysToOffload:hugo:emacs:orgmode: -:PROPERTIES: -:EXPORT_FILE_NAME: publish-website-gitlab-ci-pipelines -:EXPORT_DATE: [2022-02-08 Tue 21:14] -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-08 Tue 22:05] -:END: - -I wrote some posts recently, like [[*Update on Publishing my Emacs Configuration][“Update on Publishing my Emacs Configuration”]], where I mention that my current workflow of deploying changes to my website can be improved. Well, I could /always/ improve it, but this is one of the more urgent things. - -** The Status Quo - -Currently after I writing some blog post or changing a page I export it by calling the relevant =ox-hugo= exporter using the Org export dispatcher. This places the exported files in the =content= directory. When I'm ready to publish I run my “trusty” script which removes the current public folder (the place where hugo dumps all its files), runs hugo to generate all files from scratch and uploads it with rsync. - -There is just on problem with this approach. I'm often using a different environment than the last time to edit the site. Sometimes I use another laptop, sometimes another operating systems and sometimes even both. I don't want to switch them /just/ for writing a blog post but I want to use what's currently running. For publishing the source code, working with multiple environments and not at last to have some version control keep my website in a Git repository. If you ever used Git with more than one machine you know that forgetting to pull before starting to work on something (or in even worse situations after making a commit) happens almost on a regular basis. While its no fun to deal with this, at least you realize it. Git /will/ scream at you until you get it right. - -But there's another thing that doesn't scream. That doesn't say one word: Blog posts and updated sites that are *not* exported don't scream. They are /that/ quiet that I only notice it by chance if they are missing on the website after uploading my page. And belief me: this did not happen only once! - -“But why don't you just include a script to export everything before publishing?” - -Because it takes horribly long. I have over 100 blog posts and 366 posts from my Project 365 in 2015. So some other solution is obviously needed! - -** The new workflow - -This “other solution” is called *continuous deployment*. Let me outline shortly what I want. While I host my Git repositories on my [[https://git.mmk2410.org][Gitea]] instance and only mirror to [[https://github.com/mmk2410][GitHub]] and [[https://gitlab.com/mmk2410][GitLab]] I currently have no own continuous integration / pipeline runner (I tried [[https://woodpecker-ci.org/][Woodpecker]] but don't want to run it on my main server and I don't need it that much that it is worth renting another VPS). So I decided to use GitLab Pipelines for this. The pipeline will run on every push and thereby build and deploy the website. - -*** The Export Script - -For the build step I wrote a short Emacs Lisp script that I'll discuss in parts. - -#+begin_src emacs-lisp -(package-initialize) -(add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/") t) -(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) - -(setq-default load-prefer-newer t) -(setq-default package-enable-at-startup nil) - -(package-refresh-contents) -(package-install 'use-package) -(setq package-user-dir (expand-file-name "./.packages")) -(add-to-list 'load-path package-user-dir) -(require 'use-package) -(setq use-package-always-ensure t) -#+end_src - -The first part (well, nearly half the script) installs and loads the necessary packages. I added the Non-GNU ELPA and MELPA as package archives since I most likely need packages from them in the future, although currently only need [[https://ox-hugo.scripter.co/][ox-hugo]] which is available on MELPA. I install and load the packages using [[https://github.com/jwiegley/use-package][use-package]] since in my opinion this provides a clean structure. - -#+begin_src emacs-lisp -(use-package org - :pin gnu - :config - (setq org-todo-keywords '((sequence - "TODO(t!)" "NEXT(n!)" "STARTED(a!)" "WAIT(w@/!)" "SOMEDAY(s)" - "|" "DONE(d!)" "CANCELLED(c@/!)")))) -#+end_src - -Of course I load [[https://orgmode.org/][Org]] and also define my =org-todo-keywords= list. =ox-hugo= will respect this and only export posts that don't have a keyword or have a keyword from the done part (the entries after the =|= (pipe)). To be honest I'm currently not using this feature for published blog posts since posts with a to-do-state would be visible in the public repos anyway. But I wanted to write the script as general as possible. - -#+begin_src emacs-lisp -(use-package ox-hugo - :after org) -#+end_src - -For using =ox-hugo= I'm using =ox-hugo=, duh... - -#+begin_src emacs-lisp -(defun mmk2410/export (file) - (save-excursion - (find-file file) - (org-hugo-export-wim-to-md t))) -#+end_src - -Then I define a small function that opens a given file and calls the =ox-hugo= exporter which exports the complete content (all posts/pages) of the current file. - -#+begin_src emacs-lisp -(mapcar (lambda (file) (mmk2410/export file)) - (directory-files (expand-file-name "./content-org/") t "\\.org$")) -#+end_src - -And finally I run this function for every file in my =content-org= directory. Currently there are only three but who knows what will happen in the future. - -*** The Pipeline Configuration - -For the upload SSH configuration I followed the [[https://docs.gitlab.com/ee/ci/ssh_keys/][corresponding GitLab documentation]]. - -I started by creating a new user on my server and—using that user—a new SSH ed25519 key pair. Then I added the public key to the =~.ssh/authorized_hosts= file and granted the user rights to write to the root directory of my website. Afterwards I defined some necessary CI variables in GitLab for connecting with this user. - -- =$SSH_PRIVATE_KEY=: The private key for uploading to the server. -- =$SSH_KNOWN_HOSTS=: The servers public keys for host authentication. These can be found by executing =ssh-keyscan [-p $MY_PORT] $MY_DOMAIN= (from a trusted environment, if possible from the server itself). -- =$SSH_PORT=: The port at which the SSH server on my server listens -- =$SSH_USER=: The user as which the GitLab CI runner should upload the files. - -Using these variables I can now write my =.gitlab-ci.yml= pipeline configuration. - -#+begin_src yaml -variables: - GIT_SUBMODULE_STRATEGY: recursive -#+end_src - -Since I keep [[https://gitlab.com/mmk2410/nextdesign/][my own hugo theme]] in an own repository and import it as a Git submodule I can ask GitLab to by nice and clone it for me. - -#+begin_src yaml -before_script: - - apk add --no-cache openssh - - eval $(ssh-agent -s) - - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - - - mkdir ~/.ssh - - chmod 700 ~/.ssh - - echo "$SSH_KNOWN_HOSTS" | tr -d '\r' >> ~/.ssh/known_hosts - - chmod 644 ~/.ssh/known_hosts -#+end_src - -The script then continues with a lot of SSH voodoo. After installing OpenSSH and starting the =ssh-agent= I add the private key and the public server key as a known host. - -#+begin_src yaml -build: - image: silex/emacs:27.2-alpine-ci - stage: build - script: - - emacs -Q --script .build/ox-hugo-build.el - - apk add --no-cache hugo rsync - - hugo - - rsync --archive --verbose --chown=gitlab-ci:www-data --delete --progress -e"ssh -p "$SSH_PORT"" public/ "$SSH_USER"@mmk2410.org:/var/www/mmk2410.org/ -#+end_src - -Then it gets a little bit more obvious. Using the [[https://hub.docker.com/r/silex/emacs][Emacs 27.2 Alpine Image by silex]] I already get the necessary Emacs installation and just need to run the Emacs Lisp script from above with it. Then I install the necessary dependencies for the next steps. First I build the page with =hugo= and finally upload the resulting =public/= directory to my server using =rsync=. Thereby I define the ssh command with =-e= since there seems to be no other way to set a SSH port. Using the =--delete= option I also remove posts and files that I removed from the repo or that are no longer build. - -#+begin_src yaml - artifacts: - paths: - - public -#+end_src - -As a small gimmick I also publish the =public= directory of my website as a build artifact. There is no reason at all for this but I first started only building the blog a few days ago and didn't implement the deploy part until today. Maybe it will come in handy some day or I delete that part sooner or later. - -You can find the complete files [[https://gitlab.com/mmk2410/mmk2410.org][in my repository]]. - -** Next Steps - -While Gitea currently has a mirror feature it runs on a timer and not after each push. This means that I would either wait quite some time for Gitea to push the changes to GitLab or trigger the sync manually using the web frontend. Currently I'm doing the second one but this is not a good solution. I currently think about going back to my own workflow by declaring a server-side Git post-receive hook for mirroring. - -Another step is improving the =gitlab-ci.yml= file. Adding rules to only run the pipeline on pushes to the main branch and splitting the one step into a build and a deploy step are things that I want to do quite soon. - -Finally I also need to decide whether to continue publishing my Emacs config using Org publish and the config.mmk2410.org subdomain or whether I want to use =ox-hugo= for exporting to the =/config= path. In the later case I would need to further adjust the pipeline configuration and otherwise I would need to write an own pipeline. - -As always, I'll keep you posted! - -/Day 11 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE My Emacs package of the week: org-appear :@100DaysToOffload:emacs:orgmode: -CLOSED: [2022-02-05 Sat 08:37] -:PROPERTIES: -:EXPORT_FILE_NAME: my-emacs-package-of-the-week-org-appear -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-05 Sat 08:37] -:END: - -It may be a little boring for some, but the second post in my “My Emacs package of the week” series is again about an Org-mode package (well, if you follow my blog you shoudn't be surprised). I use org mode a lot (though I used to use it more (a blog post about this is coming soonish)) and so from time to time I notice some things that I would like to be a little bit different or I stumble upon packages (either because I see someone else using it, by browsing some social networks or by reading my RSS feed, e.g. [[https://sachachua.com/blog/category/emacs-news][Sacha Chua weekly Emacs news]]; This one I found in the [[https://config.daviwil.com/emacs][Emacs configuration of David Wilson]]). - -Next to functionality I also like to have a somewhat comfortable editing environment. Therefore I'm trying to use =variable-pitch-mode= since a few months (for those who don't know what this is: it changes the font to something that is not fixed width, in my case currently Open Sans) and also the [[https://github.com/integral-dw/org-superstar-mode][org-superstar-mode]] to display nice UTF-8 bullets instead of just some raw stars =*=. Using ▼ for collapsed sections instead of the default =...= also makes the view a little bit nicer. - -Additionally I took a bit of configuration from the [[https://github.com/daviwil/emacs-from-scratch/blob/master/Emacs.org#center-org-buffers][System Crafters' Emacs from Scratch config]] for narrowing the text width so that I can also edit my text with Emacs being maximized or displayed full screen. - -#+begin_src emacs-lisp -(defun efs/org-mode-visual-fill () - (setq visual-fill-column-width 100 - visual-fill-column-center-text t) - (visual-fill-column-mode 1)) - -(use-package visual-fill-column - :hook (org-mode . efs/org-mode-visual-fill)) - -(add-hook 'org-mode-hook (lambda () - (display-line-numbers-mode -1) - (variable-pitch-mode))) -#+end_src - -Finally I'm hiding the all emphasis markers such as =*, /, ==: - -#+begin_src emacs-lisp -(setq org-hide-emphasis-markers t) -#+end_src - -Now what I see looks quite clean and makes writing at bit nicer (or at least I think so...). For e.g. writing blog posts I use Emacs in full screen and additionally narrow the buffer using =org-narrow-to-subtree= which makes the whole process quite distraction free. - -Although this may sound very nice, *there is some part about this that regularly drives me nuts!* Can you spot it? - -It is the hidden emphasis markers! While it really looks clean when they are hidden It makes emphasised content hard to edit. Especially if I need to change something at the beginning or end or even delete the markers. This is a constant play of "Well, lets try starting to delete here... Hmm, no didn't work... What about here?... Still not... Here? Aaah, finally!!!". As you can image there are better things in life. [[https://github.com/awth13/][awth13]] apparently thought the same and created a package to solve this annoyance: [[https://github.com/awth13/org-appear][org-appear]]. - -What =org-appear= does is showing the emphasis marker only when needed. This means when my cursor is at the emphasised content. Therefore the problem of finding the markers or editing the content at the beginning or end of the emphasised section becomes easy again. - -Therefore I decided to install the package and enable it for all =org-mode= buffers. The package is available on Melpa. - -#+begin_src emacs-lisp -(use-package org-appear - :after org - :hook (org-mode . org-appear-mode)) -#+end_src - -If I open a new Org file now I see it (more or less) nicely formatted but I'm still able to edit my document effortlessly without any annoyances (or at least without any annoying hidden or shown emphasis markers). - -[[file:../static/2022/2022-02-05-org-appear-text.gif]] - -Though =org-apper= offers some more options than displaying the emphasis markers on “hover”. It is also possible to toggle the full display of links (URL + description with the brackets instead of just the description) by setting ~org-appear-autolinks~ to ~t~. Other toggling possibilities include keywords (as defined in ~org-hidden-keywords~), entities and submarkes (i.e. subscripts and superscripts) toggling. - -[[file:../static/2022/2022-02-05-org-appear-link.gif]] - -The customization options don't stop there. It is also possible to customize a delay for the markers to appear after the cursor entered the emphasised part by defining ~org-appear-deplay~ and/or to only toggle in certain circumstances e.g. after a change was made. It is even possible to take the complete control over the “toggling” by setting ~org-appear-trigger~ to ~manual~ and using the ~org-appear-manual-start~ and ~org-appear-manual-stop~ functions (perhaps by binding them to some key(s)). - -For me personally the default settings are perfect. I don't want to configure a delay since this may be too slow in certain situations and I prefer the default behaviour of =org-insert-link= for setting or updating links. All in all the package is a very good addition to my workflow and I can only recommend it to everyone in need for a similar solution. - -/Day 10 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Update on Publishing my Emacs Configuration :@100DaysToOffload:emacs:orgmode:hugo:web: -CLOSED: [2022-02-02 Wed 20:42] -:PROPERTIES: -:EXPORT_FILE_NAME: update-on-publishing-my-emacs-configuration -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-02-02 Wed 20:42] -:END: - -After posting [[*Publishing My Emacs Configuration][my last blog article]] about [[https://config.mmk2410.org][publishing my Emacs configuration]] on [[https://fosstodon.org/@mmk2410/107713146343224636][Fosstodon]], [[https://scripter.co/][Kaushal Modi]] (the maintainer of [[https://ox-hugo.scripter.co/][ox-hugo]] the org mode to hugo exporter that I use for my Blog) [[https://mastodon.technology/@kaushalmodi/107713857727538025][wrote me]] and brought the idea up to publish my Emacs configuration using =ox-hugo= and hugo. I didn't even think about that and so the same evening I tried it. If you've read my previous blog post you know the amount of code and work that is necessary to get [[https://orgmode.org/manual/Publishing.html][org-publish]] running, with =ox-hugo= I need to add the following three lines on top of my =config.org= file. - -#+begin_src org -,#+HUGO_SECTION: config -,#+HUGO_BASE_DIR: ~/projects/mmk2410.org/ -,#+EXPORT_FILE_NAME: index -#+end_src - -That's all, you may wonder? Well... I also need to export the file. For me these are the keys: =C-e H H= (If you're normal that is: =CTRL+e= followed by =H= and again followed by =H=). *That's it*. Crazy, isn't it! Running =hugo serve= and navigating to =http://localhost:1313/config= (yes, you currently (as of 2022-02-02) find this version of the config at [[https://mmk2410.org/config][mmk2410.org/config]], but don't share or save this link as I may or may not remove the page soon, use [[https://config.mmk2410.org][config.mmk2410.org]] for this) showed my complete configuration nearly the same as by using org-publish. The only difference is that the slight theme adjustments I made for the org-publish configuration are not there (duh...) and there is no table of contents. But the TOC is another problem anyway since it is in my opinion too large to -display directly on the page, as I already wrote in the other post. - -The other "next step" I mentioned there was to automatically run the org-publish configuration and publish the new config page after pushing a change. This is also something I need to do with my blog. I currently write blog posts from two different machines and three different operating system installations and remembering to run a =git pull= via Magit before starting to write is already hard enough for me. Since my hugo publish script only runs =hugo= to build the site but not Emacs and =ox-hugo= in advance to export the latest state of the posts I uploaded an incomplete website more than once last month. So either I adjust the script to run some Emacs snippet for running =ox-hugo= (and including the config export would be easy there) or I go the “DevOps” way and configure a pipeline that runs on every commit, exports the articles, builds the page and publishes it somehow. So the automating task is also something that I need to do anyway. - -This puts me in a difficult position: what should I do? On the one hand org-publish approach is very "emacsy" and therefore fits the project of publishing a Emacs configuration really well, on the other hand it is by far easier to use ox-hugo for this. I'm still not sure what to do but I want to decide quite soon since the current workflow of manually publishing two websites slowly starts to annoy me. Especially since I do edits on both quite often. - -I'll keep you posted! - -/Day 9 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Publishing My Emacs Configuration :@100DaysToOffload:web:emacs:orgmode: -CLOSED: [2022-01-30 Sun 20:19] -:PROPERTIES: -:EXPORT_FILE_NAME: publishing-my-emacs-configuration -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-01-30 Sun 20:19] -:END: - -** Introduction - -As you may know, I'm using Emacs for various task and I have a [[https://git.mmk2410.org/mmk2410/dot-emacs][configuration]] for doing so. I think that /documentation/ is an important part of a configuration, especially if it is not something I read or work with every day and I want to read up on certain things and decisions after a long time. That's why I chose to write my Emacs configuration using [[https://en.wikipedia.org/wiki/Literate_programming][literate programming]] by using [[https://orgmode.org/worg/org-contrib/babel/intro.html][Org Babel]]. This means that I have one large Org-mode file (currently 2265 lines) with headings, texts and Emacs Lisp source code blocks which are my actual configuration and which will get read and evaluated on Emacs startup. There are multiple ways for achiving this and I adopted the approach taken by [[https://github.com/novoid/dot-emacs#literate-configuration-my-tangling-approach][Karl Voit]]. - -Writing such a configuration is not done on the first day of using Emacs and so during the past years I have probably learned most things I know about Emacs by reading config files of other users and I'm really grateful for all the people who made their responding Git repository public. - -[[https://config.daviwil.com/emacs][There]] [[https://tecosaur.github.io/emacs-config/config.html][are]] [[https://sachachua.com/dotemacs/][some]] [[https://config.phundrak.com/emacs.html][people]] with a literate configuration who didn't stop at this point and even made a website from their config. The funny thing about this is that it is actually quite easy to achieve. The four people I've linked and many more all have their config file written in Org mode and Org mode allows for [[https://orgmode.org/manual/Exporting.html][exporting]] to various formats (there are a few built-in and many more available as additional packages). For a more advanced exporting functionality it is possible to configure a project for [[https://orgmode.org/manual/Publishing.html][publishing]]. This is not limited to a configuration file! It's also possible to write a blog just using the Org-mode publishing feature, or a thesis or a novel or something entirely different. The sky is the limit. And so I also fell down further in the Emacs rabbit hole and wrote a configuration to publish my configuration as an HTML website. - -** How it works - -/Note: I will discuss the implementation/configuration in parts (and not everything). You can find the complete code in my [[https://git.mmk2410.org/mmk2410/dot-emacs/src/branch/main/publish][Emacs config repo]]./ - -Starting off was easy because conceptually it was quite clear how it should work and what I need (I also looked into the [[https://github.com/SystemCrafters/org-website-example][SystemCrafters Org Website Example repo]] and the [[https://github.com/SystemCrafters/wiki-site][SystemCrafters Wiki repo]] a while back): - -- *An =org-publish= configuration* that defines how the HTML page should be build given the =config.org= Emacs configuration. -- A small *Emacs Lisp file for running the build process* since I prefer it to export from an own headless Emacs instance with own variables and perhaps even packages that I don't need (or even want) in my main Emacs instance. The file is also needed for running Emacs in a way that it doesn't show up but only processes the instructions. -- A *shell wrapper script* that starts Emacs and tells it to only run the Emacs Lisp file containing the =org-publish= configuration and its execution. -- Some *style sheets* so that the result looks at least half-way decent. -- A *shell script for uploading* the outputted files to my VPS. - -*** Shell Wrapper Script - -I started with the easy part: the shell wrapper script: - -#+begin_src shell -#!/bin/sh -emacs -Q --script ./publish.el -#+end_src - -The =-Q= flag tells Emacs to ignore all system or user configuration so it starts as a blank slate. The =--script ./publish.el= option tell Emacs to load and process the =publish.el= file. That's it! - -*** Emacs Lisp File and Org-publish Configuration - -Now let's focus on this file which contains the =org-publish= configuration as well as some supporting code. - -First of all I define some variables, like additional HTML-Head entries, the directory where to write the output and the header (which only includes my name with a link to my website). Then I re-create the output directory: - -#+begin_src emacs-lisp -;; Note: I'm using a variable for the path in the code. -;; But since this is an excerpt I find the explicit notation clearer. -(when (file-directory-p "/tmp/dot-emacs-publish/") - (delete-directory "/tmp/dot-emacs-publish/" t)) -(mkdir "/tmp/dot-emacs-publish/") -#+end_src - -Next the more annoying part of the config. Since I run Emacs with the =-Q= flag none of the already installed packages are used and also my config file is not parsed. While this is what I want I need to configure the package management myself. - -#+begin_src emacs-lisp -(setq-default load-prefer-newer t) -(setq package-user-dir (expand-file-name "./.packages")) -(package-initialize) -(add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/") t) -(package-refresh-contents) -(package-install 'htmlize) -(add-to-list 'load-path package-user-dir) - -(require 'org) -(require 'ox-publish) -(require 'htmlize) -#+end_src - -Org and =ox-publish= are already part of Emacs and the included version is enough for my needs. So I only need to install =htmlize= which I will use later for source code highlighting. - -After this more basic stuff I can now define my =org-publish-project-alist= containing the definition for the export. - -#+begin_src emacs-lisp -(setq org-publish-project-alist - `(("dot-emacs:org" - :base-directory "~/.emacs.d" - :publishing-directory ,mmk2410/dot-emacs-publish-publishing-dir - :exclude ".*" - :include ("config.org") - :publishing-function org-html-publish-to-html - :section-numbers nil - :html-doctype "html5" - :html-head-include-default-style nil - :html-head-include-scripts nil - :html-head-extra ,mmk2410/dot-emacs-publish-html-head-extra - :html-html5-fancy t - :html-preamble ,mmk2410/dot-emacs-publish-html-preamble - :html-self-link-headlines t - :html-validation-link nil - ) - ("dot-emacs:static" - :base-directory "~/.emacs.d/publish/assets" - :publishing-directory ,mmk2410/dot-emacs-publish-publishing-dir - :base-extension "css\\|woff\\|woff2\\|ico" - :publishing-function org-publish-attachment - :recursive t))) -#+end_src - -I declare two “projects”. The =dot-emacs:org= is the one that handles the export of the Emacs configuration. Using the combination of =:exclude= and =:include= allows me to first exclude /all/ files and then re-include only my =config.org=. Thereby, I can ignore my =README.org= and potentially other files ending with =.org= that I create in the future unless I add them explicitly. The other definitions are not that interesting and their meaning is already well explained in the Org mode documentation. The =dot-emacs:static= project just copies (that's what the =org-publish-attachment= function does) all file in the base directory with the given extensions to my output directory. One thing I learned while writing this part (since my only experience with Emacs lisp is writing configurations) was the way to use variables in this definition. Apparently they need to get prefixed with a comma and the list with a backtick. Just using an apostrophe won't do it. - -That's all the configuration that Is need for running the Org publisher. So we can run it! - -#+begin_src emacs-lisp -(org-publish-all t) -#+end_src - -The final bit of the script is a little difficult (not the implementation but the future impact). By default Org-mode outputs the files with the same filename except the extension, of course. At the moment my config page only has one configuration and therefore I rename the outputted =config.html= to =index.html=. But this may change in the future and thereby may result in broken links... I apologize in advance but at this point I don't want to invest time in creating a landing page that just has this one item for the foreseeable future. - -*** Style Sheets - -But I'm not done at this point! While the output works it does not look that nice. Org-mode brings a little bit of styling but that is extremely basic. So I needed a solution for this. Since I'm currently more or less satisfied with the design of this blog I decided to use the style sheets and adjust them to work with the output of Org. Only a few search-and-replaces (and a slight change to the =h3= style) later the config page looked like this blog post. - -Including the necessary fonts and a normalization style sheet was also very easy. I just copied the corresponding files from [[https://git.mmk2410.org/mmk2410/nextDESIGN/][my Hugo theme]]. - -*** Source Code Highlighting - -As it turned out getting the syntax highlighting to work was the hardest part (since I didn't want to use a JavaScript library to handle that). There is the [[https://github.com/hniksic/emacs-htmlize][emacs-htmlize]] package which is capable of doing this and it has also an integration to Org-mode (and also the other way around). The problem is that it is intended to use it when Emacs is already running as a full instance since it uses the font definitions for generating the theme. And these are not available when running Emacs headless. - -Normally =htmlize= outputs inline CSS when using. But for solving my problem it is better to tell it to only write the class names to the HTML file. This will also work for the build process. The following code snipped does exactly that and I added that in before my =org-publish-project-alist= definition in =publish.el=. - -#+begin_src emacs-lisp -(setq org-html-htmlize-output-type 'css) -#+end_src - -This part works. But where to get the CSS definitions? There's a function for that! =org-html-htmlize-generate-css= opens a new buffer with all CSS definitions necessary for syntax highlighting. But that would be too easy, wouldn't it? Well, =htmlize= thought the same way and aborted with the message: =face-attribute: Invalid face: tab-line-tab=. Searching the internet yielded no results and so I started “debugging” it: open a new Emacs instance with the =-Q= flag, install and load =emacs-htmlize= and run the function. To my surprise it worked. After some fiddling around I found out that the doom themes caused this problem. When using the Gruvbox themes it worked! Since using the Gruvbox color scheme was my goal anyway this problem was solved and I generated two CSS files: one using Gruvbox Light and one using Gruvbox Dark. I then combined the two files into one with =prefers-color-scheme= media queries. Only the background color was missing for some reason. After adding that definition the source code highlighting for the config export also worked. - -*** Upload shell script - -As of now all files are generated locally and I need some way to upload them. Since I already have a upload script for my blog I took that and deleted the Hugo related parts. Now the file only contains a =rsync= execution. - -** Next Steps - -The complete configuration and publishing setup took an evening and at the end I wanted to go to sleep. So there are a few things that I want to do if I have the time. - -First of all I want to *automate* the publishing and upload process. After each time I push a new commit to my Emacs config repo the HTML publishing should run automatically and also deploy the new files. Some folks use GitLab or GitHub Pages for this but I like to host it myself. Others may use something like GitLab Pipelines or GitHub Actions to build and publish a Docker container containing the exported files and a lightweight webserver. But I don't like that approach either (I don't dislike Docker in general but I think its overkill for this). - -This means I need another solution, at least for deployment. For the build process I know that at least the GitLab CI can output artifacts. I could store the exported files there. Since I currently don't have an own CI instance I would perhaps use GitLab for this. For deployment I would need to configure a webhook that is triggerd once the pipeline is finished and the build artifacts are ready. I don't know if GitLab has such a feature but I think that its possible. The rest would be easy. A small PHP script could get triggered by the webhook and trigger a bash script for downloading, extracting and replacing the files (or the PHP script could do this). - -Another solution would be to run the publish script on the VPS where also my web server is running. This would make the deployment extremely easy and the build could be triggerd by a webhook from my Gitea instance. A small PHP script could then trigger the build process. Why PHP? I could write it in one file and my Apache webserver takes care of running it. I don't need a reverse proxy, another open port or some other crazy stuff. After all I only want to check some token and execute a shell script! - -Another thing that needs improvement is the *navigation* on the page. Currently on top there is a long table of contents (TOC) and then the contents themselves follow without any way to look at the TOC again. This is not very good UX (actually the GitHub rendering of the =config.org= file currently does a better job at this than the website to be honest). - -** Conclusion - -Now for the long awaited link to my configuration: [[https://config.mmk2410.org][config.mmk2410.org]] - -I'm really curious if the new published form will help someone but even if not it was fun to create it! It will also be fun to deal with the next steps and if I get to a point where I don't even need to do anything and it keeps working I don't see any reason to abandon the HTML publication even if no one uses it... - -/Day 8 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE Update on my Org-roam web viewer :@100DaysToOffload:emacs:orgmode:dev: -CLOSED: [2022-01-27 Thu 22:51] -:PROPERTIES: -:EXPORT_FILE_NAME: update-on-my-org-roam-web-viewer -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-01-27 Thu 22:51] -:END: - -About one and a half weeks ago I [[*New Project: Accessing my Org-roam notes everywhere][announced]] that I'm going to start a new (code) project for viewing my Org-roam files over the web (especially on mobile devices). Since then surprisingly much happened and so I want to give a short status update. - -First of all I chose a working title for the software: /brainengine/. However, I'm not quite sure why. Especially the /engine/ part since it doesn't power anything. Though the /brain/ makes sense since some people (myself included) refer to Org-roam and similar software as their second brain. But the name may change. - -Concerning the perhaps more interesting stuff: I made at lot more progress during last and this week that I expected. To be precise: as of know nearly ever core functionality works. Although I went a different route in the end. - -My initial goal was to create a “classic” client-server application using [[https://go.dev/][Go]] for the backend and [[https://alpinejs.dev/][Alpine.js]] with [[https://tailwindcss.com/][tailwindcss]] for the frontend. That's why I started writing an API with Go in the first place. Parallel (and initially completely unrelated) I worked through the new [[https://quii.gitbook.io/learn-go-with-tests/go-fundamentals/html-templates][Templating tutorial]] of [[https://quii.gitbook.io/learn-go-with-tests/][Learn Go with tests]] by [[https://quii.dev/][Chris James]] and started thinking if I maybe should use this for a start. And so I started playing around wit Go's HTML templating and as of this evening I not only have a API (that I don't use and perhaps not even need) but also an HTML representation to my Org-roam files. Both have the same feature set: - -- Get a list of all notes (with title) -- Search through all notes (full-text) -- View a note (with rendered Org content) - -And I did neither use Alpine.js nor tailwindcss in the end but only Go and [[https://bulma.io/][Bulma]] for some basic styling. - -Concerning the underlying concept nothing has changed compared to the original idea. Every single function (except reading a file) uses some Linux/UNIX command line tool in the end. =bash + ls= (with globbing) is used for getting a list of all Org-roam file (this will be the first thing for which I want write a Go-only solution) and =grep= for searching through the files and the getting the title of a node as well. Sadly the code is currently still that crappy that I'm not willing to share it yet. Perhaps I will only open-source the final application since the current implementation is only a proof-of-concept (I wanted to see where this approach might fail and I have to say: nowhere! Even the load times are by far fast enough for now). - -Of course there are currently still some things that do not work or are not yet implemented: - -- Currently the links in the parsed org content are working. This is perhaps the biggest bug currently and the one which I want to fix next. -- The potential source or reference of a node that is stored as a =ROAM_REFS= property is not shown. This is needed since I sometimes have a need to visit the source or reference of a note. -- The information that is put in the =+filetags= field in the sources files is not display. Since I separated my notes using this I need it. Perhaps even with a filter or a search option. -- I have quite some notes with LaTeX formulas that are not rendered. I need to search for a solution for this at some point. - -Besides these four points there are certainly many other things that I need to improve. I'll write again a blog post once there are new things to tell. - -/Day 7 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE RSS aggregators and a hard decision :@100DaysToOffload:programs:selfhosting: -CLOSED: [2022-01-24 Mon 21:17] -:PROPERTIES: -:EXPORT_FILE_NAME: rss-aggregators-and-a-hard-decision -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-01-24 Mon 21:17] -:END: - -If you read my previous blog posts you may think “Boy, what a nerd. Only writes about Emacs. Doesn't he have a life???” and honestly I couldn't even be mad on you. But---jokes aside---as a matter of fact there is more. And so I though I should also write some blog posts about other stuff. For a totally unrelated topic I decided to write about my usage of RSS aggregators today (and no, although I use [[https://github.com/skeeto/elfeed][elfeed]] with [[https://github.com/fasheng/elfeed-protocol][elfeed-protocol]] from time to time there won't be any further mentions of Emacs in this post...). - -The thing is that I soon or later need to make a difficult decision about which RSS aggregator/reader I should use. Currently I'm running two of them but let me start from the beginning. - -** The long and boring background - -I started using RSS quite some time ago, I think it was 2013 or 2014 and initially used some kind of desktop program (I don't remember what it was, perhaps [[https://lzone.de/liferea/][Liferea]] but I'm not entirely sure). - -This worked quite well until I've gone travelling for a few days and needed another solution for reading my feeds during that time. Back then I had no idea about self-hosting and also didn't have an own VPS or similar (and also not the money for it). So I looked around and settled for /feedly/ which worked quite well on desktop and mobile if I remember correctly. - -I kept using it for a long time until maybe around 2015 or 2016 when I became more interested in privacy and self-hosting. Back then I found [[https://tt-rss.org/][Tiny Tiny RSS]], setup my own instance and lived with it for quite some time. It was a long time ago but I cannot remember any larger problems I experienced with it I only know that I found the design quite underwhelming. I remember centering the login form because I found it that off-putting... - -At some later point (I think late 2017) I had less and less time available for managing my self-hosted services and moved many things into my Nextcloud instance and the [[https://apps.nextcloud.com/apps/news][Nextcloud News App]] became my replacement for TT-RSS. In the beginning it worked quite well but over the years many problems occurred: from random feeds that stopped updating to a bug that regularly showed already read items from various feeds (and also a large amount of entries). Nevertheless, for completeness sake I want to add that the Android app is quite well done! Better than anything else I have used (except the feedly app which also was not bad). - -In the end the later problem became that annoying that I really wanted to switch away. Sorting out an unknown number of already read items from the far past up to yesterday became more and more frustrating. As a result I finally started to earch for alternatives in the first half 2021. I tried a few and at the end only [[https://miniflux.app/][Miniflux]] and [[https://freshrss.org/][FreshRSS]] fitted my needs. I first tried out Miniflux but could not get the feed updating configured correctly, experienced a (relatively)high CPU load from it and finally gave up. FreshRSS on the other hand was easy to setup and suited me quite well and so I switched to it. - -What annoyed me about FreshRSS was always the really outdated design and since some other people on [[https://fosstodon.org/about][Fosstodon]] (btw. a great place to be) where quite happy with Miniflux I decided to give it another shot and set it up again in early October 2021. My primary purpose was just to try it out but somehow I got stuck with it. Because another person is also using my RSS aggregator “hosting” I didn't shut down FreshRSS back then. - -** The difficult problem - -So since October last year *both* are running: FreshRSS and Miniflux. After a few months with Miniflux I quickly went back to FreshRSS about a week ago and I have to say: I don't have a problem with either one! I just know one thing: I don't want to keep hosting two services of the same type. Not because I run out of resources but I like to keep my setup clean and not have any unused services lying around. Therefore, I need to decide which to keep and which to throw away. And that's the point where it gets really difficult! Let's start a highly opinionated comparison. - -** Miniflux - -First the *good* things. Miniflux has a really clean design which enables reading the news without any distractions and, thanks to the gesture support, its also a joy to use it on mobile since I don't use any apps (neither for Miniflux nor for FreshRSS, because there are no good ones IMO). Due to the design choices the load time are also great. - -But the best feature that Miniflux has for me is the Pocket integration. I use Pocket a lot to save articles for reading them later and it is that well integrated that I only need to type one letter or press one button and then its saved. No other windows that opens, no other action that I need to do. - -But not every is good, there are also some things I quite *dislike*. While the design is very clean I'm not completely satisfied. I think its a little bit to bleak and looks kind of unfinished to me. I can live with it but I realize it often. - -A bigger annoyance is the feed management. There is no clear overview of all feeds but only a long list with an interesting sorting (the only way to find something is by using the browser search) and this is kind of important to me since I currently follow 205 feeds (I get nearly exclusively all my news using RSS and the number only goes up). I also have one feed that works flawlessly in FreshRSS (and also earlier in every other tool that I used) but constantly fails for Miniflux. - -No longer an issue since I resolved it somehow but still something that wonders me is the polling algorithm. There are quite a few different settings for configuring this. The default scheduler sounds interesting: the feeds that are updated the most are pulled more often. While this makes sense I was never able go get it working: no matter what configuration (except the following one) I tried I was never able to get my feeds updated, some where always updated and other never (and I let it run for a few days to test). I currently have it setup with a =BATCH_SIZE= of 250 and a polling frequency of 15 minutes to have my feeds regularly updated. This apparently also makes it necessary to adjust the =POLLING_PARSING_ERROR_LIMIT= (or just disable it since a feed failing for an hour is not some that unusual). My mistake that I found out about this just now and not earlier. However, I'm really curious how these default values where chosen and how the hosted Miniflux service is configured to work for the clients. - -** FreshRSS - -FreshRSS is also not perfect, but there are some *good* parts anyway. One thing where its IMO better is the subscription management. I have a good overview of all feeds in their respective category and can easily reorder them using drag and drop (or by using a dropdown menu, of course). Another welcoming feature that I don't use that often but which comes in handy from time to time is the display of idle feeds. - -Really personal but nevertheless important: the "normal view" that combines what Miniflux splits as a list and a detail view is combined. I see the current list of entries and the excerpt of the one I'm currently focused on. Since I get quite some news (around 270 per day, on weekdays normally over 350) I cannot read all of them completely (or even the excerpt) and therefore just skim over them. Since the skimming is sometimes faster than me pressing "j" (and always faster than pressing the "next" button on mobile) for the next article to focus the combined list but helps me to get more quickly through the list. - -On the *bad* side there are obviously some things. All included designs really look dated and this bugs me. I have less and less energy (or perhaps patience) to look at ugly things over and over. I currently use the Ansum theme and this is at least somewhat OKish. - -What I also dislike is that the interface as a whole is more convoluted and harder to use. Gladly I don't need to go through the menus that often. Concerning the user interface I also miss the gesture support on mobile devices that Miniflux has. - -Something that might play a role in the future although I currently don't care much are the feed item filtering capabilities: Miniflux seems to be more advanced in this area. - -Finally I'm not that happy with the sharing capabilities. As I wrote earlier I use Pocket a lot and really would need some way to add articles there with just one click or keyboard shortcut. Currently I'm opening them all in tabs while skimming and add them manually later which is obviously quite annoying. - -** Conclusion - -First of all I need to say that both tools (and also all the others I mentioned) are great! I'm extremely grateful for all maintainers, developers and contributors behind these projects. Most, if not all, problems described here most likely exist due to personal preferences or perhaps misconfigurations. That's why I will not search for yet another tool that might handle some of my problems better. - -But the problem still exists: Which tool to keep and which to get rid off? - -While perhaps I could solve the theming problem and the Pocket integration in FreshRSS quite easily it would still mean more work and maintenance than just living with Miniflux. Right now I'm a little bit more for sticking with FreshRSS but I didn't decide yet. - -I'll keep you posted! - -/Day 6 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE My Emacs package of the week: orgit :@100DaysToOffload:git:emacs:orgmode: -CLOSED: [2022-01-21 Fri 18:42] -:PROPERTIES: -:EXPORT_FILE_NAME: my-emacs-package-of-the-week-orgit -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-01-21 Fri 17:53] -:END: - -As you may now I [[*100 Days To Offload][joined the 100 Days To Offload challenge]] and therefore need some content. Since it seems that I always write about stuff that is more or less connected with Emacs anyway I though I could start a series called "My Emacs package of the week" where I present some package I stumbled upon recently or I used for quite some time but is interesting enough to show. I intend to do this weekly (at least during the challenge) but I cannot promise that I find a package every week that I want to present. - -However, this weeks package is *[[https://github.com/magit/orgit][orgit]]* by [[https://github.com/tarsius][Jonas Bernoulli]] (the guy that also maintains [[https://magit.vc/][Magit]], the one and only Git interface). What does it? It defines Org link types for linking to Magit buffers from Org mode. - -So, why is it may favorite package of the week? When I develop software I like to keep track of the tasks I would like to achieve (of course using Org) and I found out that I also really like to write down my thoughts on tasks that come to me over time. So when I finish a chore the Org entry sometimes resemble more a story than just a todo. Since it is still software development "behind"" the scenes, Git plays an important role. In the past when I pasted commit SHAs I usually linked to the corresponding commit in the remote but I would prefer it, if takes me to my local clone instead. So I searched quickly earlier this week and was quite surprised and happy that the first result was from the Magit GitHub organization. - -Since the last days were a little bit busy I first had no time to try the package and later decided that I could combined this with a blog post. So lets start by loading it with [[https://github.com/jwiegley/use-package][use-package]] (I have [[https://melpa.org/#/][Melpa]] configured but it is also available on [[https://elpa.nongnu.org/nongnu/orgit.html][NonGNU ELPA]]). - -#+begin_src emacs-lisp -(use-package orgit - :after (magit org)) -#+end_src - -The package itself provides only one command which may be interesting further down the road: =orgit-store-link=. Reading the documentation it acts the same as the =org-store-link= function but not storing a link to one commit but to all selected commits. For now I only want to link to one commit. Since the file I'm writing this very blog post into is actually stored in a Git repository this is obviously the best example to start. After opening my Magit status buffer with =C-x g= (that is holding the control key while pressing =x=, letting go of both and pressing just the =g= letter).I went to the "recent commits" section, open the commit of my [[*New Project: Accessing my Org-roam notes everywhere][previous post]] and got the link to it using =org-store-link= (I have it bound to =C-c l= but not sure if I or Org did this). Afterwards I can insert the link using =org-insert-link= (=C-c C-l=) and here it is: - -#+begin_src org -[[orgit-rev:~/projects/mmk2410.org/::e1b5ee5496fe7147c77985ac5f49e8bb7f4d4725][~/projects/mmk2410.org/ (magit-rev e1b5ee5)]] -#+end_src - -Opening this link using =org-open-at-point= (=C-c C-o=) brought me directly to the Magit buffer for the revision. For just linking to the Magit status buffer of my project I can execute the =org-store-link= command right after opening it. - -#+begin_src org -[[orgit:~/projects/mmk2410.org/][~/projects/mmk2410.org/ (magit-status)]] -#+end_src - -And visiting it works just the same! - -But there is currently a problem. When exporting an Org buffer e.g. to Markdown to upload it to a team wiki or something else, Org checks whether the links are resolvable and fails for the orgit ones. Makes sense since nobody else can open my Magit buffer from a Wiki (at least I hope so!). But this is where orgit gets really good: it has built-in support for exporting these links and this is also enabled by default. There is just one catch why it does not work for me. orgit uses by default the remote named =origin= (this can be customized by setting =orgit-remote=) and creates the real HTTP links using the predefined forges and their base URLs. Since I use my own self-hosted [[https://gitea.io/en-us/][Gitea]] instance it is clear that Orgit dos not know a base URL for it. So lets adjust the =orgit-export-alist= variable that stores this configurations by adding a definition for my Gitea instance. - -#+begin_src emacs-lisp -(add-to-list 'orgit-export-alist - '("git.mmk2410.org[:/]\\(.+?\\)\\(?:\\.git\\)?$" ;; the regex to match the remote - "https://git.mmk2410.org/%n" ;; The link to the status - "https://git.mmk2410.org/%n/commits/commit/%r" ;; The link to the log. - "https://git.mmk2410.org/%n/commit/%r")) ;; The link to the revision -#+end_src - -As written in the documentation for =orgit-export-alist= it is also possible to set these values using the =git config= command with the keys =orgit.status=, =orgit.log= and =orgit.commit=. Thereby only the =%r= (the revision) must appear in the string of the last two keys. The =%n= in the code above will get expanded to the path of the project. Using this configuration the exporting works and I can now also link here to my projects overview page and the commit of my last blog post (/Update 2021-02-03: Well, at least in theory and also locally. But since I'm now probably building my block using a GitLab CI pipeline the links to not work since Orgit cannot find the directory in the link location. Therefore I needed to remove the links./). - -That's it! I sure will integrate this package into my workflow and Emacs configuration and I hope you enjoyed this brief presentation. - -P.S.: If you 're already a heavy user of Magit then I would like you to consider [[https://github.com/sponsors/tarsius][sponsoring Jonas]]. - -/Day 5 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* DONE New Project: Accessing my Org-roam notes everywhere :@100DaysToOffload:pim:orgmode:emacs: -CLOSED: [2022-01-18 Tue 20:10] -:PROPERTIES: -:EXPORT_FILE_NAME: new-project-accessing-my-org-roam-notes-everywhere -:END: -:LOGBOOK: -- State "DONE" from "TODO" [2022-01-18 Tue 20:10] -:END: - -Currently my information storage "strategy" is a disaster. I have four (at least I think so, maybe even more) places where I write down information: - -- A single [[https://orgmode.org/][org]] file called =notes.org= which is synchronized across my devices (including mobile) using [[https://syncthing.net/][Syncthing]]. This contains 14 first-level Org headings and apparently 617 headings in total. -- A [[https://www.orgroam.com/][Org-roam]] directory which is also synchronized across all devices using Syncthing. Currently it contains 266 notes. -- A private [[http://moinmo.in/][MoinMoin]] wiki running on my [[https://en.wikipedia.org/wiki/Virtual_private_server][VPS]]. Most of the pages there I have not touched in a long time and the only thing I still actively use it for is storing recipes (where I also will move to another solution, but not org based since multiple people need to work with it) and the documentation for my self-hosted services. -- The [[https://apps.nextcloud.com/apps/notes][Notes]] app in my Nextcloud instance. There is one shared note and five other more or less useful ones. - -Sounds funny? Well... There is a tiny problem: I have no good structure where I put or find what kind of information. While I started using Org-roam for my bachelor thesis I added also various other things in there afterwards. The =notes.org= file contains something from nearly every possible topic: from cocktail recipes over server administration to conference notes. A similar interesting collection of randomness is also presented in my wiki. Only the Notes app is quite empty. There is one shared note that perhaps won't go anywhere else and a few other notes that I created there for perhaps no reason at all and that I should move to one of the other three blackboxes sooner or later. - -But even with "only" three systems this is not something to work with. That is why I set myself the goal to move every note into Org-roam. Why? Mainly because I quite like the approach to only store and link stuff without thinking too much about hierarchy. Time that is invested into thinking /where/ to store the note instead of writing it is IMO wasted. - -There is only one problem that I need to solve before I migrate everything. Although the notes are (in theory) also available on my tablet and my smartphone I cannot really access them. Importing all the files into [[http://www.orgzly.com/][Orgzly]] would either not work or would make the app useless for its original purpose (agenda and todos). Accessing them via an Emacs instance in [[https://termux.com/][Termux]] would work but is much too cumbersome and also not usable with touch gestures. To make it short: I need some other way. - -I looked a bit around yesterday and found some solutions like [[https://www.orgroam.com/manual.html#Configure-org_002dmode-for-publishing][using org-publish]], [[https://github.com/jethrokuan/braindump][doing crazy shit with ox-hugo]] or [[https://www.amoradi.org/20210730173543.html][other]] [[https://hugocisneros.com/blog/my-org-roam-notes-workflow/][dark]] [[https://doubleloop.net/2020/08/21/how-publish-org-roam-wiki-org-publish/][magic]]. I also had the idea to use [[https://github.com/org-roam/org-roam-ui][org-roam-ui]], the frontend for working directly with the notes made by the [[https://github.com/org-roam][Org-roam team]]. While these are certainly really good solutions especially for a research knowledge base I think that my requirements are a little bit different. I currently don't plan to put my notes in Git (I think that I would be too impractical) and I expect that I have at least some regular situations where I need the notes that I wrote at my computer nearly instantly available from a mobile device. These two requirements together rule out the usage of any continuous integration system, be it based on org-publish, ox-hugo or something else. Besides that my requirements are not that high. In beginning I don't need a graph and even backlinks are something that I don't think are too important when viewing the notes on the go. What I want is a lightweight web application with a search (filename/title and fulltext), potentially filters for filetags and a nice display of a note. - -After I searched and my requirements were clear I decided to start building something myself. So yesterday evening I started developing a proof-of-concept app. As a techstack I plan to use [[https://go.dev/][Go]] for the backend and perhaps [[https://alpinejs.dev/][Alpine.js]] for the frontend, combined with some CSS framework (at least for the start, at the end I will do a complete custom design as always) which I did not choose yet. Maybe I will try [[https://tailwindcss.com/][tailwindcss]] for this. The part of the backend I already wrote is currently more or less just a bare Go HTTP server as a wrapper around some bash commands, e.g. =ls /my/roam/dir/*.org= or =grep -rl search /my/roam/dir=. I have my doubts that this will function well if I want more features and that I need to switch to some indexing sooner or later but for the proof-of-concept it should be enough. - -Sadly as of now the project is way too crappy to publish it somewhere but during the next weeks I will continue working on it and hope to have something ready to use and show at the end of February (there's no year mentioned for a reason... ;) ). I'll keep you posted! - -/Day 4 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* Improving my new blog post creation :@100DaysToOffload:emacs:orgmode:hugo: -:PROPERTIES: -:EXPORT_DATE: [2022-01-15 Sat 18:35] -:EXPORT_FILE_NAME: improving-my-new-blog-post-creation.md -:END: - -In my [[*How this post is brought to you...][last post]] I wrote that it is currently quite cumbersome for me to start writing a new blog post. There are mainly two reasons for that. The first is opening the file. While this sounds quite unimpressive it does not make fun to navigate three directories from my home until I can open it. At least not if you can avoid it. The more annoying part is that I need to define the complete structure and metadata information by myself. For a standard blog post this looks like that: - -#+begin_src org -,* My new blog post :@mycategory:mytag1:mytag2: - :PROPERTIES: - :EXPORT_DATE: [2022-01-15 Sat 17:24] - :EXPORT_FILE_NAME: my-nifty-title.md - :END: - - Finally I can start writing! -#+end_src - -To be honest I don't have to type everything by hand. I can use =ALT + ENTER= at the top of my file to create a new headline and then use =C-c C-q= (that is =CTRL+c CTRL+q= for normal people) to set the category and the tags. Additionally I have some help for settings the =EXPORT_DATE= and =EXPORT_FILE_NAME= using the =org-set-property= command which is bound to =C-c C-x p= and gives me a list of common options to choose from. - -Even using these helpers it does not quite feel that great. But [[https://orgmode.org/][org mode]] has another feature which makes this a breeze: [[https://orgmode.org/manual/Capture-templates.html][capture templates]]. These are templates that one can define in the personal Emacs configuration and access using another keyboard shortcut. I have configured org to present me a list of my capture templates by pressing =C-c c= and then the letter of the corresponding template. - -[[file:../static/2022/2022-01-15-org-capture-select.png]] - -What I want to do now is to create a new capture template just for starting a new blog post. After some playing around I got the correct cryptic combination that works for me. - -#+begin_src emacs-lisp -(defconst mmk2410/blog-posts-file - "~/projects/mmk2410.org/content-org/blog.org" - "Position of my org file containing all blog posts.") -(add-to-list 'org-capture-templates - '("b" "Blog post" entry (file mmk2410/blog-posts-file) - "* %^{Title} %^g\n:PROPERTIES:\n:EXPORT_DATE: %^{EXPORT_DATE}U%^{EXPORT_FILE_NAME}p\n:END:" - :prepend t :empty-lines 1 - :immediate-finish t :jump-to-captured t)) -#+end_src - -But what exactly does it do? I think the first three lines are still very obvious, even if you have no prior experience in Emacs Lisp: I define a constant to hold the path to the org mode file which contains my blog posts. But then it gets a little bit more difficult. I add a new entry to the list =org-capture-templates= with the key =b= and the description /Blog post/. This will show up in the org capture template select dialog you saw in the image above. Then I state that I want to create a new entry (that means a heading in this context) in the file which path I defined. Still quite easy. - -But what about that ugly string? That is the template itself and quite hard to read (and write)! Let's break it apart. The =*= is just the org syntax for a first-level headline. Following that we have =%^{Title}=. When I use the template org expands all elements in the template string that start with a =%=. With the first expansion I tell org to display me a prompt asking for a title. Following that I have =%^g=. This is also a prompt, but a predefined one! It will ask for keywords, i.e. my category and my tags, giving me some completion options using the already existing ones. The =\nPROPERTIES:\n:EXPORT_DATE:= is just a literal string which starts the properties block and adds necessary line breaks. Similar as the title prompt =%^{EXPORT_DATE}U= asks for a export date and the =U= tells org to expect a date time and it presents a nice prompt with helpful completions. Following that there is a =%^{EXPORT_FILE_NAME}p=. This time the string inside the curly braces is not only the name of the prompt to display but also the name of the property to set. Why a property? Because of the =p= at the end! I would have liked to also set the date with such a =p= prompt and to automatically generate the export file name based on the title but for neither of them I found a solution quickly. The template string ends now with a line break and closes the properties block with =:END:=. What is generated then looks exactly like my example from above (of course only I if put the same information in...)! - -There are still four things to explain. =:prepend t= tells org to put the new entry at the top of the file (the bottom would be the default but I like to have my blog post sorted descending). =empty-lines 1= keeps an empty line above and below the entry. I like this to have a little bit separation between all the headlines. =:immediate-finish t= and =:jump-to-captured t= are kind of a combination here. Normally org mode presents the capture process completely isolated from any content and afterwards returns to the file you edited before choosing the template. In this case I would like to see all other blog posts (e.g. for referencing or copying). So I request to immediately finish the capture process after filling out all prompts, open the file where the new entry was created and put my cursor at the headline of the new post. - -That's it! So I could fulfill both my wishes that I wrote at the start of the blog and I'm now able to more quickly start writing (or drafting) a blog post. - -/Day 3 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -** Update 2022-01-16 - -After posting a link to this post on my [[https://fosstodon.org/@mmk2410][Mastodon]] account the creator of =ox-hugo=, [[https://scripter.co/][Kaushal Modi]], [[https://mastodon.technology/@kaushalmodi/107628728895838695][replied]] and pointed me to the documentation which [[https://ox-hugo.scripter.co/doc/org-capture-setup/#org-capture-template-export-date][includes an org caputer template]] or---to be more precise---a generator for an org capture template which automatically generates the =EXPORT_FILE_NAME=. He also mentioned that =ox-hugo= [[https://ox-hugo.scripter.co/doc/org-meta-data-to-hugo-front-matter/#for-subtree-based-exports][uses]] the =CLOSED= property of an org entry (e.g. a blog post) for automatically setting the date. This =CLOSED: = line is added when a org mode entry is set to =DONE= using the =org-todo= command (bound to =C-c C-t= for me) as long as the variable =org-log-done= is set to =time=. Both things are really great and I will switch to them! I should have read the documentation more carefully in the beginning... - -* How this post is brought to you... :@100DaysToOffload:emacs:orgmode:hugo: -:PROPERTIES: -:EXPORT_DATE: [2022-01-12 Wed 18:23] -:EXPORT_FILE_NAME: 100dto-how-this-post-is-brought-to-you.md -:END: - -/Note 2023-03-22: The post as I wrote it initially did not meet my criteria for a high-quality blog post. Therefore, I improved and expanded it while making sure the original meaning was kept./ - -The [[https://100daystooffload.com/][#100DaysToOffload]] challenge starts very well. I'm sitting here at my desk with the to-do in front of me to write post number two. And I have absolutely no idea what to write! Well, there are some topics I want to cover on the blog during the next months and they can be part of the #100DaysToOffload challenge but I currently don't know where to start. So what's left then to tell you, dear reader, is how this blog post is brought to you and thereby also include a few hints about what I will write during the next months! - -So about that workflow. Let's start the same way that I work with it. Currently, I'm sitting in front of my [[/uses][older Lenovo Y50-70 laptop]] running Windows 10 (I'm doing a lot of creative stuff like graphic design or editing photos and thereby rely on software that is sadly not available on UNIX/Linux). However, since I'm mostly a Linux user and fell into the large [[https://www.gnu.org/software/emacs/][Emacs]] rabbit hole a few years ago, I'm using the [[https://learn.microsoft.com/en-us/windows/wsl/][Windows Subsystem for Linux (WSL)]]. - -For starting a new post, I open my [[https://www.debian.org/][Debian]] WSL2 instance in Windows Terminal and fire up that old editor with ~setsid emacs~. The ~setsid~ command starts Emacs in a new session, i.e. it forks off and lets me use the shell for other stuff (or close it if I don't need it). A few seconds later a white rectangle pops up on my screen (I have [[https://sourceforge.net/projects/vcxsrv/][VcXsrv]] installed for displaying graphical applications running in WSL) and I can navigate to my =blog.org= file in my [[https://git.mmk2410.org/mmk2410/mmk2410.org][website repo]]. - -The =blog.org= file is written in [[https://orgmode.org/][Org Mode]] (a more powerful Markdown equivalent) and contains all my blog posts. On top of the file, I create a new headline, set two properties: an export file name and an export date, add the #100DaysToOffload category (in Org Mode, categories start with an =@= char), and perhaps another tag or two. This results in a starting point like the following: - -#+begin_src org -,* How this post is brought to you... :@100DaysToOffload:orgmode:hugo: -:PROPERTIES: -:EXPORT_DATE: [2022-01-12 Wed 18:23] -:EXPORT_FILE_NAME: 100dto-how-this-post-is-brought-to-you.md -:END: -#+end_src - -And now I can start writing (or at least I could if I knew what to write). Once that's done, I reviewed the draft a few times. Normally, I read through it 1-2 times and also check the grammar using Grammarly. If possible, I also take a short break after writing the initial draft and before reading it to clear my head and get some distance. - -Now it's time to publish the new post. To build an HTML page from the new entry in the =blog.org= file, I'm using [[https://ox-hugo.scripter.co/][ox-hugo]]. What's that? Well, =ox= is short for [[https://orgmode.org/][org]] export, and [[https://gohugo.io/][Hugo]] is a well-known static site generator. So =ox-hugo= lets me export the =blog.org= file to Hugo-compatible Markdown. Since I'm a bit lazy and never took the time to load the Emacs package automatically using my [[https://git.mmk2410.org/mmk2410/dot-emacs][Emacs configuration]], I need to manually run ~(require 'ox-hugo)~. To trigger the export of the new blog post, I'm using the keybinding =C-c C-e H H= (=C-= is the common Emacs notation for pressing the control key, so =C-C= means pressing the =c= key while holding the control key). - -After exporting, I can now run =hugo serve= in the terminal for running a local version of my website with the new post locally. I can view it in my browser at the address =localhost:1313= and verify that the output is to my liking. Once I'm satisfied, I upload the changes I made to my website using a [[https://git.mmk2410.org/mmk2410/mmk2410.org/src/branch/main/publish.sh][hacky script I wrote]] that is based on [[https://rsync.samba.org/][rsync]] and spread the word of the new post on [[https://fosstodon.org/@mmk2410][Fosstodon]]. - -That sounds complicated to you? Well, I have the same opinion. That's why I would like to optimize some parts of this. Adjusting my Emacs configuration as written above is just one small thing. Another one is, that it is currently quite cumbersome to create a new blog post. A template, e.g. using org-capture, or similar, is something I want to investigate. And I need to put some time into the publish script. - -If you made it through this whole post: Congratulations! You survived this quite technical overview and are ready to read more about my workflow in the future! If you just scrolled to the end: that's also fine. While I can't promise it, I don't think that all of the 98 blog posts that are left will be that technical. And if they are they will explain the stuff I write about. - -/Day 2 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* 100 Days To Offload :@100DaysToOffload: -:PROPERTIES: -:EXPORT_DATE: [2022-01-09 Sun 17:03] -:EXPORT_FILE_NAME: 100-days-to-offload-start.md -:END: - -Since I joined the [[https://fosstodon.org/about/more][Fosstodon community]] over one and a half years ago (boy, time really flies...) I constantly read posts with a hashtag #100DaysToOffload and wondered what the heck this is. Well, someday I read [[https://100daystooffload.com/][the description]] and just thought "what a nice idea!" (tl;dr: during a time span of a year, write 100 more or less useful blog posts). Though I never really thought about joining since I cannot imaging writing 100 blog posts in just one year (if you look at my blog you will see that I published five posts during the last two years, with that speed I would need 40 years to finish the #100DaysToOffload). Although I have done something similar in 2015: a project 365: posting a inspiring quote every day for 365 days. Well, more or less successfully: on some days I didn't have time and therefore posted two quotes the next day. OK, there were also larger gaps where I didn't post and needed to catch up. - -However, this morning I read a [[https://mikestone.me/100-days-to-offload-part-3/][blog post]] by Mike Stone stating that he will try the #100DaysToOffload challenge again after he already failed two times. And at this point for no good reason I started thinking that maybe I should try it to. During the day the thought grew more and more on me, so started writing this post and made a new To-Do in my system to write a new one every three days. - -So be prepared for either some awesome and totally useless blog posts spamming you every few days or to watch me utterly fail this challenge. Or a mixture of both. We'll see! - -/Day 1 of the [[https://100daystooffload.com/][#100DaysToOffload]] challenge./ - -* Updates to my website - :PROPERTIES: - :EXPORT_DATE: [2021-08-20 Fri 11:08] - :EXPORT_FILE_NAME: updates-website.md - :END: - - During the last days I took some time to review and update my website and---while I am at it---also slightly changed some other things. Since there are two thing that may interest you, I decided to write few words about it. - -** What I Use - - In early 2016 I wrote a blog post about what software I use from day to day, motivated by questions from some people. - Since then I regularly (meaning around once a year (boy, there is really some outdated stuff there)) updated the post, extending, re-working and updating it. - During the last months I saw some other people having a dedicated page on what hard- and software they use and I decided that this would possibly also something for me. - So I sat down and created a [[/uses][What I Use]] page which replaces and extends the old post. - It now also features the various hardware that I have lying around. - Of course I will also update that page more or less regularly (I added a note on top when it was last updated). - -** Engage! - - Next to a few design tweaks I also better highlighted the possibility to comment on my posts. - This follows a great idea I read on the [[https://kevq.uk/adding-the-post-title-to-my-reply-by-email-button/][Blog of Kev Quirk]] to use a button for engaging readers to write their thoughts by email. - When I moved from Wordpress (where I used the build in commenting system) to this Hugo based site I no longer had a way for readers to comment on posts - As an alternative I put a really small text at the end of each post telling people to write me comments by email (I think I had this idea from [[https://karl-voit.at/][Karl Voit]]). - However: I never got any email on my posts (OK, admittedly I do not post much and following the stats there are also not much readers...). - - What Kev does is a bit more advanced: while he also follows the idea of not having a commenting system but engaging the readers to write him a mail, he has a much better UX for that. - At the end of each post he puts a highly visible button labeled with "Reply via email". - I like the idea very much and decided to [[https://gitlab.com/mmk2410/nextdesign/-/commit/cbc79dbe7f97ba7dc4413c3750be87e05febeeba][implement]] the same approach on this page. - So feel free to send me your thoughts by mail using the nice button below! - -* Automatic UUID creation in some Org-mode files :@pim:emacs:orgmode: - :PROPERTIES: - :EXPORT_DATE: [2021-05-04 Tue 19:15] - :EXPORT_FILE_NAME: org-mode-auto-uuid.md - :END: - - I am currently exploring the option in Org mode to export a file (or - some entries) to an ics-file which I can then in turn import into my - calendar. For reliably creating (and most importantly: updating) - entries it is necessary that each one has an unique ID. To create a - ID for the current entry I could just run =M-x org-id-get-create= and - for an entire file execute the following Emacs Lisp ~(org-map-entries - 'org-id-get-create)~. Of course this is not an ideal solution. But - adding this s-expression to ~org-mode-hook~ would create IDs in all - Org file I edit which I also don't like. Since the amount of files I - do want the automatic creation is (currently) not that large it is - OK for me to do some work on my own, at least if it is only a one - time setup. - - The idea which I had to achieve this goal was to create a file-local - variable (called ~mmk2410/org-create-uuids~) that I set to ~t~ in the - buffers I need the automatic adding of IDs and adding a hook to - ~org-mode-hook~ that in turn adds a hook to ~before-save-hook~ for - calling the function ~mmk2410/org-create-all-uuids~ that executes the - previously named s-expression to add a ID to each entry in the - buffer. - - #+begin_src emacs-lisp - (setq mmk2410/org-create-uuids nil) - - (defun mmk2410/org-create-all-uuids () - "Create UUIDs for all entries in the current org-mode buffer." - (interactive) - (when mmk2410/org-create-uuids - (org-map-entries 'org-id-get-create))) - - (add-hook 'org-mode-hook - (lambda () (add-hook 'before-save-hook 'mmk2410/org-create-all-uuids nil t))) - #+end_src - -* DONE „Mirroring“ my open-source Git repos to my Gitea instance :@code:git: - CLOSED: [2020-08-30 Sun 01:17] - :PROPERTIES: - :CREATED: [2020-08-30 Sun 00:32] - :EXPORT_FILE_NAME: gitea-gitlab-clarification.md - :END: - - /Updates:/ - - Update 2021-03-25: [[*Update 2021-03-25: Git hooks feature disabled by default][Git hooks feature disabled by default]] - - Update 2021-08-23: [[*Update 2021-08-23: Built-in mirror feature][Built-in mirror feature]] - - - tl;dr: GitLab will still be my primary Git platform for my public - projects/repositories, but these repositories can now also viewed at - my Gitea instance at [[https://git.mmk2410.org][git.mmk2410.org]]. - -** Additional links appearing to my Gitea instance - - You may have noticed that I added a link to a Gitea instance on some - places next to a link to my GitLab account. The reason behind this - is the following. - - For years I always had a Git “server” running on my virtual private - server (VPS) for private purposes. There was also a time where I had - all repositories hosted exclusively on a private Phabricator - instance and the only way to interact with them was through it. - After that I moved all my public repositories to GitLab and mirror - them to my GitHub account. I further used the Phabricanntor instance - for private purposes, later switched to a cgit with gitolite - installation and a few months ago I set up a Gitea instance because - I needed something with Git LFS support and Gitea provides that. - - Since I like Gitea quite a bit I started moving some (and as of now - any) public repositories to my Gitea instance and mirroring them - Gitlab. I have not made this change public since actually nothing - changes in practice: I still accept issues and merge requests on - GitLab and will keep doing so. In case I myself create issues on my - public repositories I will do it also on GitLab. Actually creating a - account and interacting with my Gitea instance is currently not - possible - - So GitLab will still be my primary code hosting platform for public - projects/repositories. At least for now and if this changes I will - inform you in advance. - - Since I do not know where this leads in the future, I start linking - to my own Gitea instance. - -** Mirroring a repository from Gitea to Gitlab - - While the main reason for this post was to inform you about the - reason for the new links to my Gitea instance you may be also - interested in how achieve the mirroring from Gitea to Gitlab. - - I setup the sync a few months ago by following a blog post I found. - I did not write down the URL of that post so I searched right now - for the post. I am not entirely sure but I think it was a German - post on Gurkengewuerz called [[https://www.gurkengewuerz.de/gitea-zu-github-mirror/][Gitea zu Github mirror]]. - - The idea is quite simple: - - 1. Create a SSH key e.g. with =ssh-keygen -t ed_25519 -b 4096 -f gitea= - 2. Add the *public* key to the Gitlab repository - 3. Create a post-receive Git hook in the Gitea repository with the - following content. - -#+begin_src shell -#!/usr/bin/env bash - -downstream_repo="Remote SSH URL" -# if tmp worries you, put it somewhere else! -pkfile="/tmp/gitlab-mirror-ed25519" - -if [ ! -e "$pkfile" ]; then # unindented block for heredoc's sake -cat > "$pkfile" << PRIVATEKEY -### ENTER YOUR PRIVATE KEY HERE ### -fi - -chmod 400 "$pkfile" -export GIT_SSH_COMMAND="ssh -oStrictHostKeyChecking=no -i \"$pkfile\"" -# if you want strict host key checking, just add the host to the known_hosts for -# your Gitea server/user beforehand -git push --mirror "$downstream_repo" -#+end_src - - (Hmm. Since there are comments in English maybe I found another - block back then which uses the same idea. If I find it again I will - link it here.) - -** Update 2021-03-25: Git hooks feature disabled by default - - Since Gitea 1.13.0 the "Git Hooks" feature is [[https://github.com/go-gitea/gitea/pull/13058][disabled by default for security reasons]]. - So the method written above does not work any longer without configuration adjustments and apparently also already defined Git hooks are no longer visible in the web interface. - - If you operate our own Gitea instance you can however re-enable the web-based Git hooks support by adding =DISABLE_GIT_HOOKS = false= to the =[security]= section. - It might be additionally necessary to allow the usage of Git hooks in the user settings. - - Before you (re-)enable Git hooks support *please make sure, that you fully understand the consequences and the possible security risk!* - Any Gitea user who can add Git hooks can execute code on the server and thereby possible even get Gitea administrator rights or gain root privileges. - -** Update 2021-08-23: Built-in mirror feature - - The just released [[https://blog.gitea.io/2021/08/gitea-1.15.0-is-released/][Gitea 1.15.0]] now includes a functionality to mirror repositories to other Git hosting platforms. - You can refer to the [[https://docs.gitea.io/en-us/repo-mirror/][official documentation]] for how to setup your mirror(s). - - Given the security concerns explained in my previous update and the simplicity of the new feature it is IMO highly preferable over my hacky workaround. - I myself are currently in process of switching the mirroring of my repositories to the new method and thereby also start mirroring them again to [[https://github.com/mmk2410][GitHub]] for better discoverability. - First tests already passed successfully. - -* DONE Switching my Website to Hugo using ox-hugo :emacs:orgmode:hugo:@web: - CLOSED: [2020-05-15 Fri 18:50] - :PROPERTIES: - :EXPORT_FILE_NAME: switching-my-website-to-huto-using-ox-hugo.md - :END: - - To be honest: my website was always more or less just a large - playground for me. It started around 2013 when I created my second - website (I had a website before, ~2006/2008, I don't know - correctly). Back then I put very much time in designing the thing. - In 2014 I taught myself to code and in early 2015 I even wrote a PHP - blogging engine called [[https://github.com/mmk2410/rangitaki][Rangitaki]] (i have archived it some time ago). - Additionally I wrote a script for generating the non-blog websites - from markdown files. But I never looked at a static site generator - for this purpose. - - So it might be a shocker to you that I switched to a self-hosted - Wordpress instance in July 2015. The reason was, that I wanted to - focus on writing content instead of designing my site. So I also did - not create an own theme but just used the 'twentyfifteen' one - provided by Wordpress (well actually I created a child theme for - ripping out the Google Fonts connection and serving the fonts - myself). - - Well, focusing on content worked... a little bit... - - I actually wrote more posts in 2018 than in the years before. But - that changed again in 2019 where I did not even publish one post. - - Prior to the switch today I had some experiences [[https://gohugo.io][Hugo]] as a static - side generator. I already wrote a small blog for myself (I think - this was around 2016), a complete design for a friend of mine (I - think that was around 2016/17) and for a long time my - [[https://marcel-kapfer.de][music/composition website]] was created using Hugo. - - I started thinking about migrating a few weeks ago and read about - some possible solutions which included [[https://www.gnu.org/software/emacs][Emacs]] and [[https://org-mode.org][Org-Mode]]. What - finally convinced my was the combination of the extensibility of - Hugo combined with Org-Mode using [[https://ox-hugo.scripter.co][ox-hugo]]. ox-hugo is a Emacs - package that provides an exporter for Org. That means: once - installed you only press a few keys to create a Hugo entry from a - text written in Org. ox-hugo provides to options for working with - posts: one post per Org file and one post per org subtree (a section - in an Org file). Since org handles many subtrees in one file - extremely well I decided to use the later (and preferred) mode. - - After the technical decisions where made I started creating and - designing my own Hugo theme (in case your interested: it is - available at [[https://gitlab.com/mmk2410/nextDESIGN][Gitlab: mmk2410/nextDESIGN]], although I created it with - only my own page in mind, you are free to use it yourself if you - want to). My goal for the theme was to be quite light weight (btw. I - does not use a single line of JavaScript). - - Although I have to say that if there were no ox-hugo I probably - would not use Hugo. While it is really extremely powerful it also - gave my quite some headaches. Debugging the thing should really be - much more easier. Some times I got myself reminded of debugging - LaTeX code without an helping environment which translates the - errors to human-understandable English. - - Next to that I had to somehow migrate my posts from Wordpress to - Hugo. While there are quite a few scripts for doing that, I wanted - (although it is not necessary) not only to store the new content in - Org files but also the existing. And I didn't find an already - available solution for that (tbh: I also didn't search that much). - So I had to create one myself. - - Wordpress has the ability to export a modified RSS XML file called - WXR (WordPress eXtended RSS). Well, I never thought (not even in my - deepest/darkest dreams) that I every need to use XSLT. But for - parsing the WXR file it was actually the best tool. Before looking, - what ox-hugo needed (this was a mistake, I should have looked first - or change my XSL file after looking...) I created the following XSL - file (called =orgmode.xsl=)which helped my transform the WXR files - to Org files without loosing any relevant information. - - #+begin_src xml - - - - - - - - ,* - :PROPERTIES: - :PUBDATE: - :POST_DATE: - :POST_DATE_GMT: - :POST_NAME: - :CUSTOM_ID: - :CREATOR: - :STATUS: - :CATEGORY: - - :TAGS: - - - - , - - - - :POST_TYPE: - :DESCRIPTION: - :ATTACHMENT: - :END: - - - * - - * - - - - - - - - - - - #+end_src - - (I know that this is not really professional style or in any sense - well done but I don't have any experience in this field and it - worked for the task.) - - The output generated with =xsltproc orgmode.xsl posts.xml > - posts.org= was one file which contained all my files with a - structure like the following: - - #+begin_src org - ,* Quick Deploy Solution - :PROPERTIES: - :PUBDATE: Tue, 14 Apr 2020 08:31:37 +0000 - :POST_DATE: 2020-04-14 10:31:37 - :POST_DATE_GMT: 2020-04-14 08:31:37 - :POST_NAME: quick-deploy-initial-release - :CUSTOM_ID: 940 - :CREATOR: marcel_kapfer - :STATUS: publish - :CATEGORY: code - :TAGS: cicd, deploy, git, php, programming, typo3 - :POST_TYPE: post - :END: - - RAW HTML Code of the content. - #+end_src - - As I said I looked afterwards, what ox-hugo actually needs (and - didn't think of adjusting the XSLT...): - - #+begin_src org - ,* Quick Deploy Solution :@code:cicd:deploy:git:php:programming:typo3: - :PROPERTIES: - :EXPORT_DATE: 2020-04-14 10:31:37 - :EXPORT_FILE_NAME: quick-deploy-initial-release.md - :END: - - Content in Org syntax - #+end_src - - As you may see I could have saved some precious time. However the - output that ms XSLT created was not that bad and with a few (~20-30) - search-and-replace calls (I used the [[https://github.com/benma/visual-regexp.el][visual-regexp]] Emacs package) I - got what ox-hugo needed. Due to a wrong search-replace at the end I - needed to fix some things by hand but otherwise the approach was - still faster than writing an own script for that purpose. - - So finally I have three org files which reside in a =content-org= - folder in my [[https://gitlab.com/mmk2410.org][website repository]]: - - - =blog.org=: [[/blog][my blog posts]] - - =quotes.org=: [[/quotes][my quotes posts]] (I wanted to have them separately) - - =sites.org=: the content for all pages which are not posts - - This post is the first one I write in Emacs Org-Mode and I have to - say, that it feels quite good doing that in a familiar environment. - There is just one thing left to say: how do I publish my site. I - earlier mentioned that I have already written a few Hugo sites and - so I already had some scripts lying around for doing the job. For - now the following bash script does exactly what I want. - - #+begin_src shell - #!/bin/bash - - # Clean aka remove public/ if it exists - if [[ -d ./public/ ]]; then - rm -rf ./public/ - fi - - # Build the site using hugo - hugo - - # Deploy using rsync - rsync \ - --archive \ - --verbose \ - --compress \ - --chown=marcel:www-data \ - --delete \ - --progress \ - public/ \ - mmk2410.org:/var/www/mmk2410.org/ - #+end_src - - So this is it. I switched from Wordpress to Hugo using my Emacs, - Org-Mode and ox-hugo. Let's see how this will work out in the - future. - -* Quick Deploy Solution :@code:cicd:deploy:git:php:programming:typo3: - :PROPERTIES: - :EXPORT_DATE: 2020-04-14 10:31:37 - :EXPORT_FILE_NAME: quick-deploy-initial-release.md - :END: - - [[/2020/04/quick-deploy-feature-graphic.png]] - - *Quick Deploy - a possibly hacky way to deploy a Git repository without much overload and fast setup.* - -** Motivation - - From time to time I work on some TYPO3 Site Packages (mostly design work) where seeing the changes is quite important to me. Since TYPO3 needs a web server and a Database server running (well yes, it can be [[https://www.hdnet.de/blog/setting-up-typo3-9-locally/][set up locally]], but I had some database errors last time I tried). I prefer running it on a virtual private server (VPS) over trashing my computer. So I need to somehow deliver locally made changes to this development server. - - In the past I had different approaches for solving this problem. Once I think I had a quite similar (but more dirty) approach for this problem (I don't remember exactly what it was since this was some time ago). The last few times I had a script running locally which mirrored the changes using rsync to the development server. If your interested you can find it in the [[https://gitlab.com/mmk2410/uulm_hackathon/-/blob/v1.0.0/watch.sh][uulm_hackathon Site Package repository]]. - - For now and future projects (not necessary limited to TYPO3) I wanted another solution which works with the git repository. A few words about my setup: I have a Gitea server (a simple but powerful self-hosted Git server) running on one server and a TYPO3 Development instance running on another one. But this solution should also work on just a bare Git repository and separate server also are not necessary. - -** The basic idea - - The basic idea is that we have some kind of a Git server (GitLab, Gitea, Phabricator, Gitolite, just a bare Git repo on a server) on the one hand which is capable of setting a [[https://git-scm.com/docs/githooks#post-receive][post-receive Git hook]]. On the other hand we have a web server with PHP capabilities, e.g. for developing a TYPO3 Site Package in my case. On the web server we have a PHP script (see below) running which gets called by the post-receive Git hook. If the script gets called, it pulls the latest changes from out Git server. - - OK, so what I want is some kind of continuous delivering tool. Of course there are already many different solutions available that perfectly fit my purpose. But after some search what I did not find was a tool that is quick and easy to setup. Most of them require docker, which I don't want to setup for various reasons. I simply want something that can be setup and working in a few minutes. - -** Technical details and setup - - As already mentioned in the above section, we have a Git repository or server where we can define a Git post-receive hook and a web server with PHP capabilities. On the Git server / repository we define the post-receive Git hook like in following example. - - #+BEGIN_SRC shell - #!/bin/bash - curl https://dev.your-server.rocks/quick-deploy.php?secret=YOUR-SECRET - #+END_SRC - - As you can see it is just a one line bash script which executes =curl= running a GET request to the given URL. The URL is your domain name (of course) and the =quick-deploy.php= script as path. We also give the script a =secret= parameter. The secret (in the example =YOUR-SECRET=) should only be known to you, the Git hook and the development server. You can create such a secret for example with =openssl rand -base64 42=. This is all we need to do in our Git repository / server. - - On the development server we now need to setup the =quick-deploy.php= script. The source code for the script with a README and short setup instructions is available in my corresponding [[//stuve.mmk2410.org/quick-deploy.php?secret=E4raIBk9GucWRgBwSwEcV8781E2AqxMSTQ5X0nne2lIkJrjmW0SoP+PO]["scripts" GitLab repository]]. We download the script and the example config file on our server and move it to the correct location. Finally we need to adjust the configuration. For that we rename the example config =config.example.json= to =config.json= and adjust the values. If not otherwise noted, the variables are required. - - - =remote-path=: The path or URL where the Git repository is hosted. You have to make sure, that the development server with the user running the script can access the repository. Gitea for example offers to add a "deploy key" which can pull but not push to the repository. The script currently offers no option to define which SSH key it should use. - - =branch=: This is the only optional variable. With it you can choose with branch the script should track. If it is not set, it will default to =master=. - - =local-path=: The path where the script can find the local repository on the development server. Make sure that this directory (and if a initial =git clone= should work also the parent directory) is writable by the user which the script runs (presumably =www-data=). - - =secret=: This is the secret that we created and set earlier in the post-receive Git hook. - - Since we enter the secret as plain text in the configuration we have to make sure, that the configuration file is not accessible from outside the server. So we set the correct permission. A =chmod 600 config.example= should do the job, but make sure that the script is now owned by the user running the config script. You can check if the permissions are correct by trying to access =https://dev.your-server.rocks/config.json=. This is of course no high-end security, but it should be sufficient. An attacker knowing the secret key cannot gain any sensible information but just trigger a pull. - - That is it. Now the system should work as intended. - -** Future work - - Writing the script was for me a one-day-task (it would have been much faster, but I didn't write and PHP code in the last time). So there is still much room for improvement. If I find the time, I may improve the script. - - For me the most wanted feature is a ability to define in the configuration which SSH key should be used. This could be quite particularly interesting if you have a specific key just for one repository and/or multiple repositories you want to track. - - The tracking of multiple repositories cloud be another very interesting feature. So the configuration could contain multiple blocks (one for each repository) with the values as described above. Then the pull for a specific repository cloud be triggered with another URL parameter. - - It cloud also be possible to write an administration frontend for managing the configuration file over the web, but this is not planned because of its complexity. - - Nevertheless how much features will be added in the future, the main goal is, to keep a simple and quick setup. This includes that this script will always be in one file and will not require any software that can not be easily installed (this is the reason, why I use JSON and not YAML). - -** Contributing - - If you are interested in the project and would like to contribute, feel free to do so. I appreciate any help. Bug reports and code contributions are both very welcome. - - *[[https://gitlab.com/mmk2410/scripts/-/tree/master/quick-deploy][GIT REPOSITORY]]* - -* Updated: Linux Programs I Use :@linux:programs:linux: - :PROPERTIES: - :EXPORT_DATE: 2018-03-25 17:18:19 - :EXPORT_FILE_NAME: updated-linux-programs-i-use.md - :END: - - In early 2016 I wrote a post about some software that I use. Since the last update in March 2016 quite some things changed and I just updated the list. If you are interested, click on the link below. - - https://mmk2410.org/2016/01/26/linux-programs-i-use/ - -* Firefox tab bar on mouse over :@linux:css:firefox:web:linux: - :PROPERTIES: - :EXPORT_DATE: 2018-03-01 16:15:06 - :EXPORT_FILE_NAME: firefox-tab-bar-on-mouse-over.md - :END: - - Since Firefox 57 I'm using [[https://github.com/eoger/tabcenter-redux/wiki/Custom-CSS-Tweaks#hide-the-horizontal-tab-strip-15][wiki of Tab Center Redux]]: - - #+BEGIN_SRC css - #tabbrowser-tabs { - visibility: collapse !important; - } - #+END_SRC - - I found this solution quite useful over the last months, but recently I got some web design to do and split my screen horizontally in half. In this mode the width of the sidebar used to much space. Disabling it with =F1= also didn't really help because then I had no tab list at all. - - Today I got the idea of only showing the default tab bar, when necessary. Since I can't capture keys with CSS (and I didn't find a way to create a user JS file like =userChrome.css=) and pressing a key to show and hide would be too much work, I got the idea of showing the tabbar when hovering. - - [[/2018/03/firefox-cropped-time.gif]] - - The trick is to show a small rest of the tab bar above the address bar by default (in this case 5px). Only when the mouse cursor hovers this area, the full tab bar is shown. The following CSS code does this: - - #+BEGIN_SRC css - #TabsToolbar { - min-height: 5px !important; - max-height: 5px !important; - opacity: 0 !important; - } - - #TabsToolbar:hover { - max-height: inherit !important; - opacity: 1 !important; - } - #+END_SRC - - To use this, you have to paste this CSS code in your [[http://kb.mozillazine.org/index.php?title=UserChrome.css][file]]. - -* Scrolling doesn't work in GTK+ 3 apps in StumpWM :@linux:commonlisp:linux:lisp:stumpwm: - :PROPERTIES: - :EXPORT_DATE: 2018-02-15 11:17:07 - :EXPORT_FILE_NAME: scrolling-doesnt-work-in-gtk-3-apps-in-stumpwm.md - :END: - - Since some time ago I could not scroll in any GTK+ 3 window in StumpWM with an external mouse. Today I found a workaround for this problem: executing =export GDK_CORE_DEVICE_EVENTS=1= in a shell fixes the problem. To set this automatically when starting StumpWM insert the following in your =~/.stumpwmrc=: - - #+BEGIN_SRC common-lisp - ;; bugfix for scrolling doesn't work with an external mouse in GTK+3 apps. - (setf (getenv "GDK_CORE_DEVICE_EVENTS") "1") - #+END_SRC - - This bug was also reported (and fixed) at the following bug trackers. However, none of those fixes worked for me. - - - [[https://bugs.launchpad.net/ubuntu/+source/gtk+3.0/+bug/1171342][https://bugs.launchpad.net/ubuntu/+source/gtk+3.0/+bug/1171342]] - - I found this solution at [[https://www.linuxquestions.org/questions/slackware-14/gtk-3-mouse-wheel-doesn't-work-on-current-wed-sep-25-a-4175478706/][https://www.linuxquestions.org/questions/slackware-14/gtk-3-mouse-wheel-doesn't-work-on-current-wed-sep-25-a-4175478706/]]. - -* Disabling comments - :PROPERTIES: - :EXPORT_DATE: 2018-01-11 13:14:01 - :EXPORT_FILE_NAME: disabling-comments.md - :END: - - /Update 03. April 2018:/ I re-enabled comments with an anti-spam plugin. If it works, I'll keep them enabled, otherwise I'll disable them again. - - I'm running this WordPress instance since August 2017 now and at the end of last year my page was finally listed on one of those unreachable lists of WordPress pages, where some friendly bots can write awesome comments about my writing style or try to sell me some nice medicines of the highest quality for the best prices. - - Because I sadly don't want to invest the time in thanking those nice people or compare these incomparable offers, *I decided to disable comments completely on this WordPress installation*. - - If you're not one of those guys, feel always free to write me a mail, if you have any questions about one of my articles. If I rate your question high enough I will also append the question with an answer  at the original post. The same goes of course for any constructive notices on my bad grammar style or one of those many typos. - - If you want to respond to one of my highly provocative articles, I'd rather see at more in-depth response on your own blog/site. If you wrote such a thing, please don't hesitate to send me a link via mail. - - best regrads, - Marcel - -* Moving the open-source stuff from phab.mmmk2410 to GitLab :@code:android:bash:programs:rangitaki:scorelib:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2018-01-11 12:43:04 - :EXPORT_FILE_NAME: moving-the-open-source-stuff-from-phab-mmmk2410-to-gitlab.md - :END: - - The journey started in early 2016 when I decided to move my open-source projects and their management away from GitHub. First I launched a cgit instance for viewing the code and set up a gitolite for repository hosting. After a short time I moved the repositories to a self-hosted Phabricator instance at [[https://phab.mmk2410.org][phab.mmk2410.org]], because with that platform I had the possibilities for project management like issues or workboards. - - But this concept also didn't last for long.  A few month later I decided to move the repos again. This time to [[https://github.com/mmk2410][GitHub]] profile. Since I couldn't import the GitLab public key into GitHub ("This key is already used by someone else") and a password authentication did not succeed (don't ask why, I don't know) I decided to use Phabricator for that. Phabricator has the ability to observe another repository and pull the changes from the remote repo but it also has the ability to mirror a repository to another remote repository. And luckily it can do both with the same repository. This mirroring system is also further in use to display all my repositories not only on my GitLab but also on my GitHub profile. - - Now, after one and a half year, I decided to also move the tasks and wiki articles from Phabricator to GitLab. This should reduce the need for two accounts on two platforms and also the problem, that some people are creating issues on the "wrong" platform. Now contributors can also make use of the referencing abilities of GitLab. - - I declined moving everything back when I moved the repositories because I liked (and still like) the way *Phabricator* works. Instead of GitLab or GitHub it is *not repository-centered but project-centered* (but not strictly). While in  GitLab or GitHub you create a repository and in this repository you have your complete project management stuff, the wiki, the bug tracker, the CI, etc., in Phabricator, each is its own application and can be used without the need of a repository. For access control or grouping things you /can/ use project, but you don't have to. Everything also works perfectly on its own. But what is the advantage of it? Well, for some of my projects, like the writtenMorse project, I have several repositories for the different applications. Where would you report, say, a missing code? In Phabricator I had a writtenMorse project and you could create an issue and add the writtenMorse project tag to it. To realize the same thing in GitLab or GitHub you would need a meta-repository for general issues or for wiki articles. This is also the reason why I keep my Phabricator instance running for private purposes. - - If you once created an account on phab.mmk2410 and don't work on any private projects with me, your account was either disabled if you interacted with the platform in some way, or removed in case you didn't. - - The migration is already completed and everything can be accessed on GitLab. The former tasks and wiki pages are still accessible at phab.mmk2410 and are more or less directly linked to the new corresponding GitLab object. - -* Cavallino-Treporti (IT) Bicycle Tour 1 :@bicycle:bicycle:holiday:tour: - :PROPERTIES: - :EXPORT_DATE: 2017-09-14 15:47:08 - :EXPORT_FILE_NAME: cavallino-treporti-it-bicycle-tour-1.md - :END: - - During my holiday in Cavallino-Treport (IT) I discovered the following bicycle track. The tour starts at the Piazzetta della Libertà in Cavallino and goes from there over the Via Francesco Baracca to an first unpaved way and later on Asphalt next to the Fiume Sile to Jesolo, where the river will be crossed. From there the track goes over a cycle path to Lido di Jesolo where the way leads through the inner city. After Lido di Jesolo the trip continues on the main road over the Fiume Sile back to Cavallino. - - [[/2017/09/cavallino-01.gpx]] - -* Netzwerkseminar :@beci: - :PROPERTIES: - :EXPORT_DATE: 2017-01-06 02:00:00 - :EXPORT_FILE_NAME: netzwerkseminar.md - :END: - - Tja, wenn der Tag schon gut startet, was soll man dann erwarten. Nachdem ich auf dem Weg zur Uni nicht mit dem Rad gestürzt bin und der Aufbauf zeitlich sehr gut lief (auf den halbjährlichen Belastungstest der elektrischen Anlage der Universität durften wir dieses Mal verzichten). Doch wenn schon so vieles gut läuft, dann muss ja irgendwann der Rückschlag auf einen zukommen. - - Heute kam dieser beim Einschalten meines Computers. Strom, Monitor, Tastatur, Maus und Ethernet waren schon verbunden, von dem her sollte ja eine einfache Betätigung des Einschalters vollend genügen. So einfach war es dann doch nicht. Ich hatte noch kurz etwas anderes zu tun und bemerkte erst nach einige Minuten, dass der Rechner nicht vernünftig bootet, sondern immer wieder neu startet, und kein Bild anzeigt. Durch Ausschalten und Warten konnte ich ihn zumindest dazu überreden, zumindest mal zu booten. Der Moment der Freude war allerdings nur kurz und bald wieder vorbei: Im Login-Screen sah ich etliche rechteckige Blöcke. Ein Neustarte führte wieder in den Bootloop, den ich wiederum durch warten lösen konnte. Beim dritten Mal hab ich es geschafft, in ein System zu booten. - - Wenn damit nur alle Probleme behoben wären... - - Auf meinem Windows Battelfield 2 einzurichten war nochmal um einiges schwieriger und zeitaufwändiger. Nachdem der dritte Anlauf dort geglückt war, ging es endlich los mit dem Zocken. Ich dachte schon, jetzt kann nichts mehr schief gehen. Der Gedanke hielt sich auch, bis das Essen ankam und Besteck sowie Teller erfrgt wurden. Dies ist ja kein Problem, da die Fachschaft beides in ausreichender Menge hat und die Sachen auch reserviert sind. Als ich den Schrank im Lager aufmachte, schaute ich allerdings ganz schön blöd. Die Teller waren wie gewohnt dort drinnen, vom Besteck allerdings war noch ein Eimer mit den kleinen Löffeln über. Die drei anderen Eimer mit Messern, Gabeln und Löffeln waren wie vom Erdboden verschluckt. Um genau zu sein sind sie das immer noch. Auch eine Mail über die FIN Liste hat noch keine Resultate erzielt. Mal schauen, was da noch rauskommt... - -* Der Drucker :@beci: - :PROPERTIES: - :EXPORT_DATE: 2016-12-23 02:00:00 - :EXPORT_FILE_NAME: der-drucker.md - :END: - - Wie schwer kann es sein, Altklausuren auszudrucken? Da ich mich, warum auch immer, dazu entschieden habe, Informatik zu studieren und nicht Chemie oder anderes, habe ich das Glück, ein dafür entwickeltes Werkzeug verwenden zu können (bei anderen Fachschaften verwendet man ein Wiki zum Speichern von Altklausuren). Somit beschränkt sich die Arbeit hauptsächlich darauf, schlecht formatierte E-Mails zu entziffern, Vorlesungsnamen in das Programm einzugeben, die letzten paar Altklausuren auszuwählen, den frisch gedruckten Stapel Altpapier zu beschriften und die Leute darüber zu benachrichtigen. Also theoretisch. - - Praktisch bin ich mittlerweile mehr damit beschäftigt, die ganzen Kontaktanfragen und Job-Angebote, die der =service.fin=-LinkedIn-Account erhält, zu beantworten. Spass beiseite. - - Eigentlich läuft der Druck gut durch, schließlich stehen im BeCI zwei Drucker, einer druckt schnell, der andere langsam. Zumindest sollte dies der Normalzustand sein. Doch der schnelle Drucker ist seit Anfang November nicht mehr wirklich benutzbar. Es fing ganz harmlos an, mit dem Hinweis, dass der Toner bald leer sei. Dies macht sich auch an der Lesbarkeit der Drucke bemerkbar, was wiederum dazu führte, dass man die dafür verantwortliche Person darauf hinwies und den anderen Drucker verwendete (auf diesem dauert das Drucken zwar drei mal so lange, allerdings ist das bei mäßigem Aufkommen noch gut machbar). - - Die verantwortliche Person hat das zum Abholen eines neuen Toners benötigten Formular vorbereited. So viel ist klar. Die weitere sagenumwobene Geschichte dieses Formulars würde allerdings den Rahmen dieser Erzählung um ein Vielfaches sprengen. So mancher Autor könnte darüber wahrscheinlich sogar ein ganzes Buch schreiben, was allerdings leider nicht möglich ist, da keiner die wahren Begebenheiten dieses Formulars und seines Weges kennt. Aber macht ja nichts. Der andere Drucker geht ja noch. Er zieht manchmal die Blätter schlecht ein. Aber ansonsten... - - So dachte ich zumindest, als ich eines Dienstags vormittags in das Büro kam um mal wieder Altklausuren zu drucken, in meinem Postfach häuften sich schließlich schon knapp 40 Bestellungen (Tendenz steigend). Anfangs zog er noch 80% der Blätter richtig ein. Der Wert hat sich dann beim Abarbeiten der obersten Bestellungen um 80 Prozentpunkte verschlechtert. Damit stand im BeCI kein funktionsfähiger Drucker mehr und das Drucken von Altklausuren still. - - Nach Informierung der StuVe-Computerreferats über den Ausfall des Druckers wurde Plan B ins Leben gerufen: Mit Hilfe eines anderen aktiven FINies (diesem an dieser Stelle auch nochmal mein Dank!) startete ich um viertel nach 12 einen Sprint zum StuVe-Büro, in welchem man neue Toner abholen kann (den leeren Toner habe ich aus dem Drucker ausgebaut und gleich mitgenommen). Um einen Toner abzuholen braucht man allerdings ein Formular. Zur Erstellung dieses Formulars braucht man den Preis des Toners. Dieser steht auf der Verpackung des Toners. Dank der freundlichen und hilfsbereiten StuVe-Geschäftsstelle konnten wir den Toner im zweiten Anlauf im Lager finden, den Preis ablesen und das Formular drucken. An dem Tag habe ich so viel Uni-Sport gemacht wie schon lange nicht mehr. - - Nachdem der Toner dann in das BeCI geschafft worden war und ich in mein Pflicht-Tutorium 20 Minuten zu spät kam, ging ich wieder ins BeCI zurück und staunte nicht schlecht, als ich das Druckergebnis mit neuem Toner sah. Bescheiden trifft es nicht ganz. Verschmierte Fliegenscheisse schon eher. - - In den folgenden Stunden hat das Computer-Referat beide Drucker wieder betriebsbereit gemacht (bei dem langsamen half das Reinigen der Einzugsrollen, bei dem mit neuem Toner brauchte man ein vorhandenes Ersatzteil). An dieser Stelle auch nochmal eine großes Danke an das Computer-Referat (falls sich jemals einer von denen hierhin verirrt). - - Der schon vorher erwähnte andere aktive FINie und ich haben uns den Stapel an eingeganen Bestellungen aufgeteilt und munter zum Drucken angefangen. Ich am langsamen Drucker, er am schnellen. Der Einzug an meinem Drucker ging perfekt, doch der andere Drucker (der mit neuem Toner) brachte eine ganz neue Atmosphäre ins BeCI. Mit unterschiedlichsten Techno-Rythmen begeisterte der Drucker sämtliche Zuhörer. Hätte ihn das Computer-Referat nicht zur stationären Behandlung abgeholt, hätten wir es mit einer Aufnahme wahrscheinlich bis ganz nach oben geschafft. Es bleibt noch abzuwarten ob er jemals wieder aus dem künstlichen Koma aufwacht. - - Dank dem anderen Drucker konnten zwei Tage später durch vierstündigen Einsatz dennoch alle Bestellungen vor Weihnachten abgearbeitet werden. - - Leute, ich kann ich nur eines empfehlen, bestellt rechtzeitig und (noch besser) druckt auch mal was mit aus. - -* Rangitaki Version 1.5.0 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2016-08-03 02:00:00 - :EXPORT_FILE_NAME: rangitaki-version-1-5-0.md - :END: - - I'm proud to announce a new release of the Rangitaki blogging engine which introduces post excerpts. - - [[/2016/08/readmore.png]] - - Post excerpts are disabled by default and can be enabled with (re-)running =php bin/init.php=. - - Many thanks to [[https://gitlab.com/u/Stefan65][Stefan]] for fixing the OpenGraph and Twitter meta tags. - - [[https://gitlab.com/mmk2410/rangitaki/blob/stable/CHANGELOG.md][Full Changelog]] - - [[https://gitlab.com/mmk2410/rangitaki/raw/stable/update-scripts/1-4-4_1-5-0.sh][Update script]] - -* Quote by Wang Li :music:quote: - :PROPERTIES: - :EXPORT_DATE: 2016-08-02 16:59:30 - :EXPORT_FILE_NAME: quote-by-wang-li.md - :END: - - #+begin_quote - Simplicity gives my music its freedom. I am nothing special. I am afraid about the future, I am afraid about the present and I try to find some warming moments in the past. - #+end_quote - - /Wang Li/ - -* Rangitaki Version 1.4.4 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2016-06-03 02:00:00 - :EXPORT_FILE_NAME: rangitaki-version-1-4-4.md - :END: - - Today I announce 1.4.4 of the Rangitaki blogging engine. It brings an important bug fix concerning the feed creation. Starting from 1.4.0 the feed creation server-side script failed with a 500 internal server error because it was not converted to the new YAML configuration (due to a bug - to be exact: a missing slash - in the .gitignore). - - While working on fixing this issue, I also upgraded to the latest version of the feed generator (PicoFeed). The generated feeds will now contain all feed information. - - The update script works only from 1.4.3. So I your using an older version of Rangitaki, please upgrade first to 1.4.3. - - [[https://gitlab.com/mmk2410/rangitaki/raw/stable/update-scripts/1-4-3_1-4-4.sh][Update script]] - - As usual: Download the script, place it in the root folder of your Rangitaki installation, make it executable =chmod +x= and run it. - -* Morse Converter Web App 0.3 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2016-05-31 02:00:00 - :EXPORT_FILE_NAME: morse-converter-web-app-0-3.md - :END: - - Hi folks! - - No! The writtenMorse project is not dead! - - Yesterday I released version 0.3 of the Morse converter web app. This update brings better performance when converting large texts thanks to a new converting engine written in Dart. - - You can test it now live at [[https://mmk2410.org/morseconverter][mmk2410.org/morseconverter]]. - - Feel free to give me feedback either to me at opensource(at)mmk2410(dot)org or on [[https://gitlab.com/mmk2410/morse-converter-web][the GitLab project]]. Thanks! - -* Rangitaki Version 1.4.3 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2016-05-21 02:00:00 - :EXPORT_FILE_NAME: rangitaki-version-1-4-3.md - :END: - - Since the release of Rangitaki 1.4.0 two weeks ago there where three point releases. 1.4.1 and 1.4.2 brought changes to the authentication of the RCC and the RCC API. Caused by these changes you have to rerun =php bin/init_rcc.php=. To read more about this change habe a look at: [[https://phab.mmk2410.org/T116][https://phab.mmk2410.org/T116]] - - Version 1.4.3 brings the following bugfixes: - - - *[FIX]* Missing space in drawer between "Blogs on" and blogname - - *[FIX]* Background layer was not removed if drawer was closed - - Besides these fixes Rangitaki 1.4.3 includes the theme of my [[https://mmk2410.org/blog][own blog]], nextDESIGN. - - Since the three releases where in a very short time frame I decided to write the update script to let you update every Rangitaki 1.4 installation (1.4.0, 1.4.1, 1.4.2) to 1.4.3. - - [[https://gitlab.com/mmk2410/rangitaki/raw/stable/update-scripts/1-4-2_1-4-3.sh][Update script]] - -* Rangitaki Version 1.4 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2016-05-08 02:00:00 - :EXPORT_FILE_NAME: rangitaki-1-4.md - :END: - - Yesterday I released Rangitaki version 1.4 with the following new features and - fixes: - - - Three new scripts in the =bin= folder to simplify the maintenance and setup. Read more below. - - Rangitaki API for working with your Rangitaki installation from other apps. Read on how to use the API in the [[https://marcel-kapfer.de/rangitaki/docs/api][documentation]] - - SASS and CoffeeScript capabilities for writing extensions and themes. These files are compiled and minimized using [[http://gulpjs.com][Gulp]]. - - Open links in articles in a new tab. - - Switch to YAML as language for the configuration. Rangitaki 1.4 and above cannot be used without a setup YAML configuration file at =config.yaml=. Read more below. - - Fix: Atom feeds didn't contain any text - -** Scripts - One of the main goals of Rangitaki is that anyone able to run a webserver should be able to easily install it. Because time you waste installing and configuring your blogging engine is time you don't have to write articles or do other stuff. - - With version 1.4, Rangitaki made another step into this direction. It provides three PHP scripts. One for switch from the old and no longer supported =config.php= to the YAML config file and two for maintaining and setting Rangitaki and the RCC up. - - The scripts are located in the =bin\= directory and can only run from the root directory of your Rangitaki installation (not the system root). You can run them with =php bin/thescript.php=. This requires, that the =php-cli= package (or whatever name it has in your distribution) is installed on your installation. If you can't install any software on the server which is hosting your Rangitaki blog, you can still run these scripts on your home computer or in a virtual machine running Linux. - -*** Switching config files. - =bin/config.php= is just there in 1.4 and will be removed in the next version. It's purpose is to switch from the old PHP config file (=config.php=) to the YAML config file used in Rangitaki 1.4 and above. Read more about this in the next paragraph. - -*** Initializing Rangitaki - - =bin/init.php= is actually more than a script. It's a handy tool for initializing your fresh Rangitaki installation since it guides you through setting all the config values and also for changing your existing configuration, if you don't want to edit the =config.yaml= directly. - -*** Initializing the RCC and the API - - =bin/init_rcc.php= is used for initializing the Rangitaki Control Center (RCC) and the API. It is separated from the init script since the user needs to provide a password and a username for the RCC and the API and not all users want to use these online tools. - -** Configuration file switch - - I decided to switch from PHP to YAML as a language for the configuration, since PHP is pretty much non-human-readable and also quite limited if more variables are added. So I decided to use YAML because it is very readable for everyone since it doesn't contain any freakin' parentheses, colons or other stuff. - - I didn't test it seriously but it didn't seem to take longer to parse the YAML compared then including the PHP file. - - The YAML configuration file must be used with Rangitaki 1.4 and above. The old =config.php= does not work any longer. For switching you can use the script in =bin/config.php= which does the complete job for you. On how to use the script read the paragraph above. - -** Version Control System - - Before you freak out. NO, Rangitaki does not contain a VCS and will never include one. This is about where Rangitaki is developed. I moved from GitHub (over git.mmk2410.org and over phab.mmk2410.org) to [[https://mmk2410.org/rangitaki/docs][mmk2410.org / marcel-kapfer.de]]. - - The main reason for doing that was and still is, that I think it's crazy to develop free (as in freedom, not as in free beer) on a proprietary platform. - -** Updating - - As always I provide you an update script for easily switch from Rangitaki 1.3.0 to Rangitaki 1.4.0: [[https://gitlab.com/mmk2410/rangitaki/raw/stable/update-scripts/1-3-0_1-4-0.sh][https://gitlab.com/mmk2410/rangitaki/raw/stable/update-scripts/1-3-0_1-4-0.sh]] - - Happy Blogging! - -* How to run a web app on your desktop :@code:desktop:electron:linux:web: - :PROPERTIES: - :EXPORT_DATE: 2016-04-19 17:09:27 - :EXPORT_FILE_NAME: how-to-run-a-web-app-on-your-desktop.md - :END: - - Running a web app or a website on your desktop is nowadays much easier thanks to GitHub's Electron. -** Why would someone want this? - Well... This is a good question. For me there are only two reasons: you can start it from your launcher and it's handled as its own application. But thats not why I'm writing this guide. My motvation is simple: It works. - - -** Installing required software - For this guide you need npm and git. Search the wide web for installation instructions for your operating systems. - - You need also a editor. Choose one you like. The lines of code you're gonna write are just a few. -** Cloning the GitHub Repo - Fire up a terminal and clone the GitHub quickstart repo of Electron. - = your-web-app= - and change into that directory - = your-web-app= -** Installing dependencies - Next install the npm dependencies with - = install= - and test the quick start app - = start= - Normally you should see a window with the dimension 800x600 and on the left side a line of text, on the right the developer console. -** Editing the main.js - - First were editing the JavaScript file to disable the developer console showing on startup. - - Open the main.js file in the editor of your choice and search for the following line (around line 21 in the =createWindow()= function): - - #+BEGIN_SRC js - mainWindow.webContents.openDevTools(); - #+END_SRC - - and comment it out: - - #+BEGIN_SRC js - // mainWindow.webContents.openDevTools(); - #+END_SRC - - Now we're makeing the application window a little bit heighter and wider. Search for the line (around line 15 in the =createWindow()= function): - - #+BEGIN_SRC js - mainWindow = new BrowserWindow({width: 800, height: 600}); - #+END_SRC - - and add to both values 200px so it looks like this: - - #+BEGIN_SRC js - mainWindow = new BrowserWindow({width: 1000, height: 800}); - #+END_SRC - - Run now again =npm start= and enjoy the cleaner and bigger window. - -** Editing the index.html - Now open the index.html file delete everything and paste the following lines in there: - - #+BEGIN_SRC html - - - - - Your Title - - - - - - #+END_SRC - - Change the title and the src to match the web app you want to bring to your desktop. - - Now run your app with =npm start= and here you have a web app on your desktop. -** Installing electron - For creating a desktop application install electron: - = install -g electron= - Now you can start your app with =electron .= -** Creating a launcher - Create now a file =your-web-app.desktop= and open it in your editor: - - #+BEGIN_SRC conf - [Desktop Entry] - Encoding=UTF-8 - Version=1.0 - Name=Your Web App - Comment=A comment about your web app - Exec=electron /path/to/your/app - Icon=appname.png - Type=Application - Categories=Network; - Terminal=false - #+END_SRC - - Search and download now the icon for your application. The higher the resolution the better. Make sure you get a png of svg. - - Now move the icon to =~/.local/share/icons/= and the .desktop file to =~/.local/share/applications/=. - - Now the icon should appear in your launcher (if not log out and in again). If you click on it the web app should start. - -* Rangitaki Version 1.3 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2016-02-16 02:00:00 - :EXPORT_FILE_NAME: version-1-3.md - :END: - - A new version of Rangitaki is out providing the following new features: - - - - Respect do-not-track - - - RCC: Generate Atom feed - - - Title fix - - - Switch to composer - - - - To update from Rangitaki 1.2 (or higher) use this script: [[https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-2-1_1-3-0.sh][https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-2-1_1-3-0.sh]] - - Enjoy blogging! - -* Programs I use :@linux:linux:programs: - :PROPERTIES: - :EXPORT_DATE: 2016-01-26 19:26:02 - :EXPORT_FILE_NAME: linux-programs-i-use.md - :END: - - *Note: I decided to dedicate this topic its own permanent [[/uses][What I Use]] page instead of this blog post.* - -** Intro - - A few people asked me in the last time which tools and programs I use so I decided to put them in a short list. - - I often look at lists like "The best ...", "Software you need" or similar posts. Not because I need them, but because I want to get inspired and learn about new / other tools that may become a program I use. This also means that in most cases there is more than one program listed below. - - But there is one most important thing if you're thinking about using a new / other program: The complete configuration shouldn't take more than what it's worth. It is without any sense to invest many hours to configure or switch to another program, if it doesn't bring you an enormous improvement concerning productivity, speed and / or creativity. Remember always that your time is limited and is better invested in something you want to achieve. And also keep in mind to never just copy a configuration file from someone else. Always write it yourself from scratch and evaluate exactly what you need. - - Also keep in mind, that is is a list of software I like. I didn't try all the available alternatives that are out there. If a program is not listed, it doesn't mean that it's bad or that I don't like it. - - I will update this list, if something changes, if I have the time. - - - -** List - -*** Text Editor / IDE - - - [[https://www.gnu.org/software/auctex/][AucTeX]]) - - -*** Graphics and Images - - - [[https://www.gimp.org/][GIMP]] (for image editing) - - -*** Email client - - - [[https://www.thunderbird.net][Thunderbird]] - - -*** Web browser - - - [[https://www.mozilla.org/en-US/firefox/new/][Firefox]] (mostly Developer Edition, if available) - - -*** Shell - - - [[https://fishshell.com/][fish]] - - -*** Distributions - - - [[https://www.archlinux.org/][Arch Linux]] - - -*** Desktop Environments - - - [[https://kde.org/plasma-desktop][KDE Plasma]] (if you miss a application category in this list and there is a KDE app available then I probably use that) - - -*** RSS / Atom Feed Reader - - - [[https://apps.nextcloud.com/apps/news][Nextcloud News]] (mostly with the corresponding Android apps) - - -** Updates - - Edit 16. February 2016: Removed a bunch of non-free (free as in libre) software and added a RSS / Atom Feed Reader - - Edit 28. March 2016: Software changes - - Edit 25. March 2018: Reworked and updated the complete list. - - Edit 25. March 2020: Reworked and updated this post again. Can't believe how old it already is. - -* Music recording "The Ending Year" :@composing:minimal_music:music: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 19:35:20 - :EXPORT_FILE_NAME: the-ending-year.md - :END: - - A minimal music piece composed at the end of 2014. Now finally recorded in an acceptable quality. - - If you like share it with your friends or even donate me at my page. Thanks. - - https://www.youtube.com/nHugKFbqgMg - -* Musikstück "The Ending Year" :@composing: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 01:59:59 - :EXPORT_FILE_NAME: the-ending-year-3.md - :END: - - Ein Minimal Music Stueck, welches ich eine 2014 komponiert habe, allerdings erst jetzt dazugekommen bin es in annehmbarer Qualtität aufzunehmen: https://www.youtube.com/embed/nHugKFbqgMg - - Wenn es dir gefaellt, teile es mit deinen Freund_innen und spende mir vielleicht. Danke - -* Rangitaki Version 1.2 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-12-24 02:00:00 - :EXPORT_FILE_NAME: rangitaki-version-1-2.md - :END: - - Just in time for Chistmas: Rangitaki Version 1.2. -** Features - - - Pagination: Split your blog posts over several page - - - JavaScript Extension Support - - - RCC: Write Posts - - - RCC: Delete Posts - - - RCC: Upload Media - - - RCC: Edit Posts - - - -** Notes - Read the [[https://github.com/mmk2410/rangitaki/wiki/Upgrading-Guide][upgrading guide]] before upgrading. -** Upgrading - - - If you're currently on version 1.0.0 use this update script: [[https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-0-0_1-2-0.sh][https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-0-0_1-2-0.sh]] - - - If you're currently on 1.1.90 use this update script: [[https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-1-90_1-2-0.sh][https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-1-90_1-2-0.sh]] - - - Have a lot of fun with Rangitaki 1.2. I wish all of you out there a Merry Christmas! - -* Rangitaki Version 1.1.90 Beta Release :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-12-21 02:00:00 - :EXPORT_FILE_NAME: version-1-1-90-beta-release.md - :END: - - The next step on the way to 1.2, the beta release. - - *Changes:* - - - BUGFIX: ArticleGenerator error when no tags set - - Pagination: Localized strings - - Concerning the localized string: the new string are already added into the shipped english and german language files. *If you use your own language file, you /have/ to update your language file* with the following strings: - - ="Next Page" > "Localized next page", "Previous Page" > "Localized previous page",= - To update yout blog - keep in mind that this is not a stable release, so don't use it in production - download the update script, make it executable (=chmod +x 1-1-2_1-1-90.sh=) and run it (=./1-1-2_1-1-90.sh=). If you're coming from 1.0 you have to run all update scripts. I only provide scripts from pre-release to pre-release and from stable to stable. - - Update Script: [[https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-1-2_1-1-90.sh][https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-1-2_1-1-90.sh]] - -* Rangitaki Version 1.1.2 Development Release :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: version-1-1-2-development-release.md - :END: - - I'm glad to announce another milestone an the way to Rangitaki 1.2. - - This time it's quite a small one, which brings a few code style improvements and one new feature called *pagination*, which can split your blog into several pages, each with a set amount of posts. - - Pagination is disabled by default. It can enabled through setting: - - #+begin_src php - $pagination = number - #+end_src - - The integer is the amount of posts you wan' to show on each page. E.g. if you set - - #+begin_src php - $pagination = 4 - #+end_src - - you will see four posts on every site. - - *Warning: If you use your own theme and want to use pagination*: You have to update your theme by styling =pag_buttons=, =button=, =pag_next= and =pag_prev=. Have a look at the themes shipped with Rangitaki. - - You can update your installation again with the update script: [[https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-1-1_1-1-2.sh][https://raw.githubusercontent.com/mmk2410/rangitaki/master/update-scripts/1-1-1_1-1-2.sh]] - -* Scorelib :@code:music:scorelib: - :PROPERTIES: - :EXPORT_DATE: 2015-12-01 19:41:19 - :EXPORT_FILE_NAME: scorelib.md - :END: - - I'm proud to present all of you another piece of software that I wrote: [[https://marcel-kapfer.de/scorelib][Scorelib]]. - - Scorelib is a music score organization tool with a command line interface, perfect for usage in your favorite terminal emulator. As most of the software I develop, it is written for Linux systems and published on [[https://github.com/mmk2410/scorelib][GitHub]]. - - The entered data is saved in a SQLite database in your home directory. - - Currently Scorelib is in version 0.1 and I hope, that I find enough time to make it more customizable and to add additional features. Feel free to open Issues on [[https://github.com/mmk2410/scorelib/issues][GitHub]] about bugs or feature requests. You're of course also welcome to contribute to this project, it is written in Python (but don't expect any good code style). - -* In the lab :@private: - :PROPERTIES: - :EXPORT_DATE: 2015-11-23 14:45:01 - :EXPORT_FILE_NAME: in-the-lab.md - :END: - - Sadly this didn't work, but it was fun to make. - - [[/2017/07/tmp_14150-20151123_103524-71180101.jpg]] - -* Winter is coming... :@private: - :PROPERTIES: - :EXPORT_DATE: 2015-11-23 09:35:25 - :EXPORT_FILE_NAME: winter-is-coming.md - :END: - - Winter is coming... - - [[/2017/07/tmp_29069-20151122-winter-817352794.jpg]] - -* Rangitaki Version 1.1.0 Development Release :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-11-22 02:00:00 - :EXPORT_FILE_NAME: version-1-1-0-development-release.md - :END: - - It is time for another Rangitaki release and on this way to 1.2 , I release today the first Developmen release 1.1.0, which comes with following changes: - - - RCC: Write blog posts - - RCC: Media Upload - - Drawer: Key listener ('ESC' to close, 'm; to open) - - Drawer: Highlight Blogs when hovering - - Drawer: 'X' button - - Metatags / Title based on subblog and / or article - - Script for updatig from 1.0.0 to 1.1.0 - - I strongly advise you not to update, since this is an untestet development release, if you are willing to risk it, download the update script from [[https://raw.githubusercontent.com/mmk2410/Rangitaki/master/update-scripts/1-0-0_1-1-0.sh][this]] link, make it executable and run it in your rangitaki home directory. - -* New piece coming soon :@composing: - :PROPERTIES: - :EXPORT_DATE: 2015-09-24 02:00:00 - :EXPORT_FILE_NAME: new-piece-coming-soon.md - :END: - - Good News! - - I just finished the draft for my second piece. Now all I have to do before I can publish it is setting it. - - Stay tuned! - -* Rangitaki Version 1.0 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-08-24 02:00:00 - :EXPORT_FILE_NAME: rangitaki-1-0-0.md - :END: - - Eight months ago I had the idea of a blogging engine. First I planned to write the blogging engine in JavaScript, but in February I learned PHP and I decided, that this is the better language for this project. The main goal of Rangitaki (earlier known as pBlog) was, is and will always be to be as simple to use as possible, but with any possible feature. And I turned out to be possible, especially with the subblogs and the Rangitaki Control Center. Now it is time to release a stable version of what is now called Rangitaki. A blogging engine with focus on simplicity. Easy to install, easy to configure, easy to use. - - Rangitaki 1.0 includes the following features: - - - Post writing in Markdown with a few keywords for the title, tags, date and the author (all optional) - - Multiple blogs - - A Subpages for each article with a comment box (Disqus; can be disabled) - - Share buttons (FAB; can be disabled) - - Disqus integration (can be disabled) - - Fast and easy configuration - - Google Analytics (optional) - - Twitter and OpenGraph meta tags - - Different themes - - Easy localization (just 3 (!) strings) - - Custom footer - - Navigation drawer (can be disabled) - - Tags - - Set author and date - - Mobile-first - - Rangitaki Control Center (aka RCC; optional, Read the [[https://marcel-kapfer.de/rangitaki/docs/rcc][RCC Documentation]]) - - Online post upload - - The development of Rangitaki will continue and I will add many nice features to the blogging engine and to the RCC. So stay tuned. - - [[https://github.com/mmk2410/Rangitaki/releases/tag/v1.0.0][GitHub Release Notes / Download]] - - [[https://gitlab.com/mmk2410/rangitaki][Rangitaki Webseite]] - - [[https://gitlab.com/mmk2410/rangitaki/-/wikis/home][Rangitaki Documentation]] - -* Morse Converter Android 2.4.0 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-08-22 02:00:00 - :EXPORT_FILE_NAME: morse-converter-android-2-4-0.md - :END: - - A new release of the Android app is out. In comes with the same features, that where released with the desktop version 2.0. - - - Line break support - - Instant converting - - Intelligent code recognization - - Slightly re-designed UI for the new features - - Get the app now at [[https://play.google.com/store/apps/details?id=de.marcelkapfer.morseconverter][Google Play]]. - -* Morse Converter Desktop Version 2.0.0 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-08-20 02:00:00 - :EXPORT_FILE_NAME: desktop-version-2-0-0.md - :END: - - It's time that I announce a new version of the morse converter with some awesome new features, that will simplify your converting life: - - - Completely Native UI with tabs - - Instant converting - - Intelligent code recognization - - Update through the app itself. (Not available in the .deb package or in the Ubuntu repository) - - Have fun with it! - - [[https://gitlab.com/mmk2410/writtenmorse][Download]] - -* Landesverrat :@politics: - :PROPERTIES: - :EXPORT_DATE: 2015-07-31 13:15:00 - :EXPORT_FILE_NAME: landesverrat.md - :END: - - Seit gestern wird gegen die Macher des Blogs [[http://netzpolitik.org][netzpolitik.org]] wegen Landesverrat ermittelt, da sie geheime Dokumente des Verfassungsschutzes veröffentlichten. Dies ist ein schwerer Angriff auf die Meinungs- und Pressefreiheit in Deutschland, doch bei weitem nicht der erste, wie ein Blogartikel von mir aus dem Jahr 2013 zeigt ([[*Meinungsfreiheit in Deutschland?][Meinungsfreiheit in Deutschland?]]). - - Die letzte Ermittlung wegen Landesverrat war vor 33 Jahren gegen die Zeitschrift "Konkret", und vielen sind auch die Ermittlungen gegen den Spiegel vor 50 Jahren bekannt. Und nun ist es wieder soweit: In dem angeblich "demokratischen" Staat wird wieder versucht, kritischen Journalisten, die ihrer Aufgabe nachgingen und geheime Berichte dem Volk zugänglich machten, einen Maulkorb anzulegen. - - Aus diesem Grund veröffentlich einige Blogs (wie zum Beispiel [[http://correctiv.org][correctiv.org]]) diese Unterlagen und zeigen sich anschließend selbst beim Generalbundesanwalt an. - - Ich veröffentliche hier zuerst nur die geheimen Dokumente, ob ich mich auch selbst anzeigen werde entscheide ich in den nächsten Tagen. - - Wer netzpolitik unterstützen möchte, kann dies durch ein Spende an diese Konto tun: - - Inhaber: netzpolitik.org e. V. - - IBAN: DE62430609671149278400 - - Zweck: Spende netzpolitik.org - - Hier ist auch ein Link zu einem Formular für eine Selbstanzeige: [[https://correctiv.org/media/public/fd/84/fd8461d9-564f-4393-a36d-bc12e1ac0bf2/anzeige_landesverrat_formular.pdf][https://correctiv.org/media/public/fd/84/fd8461d9-564f-4393-a36d-bc12e1ac0bf2/anzeige_landesverrat_formular.pdf]] - -** Artikel vom 15.04.2015 - -*** Konzept zur Einrichtung einer Referatsgruppe 3C „Erweiterte Fachunterstützung Internet“ im BfV - Das BfV beabsichtigt den Aufbau einer neuen zentralen Organisationseinheit „Erweiterte Fachunterstützung Internet“ (EFI). Das nachfolgende Konzept beschreibt Hintergründe und Aufgaben sowie den geplanten sukzessiven Aufbau der neuen Organisationseinheit. - - Auf der Basis des derzeit vorliegenden Konzepts wurde für die Organisationseinheit EFI ein Personalbedarf i. H. v. 75 Vollzeitäquivalenten mit entsprechender Stellenunterlegung ermittelt. - - In einem ersten Schritt wurde zum 01.04.2014 ein Aufbaustab EFI eingerichtet, in den BfV-intern derzeit 21 (Plan-)Stellen mit den entsprechenden Aufgaben aus Abteilung 6, Abteilung IT (PG OTIF) und Abteilung 3 verlagert werden. - - In einem zweiten Schritt soll der weitere Ausbau der EFI durch die im aktuellen Entwurf des Wirtschaftsplans 2014 zu Kapitel 0626 Titel 541 01 qualifiziert gesperrt etatisierten 30 Planstellen auf 51 Planstellen erfolgen. Eine Kompensation für diese Planstellen im Kapitel 0626 kann nicht erbracht werden. - - Nach einer Konsolidierungsphase soll auf Basis bis dahin gewonnener Erfahrungswerte eine Evaluierung erfolgen. - - Organisatorisch ist aufgrund der inhaltlichen Nähe und des G-10-Bezuges die Anbindung an die Abteilung 3 „Zentrale Fachunterstützungsabteilung“ zielführend. -**** Hintergründe, Aufgaben und geplanter Aufbau der EFI - Die sich ständig verändernden Kommunikationsformen und -medien im Internet erfordern in Bezug auf die Informationssammlung und -auswertung eine strategische und organisatorische Neuaufstellung des BfV. - - Ziele des Aufbaus der geplanten Referatsgruppe 3C sollen schwerpunktmäßig die Verbesserung und der Ausbau der Telekommunikationsüberwachung von internetgestützter Individualkommunikation nach dem Artikel-10-Gesetz (G-10) sein. Ferner soll Referatsgruppe 3C die Analyse von allen dem BfV aus unterschiedlichsten Quellen zugänglichen Daten, die im digitalen Zeitalter aufgrund ihres Umfanges oft nicht mehr manuell ausgewertet werden können (u. a. Asservate), umfassen. Daneben werden auch neue Methoden und Maßnahmen zur Datenauswertung in den Aufgabenbereich der Referatsgruppe 3C fallen, bei deren Entwicklung, Anwendung und Umsetzung Fragestellungen in den Vordergrund treten, die eine herausgehobene technische Expertise sowie die Einordnung in einen komplexen Rechtsrahmen erfordern, ohne dass das G-10 einschlägig ist. - - Im Einzelnen: - - In der geplanten Referatsgruppe 3C soll zum einen der Bedarf der Fachabteilungen zur strategischen, technischen und rechtlichen Entwicklung neuer Methoden der Informationsauswertung und -analyse zentralisiert bearbeitet werden. Ziel ist es, die technische und rechtliche Expertise im Bereich der Internetbearbeitung, insbesondere mit Bezug zum G-10 zu bündeln und für die Fachabteilungen einen einheitlichen Ansprechpartner für dieses komplexe und zunehmend relevanter werdende Phänomen zu installieren. - - Zum anderen sollen in der Referatsgruppe 3C die Methoden und Maßnahmen angewandt werden, die aufgrund der Komplexität und/oder wegen des G-10-Bezugs der Daten eine Zentralisierung erforderlich machen. In enger Zusammenarbeit mit der G-10-Auswertung in Referatsgruppe 3B wird die Referatsgruppe 3C die Auswertung in Bezug auf die nach dem G-10 erhobenen Internetdaten aus Einzelmaßnahmen ausbauen. - - Zudem werden die bestehenden Ansätze zur verbesserten Auswertung von nach dem G-10 gewonnener Daten (z. B. zentrale Analyse von Telekommunikationsverkehrsdaten) aufgegriffen. Der Ausbau dieser Ansätze birgt einen unmittelbaren Erkenntnismehrwert für die Fachabteilungen. Die zusätzliche Optimierung der allgemeinen G-10-Auswertung und die zentral gefertigten Analyseberichte verstärken diesen Mehrwert. - - Die Referatsgruppe soll aus den folgenden sechs Referaten bestehen: -**** Referat 3C1: „Grundsatz, Strategie, Recht“ - Im Referat 3C1 sollen sämtliche Grundsatz-‚ Rechts- und Strategiefragen bezogen auf die oben beschriebenen Aufgaben behandelt werden. - - Hier sollen neue Methoden und technische Verfahren erfasst, rechtlich geprüft, getestet und weiterentwickelt sowie „best practices“ zu deren Nutzung entwickelt werden. Das Referat 3C1 wird dazu in enger Abstimmung mit den Fachabteilungen und in Zusammenarbeit mit Referat 3C6 den Bedarf erheben, bündeln und dessen Realisierung über die Abteilung IT koordinieren. - - Zudem sollen im Referat 3C1 einschlägige Rechtsfragen zentral bearbeitet werden (etwa zur Zulässigkeit und den Rahmenbedingungen von Internetauftritten zur verdeckten Informationsgewinnung). - - Für die vorgenannten Aufgaben wird das Referat 3C1 zentraler Ansprechpartner im BfV. Dies umfasst auch Kontakte zu LfV und anderen Sicherheitsbehörden sowie die Zusammenarbeit mit dem Strategie- und Forschungszentrum Telekommunikation (SFZ TK). -**** Referate 3C2 und 3C3: „Inhaltliche/technische Auswertung von G-10-Internetinformationen“ - In Köln und Berlin soll je ein Referat zur inhaltlichen und technischen Auswertung von Erkenntnissen, die nach dem Artikel-10-Gesetz aus dem Internet gewonnen wurden, aufgebaut werden. - - Die TKÜ-Anlage PERSEUS dient im Rahmen der individuellen, anschlussbasierten Telekommunikationsüberwachung nach dem Artikel-10-Gesetz sowohl der Aufbereitung und Auswertung der klassischen Telefonie (z. B. Sprache, Telefax, SMS) wie auch der erfassten Internetkommunikation (z. B. E-Mail, Chatprotokolle, Websessions und Dateitransfere). Ein Teil der gewonnenen Rohdaten wird den G-10-Auswerter/innen von PERSEUS automatisiert aufbereitet und lesbar zur Verfügung gestellt. Jedoch bedarf es zum Auffinden und zur Darstellung bestimmter Informationen aus den Individualüberwachungsmaßnahmen (z. B. eines Facebook-Chats) speziellerer Kenntnisse im Umgang mit der PERSEUS-Anlage und eines vertieften Grundverständnisses der Funktionsweise von aktuellen Internetanwendungen. - - Ein Teil der Rohdaten kann von der PERSEUS-Anlage nicht automatisiert dekodiert werden. Diese sollen exportiert und anschließend unter Zuhilfenahme von gesonderten Werkzeugen zur Dekodierung und Auswertung bearbeitet werden. Auf diese Weise sollen aus den bereits vorhandenen Daten aus der Individualüberwachung zusätzliche inhaltliche Erkenntnisse für die G-10-Auswertung aufbereitet und die Ergebnisse den Fachabteilungen zur Verfügung gestellt werden. - - Ein Bestandteil der Referate 3C2 und 3C3 wird die technische Unterstützung der dort tätigen Auswertung sein. Die Mitarbeiter/innen der technischen Unterstützung sollen die Schnittstelle zur Abteilung IT bilden und die IT-Infrastruktur mit Bezug auf die Rohdatenauswertung (z. B. Konfiguration der Analysesoftware, Datenimporte‚ Prozessüberwachung) betreuen. Sie sollen außerdem komplexe Anfragen im Analysesystem erstellen und pflegen. - - Referat 3C2 soll am Standort Köln dabei überwiegend die Bearbeitung der anfallenden Daten aus den Beschränkungsmaßnahmen in den Abteilungen 2, 4 und 5 (Rechtsextremismus/-terrorismus‚ Geheim- und Sabotageschutz, Spionageabwehr, Ausländerextremismus sowie Linksextremismus/-terrorismus) übernehmen. In Referat 3C3 soll vorrangig die Bearbeitung aus dem Bereich der Abteilung 6 (Islamismus und islamistischer Terrorismus) am Standort Berlin erfolgen. Die räumliche Nähe der technischen G-10-Internetauswertung ist zur Zusammenarbeit untereinander vorteilhaft und in Bezug auf die G-10-Auswertung in Referatsgruppe 3B sowie die Beratung der Bedarfsträger in den Fachabteilungen unabdingbar. Organisatorisch ist deshalb eine referatsweise standortbezogene einer standortübergreifenden Lösung vorzuziehen. Zur Abdeckung von Arbeitsspitzen kann jedoch auch eine standortübergreifende Bearbeitung erfolgen. -**** Referate 3C4 und 3C5: „Zentrale Datenanalysestelle“ - Um den Bedarf der Fachabteilungen an einer Auswertung aller relevanten Erkenntnisse zu den beobachteten Personen (Kommunikationsverhalten‚ Bewegungsprofile etc.) zu bedienen, sollen die Referate 3C4 und 3C5 jeweils an den Standorten Köln und Berlin zur zentralen Analysestelle in Bezug auf komplexe Datenmengen ausgebaut werden. - - Die Referate 3C4 und 3C5 sollen zu einzelnen G-10-/§8a-Maßnahmen Auswertungsberichte zu den im Rahmen der angeordneten Überwachungsmaßnahmen angefallenen Metadaten fertigen, z. B. Übersichten der Kommunikationspartner und -häufigkeiten, zeitliche und räumliche Verteilung der Kommunikationen. Bei einer Schnittstellenanalyse wird z. B. anhand der Telekommunikationsverkehrsdaten (TKVD) aufgezeigt, ob Hauptbetroffene verschiedener G-1O-Maßnahmen in direktem Kontakt zueinander stehen oder denselben Mittelsmann kontaktieren (Analyse von Beziehungsnetzwerken). - - Die Analyse von TKVD ermöglicht zudem eine präzisere Steuerung der G-10-Auswertung, um zeitnah relevantes Aufkommen zu finden. Auch wenn die Kommunikationsdaten auf der PERSEUS-Anlage ausschließlich aus der Telekommunikationsüberwachung einzelner bestimmter Personen nach dem Artikel-10-Gesetz stammen, kann das Gesamtvolumen insbesondere wegen des stetig zunehmenden Kommunikationsverhaltens nicht mehr vollständig bearbeitet werden. Im Vorhinein muss also möglichst zielsicher das relevante von dem (überwiegend) nicht relevanten Aufkommen sondiert werden. - - Die Analyse großer Datenmengen erstreckt sich über den Bereich TKÜ hinausgehend auf alle dem BfV aus unterschiedlichsten Quellen zugänglichen Daten (u. a. Asservate infolge von vereinsrechtlichen Verbotsverfahren). Sie verfolgt das Ziel, die vorliegenden Informationen schnell anhand der Metadaten zu sortieren und somit eine zielgerichtete Auswertung zu ermöglichen. Sie generiert somit zeitnah unmittelbaren fachlichen Mehrwert. Diese Informationsmehrwerte können bei der Analyse komplexer Datenmengen nur mit Hilfe von IT-gestützten Analyse- und Datenbankwerkzeugen generiert werden. Um Synergieeffekte nutzen zu können, ist organisatorisch ein zentraler Einsatz von hochspezialisierten Analyseteams sinnvoll. - - Innerhalb der Referate 3C4 und 3C5 soll eine technische Unterstützung eingerichtet werden, die insbesondere die dort tätigen Analyseteams und die Datenerfassung/-aufbereitung berät. Die Mitarbeiter/innen der technischen Unterstützung bilden die Schnittstelle zu den Bereichen, von denen ein Großteil der auszuwertenden Daten generiert wird, sowie zur Abteilung IT und betreuen die analysespezifische IT-Infrastruktur (z. B. Konfiguration der Analysesoftware, Datenimporte, Prozessüberwachung, Erstellung und Pflege von komplexen Anfragen im Analysesystem). - - Referat 3C4 wird am Standort Köln überwiegend Daten der Abteilungen 2 (Rechtsextremismus/-terrorismus), 4 (Spionageabwehr, Geheim- und Sabotageschutz) und 5 (Ausländerextremismus und Linksextremismus/-terrorismus), Referat 3C5 am Standort Berlin die Daten der Abteilung 6 (Islamismus und islamistischer Terrorismus) bearbeiten. Hierdurch soll eine räumliche Nähe zu den Bedarfsträgern hergestellt und die Leitungsspanne der Komplexität der Aufgaben angepasst werden. -**** Referat 3C6: „Informationstechnische Operativmaßnahmen, IT-forensische Analysemethoden“ - Zur möglichst umfassenden Auswertung des Kommunikationsverhaltens der beobachteten Personen besteht neben der anschlussbasierten konventionellen TKÜ im Bereich der Internetkommunikation die Notwendigkeit zur Anwendung darüber hinausgehender TKÜ-Varianten. Die „Nomadisierung“ des Nutzerverhaltens, die Internationalisierung der angebotenen Dienste, die Verschlüsselung der Kommunikation sowie die mangelnde Verpflichtbarkeit ausländischer Provider wird ansonsten zunehmend zur Lückenhaftigkeit der Auswertung des Kommunikationsverhaltens der beobachteten Personen führen. - - Im Referat 3C6 soll daher die Planung und Durchführung von informationstechnischen Operativmaßnahmen zur verdeckten Informationserhebung nicht öffentlich zugänglicher Informationen im Internet gebündelt werden. Hierzu zählen insbesondere konspirative informationstechnische Überwachungsmaßnahmen von Online-Diensten unter den Richtlinien des G-10-Gesetzes („Server-TKÜ“, „Foren-Überwachung“, „E-Mail-TKÜ“). - - Der Bereich IT-forensische Analysemethoden unterstützt die Referate der technischen G-10-Auswertung bei der Auswahl und ggf. Entwicklung von Auswertungssystemen und darüber hinaus die Fachreferate des BfV bei der IT-forensischen Vorauswertung von Rechnersystemen, die z. B. im Rahmen von vereinsrechtlichen Verbotsverfahren als Asservate auszuwerten sind. - - Die Aufgaben des Referates 3C6 werden daher zudem insbesondere folgende Bereiche umfassen: - - - die Planung und Entwicklung von informationstechnischen Verfahren für den Einsatz in derartigen Operativmaßnahmen sowie für sonstige, auf IT-Systeme ausgerichtete operative Maßnahmen, - - - die Datenextraktion, technische Analyse und Bewertung von Datenträgern bzw. datenspeichernden IT-Systemen, insbesondere auch mobiler Geräte, zur Beweissicherung bzw. operativen Informationsgewinnung, - - - die technische Beratung der Fachabteilungen in operativen Angelegenheiten, u. a. zu Potenzial und Risiken technischer Methoden der operativen Informationsgewinnung aus dem Internet, - - - die strukturierte Sammlung vorrangig technisch geprägter Erkenntnisse und Sachverhalte mit (potenziellem) Bezug zur Internetbearbeitung („Technik-Radar“) und - - - den Austausch und die Zusammenarbeit mit anderen Sicherheitsbehörden in diesen Angelegenheiten. - -*** Personalplan der Referatsgruppe 3C „Erweiterte Fachunterstützung Internet“ im BfV - - (Tage sind Arbeitstage a 7,5 Stunden pro Jahr.) - -**** Referatsgruppe 3C: Erweiterte Fachunterstützung Internet - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------| -| 200 | hD | Gruppenleitung | -| 21 | hD | Fachaufgaben der Gruppenleitung | - -**** Referat 3C1: Grundsatz, Strategie, Recht - -| Tage | Laufbahn | Aufgabe | -|------+----------+-------------------------------------------------------------------------------------------------------| -| 177 | hD | Referatsleitung | -| 44 | hD | Fachaufgaben der Referatsleitung | -| 221 | hD | Referententätigkeiten (Konzeption, Projektmanagement, Strategie, Rechtsprüfung, G-10-Freizeichnungen) | - -**** 3C1: Querschnittstätigkeiten - -| Tage | Laufbahn | Aufgabe | -|------+----------+-------------------------------------------------------| -| 69 | gD | Abstimmung insbesondere mit dem G-10-Grundsatzbereich | -| 46 | gD | Auftrags- und Informationssteuerung | - -**** 3C1: Serviceaufgaben - -| Tage | Laufbahn | Aufgabe | -|------+----------+------------------------------------| -| 92 | mD | Statistikführung, Terminverwaltung | -| 45 | mD | Vorbereitung von Präsentation | -| 276 | mD | Bearbeitung allg. Schriftverkehr | -| 69 | mD | Aktenverwaltung, DOMUS-Erfassung | - -**** 3C1: Bearbeitung von Grundsatz-, Strategie- und Rechtsfragen EFI - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------------------------------------------------------------------------------------| -| 99 | gD | Konzeption und Fortschreibung von Grundsatz- und Strategiepapieren | -| 278 | gD | Berichtswesen für die Referatsgruppe (Bearbeiten von Stellungnahmen, Berichten, Sprechzeiten, Erlassen, etc.) | -| 113 | gD | Vorbereitung von rechtlichen Prüfungen | -| 111 | gD | Recherche | - -**** 3C1: Zentrale Koordination der technisch-methodischen Fortentwicklung, Innovationssteuerung - -| Tage | Laufbahn | Aufgabe | -|------+----------+----------------------------------------------------------------------------------------------------| -| 111 | gD | Beschreibung von Einsatzszenarien und taktische Konzeption | -| 221 | gD | Koordinierung der methodischen Fortentwicklung innerhalb der Referatsgruppe sowie mit Abteilung IT | -| 119 | gD | Erstellung von Prozessabläufen | - -**** 3C1: Bedarfsabstimmungen mit den Fachabteilungen - -| Tage | Laufbahn | Aufgabe | -|------+----------+----------------------------| -| 287 | gD | Anforderungsmanagement | -| 223 | gD | Beratung | -| 45 | gD | Teilnahme an Besprechungen | - -**** 3C1: Zusammenarbeit mit weiteren Behörden - -| Tage | Laufbahn | Aufgabe | -|------+----------+----------------------------------| -| 204 | gD | Kooperation mit LfV | -| 45 | gD | Kooperation mit SFZ TK | -| 668 | gD | Kooperation mit weiteren Stellen | - -**** Referat 3C2: Inhaltliche/technische Auswertung von G-10-Internetinformationen (Köln) - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------------------------------------------------------------------------------| -| 177 | hD | Referatsleitung | -| 44 | hD | Fachaufgaben der Referatsleitung | -| 221 | hD | Referententätigkeiten (Spezielle technische Analysen, Konzeption technisch-methodische Fortentwicklung) | - -**** 3C2: Technische Auswertung von G-10-Internetdaten - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 97 | mD | Datenaufbereitung, -import, -export | -| 212 | gD | Beratung und Schulung 3B und Fachabteilungen zu Möglichkeiten und Potential der technische Auswertung von G-10-Internetdaten | -| 883 | gD | Technische Auswertung unter Berücksichtigung fachlicher Aspekte | -| 46 | gD | Fachliche und technische Adminstration der Auswertungssysteme | -| 179 | gD | Softwaretechnische Adaption und Konfiguration von IT-Systemen zur Auswertung von G-10-Internetdaten | -| 221 | gD | Methodische Fortentwicklung, Evaluierung von neuer IT-Verfahren zur Auswertung von G-10-Internetdaten, Abstimmung mit Kooperationspartner in diesen Angelegenheiten | - -**** Referat 3C3: Inhaltliche/technische Auswertung von G-10-Internetinformationen (Berlin) - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------------------------------------------------------------------------------| -| 177 | hD | Referatsleitung | -| 44 | hD | Fachaufgaben der Referatsleitung | -| 221 | hD | Referententätigkeiten (Spezielle technische Analysen, Konzeption technisch-methodische Fortentwicklung) | - -**** 3C3: Technische Auswertung von G-10-Internetdaten - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 97 | mD | Datenaufbereitung, -import, -export | -| 212 | gD | Beratung und Schulung 3B und Fachabteilungen zu Möglichkeiten und Potential der technische Auswertung von G-10-Internetdaten | -| 883 | gD | Technische Auswertung unter Berücksichtigung fachlicher Aspekte | -| 46 | gD | Fachliche und technische Adminstration der Auswertungssysteme | -| 179 | gD | Softwaretechnische Adaption und Konfiguration von IT-Systemen zur Auswertung von G-10-Internetdaten | -| 221 | gD | Methodische Fortentwicklung, Evaluierung von neuer IT-Verfahren zur Auswertung von G-10-Internetdaten, Abstimmung mit Kooperationspartner in diesen Angelegenheiten | - -**** Referat 3C4: Zentrale Datenanalysestelle (Köln) - -| Tage | Laufbahn | Aufgabe | -|------+----------+-------------------------------------------------------------------------------------------------------------------------------------| -| 177 | hD | Referatsleitung | -| 44 | hD | Fachaufgaben der Referatsleitung | -| 221 | hD | Referententätigkeiten (insbesondere Bearbeitung von speziellen technischen Analysen, konzeptionnele und methodische Fortentwicklung | - -**** 3C4: Analyse von Datenmengen (methodischen Fortentwicklung, Evaluierung von neuen IT-Verfahren zur Datenanalyse, Abstimmung mit Kooperationspartner in diesen Angelegenheiten) - -| Tage | Laufbahn | Aufgabe | -|------+----------+----------------------------------------------------------------------------| -| 662 | gD | Durchführung von Analyse mit den Bedarfsträgern | -| 331 | gD | Erstellung von Analyse-/Auswertungsberichten für die Fachabteilungen | -| 110 | gD | Steuerung der G-10-Auswertung durch Analyse | -| 111 | gD | Abstimmung mit Ländern (Competence Center Telekommunikationsverkehrsdaten) | -| 441 | gD | Analytische Datenerfassung | -| 441 | gD | Konzeptionelle Weiterentwicklung ITAM | - -**** 3C4: Technische Unterstützung - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------| -| 448 | gD | Technische Analyseunterstützung | -| 230 | mD | Datenaufbereitung | - -**** Referat 3C5: Zentrale Datenanalysestelle (Berlin) - -| Tage | Laufbahn | Aufgabe | -|------+----------+-------------------------------------------------------------------------------------------------------------------------------------| -| 177 | hD | Referatsleitung | -| 44 | hD | Fachaufgaben der Referatsleitung | -| 221 | hD | Referententätigkeiten (inbesondere Bearbeitung von speziellen technischen Analysen, konzeptionelle und methodische Fortentiwcklung) | - -**** 3C5: Analyse von Datenmengen (methodische Fortentwicklung, Evaluierung von neuen IT-Verfahren zur Datenanalyse, Abstimmung mit Kooperationspartner in diesen Angelegenheiten) - -| Tage | Laufbahn | Aufgabe | -|------+----------+----------------------------------------------------------------------------| -| 662 | gD | Durchführung von Analyse mit den Bedarfsträgern | -| 331 | gD | Erstellung von Analyse-/Auswertungsberichten für die Fachabteilungen | -| 110 | gD | Steuer der G-10-Auswertung durch Analyse | -| 111 | gD | Abstimmung mit Ländern (Competence Center Telekommunikationsverkehrsdaten) | -| 441 | gD | Analytische Datenerfassung | -| 441 | gD | Konzeptionelle Weiterentwicklung ITAM | - -**** 3C5: Technische Unterstützung - -| Tage | Laufbahn | Aufgabe | -|------+----------+---------------------------------| -| 448 | gD | Technische Analyseunterstützung | -| 230 | mD | Datenaufbereitung | - -**** Referat 3C6: Informationstechnische Operativmaßnahmen, IT-forensische Analysemethoden - -| Tage | Laufbahn | Aufgabe | -|------+----------+----------------------------------------------------------------------------------------------------------| -| 177 | hD | Referatsleitung | -| 44 | hD | Fachaufgaben der Referatsleitung | -| 221 | hD | Referententätigkeiten (insbesondere Beratung, Konzeption von IT-Systemen, spezielle technische Analysen) | -| 28 | gD | Querschnittstätigkeiten | -| 23 | mD | Querschnittstätigkeiten | - -**** 3C6: Unkonventionelle TKÜ - -| Tage | Laufbahn | Aufgabe | -|------+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 297 | gD | Technische Beratung von Bedarfsträgern in operativen Angelegenheiten des BfV | -| 486 | gD | Konzeption, Entwicklung und Programmierung von IT-Verfahren und -Systemen zur verdeckten Informationserhebung bzw. speziellen Telekommunikationsüberwachung | -| 36 | gD | Einsatzdurchführung von Operativmaßnahmen des BfV zur verdeckten Informationserhebung über Computernetze, Maßnahmendokumentation, Einsatzrichtlinien | -| 294 | gD | Datenextraktion und -rekonstruktion, technische Analyse und Bewertung von Datenträgern bzw. datenspeichernden IT-Systemen | -| 359 | gD | IT-forensische Analysen von Datenstromaufzeichnungen und Softwaresystemen, Reverse-Engineering von Software und Kommunikationsprotokollen | -| 32 | gD | Einsatzdurchführung und Einsatzunterstützung von offenen und verdeckten Maßnahmen zur IT-forensischen Datensicherung | -| 23 | gD | Konzeption, Entwicklung und Betrieb von konspirativen technischen Infrastrukturen | -| 248 | mD | Betrieb von konspirativen technischen Infrastrukturen | -| 9 | gD | Mitwirkung und Unterstützung der Fachabteilung bei der Werbung und Führung von Quellen | -| 9 | gD | Zusammenarbeit und Informationsaustausch mit nationalen und internationalen Sicherheitsbehörden | -| 9 | gD | Mitwirkung in Arbeitsgruppen der Internetstrategie des BfV bzw. behördenübergreifende Arbeitsgruppen | -| 20 | mD | Vor-/Nachbereitung von Arbeitsgruppen der Internetstrategie des BfV bzw. behördenübergreifenden Arbeitsgruppen | -| 46 | gD | Technologie-Monitoring, Technik-/Trendfolgenabschätzung mit Bezug zur Internetbearbeitung | -| 46 | mD | Unterstützung bei Technologie-Monitoring, Technik-/Trendfolgenabschätzung mit Bezug zur Internetbearbeitung | - -** Artikel vom 25. Februar 2015 - -*** Technische Unterstützung des Prozesses Internetbearbeitung (2.750 T€) - Das Internet gewinnt als Kommunikations- und Ausforschungsmedium für Extremisten, Terroristen und fremde Nachrichtendienste zunehmend an Bedeutung. Es dient ihnen als global verfügbare Informationsquelle und als Plattform zur weltweiten Verbreitung extremistischer Propaganda mittels Webseiten, Foren oder Videobotschaften. Das Internet erleichtert interessierten Personen in erheblichem Maße die Aneignung von Wissensbausteinen und ideologischen Versatzstücken, unabhängig von Herkunft, Sprache und Religion. Der Konsum von im Internet angebotenem Propagandamaterial kann z.B. Radikalisierungsprozesse initiieren oder beschleunigen. Eine zentrale Rolle nehmen dabei so genannte „Soziale Netzwerke“ wie Facebook, Twitter oder YouTube ein, die auch von verfassungsschutzrelevanten Personenkreisen genutzt werden. - - Erfahrungen aus der täglichen Internetbearbeitung des BfV zeigen, dass Extremisten bzw. Terroristen jeglicher Prägung immer größere Datenmengen im Internet veröffentlichen. Das BfV steht vor der Herausforderung, aus der Masse an Informationen die verfassungsschutzrelevanten Erkenntnisse zu extrahieren und diese mit Daten aus anderen Quellen, z.B. von Polizeibehörden, zu verknüpfen. Dies ist aufgrund des Umfangs der Daten manuell nicht mehr möglich. Die anfallenden Daten müssen zunächst in ihrer Rohform erfasst und aufbereitet werden, um sie anschließend miteinander in Beziehung setzen zu können. Auf diese Weise können mittels technischer Unterstützung neue bzw. weiterführende Erkenntnisse gewonnen werden. - - Weiterhin nimmt die Komplexität Elektronischer Angriffe durch fremde Nachrichtendienste immer mehr zu. Dies betrifft sowohl den Aufbau der eingesetzten Software auch die Identifizierungsmöglichkeiten der Urheber. Um diesen Angriffen adäquat begegnen zu können, ist eine entsprechend leistungsfähige IT-Infrastruktur erforderlich, mittels derer sich Elektronische Angriffe analysieren und zurückverfolgen und dadurch wirksamer als bisher abwehren lassen. - - Um große Datenmengen automatisiert aufbereiten und systematisch analysieren zu können, soll in Kooperation mit externen Stellen aus Forschung und Entwicklung ein System zur Gewinnung, Verarbeitung und Auswertung von großen Datenmengen aus dem Internet entwickelt werden. Damit soll das BfV in die Lage versetzt werden, Massendaten unter den Voraussetzungen der Verschlusssachenanweisung (VSA) auszuwerten und relevante Informationen zu verknüpfen. Damit wird das Ziel verfolgt, bislang unbekannte und nicht offen erkennbare Zusammenhänge zwischen einschlägigen Personen und Gruppierungen im Internet festzustellen. Diese Aufklärung von verdeckten Netzwerkstrukturen trägt dazu bei, Radikalisierungen bei Einzeltätern frühzeitig zu erkennen. - - Bei der Massendatenauswertung von Internetinhalten handelt es sich um eine für das BfV neuartige Herausforderung. Im Zuge dessen sind für die Einrichtung und Lauffähigkeit eines Systems zur Gewinnung, Verarbeitung und Auswertung von großen Datenmengen aus dem Internet umfangreiche Maßnahmen im Bereich der IT-Infrastruktur erforderlich. Die für die Internetbearbeitung notwendige flächendeckende Verfügbarkeit von Internetarbeitsplätzen setzt den Aufbau einer modernen Netzinfrastruktur im BfV voraus. - - Die gewonnenen Informationen bedürfen aufgrund ihres großen Umfangs einer Vorauswertung mittels intelligenter Werkzeuge. Um der Herausforderung der Massendatenauswertung zielgerichtet begegnen zu können, müssen bestehende IT-Infrastrukturen (Server, Speichersysteme, Arbeitsplatzrechner, Netzwerkkomponenten, Komponenten für Netzwerkübergänge etc.) für Analyse-, Entwicklungs- und Testaktivitäten ergänzt werden. Neben der Analyse der erhobenen Daten bzw. von Elektronischen Angriffen dienen die Erweiterungen dazu, sowohl marktverfügbare erfolgversprechende Hard- und Softwarelösungen in Bezug auf die spezifischen fachlichen und technischen Anforderungen des BfV zu bewerten und ggf. anzupassen, als auch Lösungen selbst zu entwickeln. - - In einer dergestalt erweiterten Infrastruktur werden neben speziellen Recherche- und Analysetools, die z.B. die automatisierte Erhebung von offen im Internet verfügbare Informationen (z.B. von Kontaktlisten und Beziehungsgeflechten in sozialen Netzwerken wie Facebook) ermöglichen, auch geeignete Programme zur Analyseunterstützung (z.B. zur automatisierten Textvorauswertung) und zur Visualisierung von Auswertungsergebnissen bereitgestellt bzw. integriert. - - Artikelbild: Netzpolitik.org unter CC-BY-SA 3.0 - -* Morse Converter Desktop Public Beta 1.9.3 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-07-30 02:00:00 - :EXPORT_FILE_NAME: desktop-public-beta-1-9-3.md - :END: - - Today I publish a public beta version of the next version of the morse converter for desktop systems. This version comes with the following new features: - - - Intelligent code recognization (code and language) - - automatic / instant converting - - line break support - - integrated update function - - tabbed design - - native ui on all systems - - Feel free to try this version. - - *Please report all bugs at the bug tracker: [[https://github.com/mmk2410/morse-converter/issues][https://github.com/mmk2410/morse-converter/issues]] or to opensource(at)mmk2410(dot)org.* - - [[http://lab.marcel-kapfer.de/writtenmorse/desktop/morseconverter.jar][Download]] - -* Rangitaki Version 0.9: Release Condidate for 1.0 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-07-25 02:00:00 - :EXPORT_FILE_NAME: version-0-9-release-condidate-for-version-1-0.md - :END: - - It's time now for the last pre-release of version 1.0: the *release candidate* for version 1.0. After nearly seven weeks Rangitaki is now stable enough to release the last testing version. - - This version comes with the following (bug) fixes: - - - 'Blogs of {BLOG NAME}' always shown (even if there are no other blogs) - - pictures in articles not centred - - long links longer than article card (especially a problem on mobile devices) - - Localization strings are now grouped in one array - - Better code (in some parts) - - I also *commented the whole code*. The documentation for Rangitaki will releases with version 1.0 (or vice versa). - - [[https://github.com/mmk2410/Rangitaki][GitHub Repository]] - - [[https://github.com/mmk2410/Rangitaki/releases/tag/v0.9][GitHub Release 0.9]] - -* Rangitaki Version 0.8 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-07-16 13:15:00 - :EXPORT_FILE_NAME: version-0-8.md - :END: - - After one week of testing and bugfixing (mainly the RCC) we now release the beta version (number 0.8) of Rangitaki. - - This versions brings various security updates for the RCC and you should really update to this version, if you're using the RCC. Otherwise you can wait until the release candidate , which will come this sunday with more bugfixes, especially for the blogging engine. - - Stay tuned :) - - P.S: Right now I'm searching for a few people, who can help me to localize Rangitaki by translating the strings in lang/en.php into their language. If you translated theses words, make a pull request on GitHub or send me the file over mail. - -* Rangitaki Version 0.7 - The alpha release :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-07-05 02:00:00 - :EXPORT_FILE_NAME: version-0-7-the-alpha-release.md - :END: - - Today is the day! I release the alpha release for version 1.0 with the version number 0.7. This means that the development phase for 1.0 is closed and that there will only small improvements and bugfixes. It also means that you can start migrating your blog from 0.2.x to this release, since there wont be any further changes concerning the file structure. - - - Instead of listing the new features in 0.7 I list now all features that Rangitaki has as of today: - - - Post writing in Markdown with a few keywords for the title, tags, date and the author (all optional) - - Multiple blogs - - A Subpages for each article with a comment box (Disqus; can be disabled) - - Share buttons (FAB; can be disabled) - - Disqus integration (can be disabled) - - Fast and easy configuration - - Google Analytics (optional) - - Twitter and OpenGraph meta tags - - Different themes - - Easy localization (just 3 (!) strings) - - Custom footer - - Navigation drawer (can be disabled) - - Tags - - Set author and date - - Mobile-first - - Rangitaki Control Center (RCC; optional, requires linux know-how, do not enable this unless you know what your doing) - - Online post upload - - Since mainly everything is done, I will no start writing a documentation for Rangitaki, the RCC, themes and localization. I will also provide a quick-starting guide. These documents will be published with the 1.0 release which is drafted for the end of this month. - - I also rewrote the GitHub Readme, so you can find there some additional infos concerning Rangitaki. - - [[https://github.com/mmk2410/Rangitaki][GitHub Repository]] - - [[https://github.com/mmk2410/Rangitaki/releases/tag/v0.7][GitHub Release 0.7]] - -* A new design for marcel-kapfer.de :@design:web: - :PROPERTIES: - :EXPORT_DATE: 2015-06-23 19:51:10 - :EXPORT_FILE_NAME: a-new-design-for-marcel-kapfer-de.md - :END: - - Today I roll out a first version of the new marcel-kapfer.de. With this upload not everything is fully designed, but these missing pages will follow later this week or next week. - - I decided to go in another direction using more subpages and the same design on every page, if it's just a subpage or its own project. - - While designing the new page I not only tried to create a beautiful theme but also to provide a smoother user experience through designing page change animations with JavaScript. What you can actually see is just the beginning :D . I'll gonna improve the page animations to make them more seamless. - - The idea was (and still is) to create a colorfull and light design which tries to provide a clean UI and a good UX by leaving large areas free. The important clickable areas in the design are quite large to create a good expirience for mobile users. To make the pages colorfull I choosed a own color (token from the Google Material Color palette) for each page and I used large artwork (mostly icons). - - I call this design *nextDESIGN 8* which is the eight large release of the nextDESIGN. A web design series which tries to provide beautiful web design since mid 2013. I will release the sourcecode of earlier versions (4 - 7) on GitHub in the next months. For more information write me on Google+ (have a look at the about page). - -* Rangitak version shedule until 1.0 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-06-12 02:00:00 - :EXPORT_FILE_NAME: version-shedule-until-version-1-0.md - :END: - - The development on the new Rangitaki blogging engine started a few days ago and the version 0.3 (*not ready for productive use*) is out. But what are the features of the versions 0.3 until 0.9? First of all there all not ready for productive use. They are just there for testing and bug-fixing. You can obtain a copy on [[https://github.com/mmk2410/Rangitaki/releases][GitHub]]. - - - - I made also a table about the different versions: - -| Version | Features | -|---------+----------------------------------------------------------------------| -| 0.3 | | -| 0.4 | New Features: Tags, Author, Multiple Blogs, Online Upload (optional) | -| 0.5 | Material Design | -| 0.6 | More configuration options | -| 0.7 | Alpha release | -| 0.8 | Beta release | -| 0.9 | Release Candidate | -| 1.0 | Stable final release | - - With version 1.0 I will also provide a documentation. - - Stay tuned! - -* Rangitaki Version 0.5 and Material Design :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-06-06 02:00:00 - :EXPORT_FILE_NAME: version-0-5-and-material-design.md - :END: - - With the development Version 0.5 Rangitaki has a complete new look, which is based on Material Design. - - *Why Material Design?* - - Material Design is influenced by paper and this element was for a long time the main material for the written word. Books, newspaper, letters and also diaries and logbooks were written on paper. So in my opinion is quite natural to use a design which is heavy influenced by this resource. - - Read more about Material Design at [[https://google.com/design/][Google Design page]]. - -   - - *What will happen 'til 1.0?* - - During the next development releases there will be mainly bug fixes and improvements. In version 0.6 there will also more configuration options and more themes. - -* Morse Converter Android App Version 2.2.7 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-06-01 02:00:00 - :EXPORT_FILE_NAME: android-app-version-2-2-7.md - :END: - - Version 2.2.7 of the Morse Converter for Android is out and comes with the following changes: - -** Design - - - Added shadow to the actionbar (exept for tablets) - - New layout for about - - Other small design fixes - -** Functions - - - Added option to donate - - Added writtenMorse code list - - Closes keyboard when opening the drawer - -** Other - - - Fixed links in the about sections - - Keyboard closes now after convertion process - - New icon - - Bugfix: Cursor not visible - - Bugfix: Sharing didn't work - -* Morse Converter Android App Beta testing :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-05-22 02:00:00 - :EXPORT_FILE_NAME: android-app-beta-testing.md - :END: - - This week I decided to enable beta testing for new version of the morse converter android app to provide better and less buggier builds for all users. - - I would really appreachiate it, if you would help me by testing beta builds. Just join the [[https://plus.google.com/communities/103668718628585126049][Google+ community]]. - -* Rangitaki Version 0.2.2 :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-05-13 02:00:00 - :EXPORT_FILE_NAME: version-0-2-2-2.md - :END: - - Today I release a small new version to the new 0.2 series, which includes following changes: - - - Links are now underlined, when you hover over them - - Simplified it to add the disqus comments - - Added and configuration option for setting a favicon - - Added the option to use Google Analytics - - The following files changed: - - - index.php - - blog.css - - config.php - - When you updating you installation make sure that your nor overriding your existing configuration. Check on GitHub what are the differences between the two versions. - -* From pBlog to Rangitaki :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-05-12 02:00:00 - :EXPORT_FILE_NAME: from-pblog-to-rangitaki.md - :END: - - /EDIT: 13 August 2015/ - - I decidet to scale down the social appearance of Rangitaki, and so I removed the Google+ Page and the Twitter account. Follow [[https://plus.google.com/+MarcelMichaelKapfer/posts][+MarcelKapfer]] for further updates about Rangitaki./ - - Some huge changes happend to this blogging engine in the last few days: - - - - The name was changed from pBlog to Rangitaki: Since the early beginning I searched for a good name for the blogging engine and Rangitaki (from the maori language and means logbook) fits just perfect - - The default color changed to #ff4415 - - I wrote a webpage for Rangitaki [[http://marcel-kapfer.de/rangitaki][marcel-kapfer.de/rangitaki]] - - I created a Twitter profile [[https://twitter.com/rangitaki][@rangitaki]] - - and a Google+ profile [[https://plus.google.com/b/101437210222436501912/101437210222436501912/posts][+Rangitaki]] - -* Abitur und Weisheitszaehne :@private:abitur: - :PROPERTIES: - :EXPORT_DATE: 2015-05-05 01:59:59 - :EXPORT_FILE_NAME: abitur-und-weisheitszaehne.md - :END: - - Da ich gerade mitten im Abitur bin und an dieses logischerweise einige Gedanken verschwende, erkannte ich heute morgen eine Verbindung zwischen den Prüfungen und der Entfernung meiner Weisheitszähne. - - Was sich im ersten Moment komisch anhört, hat bei genauerer Betrachtung viele Ähnlichkeiten. Das Offensichtlichste ist, dass die Freude nach jeder einzelnen Prüfung, repektive jedem Zahn, enorm ansteigt. Im selben Moment steigt aber auch schon die Angst vor den Schmerzen des nächsten Tests, oder Zahns - je nachdem ob man Wurzeln zieht oder drinnen lässt. - - Allerdings gibt es auch gewisse Unterschiede, vor allem im Hinblick auf die Vorbereitungen. Während man sich schon Wochen vor seinem Eingriff mit verschiedensten Doktoren fachsimpelt und sich gewissenhaft auf nur jeden möglichen und unmöglichen Umstand vorbereiten, sieht d_ bayrische Abiturient_in das Abitur des dritten Prüfungsfaches ganz in Ruhe auf sich zukommen. Manche voreiligen Kammerad_innen denken sich dann schon um viertel vor acht: "Musikabi in 'ner dreiviertel Stunde. Ich könnt' mal schön langsam zum Lernen anfangen.". Andere Mitschüler_innen, welche sich von allem befreit fühlen, wollen diesen Zustand auch möglichst lange halten, wie durch den Spruch "Zwei 600er Ibuprofen vor Deutsch braucht's schon!" des häufigeren aufgezeigt wurde. - - Auch bezüglich der Vorbereitung in den letzten Minuten vor dem großen Event sind sich Vertreter von Ärzt_innen und Schüler/innen noch immern nicht ganz einig. Während d/ freundliche Kieferchirurg_in mit Baggerschaufelhänden einem den letzten Nerv raubt und dafür einen gekonnt gemischten Mix verschiedenster Chemikalien in den Mundraum pumpt, reicht bei einer Abiturprüfung schon ein gekonnter Griff in das Ü-18 Regal des nächsten Supermarkts um die letzten grauen Zellen in einen ruhigen Schlaf zu schicken. Die Wirkung dieser beiden Methoden ist erstaunlich wirksam und wenn sie erstmal voll einsetzt steht der Party nichts mehr im Weg. - - Wenn dann der Kieferorthopäde endlich das Radio einschaltet und mit "Highway to Hell" den ersten Schnitt macht stürzt sich auch der Prüfling tatenfroh auf das so sorgfältig bedruckte Aufgabenheft und gönnt sich einen Artikel aus einem nicht gewählten Aufgabenteil als Morgenlektüre (leider darf man sich keinen Kaffee holen, wenn man "auf's Klo geht" :( ). Und ist die Party dann mal richtig im Gange so lässt er sich durch nichts mehr halten (und hier ist nicht nur der Schüler sondern auch dessen Mundraum gemeint). - - Während die meisten Schüler/innen durch ihre anfängliche Überanstrengung nun unaufhaltbar in ein Tief rutschen und dieses mir einer ganzen Schicht an Süßigkeiten und der gesamten Bäckerei von nebenan zu stopfen versuchen, bietet de/ Leidenden d_ strahlende Dorfschmied_in (Stop. Das war eine andere Geschichte...) Kieferorthopäd_in den frisch erbeuteten Schatz an. - - Doch auch so manche_r X-trem Schüler/in sieht das Licht am Ende des Tunnels und gibt Vollgas. Und das nicht nur in Chemie. Auch in anderen ähnlich weltfremden Disziplinen lassen es manche Krachen und liefern noch voll im (Taten)rausch 16 ganze Din A4 bei d/ Vorarbeiter_in ab. - - Ich persönliche ziehe es an dieser Stelle eher vor meinen Klassenkolleg_innen zu sagen, dass alles gar nicht so schlimm sei und man sich ja nächstes Jahr eh wieder sehe und fahre froh vergnügt und dicht beladen mit meinem Six-Pack in Richtung Osten. - -* Web App Alpha Release :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-04-17 02:00:00 - :EXPORT_FILE_NAME: web-app-alpha-release.md - :END: - - Today I release a first alpha version of the Morse Converter Web App. - - This version is not ready for professional use. It's just there for testing and bug finding and fixing. - - Have fun with it! :) - - [[../writtenmorse/morseconverter/][Morse Converter Alpha]] - -* pBlog Version 2.1 :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-03-29 02:00:00 - :EXPORT_FILE_NAME: version-2-1.md - :END: - - This version includes fixes for the article links. You only have to replace the hrefgenerator.php file in the res folder. - -* About the Future of pBlog :@code:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-03-29 02:00:00 - :EXPORT_FILE_NAME: about-the-future-of-pblog.md - :END: - - I figured out that there will be many changes in the engine which will require many changes in the files (especially the posts file) and in the filestructure. I can't say right now which things will change and what you have to change. Out of this reason. I change the Version numbers and add an zero in front of them. So instead of 2.1 the latest version is now 0.2.1. The 0.2.x series is now on GitHub as an own branch and will recive bugfix updates. The series 0.3, 0.4, 0.5 and so own will be development releases which won't be compatible to the 0.2 series. I recommend current users to stay on 0.2.x - at least until the 1.0 release. I'm verry sorry for this and in case that there are requests I may write a small script that will help you switch to version 1.0. - -* pBlog Version 2.0 :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-03-27 02:00:00 - :EXPORT_FILE_NAME: version-2-0.md - :END: - - This version introduces some very imporant features: - - - *Own page for every article* - - Social *sharing buttons* (at the moment: google+, twitter, facebook but more will follow) - - *Disqus* integration - - Local *config file* -> no more editing the index file - - pBlog 2.0 is only partially compatible with prior versions. You don't have to change anything in the posts or intro file (in case you have one), but to switch to version 2.0 you have to replace your index.php with the new one. With this step all your settings like the title will be lost and you have to set them in the new config.php file. For more questions write me a mail to marcelmichaelkapfer@yahoo.co.nz. - - In the near future I will spend more time in writing a documentation about the blog engine and adding more comments (especially in the css file). - -* Morse Converter Android Version 2.1 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-03-10 02:00:00 - :EXPORT_FILE_NAME: android-version-2-1.md - :END: - - This release includes the following features: - - - Tablet layout - - Display fix in the About section - - The update will be available on Google Play in a few hours. - -* Morse Converter Debian Package :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-03-08 02:00:00 - :EXPORT_FILE_NAME: debian-package.md - :END: - - For all my users of Debian-based systems: I made a .deb package, so installing will be much easier. Just download the .deb package and execute the following command as root: - - =dpkg -i morse-converter.deb= - - If you're using an Ubuntu-based distro: I created a ppa for easy installing and updating. Just fire up a terminal and run the following lines: - - #+begin_src shell - sudo apt-add-repository ppa:mmk2410/morse-converter - sudo apt-get update - sudo apt-get install morse-converter - #+end_src - - Have a lot of fun! - -* pBlog Version 1.2 :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-03-08 02:00:00 - :EXPORT_FILE_NAME: version-1-2.md - :END: - - In this Version code is better designed so you can read and recognise it better. - - This is a code example: - - =scp -r * marcel-kapfer.de:= - -* pBlog Version 1.1 :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-02-24 02:00:00 - :EXPORT_FILE_NAME: version-1-1.md - :END: - - After I published the Version 1.0 last sunday I realized some problems with german umlauts. Now I added a function that converts every umlaut (ü, Ü, ä, Ä, ö, Ö and ß) into the html code. - -* Week in Review :@code:design:morse:rangitaki:web: - :PROPERTIES: - :EXPORT_DATE: 2015-02-22 19:55:04 - :EXPORT_FILE_NAME: week-in-review.md - :END: - - Last week a few big changes happend in my projects. Nearly every project had an bigger release. - - - *Morse Converter Desktop Edition* /Version 1.1/ (Sourcecode: [[http://marcel-kapfer.de/writtenmorse][http://marcel-kapfer.de/writtenmorse]]) - The Desktop version of the Morse Converter has now the ability to show different languages. German is the first added locale and I hope that some people will submit more localizations. - - - *Morse Converter Android Edition* /Version 2.0/ (Sourcecode: [[http://marcel-kapfer.de/writtenmorse][http://marcel-kapfer.de/writtenmorse]]) - May the biggest release this week was the version 2.0 of the Android Morse Converter. I re-wrote more or less the whole app to make it awesome. The biggest change is the Material design. - - - *pBlog* /Version 1.0/ (Sourcecode: [[https://github.com/mmk2410/pBlog][https://github.com/mmk2410/pBlog]]) - Another new project entered the public state last week and saw today the Version 1.0. pBlog is a blogging engine based on PHP, XML and Markdown and it is completly independent from any database. It tries to be as simply as possible. At the moment there are not much features included but more will follow. Right now you're visiting a page created with pBlog. - - - *My Website* (Sourcecode: [[http://marcel-kapfer.de][http://marcel-kapfer.de]]) - My Website also saw a new release this week (to be exact: today). It is not just a small change - it is a completely new page. Less content and less subpage, simply reduced on the main content (programming). Also new: It is written in PHP to provide a few nice and handy features. Enjoy it! - - - I hope that I can continue such an amount of new stuff in the future even if I have not much time until middle of June this year. - -* pBlog Version 1.0 :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-02-22 02:00:00 - :EXPORT_FILE_NAME: version-1-0-2.md - :END: - - Today I'm proud to announce the *Version 1.0* of the pBlog - a simple PHP, XML and Markdown based blogging engine - which is completly independent from any databases. Even if this is the version 1.0 it is still in a early state of - development. - - Version 1.0 has the following features: - - - Blog writing in XML - - Content in Markdown - - Static intro in Markdown - -* Material Bildschirmhintergründe 1 und 2 :@design:wallpaper: - :PROPERTIES: - :EXPORT_DATE: 2015-02-22 01:59:59 - :EXPORT_FILE_NAME: material-bildschirmhintergrunde-1-und-2.md - :END: - - Um meinen Desktop / Homescreen besser aussehen zu lassen habe ich kürzlich zwei einfache "Material" Hintergründe gestaltet. Diese sind kostenlos zu downloaden und zu verteilen (CC-BY-SA 4.0). Ich habe diese mit einer hohen 16:9 Auflösung gestaltet, sodass sie auch auf 2k Dislays (und auch auf Größeren) gut aussehen. - - Hochformat (z.B. für Smartphones und kleine Tablets) - - [[/2017/07/material001-orange-red-1.png]] - - [[/2017/07/material002-orange.png]] - - Querformat (z.B. für Computer und große Tablets) - - [[/2017/07/material001-LS-orange-red-1.png]] - - [[/2017/07/material002-LS-orange.png]] - -* pBlog Version 0.3 :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-02-20 02:00:00 - :EXPORT_FILE_NAME: version-0-3.md - :END: - - This is the Version /0.3/ of pBlog. It comes with the following changes: - - - Complete Markdown Support - - Design fixes - - a mainlink is no longer required - -* pBlog Version 0.2 :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-02-20 02:00:00 - :EXPORT_FILE_NAME: version-0-2-3.md - :END: - - The following things are new in this version: - - - Design - - Better structure - - cleaned up - - More will come when it is ready! - - This is the version /0.2/. - -* Morse Converter Android Version 2.0 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-02-18 02:00:00 - :EXPORT_FILE_NAME: android-version-2-0.md - :END: - - Today I release the version 2.0 of the Android app. The initial release of the Android app is just about 2 months ago but it is still worth to make a big number jump. - - - Fixed a bug in the normal morse encode engine which made this function u nusable until now - - Now both, input and output, are on the same screen - - Added copy to clipboard function - - Material Design: Complete new materialized design (I re-wrote more or less the whole app) - -* Material Wallpapers 1 and 2 :@design:material_design:wallpaper: - :PROPERTIES: - :EXPORT_DATE: 2015-02-17 20:08:02 - :EXPORT_FILE_NAME: material-wallpapers-1-and-2.md - :END: - - To bring a better look to my desktop / homescreen I recently made two simple material like wallpapers. These wallpapers are free to download and to redistribute (CC-BY-SA 4.0). I made them with a high 16:9 resolution that the also look great on 2k screen (or even higher resolutions) and in two versions: - - Portrait Version (e.g. for smartphones and small tablets) - - [[/2017/07/material001-orange-red-1.png]] - - [[/2017/07/material002-orange.png]] - - Landscape Version (e.g. for computers and large tablets) - - [[/2017/07/material001-LS-orange-red-1.png]] - - [[/2017/07/material002-LS-orange.png]] - -* Morse Converter Desktop Version 1.1.1 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-02-17 02:00:00 - :EXPORT_FILE_NAME: desktop-version-1-1-1.md - :END: - - - Fixed a bug in the normal morse encode engine - -* Morse Converter Desktop Version 1.1 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-02-16 02:00:00 - :EXPORT_FILE_NAME: desktop-version-1-1.md - :END: - - - Added German translation - -* Blog (Experimental) :@code:pblog:rangitaki: - :PROPERTIES: - :EXPORT_DATE: 2015-02-13 02:00:00 - :EXPORT_FILE_NAME: blog-experimental.md - :END: - - This is a test version in a early state of the new *blog engine*. By now it supports following things: - - - Markdown - - Mainlink and various other links - - More will come when it is ready! - - This is the version /0.1/. - -* The Ending Year published :@composing: - :PROPERTIES: - :EXPORT_DATE: 2015-02-05 13:51:50 - :EXPORT_FILE_NAME: the-ending-year-2.md - :END: - - Today I publish my first composed piece called: "The Ending Year". I composed it at the end of 2014 to review the old year. - -* UPDATE: Bash script for LaTeX users :@tex:bash:latex: - :PROPERTIES: - :EXPORT_DATE: 2015-01-09 20:19:37 - :EXPORT_FILE_NAME: update-bash-script-for-latex-users.md - :END: - - On the 6th I posted a link to this script in the LaTeX community on Google+ ([[http://pastebin.com/YtVuVQJK][Pastebin]]. - -* UPDATE: Bash Skript für LaTeX Benutzer :@tex:latex: - :PROPERTIES: - :EXPORT_DATE: 2015-01-09 01:59:59 - :EXPORT_FILE_NAME: update-bash-skript-fur-latex-benutzer.md - :END: - - Am sechsten habe ich eine Link zu dem von mir veröffentlichten Shell Skript in der LaTeX Community auf Google+ gepostet ([[https://plus.google.com/+EliasToivanen/posts][Profile]]) hat dies gesehen, das Skript angepasst und mit dem inotify-tools ausgestattet. Mit inotify wird die .tex Datei nur dann kompiliert, wenn sie geändert wurde. Hier ist ein Link zu dem Skript auf Pastebin. - - [[http://pastebin.com/YtVuVQJK][Pastebin]] - -* Bash script for LaTeX users :@tex:bash:latex: - :PROPERTIES: - :EXPORT_DATE: 2015-01-06 20:23:42 - :EXPORT_FILE_NAME: 107.md - :END: - - Here a little shell script for LaTeX users who dont use an LaTeX IDE and who often use the command pdflatex. With this script is it possible to do so in regulary times automatically. It is also possible to tell the script how often it should build the PDF-file and how much time should be between these builds. Before you can use this script you have to make it executable with the command =chmod +x= buildpdf.sh. - - #+BEGIN_SRC bash - #!/bin/bash - # A script for automatically creating PDf files from a latex document - # You can set the amounts of builds and the time between these builds - # Usage: ./buildpdf.sh filename [build amount] [time between builds in s] - # Marcel Michael Kapfer - # 6th January 2015 - # GNU GPL v3.0 -> Feel free to re-distribute it or fork it - if [[ -z "$1" ]]; then - echo "Usage: ./buildpdf.sh filename [build amount] [time between builds in s]" - exit 1 - else - filename=$1 - fi - if [[ -z "$2" ]]; then - builds=1 - else - builds=$2 - fi - if [[ -z "$3" ]]; then - sleeptime=120 - else - sleeptime=$3 - fi - for ((i=1; i<=$builds; ++i)) ; - do - pdflatex $filename - echo "Build $i ready" - if (( i < builds )); then - echo "Waiting $sleeptime seconds - then build again" - sleep $sleeptime - fi - done - #+END_SRC - -* Bash Skript für LaTeX Benutzer :@tex:latex: - :PROPERTIES: - :EXPORT_DATE: 2015-01-06 01:59:59 - :EXPORT_FILE_NAME: bash-skript-fur-latex-benutzer.md - :END: - - Hier ein kleines Shell Skript für LaTeX Benutzer die keine LaTeX IDE verwenden und somit häufiger von dem Befehl pdflatex Gebrauch machen. Mit dem Skript kann man das in regelmäßigen Abständen automatisch ablaufen lassen. Es ist möglich festzulegen, wie oft der Prozess ablaufen soll und wie lange dazwischen gewartet werden soll. Vor dem Verwenden muss es mit =chmod +x= buildpdf.sh ausführbar gemacht werden. - - #+BEGIN_SRC bash - #!/bin/bash - # A script for automatically creating PDf files from a latex document - # You can set the amounts of builds and the time between these builds - # Usage: ./buildpdf.sh filename [build amount] [time between builds in s] - # Marcel Michael Kapfer - # 6th January 2015 - # GNU GPL v3.0 -> Feel free to re-distribute it or fork it - - if [[ -z "$1" ]]; then - echo "Usage: ./buildpdf.sh filename [build amount] [time between builds in s]" - exit 1 - else - filename=$1 - fi - - if [[ -z "$2" ]]; then - builds=1 - else - builds=$2 - fi - - if [[ -z "$3" ]]; then - sleeptime=120 - else - sleeptime=$3 - fi - - for ((i=1; i<=$builds; ++i)); - pdflatex $filename echo "Build $i ready" - if (( i < builds )); then - echo "Waiting $sleeptime seconds - then build again" sleep $sleeptime - fi - done - #+END_SRC - - [[./media/2015/buildpdf.sh][Rechts Klick -> Speichern als]] - -* Morse Converter Android Version 1.0.1 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-01-05 02:00:00 - :EXPORT_FILE_NAME: android-version-1-0-1.md - :END: - - - Bugfix: ='#'= / 3 Spaces in front of ='+'= / 7 Spaces - - Bugfix: Wrong length of the word divider in normal morse - - Bugfix: About on small devices not completely readable - - Bugfix: Landing in writtenMorse after converting normal morse - -* Morse Converter Desktop Version 1.0.2 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-01-04 02:00:00 - :EXPORT_FILE_NAME: desktop-version-1-0-2.md - :END: - - - Bugfix: Wrong length of the word divider in normal morse - -* Morse Converter Desktop Version 1.0.1 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-01-03 02:00:00 - :EXPORT_FILE_NAME: desktop-version-1-0-1.md - :END: - - - Added program icon - - Bugfix: ='#'= / 3 Spaces in front of ='+'= / 7 Spaces - -* Comfortaa Font for Cyanogenmod Theme Engine :@code:android:cyanogenmod:font: - :PROPERTIES: - :EXPORT_DATE: 2015-01-02 20:25:58 - :EXPORT_FILE_NAME: comfortaa-font-for-cyanogenmod-theme-engine.md - :END: - - This is the open source Comfortaa font by aajohan (aka Johan Aakerlund), packaged for the Cyanogenmod Theme Engine. All the credits go to aajohan. This font has no italic types. - - [[/2017/07/comfortaa-screenshot001.png]] - - [[/2017/07/comfortaa-screenshot002.png]] - - [[https://play.google.com/store/apps/details?id=de.marcelkapfer.cyngn.theme.comfortaa][Get it]] - -* Morse Converter sourcecode now on GitHub :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2015-01-02 02:00:00 - :EXPORT_FILE_NAME: sourcecode-now-on-github.md - :END: - - I decided that I publish the sourcecode of both applications on Github instead of providing an sourcecode zip package. Feel also free to commit any changes. A link to a trello board will apear on the Github readme soon. - -* Comfortaa Font für Cyanogenmod Theme Chooser :@code:android:cyanogenmod:font: - :PROPERTIES: - :EXPORT_DATE: 2015-01-02 01:59:59 - :EXPORT_FILE_NAME: comfortaa-font-fur-cyanogenmod-theme-chooser.md - :END: - - Das ist die open-source Schriftare Comfortaa von aajohann (auuch bekannt als Johan Aakerlund), verpackt für den Cyanogenmode Theme Chooser. Sämtlicher Dank geht an aajohan. Diese Schriftart ist nicht als kursiv erhältlich. - - [[/2017/07/comfortaa-screenshot001.png]] - - [[/2017/07/comfortaa-screenshot002.png]] - - [[https://play.google.com/store/apps/details?id=de.marcelkapfer.cyngn.theme.comfortaa][Download]] - -* Morse Converter Android App Version 1.0 :@code:android:app:morse: - :PROPERTIES: - :EXPORT_DATE: 2014-12-11 20:28:28 - :EXPORT_FILE_NAME: morse-converter-android-app-version-1-0.md - :END: - - I'm proud to present you this android app. With this app you can now convert your code on the way. The application has all the functions that the desktop program has. - - [[/2017/07/screenshot_android001.png]] - - [[/2017/07/screenshot_android002.png]] - - [[/2017/07/screenshot_android003.png]] - - It also includes a share button for directly sharing your output to different apps on your device. - - I don't plan any apps for other mobile os like iOS. - - [[https://gitlab.com/mmk2410/writtenmorse][Read more]] - - [[https://play.google.com/store/apps/details?id=de.marcelkapfer.morseconverter][Get it]] - - [[https://github.com/mmk2410/morse-converter-android][GitHub]] - -* Morse Code Konverter Android App Version 1.0 :@code:android:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-12-11 02:00:00 - :EXPORT_FILE_NAME: morse-code-converter-android-app-version-1-0.md - :END: - - Ich veröffentliche nun eine Android App für writtenMorse. Mit dieser App kannst du nun auch unterwegs text ver- und entschlüsseln. Die App hat die selben Funktionen wie das Desktop Programm. - - [[/2017/07/screenshot_android001.png]] - - [[/2017/07/screenshot_android002.png]] - - [[/2017/07/screenshot_android003.png]] - - Die App beinhalted auch einen Teilen-Buttton um die konvertierte Nachricht mit verschiedenen Apps auf deinem Gerät zu teilen - - Ich habe nicht vor die App für andere mobile Betriebssysteme wie iOS zu entwickeln. - - [[https://play.google.com/store/apps/details?id=de.marcelkapfer.morseconverter][Download]] - - [[http://marcel-kapfer.de/writtenmorse][Mehr Informationen]] - - [[https://github.com/mmk2410/morse-converter-android][GitHub]] - -* Morse Code Converter Version 1.0.0 :@code:desktop:java:morse: - :PROPERTIES: - :EXPORT_DATE: 2014-11-30 20:33:20 - :EXPORT_FILE_NAME: morse-code-converter-version-1-0-0.md - :END: - - After a few months developing I'm proud to present now the Version 1.0.0. of the Morse Code Converter. - - [[/2017/07/morseconverter-desktop.png]] - - With this version it is possible to convert an unlimited amount of signs. There is also a completely new user interface and the version handles now all converting processes. - - The program is able to run under every system including Linux, Mac OS X and Windows as long as a up-to-date java runtime is installed. - - [[http://marcel-kapfer.de/writtenmorse][Get it]] - -* Morse Converter Version 1.0 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-11-30 02:00:00 - :EXPORT_FILE_NAME: version-1-0.md - :END: - - With this version some necessary features are introduced: - - - Converting of more than one sign. Now you can de- and encrypt words and sentences, - - Complete new user interface with input and output box in same window and - - All versions (normal morse de- and encrypt and writtenMorse de- and encrypt as well) now in one application. - -* Morse Converter Version 1.0.0 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-11-30 02:00:00 - :EXPORT_FILE_NAME: morse-converter-version-1-0-0.md - :END: - - Nach etlichen Monaten Entwicklung veröffentliche ich nun die Version 1.0.0 des Morse Code Converters. - - [[/2017/07/morseconverter-desktop.png]] - - Mit dieser Version ist es nun möglich mehrere Zeichen umzuwandeln. Des weiteren hat das Programm ein komplett neues aussehen und vereint nun alle Umwandlungsprozese. - - Das Programm läuft unter Linux, Mac OS X und Windows, wenn eine aktuelle Java Version installiert ist. - - [[http://marcel-kapfer.de/writtenmorse][Mehr Informationen & Download]] - -* Punktebilanz :@code:java:school: - :PROPERTIES: - :EXPORT_DATE: 2014-09-16 20:36:14 - :EXPORT_FILE_NAME: punktebilanz.md - :END: - - Today I released a little program for german students from the 11th grade. The program is able to calculate the point average. It also shows you the worst entred mark and the highest. Because the software is for german students it's completely in german. - - [[/2017/07/notenbilanz.png]] - - More features will be added when they are ready. - - The program is able to run under every system including Linux, Mac OS X and Windows as long as a up-to-date java runtime is installed. - - The Software is released under GNU Public License v3.0 - - [[./media/2014/notenbilanz.jar][Download]] - -* Morse Converter Version 0.2.2 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-08-07 02:00:00 - :EXPORT_FILE_NAME: version-0-2-2.md - :END: - - This version is also a small release. The hotword windows are improved and, in case you are a developer, the sourcecode is improved concerning formating and the code itself. There is also a new hotword: "missing code". - -* Morse Converter Version 0.2.1: First public release :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-06-23 02:00:00 - :EXPORT_FILE_NAME: version-0-2-1-first-public-release.md - :END: - - Small release. Two new hot words. - -* The writtenMorse website is online :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-06-23 02:00:00 - :EXPORT_FILE_NAME: the-website-is-online.md - :END: - - Today, after two weeks of coding, the website is online. - -* Morse Converter Version 0.2 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-06-01 02:00:00 - :EXPORT_FILE_NAME: version-0-2.md - :END: - - The secound release, now the decoding software is fine. Also the hotwords are new. - -* Morse Converter Version 0.1 :@code:writtenmorse: - :PROPERTIES: - :EXPORT_DATE: 2014-05-29 02:00:00 - :EXPORT_FILE_NAME: version-0-1.md - :END: - - In this release the decode version was kind of useless. - -* Installation of Debian 8 "jessie" testing :@linux:debian:install:jessie: - :PROPERTIES: - :EXPORT_DATE: 2014-05-15 20:39:05 - :EXPORT_FILE_NAME: installation-of-debian-8-jessie-testing.md - :END: - -** 1 Preparation - -*** 1.1 Download image - - To download a image go to [[http://www.debian.org/devel/debian-installer/][http://www.debian.org/devel/debian-installer/]] and copy the download link of the netinstall iso for your architecture from the netinst section (Right Click > Copy Link Location (Firefox) / Copy Link Address (Chrome)) and download it with the command =wget -c [copied link]= (you can simply paste the link with the shortcut /STRG+SHIFT+V/). Create now a file for the checksum with the command =touch sha512sum= in the same folder and open it with =nano sha512sum=. - - Then click in the CD section on your architecture and click on the new page on SHA512SUM and copy from there the line of the netinstall iso (normally it is the second one from the bottom) into the sha512sum file (you can simply use the shortcut /STRG+SHIFT+C/ to paste it). Save now the file with the shortcut /STRG+SHIFT+O/ and close it with /STRG+SHIFT+X/. Finally check now the iso image with the command =sha512sum -c sha512sum=. - - Normally the image should be fine, if not, try again to download it. - -*** 1.2 Preprare the boot device - -**** 1.2.1 Prepare a boot DVD - - I recommend to burn the CD with brasero. Open the program and click on burn image. Choose then your iso image an burn it on a CD. Now your CD is ready for installing Debian. - - *Some old dvd drives have problems to boot from a dvd, so you have to choose a CD!* - -**** 1.2.2 Prepare a boot USB flash drive - - Write the ISO image with the following command on your USB flash drive: =sudo dd if=debian*.iso of=/dev/sdX= - - The =X= is the letter of your USB flash drive. If you are unsure about the name of your usb flash drive, you can find it out with =lsblk=. - - =/dev/sda= is normally your hard disk, so do not use this device! Now your USB device is ready for installing debian. - -*** 1.3 Boot from the installation device - - Now reboot your computer and start from the DVD or USB flash drive. You may have to change the boot device by tap /F12/. On some computers you have to go in the BIOS or EFI with /ESC/, /DEL/, /F2/, or some other key. If the computer doesn't boot from the USB flash drive, make sure that the USB Legacy Support in the BIOS is enabled. Some old computer can't boot from USB, so you have to take a CD. If your computer start from your boot device, then continue with ENTER to start the installation. - - *TRICK: The default desktop environment in Debian is XFCE. If you want to install another desktop environment, go into 'Advanced Option', then go to 'Alternative Desktop Environment'. Now choose one of the three and continue with install.* - -** 2 Installation - -*** 2.1 Localization - - First choose your favorite language and contuine with /ENTER/. Then choose your contry. If your contry isn't listed search under others. Choose your keyboard layout in the next step and continue with /ENTER/. - -*** 2.2 Network connection - - Choose the network you wanna use and continue with /ENTER/. If you have only one of them, the installer will automatically continue with this method. 'eth0' is your wired connection and something like 'wlan0' is your wireless connection. - -**** 2.2.1 Ethernet connection - - The ethernet connection configures itself normally, so you don't have anything to do. Continue with step 2.3. - -**** 2.2.2 WiFi connection - - Choose the name of your wireless network from the list and continue. If you have a hidden network you have to choose 'Enter ESSID manually'. In the next step you have to choose, if your wireess connection is open or secure. For open one choose 'WEP/Open Network' and for protected networks choose 'WPA/WPA2 PSK', where you have to enter your key in the next step. - -*** 2.3 Network configuration - - Enter a hostname for your computer. This is the name that appear in your (home) network. Then insert in the next step an domain name. You should use the same on all the computer of your home network. If you didn't use a home network yet, make something up. - -*** 2.4 Root and user - - The next step is to set up a root password. You need this for example to install or update software. In the next box simply retype this password to verify it. Don't forget this password ever! The next step is about creating a user. In the first box you should insert your full name. Then choose a username. You can also use the one which is automatically insert. Then create a password for the user and verify it. - -*** 2.5 Time zone - - Next choose your time zone. Which one you have to choose varies in every country. - -*** 2.6 Partitioning - - I recommend to use the manual way. If you have already a file system on your hard disk the installer should show it. You now can change there you partition details. If you have no file system on you hard disk or simply want to create a new one, choose your hard disk from the list, mostly it is the third option. Then create a new empty partition table. After the installer did this you see again the list from the beginning of this step, only with a few more options. - - *I recommend for the following procedure a hard drive with at least 40 GB.* - -**** 2.6.1 Boot partition - - Continue with /ENTER/ on the line, which is marked with 'FREE SPACE'. Choose now 'create a new partition'. This partition should have 50MB. Choose 'Primary' in the next step, then choose 'End' in the next step. Change now the partition settings to the following example: - - #+BEGIN_SRC conf - Us as: Ext4 journaling file system - Mount point: /boot - Mount option: default - Label: boot - Reserved blocks: 5% - Typical usage: standard - Bootable flag: on - #+END_SRC - - If all is set like the example above, continue with 'Done setting up the partition'. - -**** 2.6.2 System partition - - Continue with /ENTER/ on the line, which is marked with 'FREE SPACE'. Choose now 'create a new partition'. This partition should have at least 20GB. Choose 'Primary' in the next step, then choose 'Beginning' in the next step. Change now the partition settings to the following example: - - #+BEGIN_SRC conf - Us as: Ext4 journaling file system - Mount point: / - Mount option: default - Label: system - Reserved blocks: 5% - Typical usage: standard - Bootable flag: off - #+END_SRC - - If all is set like the example above, continue with 'Done setting up the partition'. - -**** 2.6.3 Home partition - - Continue with /ENTER/ on the line, which is marked with 'FREE SPACE'. Choose now 'create a new partition'. Use the rest of the disk minus your RAM size, you need this for the next partition. Choose 'Logical' in the next step, then choose 'Beginning' the next step. Change now the partition settings to the following example: - - #+BEGIN_SRC conf - Us as: Ext4 journaling file system - Mount point: /home - Mount option: default - Label: home - Reserved blocks: 5% - Typical usage: standard - Bootable flag: off - #+END_SRC - - If all is set like the example above, continue with 'Done setting up the partition'. - -**** 2.6.4 Swap - - Continue with /ENTER/ on the line, which is marked with 'FREE SPACE'. Choose now 'create a new partition'. Use now the rest of the disk, this is normally the size, that the installation program suggest. Choose 'Logical' in the next step, then choose 'Beginning' in the next step. Change now the partition settings to the following example: - - #+BEGIN_SRC conf - Us as: swap area - Bootable flag: off - #+END_SRC - - If all is set like the example above, continue with 'Done setting up the partition'. - -**** 2.6.5 Finishing partitioning - - Now choose 'Finishing partitioning and write changes to disk', which is normally the last option. Accept now the summary and the partitions will be written on your hard disk. - -*** 2.7 Configuration of the package manager - - Choose your country, or, if country isn't available choose one which is near your country. Normally you can choose the mirror at the top of the list. Then you can enter a proxy server. If you don't use one just hit /ENTER/. After that you will be asked, if you want participate in the package usage survey. Choose here what you decide for yourself. If you aren't sure choose no and reconfigure it later with the command =dpkg-reconfigure popularity-contest=. - -*** 2.8 Software selection - - For normal users I recommend to select the following software: - - - Debian desktop environment - - ssh server - - laptop (if you have a laptop) - - print server - - standard system utilities - - Continue with /TAB/ and /ENTER/. - -*** 2.9 Finishing installation - - Answer the next question simply with /ENTER/. Then remove the boot device from the computer until it start again the installer. At the first start you will be asked, if you want to 'Use default config' or simply 'One empty panel'. I recommend to 'Use default config' and customize it later. - - *So congratulations to your Debian testing "jessie"!* - -** 3 Upgrade from Debian 7 - - If you have already an Debian 7, then make a backup and continue with step 2. - -*** 3.1 Install a Debian 7 - - If the installation above fails, you can try this way to get an Debian testing on your system. First install Debian 7 "wheezy" on your computer. You can mostly following the guide above. You can download it on [[https://www.debian.org/distrib/netinst][https://www.debian.org/distrib/netinst]]. - -*** 3.2 Change repositories - - After installing, change your repositories as root with the command =nano /etc/apt/sources.list= - -**** 3.2.1 Debian 8 repositories (If you want just the next release) - - Replace "wheezy" everywhere with "jessie". It should be look like this: - - #+BEGIN_SRC conf - deb http://ftp.de.debian.org/debian/ jessie main - deb-src http://ftp.de.debian.org/debian/ jessie main - - deb http://security.debian.org/ jessie/updates main - deb-src http://security.debian.org/ jessie/updates main - - deb http://ftp.de.debian.org/debian/ jessie-updates main - deb-src http://ftp.de.debian.org/debian/ jessie-updates main - #+END_SRC - -**** 3.2.2 Debian testing repositories (If you always want a Debain testing) - - Replace "wheezy" everywhere with "testing". - - *Backport repositories must always have a codename like "jessie".* - - #+BEGIN_SRC conf - deb http://ftp.de.debian.org/debian/ testing main - deb-src http://ftp.de.debian.org/debian/ testing main - - deb http://security.debian.org/ testing/updates main - deb-src http://security.debian.org/ testing/updates main - - deb http://ftp.de.debian.org/debian/ testing-updates main - deb-src http://ftp.de.debian.org/debian/ testing-updates main - #+END_SRC - -*** 3.3 Upgrade the system - - Now update first the package list with =apt-get update= as root. Then upgrade your system with =apt-get upgrade && apt-get dist-upgrade= also as root. - -*** 3.4 Install systemd - - I highly recommend to install and use systemd. Install it first with =apt-get install systemd= as root. Then open the grub configuration with =nano /etc/default/grub= and add =init=/bin/systemd= to the line =GRUB_CMDLINE_LINUX_DEFAULT=. It should look like this: - - #+begin_src conf - GRUB_CMDLINE_LINUX_DEFAULT="nomodeset init=/bin/systemd" - #+end_src - - Execute then the following commands as root =update-grub && reboot=. - - *So congratulations to your Debian testing "jessie"!* - -* Schöne ruhige Zeit :@politics: - :PROPERTIES: - :EXPORT_DATE: 2013-12-24 01:59:59 - :EXPORT_FILE_NAME: schone-ruhige-zeit.md - :END: - - Seit den letzten Wahlen, welche vor einem Vierteljahr stattfanden, war es ruhig in Deutschland. Angenehm ruhig. Ich werde diese Zeit die nächsten vier Jahre sehr vermissen. Drei Monate habe ich nicht das wirre Gerede von so manchen hohlen Politiker_inenn hören müssen. Drei Monate lang hat mich kein hirnlos erstelltes Gesetz aus der Ruhe gerissen. Während viele sagen, dass diese lange Zeit ohne Regierung schlecht war, meine ich genau das Gegenteil. Von mir aus hätte das gerne noch vier Jahre so weiter gehen können. Diese Zeit lernte ich schätzen. Und gerade dann, als ich mich richtig daran gewöhnt hatte, war der Koalitionsvertrag "endlich" ausgearbeitet. Das nächste war dann der SPD-Mitgliederentscheid. Eine Idee für die die ansonsten zweifelhafte SPD-Führung gelobt gehört, auch wenn diese es garantiert nicht aus Gründen des Verlangens nach mehr Demokratie gemacht hat. Genau der selben SPD-Spitze hätte ich allerdings gewünscht, dass die Mitgliederabstimmung gegen die Große Koalition ausgeht. Als ich ein paar Tage nach dem Start dieser Abstimmung im Radio gehört habe, dass die komplette SPD-Führung zurücktritt, wenn die Basis gegen die Koalition stimmt, habe ich mir gedacht: "Leute, das ist eine einmalige Gelegenheit!"". Leider stand die Mehrheit trotzdem hinter der Großen Koalition. Man kann eben nicht alles haben, wobei ich gar nichts gegen eine Große Koalition habe. Es ist eigentlich egal, wer mit wem regiert. Es kommt immer das selbe raus: Ein riesiger Haufen Müll! Nachdem dann das Ergebnis verkündet wurde, war mit klar, dass es aus ist mit der Ruhe. Doch das es SO schlimm kommt, habe ich nicht erwartet. Schon allein die Verteilung der Ministerposten ist ein Grund zum auswandern. Und dann war es so weit: Frau Merkel beginnt ihre Amtszeit mit der obligatorischen Lüge, dass es dem Volk nach diesen vier Jahren besser gehen wird. Es ist zum heulen. Ich wünsche mir diese schöne, ruhige Zeit zurück als diese ganzen Lügner an ihrem geisteskranken Koalitionsvertrag herum gedoktort haben. - - Vielen Dank an Jan S. für die Unterstützung! - -* 15. September 2013 :@private: - :PROPERTIES: - :EXPORT_DATE: 2013-09-15 01:59:59 - :EXPORT_FILE_NAME: 15-september-2013.md - :END: - - Ich habe mich dazu entschlossen wieder einen politischen Artikel zu verfassen. Leider fehlt es mir nurgerade an einem Thema... - - Wenn jemand eine Idee hat, über was ich schreiben soll, dann kann er diese mir per Mail an me(at)mmk2410(dot)org mitteilen. Ich denke, dass ich dann trotz der Zeit in der Oberstufe ein wenig Zeit dafür finde. - - Ich wünsche allen Schülern die diesen Artikel lesen ein gutes und erfolgreiches neues Schuljahr. - -* 02. August 2013 :@private: - :PROPERTIES: - :EXPORT_DATE: 2013-08-02 01:59:59 - :EXPORT_FILE_NAME: 02-august-2013.md - :END: - - Tja, mit der Bilderseite war es letzte Woche nichts mehr. Wann das ganze fertig wird, weiß ich auch nicht genau. Wie es gerade aussieht kannst du auf dieser Seite anschauen. Wahrscheinlich dauerts aber noch ein bisschen. - - Seit heute bin ich als ein Übersetzter der Software gtkpod tätig. - - Jetzt sind erstmal die nächsten sechs Wochen Ferien. Was ich mach, weiß ich zwar noch nicht, aber besser als Schule ist es auf jeden Fall! - -* 22. Juli 2013 :@private: - :PROPERTIES: - :EXPORT_DATE: 2013-07-22 01:59:59 - :EXPORT_FILE_NAME: 22-juli-2013.md - :END: - - Wer auch immer das ließt: Ab heute schreibe ich auf meiner Website im Bereich Blog auch Sachen über mich. - - In diesem Blog ist nun alles vermischt: Artikel über die Politik und die Welt, wie auch die Einträge über mich. - - Die letzten eineinhalb Schulwochen fangen schon gut an! Und zwar mit den Bundesjugendspielen. Zwar nimmt meine Jahrgangsstufe nicht mehr teil, doch nun heißt die Aufgabe: Organisieren und Leiten. Es geht zwar ganz schön auf die Ohren, wenn man den ganzen Vormittag die Startklappe zuschlagen muss, ist allerdings immernoch bei weitem besser als Unterricht! Der Vormittag dauerte nur bis um 11:20, denn dann war alles wieder aufgeräumt und die Urkunden für die unteren Klassen ausgestellt. Da hieß es dann heimfahren. Heute Nachmittag kamen mir dann zwei (gute) Ideen Für meine Website: zum einen dieser Blog und zum andereneine Bilderseite. Während der Blog jetzt schon so gut wie fertig ist, wird das mit der Bilderseite noch eine Weile dauern. Vielleicht bin ich Ende der Woche fertig. - - Das war's auch schon für heute. Die Hitze hat mich ganz schön fertig gemacht. Und da morgen "Unterricht" sein soll, hau ich mich mal jetzt (also um halb 12) in die Kiste. - -* Meinungsfreiheit in Deutschland? :@politics: - :PROPERTIES: - :EXPORT_DATE: 2013-06-30 13:13:00 - :EXPORT_FILE_NAME: meinungsfreiheit-in-deutschland.md - :END: - - In den letzten Jahren fielen mir zum Thema "keine Meinungsfreiheit" immer Länder wie China oder Russland ein. Doch das änderte sich am 25. Januar 2011 als das Volk in Ägypten aufstand und gegen Mubarak demonstrierte. Die Protestwelle des arabischen Frühlings hat mir vorallem gezeigt, dass viele Menschen nicht einfach ihrer Meinung sagen können. In Ägypten gingen die Proteste mit über 800 Toten vergleichsweise "friedlich" aus. Bei den Meinungsäußerungen im Nachbarstaat Libyen starben 10.000 Menschen. Darunter 5.000 Rebell_, von welchen die meisten in den Bürgerkreig gezogen sindum ihre Meinung zu sagen. Doch die Welle des arabischen Frühlings ist noch nicht vorbei! Im syrischen Bürgerkrieg, welcher Anfang 2011 begann, starben bisher 93.000 Menschen,viele, weil sie gegen die momentane Regierung sind. Eine Millionen (so geschrieben: 1.000.000) Syrer_innen sind im Exil und vier (!) Millionen auf der Flucht. Und vor ein paar Wochen hat die Welle auch die Türkei erfasst, wo, wie zu sehen ist, auch von der Meinungsfreiheit nichts gehalten wird. - - Da stellt sich mir auf einmal die Frage, wie eigentlich die Situation hierzulande aussieht. In Deutschland. Einem Staat, welcher angeblich einer der modernsten und wirtschafttsstärksten weltweit ist. Ein Staat, in welchem die Meinungsfreiheit angeblichgeachtet wird, welche sogar im Grundgesetzt festgehalten ist (Artikel 5). Doch dürfen wir uns, als deutsche Bürger_innen, wirklich frei äußern? Dürfen wir sagen und schreiben was wir wollen? Oder finden wir das, was wir in anderen Ländern vergebens suchen, in Deutschland genauso wenig? In der letzten Zeit sind die Antworten auf die oben genannten Fragen glasklar! Egal ob wir nach Frankfurt, nach Bayreuth oder nach Augsburg blicken. - - Einer der neusten Fälle in den letzten Tagen, war der Polizeibesuch bei Frau Gresser, welche in einem Tweet schrieb, dass man Beate Merk am 10.06.13 um 19:00 im Landgasthof Hofolding fragen könne, wann Mollath freikommt. Kurz darauf standen dann zwei Polizisten vor der Tür und schüchterten Frau Gresser ein. An dieser Stelle wurden zwei Sachen in die Tonne getreten, die für eine Demokratie unabdingbar sind. Zum einen die freie Meinungsäußerung und zum anderen die Gewaltenteilung, was einer Diktatur gleichkommt! - - Ein anderer Fall ist auch in Bayern geschehen, in Augsburg, um genau zu sein. Frau Johanna Holm hat an die Augsburger Allgemeine Zeitung einen Leserbrief geschrieben, in welchem sie die Aufstellung eines CSU-Bundestagskandidaten kritische betrachtete. Zwei Wochen später bekommt Frau Holm einen Brief von einem Anwalt und einen riesigen Schrecken. Der Anwalt wurde von den CSU Politikern Kränzle und von Hohenhau losgelassen. In dem Briefumschlag fand die Rentnerin das Ultimatum, dass sie entweder ihre Meinung öffentlich dementiern muss und eine Unterlassungserklärung unterschrieben muss, sonst drohe ihr eine Strafe von 5000,01 €. Daraufhin hat die standhafte Augsburgerin die Augsburger Allgeimeine Zeitung kontaktiert, welche einen Artikel dazu schrieb. Viele Leserbriefe und über 300 Internetkommentare gingen daraufhin bei der Zeitung ein. Später entschuldigten sich dann die meinungsfeindlichen Politiker. Wenn ich nur daran denke, dass Menschen, die die Meinungsfreiheit und somit das Grundgesetzt so dermaßen verachten, Politiker sind und theoretisch mal über das Volk regieren, wird mir übel! - - Doch es geht auch größer! In Frankfurt wurden 1000 Blockupy-Demonstranten gewaltsam daran gehindert, ihre Meinung zu sagen! Wenn ich die Bilder aus Frankfurts Innenstadt mit denen vom Taksim Platz in Istanbul vergleiche kann ich keine Unterschiede erkennen. In beiden Fällen hat die Polizei total überreagiert. Und der Befehl sicher nicht von einem Polizeibeamten gekommen! - - Wenn ich jetzt über den vierten Fall schreibe, dann schreibe ich über einen der größten Justizskandal in der ganzen Geschichte der Bundesrepublik Deutschland. Nürnberg - Bayreuth - München. Das sind die Orte die unweigerlich mit dem Fall Mollath zu tun haben. Mollath. Ein Mann der seit 2006 unschuldig in der Psychatrie in Bayreuth sitzt. Die Gutachten die das Justizopfer als geistig krank einstufen wurden von Leuten geschreiben, die Mollath nie gesehen, geschweige denn mit ihm gesprochen haben. Der Richter der in diesem Fall das Urteil sprach war voreingenommen und hat Mollath weder sich verteidigen lassen noch dessen Verteidigungsschrift gelesen. Mollath, welcher nach meiner Überzeugung im Vollbesitz seiner geistigen Kräfte ist, hat Schwarzgeldgeschäfte der Hypo Vereinsbank zur Anzeige gebracht, bei welchen seine Frau als Vermögensberaterin aktiv beteiligt war. Diese Anzeige wurde von der Polizei nicht bearbeitet, was der, später für den Fall zuständige, Richter Brixner veranlasste. Die Hypo Vereinsbank hat mittlerweile zugegeben, dass Mollath in allen Punkten der Anzeige recht hat. Auch seine Frau und das Gutachten von Dr. Leipziger sind nicht mehr glaubwürdig. So sehe ich keinen Grund mehr, dass Mollath in der Psychatrie sitzt. Mittlerweile sitzt er seit 7 Jahren in der Psychatrie, weil er seine Meinung gesagt hat. - - Die hier aufgeführten Fälle sind nur einige von vielen, in denen in Deutschland die Meinungsfreiheit verachtet wird. Ich sehe, dass hier die Politik viel nachzubessern hat, wie zum Beispiel eine stärkere Trennung von Staat und Justiz. Des weiteren hoffe ich, dassMollath bald freikommt und die Unterdrückung von Menschen die ihre Meinung sagen aufhört. diff --git a/content-org/quotes.org b/content-org/quotes.org deleted file mode 100644 index a857e3b..0000000 --- a/content-org/quotes.org +++ /dev/null @@ -1,3680 +0,0 @@ -#+HUGO_SECTION: quotes -#+HUGO_BASE_DIR: ../ - -* Abschluss des Projekts :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-17 01:59:59 - :EXPORT_FILE_NAME: abschluss-des-projekts.md - :END: - - 365 Tage - ein ganzes Jahr - sind vergangen seit ich dieses Projekt365 gestartet habe. Trotz so mancher Ausfälle habe ich das Ziel erreicht: 365 ausgewählte Zitate - jeden Tag ein anderes. 365 Tage an denen mich jedes einzelne zum Nachdenken über die verschiedensten Dinge im Leben angeregt hat. - - Einige dieser Zitate habe ich passend zur damals aktuellen politischen Situation ausgewählt, andere passend zu damals aktuellen Ereignissen in meinem Leben, wiederum andere weil sie mich zum Überlegen anregten. - - *365 Tage - 365 Zitate - 365 mal Nachdenken* - - Dieses Projekt365 hat im vergangenen Jahr einen nicht ganz unbedeutenden Platz in meinem Leben eingenommen. Zeitweise war es eine Aufgabe wie jede andere, zeitweise der Abschluss eines Tages, manchmal auch der Anfang von endlosen teilweise wirren Gedankengängen. Von Zeit zu Zeit hat mich die Arbeit an diesem Projekt bei meiner aktuellen Hauptbeschäftigungen unterstützt, andere Male mich eher von dieser abgehalten. Ich nachhinein kann ich sagen, dass jede Sekunde die ich investiert habe, sich gelohnt hat. - - Während der Zeit, die ich in dieses Projekt gesteckt habe, habe ich nicht nur die Namen einiger mir bis dahin unbekannter Persönlichkeiten kennengelernt, auch habe ich erkannt, dass Gedanken, die teilweise mehrere hundert - sogar manchmal tausende - Jahre alt sind auch heutzutage immer noch einen unschätzbaren Wert haben, auch in aktuellsten Ereignissen. - - Nun möchte ich dieses Projekt mit dem Satz, der mich dazu bewogen hat dieses Vorhaben anzufangen, abschliessen: - - /Wer will findet Wege. Wer nicht will Gründe./ - -* Tag 365 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-16 02:00:00 - :EXPORT_FILE_NAME: tag-365.md - :END: - - "Solange man lebt, ist nichts endgültig." - - Arnold Zweig (1887 - 1968) - -* Tag 364 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-15 02:00:00 - :EXPORT_FILE_NAME: tag-364.md - :END: - - "Die Menschheit muss dem Krieg ein Ende setzen, oder der Krieg setzt der Menschheit ein Ende." - - John F. Kennedy (1917 – 1963) - -* Tag 363 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-15 02:00:00 - :EXPORT_FILE_NAME: tag-363.md - :END: - - "Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist der Selbe wie der unterschied zwischen einem Blitz und einem Glühwürmchen." - - Mark Twain (1835 - 1910) - -* Tag 362 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-13 02:00:00 - :EXPORT_FILE_NAME: tag-362.md - :END: - - "Ausländer ansich sind kein Problem. Aber die Dummköpfe, die daraus ein Problem machen sind problematisch." - - Roger Graf (*1958) - -* Tag 361 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-12 02:00:00 - :EXPORT_FILE_NAME: tag-361.md - :END: - - "Wo immer wir an eine Grenze geraten und festen Fuß zu fassen vermeinen, gerät sie in Bewegung und entgleitet uns." - - Blaise Pascal (1623 – 1662) - -* Tag 360 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-12 02:00:00 - :EXPORT_FILE_NAME: tag-360.md - :END: - - "Weisheit ist ebenso sehr eine Angelegenheit des Herzens wie des Kopfes. Wenn sich auch die Grundlagen einer Wissenschaft rasch erwerben lassen, so erwächst doch der Anteil des Herzens an der Weisheit nur aus vielen Erfahrungen in Freud und Leid, Hoffnung, Enttäuschung, Erfolg und Misserfolg." - - William McDougali (1871 – 1938) - -* Tag 359 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-10 02:00:00 - :EXPORT_FILE_NAME: tag-359.md - :END: - - "Wer glaubt etwas zu sein, hat aufgehört, etwas zu werden." - - Sokrates (469 v.Chr. - 399 v.Chr.) - -* Tag 358 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-10 02:00:00 - :EXPORT_FILE_NAME: tag-358.md - :END: - - " Gib dich nicht so, wie du sein willst, sei wie du bist!" - - Fred Ammon (*1930) - -* Tag 357 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-08 02:00:00 - :EXPORT_FILE_NAME: tag-357.md - :END: - - "Unter Demokratie verstehe ich, daß sie dem Schwächsten die gleichen Chancen einräumt wie dem Stärksten." - - Mahatma Gandhi (1869 - 1948) - -* Tag 356 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-08 02:00:00 - :EXPORT_FILE_NAME: tag-356.md - :END: - - "Du kannst mehr über eine Person lernen, indem du darauf achtest, wie sie über andere spricht, als wenn du darauf achtest, wie andere über sie sprechen." - - Audrey Hepburn (1929 - 1993) - -* Tag 355 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-06 02:00:00 - :EXPORT_FILE_NAME: tag-355.md - :END: - - "Mache dich von deinen Vorurteilen los, und du bist gerettet." - - Mark Aurelius (121 - 180) - -* Tag 354 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-05 02:00:00 - :EXPORT_FILE_NAME: tag-354.md - :END: - - "Die Basis einer gesunden Ordnung ist ein großer Papierkorb." - - Kurt Tucholsky (1890 - 1935) - -* Tag 353 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 02:00:00 - :EXPORT_FILE_NAME: tag-353.md - :END: - - "Das Leben gleicht einem Buche. Toren durchblättern es flüchtig; der Weise liest es mit Bedacht, weil er weiß, dass er es nur einmal lesen kann." - - Jean Paul (1763 - 1825) - -* Tag 352 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 02:00:00 - :EXPORT_FILE_NAME: tag-352.md - :END: - - "Multitasking ist keine Kunst sondern die Unfähigkeit, sich zu organisieren." - - Martin Geiger (*1968) - -* Tag 351 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 02:00:00 - :EXPORT_FILE_NAME: tag-351.md - :END: - - "Was andere Menschen von dir denken ist nicht dein Problem." - - Paulo Coelho (*1947) - -* Tag 350 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 02:00:00 - :EXPORT_FILE_NAME: tag-350.md - :END: - - "Der Wechsel allein ist das Beständige." - - Albert Camus (1913 - 1960) - -* Tag 349 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 02:00:00 - :EXPORT_FILE_NAME: tag-349.md - :END: - - "Das Wissen hat Grenzen, das Denken nicht!" - - Albert Schweitzer (1875 - 1965) - -* Tag 348 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2016-01-04 02:00:00 - :EXPORT_FILE_NAME: tag-348.md - :END: - - "Öffne der Veränderung deine Arme, aber verliere dabei deine Werte nicht aus den Augen." - - Dalai Lama - -* Tag 347 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-347.md - :END: - - "Das ganze Leben ist ein Experiment." - - Ralph Waldo Emerson (1803 - 1882) - -* Tag 346 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-346.md - :END: - - "Die Menschen fürchten den Tod sogar mehr als den Schmerz. Es ist komisch, dass sie den Tod fürchten. Das Leben schmerzt viel mehr als der Tod. Im Moment des Todes ist der Schmerz vorbei. Ja, ich glaube er ist ein Freund." - - Jim Morrison (1943 - 1971) - -* Tag 345 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-345.md - :END: - - "Es gibt Leute, deren Herzen gerade in dem Grad einschrumpfen, als ihre Geldbörsen sich erweitern." - - Aldous Huxley (1894 - 1963) - -* Tag 344 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-344.md - :END: - - "Ich habe einen Traum, dass meine vier Kinder eines Tages in einer Nation leben werden, in der man sie nicht nach ihrer Hautfarbe, sondern nach ihrem Charakter beurteilen wird." - - Martin Luther King (1929 - 1968) - -* Tag 343 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-343.md - :END: - - "Der leichte Weg ist auch der richtige Weg." - - Bruce Lee (1940 - 1973) - -* Tag 342 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-342.md - :END: - - "Vergebung ist keine einmalige Sache, Vergebung ist ein Lebensstil." - - Martin Luther King (1929 - 1968) - -* Tag 341 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-341.md - :END: - - "Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." - - Albert Einstein (1879 - 1955) - -* Tag 340 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-29 02:00:00 - :EXPORT_FILE_NAME: tag-340.md - :END: - - "Der Kluge lernt aus allem und von jedem, der Normale aus seinen Erfahrungen und der Dumme weiß alles besser." - - Sokrates (469 v.Chr. - 399 v.Chr.) - -* Tag 339 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-21 02:00:00 - :EXPORT_FILE_NAME: tag-339.md - :END: - - "In Büchern liegt die Seele aller gewesenen Zeit." - - Thomas Carlyle (1795 - 1881) - -* Tag 338 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-338.md - :END: - - "Freiheit ist das Recht, anderen zu sagen, was sie nicht hören wollen." - - George Orwell (1903 - 1950) - -* Tag 337 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-337.md - :END: - - "Niemand ist nutzlos in dieser Welt, der einem anderen die Bürde leichter macht." - - Charles Dickens (1812 - 1870) - -* Tag 336 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-336.md - :END: - - "Die Sanduhren erinnern nicht bloß an die schnelle Flucht der Zeit, sondern auch zugleich an den Staub, in welchen wir einst verfallen werden." - - Georg Christoph Lichtenberg (1742 - 1799) - -* Tag 335 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-335.md - :END: - - "Ein einziger Grundsatz wird dir Mut geben, nämlich der, dass kein Übel ewig währt." - - Epikur von Samos (341 v.Chr. - 270 v.Chr.) - -* Tag 334 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-334.md - :END: - - "In Wirklichkeit gibt es nur die Atome und das Leere." - - Demokrit (460 v.Chr. - 370 v.Chr.) - -* Tag 333 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-333.md - :END: - - "Die Verfassung eines Staates solle so sein, dass sie die Verfassung des Bürgers nicht ruiniert." - - Stanislaw Jerzy Lec (1909 - 1966) - -* Tag 332 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-332.md - :END: - - "Alle großen Dinge sind einfach und viele können mit einem einzigen Wort ausgedrückt werden: Freiheit, Gerechtigkeit, Ehre, Pflicht, Gnade, Hoffnung." - - Winston Churchill (1874 - 1965) - -* Tag 331 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-331.md - :END: - - "Halte dich immer für dümmer als die anderen - sei es aber nicht!" - - Jean Cocteau (1889 - 1963) - -* Tag 330 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-330.md - :END: - - "Viele sind hartnäckig in Bezug auf den einmal eingeschlagenen Weg, wenige in Bezug auf das Ziel." - - Friedrich Nietzsche (1844 - 1900) - -* Tag 329 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-329.md - :END: - - "Wenn die Macht der Liebe über die Liebe zur Macht siegt, wird die Welt Frieden finden." - - Jimi Hendrix (1942 - 1970) - -* Tag 328 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-328.md - :END: - - "Sorgen ertrinken nicht in Alkohol. Sie können schwimmen." - - Heinz Rühmann (1902 - 1994) - -* Tag 327 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-327.md - :END: - - "Es gibt Menschen, die sich immer angegriffen wähnen, wenn jemand eine Meinung ausspricht." - - Christian Morgenstern (1871 - 1914) - -* Tag 326 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-326.md - :END: - - "Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit." - - Joseph Joubert (1774 - 1824) - -* Tag 325 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-325.md - :END: - - "Wer nichts verändern will, wird auch das verlieren, was er bewahren möchte." - - Gustav Heinemann (1899 - 1976) - -* Tag 324 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-20 02:00:00 - :EXPORT_FILE_NAME: tag-324.md - :END: - - "Die Welt ist ein Buch. Wer nie reist, sieht nur eine Seite davon." - - Augustinus Aurelius (354 - 430) - -* Tag 323 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-05 02:00:00 - :EXPORT_FILE_NAME: tag-323.md - :END: - - "Wenn du immer alle Regeln befolgst, verpasst du den ganzen Spaß." - - Kathrine Hepburn (1907 - 2003) - -* Tag 322 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-04 02:00:00 - :EXPORT_FILE_NAME: tag-322.md - :END: - - "Man kann auf seinem Standpunkt stehen, aber man sollte nicht darauf sitzen." - - Erich Kästner (1899 - 1974) - -* Tag 321 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-04 02:00:00 - :EXPORT_FILE_NAME: tag-321.md - :END: - - "Es kommt nicht darauf an, dem Leben mehr Jahre zu geben, sondern den Jahren mehr Leben zu geben." - - Alex Carrel (1873 - 1944) - -* Tag 320 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-04 02:00:00 - :EXPORT_FILE_NAME: tag-320.md - :END: - - "Gefährlicher als eine falsche Theorie ist eine richtige in falschen Händen." - - Gabriel Laub (1928 - 1998) - -* Tag 319 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-12-01 02:00:00 - :EXPORT_FILE_NAME: tag-319.md - :END: - - "Das Denken ist zwar allen Menschen erlaubt, aber vielen bleibt es erspart." - - Curt Goetz (1888 - 1960) - -* Tag 318 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-30 02:00:00 - :EXPORT_FILE_NAME: tag-318.md - :END: - - "Wer heutzutage Karriere machen will, muss schon ein bisschen Menschenfresser sein." - - Salvador Dali (1904 - 1989) - -* Tag 317 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-29 02:00:00 - :EXPORT_FILE_NAME: tag-317.md - :END: - - "Die Wahrheit kann auch eine Keule sein, mit der man andere erschlägt." - - Anatole France (1844 - 1924) - -* Tag 316 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-29 02:00:00 - :EXPORT_FILE_NAME: tag-316.md - :END: - - "Erfahrungen vererben sich nicht - jeder muss sie allein machen." - - Kurt Tucholsky (1890 - 1935) - -* Tag 315 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-29 02:00:00 - :EXPORT_FILE_NAME: tag-315.md - :END: - - "Was wäre das Leben, hätten wir nicht den Mut, etwas zu riskieren?" - - Vincent van Gogh (1853 - 1890) - -* Tag 314 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-29 02:00:00 - :EXPORT_FILE_NAME: tag-314.md - :END: - - "Durch die Gasse der Vorurteile muss die Wahrheit ständig Spießruten laufen." - - Indira Gandhi (1917 - 1984) - -* Tag 313 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-25 02:00:00 - :EXPORT_FILE_NAME: tag-313.md - :END: - - "Gutes kann niemals aus Lüge und Gewalt entstehen." - - Mahatma Gandhi (1869 - 1948) - -* Tag 312 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-25 02:00:00 - :EXPORT_FILE_NAME: tag-312.md - :END: - - "Wenn ich die Folgen geahnt hätte, wäre ich Uhrmacher geworden." - - Albert Einstein (1879 - 1955) - -* Tag 311 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-25 02:00:00 - :EXPORT_FILE_NAME: tag-311.md - :END: - - "Was du mir sagst, das vergesse ich. Was du mir zeigst, daran erinnere ich mich. Was du mich tun lässt, das verstehe ich." - - Konfizius (551 v. Chr. - 479 v. Chr.) - -* Tag 310 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-25 02:00:00 - :EXPORT_FILE_NAME: tag-310.md - :END: - - "Ein Geschäft, das nur Geld einbringt, ist ein schlechtes Geschäft." - - Henry Ford ( 1863 - 1947) - -* Tag 309 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-25 02:00:00 - :EXPORT_FILE_NAME: tag-309.md - :END: - - "Man fällt nicht über seine Fehler. Man fällt immer über seine Feinde, die diese Fehler ausnutzen." - - Kurt Tucholsky (1890 - 1935) - -* Tag 308 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-20 02:00:00 - :EXPORT_FILE_NAME: tag-308.md - :END: - - "Geistlose kann man nicht begeistern, aber fanatisieren kann man sie." - - Marie von Ebner-Eschenbach (1830 - 1916) - -* Tag 307 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-20 02:00:00 - :EXPORT_FILE_NAME: tag-307.md - :END: - - "Ein Gelehrter in seinem Laboratorium ist nicht nur ein Techniker; er steht auch vor den Naturgesetzen wie ein Kind vor der Märchenwelt." - - Marie Curie (1867 - 1936) - -* Tag 306 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-20 02:00:00 - :EXPORT_FILE_NAME: tag-306.md - :END: - - "Der Mensch ist das einzige Lebewesen, das von sich eine schlechte Meinung hat." - - George Bernard Shaw (1856 - 1950) - -* Tag 305 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-20 02:00:00 - :EXPORT_FILE_NAME: tag-305.md - :END: - - "Ein Blick in die Welt beweist, dass Horror nichts anderes ist als Realität." - - Alfred Hitchcock (1899 - 1980) - -* Tag 304 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-20 02:00:00 - :EXPORT_FILE_NAME: tag-304.md - :END: - - "Erst kommt das Fressen, dann die Moral." - - Bertholt Brecht (1898 - 1956) - -* Tag 303 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-303.md - :END: - - "Es gibt keinen Weg zum Frieden, denn Frieden ist der Weg." - - Mahatma Gandhi (1869 - 1948) - -* Tag 302 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-302.md - :END: - - "Ich glaube an die Gewaltlosigkeit als einziges Heilmittel." - - Mahatma Gandhi (1869 - 1948) - -* Tag 301 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-301.md - :END: - - "Der Kopf ist rund, damit das Denken die Richtung ändern kann." - - Francis Picabia (1879 - 1953) - -* Tag 300 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-300.md - :END: - - "Tadeln ist leicht; deshalb versuchen sich so viele darin. Mit Verstand loben ist schwer; darum tun es so wenige." - - Anselm Feuerbach (1829 - 1880) - -* Tag 299 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-299.md - :END: - - "Nicht den Tod sollte man fürchten, sondern dass man nie beginnen wird, zu leben." - - Mark Aurelius (121 - 180) - -* Tag 298 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-298.md - :END: - - "Vertrauen ist das Gefühl, einem Menschen sogar dann glauben zu können, wenn man weiß, dass man an seiner Stelle lügen würde." - - Henry Louis Mencken (1880 - 1956) - -* Tag 297 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-297.md - :END: - - "Es ist immer sehr schwierig, über den Wert politischer Ziele zu urteilen, wenn deren Erreichung noch in weiter Ferne liegt. Ich glaube daher, dass man eine politische Bewegung nie nach seinen Zielen beurteilen darf, die sie laut verkündet und vielleicht auch wirklich anstrebt, sondern nur nach den Mitteln, die sie zu ihrer Verwirklichung einsetzt." - - Werner Heisenberg (1902 - 1976) - -* Tag 296 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-15 02:00:00 - :EXPORT_FILE_NAME: tag-296.md - :END: - - "Keinem vernünftigen Menschen wird es einfallen, Tintenflecken mit Tinte, Ölflecken mit Öl wegwaschen zu wollen. Nur Blut soll immer wieder mit Blut abgewaschen werden." - - Bertha von Suttner (1843 - 1914) - -* Tag 295 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-14 02:00:00 - :EXPORT_FILE_NAME: tag-295.md - :END: - - "Man löst keine Probleme, indem man sie auf Eis legt." - - Winston Churchill (1874 - 1965) - -* Tag 294 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-14 02:00:00 - :EXPORT_FILE_NAME: tag-294.md - :END: - - "Wenn auf der Erde die Liebe herrschte, wären alle Gesetze entbehrlich." - - Aristoteles (384 v. Chr - 322 v. Chr.) - -* Tag 293 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-14 02:00:00 - :EXPORT_FILE_NAME: tag-293.md - :END: - - "Von allen Geschenken, die uns das Schicksal gewährt, gibt es kein größeres Gut als die Freundschaft - keinen größeren Reichtum, keine größere Freude." - - Epikur von Samos (371 v. Chr. - 270 v. Chr.) - -* Tag 292 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-14 02:00:00 - :EXPORT_FILE_NAME: tag-292.md - :END: - - "Die besten Dinge im Leben sind nicht die, die man für Geld bekommt." - - Albert Einstein (1879 - 1955) - -* Tag 291 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-14 02:00:00 - :EXPORT_FILE_NAME: tag-291.md - :END: - - "Unser Leben ist das Produkt unserer Gedanken." - - Mark Aurelius (121 - 180) - -* Tag 290 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-14 02:00:00 - :EXPORT_FILE_NAME: tag-290.md - :END: - - "Die Zukunft hat viele Namen: Für Schwache ist sie das Unerreichbare, für die Furchtsamen das Unbekannte, für die Mutigen die Chance." - - Victor Hugo (1802 - 1885) - -* Tag 289 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-14 02:00:00 - :EXPORT_FILE_NAME: tag-289.md - :END: - - "Es ist nicht genug zu wissen - man muss auch anwenden. Es ist nicht genug zu wollen - man muss auch tun." - - Johann Wolfgang von Goethe (1749 - 1832) - -* Tag 288 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-13 02:00:00 - :EXPORT_FILE_NAME: tag-288.md - :END: - - "In dem Maße, wie der Wille und die Fähigkeit zur Selbstkritik steigen, hebt sich auch das Niveau der Kritik an anderen." - - Christian Morgenstern (1871 - 1914) - -* Tag 287 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-13 02:00:00 - :EXPORT_FILE_NAME: tag-287.md - :END: - - "In Bibliotheken fühlt man sich wie in der Gegenwart eines großen Kapitals, das geräuschlos unberechenbare Zinsen spendet." - - Johann Wolfgang von Goethe (1749 - 1832) - -* Tag 286 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-13 02:00:00 - :EXPORT_FILE_NAME: tag-286.md - :END: - - "Jeder kann wütend werden, das ist einfach. Aber wütend auf den Richtigen zu sein, im richtigen Maß, zur richtigen Zeit, zum richtigen Zweck und auf die richtige Art, das ist schwer." - - Aristoteles (384 v. Chr - 322 v. Chr.) - -* Tag 285 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-13 02:00:00 - :EXPORT_FILE_NAME: tag-285.md - :END: - - "Donner ist gut und eindrucksvoll, aber die Arbeit leistet der Blitz." - - Mark Twain (1835 - 1910) - -* Tag 284 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-13 02:00:00 - :EXPORT_FILE_NAME: tag-284.md - :END: - - "Ein Urteil lässt sich widerlegen, ein Vorurteil nie." - - Marie von Ebner-Eschenbach (1830 - 1916) - -* Tag 283 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-13 02:00:00 - :EXPORT_FILE_NAME: tag-283.md - :END: - - "Sage nicht alles, was du weißt, aber wisse immer, was du sagst." - - Matthias Claudius (1740 - 1815) - -* Tag 282 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-11-13 02:00:00 - :EXPORT_FILE_NAME: tag-282.md - :END: - - "Der Langsamste, der sein Ziel nicht aus den Augen verliert, geht noch immer geschwinder, als jener, der ohne Ziel umherirrt." - - Gotthold Ephraim Lessing (1729 - 1781) - -* Tag 281 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-24 02:00:00 - :EXPORT_FILE_NAME: tag-281.md - :END: - - "Wer mit 19 kein Revolutionär ist, hat kein Herz. Wer mit 40 immer noch ein Revolutionär ist, hat keinen Verstand." - - Theodor Fontane (1819 - 1898) - -* Tag 280 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-23 02:00:00 - :EXPORT_FILE_NAME: tag-280.md - :END: - - "Der Mensch hat dreierlei Wege klug zu handeln: durch Nachdenken ist der edelste, durch Nachahmen der einfachste, durch Erfahrung der bitterste." - - Konfuzius (551 - 479 v. Chr.) - -* Tag 279 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-23 02:00:00 - :EXPORT_FILE_NAME: tag-279.md - :END: - - "Wer die Wahrheit nicht weiß, der ist bloß ein Dummkopf. Aber wer sie weiß und sie eine Lüge nennt, der ist ein Verbrecher." - - Bertholt Brecht (1898 - 1956) - -* Tag 278 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-23 02:00:00 - :EXPORT_FILE_NAME: tag-278.md - :END: - - "Es gibt drei Dinge, die sich nicht vereinen lassen: Intelligenz, Anständigkeit und Nationalsozialismus. Man kann intelligent und Nazi sein. Dann ist man nicht anständig. Man kann anständig und Nazi sein. Dann ist man nicht intelligent. Und man kann anständig und intelligent sein. Dann ist man kein Nazi." - - Gerhard Bronner (1922 - 2007) - -* Tag 277 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-23 02:00:00 - :EXPORT_FILE_NAME: tag-277.md - :END: - - "Mit dem Leben ist es wie mit einem Theaterstück. Es kommt nicht darauf an, wie lang es ist, sondern wie bunt." - - Lucius Annaeus Seneca (4 v.Chr. - 65 n - -* Tag 276 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-19 02:00:00 - :EXPORT_FILE_NAME: tag-276.md - :END: - - "Alles was du sagst, sollte wahr sein. Aber nicht alles was wahr ist, solltest du auch sagen." - - Voltaire (1694 - 1748) - -* Tag 275 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-18 02:00:00 - :EXPORT_FILE_NAME: tag-275.md - :END: - - "Man muss viel gelernt haben, um über das, was man nicht weiß, fragen zu können." - - Jean-Jacques Rousseau (1712 - 1778) - -* Tag 274 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-274.md - :END: - - "Kunst hat mit Geschmack nichts zu tun." - - Max Ernst (1891 - 1976) - -* Tag 273 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-273.md - :END: - - "Es ist schwieriger, eine vorgefasste Meinung zu zertrümmern als ein Atom." - - Albert Einstein (1879 - 1955) - -* Tag 272 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-272.md - :END: - - "Politik ist nur der Spielraum, den die Wirtschaft ihr lässt." - - Dieter Hildebrandt (1927 - 2013) - -* Tag 271 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-271.md - :END: - - "Die Jagd nach dem Sündenbock ist die einfachste." - - Dwight D. Eisenhower (1890 - 1969) - -* Tag 270 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-270.md - :END: - - "Unkraut nennt man die Pflanzen, deren Vorzüge noch nicht erkannt worden sind." - - Ralph Waldo Emerson (1803 - 1882) - -* Tag 269 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-269.md - :END: - - "Tradition ist eine Laterne, der Dumme hält sich an ihr fest, dem Klugen leuchtet sie den Weg" - - George Bernard Shaw (1856 - 1950) - -* Tag 268 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-268.md - :END: - - "Ein Pessimist zu sein hat den Vorteil, dass man entweder ständig recht behält oder angenehme Überraschungen erlebt." - - George Will (*1941) - -* Tag 267 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-267.md - :END: - - "Nur der Denkende erlebt sein Leben, an Gedankenlosen zieht es vorbei." - - Marie von Ebner-Eschenbach (1830 - 1916) - -* Tag 266 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-266.md - :END: - - "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - - Henry Ford (1863 - 1947) - -* Tag 265 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-265.md - :END: - - "Wir leben auf Kosten der dritten Welt und wundern uns, wenn das Elend anklopft." - - Gregor Gysi (*1948) - -* Tag 264 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-264.md - :END: - - "Der verlorenste aller Tage ist der, an dem man nicht gelacht hat." - - Nicolas Chamfort (1741 - 1794) - -* Tag 263 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-263.md - :END: - - "Talente finden Lösungen, Genies entdecken Probleme." - - Hans Krailsheimer (1888 - 1958) - -* Tag 262 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-262.md - :END: - - "Menschen mit einer neuen Idee gelten so lange als Spinner, bis sich die Sache durchgesetzt hat." - - Mark Twain (1835 - 1910) - -* Tag 261 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-17 02:00:00 - :EXPORT_FILE_NAME: tag-261.md - :END: - - "Der Verstand und die Fähigkeit ihn zu gebrauchen, sind zweierlei Fähigkeiten." - - Franz Grillparzer (1791 - 1872) - -* Tag 260 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-03 02:00:00 - :EXPORT_FILE_NAME: tag-260.md - :END: - - "Prüfungen sind deshalb so scheußlich, weil der größte Trottel mehr fragen kann, als der klügste Mensch zu beantworten vermag." - - Charles Caleb Colton (1780 - 1832) - -* Tag 259 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-02 02:00:00 - :EXPORT_FILE_NAME: tag-259.md - :END: - - "Nicht, was wir erleben, sondern wie wir empfinden, was wir erleben, macht unser Schicksal aus." - - Marie von Ebner-Eschenbach (1830 - 1916) - -* Tag 258 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-10-01 02:00:00 - :EXPORT_FILE_NAME: tag-258.md - :END: - - "Die meisten leben in den Ruinen ihrer Gewohnheiten." - - Jean Cocteau (1889 - 1963) - -* Tag 257 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-30 02:00:00 - :EXPORT_FILE_NAME: tag-257.md - :END: - - "Es ist nicht der Berg, den wir bezwingen - wir bezwingen uns selbst." - - Edmund Hillary (1919 - 2008) - -* Tag 256 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-29 02:00:00 - :EXPORT_FILE_NAME: tag-256.md - :END: - - "Wer nicht zufrieden ist mit dem, was er hat, der wäre auch nicht zufrieden mit dem, was er haben möchte." - - Berthold Auerbach (1812 - 1882) - -* Tag 255 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-28 02:00:00 - :EXPORT_FILE_NAME: tag-255.md - :END: - - "Unsere Hauptaufgabe ist nicht, zu erkennen, was unklar in weiter Entfernung liegt, sondern zu tun, was klar vor uns liegt." - - Thomas Carlyle (1785 - 1881) - -* Tag 254 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-27 02:00:00 - :EXPORT_FILE_NAME: tag-254.md - :END: - - "Ich kann die Bewegung der Himmelskörper berechnen, aber nicht das zuweilen abnorme Verhalten der Menschen." - - Isaac Newton (1642 - 1726) - -* Tag 253 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-26 02:00:00 - :EXPORT_FILE_NAME: tag-253.md - :END: - - "Wenn wir bedenken, dass wir alle verrückt sind, ist das Leben erklärt." - - Mark Twain (1835 - 1910) - -* Tag 252 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-25 02:00:00 - :EXPORT_FILE_NAME: tag-252.md - :END: - - "Der Gedanke an die Vergänglichkeit aller irdischen Dinge ist ein Quell unendlichen Leids - und ein Quell unendlichen Trostes." - - Marie von Ebner-Eschenbach (1830 - 1916) - -* Tag 251 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-24 02:00:00 - :EXPORT_FILE_NAME: tag-251.md - :END: - - "Wer immer die Wahrheit sagt, kann sich ein schlechtes Gedächtnis leisten." - - Theodor Heuss (1884 - 1963) - -* Tag 250 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-23 02:00:00 - :EXPORT_FILE_NAME: tag-250.md - :END: - - "Wenn die meisten sich schon armseliger Kleider und Möbel schämen, wie viel mehr sollten wir uns da erst armseliger Ideen und Weltanschauungen schämen." - - Albert Einstein (1879 - 1955) - -* Tag 249 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-22 02:00:00 - :EXPORT_FILE_NAME: tag-249.md - :END: - - "Auch eine Enttäuschung, wenn sie nur gründlich und endgültig ist, bedeutet einen Schritt vorwärts." - - Max Planck (1858 - 1947) - -* Tag 248 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-21 02:00:00 - :EXPORT_FILE_NAME: tag-248.md - :END: - - "Und schießlich gibt es das älteste und tiefste Verlangen, die große Flucht dem Tod zu entrinnen." - - J.R.R. Tolkien (1892 - 1973) - -* Tag 247 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-20 02:00:00 - :EXPORT_FILE_NAME: tag-247.md - :END: - - "Die Gesellschaft setzt sich aus nur zwei großen Klassen zusammen: die einen haben mehr Mahlzeiten als Appetit, die anderen weit mehr Appetit als Mahlzeiten." - - Nicolas Chamfort (1741 - 1794) - -* Tag 246 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-19 02:00:00 - :EXPORT_FILE_NAME: tag-246.md - :END: - - "Fail to honor people, they fail to honor you." - - Laotse (6./5. Jh. v.Chr. - 5./4. Jh. v.Chr.) - -* Tag 245 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-18 02:00:00 - :EXPORT_FILE_NAME: tag-245.md - :END: - - "Kein Mensch muss müssen." - - Gotthold Ephraim Lessing (1729 - 1781) - -* Tag 244 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-17 02:00:00 - :EXPORT_FILE_NAME: tag-244.md - :END: - - "Glücklich ist nicht, wer anderen so vorkommt, sondern wer sich selbst dafür hält." - - Lucius Annaeus Seneca (4 v.Chr. - 65 n.Chr.) - -* Tag 243 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-16 02:00:00 - :EXPORT_FILE_NAME: tag-243.md - :END: - - "Der Tod lächelt uns alle an, das einzige was man machen kann ist zurücklächeln!" - - Marcus Aurelius (121 - 180) - -* Tag 242 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-15 02:00:00 - :EXPORT_FILE_NAME: tag-242.md - :END: - - "Heute studiert jeder zweite an der Uni sein späteres Hobby für die Arbeitslosigkeit." - - Elmar Kupke (*1942) - -* Tag 240 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-14 02:00:00 - :EXPORT_FILE_NAME: tag-240.md - :END: - - "Für das Können gibt es nur einen Beweis: das Tun." - - Maria von Ebner-Eschenbach (1830 - 1916) - -* Tag 239 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-13 02:00:00 - :EXPORT_FILE_NAME: tag-239.md - :END: - - "Kinder sind Gäste, die nach dem Weg fragen." - - Maria Montessori (1870 - 1952) - -* Tag 238 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-12 02:00:00 - :EXPORT_FILE_NAME: tag-238.md - :END: - - "Man muss das Unmögliche versuchen, um das Mögliche zu erreichen." - - Hermann Hesse (1877 - 1962) - -* Tag 237 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-11 02:00:00 - :EXPORT_FILE_NAME: tag-237.md - :END: - - "Wandlung ist notwendig wie die Erneuerung der Blätter im Frühling." - - Vincent van Gogh (1853 - 1890) - -* Tag 236 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-10 02:00:00 - :EXPORT_FILE_NAME: tag-236.md - :END: - - "Die meisten Menschen sind bereit zu lernen, aber nur die wenigsten, sich belehren zu lassen." - - Winston Churchill (1874 - 1965) - -* Tag 235 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-10 02:00:00 - :EXPORT_FILE_NAME: tag-235.md - :END: - - "Sprächen die Menschen nur von Dingen, von denen sie etwas verstehen, die Stille wäre unerträglich." - - Unbekannt - -* Tag 234 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-10 02:00:00 - :EXPORT_FILE_NAME: tag-234.md - :END: - - "Ein Dutzend verlogener Komplimente ist leichter zu ertragen als ein einziger aufrichtiger Tadel." - - Mark Twain (1835 - 1910) - -* Tag 233 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-07 02:00:00 - :EXPORT_FILE_NAME: tag-233.md - :END: - - "Suche nicht andere, sondern dich selbst zu übertreffen." - - Marcus Tullius Cicero (106 - 43 v. Chr) - -* Tag 232 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-06 02:00:00 - :EXPORT_FILE_NAME: tag-232.md - :END: - - "Kein Mensch ist gut genug, einen anderen Menschen ohne dessen Zustimmung zu regieren." - - Abraham Lincoln (1809 - 1865) - -* Tag 231 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-05 02:00:00 - :EXPORT_FILE_NAME: tag-231.md - :END: - - "Das eigentlich charakteristische dieser Welt ist ihre Vergänglichkeit." - - Franz Kafka (1883 - 1924) - -* Tag 230 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-04 02:00:00 - :EXPORT_FILE_NAME: tag-230.md - :END: - - "Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer." - - Lucius Annaeus Seneca (4 v.Chr. - 65 n. Chr.) - -* Tag 229 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-04 02:00:00 - :EXPORT_FILE_NAME: tag-229.md - :END: - - "Der größte Feind der Solidarität ist die Gier. Erst, wenn wir wieder alle gleich viel haben - nämlich nichts -, werden wir zum Miteinander zurückfinden." - - Ernst Hinterberg (1931 - 2012) - -* Tag 228 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-02 02:00:00 - :EXPORT_FILE_NAME: tag-228.md - :END: - - "Gegen eine Dummheit, die gerade in Mode ist, kommt keine Klugheit auf." - - Theodor Fontane (1819 - 1898) - -* Tag 227 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-09-01 02:00:00 - :EXPORT_FILE_NAME: tag-227.md - :END: - - "Man braucht nichts im Leben zu fürchten, man muss nur alles verstehen." - - Marie Curie (1867 - 1934) - -* Tag 226 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-31 02:00:00 - :EXPORT_FILE_NAME: tag-226.md - :END: - - "Es gibt mehr Leute, die kapitulieren, als solche, die scheitern." - - Henry Ford (1863 - 1947) - -* Tag 225 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-30 02:00:00 - :EXPORT_FILE_NAME: tag-225.md - :END: - - "Wir müssen lernen, entweder als Brüder miteinander zu leben oder als Narren unterzugehen." - - Martin Luther King (1929 - 1968) - -* Tag 224 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-29 02:00:00 - :EXPORT_FILE_NAME: tag-224.md - :END: - - "Man kann den Menschen nicht auf Dauer helfen, wenn man für sie tut, was sie selbst tun können und sollten." - - Abraham Lincoln (1809 - 1865) - -* Tag 223 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-28 02:00:00 - :EXPORT_FILE_NAME: tag-223.md - :END: - - "Die Zukunft soll man nicht voraussehen wollen, sondern möglich machen." - - Antoine de Saint-Exupery (1900 - 1944) - -* Tag 222 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-27 02:00:00 - :EXPORT_FILE_NAME: tag-222.md - :END: - - "Die meisten Menschen machen sich selbst bloß durch übertriebene Forderungen an das Schicksal unzufrieden." - - Wilhelm von Humblodt (1767 - 1835) - -* Tag 221 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-26 02:00:00 - :EXPORT_FILE_NAME: tag-221.md - :END: - - "Ihre Zeit ist begrenzt, also verschwenden Sie sie nicht damit, das Leben eines anderen zu leben. Lassen Sie sich nicht von Dogmen in die Falle locken. Lassen Sie nicht zu, dass die Meinungen anderer Ihre innere Stimme ersticken. Am wichtigsten ist es, dass Sie den Mut haben, Ihrem Herzen und Ihrer Intuition zu folgen. Alles andere ist nebensächlich." - - Steve Jobs (1955 - 2011) - -* Tag 220 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-25 02:00:00 - :EXPORT_FILE_NAME: tag-220.md - :END: - - "Suche nicht nach Fehlern, suche nach Lösungen." - - Henry Ford (1863 - 1947) - -* Tag 219 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-25 02:00:00 - :EXPORT_FILE_NAME: tag-219.md - :END: - - "Der schlimmste aller Fehler ist, sich keines solchen bewusst zu sein." - - Thomas Carlyle (1795 - 1881) - -* Tag 218 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-25 02:00:00 - :EXPORT_FILE_NAME: tag-218.md - :END: - - "Wenn es einen Glauben gibt, der Berge versetzen kann, so ist es der Glaube an die eigene Kraft." - - Maria von Ebner-Eschenbach (1830 - 1916) - -* Tag 217 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-25 02:00:00 - :EXPORT_FILE_NAME: tag-217.md - :END: - - "Je schöner und voller die Erinnerung, desto schwerer ist die Trennung. Aber die Dankbarkeit verwandelt die Erinnerung in eine stille Freude." - - Dietrich Bonhoeffer (1906 - 1945) - -* Tag 216 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-21 02:00:00 - :EXPORT_FILE_NAME: tag-216.md - :END: - - "Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es in sich selbst zu entdecken." - - Galileo Galilei (1564 - 1642) - -* Tag 215 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-20 02:00:00 - :EXPORT_FILE_NAME: tag-215.md - :END: - - "Niemand wird mit dem Hass auf andere Menschen wegen ihrer Hautfarbe, ethnischen Herkunft oder Religion geboren. Hass wird gelernt. Und wenn man Hass lernen kann, kann man auch lernen zu lieben. Denn Liebe ist ein viel natürlicheres Empfinden im Herzen eines Menschen als ihr Gegenteil." - - Nelson Mandela (1918 - 2013) - -* Tag 214 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-19 02:00:00 - :EXPORT_FILE_NAME: tag-214.md - :END: - - "The media’s the most powerful entity on earth. They have the power to make the innocent guilty and to make the guilty innocent, and that’s power. Because they control the minds of the masses." - - Malcolm X (1925 - 1965) - -* Tag 213 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-17 02:00:00 - :EXPORT_FILE_NAME: tag-213.md - :END: - - "Wer nichts waget, der darf nichts hoffen." - - Friedrich Schiller (1788 - 1805) - -* Tag 212 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-17 02:00:00 - :EXPORT_FILE_NAME: tag-212.md - :END: - - "EDV-Systeme verarbeiten, womit sie gefüttert werden. Kommt Mist rein, kommt Mist raus." - - Andrè Kostolany (1906 - 1999) - -* Tag 211 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-15 02:00:00 - :EXPORT_FILE_NAME: tag-211.md - :END: - - "Als Kind ist jeder ein Künstler. Die Schwierigkeit liegt darin, als Erwachsener einer zu bleiben." - - Pablo Picasso (1881 - 1973) - -* Tag 210 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-14 02:00:00 - :EXPORT_FILE_NAME: tag-210.md - :END: - - "Auf seine eigene Art zu denken ist nicht selbstsüchtig. Wer nicht auf seine eigene Art denkt, denkt überhaupt nicht." - - Oscar Wilde (1854 - 1900) - -* Tag 209 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-13 02:00:00 - :EXPORT_FILE_NAME: tag-209.md - :END: - - "Wenn man Zehntausend Vorschriften erlässt, vernichtet man jede Achtung für das Gesetz." - - Winston Churchill (1874 - 1965) - -* Tag 208 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-12 02:00:00 - :EXPORT_FILE_NAME: tag-208.md - :END: - - "Als ich aus der Zelle durch die Tür in Richtung Freiheit ging, wusste ich, dass ich meine Verbitterung und meinen Hass zurücklassen musste, oder ich würde mein Leben lang gefangen bleiben." - - Nelson Mandela (1918 - 2013) - -* Tag 207 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-11 02:00:00 - :EXPORT_FILE_NAME: tag-207.md - :END: - - "Jeder möchte die Welt verbessern und jeder könnte es auch, wenn er nur bei sich selber anfangen wollte." - - Karl Heinrich Waggerl (1897 - 1973) - -* Tag 206 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-10 02:00:00 - :EXPORT_FILE_NAME: tag-206.md - :END: - - "Du und ich - und auch sonst keiner - kann so hart zuschlagen wie das Leben! Aber der Punkt ist nicht der, wie hart einer zuschlagen kann ... Es zählt bloß, wie viele Schläge man einstecken kann und ob man trotzdem weitermacht." - - Rocky Balboa - -* Tag 205 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-09 02:00:00 - :EXPORT_FILE_NAME: tag-205.md - :END: - - "Es ist gefährlich, anderen etwas vorzumachen, denn es endet damit, dass man sich selbst etwas vormacht." - - Eleonora Duse (1858 - 1924) - -* Tag 204 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-08 02:00:00 - :EXPORT_FILE_NAME: tag-204.md - :END: - - "Eine neue Art von Denken ist notwendig, wenn die Menschheit weiterleben will." - - Albert Einstein (1879 - 1955) - -* Tag 203 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-07 02:00:00 - :EXPORT_FILE_NAME: tag-203.md - :END: - - "Lernen ist wie Rudern gegen den Strom. Hört man damit auf, treibt man zurück." - - Laozi (circa 5 - 6 Jh. v Chr.) - -* Tag 202 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-06 02:00:00 - :EXPORT_FILE_NAME: tag-202.md - :END: - - "Das Internet ist nicht unbedingt ein guter Ort, um Freunde zu finden. Aber ein gutes Hilfsmittel, um die Freundschaften zu pflegen, die man hat." - - Mark Zuckerberg (*1984) - -* Tag 201 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-05 02:00:00 - :EXPORT_FILE_NAME: tag-201.md - :END: - - "Geh nicht immer auf dem vorgezeichneten Weg, der nur dahin führt, wo andere bereits gegangen sind." - - Alexander Graham Bell (1847 - 1922) - -* Tag 200 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-04 02:00:00 - :EXPORT_FILE_NAME: tag-200.md - :END: - - "Die größte Ehre, die man einem Menschen antun kann, ist die, dass man zu ihm Vertrauen hat." - - Matthias Claudius (1740 - 1815) - -* Tag 199 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-03 02:00:00 - :EXPORT_FILE_NAME: tag-199.md - :END: - - "Der Klügere gibt nach! Eine traurige Wahrheit, sie begründet die Weltherrschaft der Dummheit." - - Maria von Ebner-Eschenbach (1830 - 1916) - -* Tag 198 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-02 02:00:00 - :EXPORT_FILE_NAME: tag-198.md - :END: - - "Ich halte es für ein Verbrechen, wenn jemand, der brutaler Gewalt ausgesetzt ist, sich diese Gewalt gefallen lässt, ohne irgend etwas für seine eigene Verteidigung zu tun. Und wenn die »christliche« Lehre so auszulegen ist, wenn Gandhis Philosophie uns das lehrt, dann nenne ich diese Philosophie kriminell." - - Malcolm X (1925 - 1965) - -* Tag 197 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-02 02:00:00 - :EXPORT_FILE_NAME: tag-197.md - :END: - - "Reich sind nur die, die wahre Freunde haben." - - Thomas Fuller (1608 - 1661) - -* Tag 196 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-08-02 02:00:00 - :EXPORT_FILE_NAME: tag-196.md - :END: - - "Den größten Fehler, den man im Leben machen kann, ist, immer Angst zu haben, einen Fehler zu machen." - - Dietrich Bonhoeffer (1906 - 1945) - -* Tag 195 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-30 02:00:00 - :EXPORT_FILE_NAME: tag-195.md - :END: - - "Tu erst das Notwendige, dann das Mögliche, und plötzlich schaffst du das Unmögliche." - - Franz von Assisi (1181/1182 - 1226) - -* Tag 194 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-30 02:00:00 - :EXPORT_FILE_NAME: tag-194.md - :END: - - "Der Mensch von heute: das dümmste Lebewesen, das die Erde hervorgebracht hat: Er kriecht mit seinem Auto in der Großstadt wie eine Schnecke, nimmt die Umweltgifte in sich auf wie ein Staubsauger und ist obendrein noch stolz auf das, was er zustande gebracht hat." - - John B. Priestley (1894 - 1984) - -* Tag 193 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-28 02:00:00 - :EXPORT_FILE_NAME: tag-193.md - :END: - - "Es ist das Schicksal jeder Generation, in einer Welt unter Bedingungen leben zu müssen, die sie nicht geschaffen hat." - - John F. Kennedy (1917 - 1963) - -* Tag 192 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-27 02:00:00 - :EXPORT_FILE_NAME: tag-192.md - :END: - - "Das Schönste, was wir erleben können, ist das Geheimnisvolle." - - Albert Einstein (1879 - 1955) - -* Tag 191 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-27 02:00:00 - :EXPORT_FILE_NAME: tag-191.md - :END: - - "Wenn man Spaß an einer Sache hat, dann nimmt man sie auch ernst." - - Gerhard Uhlenbruck (*1929) - -* Tag 190 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-27 02:00:00 - :EXPORT_FILE_NAME: tag-190.md - :END: - - "Wer in einem gewissen Alter nicht merkt, dass er hauptsächlich von Idioten umgeben ist, merkt es aus einem gewissen Grunde nicht." - - Curt Goetz (1888 - 1960) - -* Tag 189 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-24 02:00:00 - :EXPORT_FILE_NAME: tag-189.md - :END: - - "Was wir zu fürchten haben, ist nicht die großen Männer, sondern die Tatsache, dass Unmoral oft zu Größe führt." - - Alexis de Tocqueville (1805 - 1859) - -* Tag 188 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-188.md - :END: - - "Die beste und sicherste Tarnung ist immer noch die blanke und nackte Wahrheit. Die glaubt niemand!" - - Max Frisch (1911 - 1991) - -* Tag 187 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-187.md - :END: - - "Wer von seinem Tag nicht zwei Drittel für sich selbst hat, ist ein Sklave." - - Friedrich Nietzsche (1844 - 1900) - -* Tag 186 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-186.md - :END: - - "Die Wissenschaft hat keine moralische Dimension. Sie ist wie ein Messer. Wenn man es einem Chirurgen und einem Mörder gibt, gebraucht es jeder auf seine Weise." - - Wernher von Braun (1912 - 1977) - -* Tag 185 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-185.md - :END: - - "Der Nachteil der Intelligenz besteht darin, dass man ununterbrochen gezwungen ist, dazuzulernen." - - George Bernard Shaw (1856 - 1950) - -* Tag 184 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-184.md - :END: - - "Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden." - - Philip Rosenthal (1916 - 2001) - -* Tag 183 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-183.md - :END: - - "Das Geheimnis des Erfolges ist, den Standpunkt des anderen zu verstehen." - - Henry Ford (1863 - 1947) - -* Tag 182 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-182.md - :END: - - "Die Normalität ist eine gepflasterte Straße; man kann gut darauf gehen - doch es wachsen keine Blumen auf ihr." - - Vincent von Gogh (1953 - 1990) - -* Tag 181 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-181.md - :END: - - "Das Streben nach Vollkommenheit macht manchen Menschen vollkommen unerträglich." - - Pearl S. Buck (1892 - 1973) - -* Tag 180 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-23 02:00:00 - :EXPORT_FILE_NAME: tag-180.md - :END: - - "Einen Vorsprung im Leben hat, wer da anpackt, wo die anderen erst einmal reden." - - John F. Kennedy (1917 - 1963) - -* Tag 179 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-14 02:00:00 - :EXPORT_FILE_NAME: tag-179.md - :END: - - "Der einzige Mensch, der sich vernünftig benimmt, ist mein Schneider. Er nimmt jedesmal neu Maß, wenn er mich trifft, während alle anderen immer die alten Maßstäbe anlegen in der Meinung, sie passten auch heute noch." - - George Bernard Shaw (1856 - 1950) - -* Tag 178 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-14 02:00:00 - :EXPORT_FILE_NAME: tag-178.md - :END: - - "Wenn man beginnt, seinem Passfoto ähnlich zu sehen, sollte man in den Urlaub fahren." - - Ephraim Kishon (1924 - 2005) - -* Tag 177 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-12 02:00:00 - :EXPORT_FILE_NAME: tag-177.md - :END: - - "Der Anführer eines großen Heeres kann besiegt werden. Aber den festen Entschluß eines einzigen kannst du nicht wankend machen." - - Konfuzius (551 v.Chr - 479 v.Chr.) - -* Tag 176 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-12 02:00:00 - :EXPORT_FILE_NAME: tag-176.md - :END: - - "Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren." - - Benjamin Franklin (1706 - 1790) - -* Tag 175 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-10 02:00:00 - :EXPORT_FILE_NAME: tag-175.md - :END: - - "Es gibt keine reine Wahrheit, aber ebensowenig einen reinen Irrtum." - - Friedrich Hebbel(1813 - 1863) - -* Tag 174 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-09 02:00:00 - :EXPORT_FILE_NAME: tag-174.md - :END: - - "Trenne dich nicht von deinen Illusionen. Wenn sie verschwunden sind, wirst du weiter existieren, aber aufgehört haben zu leben." - - Mark Twain (1835 - 1910) - -* Tag 173 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-08 02:00:00 - :EXPORT_FILE_NAME: tag-173.md - :END: - - "Was man ernst meint, sagt man am besten im Spaß." - - Wilhelm Busch (1832 - 1908) - -* Tag 172 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-08 02:00:00 - :EXPORT_FILE_NAME: tag-172.md - :END: - - "Mensch: ein vernunftbegabtes Wesen, das immer dann die Ruhe verliert, wenn von ihm verlangt wird, dass es nach Vernunftgesetzen handeln soll." - - Oscar Wilde (1854 - 1900) - -* Tag 171 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-08 02:00:00 - :EXPORT_FILE_NAME: tag-171.md - :END: - - "Das Beste in der Musik steht nicht in den Noten." - - Gustav Mahler (1860 - 1911) - -* Tag 170 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-05 02:00:00 - :EXPORT_FILE_NAME: tag-170.md - :END: - - "An allem Unfug, der passiert, sind nicht etwa nur die schuld, die ihn tun, sondern auch die, die ihn nicht verhindern." - - Erich Kästner (1899 - 1974) - -* Tag 169 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-04 02:00:00 - :EXPORT_FILE_NAME: tag-169.md - :END: - - "Wenn die meisten sich schon armseliger Kleider und Möbel schämen, wieviel mehr sollten wir uns da erst armseliger Ideen und Weltanschauungen schämen." - - Albert Einstein (1879 - 1955) - -* Tag 168 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-04 02:00:00 - :EXPORT_FILE_NAME: tag-168.md - :END: - - "Gesegnet seien jene, die nichts zu sagen haben und den Mund halten." - - Oscar Wilde (1854 - 1900) - -* Tag 167 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-02 02:00:00 - :EXPORT_FILE_NAME: tag-167.md - :END: - - "Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." - - Isaac Newton (1643 - 1727) - -* Tag 166 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-166.md - :END: - - "Gegen Angriffe kann man sich wehren, gegen Lob ist man machtlos." - - Sigmund Freud (1856 - 1939) - -* Tag 165 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-165.md - :END: - - "Man muss schon etwas wissen, um verbergen zu können, dass man nichts weiß." - - Maria von Ebner-Eschenbach (1830 - 1916) - -* Tag 164 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-164.md - :END: - - "Ich bin nicht sicher, mit welchen Waffen der dritte Weltkrieg ausgetragen wird, aber im vierten Weltkrieg werden sie mit Stöcken und Steinen kämpfen." - - Albert Einstein (1879 - 1955) - -* Tag 163 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-163.md - :END: - - "In der Wirtschaft geht es nicht gnädiger zu als in der Schlacht im Teutoburger Wald." - - Friedrich Dürrenmatt (1921 - 1990) - -* Tag 162 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-162.md - :END: - - "Lebenskunst besteht zu 90 Prozent aus der Fähigkeit, mit Menschen auszukommen, die man nicht leiden kann." - - Samuel Goldwyn (1879 - 1974) - -* Tag 161 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-161.md - :END: - - "In der ganzen Welt ist jeder Politiker sehr für Revolution, für Vernunft und Niederlegung der Waffen - nur beim Feind, ja nicht bei sich selbst." - - Hermann Hesse (1877 - 1962) - -* Tag 160 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-160.md - :END: - - "Die Tatsache, dass die Menschen mit zwei Augen und zwei Ohren, aber nur mit einem Mund geboren werden, lässt darauf schließen, dass sie zweimal so viel sehen und hören als reden sollten." - - Marie de Sévigné (1626 - 1696) - -* Tag 159 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-07-01 02:00:00 - :EXPORT_FILE_NAME: tag-159.md - :END: - - "Holzhacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht." - - Albert Einstein (1879 - 1955) - -* Tag 158 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-23 02:00:00 - :EXPORT_FILE_NAME: tag-158.md - :END: - - "Für mich gibt es wichtigeres im Leben als die Schule." - - Mark Twain (1835 - 1910) - -* Tag 157 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-23 02:00:00 - :EXPORT_FILE_NAME: tag-157.md - :END: - - "Nur wer seinen eigenen Weg geht, kann von niemandem überholt werden." - - Marlon Brando(1924 - 2004) - -* Tag 156 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-21 02:00:00 - :EXPORT_FILE_NAME: tag-156.md - :END: - - "Die Freunde, die man um vier Uhr morgens anrufen kann, die zählen." - - Marlene Dietrich (1901 - 1992) - -* Tag 155 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-20 02:00:00 - :EXPORT_FILE_NAME: tag-155.md - :END: - - "Worte sind die mächtigste Droge, welche die Menschheit benutzt." - - Joseph Rudyard Kipling (1865 - 1936) - -* Tag 154 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-20 02:00:00 - :EXPORT_FILE_NAME: tag-154.md - :END: - - "Jeder Fehler erscheint unglaublich dumm, wenn andre ihn begehen." - - Georg Christoph Lichtenberg (1742 - 1799) - -* Tag 153 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-18 02:00:00 - :EXPORT_FILE_NAME: tag-153.md - :END: - - "Dort wo man Bücher verbrennt, verbrennt man am Ende auch Menschen." - - Heinrich Heine (1797 - 1856) - -* Tag 152 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-17 02:00:00 - :EXPORT_FILE_NAME: tag-152.md - :END: - - "Es gibt keine Freiheit ohne gegenseitiges Verständnis." - - Albert Camus (1913 - 1960) - -* Tag 151 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-16 02:00:00 - :EXPORT_FILE_NAME: tag-151.md - :END: - - "Vollständige Sorglosigkeit und eine unerschütterliche Zuversicht sind das Wesentliche eines glücklichen Lebens. " - - Seneca (4 v. Chr. - 65 n. Chr.) - -* Tag 150 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-15 02:00:00 - :EXPORT_FILE_NAME: tag-150.md - :END: - - "Wer sich den Gesetzen nicht fügen will, muss die Gegend verlassen, wo sie gelten." - - Johann Wolfgang von Goethe (1749 - 1832) - -* Tag 149 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-14 02:00:00 - :EXPORT_FILE_NAME: tag-149.md - :END: - - "Besser schweigen und als Narr scheinen, als sprechen und jeden Zweifel beseitigen." - - Abraham Lincoln (1809 - 1865) - -* Tag 148 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-13 02:00:00 - :EXPORT_FILE_NAME: tag-148.md - :END: - - "Man führt nicht mehr genug Selbstgespräche heutzutage. Man hat wohl Angst, sich selbst die Meinung zu sagen." - - Jean Giraudoux (1882 - 1944) - -* Tag 147 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-12 02:00:00 - :EXPORT_FILE_NAME: tag-147.md - :END: - - "Ziel eines Konfliktes oder einer Auseinandersetzung soll nicht der Sieg, sondern der Fortschritt sein." - - Joseph Joubert (1754 - 1824) - -* Tag 146 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-11 02:00:00 - :EXPORT_FILE_NAME: tag-146.md - :END: - - "Von allen Welten, die der Mensch erschaffen hat, ist die der Bücher die Gewaltigste." - - Heinrich Heine (1797 - 1856) - -* Tag 145 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-10 02:00:00 - :EXPORT_FILE_NAME: tag-145.md - :END: - - "Wer aufhört, besser zu werden, hat aufgehört, gut zu sein." - - Philip Rosenthal (1916 - 2001) - -* Tag 144 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-09 02:00:00 - :EXPORT_FILE_NAME: tag-144.md - :END: - - "Intelligenz ist die Fähigkeit, seine Umgebung zu akzeptieren." - - William Faulkner (1897 - 1962) - -* Tag 143 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-09 02:00:00 - :EXPORT_FILE_NAME: tag-143.md - :END: - - "Vertraue nur dir selbst, wenn andere an dir zweifeln, aber nimm ihnen ihre Zweifel nicht übel." - - Joseph Rudyard Kipling (1865 - 1936) - -* Tag 142 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-07 02:00:00 - :EXPORT_FILE_NAME: tag-142.md - :END: - - "Das Ganze ist mehr als die Summe seiner Teile." - - Aristoteles (385 v. Chr. - 322 v. Chr.) - -* Tag 141 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-06 02:00:00 - :EXPORT_FILE_NAME: tag-141.md - :END: - - "Die ganze Mannigfaltigkeit, der ganze Reiz und die ganze Schönheit des Lebens setzen sich aus Licht und Schatten zusammen." - - Leo Tolstoi (1828 - 1910) - -* Tag 140 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-05 02:00:00 - :EXPORT_FILE_NAME: tag-140.md - :END: - - "Der Vorteil der Klugheit besteht darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger." - - Kurt Tucholsky (1880 - 1935) - -* Tag 139 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-04 02:00:00 - :EXPORT_FILE_NAME: tag-139.md - :END: - - "Wenn du kritisiert wirst, dann musst du irgend etwas richtig machen. Denn man greift nur denjenigen an, der den Ball hat." - - Bruce Lee (1940 - 1973) - -* Tag 138 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-03 02:00:00 - :EXPORT_FILE_NAME: tag-138.md - :END: - - "Alle Lebewesen außer den Menschen wissen, dass der Hauptzweck des Lebens darin besteht, es zu genießen." - - Samuel Butler (1835 - 1902) - -* Tag 137 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-02 02:00:00 - :EXPORT_FILE_NAME: tag-137.md - :END: - - "Sobald man in einer Sache Meister geworden ist, soll man in einer neuen Schüler werden." - - Gerhart Hauptmann (1862 - 1946) - -* Tag 136 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-06-01 02:00:00 - :EXPORT_FILE_NAME: tag-136.md - :END: - - "Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - - Henry Ford (1863 - 1947) - -* Tag 135 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-31 02:00:00 - :EXPORT_FILE_NAME: tag-135.md - :END: - - "Für Wunder muss man beten, für Veränderungen aber arbeiten." - - Thomas von Aquin (1225 - 1274) - -* Tag 134 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-30 02:00:00 - :EXPORT_FILE_NAME: tag-134.md - :END: - - "Was wir brauchen, sind ein paar verrückte Leute; seht euch an, wohin uns die Normalen gebracht haben." - - George Bernard Shaw (1856 - 1950) - -* Tag 133 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-30 02:00:00 - :EXPORT_FILE_NAME: tag-133.md - :END: - - "Die Menschen müssen begreifen, dass sie das gefährlichste Ungeziefer sind, das je die Erde bevölkert hat." - - Friedensreich Hundertwasser (1928 - 2000) - -* Tag 132 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-28 02:00:00 - :EXPORT_FILE_NAME: tag-132.md - :END: - - "Die Welt hat nie eine gute Definition für das Wort Freiheit gefunden." - - Abraham Lincoln (1809 - 1865) - -* Tag 131 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-27 02:00:00 - :EXPORT_FILE_NAME: tag-131.md - :END: - - "Als Gott den Menschen erschuf, war er bereits müde; das erklärt manches." - - Mark Twain (1835 - 1910) - -* Tag 130 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-26 02:00:00 - :EXPORT_FILE_NAME: tag-130.md - :END: - - "Alle Revolutionen haben bisher nur eines bewiesen, nämlich, dass sich vieles ändern lässt, bloß nicht die Menschen." - - Karl Marx (1818 - 1883) - -* Tag 129 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-25 02:00:00 - :EXPORT_FILE_NAME: tag-129.md - :END: - - "Jede Kanone, die gebaut wird, jedes Kriegsschiff, das vom Stapel gelassen wird, jede abgefeuerte Rakete bedeutet letztlich einen Diebstahl an denen, die hungern und nichts zu essen bekommen, denen, die frieren und keine Kleidung haben. Eine Welt unter Waffen verpulvert nicht nur Geld allein. Sie verpulvert auch den Schweiß ihrer Arbeiter, den Geist ihrer Wissenschaftler und die Hoffnung ihrer Kinder." - - Dwight D. Eisenhower (1890 - 1969) - -* Tag 128 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-24 02:00:00 - :EXPORT_FILE_NAME: tag-128.md - :END: - - "Erfahrungen sammelt man wie Pilze: einzeln und mit dem Gefühl, dass die Sache nicht ganz geheuer ist." - - Erskine Cladwell (1903 - 1987) - -* Tag 127 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-23 02:00:00 - :EXPORT_FILE_NAME: tag-127.md - :END: - - "Ihr aber seht und sagt: Warum? Aber ich träume und sage: Warum nicht?" - - George Bernard Shaw (1856 - 1950) - -* Tag 126 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-22 02:00:00 - :EXPORT_FILE_NAME: tag-126.md - :END: - - "Kein Problem wird gelöst, wenn wir träge darauf warten, dass Gott sich darum kümmert." - - Martin Luther King Jr. (1929 - 1968) - -* Tag 125 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-21 02:00:00 - :EXPORT_FILE_NAME: tag-125.md - :END: - - "Die Welt hat genug für jedermanns Bedürfnisse, aber nicht für jedermanns Gier." - - Mahatma Gandhi (1869 - 1948) - -* Tag 124 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-21 02:00:00 - :EXPORT_FILE_NAME: tag-124.md - :END: - - "Natürlicher Verstand kann fast jeden Grad von Bildung ersetzen, aber keine Bildung den natürlichen Verstand." - - Arthur Schopenhauer (1788 - 1860) - -* Tag 123 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-19 02:00:00 - :EXPORT_FILE_NAME: tag-123.md - :END: - - "Man muss dem Leben immer um mindestens einen Whisky voraus sein." - - Humphrey Bogart (1899 - 1957) - -* Tag 122 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-18 02:00:00 - :EXPORT_FILE_NAME: tag-122.md - :END: - - "Ich beschäftige mich nicht mit dem, was getan worden ist. Mich interessiert, was getan werden muss." - - Marie Curie (1867 - 1934) - -* Tag 121 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-17 02:00:00 - :EXPORT_FILE_NAME: tag-121.md - :END: - - "Es gibt kein großes Genie ohne einen Schuss Verrücktheit." - - Aristoteles (385 v. Chr. - 322 v. Chr.) - -* Tag 120 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-16 02:00:00 - :EXPORT_FILE_NAME: tag-120.md - :END: - - "Seit die Mathematiker über die Relativitätstheorie hergefallen sind, verstehe ich sie selbst nicht mehr." - - Albert Einstein (1879 - 1955) - -* Tag 119 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-16 02:00:00 - :EXPORT_FILE_NAME: tag-119.md - :END: - - "Gleichungen sind wichtiger für mich, weil die Politik für die Gegenwart ist, aber eine Gleichung etwas für die Ewigkeit." - - Albert Einstein (1879 - 1955) - -* Tag 118 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-14 02:00:00 - :EXPORT_FILE_NAME: tag-118.md - :END: - - "Die Würde, die in der Bewegung eines Eisberges liegt, beruht darauf, dass nur ein Achtel von ihm über dem Wasser ist." - - Ernest Hemingway (1899 - 1961) - -* Tag 117 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-13 02:00:00 - :EXPORT_FILE_NAME: tag-117.md - :END: - - "Wenn einer mit Vergnügen zu einer Musik in Reih und Glied marschieren kann, dann hat er sein großes Gehirn nur aus Irrtum bekommen, da für ihn das Rückenmark schon völlig genügen würde." - - Albert Einstein (1879 - 1955) - -* Tag 116 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-13 02:00:00 - :EXPORT_FILE_NAME: tag-116.md - :END: - - "Wer Großes versucht, ist bewundernswert, auch wenn er fällt." - - Lucius Annaeus Seneca (4 v. Chr. - 65 n. Chr.) - -* Tag 115 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-13 02:00:00 - :EXPORT_FILE_NAME: tag-115.md - :END: - - "An der Vergangenheit festzuhalten ist gefährlich. Man muss einfach weitermachen.Versuche niemals jemanden so zu machen, wie du selbst bist. Du solltest wissen, dass einer von deiner Sorte genug ist." - - Ralph Waldo Emerson (1803 - 1882) - -* Tag 114 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-13 02:00:00 - :EXPORT_FILE_NAME: tag-114.md - :END: - - "An der Vergangenheit festzuhalten ist gefährlich. Man muss einfach weitermachen." - - Robert Redford (*1936) - -* Tag 113 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-13 02:00:00 - :EXPORT_FILE_NAME: tag-113.md - :END: - - "Als Kind ist jeder ein Künstler. Die Schwierigkeit liegt darin, als Erwachsener einer zu bleiben." - - Pablo Picasso (1881 - 1973) - -* Tag 112 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-13 02:00:00 - :EXPORT_FILE_NAME: tag-112.md - :END: - - "Die Geschichte lehrt dauernd, aber sie findet keine Schüler." - - Ingeborg Bachmann (1926 - 1973) - -* Tag 111 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-07 02:00:00 - :EXPORT_FILE_NAME: tag-111.md - :END: - - "Nichts ist trügerischer als eine offenkundige Tatsache." - - Sir Arthur Conan Doyle (1859 - 1930) - -* Tag 110 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-06 02:00:00 - :EXPORT_FILE_NAME: tag-110.md - :END: - - "Mit Adleraugen sehen wir die Fehler anderer, mit Maulwurfsaugen unsere eigenen." - - Franz von Sales (1567 - 1622) - -* Tag 109 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-05 02:00:00 - :EXPORT_FILE_NAME: tag-109.md - :END: - - "Jeder ist ein Mond und hat eine dunkle Seite, die er niemandem zeigt." - - Mark Twain (1835 - 1910) - -* Tag 108 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-04 02:00:00 - :EXPORT_FILE_NAME: tag-108.md - :END: - - "Es ist traurig, eine Ausnahme zu sein. Aber noch trauriger ist es, keine zu sein." - - Peter Altenber (1859 - 1919) - -* Tag 107 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-03 02:00:00 - :EXPORT_FILE_NAME: tag-107.md - :END: - - "Die Fähigkeit, das Wort "Nein" auszusprechen, ist der erste Schritt zur Freiheit." - - Nicolas Chamfort (1741 - 1794) - -* Tag 106 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-03 02:00:00 - :EXPORT_FILE_NAME: tag-106.md - :END: - - "Die Lüge ist wie ein Schneeball: Je länger man ihn wälzt, desto größer wird er." - - Martin Luther (1483 - 1546) - -* Tag 105 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-01 02:00:00 - :EXPORT_FILE_NAME: tag-105.md - :END: - - "Wenn man zwei Stunden lang mit einem Mädchen zusammensitzt, meint man, es wäre eine Minute. Sitzt man jedoch eine Minute auf einem heißen Ofen, meint man, es wären zwei Stunden. Das ist Relativität." - - Albert Einstein (1879 - 1955) - -* Tag 104 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-01 02:00:00 - :EXPORT_FILE_NAME: tag-104.md - :END: - - "Die Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene." - - Carl Hilty (1833 - 1909) - -* Tag 103 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-05-01 02:00:00 - :EXPORT_FILE_NAME: tag-103.md - :END: - - "Das Leben ist kurz, weniger wegen der kurzen Zeit, die es dauert, sondern weil uns von dieser kurzen Zeit fast keine bleibt, es zu genießen." - - Jean-Jacques Rousseau (1712 - 1771) - -* Tag 102 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-28 02:00:00 - :EXPORT_FILE_NAME: tag-102.md - :END: - - "Die Geschichte lehrt die Menschen, dass die Geschichte die Menschen nichts lehrt." - - Mahatma Gandhi (1869 - 1948) - -* Tag 101 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-27 02:00:00 - :EXPORT_FILE_NAME: tag-101.md - :END: - - "Facebook hilft, mit Leuten in Kontakt zu bleiben, die wir auch im echten Leben kennen. Mehr nicht. Wer glaubt, dass jeder Facebook-Kontakt ein Freund ist, der weiß nicht was Freundschaft bedeutet." - - Mark Zuckerberg (*1984) - -* Tag 100 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-26 02:00:00 - :EXPORT_FILE_NAME: tag-100.md - :END: - - "Wenn zwei Menschen immer dasselbe denken, ist einer von ihnen überflüssig." - - Winston Churchill (1874 – 1965) - -* Tag 99 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-99.md - :END: - - "Mach' dir keine Sorgen wegen deiner Schwierigkeiten mit der Mathematik. Ich kann dir versichern, dass meine noch größer sind." - - Albert Einstein (1879 - 1955) - -* Tag 98 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-98.md - :END: - - "Erfahrung heißt gar nichts. Man kann seine Sache auch 35 Jahre schlecht machen." - - Kurt Tucholsky (1880 - 1935) - -* Tag 97 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-97.md - :END: - - "Ich vermute mal, dass irgendwie jeder, der den Ehrgeiz hat, etwas zu erschaffen und nicht kaputt zu machen, Respekt verdient." - - Kurt Cobain (1967 - 1994) - -* Tag 96 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-96.md - :END: - - "Man kann niemanden überholen, wenn man in seine Fußstapfen tritt." - - Francois Truffaut (1932 - 1984) - -* Tag 95 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-95.md - :END: - - "Die Praxis sollte das Ergebnis des Nachdenkens sein, nicht umgekehrt." - - Hermann Hesse (1877 - 1962) - -* Tag 94 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-94.md - :END: - - "Gehirn: ein Organ, mit dem wir denken, dass wir denken." - - Ambrose Bierce (1842 - 1914) - -* Tag 93 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-93.md - :END: - - "Was wir am nötigsten brauchen, ist ein Mensch, der uns zwingt, das zu tun, das wir können." - - Ralph Waldo Emerson (1803 - 1882) - -* Tag 92 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-92.md - :END: - - "Warum bekommt der Mensch die Jugend in einem Alter, in dem er nichts davon hat?" - - George Bernard Shaw (1856 - 1950) - -* Tag 91 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-25 02:00:00 - :EXPORT_FILE_NAME: tag-91.md - :END: - - "Ich habe keine besondere Begabung, sondern bin nur leidenschaftlich neugierig." - - Albert Einstein (1879 - 1955) - -* Tag 90 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-16 02:00:00 - :EXPORT_FILE_NAME: tag-90.md - :END: - - "Mehr als die Vergangenheit interessiert mich die Zukunft, denn in ihr gedenke ich zu leben." - - Albert Einstein (1879 - 1955) - -* Tag 89 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-15 02:00:00 - :EXPORT_FILE_NAME: tag-89.md - :END: - - "Ich habe einen ganz einfachen Geschmack: Ich bin immer mit dem Besten zufrieden." - - Oscar Wilde (1854 - 1900) - -* Tag 88 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-15 02:00:00 - :EXPORT_FILE_NAME: tag-88.md - :END: - - "Wir gehen mit dieser Welt um, als hätten wir noch eine zweite im Kofferraum." - - Jane Fonda (*1937) - -* Tag 87 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-13 02:00:00 - :EXPORT_FILE_NAME: tag-87.md - :END: - - "Tolerant sein heißt Widersprüche aushalten können." - - Günter Grass (1927 - 2015) - -* Tag 86 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-12 02:00:00 - :EXPORT_FILE_NAME: tag-86.md - :END: - - "Es ist sinnlos zu sagen: Wir tun unser Bestes. Es muss dir gelingen, das zu tun, was erforderlich ist." - - Winston Churchill (1874 – 1965) - -* Tag 85 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-11 02:00:00 - :EXPORT_FILE_NAME: tag-85.md - :END: - - "Ein Widerstand um jeden Preis ist das Sinnloseste, was es geben kann." - - Friedrich Dürrenmatt (1921 - 1990) - -* Tag 84 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-10 02:00:00 - :EXPORT_FILE_NAME: tag-84.md - :END: - - "Der Verstand ist wie eine Fahrkarte: Sie hat nur dann einen Sinn, wenn sie benutzt wird." - - Ernst R. Hauschka (1926 - 2012) - -* Tag 83 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-09 02:00:00 - :EXPORT_FILE_NAME: tag-83.md - :END: - - "Um Feinde zu bekommen, ist es nicht nötig, den Krieg zu erklären. Es reicht, wenn man einfach sagt, was man denkt!" - - Martin Luther King (1929 - 1968) - -* Tag 82 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-08 02:00:00 - :EXPORT_FILE_NAME: tag-82.md - :END: - - "Wenn es morgens um sechs Uhr an meiner Tür läutet und ich kann sicher sein, dass es der Milchmann ist, dann weiß ich, dass ich in einer Demokratie lebe." - - Winston Churchill (1874 – 1965) - -* Tag 81 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-07 02:00:00 - :EXPORT_FILE_NAME: tag-81.md - :END: - - "Zeit haben nur diejenigen, die es zu nichts gebracht haben. Und damit haben sie es weitergebracht als alle anderen." - - Giovanni Guareschi (1908 - 1968) - -* Tag 80 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-06 02:00:00 - :EXPORT_FILE_NAME: tag-80.md - :END: - - "Wenn ein Mensch keinen Grund hat, etwas zu tun, so hat er einen Grund, etwas nicht zu tun." - - Walter Scott (1771 - 1832) - -* Tag 79 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-06 02:00:00 - :EXPORT_FILE_NAME: tag-79.md - :END: - - "Unkraut nennt man die Pflanzen, deren Vorzüge noch nicht erkannt sind." - - Ralph Waldo Emerson (1803 - 1882) - -* Tag 78 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-06 02:00:00 - :EXPORT_FILE_NAME: tag-78.md - :END: - - "Was nützt es dem Menschen, wenn er Lesen und Schreiben gelernt hat, aber das Denken anderen überlässt?" - - Ernst R. Hauschka (1926 - 2012) - -* Tag 77 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-03 02:00:00 - :EXPORT_FILE_NAME: tag-77.md - :END: - - "Man sieht oft etwas hundert Mal, tausend Mal, ehe man es zum allerersten Mal wirklich sieht." - - Chrisian Morgenstern (1871 - 1914) - -* Tag 76 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-02 02:00:00 - :EXPORT_FILE_NAME: tag-76.md - :END: - - "Der Mensch ist vielerlei. Aber vernünftig ist er nicht." - - Oscar Wilde (1854 - 1900) - -* Tag 75 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-04-01 02:00:00 - :EXPORT_FILE_NAME: tag-75.md - :END: - - "Derjenige, der etwas zerbricht, um herauszufinden, was es ist, hat den Pfad der Weisheit verlassen." - - J. R. R. Tolkien (1892 -1973) - -* Tag 74 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-31 02:00:00 - :EXPORT_FILE_NAME: tag-74.md - :END: - - "Die gefährlichste aller Weltanschauungen ist die Weltanschuung der Leute, welche die Welt nicht angeschaut haben." - - Alexander von Humboldt (1769 - 1859) - -* Tag 73 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-30 02:00:00 - :EXPORT_FILE_NAME: tag-73.md - :END: - - "Zwei Dinge sind zu unserer Arbeit nötig: unermüdliche Ausdauer und die Bereitschaft etwas, in das man viel Zeit und Arbeit gesteckt hat wieder wegzuwerfen“" - - Albert Einstein (1879 - 1955) - -* Tag 72 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-30 02:00:00 - :EXPORT_FILE_NAME: tag-72.md - :END: - - /Nachtrag für Sonntag, den 29.03/ - - "Es ist ein großer Vorteil im Leben, die Fehler, aus denen man lernen kann, möglichst früh zu begehen." - - Winston Churchill (1874 – 1965) - -* Tag 71 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-30 02:00:00 - :EXPORT_FILE_NAME: tag-71.md - :END: - - /Nachtrag für Samstag, den 28.03/ - - "Die Welt ist in zwei Klassen geteilt, in diejenigen, welche das Unglaubliche glauben, und diejenigen, welche das Unwahrscheinliche tun." - - Oscar Wilde (1854 - 1900) - -* Tag 70 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-27 02:00:00 - :EXPORT_FILE_NAME: tag-70.md - :END: - - "Probleme kann man niemals mit der selben Denkweise lösen, durch die sie entstanden sind." - - Albert Einstein (1879 - 1955) - -* Tag 69 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-26 02:00:00 - :EXPORT_FILE_NAME: tag-69.md - :END: - - "Jetzt sind die guten alten Zeiten, nach denen wir uns in zehn Jahren zurücksehnen." - - Peter Alexander Ustinov (1921 - 2004) - -* Tag 68 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-25 02:00:00 - :EXPORT_FILE_NAME: tag-68.md - :END: - - "Wahrlich, keiner ist weise, der nicht das Dunkel kennt." - - Hermann Hesse (1877 - 1962) - -* Tag 67 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-24 02:00:00 - :EXPORT_FILE_NAME: tag-67.md - :END: - - "Objektivität ist eine Eigenschaft, die der Mensch nicht besitzt." - - Aus "Bella Block: Die Frau des Teppichlegers" - -* Tag 66 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-23 02:00:00 - :EXPORT_FILE_NAME: tag-66.md - :END: - - "Wer der Menge folgt, wird gewöhnlich nicht weiter kommen als die Menge. Wer alleine marschiert, wird sich wahrscheinlich an Orten wiederfinden, an denen noch keiner zuvor gewesen ist." - - Albert Einstein (1879 - 1955) - -* Tag 65 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-22 02:00:00 - :EXPORT_FILE_NAME: tag-65.md - :END: - - "Im Reich der Wirklichkeit ist man nie so glücklich wie im Reiche der Gedanken." - - Arthur Schopenhauer (1788 - 1860) - -* Tag 64 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-21 02:00:00 - :EXPORT_FILE_NAME: tag-64.md - :END: - - "Wer Menschen führen will muss hinter ihnen gehen." - - Laotse (ca. 6 Jh. v. Chr.) - -* Tag 63 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-20 02:00:00 - :EXPORT_FILE_NAME: tag-63.md - :END: - - "Es gibt wichtigeres im Leben, als beständig dessen Geschwindigkeit zu erhöhen." - - Mahatma Gandhi (1869 - 1948) - -* Tag 62 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-19 02:00:00 - :EXPORT_FILE_NAME: tag-62.md - :END: - - "Ob ein Mensch klug ist, erkennt man an seinen Antworten. Ob ein Mensch weise ist, erkennt man an seinen Fragen." - - Nagib Mahfuz (1911 - 2006) - -* Tag 61 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-18 02:00:00 - :EXPORT_FILE_NAME: tag-61.md - :END: - - "It's just better to be yourself than to try to be some version of what you think the other person wants." - - Matt Damon (*1970) - -* Tag 60 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-17 02:00:00 - :EXPORT_FILE_NAME: tag-60.md - :END: - - "Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen." - - Sokrates (469 - 399 v. Chr.) - -* Tag 59 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-16 02:00:00 - :EXPORT_FILE_NAME: tag-59.md - :END: - - "Ich verstehe nicht, warum Leute Angst vor neuen Ideen haben. Ich habe Angst vor den alten." - - John Cage (1912 - 1992) - -* Tag 58 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-15 02:00:00 - :EXPORT_FILE_NAME: tag-58.md - :END: - - "Everything makes sense a bit at atime. But when you try to think of it all at once, it comes out wrong" - - Terry Pratchett (1948-2015) - -* Tag 57 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-14 02:00:00 - :EXPORT_FILE_NAME: tag-57.md - :END: - - "Wenn wir in Gedanken über die Vergangenheit verloren sind, verlieren wir die Gegenwart." - - Thich Nhat Hanh (*1926) - -* Tag 56 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-13 02:00:00 - :EXPORT_FILE_NAME: tag-56.md - :END: - - "Vision ist die Kunst, Unsichtbares zu sehen." - - Jonathan Swift (1667 - 1745) - -* Tag 55 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-12 02:00:00 - :EXPORT_FILE_NAME: tag-55.md - :END: - - "Alle Menschen haben die Anlage, schöpferisch tätig zu sein. Nur merken es die meisten nie." - - Truman Capote (1924 - 1984) - -* Tag 54 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-11 02:00:00 - :EXPORT_FILE_NAME: tag-54.md - :END: - - "Ehe man den Kopf schüttelt, vergewissere man sich, ob man einen hat." - - Truman Capote (1924 - 1984) - -* Tag 53 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-10 02:00:00 - :EXPORT_FILE_NAME: tag-53.md - :END: - - "Nicht nur einen Tod gibt es. Der uns dahinrafft, ist nur der letzte." - - Seneca (ca. 1 - 65) - -* Tag 52 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-09 02:00:00 - :EXPORT_FILE_NAME: tag-52.md - :END: - - "Den Wert von Menschen und Diamanten kann man erst erkennen, wenn man sie aus der Fassung gebracht hat." - - (Orientalische Weisheit) - -* Tag 51 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-08 02:00:00 - :EXPORT_FILE_NAME: tag-51.md - :END: - - "Leute mit Mut und Charakter sind den anderen Leuten immer sehr unheimlich." - - Hermann Hesse (1877 - 1962) - -* Tag 50 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-07 02:00:00 - :EXPORT_FILE_NAME: tag-50.md - :END: - - "Ich glaube nicht an den Fortschritt, sondern an die Beharrlichkeit der menschlichen Dummheit." - - Oscar Wilde (1854 - 1900) - -* Tag 49 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-06 02:00:00 - :EXPORT_FILE_NAME: tag-49.md - :END: - - "Du kannst dich nicht selber finden, indem du in die Vergangenheit gehst. Du findest dich selber, indem du in die Gegenwart kommst." - - Eckhart Tolle (*1948) - -* Tag 48 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-05 02:00:00 - :EXPORT_FILE_NAME: tag-48.md - :END: - - "Gib jedem Tag die Chance der Schönste deines Lebens zu werden." - - Mark Twain (1835 - 1910) - -* Tag 47 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-04 02:00:00 - :EXPORT_FILE_NAME: tag-47.md - :END: - - "Immer die Wahrheit sagen bringt einem wahrscheinlich nicht viele Freunde, aber dafür die Richtigen." - - John Lennon (1940 - 1980) - -* Tag 46 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-03 02:00:00 - :EXPORT_FILE_NAME: tag-46.md - :END: - - "Es ist besser, so zu leben, wie man denkt, als darüber nachdenken zu müssen, wie man leben soll." - - Jose Mujica (*1935) - -* Tag 45 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-02 02:00:00 - :EXPORT_FILE_NAME: tag-45.md - :END: - - "Gift in den Händen eines Weisen ist ein Heilmittel. Ein Heilmittel in den Händen des Toren ist Gift." - - Giacomo Casanova (1725 - 1798) - -* Tag 44 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-03-01 02:00:00 - :EXPORT_FILE_NAME: tag-44.md - :END: - - "Short as life is, we make it still shorter by careless waste of time." - - Victor Hugo(1802 - 1885) - -* Tag 43 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-28 02:00:00 - :EXPORT_FILE_NAME: tag-43.md - :END: - - "Nichts ist einfacher, als sich schwierig auszudrücken, und nichts ist schwieriger, als sich einfach auszudrücken." - - Karl H. Waggerl (1897 - 1973) - -* Tag 42 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-27 02:00:00 - :EXPORT_FILE_NAME: tag-42.md - :END: - - "Der einzige Mist, auf dem nichts wächst, ist der Pessimist." - - Theodor Heuss (1884 - 1963) - -* Tag 41 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-26 02:00:00 - :EXPORT_FILE_NAME: tag-41.md - :END: - - "Gewohnheiten sind zuerst Spinnweben, dann Drähte." - - Fernöstliche Weisheit - -* Tag 40 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-25 02:00:00 - :EXPORT_FILE_NAME: tag-40.md - :END: - - "Die ganze Kunst des Redens besteht darin, zu wissen, was man nicht sagen darf." - - George Canning (1770 - 1827) - -* Tag 39 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-24 02:00:00 - :EXPORT_FILE_NAME: tag-39.md - :END: - - "Der Denkende benützt kein Licht zuviel, kein Stück Brot zuviel, keinen Gedanken zuviel." - - Bertold Brecht (1898 - 1956) - -* Tag 38 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-23 02:00:00 - :EXPORT_FILE_NAME: tag-38.md - :END: - - "Mein Vater pflegte zu sagen: Sprich nicht lauter, argumentiere weiser." - - Desmond Mpilo Tutu (*1931) - -* Tag 37 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-22 02:00:00 - :EXPORT_FILE_NAME: tag-37.md - :END: - - "Es gibt Menschen, die sich immer angesprochen fühlen, wenn jemand eine Meinung ausspricht." - - Hans Christian Andersen(1805 - 1875) - -* Tag 36 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-21 02:00:00 - :EXPORT_FILE_NAME: tag-36.md - :END: - - "Gib jedem Tag die Chance der Schönste deines Lebens zu werden." - - Mark Twain (1835 - 1910) - -* Tag 35 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-20 02:00:00 - :EXPORT_FILE_NAME: tag-35.md - :END: - - "Angst vor dem Scheitern macht dich garantiert kaputt. Du gehst immer brav die Straße entlang, du riskierst nie etwas, du biegst nie in die kleinen Seitenstraßen ein, die du siehst, denn du sagst dir: Verlockend sieht es ja aus, aber ich kenne diese Straße nicht. Ich bleibe lieber hier und laufe schön geradeaus weiter." - - Jack Lemmon (1925 - 2001) - -* Tag 34 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-19 02:00:00 - :EXPORT_FILE_NAME: tag-34.md - :END: - - "Solange man selbst redet, erfährt man nichts." - - Marie von Ebner-Eschenbach (1830-1916) - -* Tag 33 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-18 02:00:00 - :EXPORT_FILE_NAME: tag-33.md - :END: - - "Schweigen ist die unerträglichste Erwiderung." - - Gilbert K. Chesterton (1874 - 1936) - -* Tag 32 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-17 02:00:00 - :EXPORT_FILE_NAME: tag-32.md - :END: - - "Der Charakter des Menschen sitzt nicht im Verstande, sondern im Herzen." - - Friedrich Heinrich Jacobi (1743 - 1819) - -* Tag 31 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-16 02:00:00 - :EXPORT_FILE_NAME: tag-31.md - :END: - - "Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen." - - Dieter Hildebrandt (1927 - 2013) - -* Tag 30 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-15 02:00:00 - :EXPORT_FILE_NAME: tag-30.md - :END: - - "Willst du den Charakter eines Menschen erkennen, so gib ihm Macht." - - Abraham Lincoln (1809-1865) - -* Tag 29 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-14 02:00:00 - :EXPORT_FILE_NAME: tag-29.md - :END: - - "Es liegt in der menschlichen Natur, vernünftig zu denken und unvernünftig zu handeln." - - Anatole France (1844 - 1924) - -* Tag 28 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-13 02:00:00 - :EXPORT_FILE_NAME: tag-28.md - :END: - - "Der Staatshaushalt ist ein Haushalt, in dem alle essen möchten, aber niemand Geschirr spülen will." - - Werner Finck (1902 - 1978) - -* Tag 27 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-12 02:00:00 - :EXPORT_FILE_NAME: tag-27.md - :END: - - "Der gesunde Menschenverstand ist nur eine Anhäufung von Vorurteilen, die man bis zum 18. Lebensjahr erworben hat." - - Albert Einstein (1879 - 1955) - -* Tag 26 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-11 02:00:00 - :EXPORT_FILE_NAME: tag-26.md - :END: - - "Nichts wird oft so unwiederbringlich versäumt wie eine Gelegenheit." - - Marie von Ebner-Eschenbach (1830 - 1916) - -* Tag 25 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-10 02:00:00 - :EXPORT_FILE_NAME: tag-25.md - :END: - - "Die Bildung kommt nicht vom Lesen, sondern vom Nachdenken über das Gelesene." - - Carl Hilty (1833 - 1909) - -* Tag 24 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-09 02:00:00 - :EXPORT_FILE_NAME: tag-24.md - :END: - - "Man ist meistens nur durch Nachdenken unglücklich." - - Joseph Joubert (1754 - 1824) - -* Tag 23 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-08 02:00:00 - :EXPORT_FILE_NAME: tag-23.md - :END: - - "Der Langsamste, der sein Ziel nicht aus den Augen verliert, geht noch immer geschwinder als jener, der ohne Ziele umherirrt." - - Gotthold Ephraim Lessing (1729 - 1781) - -   - -* Tag 22 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-07 02:00:00 - :EXPORT_FILE_NAME: tag-22.md - :END: - - "Verweile nicht in der Vergangenheit, träume nicht von der Zukunft. Konzentriere dich auf den gegenwärtigen Moment." - - Buddha - -* Tag 21 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-06 02:00:00 - :EXPORT_FILE_NAME: tag-21.md - :END: - - "Inmitten von Schwierigkeiten liegen günstige Gelegenheiten" - - Albert Einstein (1879 - 1955) - -* Tag 20 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-05 02:00:00 - :EXPORT_FILE_NAME: tag-20.md - :END: - - "Man braucht zwei Jahre um sprechen zu lernen und fünfzig, um schweigen zu lernen." - - Ernest Hemingway (1899 - 1961) - -* Tag 19 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-04 02:00:00 - :EXPORT_FILE_NAME: tag-19.md - :END: - - "Du siehst die Welt nicht so wie sie ist, du siehst die Welt so wie du bist." - - Mooji (*1954) - -* Tag 18 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-03 02:00:00 - :EXPORT_FILE_NAME: tag-18.md - :END: - - "Um dem braunen Gedankengut, das längst in alle Bereiche unserer Gesellschaft eingesickert ist, den Nährboden zu entziehen, gilt es, die junge Generation aufzuklären und sie in ihrem Selbstwertgefühl und in ihrem Demokratiebewusstsein zu stärken. Es gilt, sie zu weltoffenen Bürgern zu erziehen." - - Charlotte Knobloch (*1932) - -* Tag 17 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-02 02:00:00 - :EXPORT_FILE_NAME: tag-17.md - :END: - - "Es gibt Diebe, die von den Gesetzen nicht bestraft werden und doch dem Menschen das Kostbarste stehlen: die Zeit." - - Napoleon Bonaparte (1769 - 1821) - -* Tag 16 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-02-01 02:00:00 - :EXPORT_FILE_NAME: tag-16.md - :END: - - "Ich lehne es ab, anzuerkennen, dass es Unmöglichkeiten gibt" - - Henry Ford (1863 - 1947) - -* Tag 15 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-31 02:00:00 - :EXPORT_FILE_NAME: tag-15.md - :END: - - "Das Ziel des Dialogs ist nicht Unterwerfung und Sieg, auch nicht Selbstbehauptung um jeden Preis, sondern gemeinsame Arbeit in der Methode und in der Sache" - - Richard von Weizsäcker (1920 - 2015) - -* Tag 14 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-30 02:00:00 - :EXPORT_FILE_NAME: tag-14.md - :END: - - "Es ist keine Schande, nichts zu wissen, wohl aber, nichts lernen zu wollen." - - Sokrates (469 - 399 v. Chr.) - -* Tag 13 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-29 02:00:00 - :EXPORT_FILE_NAME: tag-13.md - :END: - - "Tu soviel Gutes, wie Du kannst, und mache so wenig Gerede wie nur möglich darüber." - - Charles Dickens (1812-1870) - -* Tag 12 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-28 02:00:00 - :EXPORT_FILE_NAME: tag-12.md - :END: - - "Wer noch niemals anderen Leuten auf die Füße getreten hat, hat sich vermutlich noch niemals von der Stelle bewegt." - - Franklin P. Jones (1908 - 1980) - -* Tag 11 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-27 02:00:00 - :EXPORT_FILE_NAME: tag-11.md - :END: - - "Es ist ein großer Fehler zu denken, dass ein Mensch immer gleich ist. Ein Mensch ist nie lange derselbe. Er verändert sich ständig. Nicht einmal für eine halbe Stunde bleibt er derselbe." - - G. I. Gurdjieff (1872 - 1949) - -* Tag 10 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-26 02:00:00 - :EXPORT_FILE_NAME: tag-10.md - :END: - - "Keines Menschen Gedächtnis ist so gut, dass er ständig erfolgreich lügen könnte." - - Abraham Lincoln (1861 - 1865) - -* Tag 9 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-25 02:00:00 - :EXPORT_FILE_NAME: tag-9.md - :END: - - "Wir sind nicht nur für unser Tun verantwortlich, sondern auch für das, was wir nicht tun." - - Molière (1622 - 1673) - -* Tag 8 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-24 02:00:00 - :EXPORT_FILE_NAME: tag-8.md - :END: - - "Eine Investition in Wissen bringt immer noch die besten Zinsen." - - Benjamin Franklin (1706 - 1790) - -* Tag 7 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-23 02:00:00 - :EXPORT_FILE_NAME: tag-7.md - :END: - - "Sowie man etwas Gutes tun will, kann man sicher sein, Feinde zu finden." - - Voltaire (1694 - 1778) - -* Tag 6 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-22 02:00:00 - :EXPORT_FILE_NAME: tag-6.md - :END: - - "Die Grenze deiner Gedanken ist auch die Grenze deiner Möglichkeiten." " - - Orison Swett Marden (1848 - 1924) - -* Tag 5 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-21 02:00:00 - :EXPORT_FILE_NAME: tag-5.md - :END: - - "Zwei Dinge sind zu unserer Arbeit nötig: unermüdliche Ausdauer und die Bereitschaft, etwas, in das man viel Zeit und Arbeit gesteckt hat, wieder wegzuwerfen." - - Albert Einstein (1879 - 1955) - -* Tag 4 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-20 02:00:00 - :EXPORT_FILE_NAME: tag-4.md - :END: - - "Der größte Feind des Fortschritts ist nicht der Irrtum, sondern die Trägheit." - - Henry Thomas Buckle (1821-1862) - -* Tag 3 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-19 02:00:00 - :EXPORT_FILE_NAME: tag-3.md - :END: - - "Wenn man plant, verpasst man eine bessere Möglichkeit, den wenn man plant, verwendet man die Person, die man in der Vergangenheit war und nicht im Hier und Jetzt." - - Kevin Kroll - -* Tag 2 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-18 02:00:00 - :EXPORT_FILE_NAME: tag-2.md - :END: - - "Die Zukunft hat viele Namen. Für die Schwachen ist sie die Unerreichbare, für die Furchtsamen ist sie die Unbekannte, für die Tapferen ist sie die Chance." - - Victor Hugo - - Victor-Marie Hugo (* 26. Februar 1802 in Besançon; † 22. Mai 1885 in Paris) war ein französischer Schriftsteller der Romantik und des Realismus. Er schrieb zum einen Dramen und Romane, zum anderen auch politische Texte. Er war des weiteren auch ein Vertreter des Senats und zählt in Frankreich als einer der bedeutensden Autoren. - -* Tag 1 :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-17 02:00:00 - :EXPORT_FILE_NAME: tag-1.md - :END: - - "Man lebt ruhiger, wenn man nicht alles sagt, was man weiß, nicht alles glaubt, was man hört und über den Rest einfach nur lächelt." - - unbekannt - -* Anfang des Projekts :@project365_2015: - :PROPERTIES: - :EXPORT_DATE: 2015-01-16 02:00:00 - :EXPORT_FILE_NAME: anfang-des-projekts.md - :END: - - Ich habe mich nun auch dazu entschlossen ein sogenanntes Projekt 356 anzufangen. Während viele Leute jeden Tag ein Foto veröffentlichen, habe ich mich dazu entschlossen etwas anderes zu machen. Ich werde jeden Tag (beginnend morgen) einen anderen, mehr oder weniger bekannten bzw. weisen Spruch hier posten. Die Sprüche werden sich weder auf ein bestimmtes Thema noch auf eine bestimmte Epoche beschränken und es ist auch möglich das ein fremdsprachiges Zitat seinen Weg in diesen Blog findet. - - Viel Spass beim lesen! diff --git a/content-org/sites.org b/content-org/sites.org deleted file mode 100644 index de45bcb..0000000 --- a/content-org/sites.org +++ /dev/null @@ -1,598 +0,0 @@ -#+HUGO_BASE_DIR: ../ - -* Home - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: / - :EXPORT_HUGO_MENU: :menu main :weight 1 - :END: - - Hi, I'm Marcel Kapfer (at some places also known as "mmk2410"). At the moment, I invest most of my free time in creative work. That consists mainly of photography, but I also compose music, train myself in graphic design, and write text as well as code. - - While this website is (mostly) focused on tech-related stuff (like software development, operating systems and similar stuff) and writing in general, I also maintain a website dedicated to [[https://marcelkapfer.photography][photography]] as well one for [[https://marcel-kapfer.de][music composition]]. The blog here, however, may contains posts about more or less everything. - - Since about 2011/2012 I am mainly using Linux (sometimes exclusively, although currently not) and in 2014 I started writing software. In late 2016 I began using Emacs and Org-Mode and now more or less live inside it. After getting my bachelor's degree in computer science from the University of Ulm in 2021 I started working at a small software agency in Ulm, Germany. - - Besides these pages, you can also find me at a few other places across the web. - -* About me - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: about - :EXPORT_HUGO_MENU: :menu main :weight 2 - :END: - - #+begin_export html -
- -
- Hi! -
-
- My name is Marcel Kapfer and I'm a creative being. -
-
- #+end_export - -** Coding - - I learned Java as my first programming language back in 2014 and started a first project, the [[https://gitlab.com/mmk2410/writtenmorse-specs/-/wikis/home][writtenMorse]] project. - It provided tools to convert writtenMorse code to Latin letters and the other way around. (Btw.: The writtenMorse code itself is an “invention” of mine for better writing Morse code by using other symbols than dots and dashes). - Later in 2014 I started to learn coding for Android, since I wanted to develop a writtenMorse app for the mobile OS. - This app was published on the Google Play Store in mid December, just three weeks after my first contact with Android development. - Additionally to that I learned a bit of JavaScript in 2014 for enhanced features on my websites. - - In 2015 I expanded my knowledge by learning Bash, PHP, Python and a little bit of C. - I also released a few font apps for the Cyanogenmod Theme Engine and some bash scripts to make my (and maybe also your) life easier. - Rangitaki is another project that I started in February 2015. - It was a blogging engine without any database dependencies, written in PHP, which tried to be lightweight, extremely fast to start with and easy to use. - - Following this passion I joined the Ulm University in October 2015 to studying computer science to further improve my knowledge in this area. - In April 2021 I earned a Bachelor of Science degree in the field of theoretical computer science. - - I started learning more and more things about free (as in freedom, not as in free beer) software in the following years. - I strongly support the idea of freedom in software and try to avoid non-free software were possible. - One part of that is my decision to move all my project from GitHub to [[https://gitlab.com/u/mmk2410/projects][GitLab]] and [[https://git.mmk2410.org/explore/repos][my own Gitea instance]]. - - Due to other activities in the recent years (and also the coming ones) I don't have much time (and currently also not much interested) in developing software. - I try to further maintain some relevant projects, but most of them have been archived. - - At the moment, I work as a software developer at a small software agency in Ulm, Germany. - -** Photography - -I got my first camera back in 2007 when I was ten years old, and this was when I picked up photography as a hobby. -For some reason, taking pictures was always something that motivated me and so I brought my camera with me to many events, holidays and the like during the years. -About 2015/2016, my interest faded a bit, and I focused more on other things, completely forgetting about photography. - -In late 2020 this drastically changed when someone gave me an old DLSR camera. -From day one, my passion for photography was back again, and I invested more time than ever. -A bit later, in January 2022, I started an online course to improve my skills further and bought a modern mirrorless camera. -That was also the time when I discovered the more "artsy" side of photography and started sharing my work on social networks like [[https://pixelfed.social/mmk2410][Pixelfed]], [[https://instagram.com/mmk2410][Instagram]], and [[https://vero.co/mmk2410][VERO]]. -After a heavy focus on macro photography, I'm currently quite involved in street photography. - -If you would like to see some pictures or learn more about that, please visit my [[https://marcelkapfer.photography][portfolio]]. - -** Graphic Design - - I am a huge fan of eye pleasing works! - - Therefore I started designing a few years ago, but I hadn't jet time to do any major public work. - As of now my experience narrows down to web design and a little bit of print design, but I currently expand my knowledge by taking online graphic design courses. - -** Composing - - During my school time I had a lot to do with music and learned to play the piano. - Later I started to focus more on finding my own style, which is is combination of Minimal Music and Impressionism and I also wrote down some scores. - A first piece is written and more or less professionally set and also recorded. - You can download and view both on the [[https://marcel-kapfer.de][composing page]]. - - Due a lack of time in the last years I didn't have time to compose anything new. - But one other piece is done and only waiting for its recording. Stay tuned! - -** Writing - - To write about coding, politics, happenings in my life and also philosophy questions is something I'm interested in for years. - Sadly due to many other tasks I wasn't able to write much things. - Next to the blog entries I have also published a few longer [[/manuscripts][manuscripts]]. - -** Real Life - - Away from my desk I loosely follow some hobbies. - On one hand I like to read books of various kinds, including crime novels and science fiction / fantasy stuff but also some technical books. - On the other hand I like visiting mother nature either for cycling, hiking or photographing. - -** Others - - In case you are interested into what software and hardware I use, you can read my [[/uses][What I Use]] page. - -* What I Use - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: uses - :END: - - Since I find the lists of other people about what the use quite interesting and from time to time someone asks my about what software/hardware I use I decided to also set up one. - After having a simple blog post listing software since around 2016 I now put it all together here and update it from time to time. - - /Last updated: 28. February 2024/ - -** Hardware - -*** General - - - *Display:* BENQ GW2765 (27", 16:9, 1440p) - - *USB-Audio-Interface:* Focusrite Scarlett 2i2 (3rd Generation) - - *Headphones (Over Ear):* Audio-Technica ATH-M50x - - *Headphones (In Ear)*: Shure SE 215 Purple - - *Earbuds*: Sennheiser CX True Wireless - - *Microphone:* Marantz Pro MPM-1000 - - *Keyboard:* Ducky One2 Mini and Cherry MX-Board 3.0 - - *Mouse:* Cherry MW 3000 (wireless) - -*** Main Personal Laptop: Apple MacBook Air M2 13" - - - *CPU:* Apple M2, 8 Core CPU, 10 Core CPU, 16 Core Neural Engine - - *RAM:* 24GB - - *Storage:* 1TB - - *OS:* MacOS Sonoma - - *Display*: 13.6", 2560x1664 - -*** Spare Personal Laptop: Lenovo YOGA Slim 7 Pro X - - - *CPU:* AMD Ryzen 9 6900HS Creator Edition - - *GPU:* NVIDIA GeForce RTX 3050 Laptop - - *RAM:* 32GB - - *Storage:* 1TB M.2 SSD - - *OS:* Fedora Workstation 39 - - *Desktop Environment:* GNOME - - *Display*: 14.5", 3072x1920, 120Hz - -*** Work Laptop: Schenker Vision 14 (E22) - - - *CPU:* Intel Core i7-12700H - - *GPU:* NVIDIA GeForce RTX 3050 Ti Laptop - - *RAM:* 32GB - - *Storage:* 1GB NVMe-SSD - - *OS:* Tuxedo OS 2 - - *Desktop Environment:* KDE Plasma - - *Display*: 14", 2880x1800, 90Hz - -*** Cameras - - - *Fujifilm X-S10*: a mirrorless camera with a few lenses for everything - - *Ricoh GRIIIx*: a point-and-shoot style camera with a fixed 40mm equivalent lens as a every day camera and for street photography - -*** Other hardware - - - *Home server:* BananaPi M2 Ultra - - *Smartphone:* Apple iPhone 13 - - *Tablet*: Samsung Galaxy Tab S4 - - *Smart-/Sportswatch:* Garmin vívoactive 3 (though nowadays I often wear a non-smart watch) - - *Mobile Audio Player:* SanDisk Clip Sport - - *Printer/Scanner*: Lexmark MC2425 (Duplex-Colour-Laser) - - *Photo-Printer:* Canon Selphy CP 1500 - - *E-piano:* Kawai CA-50 - - *Amplifier*: Grundig V35 - - *Turntable:* Perpetuum Ebner 2020 L - -** Software - -*** Desktop - - - *Browser:* [[https://www.mozilla.org/firefox/][Firefox]] with following extensions: - - [[https://addons.mozilla.org/en-US/firefox/addon/privacy-badger17/][Privacy Badger]] - - [[https://addons.mozilla.org/en-US/firefox/addon/want-my-rss/][Want My RSS]] - - [[https://addons.mozilla.org/en-US/firefox/addon/facebook-container/][Facebook Container]] - - [[https://addons.mozilla.org/en-US/firefox/addon/keepassxc-browser/][KeePassXC-Browser]] - - [[https://addons.mozilla.org/en-US/firefox/addon/link-cleaner/][Link Cleaner]] - - *Calendar:* Nextcloud web calendar app - - *E-Mail client:* [[https://www.djcbsoftware.nl/code/mu/mu4e.html][mu4e]], [[https://www.thunderbird.net/][Thunderbird]] ( using mailbox.org as a mail service provider) - - *Contacts:* Nextcloud web contacts app - - *Password Manager*: [[https://keepassxc.org/][KeePassXC]] - - *Task Management:* [[https://orgmode.org/][org-mode]] - - *Read it later service*: Pocket - - *Text editor/IDE:* [[https://www.gnu.org/software/emacs/][Emacs]] and sometimes PhpStorm at work - - *Notable Emacs extensions*: - - [[https://magit.vc/][Magit]] (the Git client) - - [[https://orgmode.org/][org-mode]] (notes, todo-lists, planning, ...) - - [[https://www.orgroam.com/][org-roam]] (personal knowledge management) - - [[https://www.djcbsoftware.nl/code/mu/mu4e.html][mu4e]] (Mail client) - - [[https://joaotavora.github.io/eglot/][eglot]] (Language Server Protocol integration) - - [[https://www.gnu.org/software/erc/][ERC]] (Emacs IRC cient) - - [[https://github.com/skeeto/elfeed][Elfeed]] with [[https://github.com/fasheng/elfeed-protocol][Elfeed Protocol]] (Emacs RSS Reader) - - [[https://www.gnu.org/software/auctex/][AucTeX]] (LaTeX editing environment) - - [[https://github.com/minad/consult][Consult]], [[https://github.com/minad/vertico][Vertico]], [[https://github.com/oantolin/embark][Embark]], [[https://github.com/minad/marginalia][Marginalia]], [[https://github.com/oantolin/orderless][Orderless]] (completion system) - - [[https://editorconfig.org/][editorconfig]] (defined and shared code styles) - - [[https://github.com/akermu/emacs-libvterm][vterm]] (Emacs libvterm integration) - - *Photo management and development:* [[https://www.digikam.org/][Digikam]], Adobe Lightroom Classic, [[https://www.darktable.org/][Darktable]] - - *Photo editing:* Affinity Photo, [[https://www.gimp.org/][GIMP]] - - *Vector graphics:* Affinity Designer, [[https://inkscape.org][Inkscape]] - - *Desktop publishing*: Affinity Publisher, [[https://www.scribus.net/][Scribus]] and [[https://www.latex-project.org/][LaTeX]] (perhaps in the future also [[https://wiki.contextgarden.net/Main_Page][ConTeXt]]) - - *Word Processing, Spreadsheets, Presentations:* LibreOffice (if not possible within Emacs & org-mode) - - *Shopping List:* Shared Nextcloud notes entry - - *Video editing:* [[https://kdenlive.org/en/][kdenlive]] - - *Digital audio workstation (DAW):* Audacity - - *Scorewriter:* [[https://musescore.org/][musescore]] - - *Music listening:* Spotify, Emacs - - *Accounting software*: [[https://hledger.org/][hledger]] - -*** Android - -My Samsung Galaxy Tab S4 does not have a mobile network modem and I currently don't own a Android smartphone. Therefore, the list of apps may be not as complete as expected. - - - *Browser:* [[https://www.mozilla.org/firefox/][Firefox]] - - *Calendar:* [[https://acalendar.tapirapps.de/en/support/home][aCalendar+]] (synced with my Nextcloud) - - *Email:* [[https://k9mail.app/][K-9 Mail]] (using mailbox.org as a mail service provider) - - *Contacts:* Samsung Contacts App (synced with my Nextcloud) - - *Task Management:* [[http://www.orgzly.com/][Orgzly]] - - *Read it later service*: Pocket - - *Shopping List:* Shared Nextcloud notes entry - - *Music listening:* Spotify - - *Social Networks:* [[https://tusky.app/][Tusky]] (Mastodon), Instagram, [[https://pixelfed.org/][Pixelfed]], Vero, Flickr - - *Security:* [[https://github.com/PhilippC/keepass2android][Keepass2Android]] - - *Software centres:* Google Play Store and [[https://f-droid.org/][F-Droid]] - - *Other notable apps:* [[https://osmand.net/][OsmAnd]] - -*** iOS - - - *Browser*: [[https://www.mozilla.org/firefox/][Firefox]] - - *Calendar:* Apple Calendar (synced with my Nextcloud) - - *Email:* Apple Mail (using mailbox.org as a mail service provider) - - *Contacts:* Apple Contacts App (synced with my Nextcloud) - - *Task Management:* [[https://beorgapp.com/][beorg]] - - *Read it later service*: Pocket - - *Shopping List:* Shared Nextcloud notes entry - - *Messaging:* [[https://www.signal.org/][Signal]], Telegram, WhatsApp, Discord - - *Social Networks:* [[https://apps.apple.com/us/app/metatext/id1523996615?l=en][Metatext]] (Mastodon), Instagram, [[https://pixelfed.org/][Pixelfed]], Vero, Flickr - - *Notes:* [[https://1writerapp.com/][1Writer]] - - *Security:* [[https://apps.apple.com/us/app/freeotp-authenticator/id872559395][FreeOTP]], [[https://strongboxsafe.com/][Strongbox]] (KeePass-compatible password store) - - *RSS Reader:* [[https://reederapp.com/][Reeder]] - - *Other notable apps:* [[https://osmand.net/][OsmAnd]] (Maps) - -** Self-hosted - - Some services are publicly available and hosted on a Hetzner VPS others are running on my home server (see above in the hardware section). - - - *Wiki:* [[https://moinmo.in/][MoinMoin]] (for [[https://uulmhack.dev][uulmhack]]) - - *RSS:* [[https://freshrss.github.io/FreshRSS/en/][FreshRSS]] with [[https://github.com/RSS-Bridge/rss-bridge/wiki][RSS-bridge]] - - *Cloud:* Nextcloud - - *Git web interface:* [[https://forgejo.org/][Forgejo]] - - *IRC Bouncer:* [[https://wiki.znc.in/ZNC][ZNC]] - - *Web analytics*: [[https://www.goatcounter.com/][GoatCounter]] - - *Recipe management*: [[https://tandoor.dev/][Tandoor]] - - *Online file browser*: [[https://filebrowser.org/][File Browser]] - - *Photo gallery*: [[https://bpatrik.github.io/pigallery2/][PiGallery 2]] - -** Other Services - -- *Mail Provider:* Mailbox.org - -* Blog - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: blog - :EXPORT_HUGO_MENU: :menu main :weight 3 - :END: - - There are always some ideas floating around in my head of things that I want to write. - Some fade away, and others I capture in my GTD system. - And on some rare occasions, I invest the time to move my thoughts from my brain into a nice blog post. - - If you're asking about what I write: I really can't tell. - Most things you can find here at the moment are about Linux, coding, and similar stuff. - But I won't promise that this won't change. - We'll see. - -* Projects - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: projects - :EXPORT_HUGO_MENU: :menu main :weight 4 - :END: - -** Software Projects - - Since I started to program in 2014 I started a few small software projects. - Sadly over the last years I had nearly no time to maintain any of them (except features and bugfixes I needed). - However, I try to further maintain and develop them. - You can find all of them at [[https://gitlab.com/mmk2410][GitLab]]. - -*** Debian packages and Ubuntu PPAs - - My unofficial Debian packages and the corresponding Ubuntu PPA for Jetbrains IntelliJ IDEA are probably the most “famous” thing I have created. - At least I get bug reports and merge requests when I do not update the packages fast enough. - - Besides them I also created a few other packages for Debian. - - To clarify: I am not a official Debian Developer or Maintainer and am also not formally trained on building Debian packages. - Therefore the quality of the packages is certainly not that good. - There are---more or less---quite hacky. - -**** IntelliJ IDEA Community & Ultimate - - The community edition and the ultimate edition as well can be received from the Launchpad repository [[https://launchpad.net/~mmk2410/+archive/ubuntu/intellij-idea][ppa:mmk2410/intellij-idea]] which you can add on Ubuntu with - - #+begin_src shell - sudo apt-add-repository ppa:mmk2410/intellij-idea # Add the repository - sudo apt-get update # Update the package lists - sudo apt-get install intellij-idea-community # Install IntelliJ IDEA Community - sudo apt-get install intellij-idea-ultimate # and/or install IntelliJ IDEA Ultimate - #+end_src - - The source code and the =.deb= packages are available at their repositories on GitLab: - - - [[https://gitlab.com/mmk2410/intellij-idea-community/][IntelliJ IDEA Community repository]] - - [[https://gitlab.com/mmk2410/intellij-idea-ultimate/][Intellij IDEA Ultimate repository]] - -**** Typefaces - - Because I needed them, I packaged three typefaces for Debian. - The packages should also work for Ubuntu but I don't provide an PPA for them. - - I currently can not ensure active maintenance of any of these packages. - - - *Iosevka*: [[https:://gitlab.com/mmk2410/fonts-iosevka][GitLab]] [[https://git.mmk2410.org/deb/fonts-iosevka][Gitea]] - - *Hermit*: [[https://gitlab.com/mmk2410/fonts-hermit][GitLab]] [[https://git.mmk2410.org/deb/fonts-iosevka][Gitea]] - - *Overpass*: [[https://git.mmk2410.org/deb/fonts-overpass][Gitea]] - -*** Scorelib (inactive) - - Scorelib is a smaller project I started in 2015 for managing my collection music scores (the sheetpapers) with a database. - Scorelib is a CLI program written in Python and using SQlite as a database. - I assume that it only runs on Linux, but I never tested it on other platforms. - Scorelib is, as of now, quite small with only the basic features implemented (like I wrote on the beginning, I had no time to code much the last years). - It is available at [[https://gitlab.com/mmk2410/scorelib][GitLab]]. - - Note: Although the title says that the project is inactive I do not consider archiving it. - Theoretically I still have a need for such a software but practically time is missing to work on it. - It is also possible that I will start working on it again but then possibly also with a completely different tech stack/goal. - -*** Other - - Smaller scripts that aren't worth their own Git repository can be - found at the [[https://gitlab.com/mmk2410/scirpts][scripts repo]]. - -** Other Projects - -*** Quotes Collection - -A [[/quotes][collection of quotes]] (mostly without comment) that I largely gathered during a project 365 in 2015. The pages are only available in German. - -** Archived Projects - -*** Software Projects - -**** CyanogenMod Fonts (archived) - - In early 2015 I created three font packages for the CyanogenMod - Theme Chooser (Comfortaa, Fira Sans and Raleway) which were all - quite a success at Google Play. But since end of 2015 I no longer - own an device for which a CyanogenMode / LineageOS build is - available and so I sadly cannot further develop or maintain those - packages. I /you/ are interested in helping with these projects, - feel free to contact me at me(at)mmk2410(dot)org! - -**** Rangitaki (archived) - - The biggest project I've started is the Rangitaki blogging engine. - A blogging engine (with a few CMS features) written in PHP and - without database dependencies. I used it prior to this WordPress - installation and still use it on [[https://marcel-kapfer.de][marcel-kapfer.de]]. - - Read more about it at [[https://gitlab.com/mmk2410/rangitaki/wikis/home][GitLab]]. - -**** writtenMorse (archived) - - writtenMorse was the first project I've started back in 2014. Its - goal is it to provide a Morse code system for writing and reading - (with signs like =#= for a letter space and =+= for a word space) - -- especially at computer system, as well as software to work with - it. The project started with a simple Java program which grow fast - to a full-features software for converting writtenMorse and also - Morse code. The project also created an Android app an a - responsive web app. - - More information can still be found at the corresponding [[https://gitlab.com/mmk2410/writtenmorse-specs/wikis/home][wiki - page]]. - -**** Other archived projects - - Beneath those projects there were also a few other ones worth - mentioning like [[https://gitlab.com/mmk2410/filespread][Filespread]], an web app for sending a file to a - group of people via mail, and [[https://gitlab.com/mmk2410/titama][TiTaMa]], a simple time table manager - web app written in PHP (a rewrite in Dart was started and the - backend is complete since mid-2016 but the frontend was never - started). There is also the usual bunch of dead experiments like - an Rangitaki SSH Sync library, written in C with libssh. As of now - all these are no longer developed and archived. - -* Manuscripts - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: manuscripts - :EXPORT_HUGO_MENU: :menu main :weight 7 - :END: - - Here you can find some articles, concepts, manuscripts and similar - documents. Most of them are written in German. - -** Philosophy - - - [[/2019/04/handlungsfreiheit-privatautonomie-mensch-autonome-systeme.pdf][Handlungsfreiheit und Privatautonomie des Menschen bei autonomen Systemen]] (Deutsch, 12. Februar 2019) - - [[/2018/07/arbeit.pdf][Suizid aus den Augen Viktor E. Frankls]] (Deutsch, 30. März 2018) - - [[/2018/03/mathematik-antike.pdf][Mathematik in der Antike]] (Deutsch, 12. März 2018) - -** Computer Science - - - [[/2018/08/overview-of-finding-the-most-probable-explanation-in-bayesian-networks.pdf][Overview of finding the most probable explanation in Bayesian networks]] (English, 09. July 2018) - - [[/2018/03/vergleich-bdsg-dsgvo.pdf][Das Bundesdatenschutzgesetz im Vergleich mit der Datenschutz-Grundverordnung]] (Deutsch, 24. Januar 2018) - -** Misc - - - [[/2018/03/konzept-gespraech-konfliktbewaeltigung.pdf][Konzept für Gespräche zur Konfliktbewältigung]] (Deutsch, 27. März 2018) - -* Quotes - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: quotes - :END: - - /These pages are only in German./ - - Auf diesen Seiten sammeln sich zahlreiche (zumeist unkommentierte) - Zitate. Der Großteil (zur Zeit sogar noch alle) stammen von einem - Projekt 365 (wem das nicht bekannt ist, ein Projekt 365 ist ein - Projekt, bei welchem man sich täglich eine Aufgabe vornimmt), zu - welchem ich 2015 ermuntert wurde. Ich habe mich damals dazu - entschieden, ein Jahr lange jeden Tag ein Zitat (unkommentiert) zu - posten. Diese Sammlung findet sich hier. - - Das hießt aber nicht, dass nie etwas Neues hinzukommt. Es ist gut - möglich, dass ich hier in Zukunft von Zeit zu Zeit ein Zitat poste - und eventuell dieses auch sogar etwas kommentiere. Mal schauen... :D - - Falls das mal der Fall sein sollte und sich jemand bewusst nur für - die Posts im Rahmen des damaligen Projekt 365 interessiert, kann er - explizit diese unter der [[/categories/project365-2015][dazugehörigen Kategorieseite]] lesen. - -* Contact - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: contact - :EXPORT_HUGO_MENU: :menu main :weight 99 - :END: - - If you want to contact me you can choose among the following options (though I prefer email): - - - Email: me(at)mmk2410(dot)org (PGP key ID: =CADE 6F0C 09F2 1B09=) - - Direct Message on Mastodon (account see below) - - You can also follow me on some social networks where I am more or less active: - - - Mastodon/Fosstodon: [[https://fosstodon.org/@mmk2410][@mmk2410@fosstodon.org]] - - Pixelfed: [[https://pixelfed.social/mmk2410][@mmk2410@pixelfed.social]] - - Instagram: [[https://instagram.com/mmk2410][@mmk2410]] - - VERO: [[https://vero.co/mmk2410][@mmk2410]] - - Flickr: [[https://www.flickr.com/photos/marcelkapfer/][marcels.pictures]] - -* Impressum und Datenschutz - :PROPERTIES: - :EXPORT_FILE_NAME: _index - :EXPORT_HUGO_SECTION: imprint - :END: - Marcel Kapfer
- Buchenlandweg 99
- 89075 Ulm - - E-Mail: me(at)mmk2410(dot)org - - Verantwortlich für den Inhalt (gem. § 55 Abs. 2 RStV):
- Marcel Kapfer
- Buchenlandweg 99
- 89075 Ulm - -** Disclaimer – rechtliche Hinweise -*** § 1 Warnhinweis zu Inhalten - - Die kostenlosen und frei zugänglichen Inhalte dieser Webseite wurden - mit größtmöglicher Sorgfalt erstellt. Der Anbieter dieser Webseite - übernimmt jedoch keine Gewähr für die Richtigkeit und Aktualität der - bereitgestellten kostenlosen und frei zugänglichen journalistischen - Ratgeber und Nachrichten. Namentlich gekennzeichnete Beiträge geben - die Meinung des jeweiligen Autors und nicht immer die Meinung des - Anbieters wieder. Allein durch den Aufruf der kostenlosen und frei - zugänglichen Inhalte kommt keinerlei Vertragsverhältnis zwischen dem - Nutzer und dem Anbieter zustande, insoweit fehlt es am - Rechtsbindungswillen des Anbieters. - -*** § 2 Externe Links - - Diese Website enthält Verknüpfungen zu Websites Dritter (“externe - Links”). Diese Websites unterliegen der Haftung der jeweiligen - Betreiber. Der Anbieter hat bei der erstmaligen Verknüpfung der - externen Links die fremden Inhalte daraufhin überprüft, ob etwaige - Rechtsverstöße bestehen. Zu dem Zeitpunkt waren keine Rechtsverstöße - ersichtlich. Der Anbieter hat keinerlei Einfluss auf die aktuelle - und zukünftige Gestaltung und auf die Inhalte der verknüpften - Seiten. Das Setzen von externen Links bedeutet nicht, dass sich der - Anbieter die hinter dem Verweis oder Link liegenden Inhalte zu Eigen - macht. Eine ständige Kontrolle der externen Links ist für den - Anbieter ohne konkrete Hinweise auf Rechtsverstöße nicht zumutbar. - Bei Kenntnis von Rechtsverstößen werden jedoch derartige externe - Links unverzüglich gelöscht. - -*** § 3 Urheber- und Leistungsschutzrechte - - Eigene Inhalte werden unter Creative Commons Attribution Share-Alike - 4.0 veröffentlicht, davon ausgenommen sind als Zitat gekennzeichnete - Stellen oder Beiträge in denen ausdrücklich auf eine andere Lizenz - hingewiesen wird. - - Die Darstellung dieser Website in fremden Frames ist nur mit - schriftlicher Erlaubnis zulässig. - -*** § 4 Besondere Nutzungsbedingungen - - Soweit besondere Bedingungen für einzelne Nutzungen dieser Website - von den vorgenannten Paragraphen abweichen, wird an entsprechender - Stelle ausdrücklich darauf hingewiesen. In diesem Falle gelten im - jeweiligen Einzelfall die besonderen Nutzungsbedingungen. - - Quelle: Impressum-Generator. - -** Datenschutz - - Nachfolgend möchten wir Sie über unsere Datenschutzerklärung - informieren. Sie finden hier Informationen über die Erhebung und - Verwendung persönlicher Daten bei der Nutzung unserer Webseite. Wir - beachten dabei das für Deutschland geltende Datenschutzrecht. Sie - können diese Erklärung jederzeit auf unserer Webseite abrufen. - - Wir weisen ausdrücklich darauf hin, dass die Datenübertragung im - Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken - aufweisen und nicht lückenlos vor dem Zugriff durch Dritte geschützt - werden kann. - - Die Verwendung der Kontaktdaten unseres Impressums zur gewerblichen - Werbung ist ausdrücklich nicht erwünscht, es sei denn wir hatten - zuvor unsere schriftliche Einwilligung erteilt oder es besteht - bereits eine Geschäftsbeziehung. Der Anbieter und alle auf dieser - Website genannten Personen widersprechen hiermit jeder kommerziellen - Verwendung und Weitergabe ihrer Daten. - -*** Personenbezogene Daten - - Sie können unsere Webseite ohne Angabe personenbezogener Daten - besuchen. Soweit auf unseren Seiten personenbezogene Daten (wie - Name, Anschrift oder E-Mail Adresse) erhoben werden, erfolgt dies, - soweit möglich, auf freiwilliger Basis. Diese Daten werden ohne Ihre - ausdrückliche Zustimmung nicht an Dritte weitergegeben. Sofern - zwischen Ihnen und uns ein Vertragsverhältnis begründet, inhaltlich - ausgestaltet oder geändert werden soll oder Sie an uns eine Anfrage - stellen, erheben und verwenden wir personenbezogene Daten von Ihnen, - soweit dies zu diesen Zwecken erforderlich ist (Bestandsdaten). Wir - erheben, verarbeiten und nutzen personenbezogene Daten soweit dies - erforderlich ist, um Ihnen die Inanspruchnahme des Webangebots zu - ermöglichen (Nutzungsdaten). Sämtliche personenbezogenen Daten - werden nur solange gespeichert wie dies für den genannten Zweck - (Bearbeitung Ihrer Anfrage oder Abwicklung eines Vertrags) - erforderlich ist. Hierbei werden steuer- und handelsrechtliche - Aufbewahrungsfristen berücksichtigt. Auf Anordnung der zuständigen - Stellen dürfen wir im Einzelfall Auskunft über diese Daten - (Bestandsdaten) erteilen, soweit dies für Zwecke der - Strafverfolgung, zur Gefahrenabwehr, zur Erfüllung der gesetzlichen - Aufgaben der Verfassungsschutzbehörden oder des Militärischen - Abschirmdienstes oder zur Durchsetzung der Rechte am geistigen - Eigentum erforderlich ist. - -*** Auskunftsrecht - - Sie haben das jederzeitige Recht, sich unentgeltlich und - unverzüglich über die zu Ihrer Person erhobenen Daten zu erkundigen. - Sie haben das jederzeitige Recht, Ihre Zustimmung zur Verwendung - Ihrer angegeben persönlichen Daten mit Wirkung für die Zukunft zu - widerrufen. Zur Auskunftserteilung wenden Sie sich bitte an den - Anbieter unter den Kontaktdaten im Impressum. - - Quelle: [[https://www.juraforum.de][www.juraforum.de]] diff --git a/index.php b/index.php new file mode 100644 index 0000000..87ed01d --- /dev/null +++ b/index.php @@ -0,0 +1,5 @@ +render(); diff --git a/media/index.html b/media/index.html new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..15bdbef --- /dev/null +++ b/package-lock.json @@ -0,0 +1,420 @@ +{ + "name": "mmk2410.org", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "mmk2410.org", + "license": "MIT", + "devDependencies": { + "esbuild": "^0.20.1" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.1.tgz", + "integrity": "sha512-m55cpeupQ2DbuRGQMMZDzbv9J9PgVelPjlcmM5kxHnrBdBx6REaEd7LamYV7Dm8N7rCyR/XwU6rVP8ploKtIkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.1.tgz", + "integrity": "sha512-4j0+G27/2ZXGWR5okcJi7pQYhmkVgb4D7UKwxcqrjhvp5TKWx3cUjgB1CGj1mfdmJBQ9VnUGgUhign+FPF2Zgw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.1.tgz", + "integrity": "sha512-hCnXNF0HM6AjowP+Zou0ZJMWWa1VkD77BXe959zERgGJBBxB+sV+J9f/rcjeg2c5bsukD/n17RKWXGFCO5dD5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.1.tgz", + "integrity": "sha512-MSfZMBoAsnhpS+2yMFYIQUPs8Z19ajwfuaSZx+tSl09xrHZCjbeXXMsUF/0oq7ojxYEpsSo4c0SfjxOYXRbpaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.1.tgz", + "integrity": "sha512-Ylk6rzgMD8klUklGPzS414UQLa5NPXZD5tf8JmQU8GQrj6BrFA/Ic9tb2zRe1kOZyCbGl+e8VMbDRazCEBqPvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.1.tgz", + "integrity": "sha512-pFIfj7U2w5sMp52wTY1XVOdoxw+GDwy9FsK3OFz4BpMAjvZVs0dT1VXs8aQm22nhwoIWUmIRaE+4xow8xfIDZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.1.tgz", + "integrity": "sha512-UyW1WZvHDuM4xDz0jWun4qtQFauNdXjXOtIy7SYdf7pbxSWWVlqhnR/T2TpX6LX5NI62spt0a3ldIIEkPM6RHw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.1.tgz", + "integrity": "sha512-itPwCw5C+Jh/c624vcDd9kRCCZVpzpQn8dtwoYIt2TJF3S9xJLiRohnnNrKwREvcZYx0n8sCSbvGH349XkcQeg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.1.tgz", + "integrity": "sha512-LojC28v3+IhIbfQ+Vu4Ut5n3wKcgTu6POKIHN9Wpt0HnfgUGlBuyDDQR4jWZUZFyYLiz4RBBBmfU6sNfn6RhLw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.1.tgz", + "integrity": "sha512-cX8WdlF6Cnvw/DO9/X7XLH2J6CkBnz7Twjpk56cshk9sjYVcuh4sXQBy5bmTwzBjNVZze2yaV1vtcJS04LbN8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.1.tgz", + "integrity": "sha512-4H/sQCy1mnnGkUt/xszaLlYJVTz3W9ep52xEefGtd6yXDQbz/5fZE5dFLUgsPdbUOQANcVUa5iO6g3nyy5BJiw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.1.tgz", + "integrity": "sha512-c0jgtB+sRHCciVXlyjDcWb2FUuzlGVRwGXgI+3WqKOIuoo8AmZAddzeOHeYLtD+dmtHw3B4Xo9wAUdjlfW5yYA==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.1.tgz", + "integrity": "sha512-TgFyCfIxSujyuqdZKDZ3yTwWiGv+KnlOeXXitCQ+trDODJ+ZtGOzLkSWngynP0HZnTsDyBbPy7GWVXWaEl6lhA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.1.tgz", + "integrity": "sha512-b+yuD1IUeL+Y93PmFZDZFIElwbmFfIKLKlYI8M6tRyzE6u7oEP7onGk0vZRh8wfVGC2dZoy0EqX1V8qok4qHaw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.1.tgz", + "integrity": "sha512-wpDlpE0oRKZwX+GfomcALcouqjjV8MIX8DyTrxfyCfXxoKQSDm45CZr9fanJ4F6ckD4yDEPT98SrjvLwIqUCgg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.1.tgz", + "integrity": "sha512-5BepC2Au80EohQ2dBpyTquqGCES7++p7G+7lXe1bAIvMdXm4YYcEfZtQrP4gaoZ96Wv1Ute61CEHFU7h4FMueQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.1.tgz", + "integrity": "sha512-5gRPk7pKuaIB+tmH+yKd2aQTRpqlf1E4f/mC+tawIm/CGJemZcHZpp2ic8oD83nKgUPMEd0fNanrnFljiruuyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.1.tgz", + "integrity": "sha512-4fL68JdrLV2nVW2AaWZBv3XEm3Ae3NZn/7qy2KGAt3dexAgSVT+Hc97JKSZnqezgMlv9x6KV0ZkZY7UO5cNLCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.1.tgz", + "integrity": "sha512-GhRuXlvRE+twf2ES+8REbeCb/zeikNqwD3+6S5y5/x+DYbAQUNl0HNBs4RQJqrechS4v4MruEr8ZtAin/hK5iw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.1.tgz", + "integrity": "sha512-ZnWEyCM0G1Ex6JtsygvC3KUUrlDXqOihw8RicRuQAzw+c4f1D66YlPNNV3rkjVW90zXVsHwZYWbJh3v+oQFM9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.1.tgz", + "integrity": "sha512-QZ6gXue0vVQY2Oon9WyLFCdSuYbXSoxaZrPuJ4c20j6ICedfsDilNPYfHLlMH7vGfU5DQR0czHLmJvH4Nzis/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.1.tgz", + "integrity": "sha512-HzcJa1NcSWTAU0MJIxOho8JftNp9YALui3o+Ny7hCh0v5f90nprly1U3Sj1Ldj/CvKKdvvFsCRvDkpsEMp4DNw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.1.tgz", + "integrity": "sha512-0MBh53o6XtI6ctDnRMeQ+xoCN8kD2qI1rY1KgF/xdWQwoFeKou7puvDfV8/Wv4Ctx2rRpET/gGdz3YlNtNACSA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.1.tgz", + "integrity": "sha512-OJwEgrpWm/PCMsLVWXKqvcjme3bHNpOgN7Tb6cQnR5n0TPbQx1/Xrn7rqM+wn17bYeT6MGB5sn1Bh5YiGi70nA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.1", + "@esbuild/android-arm": "0.20.1", + "@esbuild/android-arm64": "0.20.1", + "@esbuild/android-x64": "0.20.1", + "@esbuild/darwin-arm64": "0.20.1", + "@esbuild/darwin-x64": "0.20.1", + "@esbuild/freebsd-arm64": "0.20.1", + "@esbuild/freebsd-x64": "0.20.1", + "@esbuild/linux-arm": "0.20.1", + "@esbuild/linux-arm64": "0.20.1", + "@esbuild/linux-ia32": "0.20.1", + "@esbuild/linux-loong64": "0.20.1", + "@esbuild/linux-mips64el": "0.20.1", + "@esbuild/linux-ppc64": "0.20.1", + "@esbuild/linux-riscv64": "0.20.1", + "@esbuild/linux-s390x": "0.20.1", + "@esbuild/linux-x64": "0.20.1", + "@esbuild/netbsd-x64": "0.20.1", + "@esbuild/openbsd-x64": "0.20.1", + "@esbuild/sunos-x64": "0.20.1", + "@esbuild/win32-arm64": "0.20.1", + "@esbuild/win32-ia32": "0.20.1", + "@esbuild/win32-x64": "0.20.1" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..8fdcaae --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "mmk2410.org", + "description": "Website running at mmk2410.org", + "scripts": { + "build": "esbuild assets/src/main.css --bundle --minify --loader:.woff2=dataurl --outdir=assets/build/" + }, + "repository": { + "type": "git", + "url": "https://git.mmk2410.org/mmk2410/mmk2410.org" + }, + "author": "Marcel Kapfer", + "license": "MIT", + "devDependencies": { + "esbuild": "^0.20.1" + } +} diff --git a/publish.sh b/publish.sh deleted file mode 100755 index 6900d94..0000000 --- a/publish.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Clean aka remove public/ if it exists -if [[ -d ./public/ ]]; then - rm -rf ./public/ -fi - -# Build the site using hugo -hugo - -# Deploy using rsync -rsync \ - --archive \ - --verbose \ - --compress \ - --chown=marcel:www-data \ - --delete \ - --progress \ - public/ \ - tolkien:/var/www/mmk2410.org/ diff --git a/site/accounts/index.html b/site/accounts/index.html new file mode 100644 index 0000000..e69de29 diff --git a/site/blueprints/pages/article.yml b/site/blueprints/pages/article.yml new file mode 100644 index 0000000..f364f5c --- /dev/null +++ b/site/blueprints/pages/article.yml @@ -0,0 +1,37 @@ +title: Blog Article + +num: '{{ page.date.toDate("YmdHi") }}' + +create: + fields: + - date + +columns: + main: + width: 2/3 + sections: + fields: + type: fields + fields: + text: + type: textarea + size: huge + sidebar: + width: 1/3 + sections: + meta: + type: fields + fields: + date: + type: date + label: Published on + time: true + required: true + categories: + type: tags + labe: Categories + tags: + type: tags + labe: Tags + files: + type: files diff --git a/site/blueprints/pages/blog.yml b/site/blueprints/pages/blog.yml new file mode 100644 index 0000000..2dd39f1 --- /dev/null +++ b/site/blueprints/pages/blog.yml @@ -0,0 +1,21 @@ +title: Blog Page + +sections: + fields: + type: fields + fields: + text: + type: textarea + size: small + drafts: + extends: sections/articles + label: Drafts + status: draft + unlisted: + extends: sections/articles + label: In Review + status: unlisted + listed: + extends: sections/articles + label: Published + status: listed diff --git a/site/blueprints/pages/default.yml b/site/blueprints/pages/default.yml new file mode 100644 index 0000000..0cb0129 --- /dev/null +++ b/site/blueprints/pages/default.yml @@ -0,0 +1,21 @@ +title: Default Page + +columns: + main: + width: 2/3 + sections: + fields: + type: fields + fields: + text: + type: textarea + size: huge + sidebar: + width: 1/3 + sections: + pages: + type: pages + template: default + files: + type: files + diff --git a/site/blueprints/pages/home.yml b/site/blueprints/pages/home.yml new file mode 100644 index 0000000..f16d0cc --- /dev/null +++ b/site/blueprints/pages/home.yml @@ -0,0 +1,46 @@ +title: Home Page + +columns: + main: + width: 2/3 + sections: + fields: + type: fields + fields: + subtitle: + type: text + text: + type: textarea + size: medium + internal_menu: + type: structure + label: Internal Links + fields: + title: + type: text + label: Title + link: + type: link + label: Link + options: + - page + external_menu: + type: structure + label: External Links + fields: + title: + type: text + label: Title + link: + type: link + label: Link + options: + - url + sidebar: + width: 1/3 + sections: + pages: + type: pages + template: default + files: + type: files diff --git a/site/blueprints/pages/quote.yml b/site/blueprints/pages/quote.yml new file mode 100644 index 0000000..b3aea00 --- /dev/null +++ b/site/blueprints/pages/quote.yml @@ -0,0 +1,29 @@ +title: Blog Article + +num: '{{ page.date.toDate("YmdHi") }}' + +create: + fields: + - date + +columns: + main: + width: 2/3 + sections: + fields: + type: fields + fields: + text: + type: textarea + size: medium + sidebar: + width: 1/3 + sections: + meta: + type: fields + fields: + date: + type: date + label: Published on + time: true + required: true diff --git a/site/blueprints/pages/quotes.yml b/site/blueprints/pages/quotes.yml new file mode 100644 index 0000000..6e885a9 --- /dev/null +++ b/site/blueprints/pages/quotes.yml @@ -0,0 +1,21 @@ +title: Quotes Page + +sections: + fields: + type: fields + fields: + text: + type: textarea + size: small + quotes: + type: pages + search: true + image: false + template: quote + sortBy: date desc + empty: No quotes yet + layout: table + columns: + date: + label: Published on + width: 1/6 diff --git a/site/blueprints/sections/articles.yml b/site/blueprints/sections/articles.yml new file mode 100644 index 0000000..9a47d07 --- /dev/null +++ b/site/blueprints/sections/articles.yml @@ -0,0 +1,17 @@ +type: pages +search: true +image: false +template: article +sortBy: date desc +empty: No articles yet +layout: table +columns: + date: + label: Published on + width: 1/6 + categories: + label: Categories + width: 1/6 + tags: + label: Tags + width: 1/6 diff --git a/site/blueprints/site.yml b/site/blueprints/site.yml new file mode 100644 index 0000000..dc98544 --- /dev/null +++ b/site/blueprints/site.yml @@ -0,0 +1,56 @@ +title: Site + +columns: + main: + width: 2/3 + sections: + pages: + type: pages + fields: + type: fields + fields: + menu: + type: structure + fields: + title: + type: text + label: Title + link: + type: link + label: Link + options: + - page + - url + sidebar: + width: 1/3 + sections: + articles_draft: + extends: sections/articles + label: Draft Articles + status: draft + parent: site.find("blog") + layout: list + limit: 5 + articles_review: + extends: sections/articles + label: In Review Articles + status: unlisted + parent: site.find("blog") + layout: list + limit: 5 + articles_published: + extends: sections/articles + label: Published Articles + status: listed + parent: site.find("blog") + layout: list + limit: 5 + metadata: + type: fields + fields: + author: + type: text + description: + type: text + keywords: + type: tags diff --git a/site/cache/index.html b/site/cache/index.html new file mode 100644 index 0000000..e69de29 diff --git a/site/config/config.php b/site/config/config.php new file mode 100644 index 0000000..a2b11c1 --- /dev/null +++ b/site/config/config.php @@ -0,0 +1,37 @@ + [ + 'goatcounter' => 'stats.mmk2410.org' + ], + 'routes' => [ + [ + 'pattern' => 'feed', + 'action' => fn () => go('/blog.rss') + ], + [ + 'pattern' => 'index.xml', + 'action' => fn () => go('/blog.rss') + ], + [ + 'pattern' => '(:num)/(:num)/(:num)/(:any)', + 'action' => function ($year, $month, $day, $slug) { + $page = page('blog/' . $slug); + if (!$page) return site()->errorPage(); + return site()->visit($page); + } + ], + [ + 'pattern' => 'blog/category/(:any)', + 'action' => function($category) { + return page('blog')->render(['category' => $category]); + } + ], + [ + 'pattern' => 'blog/tag/(:any)', + 'action' => function($tag) { + return page('blog')->render(['tag' => $tag]); + } + ] + ] +]; diff --git a/site/controllers/blog.php b/site/controllers/blog.php new file mode 100644 index 0000000..84071a9 --- /dev/null +++ b/site/controllers/blog.php @@ -0,0 +1,17 @@ +children()->listed(); + + if ($tag) { + $articles = $articles->filterBy('tags', $tag, ','); + } + + if ($category) { + $articles = $articles->filterBy('categories', $category, ','); + } + + return [ + 'articles' => $articles->flip()->paginate(20) + ]; +}; diff --git a/site/controllers/quotes.php b/site/controllers/quotes.php new file mode 100644 index 0000000..f8ae4e3 --- /dev/null +++ b/site/controllers/quotes.php @@ -0,0 +1,7 @@ + $page->children()->listed()->flip()->paginate(20) + ]; +}; diff --git a/site/models/article.php b/site/models/article.php new file mode 100644 index 0000000..4ae9b75 --- /dev/null +++ b/site/models/article.php @@ -0,0 +1,30 @@ +date()->toDate('Y/m/d'); + return '/' . $date .'/' . $this->slug(); + } + + public function readingTime() { + $doc = new DOMDocument(); + $doc->loadHtml( + "" + . $this->text()->kirbytext() + ."" + ); + $pElems = $doc->getElementsByTagName('p'); + + $text = ''; + foreach ($pElems as $pElem) { + $text .= $pElem->nodeValue . ' '; + } + + $wordCount = count(explode(' ', $text)); + $readingTime = (int)ceil($wordCount / 150); + + return $wordCount . ' words, ~' . $readingTime . 'min reading time'; + } +} diff --git a/site/plugins/kirby-highlighter/LICENSE b/site/plugins/kirby-highlighter/LICENSE new file mode 100644 index 0000000..1bd7d12 --- /dev/null +++ b/site/plugins/kirby-highlighter/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020-PRESENT Johann Schopplich + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/site/plugins/kirby-highlighter/README.md b/site/plugins/kirby-highlighter/README.md new file mode 100644 index 0000000..a2dfa34 --- /dev/null +++ b/site/plugins/kirby-highlighter/README.md @@ -0,0 +1,135 @@ +# Kirby Highlighter + +Server-side code highlighting available as [custom block](https://getkirby.com/docs/reference/panel/fields/blocks) and for [KirbyText](https://getkirby.com/docs/guide/content/text-formatting#kirbytext). + +Built upon [highlight.php](http://www.highlightjs.org) which itself is a port of [highlight.js](http://www.highlightjs.org). + +## Key Features + +- 🏗 Works with Kirby's [`code` block](https://getkirby.com/docs/reference/panel/blocks/code) +- 🏳️‍🌈 Supports 189 languages +- 💫 94 styles available +- ⛳️ Automatic language detection for KirbyText + +## Requirements + +- Kirby 3.8+ + +## Installation + +### Composer + +``` +composer require johannschopplich/kirby-highlighter +``` + +### Download + +Download and copy this repository to `/site/plugins/kirby-highlighter`. + +## Usage + +### With Kirby Blocks Field + +This plugin overwrites Kirby's internal [`code` block](https://getkirby.com/docs/reference/panel/blocks/code). Thus, you won't have to change a thing. + +Use the `code` block just like before, the output will be highlighted automatically: + +```yaml +fields: + example: + label: Paste code here + type: blocks + fieldsets: + - code +``` + +### Within KirbyText + +Create a code block in your KirbyText field and optionally set the code language: + +
```css
+.currentColor {
+  color: currentColor;
+}
+```
+
+ +Or use the new `code`-KirbyTag from this plugin with a base64 encoded code string: + +``` +(code: LmN1cnJlbnRDb2xvciB7CiAgY29sb3I6IGN1cnJlbnRDb2xvcjsKfQ== lang: css) +``` + +Which outputs: + +```html +
.currentColor {
+    color: currentColor;
+}
+``` + +The syntax highlighting functionality can be changed. You can choose between two highlighting modes: + +1. Explicit mode (default) +2. Automatic language detection mode (opt-in) + +#### Explicit Mode + +In explicit mode, you have to define which language the code block is. Otherwise highlighting will be skipped. + +#### Automatic Language Detection + +Alternatively you can use the automatic detection mode, which highlights your code with the language the library thinks is best. It is highly recommended you explicitly choose the language or limit the number of languages to automatically detect from. This reduces the number of inaccuracies and skips this extremely inefficient selection process. + +To enable automatic language detection, set: + +- `johannschopplich.highlighter.autodetect` to `true` +- `johannschopplich.highlighter.languages` to an array of names from which languages should be chosen + +## Options + +| Option |  Default | Description | +| --------------------------------------------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `johannschopplich.highlighter.class` | `hljs` | Style class for Highlight to be added to the `pre` element. | +| `johannschopplich.highlighter.autodetect` | `false` | Indicates if the library should define which language thinks is best. Only applies when no language was set on the KirbyText code block. | +| `johannschopplich.highlighter.languages` | `[]` | Array of language names to be auto-detected. If empty, every language will be auto-detectable. | +| `johannschopplich.highlighter.line-numbering` | `false` | Indicates if the library should split up the highlighted code on each new line and wrap it in a `` element. | +| `johannschopplich.highlighter.line-numbering-class` | `hljs-code-line` | CSS class applied to highlighted code lines, respectively `` elements. | + +## Styling in the Frontend + +Since this plugin handles highlighting code only and thus just wraps span's around code, you have to link styles in your frontend yourself. I recommend choosing one of the available themes directly from the highlight.js project: [highlight.js/src/styles/](https://github.com/highlightjs/highlight.js/tree/master/src/styles) + +The CSS files over at the repository are maintained and new ones arrive from time to time, therefore it would be redundant to include a copy in this repository. + +One of my favorite themes is [Night Owl by Sarah Drasner](https://github.com/highlightjs/highlight.js/blob/master/src/styles/night-owl.css). +For example you could download the CSS file and save it in your Kirby project under `assets/css/hljs-night-owl.css`. Now you just have to include it in your template ``. Alternatively, use a CSS bundler of your choice. + +### Line Numbering + +If you choose to activate the line numbering option, you will need to include additional CSS style to display line numbering. + +A basic example using [pseudo-elements](https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements): + +```css +pre.hljs .hljs-code-line { + counter-increment: line; +} + +pre.hljs .hljs-code-line::before { + content: counter(line); + display: inline-block; + margin-right: 1em; + opacity: 0.5; +} +``` + +## Credits + +- Geert Bergman and contributors for the awesome [highlight.php](https://github.com/scrivo/highlight.php) port. +- Martin Folkers for his [Kirby Highlight](https://github.com/S1SYPHOS/kirby3-highlight) plugin which built the base of this package. + +## License + +[MIT](./LICENSE) License © 2020-PRESENT [Johann Schopplich](https://github.com/johannschopplich) diff --git a/site/plugins/kirby-highlighter/classes/JohannSchopplich/HTML5DOMDocument.php b/site/plugins/kirby-highlighter/classes/JohannSchopplich/HTML5DOMDocument.php new file mode 100644 index 0000000..0b2cdab --- /dev/null +++ b/site/plugins/kirby-highlighter/classes/JohannSchopplich/HTML5DOMDocument.php @@ -0,0 +1,74 @@ +tempRoot}>" . $convertedSource . "tempRoot}>", $options); + } + + /** + * Strip the temporarily added root element + */ + private function unwrapTempRoot(string $output): string + { + if ($this->firstChild->nodeName === $this->tempRoot) { + return substr($output, strlen($this->tempRoot) + 2, -strlen($this->tempRoot) - 4); + } + + return $output; + } + + /** + * Dump the internal document into a HTML string + */ + #[\ReturnTypeWillChange] + public function saveHTML(DOMNode|null $node = null, bool $entities = false): string|false + { + $html = parent::saveHTML($node); + + if ($entities === false) { + $html = html_entity_decode($html); + } + + if ($node === null) { + $html = $this->unwrapTempRoot($html); + } + + return $html; + } +} diff --git a/site/plugins/kirby-highlighter/composer.json b/site/plugins/kirby-highlighter/composer.json new file mode 100644 index 0000000..212531a --- /dev/null +++ b/site/plugins/kirby-highlighter/composer.json @@ -0,0 +1,49 @@ +{ + "name": "johannschopplich/kirby-highlighter", + "description": "Server-side syntax highlighting for Kirby CMS", + "type": "kirby-plugin", + "version": "3.1.0", + "keywords": [ + "kirby", + "highlight", + "highlighter", + "hljs" + ], + "license": "MIT", + "homepage": "https://github.com/johannschopplich/kirby-highlighter#readme", + "authors": [ + { + "name": "Johann Schopplich", + "email": "pkg@johannschopplich.com", + "homepage": "https://johannschopplich.com" + } + ], + "require": { + "getkirby/composer-installer": "^1.2", + "scrivo/highlight.php": "^9.18" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "@stable", + "getkirby/cms": "^4", + "phpunit/phpunit": "^9.0" + }, + "autoload": { + "psr-4": { + "JohannSchopplich\\": "classes/JohannSchopplich/" + } + }, + "scripts": { + "fix": "php-cs-fixer fix", + "dist": "composer install --no-dev --optimize-autoloader", + "test": "phpunit" + }, + "config": { + "optimize-autoloader": true, + "allow-plugins": { + "getkirby/composer-installer": true + } + }, + "extra": { + "kirby-cms-path": "tests/fixtures/kirby" + } +} diff --git a/site/plugins/kirby-highlighter/extensions/fieldmethods.php b/site/plugins/kirby-highlighter/extensions/fieldmethods.php new file mode 100644 index 0000000..d8f1a20 --- /dev/null +++ b/site/plugins/kirby-highlighter/extensions/fieldmethods.php @@ -0,0 +1,23 @@ + function ($field) { + if ($field->isNotEmpty()) { + $value = trim((string)$field->value()); + + if (is_base64_string_s($value)) { + $field->value = base64_decode($value); + } + } + + return $field; + }, +]; diff --git a/site/plugins/kirby-highlighter/extensions/hooks.php b/site/plugins/kirby-highlighter/extensions/hooks.php new file mode 100644 index 0000000..520516a --- /dev/null +++ b/site/plugins/kirby-highlighter/extensions/hooks.php @@ -0,0 +1,86 @@ + function (string|null $text) { + $kirby = App::instance(); + + // Parse KirbyText input as HTML document + $dom = new HTML5DOMDocument(); + $dom->loadHTML($text); + + // Retrieve all `pre` elements inside newly created HTML document + $preNodes = $dom->getElementsByTagName('pre'); + + // Bail if no `pre` elements have been found + if ($preNodes->length === 0) { + return $text; + } + + // Loop through all `pre` elements + foreach ($preNodes as $preNode) { + // Ensure nothing but the `code` element exists + if ($preNode->childNodes->length !== 1) { + continue; + } + + // Select direct `code` child element of `pre` block + $codeNode = $preNode->firstChild; + + // Get language code if present + $language = $codeNode->getAttribute('class'); + if (str_starts_with($language, 'language-')) { + $language = preg_replace('/^language-/', '', $language); + } + + // Bail highlighting if language isn't set and auto detection is disabled + if (empty($language) && !$kirby->option('johannschopplich.highlighter.autodetect', false)) { + continue; + } + + // Add `hljs` class to `pre` block + $preNode->setAttribute('class', $kirby->option('johannschopplich.highlighter.class', 'hljs')); + + // Get raw code data to highlight + $code = $codeNode->nodeValue; + + // Remove code element afterwards + $preNode->removeChild($codeNode); + + // Initiate `Highlighter` and use pre-defined language code, fall + // back to language auto detection if enabled + $highlighter = new Highlighter(); + + // Highlight code + if (!empty($language)) { + $highlightedCode = $highlighter->highlight($language, $code); + } elseif ($kirby->option('johannschopplich.highlighter.autodetect', false)) { + $languageSubset = $kirby->option('johannschopplich.highlighter.languages', []); + if (!empty($languageSubset)) { + $highlighter->setAutodetectLanguages($languageSubset); + } + + $highlightedCode = $highlighter->highlightAuto($code); + } + + // Line numbering + if ($kirby->option('johannschopplich.highlighter.line-numbering', false)) { + $lines = preg_split('/\R/', $highlightedCode->value); + $lineClass = $kirby->option('johannschopplich.highlighter.line-numbering-class', 'hljs-code-line'); + $highlightedCode->value = '' . implode("\n", $lines) . ''; + } + + // Append highlighted wrapped in `code` block to parent `pre` + $codeNode = $dom->createDocumentFragment(); + $codeNode->appendXML('' . $highlightedCode->value . ''); + $preNode->appendChild($codeNode); + } + + // Save all changes + $text = $dom->saveHTML(null, true); + return $text; + } +]; diff --git a/site/plugins/kirby-highlighter/extensions/kirbytags.php b/site/plugins/kirby-highlighter/extensions/kirbytags.php new file mode 100644 index 0000000..c5acb01 --- /dev/null +++ b/site/plugins/kirby-highlighter/extensions/kirbytags.php @@ -0,0 +1,27 @@ + [ + 'attr' => [ + 'lang', + 'language', + ], + // TODO: Type as `\Kirby\Text\KirbyTag` for Kirby 4 + 'html' => function ($tag) { + $kirby = App::instance(); + $code = $tag->value; + $language = $tag->lang ?? $tag->language; + $block = new \Kirby\Cms\Block([ + 'type' => 'code', + 'content' => [ + 'language' => $language ?? 'plaintext', + 'code' => is_base64_string_s($code) ? base64_decode($code) : $code, + ] + ]); + + return $kirby->snippet('blocks/code', ['block' => $block], true); + } + ] +]; diff --git a/site/plugins/kirby-highlighter/index.php b/site/plugins/kirby-highlighter/index.php new file mode 100644 index 0000000..52c1592 --- /dev/null +++ b/site/plugins/kirby-highlighter/index.php @@ -0,0 +1,12 @@ + require __DIR__ . '/extensions/hooks.php', + 'fieldMethods' => require __DIR__ . '/extensions/fieldmethods.php', + 'tags' => require __DIR__ . '/extensions/kirbytags.php', + 'snippets' => [ + 'blocks/code' => __DIR__ . '/snippets/blocks/code.php' + ] +]); diff --git a/site/plugins/kirby-highlighter/phpunit.xml b/site/plugins/kirby-highlighter/phpunit.xml new file mode 100644 index 0000000..a65d2f2 --- /dev/null +++ b/site/plugins/kirby-highlighter/phpunit.xml @@ -0,0 +1,12 @@ + + + + + ./tests + + + diff --git a/site/plugins/kirby-highlighter/snippets/blocks/code.php b/site/plugins/kirby-highlighter/snippets/blocks/code.php new file mode 100644 index 0000000..87398f5 --- /dev/null +++ b/site/plugins/kirby-highlighter/snippets/blocks/code.php @@ -0,0 +1,22 @@ +language()->value(); +$code = $block->code()->fromBase64()->value(); + +if (empty($language) || !in_array($language, $highlighter->listRegisteredLanguages())) { + $language = 'plaintext'; +} + +$highlightedCode = $highlighter->highlight($language, $code)->value; + +// Handle line numbering +if (option('johannschopplich.highlighter.line-numbering', false)) { + $lines = preg_split('/\R/', $highlightedCode); + $lineClass = option('johannschopplich.highlighter.line-numbering-class', 'hljs-code-line'); + $highlightedCode = '' . implode("\n", $lines) . ''; +} + +?> +
diff --git a/site/sessions/index.html b/site/sessions/index.html new file mode 100644 index 0000000..e69de29 diff --git a/site/snippets/article.php b/site/snippets/article.php new file mode 100644 index 0000000..98ab62a --- /dev/null +++ b/site/snippets/article.php @@ -0,0 +1,28 @@ +
+

title() ?>

+

date()->toDate('Y-m-d') ?>

+

+

+ categories()->isNotEmpty()): ?> + + categories()->split() as $category): ?> + + + + + tags()->isNotEmpty()): ?> + + tags()->split() as $tag): ?> + + + + +
+

+ +

+ text()->excerpt(300) ?> +

+ +

Read more

+
diff --git a/site/snippets/index.html b/site/snippets/index.html new file mode 100644 index 0000000..e69de29 diff --git a/site/snippets/layout.php b/site/snippets/layout.php new file mode 100644 index 0000000..e41338c --- /dev/null +++ b/site/snippets/layout.php @@ -0,0 +1,54 @@ + + + + + + <?= $site->title() ?> + <?php if (!$page->isHomePage()): ?> + - <?= $page->title() ?> + <?php endif ?> + + + + + + + + + + + + + + + + + + + + +
+ title() ?> + + + +
+
+ +
+ + + diff --git a/site/templates/about.php b/site/templates/about.php new file mode 100644 index 0000000..7a98048 --- /dev/null +++ b/site/templates/about.php @@ -0,0 +1,16 @@ + + +

title() ?>

+ +
+ +
+ intro_title() ?> +
+
+ intro_text() ?> +
+
+ +text()->kirbytext() ?> + diff --git a/site/templates/article.php b/site/templates/article.php new file mode 100644 index 0000000..d5e4b47 --- /dev/null +++ b/site/templates/article.php @@ -0,0 +1,33 @@ + + +

title() ?>

+ +

date()->toDate('Y-m-d') ?>

+

readingTime() ?>

+ +

+

+ categories()->isNotEmpty()): ?> + + categories()->split() as $category): ?> + + + + + tags()->isNotEmpty()): ?> + + tags()->split() as $tag): ?> + + + + +
+

+ +text()->kirbytext() ?> + +
+

I would like to hear what you think about this post. Feel free to write me a mail!

+ Reply by mail +
+ diff --git a/site/templates/blog.php b/site/templates/blog.php new file mode 100644 index 0000000..bddb204 --- /dev/null +++ b/site/templates/blog.php @@ -0,0 +1,27 @@ + + +

title() ?>

+ +text()->kirbytext() ?> + + + $article]) ?> + + +pagination()->hasPages()): ?> + + + + diff --git a/site/templates/blog.rss.php b/site/templates/blog.rss.php new file mode 100644 index 0000000..8820c3f --- /dev/null +++ b/site/templates/blog.rss.php @@ -0,0 +1,31 @@ + +'); + +$feed->channel->title = $site->title()->toString(); +$feed->channel->description = $site->description()->toString(); +$feed->channel->link = url(); +$feed->channel->language = 'en-us'; +$feed->channel->lastBuildDate = date(DATE_RSS); +$feed->channel->generator = 'Kirby'; + +$atomLink = $feed->channel->addChild('atom:link', null, 'atom'); +$atomLink->addAttribute('href', url('/feed')); +$atomLink->addAttribute('rel', 'self'); +$atomLink->addAttribute('type', 'application/rss+xml'); + +$articles = $page->children()->template('article')->sortBy('date', 'desc')->limit(10); + +foreach ($articles as $article) { + $xmlArticle = $feed->channel->addChild('item'); + $xmlArticle->title = $article->title()->toString(); + $xmlArticle->link = url($article->url()); + $xmlArticle->description = Escape::xml($article->text()->kirbytext()); + $xmlArticle->pubDate = $article->date()->toDate(DATE_RSS); + $xmlArticle->guid = url($article->url()); +} + +$kirby->response()->type('application/rss+xml'); + +echo $feed->asXML(); diff --git a/site/templates/default.php b/site/templates/default.php new file mode 100644 index 0000000..a7c4762 --- /dev/null +++ b/site/templates/default.php @@ -0,0 +1,6 @@ + + +

title() ?>

+ +text()->kirbytext() ?> + diff --git a/site/templates/home.php b/site/templates/home.php new file mode 100644 index 0000000..c6658d5 --- /dev/null +++ b/site/templates/home.php @@ -0,0 +1,29 @@ + + +
+

title() ?>

+

subtitle() ?>

+
+ +text()->kirbytext() ?> + +

Read more from me

+ +internal_menu()->toStructure() as $item): ?> + title() ?> + + +

Find me on other places

+ +external_menu()->toStructure() as $item): ?> + title() ?> + + +

Latest Posts

+ +children()->listed()->flip()->limit(3) as $article): ?> + $article]) ?> + + +Read more posts + diff --git a/site/templates/quotes.php b/site/templates/quotes.php new file mode 100644 index 0000000..fa00553 --- /dev/null +++ b/site/templates/quotes.php @@ -0,0 +1,34 @@ + + +

title() ?>

+ +text()->kirbytext() ?> + + +
+

title() ?>

+

date()->toDate('Y-m-d') ?>

+ +

+ text()->kirbytext() ?> +

+
+ + +pagination()->hasPages()): ?> + + + + diff --git a/static/2016/08/readmore.png b/static/2016/08/readmore.png deleted file mode 100644 index f161ab8..0000000 Binary files a/static/2016/08/readmore.png and /dev/null differ diff --git a/static/2017/07/comfortaa-screenshot001.png b/static/2017/07/comfortaa-screenshot001.png deleted file mode 100644 index afaace9..0000000 Binary files a/static/2017/07/comfortaa-screenshot001.png and /dev/null differ diff --git a/static/2017/07/comfortaa-screenshot002.png b/static/2017/07/comfortaa-screenshot002.png deleted file mode 100644 index ea3db2c..0000000 Binary files a/static/2017/07/comfortaa-screenshot002.png and /dev/null differ diff --git a/static/2017/07/material001-LS-orange-red.png b/static/2017/07/material001-LS-orange-red.png deleted file mode 100644 index 7888295..0000000 Binary files a/static/2017/07/material001-LS-orange-red.png and /dev/null differ diff --git a/static/2017/07/material001-orange-red.png b/static/2017/07/material001-orange-red.png deleted file mode 100644 index 956a0cb..0000000 Binary files a/static/2017/07/material001-orange-red.png and /dev/null differ diff --git a/static/2017/07/material002-LS-orange.png b/static/2017/07/material002-LS-orange.png deleted file mode 100644 index fde7287..0000000 Binary files a/static/2017/07/material002-LS-orange.png and /dev/null differ diff --git a/static/2017/07/material002-orange.png b/static/2017/07/material002-orange.png deleted file mode 100644 index 1d44554..0000000 Binary files a/static/2017/07/material002-orange.png and /dev/null differ diff --git a/static/2017/07/morseconverter-desktop.png b/static/2017/07/morseconverter-desktop.png deleted file mode 100644 index d050db3..0000000 Binary files a/static/2017/07/morseconverter-desktop.png and /dev/null differ diff --git a/static/2017/07/notenbilanz.png b/static/2017/07/notenbilanz.png deleted file mode 100644 index 150a16c..0000000 Binary files a/static/2017/07/notenbilanz.png and /dev/null differ diff --git a/static/2017/07/screenshot_android001.png b/static/2017/07/screenshot_android001.png deleted file mode 100644 index 54eee06..0000000 Binary files a/static/2017/07/screenshot_android001.png and /dev/null differ diff --git a/static/2017/07/screenshot_android002.png b/static/2017/07/screenshot_android002.png deleted file mode 100644 index a2b1bd5..0000000 Binary files a/static/2017/07/screenshot_android002.png and /dev/null differ diff --git a/static/2017/07/screenshot_android003.png b/static/2017/07/screenshot_android003.png deleted file mode 100644 index 2117e08..0000000 Binary files a/static/2017/07/screenshot_android003.png and /dev/null differ diff --git a/static/2017/07/tmp_14150-20151123_103524-71180101.jpg b/static/2017/07/tmp_14150-20151123_103524-71180101.jpg deleted file mode 100644 index 77cc9f2..0000000 Binary files a/static/2017/07/tmp_14150-20151123_103524-71180101.jpg and /dev/null differ diff --git a/static/2017/07/tmp_29069-20151122-winter-817352794.jpg b/static/2017/07/tmp_29069-20151122-winter-817352794.jpg deleted file mode 100644 index 3459cad..0000000 Binary files a/static/2017/07/tmp_29069-20151122-winter-817352794.jpg and /dev/null differ diff --git a/static/2017/09/atom-oss-license.png b/static/2017/09/atom-oss-license.png deleted file mode 100644 index 7296737..0000000 Binary files a/static/2017/09/atom-oss-license.png and /dev/null differ diff --git a/static/2017/09/cavallino-01.gpx b/static/2017/09/cavallino-01.gpx deleted file mode 100644 index d6168b5..0000000 --- a/static/2017/09/cavallino-01.gpx +++ /dev/null @@ -1 +0,0 @@ -0-1-1.3-1.5-1.1-1-0.9-0.6-0.60000-0.1-0.1-0.2-0.2-0.3-0.4-0.4-0.5-0.5-0.6-0.6-0.7-0.7-0.8-0.8-0.9-0.9-1-1-10.40.50.60.70.92.31.910.90.70.30.50.60.80.91.11.41.52.52.42.42.221.81.50.90.80.30-0.2-0.3-0.30.20.40.50.70.91.51.91.90.40.20.20.20.30.30.40.50.60.80.911.51.50.90.90.9111.61.41.41.41.41.41.2110.90.90.80.80.80.70.50.712.32.52.62.81.21.1100-0.3-0.4-0.6-0.7-0.7-0.7-0.8-0.8-0.7-0.7-0.500.10.20.40.50.60.70.70.60-0.1-0.6-0.6-0.6-0.6-0.5-0.5-0.5-0.5-0.4-0.4-0.4-0.4-0.3-0.3-0.3-0.2-0.2-0.2-0.2-0.1-0.100.20.20.30.40.50.50.50.4-0.5-0.9-1-1-1-1-1-1-1-1-0.8-0.7-0.5-0.5-0.2-0.1-0.1-0.7-0.9-1-1-0.6-0.6-1.4-1.5-1.4-1.4-0.9-0.5-0.6-0.7-1.5-1.5-1.5-0.8-0.6-0.6-0.6-0.6-1.4-1.6-1.6-1.4-1.3-1.2-0.3-0.100-0.3-0.4-0.5-0.7-0.7-0.8-1-1.4-1.6-1.7-1.9-2-1.2-1-1-1-1-0.9-0.9-0.8-0.9-0.9-0.8-0.8-0.7-0.8-0.9-1-1-1-1-1.2-1.3-1.5-1.7-1.8-2-2-2.1-2.1-2.1-2-1.7-1.4-1.1-1.1-1.4-1.8-1.9-2-2-1.5-1.4-1-1.2-1.5-1.8-2-2-1.6-1.3-1.1-1.3-1.7-0.8-0.7-0.9-0.9-0.9-0.5-0.5-0.3-0.100.10.30.30.30.20.20.30.40.40.30.10.10-0.2-0.6-0.8-0.7-0.5-0.3-0.5-0.7-0.9-0.8-0.6-0.6-0.7-0.7-0.8-0.8-0.8-0.7-0.60.70.81.51.21.21.21.31.51.51.71.61.51.62.12.32.533.23.43.944.14.243.93.63.53.32.82.11.91111.41.61.92.42.42.42.42.42.31.20.80.10-0.1-0.2-0.3-0.4-0.4-0.5-0.6-0.6-0.7-0.7-0.8-0.8-0.9-1-0.60.30.80.40.20-0.3-0.4-0.4-1.7-2-1.9-1.6-1.3-1.2-1.10.61.61.71.81.71.710.90.80.70.60.50.40.20.20.40.50.60.80.911.21.21.31.31.31.31.21.21.10.80.80.70.70.60.60.50.50.50.60.71.11.41.81.9222.12.12.22.22.22.52.62.92.93.33.23.13.53.64.24.12.42.22.32.52.42.52.93.93.83.43.94.6554.84.13.53.63.84.34.44.64.24.1444.34.95.14.94.13.23.44.14.143.84.84333.13.13.23.23.23.23.23.23.13.33.53.73.94.14.34.44.54.54.63.82.52.42.42.22.12.12.1221.91.81.91.9333.52.32.11.91.71.51.3-0.1-0.2-0.3-0.4-0.4-0.5-0.5-0.6-0.6-0.7-1-1-0.6-0.5-0.5-0.3-0.2-0.100.50.50.5-0.6-0.7-1.2-1.3-1.4-0.60.10-0.10.10.70.70.60.60.50.40.20.20.1-0.1-0.6-0.4-0.1-0.2-0.2-0.4-0.6-0.9-1-0.9-0.20.10.20.302.52.62.62.92.92.92.92.933333333333.23.33.32.21.71.41.51.81.92.11.4 \ No newline at end of file diff --git a/static/2018/03/firefox-cropped-time.gif b/static/2018/03/firefox-cropped-time.gif deleted file mode 100644 index 9d48b7e..0000000 Binary files a/static/2018/03/firefox-cropped-time.gif and /dev/null differ diff --git a/static/2018/03/konzept-gespraech-konfliktbewaeltigung.pdf b/static/2018/03/konzept-gespraech-konfliktbewaeltigung.pdf deleted file mode 100644 index 6a5c767..0000000 Binary files a/static/2018/03/konzept-gespraech-konfliktbewaeltigung.pdf and /dev/null differ diff --git a/static/2018/03/mathematik-antike.pdf b/static/2018/03/mathematik-antike.pdf deleted file mode 100644 index b1b2182..0000000 Binary files a/static/2018/03/mathematik-antike.pdf and /dev/null differ diff --git a/static/2018/03/vergleich-bdsg-dsgvo.pdf b/static/2018/03/vergleich-bdsg-dsgvo.pdf deleted file mode 100644 index 3340272..0000000 Binary files a/static/2018/03/vergleich-bdsg-dsgvo.pdf and /dev/null differ diff --git a/static/2018/07/arbeit.pdf b/static/2018/07/arbeit.pdf deleted file mode 100644 index 668ca90..0000000 Binary files a/static/2018/07/arbeit.pdf and /dev/null differ diff --git a/static/2018/08/overview-of-finding-the-most-probable-explanation-in-bayesian-networks.pdf b/static/2018/08/overview-of-finding-the-most-probable-explanation-in-bayesian-networks.pdf deleted file mode 100644 index 8762d25..0000000 Binary files a/static/2018/08/overview-of-finding-the-most-probable-explanation-in-bayesian-networks.pdf and /dev/null differ diff --git a/static/2019/04/handlungsfreiheit-privatautonomie-mensch-autonome-systeme.pdf b/static/2019/04/handlungsfreiheit-privatautonomie-mensch-autonome-systeme.pdf deleted file mode 100644 index ba4b5bd..0000000 Binary files a/static/2019/04/handlungsfreiheit-privatautonomie-mensch-autonome-systeme.pdf and /dev/null differ diff --git a/static/2020/04/quick-deploy-feature-graphic.png b/static/2020/04/quick-deploy-feature-graphic.png deleted file mode 100644 index d574b98..0000000 Binary files a/static/2020/04/quick-deploy-feature-graphic.png and /dev/null differ diff --git a/static/2022/2022-01-15-org-capture-select.png b/static/2022/2022-01-15-org-capture-select.png deleted file mode 100755 index cc0812b..0000000 Binary files a/static/2022/2022-01-15-org-capture-select.png and /dev/null differ diff --git a/static/2022/2022-02-05-org-appear-link.gif b/static/2022/2022-02-05-org-appear-link.gif deleted file mode 100755 index 67d620e..0000000 Binary files a/static/2022/2022-02-05-org-appear-link.gif and /dev/null differ diff --git a/static/2022/2022-02-05-org-appear-text.gif b/static/2022/2022-02-05-org-appear-text.gif deleted file mode 100755 index edc48a7..0000000 Binary files a/static/2022/2022-02-05-org-appear-text.gif and /dev/null differ diff --git a/static/2022/2022-02-23-old-website.png b/static/2022/2022-02-23-old-website.png deleted file mode 100755 index 629fe30..0000000 Binary files a/static/2022/2022-02-23-old-website.png and /dev/null differ diff --git a/static/2023/2023-04-02-activate-actions.png b/static/2023/2023-04-02-activate-actions.png deleted file mode 100755 index e5fac62..0000000 Binary files a/static/2023/2023-04-02-activate-actions.png and /dev/null differ diff --git a/static/2023/2023-04-02-running-action-details.png b/static/2023/2023-04-02-running-action-details.png deleted file mode 100755 index ebbe205..0000000 Binary files a/static/2023/2023-04-02-running-action-details.png and /dev/null differ diff --git a/static/2023/2023-04-02-running-action.png b/static/2023/2023-04-02-running-action.png deleted file mode 100755 index 90d2b81..0000000 Binary files a/static/2023/2023-04-02-running-action.png and /dev/null differ diff --git a/static/2023/2023-04-02-set-secrets.png b/static/2023/2023-04-02-set-secrets.png deleted file mode 100755 index 7def022..0000000 Binary files a/static/2023/2023-04-02-set-secrets.png and /dev/null differ diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index d6fac87..0000000 Binary files a/static/favicon.ico and /dev/null differ diff --git a/static/profile.png b/static/profile.png deleted file mode 100644 index f22f368..0000000 Binary files a/static/profile.png and /dev/null differ diff --git a/themes/nextDESIGN b/themes/nextDESIGN deleted file mode 160000 index 4751005..0000000 --- a/themes/nextDESIGN +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 4751005c7ed6664a1fd907e0eb9d5a16da993a7a