<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de_DE en_UK ru_RU"><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://www.x-tra-designs.org/feed.xml" rel="self" type="application/atom+xml" /><link href="https://www.x-tra-designs.org/" rel="alternate" type="text/html" hreflang="de_DE en_UK ru_RU" /><updated>2026-03-25T20:44:10+01:00</updated><id>https://www.x-tra-designs.org/feed.xml</id><title type="html">x-tra-designs.org</title><subtitle>Private Homepage of X-Tra-Designs. Computers, Linux, World, Marklin, Stuff </subtitle><author><name>Chrissie Brown</name></author><entry xml:lang="de"><title type="html">MySQL/MariaDB: Improve Invoiceplane Speed with Indexes</title><link href="https://www.x-tra-designs.org/mysql-indexes-improve-invoiceplane-speed-2026.html" rel="alternate" type="text/html" title="MySQL/MariaDB: Improve Invoiceplane Speed with Indexes" /><published>2026-03-21T09:00:01+01:00</published><updated>2026-03-21T09:00:01+01:00</updated><id>https://www.x-tra-designs.org/mysql-indexes-improve-invoiceplane-speed</id><content type="html" xml:base="https://www.x-tra-designs.org/mysql-indexes-improve-invoiceplane-speed-2026.html"><![CDATA[<p>InvoicePlane is a self-hosted open source application for managing your quotes, invoices, clients and payments. 
https://github.com/InvoicePlane/InvoicePlane
If you have something like 500 clients in the system and about 6500 invoices, you may notice a remarkable slowdown
when you display clients or invoices overview. The solution: Create indexes in MySQL / Mariad.</p>

<p><br /><br /></p>

<ul>
  <li>create the indexes, try again, enjoy!</li>
  <li>before: 7…8 seconds on viewing clients list, after: 0.5 seconds</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-- clients active
CREATE INDEX idx_clients_active 
  ON ip_clients (client_active);

-- Invoices Clients idx
CREATE INDEX idx_invoices_client_id
  ON ip_invoices (client_id);

-- Join client invoice
CREATE INDEX idx_invoices_client_id
  ON ip_invoices (client_id);

-- Amount
CREATE INDEX idx_invoice_amounts_invoice_id
  ON ip_invoice_amounts (invoice_id);

-- Clients (idx)
CREATE INDEX idx_clients_id ON ip_clients (client_id);

-- Invoices (important!)
CREATE INDEX idx_invoices_user_id
  ON ip_invoices (user_id);

-- Recurring (Subquery!)
CREATE INDEX idx_invoices_recurring_invoice_id
  ON ip_invoices_recurring (invoice_id, recur_next_date);

-- Quotes
CREATE INDEX idx_quotes_invoice_id
  ON ip_quotes (invoice_id);

-- Sumex
CREATE INDEX idx_invoice_sumex_invoice
  ON ip_invoice_sumex (sumex_invoice);
</code></pre></div></div>

<ul>
  <li>How did i find that out?</li>
  <li>insert this in the controller in the correspodending method like status:</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>
$this-&gt;output-&gt;enable_profiler(TRUE);

</code></pre></div></div>

<ul>
  <li>make one click: Clients -&gt; View Cliens</li>
  <li>now look on the SQL output at the bottom of the page</li>
  <li>EXPLAIN this output with EXPLAIN SELECT … in mysql / mariabd</li>
  <li>Think, generate indexes</li>
  <li>it is also possible to optimize the sub-query which will bring another major speed upgrade, but thats for another post</li>
</ul>]]></content><author><name>Chrissie Brown</name></author><category term="MySQL" /><category term="Mariadb" /><summary type="html"><![CDATA[InvoicePlane is a self-hosted open source application for managing your quotes, invoices, clients and payments. https://github.com/InvoicePlane/InvoicePlane If you have something like 500 clients in the system and about 6500 invoices, you may notice a remarkable slowdown when you display clients or invoices overview. The solution: Create indexes in MySQL / Mariad.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/mariadb.png" /><media:content medium="image" url="https://www.x-tra-designs.org/mariadb.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Truncate text reasonable in PHP</title><link href="https://www.x-tra-designs.org/php-truncate-text-reasonable-2026.html" rel="alternate" type="text/html" title="Truncate text reasonable in PHP" /><published>2026-03-15T12:37:00+01:00</published><updated>2026-03-15T12:37:00+01:00</updated><id>https://www.x-tra-designs.org/php-truncate-text-reasonable</id><content type="html" xml:base="https://www.x-tra-designs.org/php-truncate-text-reasonable-2026.html"><![CDATA[<p>Um automatisch einen Teaser zu generieren, braucht man eine schlaue Funktion, die Wörter nicht zerhackt. :-)</p>

<ul>
  <li>Quelle: Drupal Project</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;?php
function _truncate($string, $len, $wordsafe = FALSE, $dots = FALSE) 
{
        if (strlen($string) &lt;= $len) {
                return $string;
        }

        if ($dots) {
                $len -= 4;
        }

        if ($wordsafe) {
                $string = substr($string, 0, $len + 1); // leave one more character
                if ($last_space = strrpos($string, ' ')) { // space exists AND is not on position 0
                        $string = substr($string, 0, $last_space);
                } else {
                        $string = substr($string, 0, $len);
                }
        } else {
                $string = substr($string, 0, $len);
        }

        if ($dots) {
                $string .= ' ...';
        }

        return $string;
}
?&gt;
</code></pre></div></div>

<ul>
  <li>Beispielverwendung:
    <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$t = _truncate($t, 150, true, true);
</code></pre></div>    </div>
  </li>
</ul>]]></content><author><name>Chrissie Brown</name></author><category term="PHP" /><category term="Coding" /><summary type="html"><![CDATA[Um automatisch einen Teaser zu generieren, braucht man eine schlaue Funktion, die Wörter nicht zerhackt. :-)]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/php.jpg" /><media:content medium="image" url="https://www.x-tra-designs.org/php.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Basic: ein einfaches Ski-Spiel für den Commodore 64 etc.</title><link href="https://www.x-tra-designs.org/simple-commodore-basic-ski-game-2025.html" rel="alternate" type="text/html" title="Basic: ein einfaches Ski-Spiel für den Commodore 64 etc." /><published>2025-09-06T15:37:00+02:00</published><updated>2025-09-06T15:37:00+02:00</updated><id>https://www.x-tra-designs.org/simple-commodore-basic-ski-game</id><content type="html" xml:base="https://www.x-tra-designs.org/simple-commodore-basic-ski-game-2025.html"><![CDATA[<p>Ich habe mich an ein einfaches Ski-Spiel in Basic erinnert, dass wird damals(tm) im Informatik-Unterricht gespielt haben, wahrscheinlich auf dem CBM-4032. Ich habe es schnell nachprogrammiert, sollte auf allen Commodore-Rechnern mit 40 Zeichen Bildschrirm laufen, ist aber auch einfach für den VC-20 anpassbar.
<br /><br /></p>

<ul>
  <li>Beispiel-Spielverlauf</li>
</ul>

<p><img src="/postimg/basic-ski.png" alt="basic-ski" /></p>

<p><br /></p>
<ul>
  <li>Steuerung</li>
</ul>

<p>Taste A und D bewegen den Skifahrer links/rechts.</p>

<p>Alle 25 Zeilen wird die Piste schmaler, von zuerst 10 bis maximal 5. Der Pistenrand erscheint dann kurz invers.</p>

<p><br /></p>
<ul>
  <li>Basic-Listing</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>4 rem ===
5 rem === ski by chrissie 08.2025 ===
6 rem ===
10 print chr$(147)
15 a=rnd(-ti) : rem zufallsgenerator initialisieren
20 x=10 : rem position spieler
25 a=6  : rem linker pfosten
30 sc=0 : rem score
40 w=10 : rem breite der piste
45 p$="x"
50 print "steuerung: a=links, d=rechts"
60 rem for i=1 to 20 : print : next
80 s$="                                       "
100 rem ===== mainloop =====
110 z=int(rnd(1)*3)-1 : rem  -1 / 0 / -1
115 a=a+z
116 if a &lt; 2 then a = 2
117 if a &gt; 38 then a = 38
130 get k$:if k$="a" and x&gt;2 then x=x-1
140 if k$="d" and x&lt;38 then x=x+1
150 l1$=left$(s$,a-1)+p$+left$(s$,w)+p$
155 p$="x"
160 l$=left$(l1$,x) + "*"+mid$(l1$,x+1)
170 print l$
180 if x&lt;a or x&gt;a+w then goto 300
190 sc = sc+1
200 if int(sc/25) * 25 = sc and w &gt; 4 then w=w-1:p$="{rvon}x{rvof}"
210 goto 110
295 rem ===== Ende ==
300 print : print "crash! game over!"
310 print "end-score:";sc
320 end
</code></pre></div></div>

<ul>
  <li>Makefile</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ski.prg: ski.bas
    petcat -w2 -o ski.prg -- ski.bas
    x64sc ski.prg
</code></pre></div></div>

<ul>
  <li>Download .prg</li>
</ul>

<p><a href="/files/ski.prg">Download prg</a></p>

<p><br /></p>
<ul>
  <li>Links</li>
</ul>

<p><a href="https://techtinkering.com/articles/tokenize-detokenize-commodore-basic-programs-using-petcat/">https://techtinkering.com/articles/tokenize-detokenize-commodore-basic-programs-using-petcat/</a></p>]]></content><author><name>Chrissie Brown</name></author><category term="commodore" /><category term="baseic" /><summary type="html"><![CDATA[Ich habe mich an ein einfaches Ski-Spiel in Basic erinnert, dass wird damals(tm) im Informatik-Unterricht gespielt haben, wahrscheinlich auf dem CBM-4032. Ich habe es schnell nachprogrammiert, sollte auf allen Commodore-Rechnern mit 40 Zeichen Bildschrirm laufen, ist aber auch einfach für den VC-20 anpassbar.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/basic.jpg" /><media:content medium="image" url="https://www.x-tra-designs.org/basic.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Postfix: Sender-IP und Username in der E-Mail verstecken</title><link href="https://www.x-tra-designs.org/postfix-hide-sender-ip-and-username-2025.html" rel="alternate" type="text/html" title="Postfix: Sender-IP und Username in der E-Mail verstecken" /><published>2025-04-10T15:37:00+02:00</published><updated>2025-04-10T15:37:00+02:00</updated><id>https://www.x-tra-designs.org/postfix-hide-sender-ip-and-username</id><content type="html" xml:base="https://www.x-tra-designs.org/postfix-hide-sender-ip-and-username-2025.html"><![CDATA[<p>Per default steht der Username und die IP-Adresse des Senders in der E-Mail. Dieses kann man auch verstecken, da diese Information fü Attacken missbraucht wird.</p>

<p><br /><br /></p>

<ul>
  <li>konkrete Attacke im Maillog</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Jan 27 00:10:21 myserver dovecot[87032]: auth-worker(73776): conn unix:auth-worker (uid=143): auth-worker&lt;1&gt;: sql(XtraExterminator,111.xx.xx.xx): Password mismatch
Jan 27 00:10:23 myserver postfix/submission/smtpd[73774]: warning: 111-xx-xx-xx.emome-ip.xx.net[111.xx.xx.xx]: SASL PLAIN authentication failed: (reason unavailable), sasl_username=XtraExterminator
</code></pre></div></div>

<ul>
  <li>Header einer Mail mit dieser Information: Feld Authenticated sender</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[...]
Received: from [10.1.1.100] (pdxxxx.dip0.t-ipconnect.de [217.xxx.xxx.xxx])
        (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)
         key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
        (No client certificate requested)
        (Authenticated sender: XtraExterminator)
        by myserver.de (Postfix) with ESMTPSA id 3898248D893
        for &lt;chris.b@example.com&gt;; Sat, 25 Jan 2025 11:44:17 +0100 (CET)
[...]
</code></pre></div></div>
<ul>
  <li>Abhilfe: (Danke, askubuntu.com)</li>
</ul>

<p>The standard solution is to use the header_checks option. This will work, however, if we filter received lines on all mail both incoming and outgoing (as this will do), we could potentially lose Received headers on mail sent to us, which can be important for troubleshooting. To get around this problem, we will apply the header_checks only to the mail that could not possibly have been sent to us-mail that was sent to the submission port (you are using the submission port, aren’t you?).</p>

<p>What we need to do is pass the cleanup_service_name option to the submission service so that we can set up a new cleanup service, “subcleanup.” The relevant section of /etc/postfix/master.cf might look like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o cleanup_service_name=subcleanup
</code></pre></div></div>

<p>Now we can pass the header_checks option to the new cleanup service. That part of /etc/postfix/master.cf might look like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>cleanup   unix  n       -       -       -       0       cleanup
subcleanup unix n       -       -       -       0       cleanup
  -o header_checks=regexp:/etc/postfix/submission_header_checks
</code></pre></div></div>

<p>Finally, we need to create the file /etc/postfix/submission_header_checks, which will contain the regex that filters offending Received header lines. Which regex you put in the file depends on whether you have smtpd_sasl_authenticated_header set.</p>

<p>If smtpd_sasl_authenticated_header is yes, then use:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/^Received:.*\(Authenticated sender:/ IGNORE
</code></pre></div></div>

<p>Otherwise, use:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/^Received:.*\(Postfix/ IGNORE
</code></pre></div></div>

<ul>
  <li>Nun wird diese Information versteckt</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[...]
Received: from myserver.de (81.xx.xx.xx by
 DBxxxx.mail.protection.outlook.com (10.xx.xx.xx) with Microsoft
 SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.xx.xx.14
 via Frontend Transport; Mon, 27 Jan 2025 06:32:18 +0000
[...]
</code></pre></div></div>

<ul>
  <li>Es zeigte sich, dass dies leider nur begrenzt hilft.</li>
</ul>]]></content><author><name>Chrissie Brown</name></author><category term="postfix" /><category term="email" /><summary type="html"><![CDATA[Per default steht der Username und die IP-Adresse des Senders in der E-Mail. Dieses kann man auch verstecken, da diese Information fü Attacken missbraucht wird.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/postfix.png" /><media:content medium="image" url="https://www.x-tra-designs.org/postfix.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Global Switch Day</title><link href="https://www.x-tra-designs.org/global-switch-day-2025.html" rel="alternate" type="text/html" title="Global Switch Day" /><published>2025-02-02T08:55:00+01:00</published><updated>2025-02-02T08:55:00+01:00</updated><id>https://www.x-tra-designs.org/global-switch-day</id><content type="html" xml:base="https://www.x-tra-designs.org/global-switch-day-2025.html"><![CDATA[<p>Am 1. Februar 2025 war der “Global Switch Day”. Es wird z. B. aufgefordert, von den großen Plattformen der Tech-Konzerne auf unabhängige, freie Alternativen zu wechseln.</p>

<p><br /></p>

<p>Folgendes wird oft vorgeschlagen:</p>

<p><br /></p>

<ul>
  <li>X (Twitter) → Mastodon</li>
  <li>Instagram → Pixelfed</li>
  <li>WhatsApp → Signal / Matrix</li>
  <li>Facebook → Friendica</li>
  <li>YouTube → Peer Tube</li>
  <li>TikTok → Looks.video</li>
</ul>

<p><br /></p>

<p>Ein Hinweis an der Stelle: Mastodon, Pixelfed, Friendica implementieren alle das ActivityPub-Protokoll im Fediverse. Theoretisch reicht ein Account bei einer dieser Plattformen aus, um auch die Nachrichten aller anderen zu empfangen.</p>

<p><br /></p>

<p>Mir geht das aber nicht weit genug, ich empfehle zusätzlich folgendes zu switchen:</p>

<p><br /></p>

<ul>
  <li>Indesign → Affinity Publisher</li>
  <li>Affinity Publisher → Scribus</li>
  <li>Photoshop → Affinity Photo</li>
  <li>Affinity Photo → Gimp</li>
  <li>Microsoft Office → Softmaker Office</li>
  <li>Softmaker Office → Troff / LaTeX</li>
  <li>Internet Explorer → Firefox</li>
  <li>Firefox → w3m</li>
  <li>Windows → Linux Mint / Debian Linux</li>
  <li>Debian Linux → Gentoo Linux</li>
  <li>Gentoo Linux → FreeBSD</li>
  <li>MS Code Editor → Notepad++</li>
  <li>Notepad++ → Vim</li>
  <li>Typo3 → Wordpress</li>
  <li>Wordpress → Jekyll Static Site Generator</li>
</ul>]]></content><author><name>Chrissie Brown</name></author><category term="Free" /><category term="Software" /><summary type="html"><![CDATA[Am 1. Februar 2025 war der “Global Switch Day”. Es wird z. B. aufgefordert, von den großen Plattformen der Tech-Konzerne auf unabhängige, freie Alternativen zu wechseln.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/zahnraeder.png" /><media:content medium="image" url="https://www.x-tra-designs.org/zahnraeder.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Linux: das Dateidatum von Bildern auf die EXIF-Aufnahmezeit setzen</title><link href="https://www.x-tra-designs.org/exiftool-filedate-2025.html" rel="alternate" type="text/html" title="Linux: das Dateidatum von Bildern auf die EXIF-Aufnahmezeit setzen" /><published>2025-01-20T08:55:00+01:00</published><updated>2025-01-20T08:55:00+01:00</updated><id>https://www.x-tra-designs.org/exiftool-filedate</id><content type="html" xml:base="https://www.x-tra-designs.org/exiftool-filedate-2025.html"><![CDATA[<p>Oft will man das Dateidatum gleich mit dem EXIF-Aufnahmedatum setzen. Z. B. die Anzeige “Photos” in der beliebten Nextcloud kommt aus dem Tritt, wenn dies abweicht.</p>

<p><br /></p>

<ul>
  <li>Mit dem Programm exiftool kann man den Zeitstempel auslesen und als Zeitstempel der Datei erneut setzenl
    <ul>
      <li>für ein Bild</li>
    </ul>
  </li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>exiftool '-DateTimeOriginal&gt;FileModifyDate' picture.jpg
</code></pre></div></div>

<ul>
  <li>für alle Bilder im aktuellen Verzeichnis</li>
  <li>soll es auch in Unterverzeichnissen angewandt werden, zusätzlich die Option -r angeben</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>exiftool '-DateTimeOriginal&gt;FileModifyDate' .
</code></pre></div></div>

<ul>
  <li>kontrollieren des Ergebnisses</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>exiftool IMG_6295.JPG | grep -i date
</code></pre></div></div>

<ul>
  <li>sollte eine Datei wider Erwarten keine EXIF-Datums-Information haben, kann man so eine setzen:</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>exiftool -CreateDate="2015:18:01 12:00:00+01:00" -Overwrite_Original IMG_6295.JPG
exiftool -DateTimeOriginal="2015:18:01 12:00:00+01:00" -Overwrite_Original IMG_6295.JPG
</code></pre></div></div>

<p>HTH!</p>]]></content><author><name>Chrissie Brown</name></author><category term="Linux," /><category term="FreeBSD" /><summary type="html"><![CDATA[Oft will man das Dateidatum gleich mit dem EXIF-Aufnahmedatum setzen. Z. B. die Anzeige “Photos” in der beliebten Nextcloud kommt aus dem Tritt, wenn dies abweicht.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/linux.jpg" /><media:content medium="image" url="https://www.x-tra-designs.org/linux.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Gentoo Linux: Anzahl der LLVM-Targets reduzieren</title><link href="https://www.x-tra-designs.org/gentoo-llvm-targets-2025.html" rel="alternate" type="text/html" title="Gentoo Linux: Anzahl der LLVM-Targets reduzieren" /><published>2025-01-13T08:55:00+01:00</published><updated>2025-01-13T08:55:00+01:00</updated><id>https://www.x-tra-designs.org/gentoo-llvm-targets</id><content type="html" xml:base="https://www.x-tra-designs.org/gentoo-llvm-targets-2025.html"><![CDATA[<p>Mann kann die Anzahl der LLVM-Targets bei Gentoo reduzieren, um die Compile-Time zu beschleunigen.</p>

<p><br /></p>

<ul>
  <li>Diese Datei erstellen:</li>
  <li>/etc/portage/profile/use.force</li>
  <li>Inhalt (Beispiel!)</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>-llvm_targets_AArch64 
-llvm_targets_AMDGPU 
-llvm_targets_ARM 
-llvm_targets_AVR 
-llvm_targets_BPF 
-llvm_targets_Hexagon 
-llvm_targets_Lanai 
-llvm_targets_MSP430 
-llvm_targets_Mips 
-llvm_targets_NVPTX 
-llvm_targets_PowerPC 
-llvm_targets_RISCV 
-llvm_targets_Sparc 
-llvm_targets_SystemZ 
#-llvm_targets_WebAssembly 
#-llvm_targets_X86 
-llvm_targets_XCore 
-llvm_targets_ARC 
-llvm_targets_CSKY 
-llvm_targets_M68k 
-llvm_targets_VE 
</code></pre></div></div>

<ul>
  <li>das erwartete Ergebnis :)</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>emerge --pretend =llvm-core/clang-18*

[ebuild  N     ] llvm-core/clang-18.1.8-r6  USE="extra (pie) static-analyzer xml -debug -doc (-ieee-long- ouble) -test -verify-sig" ABI_X86="(64) -32 (-x32)" LLVM_TARGETS="AMDGPU BPF (LoongArch) NVPTX (WebAssemb y) (X86) -AArch64 -ARC -ARM -AVR -CSKY -DirectX -Hexagon -Lanai -M68k -MSP430 -Mips -PowerPC -RISCV -SPIR  -Sparc -SystemZ -VE -XCore -Xtensa" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11 -python3_13

[...]
</code></pre></div></div>]]></content><author><name>Chrissie Brown</name></author><category term="Linux," /><category term="Gentoo" /><summary type="html"><![CDATA[Mann kann die Anzahl der LLVM-Targets bei Gentoo reduzieren, um die Compile-Time zu beschleunigen.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/gentoo.jpg" /><media:content medium="image" url="https://www.x-tra-designs.org/gentoo.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Export mit Ovftool: Error: Failed to open disk: …vmdk</title><link href="https://www.x-tra-designs.org/ovftool-failed-to-open-disk-2025.html" rel="alternate" type="text/html" title="Export mit Ovftool: Error: Failed to open disk: …vmdk" /><published>2025-01-03T08:55:00+01:00</published><updated>2025-01-03T08:55:00+01:00</updated><id>https://www.x-tra-designs.org/ovftool-failed-to-open-disk</id><content type="html" xml:base="https://www.x-tra-designs.org/ovftool-failed-to-open-disk-2025.html"><![CDATA[<p>Folgender Fehler kann einen in den Wahnsinn treiben:<br />
<b>Ovftool: Error: Failed to open disk: …vmdk … Completed with errors</b></p>

<p><br /></p>

<p>Dabei ist der Grund manchmal ganz einfach: Neben Tippfehlern, die immer kontrolliert werden sollten, ist zwingend die virtuelle Maschine im VMWare Player auszuschalten. Nur in diesem Zustand kann zu ovf exportiert werden!</p>

<p><br /></p>

<p><img src="/postimg/vmware-ovf1.png" alt="ovf1" /></p>

<p><em>ovftool, einmal mit Fehler, einmal funktionierend</em></p>

<p><br /></p>

<p><img src="/postimg/vmware-ovf2.png" alt="ovf1" /></p>

<p><em>Kontrollieren bzw. Ausschalten der virtuellen Maschine</em></p>]]></content><author><name>Chrissie Brown</name></author><category term="Linux," /><category term="Windows," /><category term="Server," /><category term="VMWare" /><summary type="html"><![CDATA[Folgender Fehler kann einen in den Wahnsinn treiben: Ovftool: Error: Failed to open disk: …vmdk … Completed with errors]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/vmware.png" /><media:content medium="image" url="https://www.x-tra-designs.org/vmware.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">Firefox: wichtige Einstellungen</title><link href="https://www.x-tra-designs.org/setup-firefox-2024.html" rel="alternate" type="text/html" title="Firefox: wichtige Einstellungen" /><published>2024-12-05T10:37:00+01:00</published><updated>2024-12-05T10:37:00+01:00</updated><id>https://www.x-tra-designs.org/setup-firefox</id><content type="html" xml:base="https://www.x-tra-designs.org/setup-firefox-2024.html"><![CDATA[<p>Wenn man Firefox 128 ESR installiert, möchte man einige Einstellungen durchführen, dass er wieder “benutzbar” wird. Hinweis: Das sind rein meine Einstellungen, niemand muss das tun.
<br /> <br /></p>

<h3 id="menüleiste-anzeigen">Menüleiste anzeigen</h3>

<p>Oben auf der Leiste: Rechtsklick, dann Haken bei [x] Menüleiste anzeigen setzen</p>

<p><br /></p>

<h3 id="scrollbar-immer-anzeigen">Scrollbar immer anzeigen</h3>

<ul>
  <li>Haken setzen bei</li>
</ul>

<p>Menü: Bearbeiten -&gt; Einstellungen -&gt; [x] Bildlaufleisten immer anzeigen</p>

<ul>
  <li>danach in der URL-Zeile</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>about:config
</code></pre></div></div>
<p>eingeben, nach folgenden Werten suchen und sie ggf. ändern:</p>

<ul>
  <li>Scrollbar-Breite</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>widget.non-native-theme.scrollbar.size.override 20
</code></pre></div></div>
<ul>
  <li>Scrollbar-Form</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>widget.non-native-theme.scrollbar.style 4
</code></pre></div></div>

<p><br /></p>

<h3 id="firefox-passwort-manager-deaktivieren">Firefox-Passwort-Manager deaktivieren</h3>

<p>Dies möchte ich so haben, da ich das Bitwarden-Plugin für meine Passworte verwende, und sie deshalb nicht im Firefox direkt speichern will.</p>

<ul>
  <li>Haken raus bei:</li>
</ul>

<p>Menü: Einstellungen -&gt; Privatsphäre und Sicherheit -&gt; Logins und Passwörter -&gt; [ ] Logins und Passwörter für Webseiten speichern</p>

<p><br /></p>

<h3 id="standort-requests-blockieren">Standort-Requests blockieren</h3>

<ul>
  <li>Haken setzen bei:</li>
</ul>

<p>Menu: Einstellungen -&gt; Privatsphäre und Sicherheit -&gt; Location -&gt; Settings [x] Blockiere neue Requests nach dem Standort</p>

<p><br /></p>

<h3 id="neue-fenster-im-tab-öffnen">Neue Fenster im Tab öffnen</h3>

<ul>
  <li>in der URL-Zeile</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>about:config
</code></pre></div></div>
<p>eingeben. Suchen nach/Einstellen:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>browser.link.open_newwindow 3
</code></pre></div></div>]]></content><author><name>Chrissie Brown</name></author><category term="Firefox" /><summary type="html"><![CDATA[Wenn man Firefox 128 ESR installiert, möchte man einige Einstellungen durchführen, dass er wieder “benutzbar” wird. Hinweis: Das sind rein meine Einstellungen, niemand muss das tun.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/firefox.png" /><media:content medium="image" url="https://www.x-tra-designs.org/firefox.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry xml:lang="de"><title type="html">FreeBSD: Boot-Environment aufräumen</title><link href="https://www.x-tra-designs.org/freebsd-clean-up-boot-environment-2024.html" rel="alternate" type="text/html" title="FreeBSD: Boot-Environment aufräumen" /><published>2024-11-05T10:37:00+01:00</published><updated>2024-11-05T10:37:00+01:00</updated><id>https://www.x-tra-designs.org/freebsd-clean-up-boot-environment</id><content type="html" xml:base="https://www.x-tra-designs.org/freebsd-clean-up-boot-environment-2024.html"><![CDATA[<p>Interessanterweise cann man einiges an Platz bei einem FreeBSD-System sparen, in dem man alte Boot-Environments löscht, welche nach mehreren FreeBSD-Updates schon einges an Platz beanspruchen können.
<br /></p>

<h3 id="auf-dem-server-fuchsia">auf dem Server fuchsia</h3>

<ul>
  <li>Vorhandene, alte Boot-Environments ansehen</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[root@fuchsia #]$ uname -a
FreeBSD fuchsia 14.1-RELEASE-p5 FreeBSD 14.1-RELEASE-p5 GENERIC amd64

[root@fuchsia]# bectl list
BE                                 Active Mountpoint Space Created
14.0-RELEASE-p10_2024-09-11_074137 -      -          46.2M 2024-09-11 07:41
14.0-RELEASE-p11_2024-11-01_205323 -      -          70.4M 2024-11-01 20:53
14.0-RELEASE-p11_2024-11-05_125604 -      -          57.6M 2024-11-05 12:56
14.0-RELEASE-p4_2024-03-03_152009  -      -          100G  2024-03-03 15:20
14.0-RELEASE-p5_2024-04-25_071739  -      -          7.10G 2024-04-25 07:17
14.0-RELEASE-p6_2024-07-09_152214  -      -          6.27G 2024-07-09 15:22
14.0-RELEASE-p8_2024-09-11_072822  -      -          47.2M 2024-09-11 07:28
14.0-RELEASE_2024-01-20_173821     -      -          439M  2024-01-20 17:38
14.1-RELEASE-p4_2024-11-01_174027  -      -          24.8M 2024-11-01 17:40
14.1-RELEASE-p4_2024-11-01_183855  -      -          406M  2024-11-01 18:38
14.1-RELEASE-p5_2024-11-05_120355  -      -          101M  2024-11-05 12:03
14.1-RELEASE-p5_2024-11-06_073142  -      -          50.7M 2024-11-06 07:31
14.1-RELEASE-p6_2024-11-05_123738  -      -          431M  2024-11-05 12:37
14.1-RELEASE-p6_2024-11-06_074835  -      -          43.4M 2024-11-06 07:48
default                            NR     /          516G  2024-01-20 12:29
</code></pre></div></div>

<ul>
  <li>nicht benötigte Boot-Environments löschen
    <ul>
      <li>Hierbei gilt es natürlich, Vorsicht walten zu lassen!</li>
    </ul>
  </li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[root@fuchsia]# bectl destroy 14.0-RELEASE-p4_2024-03-03_152009
...
</code></pre></div></div>

<ul>
  <li>Es konnte einiges an Gigabytes eingespart werden - YMMV</li>
</ul>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>[root@fuchsia]# bectl list
BE                                 Active Mountpoint Space Created
14.0-RELEASE-p11_2024-11-05_125604 -      -          57.6M 2024-11-05 12:56
14.1-RELEASE-p4_2024-11-01_174027  -      -          1.51G 2024-11-01 17:40
14.1-RELEASE-p5_2024-11-06_073142  -      -          50.7M 2024-11-06 07:31
14.1-RELEASE-p6_2024-11-05_123738  -      -          504M  2024-11-05 12:37
14.1-RELEASE-p6_2024-11-06_074835  -      -          45.1M 2024-11-06 07:48
default                            NR     /          343G  2024-01-20 12:29
</code></pre></div></div>

<h3 id="auf-dem-server-gliese1">auf dem Server gliese1</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>root@gliese1:# uname -a
FreeBSD gliese1 13.4-RELEASE-p1 FreeBSD 13.4-RELEASE-p1 GENERIC amd64

root@gliese1:# bectl list
BE                                 Active Mountpoint Space Created
12.3-RELEASE-p10_2022-12-08_144931 -      -          15.1M 2022-12-08 14:49
12.3-RELEASE-p4_2022-12-07_172113  -      -          831M  2022-12-07 17:21
13.1-RELEASE-p3_2022-12-08_150736  -      -          7.77M 2022-12-08 15:07
13.1-RELEASE-p5_2022-12-08_152330  -      -          30.5M 2022-12-08 15:23
13.1-RELEASE-p5_2023-04-20_133553  -      -          282M  2023-04-20 13:35
13.1-RELEASE-p7_2023-04-24_103301  -      -          190M  2023-04-24 10:33
13.1-RELEASE-p7_2024-01-14_120325  -      -          38.9M 2024-01-14 12:03
13.1-RELEASE-p9_2024-01-14_125348  -      -          14.0M 2024-01-14 12:53
13.2-RELEASE-p10_2024-03-15_115334 -      -          10.7M 2024-03-15 11:53
13.2-RELEASE-p8_2024-01-14_125916  -      -          11.5M 2024-01-14 12:59
13.2-RELEASE-p9_2024-03-15_085002  -      -          105M  2024-03-15 08:50
13.3-RELEASE-p2_2024-07-09_154408  -      -          476M  2024-07-09 15:44
13.3-RELEASE-p4_2024-11-08_134953  -      -          145M  2024-11-08 13:49
13.3-RELEASE-p8_2024-11-09_104111  -      -          5.54M 2024-11-09 10:41
13.3-RELEASE_2024-03-15_121320     -      -          16.4M 2024-03-15 12:13
13.3-RELEASE_2024-06-19_102008     -      -          1.05G 2024-06-19 10:20
13.4-RELEASE-p1_2024-11-09_104559  -      -          5.11M 2024-11-09 10:46
default                            NR     /          329G  2018-11-24 12:56

root@gliese1:# bectl destroy 12.3-RELEASE-p4_2022-12-07_172113
root@gliese1:# bectl destroy 12.3-RELEASE-p10_2022-12-08_144931
root@gliese1:# bectl destroy 13.1-RELEASE-p3_2022-12-08_150736
root@gliese1:# bectl destroy 13.1-RELEASE-p5_2022-12-08_152330
root@gliese1:# bectl destroy 13.1-RELEASE-p5_2023-04-20_133553
root@gliese1:# bectl destroy 13.1-RELEASE-p7_2023-04-24_103301
root@gliese1:# bectl destroy 13.1-RELEASE-p7_2024-01-14_120325
root@gliese1:# bectl destroy 13.1-RELEASE-p9_2024-01-14_125348
root@gliese1:# bectl destroy 13.2-RELEASE-p10_2024-03-15_115334
root@gliese1:# bectl destroy 13.2-RELEASE-p8_2024-01-14_125916
root@gliese1:# bectl destroy 13.2-RELEASE-p9_2024-03-15_085002
root@gliese1:# bectl destroy 13.3-RELEASE-p2_2024-07-09_154408

root@gliese1:# bectl list
BE                                Active Mountpoint Space Created
13.3-RELEASE-p2_2024-07-09_154408 -      -          1.93G 2024-07-09 15:44
13.3-RELEASE-p4_2024-11-08_134953 -      -          145M  2024-11-08 13:49
13.3-RELEASE-p8_2024-11-09_104111 -      -          5.54M 2024-11-09 10:41
13.3-RELEASE_2024-03-15_121320    -      -          171G  2024-03-15 12:13
13.4-RELEASE-p1_2024-11-09_104559 -      -          5.11M 2024-11-09 10:46
default                           NR     /          202G  2018-11-24 12:56
root@gliese1:# bectl destroy 13.3-RELEASE-p2_2024-07-09_154408
root@gliese1:# bectl destroy 13.3-RELEASE-p4_2024-11-08_134953
root@gliese1:# bectl destroy 13.3-RELEASE-p8_2024-11-09_104111

root@gliese1:# bectl list
BE                                Active Mountpoint Space Created
13.3-RELEASE_2024-03-15_121320    -      -          173G  2024-03-15 12:13
13.4-RELEASE-p1_2024-11-09_104559 -      -          5.89G 2024-11-09 10:46
default                           NR     /          200G  2018-11-24 12:56
root@gliese1:# bectl destroy 13.3-RELEASE_2024-03-15_121320

root@gliese1:# bectl list
BE                                Active Mountpoint Space Created
13.4-RELEASE-p1_2024-11-09_104559 -      -          12.5G 2024-11-09 10:46
default                           NR     /          27.5G 2018-11-24 12:56
</code></pre></div></div>]]></content><author><name>Chrissie Brown</name></author><category term="FreeBSD" /><summary type="html"><![CDATA[Interessanterweise cann man einiges an Platz bei einem FreeBSD-System sparen, in dem man alte Boot-Environments löscht, welche nach mehreren FreeBSD-Updates schon einges an Platz beanspruchen können.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://www.x-tra-designs.org/freebsd.jpg" /><media:content medium="image" url="https://www.x-tra-designs.org/freebsd.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>