<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>My digital brain</title><link>https://blog.joergi.io/</link><description>Recent content on My digital brain</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><lastBuildDate>Mon, 05 Jan 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.joergi.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Change GRUB so you start in the terminal</title><link>https://blog.joergi.io/posts/2026-01-05-change-grub-so-you-start-in-the-termial/</link><pubDate>Mon, 05 Jan 2026 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2026-01-05-change-grub-so-you-start-in-the-termial/</guid><description>&lt;h1 id="problem-copmuter-is-not-starting-at-all-anymore">Problem: Copmuter is not starting at all anymore&lt;/h1>
&lt;p>I&amp;rsquo;m using on one of the computer Manjaro Linux.&lt;br>
Unfortunately it seems I deleted something really important on the last upgrade.&lt;br>
The computer starts, I can decrypt my SSD, and I see the login screen. So far so good.&lt;br>
But if I log in, I then see only a black screen with the mouse. But I can&amp;rsquo;t move the mouse and also no keyboard is working. &lt;br>
Also the shortcut for going into termimal mode (CTRL + ALT F3 / F4&amp;hellip;) is not reacting.&lt;/p></description></item><item><title>Starting a server for mobile HTML testing</title><link>https://blog.joergi.io/posts/2025-12-12-starting-a-server-for-mobile-html-testing/</link><pubDate>Fri, 12 Dec 2025 00:00:00 +0000</pubDate><atom:updated>Fri, 19 Dec 2025 00:00:00 +0000</atom:updated><guid>https://blog.joergi.io/posts/2025-12-12-starting-a-server-for-mobile-html-testing/</guid><description>&lt;h1 id="problem-how-to-test-on-your-mobile-phone">Problem: how to test on your mobile phone&lt;/h1>
&lt;p>When I&amp;rsquo;m building a HTML website with responsive design, I want to test the website on my mobile phone.
So I need to start an easy webserver.&lt;/p>
&lt;h1 id="starting-the-server">Starting the server&lt;/h1>
&lt;p>As python is installed on my machine, I can start it easily with python:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>$ python3 -m http.server &lt;span style="color:#ae81ff">8000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Now find out the ip from your own computer where you develop:&lt;/p></description></item><item><title>Migrating from GitHub to Codeberg</title><link>https://blog.joergi.io/posts/2025-09-20-migrate-from-github-to-codeberg/</link><pubDate>Sat, 20 Sep 2025 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2025-09-20-migrate-from-github-to-codeberg/</guid><description>&lt;h2 id="reasons-for-migration">Reasons for migration&lt;/h2>
&lt;p>There are many reasons, why many of the open source projects are migrating from GitHub to Codeberg.&lt;br>
&lt;a href="https://github.com/copilot/">GitHub Copilot, the AI from GitHub&lt;/a> which is owned by Microsoft, gives us the following reasons:&lt;/p>
&lt;blockquote>
&lt;p>Main reason:&lt;br>
many projects prefer a community‑run, non‑profit, open infrastructure (Codeberg e.V. running Forgejo/Gitea) over GitHub’s proprietary, Microsoft‑controlled platform with increasing commercialization (e.g. AI features, data usage, lock‑in concerns). Privacy, transparency, open governance, and avoiding dependence on a single corporate vendor are the core motivators.&lt;/p></description></item><item><title>Was ist das Fediverse? - Plastic Bomb Artikel aus #131 02/2025</title><link>https://blog.joergi.io/posts/2025-08-30-was-ist-das-fediverse_plastic-bomb/</link><pubDate>Fri, 29 Aug 2025 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2025-08-30-was-ist-das-fediverse_plastic-bomb/</guid><description>&lt;p>This article is only available in German, sorry.&lt;br>
Dieser Artikel erschien in einer gekürzten Version in der &lt;a href="https://plastic-bomb.eu">Plastic Bomb&lt;/a> #131 02/2025.&lt;br>
Dies ist die komplette Version. Die Userzahlen der Server sind alle vom Januar 2025.
&lt;figure>&lt;img src="https://blog.joergi.io/img/plasbo_small.jpg"
alt="Foto der Plastic Bomb Ausgabe 131" width="600">&lt;figcaption>
&lt;p>Foto der Plastic Bomb Ausgabe 131&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;/p>
&lt;h2 id="einleitung">Einleitung&lt;/h2>
&lt;p>Na, wo treibt ihr euch noch auf Social Media rum? Facebook, Instagram, Threads, Twitter/X, TikTok oder Youtube? Oder seid ihr MySpace treu geblieben? Oder benutzt ihr gar kein Social Media? Ihr Glücklichen!&lt;br>
Bei mir und auch sicherlich bei vielen von euch geht die Hand nach dem Aufwachen morgens erst einmal zum Handy, die entsprechenden Apps öffnen und nachschauen, was so außerhalb eures Bettes passiert ist. Na, fühlt ihr euch erwischt?&lt;br>
Und wenn man ehrlich ist, macht es immer weniger Spaß, weil die Netzwerke von Leuten geführt werden, die entweder Trump nach der Nase tanzen oder für seine Politik mitverantwortlich sind. Zumindest in meiner Facebook Timeline spülen die Algorithmen immer mehr rechten Müll, obwohl die Freundesliste eigentlich clean von irgendwelchen AfD Trotteln ist. Besonders in den 2-3 Monaten vor der Bundestagswahl wurde es immer mehr und immer unerträglicher.&lt;br>
Facebook, Instagram und Threads gehören zu Meta (dazu gehört auch noch u.a. WhatsApp), also Mark Zuckerberg. Meta hatte schon vor Trumps zweiter Amtszeit angekündigt, sein Faktencheck-Programm in den USA zu beenden und spendete ebenso wie auch Google, Amazon und viele andere Tech Firmen je 1 Million Euro an Trump für dessen Amtseinführung.&lt;br>
Twitter bzw X gehört Elon Musk. Zu diesem Nazi muss man ja nichts mehr schreiben.&lt;br>
Und TikTok gehört ByteDance, einer Firma in China, der man eine „gewissen Nähe“ zur chinesischen Regierung nachsagt.&lt;br>
Viele von euch werden sich schon oft überlegt haben, dass es eigentlich nicht geil ist, weiter diese Social Networks zu benutzen, aber wie soll man sonst alle Kontakte behalten? Wie sollt ihr weiterhin mitbekommen, wo eure Lieblingsband spielen? Und wie bekommt ihr weiterhin eure tägliche Dosis an süßen Katzen- und Hundevideos?&lt;/p></description></item><item><title>Use many different Git accounts automatically</title><link>https://blog.joergi.io/posts/2025-07-18-use-many-different-git-accounts-automatically/</link><pubDate>Fri, 18 Jul 2025 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2025-07-18-use-many-different-git-accounts-automatically/</guid><description>&lt;h2 id="preparing-the-folder-structure-for-using-new-setup">Preparing the folder structure for using new setup&lt;/h2>
&lt;p>At the moment I have different git accounts.&lt;br>
I have one for Github (work &amp;amp; private), Gitlab and two accounts for Codeberg (private and a even more private one).&lt;br>
To get this running I had to prepare my folders a little bit. before I only had everything in two folders, private and work, but it all used the same GitHub account.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>/home/joergi/dev/projects/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├─ privat/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├─ codeberg/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ ├─ private/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ │ ├─ project1/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ │ ├─ project2/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ ├─ more-private/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ │ ├─ projectA/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ │ ├─ projectB/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├─ gitlab/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ ├─ projectGL1/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ ├─ projectGL2/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├─ github/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ ├─ projectPrivatGH1/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ │ ├─ projectPrivatGH2/
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>├─ work
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>│ ├─ github
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>When I only used Github, my &lt;code>.gitconfig&lt;/code> looked like this:&lt;/p></description></item><item><title>Plastic Bomb - Was ist das Fediverse?</title><link>https://blog.joergi.io/posts/2025-06-20-plastic-bomb-was-ist-dsa-fediverse/</link><pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2025-06-20-plastic-bomb-was-ist-dsa-fediverse/</guid><description>&lt;h2 id="plastic-bomb---was-ist-das-fediverse-131-22025">Plastic Bomb - Was ist das Fediverse? #131 2/2025&amp;quot;&lt;/h2>
&lt;p>The Plastic bomb is a German punk magazine, which is published every three months, with a circulation of 8000 copies. &lt;br>
Those who know me for a long time, know I&amp;rsquo;m coming not only from a nerd world - but also from the music world. Punk especially! &lt;br>
And, if you followed me along Social Media, you know I&amp;rsquo;m a big fan of the Fediverse and I&amp;rsquo;m trying to promote it, as much as possible. &lt;br>
As the Punk music is always into DIY (do it yourself) and anti-corporate, I thought it would be a good idea to write an article about the Fediverse for the Plastic Bomb magazine.&lt;/p></description></item><item><title>Java aktuell - Automatic dependency updates with GitHub Actions and Dependabot</title><link>https://blog.joergi.io/posts/2025-03-14-java-aktuell-automatic-dependency-updates-with-dependabot/</link><pubDate>Fri, 14 Mar 2025 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2025-03-14-java-aktuell-automatic-dependency-updates-with-dependabot/</guid><description>&lt;h2 id="java-aktuell---article-automatische-dependency-updates-mit-github-actions-und-dependabot">Java aktuell - Article &amp;ldquo;Automatische Dependency-Updates mit GitHub Actions und Dependabot&amp;rdquo;&lt;/h2>
&lt;p>My first ever published article was published in the Java aktuell 3/24 (topic: Tools).&lt;br>
It&amp;rsquo;s about &amp;ldquo;Automatische Dependency-Updates mit GitHub Actions und Dependabot&amp;rdquo; (automatic dependency updates with Github Actions and Dependabot).&lt;br>
It&amp;rsquo;s all in German, if you don&amp;rsquo;t mind:&lt;br>
&lt;img src="https://blog.joergi.io/img/javaaktuell_3_2024_1_small.jpg" alt="Alt text" title="cover java aktuell">&lt;/p>
&lt;p>&lt;img src="https://blog.joergi.io/img/javaaktuell_3_2024_2_small.jpg" alt="Alt text" title="cover java aktuell">&lt;/p>
&lt;p>&lt;a href="https://meine.doag.org/zeitschriften/id.214.java-aktuell-3-24-tools/">The complete magazine can be downloaded for free on the website&lt;/a>&lt;/p></description></item><item><title>Add new Tasmota device to Home Assistant with MQTT</title><link>https://blog.joergi.io/posts/2024-04-11-add-new-tasmota-device-to-home-assistant/</link><pubDate>Thu, 11 Apr 2024 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2024-04-11-add-new-tasmota-device-to-home-assistant/</guid><description>&lt;h2 id="pre-requirements">Pre-Requirements&lt;/h2>
&lt;p>To add a new Tasmota device to the Home Assistant (HA), I assume that:&lt;/p>
&lt;ul>
&lt;li>HA is installed&lt;/li>
&lt;li>An MQTT Broker is running and an user in HA is already registered/in use&lt;/li>
&lt;li>Already one other Tasmota device is connected to the HA (so you know it&amp;rsquo;s working)&lt;/li>
&lt;li>The new Tasmota device is already connected to the local HA WiFi&lt;/li>
&lt;li>Already has upgraded to the newest firmware&lt;/li>
&lt;/ul>
&lt;h2 id="todos">Todos:&lt;/h2>
&lt;h3 id="give-device-a-better-name">Give device a better name&lt;/h3>
&lt;p>Click &lt;code>Configuration&lt;/code> -&amp;gt; &lt;code>Configure Other&lt;/code> -&amp;gt; and enter at &lt;code>Device Name&lt;/code> a name which makes sense&lt;/p></description></item><item><title>Privacy friendly online alternatives</title><link>https://blog.joergi.io/posts/2023-09-01-privacy-friendly-online-alternatives/</link><pubDate>Fri, 01 Sep 2023 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2023-09-01-privacy-friendly-online-alternatives/</guid><description>&lt;p>Please let me know, if you have some good alternatives&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Productivity&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://cryptpad.digitalcourage.de/">Cryptpad&lt;/a> - instead of google docs / google sheets etc&amp;hellip; &lt;a href="https://docs.cryptpad.org/en/admin_guide/installation.html">selfhosting is possible&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://meet.jit.si/">Jitsi&lt;/a> - instead of Google Meet / Zoom and so on. &lt;a href="https://jitsi.org/">selfhosting is possible&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://pad.riseup.net/">etherpad&lt;/a> - as online collaboration pad &lt;a href="https://etherpad.org/">selfhosting is possible&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Social Networks&lt;/p>
&lt;ul>
&lt;li>&lt;a href="https://friendi.ca/">Friendica&lt;/a> instead of Facebook &lt;a href="https://friendi.ca/resources/installation/">selfhosting is possible&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://mastodon.social/">Mastodon&lt;/a> instead of Twitter/X &lt;a href="https://docs.joinmastodon.org/admin/install/">selfhosting is possible&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://peertube.tv/">Peertube&lt;/a> instead of YouTube &lt;a href="https://docs.joinpeertube.org/">selfhosting is possible&lt;/a>&lt;/li>
&lt;li>&lt;a href="https://pixelfed.org/">Pixelfed&lt;/a> instead of Instagram &lt;a href="https://docs.pixelfed.org/running-pixelfed/installation/">selfhosting is possible&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Others:&lt;/p></description></item><item><title>GISCUS - You can now add comments to my blog</title><link>https://blog.joergi.io/posts/2023-03-21-giscus-you-can-comment-now-in-the-blog/</link><pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2023-03-21-giscus-you-can-comment-now-in-the-blog/</guid><description>&lt;p>When I was researching some stuff for a blog post about Github Actions, I &lt;a href="https://github.com/nicolasiensen/nicolasiensen.github.io/blob/master/_config.yml">stumbled over the blog &lt;/a> from Github user &lt;a href="https://github.com/nicolasiensen">@nicolasiensen&lt;/a>.&lt;br>
When I read the post, I saw that people were able to add comments with being logged into Github.&lt;br>
Something like this I have seen a long time ago, but this was so complicated, I just ignored it.&lt;/p>
&lt;p>But now as I saw in his blog , it&amp;rsquo;s super ways, thanks to &lt;a href="https://giscus.app">Giscus&lt;/a>&lt;br>
The setup was super easy, the repo must be public, you need to add the all to your repo and enable discussions.&lt;br>
And the best is:&lt;/p></description></item><item><title>Docker cheat sheet</title><link>https://blog.joergi.io/posts/2023-01-26-docker-cheat-sheet/</link><pubDate>Wed, 25 Jan 2023 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2023-01-26-docker-cheat-sheet/</guid><description>&lt;ul>
&lt;li>Stop all containers - &lt;code>docker stop $(docker ps -a -q)&lt;/code>&lt;/li>
&lt;li>Debug into running container - &lt;code>docker exec -it container_name /bin/bash&lt;/code>&lt;/li>
&lt;li>Debug into docker image - &lt;code>docker run --rm -it image_name /bin/bash&lt;/code>&lt;/li>
&lt;li>Remove all docker dontainers - &lt;code>docker rm -f $(docker ps -a -q)&lt;/code>&lt;/li>
&lt;li>remove all images you need to download everything again) - &lt;code>docker rmi -f $(docker images -q)&lt;/code>&lt;/li>
&lt;li>delete all docker network bridges - &lt;code>docker network prune&lt;/code>&lt;/li>
&lt;/ul></description></item><item><title>Install patch for Thinkpad Trackpoint Keyboard II</title><link>https://blog.joergi.io/posts/2022-10-14-install-patch-for-thinkpad-trackpoint-keyboard-ii/</link><pubDate>Fri, 14 Oct 2022 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2022-10-14-install-patch-for-thinkpad-trackpoint-keyboard-ii/</guid><description>&lt;h2 id="new-thinkpad-trackpoint-keyboard-ii">New Thinkpad Trackpoint Keyboard II&lt;/h2>
&lt;p>&lt;img src="https://blog.joergi.io/img/trackpoint-keyboard.jpg" alt="Alt text" title="trackpoint of thinkpad keypad"> &lt;br>
(i maybe should have cleaned it, before the picture&amp;hellip;)&lt;/p>
&lt;p>I got my first Thinkpad Trackpoint keyboard as a farwell gift from a company I worked for (thanks &amp;lt;3 ).&lt;br>
I don&amp;rsquo;t use any mouse, I just use the red &amp;ldquo;joystick&amp;rdquo; (called trackpoint) to navigate. For users which aren&amp;rsquo;t used to it, it&amp;rsquo;s a horror if they have to use my keyboard. But if you are used to it, you don&amp;rsquo;t wanna work without it anymore.&lt;br>
As you can see, the old one is not in a good shape anymore. And as working-from-home is the new normal, the company I work for, offers us the equipment we need, so I ordered a new one.&lt;br>
This is a newer version, which is running without a cable but wirelesse with an USB dongle. So far so good.&lt;/p></description></item><item><title>Building a raspberry pi streaming cam</title><link>https://blog.joergi.io/posts/2021-07-23-building-a-raspberry-pi-streaming-cam/</link><pubDate>Fri, 23 Jul 2021 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2021-07-23-building-a-raspberry-pi-streaming-cam/</guid><description>&lt;h1 id="the-setup">the setup&lt;/h1>
&lt;p>This is how my setup looks like:
&lt;img src="https://blog.joergi.io/img/raspi-webcam-setup.jpg" alt="Alt text" title="complete technical setup">&lt;/p>
&lt;p>as webcam I use a Waveshare 10300 RPi Camera (E)&lt;br>
(bought it &lt;a href="https://www.welectron.com/Waveshare-10300-RPi-Camera-E">here&lt;/a>, unpaid advertisement)&lt;/p>
&lt;h1 id="install-raspberry-pi-image">Install raspberry pi image&lt;/h1>
&lt;p>Download the images from the &lt;a href="https://www.raspberrypi.org/software/">raspberry pi website&lt;/a>&lt;br>
copy it to your sd card.&lt;br>
on the webpage they recommend to install the rpi-manager via &lt;code>sudo apt install rpi-imager&lt;/code>, but for me it wasn&amp;rsquo;t working because of dependency problems.&lt;br>
So I installed it the classic way:&lt;/p></description></item><item><title>Pushing container to Docker hub</title><link>https://blog.joergi.io/posts/2020-10-04-pushing-container-to-dockerhub/</link><pubDate>Sun, 04 Oct 2020 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2020-10-04-pushing-container-to-dockerhub/</guid><description>&lt;p>First build an docker container and run it afterwards so you see it with &lt;code>docker ps -a&lt;/code>
As an example, I use the container for the &lt;a href="https://github.com/joergi/MagPiDownloader">MagpiDownloader&lt;/a>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>docker build -f Dockerfile . -t mag-pi-downloader
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>docker run -v &lt;span style="color:#66d9ef">$(&lt;/span>pwd&lt;span style="color:#66d9ef">)&lt;/span>/issues:/app/issues/ mag-pi-downloader -f &lt;span style="color:#ae81ff">131&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After that is done, have a look, for all the docker container:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>$ docker ps -a
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ea901f38e328 mag-pi-downloader &lt;span style="color:#e6db74">&amp;#34;/bin/sh /app/entryp…&amp;#34;&lt;/span> About a minute ago Exited &lt;span style="color:#f92672">(&lt;/span>0&lt;span style="color:#f92672">)&lt;/span> About a minute ago exciting_feistel
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>As you can see the newest has the container id &lt;code>ea901f38e328&lt;/code>&lt;/p></description></item><item><title>Exclude one element from Lombok model-wide setter and getter</title><link>https://blog.joergi.io/posts/2020-06-07-exclude-one-element-from-lombok-modelwide-setter-and-getter/</link><pubDate>Sun, 07 Jun 2020 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2020-06-07-exclude-one-element-from-lombok-modelwide-setter-and-getter/</guid><description>&lt;p>Lets say you have a User model with &lt;a href="https://projectlombok.org/">Lombok&lt;/a> modelwide &lt;a href="https://projectlombok.org/api/lombok/Getter.html">@Getter&lt;/a> and &lt;a href="https://projectlombok.org/api/lombok/Setter.html">@Setter&lt;/a>:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@Getter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@Setter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">class&lt;/span> &lt;span style="color:#a6e22e">User&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">@Id&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String id;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String username;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String email;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String password;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>setId(String id)&lt;/code> makes no sense. &lt;br>
Normally the id is set by the DB, so it makes no sense to set it.&lt;/p>
&lt;p>So you can use &lt;code> @Setter(AccessLevel.NONE)&lt;/code> (or &lt;code>@Getter(AccessLevel.NONE)&lt;/code>) to exclude it from the Lombok setters (or getters)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@Getter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@Setter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">class&lt;/span> &lt;span style="color:#a6e22e">User&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">@Id&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#a6e22e">@Setter&lt;/span>(AccessLevel.&lt;span style="color:#a6e22e">NONE&lt;/span>)
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String id;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String username;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String email;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#66d9ef">private&lt;/span> String password;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>(I found this answer on &lt;a href="https://stackoverflow.com/a/7994134/863403">Stackoverflow&lt;/a> by user &lt;a href="https://stackoverflow.com/users/2621917/michael-piefel">Michael Piefel&lt;/a> for this problem, thanks!&lt;/p></description></item><item><title>My Firefox Extensions</title><link>https://blog.joergi.io/posts/2020-04-29-my-firefox-extensions/</link><pubDate>Wed, 29 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2020-04-29-my-firefox-extensions/</guid><description>&lt;ul>
&lt;li>
&lt;p>&lt;a href="https://github.com/mozilla/contain-facebook">Facebook Container&lt;/a> from &lt;a href="https://www.mozilla.org/">Mozilla&lt;/a> &lt;br>
&amp;ldquo;Facebook Container isolates your Facebook activity from the rest of your web activity in order to prevent Facebook from tracking you outside of the Facebook website via third party cookies.&amp;rdquo; (from the Github description)&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://darkreader.org/">Dark-Reader&lt;/a> from Alexander Shutau &lt;em>(also available for other browsers)&lt;/em> &lt;br>
so join the dark side for a nicer reading&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;a href="https://www.eff.org/https-everywhere">HTTPS everywhere&lt;/a> by &lt;a href="https://www.eff.org">EFF&lt;/a> and &lt;a href="https://www.torproject.org/">Tor Project&lt;/a> &lt;em>(also available for other browsers)&lt;/em> &lt;br>
&amp;ldquo;Many sites on the web offer some limited support for encryption over HTTPS, but make it difficult to use. For instance, they may default to unencrypted HTTP, or fill encrypted pages with links that go back to the unencrypted site. The HTTPS Everywhere extension fixes these problems by using clever technology to rewrite requests to these sites to HTTPS&amp;rdquo; &lt;em>(description from the website)&lt;/em>&lt;/p></description></item><item><title>How to play The Curse of Monkey Island on Linux</title><link>https://blog.joergi.io/posts/2020-04-14-how-to-play-the-curse-of-monkey-island-on-linux/</link><pubDate>Tue, 14 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2020-04-14-how-to-play-the-curse-of-monkey-island-on-linux/</guid><description>&lt;p>As I was always a LucasArts fan in the 90ties, I wanted to use my &amp;ldquo;free time&amp;rdquo; (thanks to the Corona lockdown) for playing this old classics.&lt;/p>
&lt;p>I bought Monkey Island 1 + 2 on Steam - with the Proton helper, it starts all easy, out of the box.&lt;/p>
&lt;p>Monkey Island 3 and 4 I was buying at Gog (it was cheaper) - no help here to get it running for Linux. (it will still run from Steam out of the box, afaik)&lt;/p></description></item><item><title>How to mount an encrypted volume from a live ISO</title><link>https://blog.joergi.io/posts/2020-04-10-how-to-mount-an-encrypted-volume-from-a-live-iso/</link><pubDate>Fri, 10 Apr 2020 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2020-04-10-how-to-mount-an-encrypted-volume-from-a-live-iso/</guid><description>&lt;p>If you destroyed somehow your Linux system, which has an encrypted volume, and you want to log into this, but booting is not working, boot from a live ISO, and type:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>lsblk -f
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>you will see &lt;code>sda1&lt;/code> oder &lt;code>sdb1&lt;/code> as your encrypted system
&lt;img src="https://blog.joergi.io/img/encrypted.png" alt="Alt text" title="encrypted">&lt;/p>
&lt;p>this decrypt it and mount it (for example sda1)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>sudo cryptsetup luksOpen /dev/sda1 crypted_sda1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Enter passphrase &lt;span style="color:#66d9ef">for&lt;/span> /dev/sda1:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>after entering the passphrase you can see that this is now decrypted
&lt;img src="https://blog.joergi.io/img/decrypted.png" alt="Alt text" title="decrypted">&lt;/p></description></item><item><title>Getting a verified user on Github</title><link>https://blog.joergi.io/posts/2020-03-27-getting-a-verified-user-on-github/</link><pubDate>Fri, 27 Mar 2020 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2020-03-27-getting-a-verified-user-on-github/</guid><description>&lt;p>When you create a new file directly on Github and push it to your branch, you will see in the commit, that this was done by an verified user.
&lt;img src="https://blog.joergi.io/img/github1-2.png" alt="Alt text" title="Github showing verified user">&lt;/p>
&lt;p>If you push it from your command line, it normally looks like this:&lt;/p>
&lt;p>&lt;img src="https://blog.joergi.io/img/github2.png" alt="Alt text" title="github 2">&lt;/p>
&lt;p>P.S. if you followed the tutorial, and something went wrong, it will look like this:&lt;br>
&lt;img src="https://blog.joergi.io/img/github3_fail.png" alt="Alt text" title="github showing unverified commit">&lt;/p>
&lt;p>But let&amp;rsquo;s start from the beginning! &lt;br>
First of all:
Github gives you a great Readme for this, that&amp;rsquo;s why I link it here were needed.&lt;/p></description></item><item><title>Using MongoRepository with more than one sorting with Spring Boot</title><link>https://blog.joergi.io/posts/2019-09-09-using-mongorepository-with-more-than-one-sorting-with-spring/</link><pubDate>Mon, 09 Sep 2019 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2019-09-09-using-mongorepository-with-more-than-one-sorting-with-spring/</guid><description>&lt;p>Sometimes you need a List of the Database to be sorted by more than one column.&lt;/p>
&lt;p>If you connect to your database with the &lt;code>org.springframework.data.mongodb.repository.MongoRepository&lt;/code> you can only give &lt;code>org.springframework.data.domain.Sort&lt;/code> to a search method.&lt;/p>
&lt;p>This is how the Repository class looks like:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-java" data-lang="java">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">@Repository&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#66d9ef">public&lt;/span> &lt;span style="color:#66d9ef">interface&lt;/span> &lt;span style="color:#a6e22e">TestRepository&lt;/span> &lt;span style="color:#66d9ef">extends&lt;/span> MongoRepository&lt;span style="color:#f92672">&amp;lt;&lt;/span>Test, Long&lt;span style="color:#f92672">&amp;gt;&lt;/span> {
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> List&lt;span style="color:#f92672">&amp;lt;&lt;/span>Score&lt;span style="color:#f92672">&amp;gt;&lt;/span> &lt;span style="color:#a6e22e">findAllByTestName&lt;/span>(String testName, Sort sort);
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>}
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>test has some column &amp;ldquo;abc&amp;rdquo; and some column &amp;ldquo;def&amp;rdquo; and some &amp;ldquo;ghi&amp;rdquo; &amp;hellip;.
so to add the order do in th calling class something like:&lt;/p></description></item><item><title>Deutsche Bahn,Docker and Wifi in an ICE and VPN problems</title><link>https://blog.joergi.io/posts/2019-09-06-deutsche-bahn-docker-and-wifi-in-a-ice-and-vpn-problems/</link><pubDate>Fri, 06 Sep 2019 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2019-09-06-deutsche-bahn-docker-and-wifi-in-a-ice-and-vpn-problems/</guid><description>&lt;p>The Deutsche Bahn is providing free wifi for some years now.
It works for most of the people pretty well, but if you are a developer you could have some issues. I was suffering a lot with this, this is why I&amp;rsquo;m posting it, to help some of you&lt;/p>
&lt;p>As you can see, the WiFi is running on the &lt;code>IP 172.18.xxx&lt;/code>
&lt;img src="https://blog.joergi.io/img/wp_wifi_on_ice.png" alt="Alt text" title="screenshot of networkmanager, where it's connected to Wifi on ICE">&lt;/p></description></item><item><title>Using Docker as non-root</title><link>https://blog.joergi.io/posts/2017-10-17-using-docker-as-non-root/</link><pubDate>Tue, 17 Oct 2017 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2017-10-17-using-docker-as-non-root/</guid><description>&lt;p>[UPDATE 2020-04-21] as mentioned in this &lt;a href="https://askubuntu.com/a/477554/80388">post&lt;/a> it&amp;rsquo;s not needed anymore:&lt;/p>
&lt;pre tabindex="0">&lt;code>Good news: the new docker (version 19.03 (currently experimental)) will be able to run rootless negating the problems that can occur using a root user. No more messing with elevated permissions, root and anything that might open up your machine when you did not want to.
&lt;/code>&lt;/pre>&lt;p>Normally you need to run docker as root:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo docker run hello-world
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>If this is going on your nerves, you can add your normal user to the docker-usergroup. &lt;br>
But before you do this, read the warning in this &lt;a href="https://askubuntu.com/a/477554/80388">post&lt;/a> (where i also got the code from)&lt;/p></description></item><item><title>Berlin – where to go</title><link>https://blog.joergi.io/posts/2017-04-09-berlin-where-to-go/</link><pubDate>Sun, 09 Apr 2017 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2017-04-09-berlin-where-to-go/</guid><description>&lt;p>Berlin has so many cool bars and restaurants to offer&amp;hellip;
I&amp;rsquo;m many times asked: what should we do? And no, I don&amp;rsquo;t want to write always the same stuff again, so I was thinking of making this list!&lt;/p>
&lt;p>Vegan food
First of all: &lt;a href="http://www.berlin-vegan.de">www.berlin-vegan.de&lt;/a> has nearly all vegan stuff covered..
Download the &lt;a href="https://play.google.com/store/apps/details?id=org.berlin_vegan.bvapp">Android app&lt;/a> or the &lt;a href="https://itunes.apple.com/de/app/berlin-vegan-guide/id435371382">iPhone app&lt;/a> and you are fine.&lt;/p>
&lt;p>My faves:&lt;/p>
&lt;h2 id="bars">Bars:&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="http://www.astrastube.com/">Astra Stube Neukölln&lt;/a> Weichselstrasse 63, 12043 Berlin&lt;/li>
&lt;li>&lt;a href="https://www.facebook.com/profile.php?id=100057603123330">Milchbar&lt;/a> Manteuffelstraße 41, 10997 Berlin&lt;/li>
&lt;li>&lt;a href="https://www.facebook.com/FrankenBar36/">Franken Bar&lt;/a> Oranienstraße 19A, 10999 Berlin&lt;/li>
&lt;li>&lt;a href="https://www.facebook.com/travolta.kreuzberg/">Travolta&lt;/a> Wiener Straße 14B, 10999 Berlin)a&lt;/li>
&lt;/ul>
&lt;h2 id="concerts">Concerts:&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://stressfaktor.squat.net/termine.php">Stressfaktor&lt;/a> (they also list demonstrations)&lt;/li>
&lt;li>&lt;a href="https://steelfeed.de/Berlin/0">Steelfeed&lt;/a> - List of all concerts, mainly punk + metal, it&amp;rsquo;s also connected to the Fediverse&lt;/li>
&lt;li>&lt;a href="https://www.so36.de">SO36&lt;/a> Oranienstr. 190, 10999 Berlin, Old traditional club with cool partys and concerts, directly in Kreuzberg 36&lt;/li>
&lt;li>&lt;a href="https://www.wildatheartberlin.de/">Wild at Heart&lt;/a>, Wiener Straße 20, 10999 Berlin, Small famose club, with many great concerts.&lt;/li>
&lt;li>&lt;a href="https://www.schokoladen-mitte.de/">Schokoladen&lt;/a>, Ackerstrasse 169/170, 10115 Berlin, Small club, concerts are only between 8pm and 10pm&lt;/li>
&lt;li>&lt;a href="https://clash-berlin.de/">Clash&lt;/a>, Gneisenaustraße 2A, 10961 Berlin, cool club, nice shows!&lt;/li>
&lt;li>&lt;a href="https://koepi137.net/">KÖPI&lt;/a>, Köpenicker Str. 137, 10179 Berlin, Left squat in Berlin, shows start always really late! Beer is cheap!&lt;/li>
&lt;li>&lt;a href="https://www.supamolly.de">Supamolly&lt;/a>, Jessner Str. 41, 10247 Berlin, also a formerly squatted house, a nice bar and some cool concerts in the cellar!&lt;/li>
&lt;li>&lt;a href="https://www.schicksaal.org/">Tommy Weissbecker Haus&lt;/a>, Wilhelmstraße 9, 10969 Berlin, another (ex) squatted house&amp;hellip; good shows, they start always really late&lt;/li>
&lt;/ul>
&lt;p>&amp;hellip; list is not complete yet&lt;/p></description></item><item><title>mySQL workbench can't connect via ssh tunnel</title><link>https://blog.joergi.io/posts/2017-02-20-mysql-workbench-cant-connect-via-ssh-tunnel/</link><pubDate>Mon, 20 Feb 2017 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2017-02-20-mysql-workbench-cant-connect-via-ssh-tunnel/</guid><description>&lt;p>If you can&amp;rsquo;t connect with your mysql-workbench to a database via ssh have a look at your logfile:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>tail -f -n &lt;span style="color:#ae81ff">100&lt;/span> ~/.mysql/workbench/log/wb.log
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>and you will see this error:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>14:12:58 &lt;span style="color:#f92672">[&lt;/span>ERR&lt;span style="color:#f92672">][&lt;/span>sshtunnel.py:notify_exception_error:233&lt;span style="color:#f92672">]&lt;/span>: Traceback &lt;span style="color:#f92672">(&lt;/span>most recent call last&lt;span style="color:#f92672">)&lt;/span>:
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>File &lt;span style="color:#e6db74">&amp;#34;/usr/share/mysql-workbench/sshtunnel.py&amp;#34;&lt;/span>, line 265, in _connect_ssh
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>look_for_keys&lt;span style="color:#f92672">=&lt;/span>has_key, allow_agent&lt;span style="color:#f92672">=&lt;/span>has_key&lt;span style="color:#f92672">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>File &lt;span style="color:#e6db74">&amp;#34;/usr/lib/python2.7/dist-packages/paramiko/client.py&amp;#34;&lt;/span>, line 306, in connect
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>t.start_client&lt;span style="color:#f92672">()&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>File &lt;span style="color:#e6db74">&amp;#34;/usr/lib/python2.7/dist-packages/paramiko/transport.py&amp;#34;&lt;/span>, line 465, in start_client
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>raise e
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ValueError: CTR mode needs counter parameter, not IV
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>change your transport.py:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo nano /usr/lib/python2.7/dist-packages/paramiko/transport.py
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>press CTRL+W for searching for the term&lt;/p></description></item><item><title>install node.js from binaries</title><link>https://blog.joergi.io/posts/2017-01-31-install-node-from-binaries/</link><pubDate>Tue, 31 Jan 2017 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2017-01-31-install-node-from-binaries/</guid><description>&lt;p>Source: &lt;a href="http://www.thegeekstuff.com/2015/10/install-nodejs-npm-linux/">http://www.thegeekstuff.com/2015/10/install-nodejs-npm-linux/&lt;/a>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>wget https://nodejs.org/dist/v7.4.0/node-v7.4.0-linux-x64.tar.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>cd /usr/local
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar --strip-components &lt;span style="color:#ae81ff">1&lt;/span> -xzf /path/to/node-v7.4.0-linux-x64.tar.gz
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>node should be in the newest version:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>node -v
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Sync folders in Vagrant but exclude some folders from syncing</title><link>https://blog.joergi.io/posts/2017-01-19-sync-folders-in-vagrant-but-exclude-some-folders-from-syncing/</link><pubDate>Thu, 19 Jan 2017 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2017-01-19-sync-folders-in-vagrant-but-exclude-some-folders-from-syncing/</guid><description>&lt;p>Maybe you know this: &lt;br>
you have a huge Java project, maybe the project itself is a sum of many (not even so small) Java projects. &lt;br>
For sharing the complete setting with other developers you normally use a &lt;a href="https://www.vagrantup.com">Vagrant box&lt;/a> to make it easy. &lt;br>
At work we needed 2 big projects in one Vagrant box, which included over 10 small maven projects.&lt;br>
Normally I would share it like this:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>config.vm.synced_folder &lt;span style="color:#e6db74">&amp;#34;my-project1&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;/home/vagrant/my-project1&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>config.vm.synced_folder &lt;span style="color:#e6db74">&amp;#34;my-project2&amp;#34;&lt;/span>, &lt;span style="color:#e6db74">&amp;#34;/home/vagrant/my-project2&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>You can imagine, the normal start-time of our server with permanently syncing all folders, including all the target folders took much too long. &lt;br>
On a local machine, without a Vagrant box, it normally needs around 2 minutes to start &lt;br>
But with syncing all target folders, it needs between 7-10 minutes to start the server&lt;/p></description></item><item><title>Using XIOAMI gamepad with Linux</title><link>https://blog.joergi.io/posts/2016-01-14-using-xioami-gamepad-with-linux/</link><pubDate>Thu, 14 Jan 2016 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2016-01-14-using-xioami-gamepad-with-linux/</guid><description>&lt;p>&lt;img src="https://web.archive.org/web/20221014114121if_/https://xiaomi-mi.com/uploads/CatalogueImage/2_13621_1429630637.jpg" alt="Alt text" title="XIAOMI Gamepad 2">&lt;/p>
&lt;p>I have the XIAOMI gamepad, a cheap gamepad which looks like the classical XBOX gamepad.
When I used it first with my Fire TV Stick, it worked like a charm. I wanted to try it with my Linux and with Steam.&lt;/p>
&lt;p>When i used it in a game it was totally uncalibrated. Pressing the joystick to the top position had no effect at all on my game character.
&lt;img src="https://blog.joergi.io/img/xiaomi-jscalib.png" alt="Alt text" title="screenshot form jstest-gtk">
So, i had to calibrate with a small programm, which I install on the shell with:&lt;/p></description></item><item><title>How to push files from your PC to Amazon Fire TV</title><link>https://blog.joergi.io/posts/2015-11-28-how-to-push-files-from-your-pc-to-amazon-fire-tv-aftv/</link><pubDate>Sat, 28 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2015-11-28-how-to-push-files-from-your-pc-to-amazon-fire-tv-aftv/</guid><description>&lt;p>The easiest way to do it:&lt;/p>
&lt;ol>
&lt;li>settings –&amp;gt; system –&amp;gt; Developer Option&lt;/li>
&lt;li>ADB-Debuggin ON&lt;/li>
&lt;li>Apps from unknown sources ON&lt;/li>
&lt;/ol>
&lt;p>After that, download the actual &lt;a href="http://www.jocala.com/">adb Link&lt;/a>&lt;/p>
&lt;p>You can now push with one klick: Kodi, FireLauncher and the addons you need for Kodi&lt;/p></description></item><item><title>Being able to develop on an unknown phone on a Linux computer</title><link>https://blog.joergi.io/posts/2015-11-14-being-able-to-develop-on-an-unknow-phone-on-a-linux-computer/</link><pubDate>Sat, 14 Nov 2015 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2015-11-14-being-able-to-develop-on-an-unknow-phone-on-a-linux-computer/</guid><description>&lt;p>When i tried to deploy a &lt;code>Hello World&lt;/code> app from my Linux notebook to my &lt;code>THL 5000&lt;/code> notebook i got this result:
&lt;img src="https://blog.joergi.io/img/android-dev.png" alt="Alt text" title="showing that the phone has only API level 1">&lt;/p>
&lt;p>So, my phone has API level 1, nice - NOT!&lt;/p>
&lt;p>Searching my ass off, I could nowhere find the device id for this phone&amp;hellip; So &lt;a href="https://chaos.social/@tbsprs">Tobi&lt;/a> told me: Brute-Force is the way to go and what should I say: it worked!&lt;/p></description></item><item><title>Barcelona-tips</title><link>https://blog.joergi.io/posts/2015-09-09-barcelona-tips/</link><pubDate>Wed, 09 Sep 2015 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2015-09-09-barcelona-tips/</guid><description>&lt;p>Because I was living in 2011 for 3 month in my favourite city Barcelona, I am asked so many times for Barcelona Tips&amp;hellip; &lt;br>
So here we go:&lt;/p>
&lt;!-- raw HTML omitted -->
&lt;p>&lt;strong>Concerts&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Always have a look at &lt;a href="https://barcelonahardcore.mforos.com/457647-conciertos/">THIS FORUM&lt;/a>, it&amp;rsquo;s in catalan, but you can get the informations out of the postings and use your favorite translate website, it will help you too! Best online information for squat shows (but let me tell you: they start really really late&amp;hellip; )&lt;/li>
&lt;li>&lt;a href="https://estraperlo.club/">Estraperlo Club del Ritme&lt;/a>, Club in Badalona (so it&amp;rsquo;s little bit outside of BCN) where you can watch many cool Bands (I saw Dickies, Dwarves and many more there), Isidre Nonell 9, Badalona, (Metro: L2 Badalona Pompeu Fabra, and walking, there is also some Bus stops, have a look online for more information)
P.S. Badalona has a perfect beach - so go there during the day, swim drink some beer and get than to the concert&lt;/li>
&lt;li>&lt;a href="https://www.salarazzmatazz.com">Sala Razzmatazz&lt;/a>, Big concert location, Pamplona 88, 1er piso, 08018, Barcelona, (Metro: L1 Marina or L4 Bogatell)&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Bars&lt;/strong>&lt;/p></description></item><item><title>Which Linux Version is running</title><link>https://blog.joergi.io/posts/2015-08-24-which-linux-version-is-running/</link><pubDate>Mon, 24 Aug 2015 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2015-08-24-which-linux-version-is-running/</guid><description>&lt;p>Sometimes you need to know, which Linux distro you are running, and especially, which version:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>lsb_release -a
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>The answer will look like:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>No LSB modules are available
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Distributor ID: Ubuntu
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Description: Ubuntu 14.04.3 LTS
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Release: 14.04
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Codename: trusty
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>No HDD space left for ubuntu update, make some space at /boot</title><link>https://blog.joergi.io/posts/2015-05-20-no-hdd-space-left-for-ubuntu-update-make-some-space-at-boot/</link><pubDate>Thu, 21 May 2015 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2015-05-20-no-hdd-space-left-for-ubuntu-update-make-some-space-at-boot/</guid><description>&lt;p>&lt;img src="https://blog.joergi.io/img/no_hdd_space_left_full.png" alt="Alt text" title="your hd is full, make space in /boot"> &lt;br>
your hd is full, make space in /boot
aaaa
make a&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>cd /boot ls -la
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>so you see the &lt;span style="color:#e6db74">`&lt;/span>/boot&lt;span style="color:#e6db74">`&lt;/span> folder
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://blog.joergi.io/img/no_hdd_space_left_full_lsla.png" alt="Alt text" title="screenshot of the boot folder">&lt;/p>
&lt;p>now delete the stuff you don&amp;rsquo;t need anymore:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo aptitude remove linux-image-3.13.0-49-generic
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo apt-get remove ...
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;img src="https://blog.joergi.io/imgafter_deleting_linux_image.png" alt="Alt text" title="ls -la after deleting the linux kernel image"> &lt;br>
(ls -la after deleting the linux kernel image)&lt;/p></description></item><item><title>Finding the biggest folders</title><link>https://blog.joergi.io/posts/2015-03-02-finding-the-biggest-folders/</link><pubDate>Mon, 02 Mar 2015 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2015-03-02-finding-the-biggest-folders/</guid><description>&lt;p>If you have on a server a folder which is to big, and you want to know, which file is the reason for a problem, use &lt;code>du&lt;/code>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>du -m | sort -n | tail -n &lt;span style="color:#ae81ff">10&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>for finding the 10 biggest folders. &lt;br>
(repeat this step in the biggest folder again to find the “problem folders”)&lt;/p></description></item><item><title>npm throws error /usr/bin/env: node: No such file or directory</title><link>https://blog.joergi.io/posts/2014-05-09-npm-throws-error-usr_bin_env_node-no-such-file-or-directory/</link><pubDate>Fri, 09 May 2014 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2014-05-09-npm-throws-error-usr_bin_env_node-no-such-file-or-directory/</guid><description>&lt;p>If the nodejs server was installed via the package manager, it is not in: &lt;br>
&lt;code>/usr/bin/env/node&lt;/code>, &lt;br>
it is in: &lt;br>
&lt;code>/usr/bin/env/nodejs&lt;/code>&lt;/p>
&lt;p>To solve this problem, you should set a symlink&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>ln -s /usr/bin/nodejs /usr/bin/node
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>credits for this hint: &lt;a href="https://github.com/joyent/node/issues/3911#issuecomment-8956154">digitalmediums at github&lt;/a>&lt;/p></description></item><item><title>Use 2 Skype accounts on Linux</title><link>https://blog.joergi.io/posts/2014-03-30-use-2-skype-accounts-on-linux/</link><pubDate>Sun, 30 Mar 2014 00:00:00 +0000</pubDate><guid>https://blog.joergi.io/posts/2014-03-30-use-2-skype-accounts-on-linux/</guid><description>&lt;p>If you have more than one Skype account (to seperate private and business) and you want to use them simultaneous, you have to:&lt;/p>
&lt;p>press ALT + F2&lt;/p>
&lt;pre tabindex="0">&lt;code>enter: skype --secondary
&lt;/code>&lt;/pre>&lt;p>Credits: &lt;a href="http://community.skype.com/t5/user/viewprofilepage/user-id/2869773">gvscroder&lt;/a> at &lt;a href="http://community.skype.com/t5/Linux/How-to-open-two-Skype-accounts-on-Linux/td-p/398151">skype forum&lt;/a>&lt;/p></description></item></channel></rss>