<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="http://retinal.dehy.de/docs/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="http://retinal.dehy.de/docs/feed.php">
        <title>Welcome to (parts of) my world technotes</title>
        <description></description>
        <link>http://retinal.dehy.de/docs/</link>
        <image rdf:resource="http://retinal.dehy.de/docs/lib/tpl/minimal/images/favicon.ico" />
       <dc:date>2026-05-01T01:14:09+02:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:activity&amp;rev=1496090767&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:alarmclock&amp;rev=1709965033&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:alditalk&amp;rev=1577745627&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:ansible&amp;rev=1703670337&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:apparent_security&amp;rev=1716841174&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:asterisk&amp;rev=1672135345&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:audi&amp;rev=1733429048&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:backups_and_archives&amp;rev=1656236811&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:boot_multiple_iso_images&amp;rev=1772444088&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:cookies&amp;rev=1706460633&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:csv_to_sql&amp;rev=1690558134&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:deb-build&amp;rev=1690474059&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:deb-installed&amp;rev=1772971782&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:debianinstalls&amp;rev=1616244822&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:debianpreferences&amp;rev=1760360654&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:dell_1250c&amp;rev=1497883002&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:devuan&amp;rev=1691923326&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:devuanubuntu&amp;rev=1497730639&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:drbd&amp;rev=1676714183&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:dvbsky_t982&amp;rev=1637426679&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:ext2lvm&amp;rev=1722429258&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:extundelete&amp;rev=1547552029&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:foreman&amp;rev=1508848918&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:freepbx&amp;rev=1722430180&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:freeswitch&amp;rev=1631209777&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:fritz_box&amp;rev=1497345775&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:frotz&amp;rev=1690224656&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:fusionpbx&amp;rev=1689446304&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:fusionpbxproblems&amp;rev=1689344979&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:galera_cluster&amp;rev=1700388765&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:grafana&amp;rev=1554891988&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:grafanaflash&amp;rev=1559486377&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:greathosting&amp;rev=1499157702&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:grubrescue&amp;rev=1485993261&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:haltreboot&amp;rev=1675807078&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:homer&amp;rev=1739283429&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:hostnames&amp;rev=1675681326&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:icinga&amp;rev=1673730535&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:icinga2&amp;rev=1690639532&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:inode&amp;rev=1705229336&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:instantvm&amp;rev=1771766644&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:ip_addresses&amp;rev=1642528129&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:iscsi&amp;rev=1641735641&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:kamailio&amp;rev=1629367566&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:kamailio2&amp;rev=1629316142&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:kindle&amp;rev=1711290416&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:legosorter&amp;rev=1578068972&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:localsshcron&amp;rev=1611573157&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:logical_volumes&amp;rev=1653314364&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:lvmgrow&amp;rev=1672052750&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:mismatched_brackets&amp;rev=1659468117&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:netcologne&amp;rev=1732183634&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:nettokom&amp;rev=1617801851&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:nosystemd&amp;rev=1564312521&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:noworlater&amp;rev=1696761510&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:nxtdisplay&amp;rev=1609344322&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:ocfs2&amp;rev=1664355624&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:pacemaker&amp;rev=1641557723&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:packages&amp;rev=1706626335&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:pc_engines_apu_4d4&amp;rev=1676925874&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:pdfcrack&amp;rev=1623794966&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:pocketsphinx&amp;rev=1719658434&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:postgres&amp;rev=1739198055&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:printing_options&amp;rev=1737200346&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:proxysql&amp;rev=1733226488&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:python&amp;rev=1658157009&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:qualcomm_gobi_1000&amp;rev=1683383595&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:raid&amp;rev=1658322081&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryrootiscsi&amp;rev=1537036717&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryrootnfs&amp;rev=1537029804&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryzerow&amp;rev=1537029871&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:reolink_vlc_422&amp;rev=1641291922&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:routing_ipv6&amp;rev=1675158666&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:screenlogin&amp;rev=1591647091&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:shrinkingext&amp;rev=1708874713&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:snmpscan&amp;rev=1773945676&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:sonoffwifi&amp;rev=1528896490&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:sound&amp;rev=1638106818&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:stderr&amp;rev=1712671593&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:systemimager&amp;rev=1496140521&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:taskjuggler&amp;rev=1641558212&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:telegrafana&amp;rev=1673693990&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:tescosim&amp;rev=1675703457&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:tickingnxt&amp;rev=1567676112&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:tolino_epos&amp;rev=1641333085&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:twindb&amp;rev=1600596503&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:unusualcron&amp;rev=1772543435&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:usb3&amp;rev=1690981877&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:usb_device&amp;rev=1635025162&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:usingfreeswitch&amp;rev=1690401359&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:vagrant&amp;rev=1487200317&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:voip&amp;rev=1722432410&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:weirdhosting&amp;rev=1673090240&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:withingsws30&amp;rev=1546612187&amp;do=diff"/>
                <rdf:li rdf:resource="http://retinal.dehy.de/docs/doku.php?id=technotes:zoneminder&amp;rev=1664717950&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="http://retinal.dehy.de/docs/lib/tpl/minimal/images/favicon.ico">
        <title>Welcome to (parts of) my world</title>
        <link>http://retinal.dehy.de/docs/</link>
        <url>http://retinal.dehy.de/docs/lib/tpl/minimal/images/favicon.ico</url>
    </image>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:activity&amp;rev=1496090767&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-05-29T22:46:07+02:00</dc:date>
        <title>technotes:activity</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:activity&amp;rev=1496090767&amp;do=diff</link>
        <description>I use KDE, and I use Konsole.  I often have quite a number (10-20) of tabs open at the same time, and I find it very useful to be able to see if one of the background tabs has some activity in it, so I like the fact that the tab name changes colour when this happens.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:alarmclock&amp;rev=1709965033&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-09T07:17:13+02:00</dc:date>
        <title>technotes:alarmclock</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:alarmclock&amp;rev=1709965033&amp;do=diff</link>
        <description>I've created an alarm clock facility and added it to the dialplan of my Asterisk server, but I use it so seldom that I can never remember how to use it when I want to.

	*  Dial 0 to review all currently-set alarm times
	*  Dial 1-9 alone to cancel (delete) that alarm
	*  Dial 1-9 followed by 0 to disable (without cancelling completely) the alarm
	*  Dial 1-9 followed by 1 to re-enable the alarm
	*  Dial 1-9 followed by HHMM to set the alarm for the specified time (and enable it)</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:alditalk&amp;rev=1577745627&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-30T23:40:27+02:00</dc:date>
        <title>technotes:alditalk</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:alditalk&amp;rev=1577745627&amp;do=diff</link>
        <description>Aldi is a well-known German supermarket (not only in Germany) and they sell SIM cards which operate on the Medion Mobile / E-Plus mobile network.

The Pay-as-you-go rates are pretty cheap (better than NettoKom's, the cards cost (in 2019) €13 with a €10 credit already on them, but you have no idea what the mobile number is until after you buy the card and open the package.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:ansible&amp;rev=1703670337&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-12-27T10:45:37+02:00</dc:date>
        <title>technotes:ansible</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:ansible&amp;rev=1703670337&amp;do=diff</link>
        <description>Ansible is a configuration management system which uses a push service to manage the configuration of remote systems from the ansible server (unlike, for example, puppet, which is a pull service triggered from the client end).  The only requirements on the client (managed) systems are that they:</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:apparent_security&amp;rev=1716841174&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-27T22:19:34+02:00</dc:date>
        <title>technotes:apparent_security</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:apparent_security&amp;rev=1716841174&amp;do=diff</link>
        <description>There is a splendid set of Bash scripts at &lt;https://github.com/ovh/debian-cis&gt; for both assessing and, if you wish, enhancing, the security of your Linux system.

The scripts are specific to Debian-based systems (so, it works for things like Ubuntu and Devuan as well), but it's based on generic Linux security recommendations for PCI-DSS compliance.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:asterisk&amp;rev=1672135345&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-27T11:02:25+02:00</dc:date>
        <title>technotes:asterisk</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:asterisk&amp;rev=1672135345&amp;do=diff</link>
        <description>I've been playing with telephones since I was a small child, and I haven't stopped yet.  These days I get paid for doing it.

Nearly all the telephones I play with now use the SIP protocol, and I've been running a number of Asterisk servers for several years, partly because it enables me to be available on several different numbers (which are 'based' in several different countries) no matter where I am at the time.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:audi&amp;rev=1733429048&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-05T21:04:08+02:00</dc:date>
        <title>technotes:audi</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:audi&amp;rev=1733429048&amp;do=diff</link>
        <description>Audi, in my opinion, makes nice cars, but the designers often seem to make things considerably worse, for no apparent reason, in later models.

I've had a few in my time:

	*  A 1994 A4 saloon
	*  A 2002 A3 hatchback
	*  A 2012 Q3 quattro
	*  A 2022 Q3 automatic (all the others had manual gearboxes)</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:backups_and_archives&amp;rev=1656236811&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-26T11:46:51+02:00</dc:date>
        <title>technotes:backups_and_archives</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:backups_and_archives&amp;rev=1656236811&amp;do=diff</link>
        <description>Do you keep backups of your data?

If not, go and make one now, and then come back and read the rest of this article.

If you do, do you really have backups (plural)?  Are those backups stored on reliable media (eg: a Raid system)?   Are they stored in different geographical locations*?  If you use tape or optical disks for your backups, do you have any real idea how long the data on them will remain readable?</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:boot_multiple_iso_images&amp;rev=1772444088&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-02T10:34:48+02:00</dc:date>
        <title>technotes:boot_multiple_iso_images</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:boot_multiple_iso_images&amp;rev=1772444088&amp;do=diff</link>
        <description>It's been a very long time since you had to use a CD-Rom to install an Operating System from.  These days you can simply copy the ISO image onto a CD-Rom or a USB stick, boot from it, and install the system.

ISO images are either smaller than a CD-Rom (680 Mbytes), for example the current (2026-03-01) Devuan Excalibur net installer image is 594 Mbytes, or at least smaller than a DVD-RW (4.7 Gbytes) for a full (no Internet connection required) installer.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:cookies&amp;rev=1706460633&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-28T17:50:33+02:00</dc:date>
        <title>technotes:cookies</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:cookies&amp;rev=1706460633&amp;do=diff</link>
        <description>Many websites use cookies to validate a user once they have logged in, and then allow further access to the rest of the website beyond the login page.

Sometimes you want to script access to certain pages using tools such as wget, and given that wget can use (and save) cookies, it can be convenient to take cookies from a working browser session, feed them in to wget, and allow the script to do its job without having to work out how to get it to log in for itself (although this can also be an int…</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:csv_to_sql&amp;rev=1690558134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-28T17:28:54+02:00</dc:date>
        <title>technotes:csv_to_sql</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:csv_to_sql&amp;rev=1690558134&amp;do=diff</link>
        <description>Plenty of data is available in CSV format, and many people's immediate way of dealing with this is to import it into a spreadsheet (possibly because it's the only tool they know of when they're dealing with anything other than paragraphs of text).

Quite often, though, the data itself is far better handled in a database, so getting the CSV file into SQL is a good starting point.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:deb-build&amp;rev=1690474059&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-27T18:07:39+02:00</dc:date>
        <title>technotes:deb-build</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:deb-build&amp;rev=1690474059&amp;do=diff</link>
        <description>This is nothing new; there are plenty of notes out on the Internet about how to build Debian packages from source.

This page is just brief notes on what you need to have installed before it will work.

They are based on Devuan Beowulf 3 (ie: Debian Buster 10).</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:deb-installed&amp;rev=1772971782&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-08T13:09:42+02:00</dc:date>
        <title>technotes:deb-installed</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:deb-installed&amp;rev=1772971782&amp;do=diff</link>
        <description>Finding out which packages are installed on a machine which is currently running is easy.  Any of the following commands will tell you:

# dpkg-query -l
# apt list --installed
# aptitude search ~i

Sometimes, however, you have a (pretty complete, I hope) backup of a machine which is no longer running, and you want to find out which packages were installed on it, but it's not a simple matter (or you just don't want to bother) to restore the backup somewhere and restart it.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:debianinstalls&amp;rev=1616244822&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-20T13:53:42+02:00</dc:date>
        <title>technotes:debianinstalls</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:debianinstalls&amp;rev=1616244822&amp;do=diff</link>
        <description>If you're going to be a good system administrator, you need to have the tools to help you do it well.

Here are some recommendations for things which don't get installed by default under Debian / Devuan (I have no idea whether any other distro provides them), but are a good idea to help find out what's going on when a system's not behaving itself.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:debianpreferences&amp;rev=1760360654&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-10-13T15:04:14+02:00</dc:date>
        <title>technotes:debianpreferences</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:debianpreferences&amp;rev=1760360654&amp;do=diff</link>
        <description>Immediately after installing a Debian / Devuan server, there are several things I like to do in order to make it more usable and/or familiar.

Feel free to pick and choose which ones of these you like and which you prefer to live without.

(Depending on how your system got installed (eg: maybe as an image from a virtual hosting provider), and which release version you are starting from, some of these may already be done for you, and/or may not be necessary, but none will cause any harm.)</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:dell_1250c&amp;rev=1497883002&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-19T16:36:42+02:00</dc:date>
        <title>technotes:dell_1250c</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:dell_1250c&amp;rev=1497883002&amp;do=diff</link>
        <description>This printer was on sale in my local supermarket for what seemed like a good price, so I checked whether it was supported under Linux, found out it was, and bought one.

Once I got it home and plugged it in, I found out what Dell means by &quot;supported under Linux&quot;.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:devuan&amp;rev=1691923326&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-13T12:42:06+02:00</dc:date>
        <title>technotes:devuan</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:devuan&amp;rev=1691923326&amp;do=diff</link>
        <description>Devuan is a systemd-free fork of the Debian Linux distribution.

Keep the first two letters of &quot;Debian&quot;; move the next two letters one place left on the keyboard, then keep the last two letters as they are again.  Debian -&gt; Devuan :)

(If you're using a Dvorak keyboard you'll end up with &quot;Dexuan&quot;, but I think that's close enough that people will know what you mean, and besides, if you're using a Dvorak keyboard, people are used to you being a bit odd.)</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:devuanubuntu&amp;rev=1497730639&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-17T22:17:19+02:00</dc:date>
        <title>technotes:devuanubuntu</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:devuanubuntu&amp;rev=1497730639&amp;do=diff</link>
        <description>Someone called Pali got as frustrated with KMail 2 and Akonadi as I have, and decided the solution was to take the most recent version of KMail which did not use Akonadi and rebuild it to replace the version which does.

KDEpim-NoAkonadi is the result.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:drbd&amp;rev=1676714183&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-18T10:56:23+02:00</dc:date>
        <title>technotes:drbd</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:drbd&amp;rev=1676714183&amp;do=diff</link>
        <description>DRBD is like Raid1 (mirrored drives) but on separate computers.

You could do this by using something like iSCSI and standard mdadm, but DRBD is designed for the job so it's better to use that.

Depending on the age of the Linux system you set it up on, you should find that you get either DRBD 8.4 or 9.x.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:dvbsky_t982&amp;rev=1637426679&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-20T17:44:39+02:00</dc:date>
        <title>technotes:dvbsky_t982</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:dvbsky_t982&amp;rev=1637426679&amp;do=diff</link>
        <description>I recently acquired a DVBSky T982 DVB-T / DVB-C decoder card (it was already fitted in a machine I bought second-hard for other reasons).  It's based on a Conexant CX23885 decoder and a Silicon Labs Si2168 demodulator.

I'm trying to get it working under Linux (Debian 10 Buster / Devuan 3 Beowulf kernel 4.19.0-10) and this is a bit of a story about how it's not obvious (even though it's actually easy) to do this.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:ext2lvm&amp;rev=1722429258&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-31T14:34:18+02:00</dc:date>
        <title>technotes:ext2lvm</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:ext2lvm&amp;rev=1722429258&amp;do=diff</link>
        <description>IMPORTANT

Background

Suppose you have a machine with a hard disk which has a single partition on it for the entire root file system of the server (maybe it has a second partition for swap, but the entire space on the disk is allocated) and you want to convert the machine to use Logical Volume Management instead.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:extundelete&amp;rev=1547552029&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-15T12:33:49+02:00</dc:date>
        <title>technotes:extundelete</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:extundelete&amp;rev=1547552029&amp;do=diff</link>
        <description>For many years, I've believed, and have been telling other people, that &quot;Linux does not have an undelete command&quot;.

Now, I know that's a pretty ambiguous statement, because it says nothing about which file system you're using, but I generally assume that people either:</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:foreman&amp;rev=1508848918&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-10-24T14:41:58+02:00</dc:date>
        <title>technotes:foreman</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:foreman&amp;rev=1508848918&amp;do=diff</link>
        <description>Foreman is a front-end management system for Puppet, which in turn is a configuration management system for a wide variety of applications and operating systems.

&lt;https://theforeman.org/manuals/1.15/index.html&gt; contains installation instructions for Foreman, however there are few quirks which it's useful to know about before just following these and hoping they will work as advertised.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:freepbx&amp;rev=1722430180&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-31T14:49:40+02:00</dc:date>
        <title>technotes:freepbx</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:freepbx&amp;rev=1722430180&amp;do=diff</link>
        <description>FreePBX is an open source browser-based graphical front-end to an Asterisk telephony system.

It's provided as a full Linux distribution - you do not start from a machine with an Operating System installed, and then install the &quot;FreePBX application&quot;; instead you start with a blank machine and install the &quot;FreePBX distribution&quot;.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:freeswitch&amp;rev=1631209777&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-09T19:49:37+02:00</dc:date>
        <title>technotes:freeswitch</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:freeswitch&amp;rev=1631209777&amp;do=diff</link>
        <description>FreeSwitch is a PBX system similar to Asterisk, and can be installed using the package manager under CentOS, RHEL, Fedora, Debian and Ubuntu.

However, version 1.10 has a dependency on systemd, which if you are running Devuan, you won't have (and won't want) on your machine.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:fritz_box&amp;rev=1497345775&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-06-13T11:22:55+02:00</dc:date>
        <title>technotes:fritz_box</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:fritz_box&amp;rev=1497345775&amp;do=diff</link>
        <description>I have a Fritz!Box 6360 cable modem, and I believe this is the most common brand of cable or DSL modem supplied by German connectivity providers.

For some years now, our connectivity provider (which is also our telephony and television provider) has stopped providing a real telephone connection, and instead doing SIP between their systems and my cable modem, with analogue and ISDN sockets on the cable modem for plugging telephones into.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:frotz&amp;rev=1690224656&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-24T20:50:56+02:00</dc:date>
        <title>technotes:frotz</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:frotz&amp;rev=1690224656&amp;do=diff</link>
        <description>Frotz is a Z-machine adventure game (&quot;interactive fiction&quot;) interpreter, allowing you to play almost any Z-code game (such as nearly everything from Infocom, for example).

I wanted to start with the code which can interpret game files and turn it into something else, so the first step was obtaining the source code and compiling it normally, before starting to fiddle about with it.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:fusionpbx&amp;rev=1689446304&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-15T20:38:24+02:00</dc:date>
        <title>technotes:fusionpbx</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:fusionpbx&amp;rev=1689446304&amp;do=diff</link>
        <description>FusionPBX is a multi-tenant PBX system based on FreeSwitch.

I thought it might be interesting to look at the dialplan source code to find out how someone had built a working system using FreeSwitch (whose documentation is poor, to put it mildly).

Note: The following instructions are not yet complete - they do not yet result in a working FusionPBX installation.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:fusionpbxproblems&amp;rev=1689344979&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-14T16:29:39+02:00</dc:date>
        <title>technotes:fusionpbxproblems</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:fusionpbxproblems&amp;rev=1689344979&amp;do=diff</link>
        <description>If you follow the instructions for downloading and installing FusionPBX on Debian, but on a Devuan system, it will fail to work without telling you.

It looks like it's worked, because you get to see the FreeSwitch CLI &quot;logo&quot; shortly before the end of the FusionPBX installation.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:galera_cluster&amp;rev=1700388765&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-19T11:12:45+02:00</dc:date>
        <title>technotes:galera_cluster</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:galera_cluster&amp;rev=1700388765&amp;do=diff</link>
        <description>Galera is very nice multi-master MySQL / MariaDB replication system, with the network communications based on rsync.  If you install the &quot;MySQL&quot; package under Debian or Devuan, you will actually get MariaDB instead, with Galera as well. Galera won't do anything until / unless you configure it, but if you do (and it's really not difficult - certainly far easier to manage than &quot;standard&quot; MySQL Master-Slave replication), it gives you a write-anywhere / read-anywhere dynamically-sizeable database se…</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:grafana&amp;rev=1554891988&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-10T12:26:28+02:00</dc:date>
        <title>technotes:grafana</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:grafana&amp;rev=1554891988&amp;do=diff</link>
        <description>This example comes to you courtesy of Grafana, which regards itself as &quot;Trusted and loved by the community&quot;.

Well, there's one particular part that this member of community thinks is absolutely awful.

	*  Install Grafana (in my case, on Debian stable, &quot;Stretch&quot;)
	*  Start to configure a data source (in my case, InfluxDB - nothing exotic)
	*  Note that the URL field is already filled in with &lt;http://localhost:8086&gt; (as that's the most likely setting for InfluxDB)
	*  Add the name of your databa…</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:grafanaflash&amp;rev=1559486377&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-06-02T16:39:37+02:00</dc:date>
        <title>technotes:grafanaflash</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:grafanaflash&amp;rev=1559486377&amp;do=diff</link>
        <description>Every time a value (whether it's a singlestat number, or a graph, or indeed any other element you can put onto a dashboard) get updated in Grafana, there's a little circular symbol which flashes on and then off again in the top right corner of the value box.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:greathosting&amp;rev=1499157702&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-07-04T10:41:42+02:00</dc:date>
        <title>technotes:greathosting</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:greathosting&amp;rev=1499157702&amp;do=diff</link>
        <description>As well as a couple of virtual hosts at Strato.de, I manage quite a few for customers, hosted at &lt;http://Bytemark.co.uk&gt;

The Bytemark self-service virtual hosting management portal is the best example I've yet seen of how to give customers complete control and flexibility about their virtual hosts, whilst almost eliminating any personnel involvement from the provider.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:grubrescue&amp;rev=1485993261&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-02T00:54:21+02:00</dc:date>
        <title>technotes:grubrescue</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:grubrescue&amp;rev=1485993261&amp;do=diff</link>
        <description>If the GRUB (version 1) boot loader can't find the right disks or partitions, there's not much it can do, so it drops you into a very primitive shell with the prompt:
grub rescue&gt;
...which has no help command...

To try and get the machine going, first of all find out what disks and partitions you have to play with; if you know what partition the machine is supposed to boot from, so much the better.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:haltreboot&amp;rev=1675807078&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-07T22:57:58+02:00</dc:date>
        <title>technotes:haltreboot</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:haltreboot&amp;rev=1675807078&amp;do=diff</link>
        <description>This sounds like a simple task, doesn't it?

	*  halt
	*  reboot
	*  shutdown -h now
	*  shutdown -r now
	*  Ctrl-Alt-Del
	*  Press reset
	*  Power off, then power on

However, sometimes:

	*  halt doesn't work, and just hangs
	*  reboot ditto
	*  shutdown, the same
	*  Ctrl-Alt-Del is not option because there is no keyboard
	*  Ctrl-Alt-Del is not an option because you're not in the same place as the computer</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:homer&amp;rev=1739283429&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-11T15:17:09+02:00</dc:date>
        <title>technotes:homer</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:homer&amp;rev=1739283429&amp;do=diff</link>
        <description>Homer is a SIP packet capture and analysis system with very poor documentation.  It's one of the very few open-source applications I've come across which has been around for over 10 years and does not have a wikipedia page.

&lt;https://github.com/sipcapture/homer/wiki/Using-Homer-7&gt; is probably the best example I have come across anywhere of a &quot;documentation&quot; page which is absolutely useless.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:hostnames&amp;rev=1675681326&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-06T12:02:06+02:00</dc:date>
        <title>technotes:hostnames</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:hostnames&amp;rev=1675681326&amp;do=diff</link>
        <description>Some people name their machines according to what they do, for example:

	*  web
	*  mail
	*  dns
	*  backup

I dislike this practice because it means you can't use a machine for anything other than one job (or if you do, the name loses its significance).</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:icinga&amp;rev=1673730535&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-14T22:08:55+02:00</dc:date>
        <title>technotes:icinga</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:icinga&amp;rev=1673730535&amp;do=diff</link>
        <description>Update 2023: The notes below were last updated in 2017, for what is now quite an old version of Icinga, therefore I have created a new page which discusses setting up Icinga 2.13.6 in a Master-Satellite-Agent configuration.

I like Icinga as a monitoring system.  It's a spinoff from the Nagios project, and does (in my opinion) a really good job where you want a hierarchical monitoring system for multiple customers (or maybe multiple departments) who shouldn't see the monitoring for each other's …</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:icinga2&amp;rev=1690639532&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-29T16:05:32+02:00</dc:date>
        <title>technotes:icinga2</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:icinga2&amp;rev=1690639532&amp;do=diff</link>
        <description>Work in progress 2023-01-16

These notes relate to setting up Icinga 2.13.6 (current as of 2023-01-15) and replace the previous notes I wrote in 2017 or earlier.

They are based on the official and pretty awful Icinga2 documentation at:

	*  &lt;https://icinga.com/docs/icinga-2/latest/doc/02-installation/&gt;
	*  &lt;https://icinga.com/docs/icinga-2/latest/doc/02-installation/01-Debian/&gt;
	*  &lt;https://icinga.com/docs/icinga-2/latest/doc/06-distributed-monitoring/#distributed-monitoring&gt;</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:inode&amp;rev=1705229336&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-14T11:48:56+02:00</dc:date>
        <title>technotes:inode</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:inode&amp;rev=1705229336&amp;do=diff</link>
        <description>Sometimes you have a file which is held open by a running process (probably being written to) but the filename itself has been deleted.  The file contents exist as long as the process is running, but when it terminates, the file will disappear and become pretty much unrecoverable.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:instantvm&amp;rev=1771766644&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-22T14:24:04+02:00</dc:date>
        <title>technotes:instantvm</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:instantvm&amp;rev=1771766644&amp;do=diff</link>
        <description>I run quite a few Virtual Machines hosted on my own hardware (generally multi-core AMD servers with 32 Gbytes RAM), running KVM / QEMU.

Many years ago a colleague and I created some scripts to make the creation of a new VM easier than it normally is (without using a GUI), but this still leaves you with a blank VM pointing at some installation CD image, which you then need to use to create the working VM.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:ip_addresses&amp;rev=1642528129&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-18T18:48:49+02:00</dc:date>
        <title>technotes:ip_addresses</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:ip_addresses&amp;rev=1642528129&amp;do=diff</link>
        <description>Everybody knows about RFC 1918.

It sets aside three IPv4 network ranges for &quot;private use&quot;.

That means you can use these ranges on your own networks, for internal (non-public) use, and do whatever you like with them (subnet them, allocate them to hostnames in DNS, route them over VPNs, whatever), however you cannot route them over the public Internet (except via some sort of tunnel which hides these addresses from the Internet's routers).</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:iscsi&amp;rev=1641735641&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-09T14:40:41+02:00</dc:date>
        <title>technotes:iscsi</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:iscsi&amp;rev=1641735641&amp;do=diff</link>
        <description>These instructions are written with assistance from &lt;https://wiki.debian.org/SAN/iSCSI&gt;

iSCSI

iSCSI is a network transport mechanism for exporting block devices between machines.

The block devices themselves are completely standard (there's no &quot;iSCSI header&quot; or similar added to the device itself), which means you can share:</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:kamailio&amp;rev=1629367566&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-19T12:06:06+02:00</dc:date>
        <title>technotes:kamailio</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:kamailio&amp;rev=1629367566&amp;do=diff</link>
        <description>Kamailio is an Open Source SIP server, designed for high performance and scalability.

I wanted to use it in combination with Asterisk (which is not an unusual arrangement - Asterisk is god for defining dial plans, and Kamailio is good as a registration server, so a combination uses the strengths of both).</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:kamailio2&amp;rev=1629316142&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-08-18T21:49:02+02:00</dc:date>
        <title>technotes:kamailio2</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:kamailio2&amp;rev=1629316142&amp;do=diff</link>
        <description>Kamailio is an Open Source SIP server, designed for high performance and scalability.

I wanted to use it in combination with Asterisk (which is not an unusual arrangement - Asterisk is good for defining dial plans, and Kamailio is good as a registration server, so a combination uses the strengths of both).</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:kindle&amp;rev=1711290416&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-03-24T15:26:56+02:00</dc:date>
        <title>technotes:kindle</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:kindle&amp;rev=1711290416&amp;do=diff</link>
        <description>I don't expect the information on this page to be easily comprehensible to anyone else; it is more of an aide-mémoire for my own use.

	*  &lt;https://www.python.org/downloads/release/python-2717/&gt;
	*  &lt;http://www.voidspace.org.uk/python/modules.shtml&gt;</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:legosorter&amp;rev=1578068972&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-03T17:29:32+02:00</dc:date>
        <title>technotes:legosorter</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:legosorter&amp;rev=1578068972&amp;do=diff</link>
        <description>Note: this article describes a machine which is a work in progress.  It is not complete.  It currently does some interesting things, but it is not a fully-working, finished system.  Unlike most of my other Technical Notes, this write-up is not a description of how to end up with a functional replica of my system at the end.  However, I think you'll find it interesting all the same.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:localsshcron&amp;rev=1611573157&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-01-25T12:12:37+02:00</dc:date>
        <title>technotes:localsshcron</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:localsshcron&amp;rev=1611573157&amp;do=diff</link>
        <description>I often develop bash scripts which I test by running them in my current terminal, and then when they're working properly (which generally just means that I haven't yet tested the situations where they break), I want to run them as a cron job.

During development (and then later, once I find a situation where the script doesn't work properly), I want to have a reasonable amount of debugging output, but once the script is running as a cron job, I want it to be more or less silent.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:logical_volumes&amp;rev=1653314364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-05-23T15:59:24+02:00</dc:date>
        <title>technotes:logical_volumes</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:logical_volumes&amp;rev=1653314364&amp;do=diff</link>
        <description>LVM is a wonderful feature of Linux which I use all over the place.

It has always struck me as somewhat odd, however, that there is no command to copy or move a Logical Volume from one Volume Group to another.

Therefore I came up with a Bash script to do the job for me, and whilst I was at it, I made it work between servers as well.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:lvmgrow&amp;rev=1672052750&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-12-26T12:05:50+02:00</dc:date>
        <title>technotes:lvmgrow</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:lvmgrow&amp;rev=1672052750&amp;do=diff</link>
        <description>We all know that the IT equivalent of Parkinson's law is that data expands to fill slightly more than the space available.

I like using Logical Volume Management for data partitions, in order to make efficient use of disk space, with convenient facilities to add another disk, migrate partitions, and adjust the size of partitions as data fills them.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:mismatched_brackets&amp;rev=1659468117&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-02T21:21:57+02:00</dc:date>
        <title>technotes:mismatched_brackets</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:mismatched_brackets&amp;rev=1659468117&amp;do=diff</link>
        <description>This is a simple bash script (suitable as a one-liner) for reading a fiel of source code and checking each line to ensure it has the same number of opening brackets as closing ones.

I found it useful for checking Asterisk dialplans, which can have horrible combinations of (), {} and [].</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:netcologne&amp;rev=1732183634&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-21T11:07:14+02:00</dc:date>
        <title>technotes:netcologne</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:netcologne&amp;rev=1732183634&amp;do=diff</link>
        <description>NetCologne is an Internet connectivity, telephony and television services provider based, not surprisingly, in Cologne, Germany.

For business customers they offer two types of SIP connection:

	*  based on a dedicated network link to NetCologne with fixed IP addresses at each end
	*  over the Internet from any IP address you want to connect from</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:nettokom&amp;rev=1617801851&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-04-07T15:24:11+02:00</dc:date>
        <title>technotes:nettokom</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:nettokom&amp;rev=1617801851&amp;do=diff</link>
        <description>Netto is a cheap German supermarket which sells SIM cards operating on the O2 mobile network.

The Pay-as-you-go rates are not as cheap as Aldi's, the cards cost (in 2019) either €9.99 with a €10 credit already on them or €5 with €5 credit, but you can select your preferred mobile number from whatever range they have in the shop because the numbers are printed on the outside of the packaging.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:nosystemd&amp;rev=1564312521&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-07-28T13:15:21+02:00</dc:date>
        <title>technotes:nosystemd</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:nosystemd&amp;rev=1564312521&amp;do=diff</link>
        <description>&lt;http://without-systemd.org/wiki/index.php/How_to_remove_systemd_from_a_Debian_jessie/sid_installation&gt; was an excellent resource, sadly now no more.

Here are my own notes:

	*  Create /etc/apt/preferences.d/nosystemd

Package: systemd
Pin: release *
Pin-Priority: -1

Package: *systemd*
Pin: release *
Pin-Priority: -1</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:noworlater&amp;rev=1696761510&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-08T12:38:30+02:00</dc:date>
        <title>technotes:noworlater</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:noworlater&amp;rev=1696761510&amp;do=diff</link>
        <description>It's sometimes useful to write a script which can do something, but you then want to run it at a pre-determined time in the future.  My example here is recording live television using, for example, a DVBSky T982 PCIe card.

A command to record from such a card can be pretty trivial:</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:nxtdisplay&amp;rev=1609344322&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-30T17:05:22+02:00</dc:date>
        <title>technotes:nxtdisplay</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:nxtdisplay&amp;rev=1609344322&amp;do=diff</link>
        <description>The Lego NXT brick has a common fault with its display screen - it goes blank and stops working altogether, or it develops stripes and/or flickering, where you can sometimes make out what's supposed to be being display, and sometimes you can't.

The brick itself still works fine - you can program it over USB or Bluetooth, you can turn it on (and provided you can remember where you are in the menu system, you can turn it off again), and it will still run programs (which is easiest if you talk to …</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:ocfs2&amp;rev=1664355624&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-09-28T11:00:24+02:00</dc:date>
        <title>technotes:ocfs2</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:ocfs2&amp;rev=1664355624&amp;do=diff</link>
        <description>The Oracle Clustered File System is a file system which understand being mounted on, and written to by, more than one computer at the same time.  It's a bit like NFS, except it's local to a machine rather than mounted over a network.

I use it with DRBD to get a network-replicated file system mounted on two machines at the same time, which either can read from and write to.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:pacemaker&amp;rev=1641557723&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-07T13:15:23+02:00</dc:date>
        <title>technotes:pacemaker</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:pacemaker&amp;rev=1641557723&amp;do=diff</link>
        <description>Condensed summary - if you need more detail, follow the links:

	*  Corosync is a cluster communication / co-ordination service
	*  Pacemaker is a cluster resource management system
	*  Booth is a cluster ticket manager

Corosync joins several machines together in a cluster, without specifying what they're supposed to do.  Pacemaker specifies what they're supposed to do - what applications and services are supposed to be running where.  Booth is a layer on top which allows multiple clusters to m…</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:packages&amp;rev=1706626335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-30T15:52:15+02:00</dc:date>
        <title>technotes:packages</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:packages&amp;rev=1706626335&amp;do=diff</link>
        <description>Sometimes you want to set up a new server and have the same packages installed on it as are installed on an existing one.

There are several tedious ways of doing this, and also a few pretty simple ones.  Here are two of the simple ones.

Firstly

Get a list of the packages which are installed on the existing machine.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:pc_engines_apu_4d4&amp;rev=1676925874&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-20T21:44:34+02:00</dc:date>
        <title>technotes:pc_engines_apu_4d4</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:pc_engines_apu_4d4&amp;rev=1676925874&amp;do=diff</link>
        <description>I recently decided to replace a couple of Banana Pi R1 routers with something rather more standard (the R1 has a pretty strange networking design, with four network ports based on a layer 2 switch instead of multiple actual network interfaces) and also maintainable (the Bananian Linux distro which I installed on these things when I started using them has not been updated for years, and it's far from straightforward to install a standard Linux distro on them, mainly due to the strange hardware de…</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:pdfcrack&amp;rev=1623794966&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-06-16T00:09:26+02:00</dc:date>
        <title>technotes:pdfcrack</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:pdfcrack&amp;rev=1623794966&amp;do=diff</link>
        <description>PDFs can be encrypted, so that you need a password to be able to open them (or, sometimes, to be able to print them, or do other things with them).

pdfcrack is a password-cracker for PDFs, enabling you to try both brute-force and dictionary attacks on encrypted PDF files for which you don't have the password.  It's also available as a Debian package.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:pocketsphinx&amp;rev=1719658434&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-06-29T12:53:54+02:00</dc:date>
        <title>technotes:pocketsphinx</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:pocketsphinx&amp;rev=1719658434&amp;do=diff</link>
        <description>Sphinx is a pretty old (early 2000s, latest stable release 2015) Speech-to-Text system developed at Carnegie-Mellon University.

Some websites suggest that the project is now abandoned.  Others simply state that &quot;active development has largely ceased and it has become very, very far from the state of the art&quot;.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:postgres&amp;rev=1739198055&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-02-10T15:34:15+02:00</dc:date>
        <title>technotes:postgres</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:postgres&amp;rev=1739198055&amp;do=diff</link>
        <description>I'm pretty familiar with MySQL / MariaDB, so dealing with applications like FusionPBX which use Postgres by default as their backend DB comes as a bit of a challenge.

Fortunately I'm not the only person to wonder &quot;I know how to do this, but how do I do it in Postgres?&quot;</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:printing_options&amp;rev=1737200346&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-18T12:39:06+02:00</dc:date>
        <title>technotes:printing_options</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:printing_options&amp;rev=1737200346&amp;do=diff</link>
        <description>Any command output can be sent to the default printer simply by piping it to lp or lpr.

This will almost certainly result in very small margins (test close to the edges of the paper) and 10 characters per inch, 6 lines per inch, in portrait mode.

Sometimes you want to change these, which you can do by supplying options to the lp command, for example</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:proxysql&amp;rev=1733226488&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-12-03T12:48:08+02:00</dc:date>
        <title>technotes:proxysql</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:proxysql&amp;rev=1733226488&amp;do=diff</link>
        <description>ProxySQL is an application which allows you to distribute SQL queries across several SQL servers (eg: MySQL, MariaDB and PostgreSQL) which it is assumed are synchronised with each other in some way (which ProxySQL does not do for you), so that you get the same answer no matter which server the queries goes to.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:python&amp;rev=1658157009&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-18T17:10:09+02:00</dc:date>
        <title>technotes:python</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:python&amp;rev=1658157009&amp;do=diff</link>
        <description>I am not, by preference, a Python programmer.

Every time I have to interact with it, I am reminded why.

I can do Perl; I can do PHP; I can do Bash, SQL, C and I used to do Fortran.  I can even cope with whatever the Asterisk Dialplan Configuration language is called, but Python just finds novel ways of making me look stupid.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:qualcomm_gobi_1000&amp;rev=1683383595&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-06T16:33:15+02:00</dc:date>
        <title>technotes:qualcomm_gobi_1000</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:qualcomm_gobi_1000&amp;rev=1683383595&amp;do=diff</link>
        <description>This device is available under a variety of Vendor names and models - one of the most common appears to be HP / Lenovo UN2400.

I bought a couple on eBay as &quot;HP / Dell / Qualcomm T77Z039.04 UMTS&quot; cards for €5 each.  If I could get them working, nice; if not, it's only €5.  I bought two simply because I have two APU 4D4s and I like to keep things consistent.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:raid&amp;rev=1658322081&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-20T15:01:21+02:00</dc:date>
        <title>technotes:raid</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:raid&amp;rev=1658322081&amp;do=diff</link>
        <description>This is about the Linux md software Raid system.  If you have a hardware Raid controller, ask the vendor how to find out what it's doing.

Software Raid

I've been using Linux software Raid for many many years - I think it's a splendid feature to have as default in every kernel, and in fact there are few machines which I use without some sort of Raid involved.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryrootiscsi&amp;rev=1537036717&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-15T20:38:37+02:00</dc:date>
        <title>technotes:raspberryrootiscsi</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryrootiscsi&amp;rev=1537036717&amp;do=diff</link>
        <description>I like to run my Raspberries with the root FS mounted remotely (eg: over NFS, and this is easy to do when the machine has an ethernet socket and a wired connection (since the standard bootloader understands NFS).

Doing the same thing over wireless iSCSI, however, is not so simple, so here's a guide to what you need to do.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryrootnfs&amp;rev=1537029804&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-15T18:43:24+02:00</dc:date>
        <title>technotes:raspberryrootnfs</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryrootnfs&amp;rev=1537029804&amp;do=diff</link>
        <description>I like to run my Raspberries with the root FS mounted remotely (eg: over NFS, and this is easy to do when the machine has an ethernet socket and a wired connection.

Doing the same thing over wireless, however, is not so simple, so here's a guide to what you need to do.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryzerow&amp;rev=1537029871&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-15T18:44:31+02:00</dc:date>
        <title>technotes:raspberryzerow</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:raspberryzerow&amp;rev=1537029871&amp;do=diff</link>
        <description>The Raspberry Pi was a remarkable computer when it was first introduced, and the people behind it have continued to innovate, with one of the most recent, smallest and cheapest being the Raspberry Pi Zero W.

It's not quite as cheap as the Raspberry Pi Zero, but since that device lacks any native networking capabilities (either cabled or wireless), its practical applications are severely limited.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:reolink_vlc_422&amp;rev=1641291922&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-04T11:25:22+02:00</dc:date>
        <title>technotes:reolink_vlc_422</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:reolink_vlc_422&amp;rev=1641291922&amp;do=diff</link>
        <description>Reolink

I do not recommend using Reolink cameras.  The firmware seems buggy (see links below), and the support is unhelpful (in my experience).

VLC 422

This is a PoE IP dome camera, which I initially thought was a very nice replacement for my aged analogue camera connected to a video-capture card.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:routing_ipv6&amp;rev=1675158666&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-31T10:51:06+02:00</dc:date>
        <title>technotes:routing_ipv6</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:routing_ipv6&amp;rev=1675158666&amp;do=diff</link>
        <description>This is still a work in progress, since I have only recently acquired a router which runs a new enough version of Linux to support this, and have not yet put it in place of the old one (which would acquire an IPv6 address of its own, but could not support radvd to route network ranges on to my internal networks.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:screenlogin&amp;rev=1591647091&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-06-08T22:11:31+02:00</dc:date>
        <title>technotes:screenlogin</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:screenlogin&amp;rev=1591647091&amp;do=diff</link>
        <description>Screen is a really nice facility for being able to leave a session running while you log out of a machine, and then be able to log back in again later and see what's happened in your absence, with any applications etc still running inside screen.

It's also a great method for running a shared login session, where two (or more) people can log in to a machine, and then share a session where anyone can type commands, and everyone sees the output.  This is really useful for running tech support sess…</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:shrinkingext&amp;rev=1708874713&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-25T16:25:13+02:00</dc:date>
        <title>technotes:shrinkingext</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:shrinkingext&amp;rev=1708874713&amp;do=diff</link>
        <description>If you use LVM, you know that you can adjust the size of partitions completely independently of the actual underlying hardware partitions or devices which the data is stored on.

Growing partitions is easy - make the LV bigger, run e2fsck on the file system, and then use resize2fs to make use of the new space.  You don't even need to take it offline during the process - the file system remains continuously usable.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:snmpscan&amp;rev=1773945676&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-19T19:41:16+02:00</dc:date>
        <title>technotes:snmpscan</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:snmpscan&amp;rev=1773945676&amp;do=diff</link>
        <description>This may be a re-invention of someone else's wheel, but I enjoyed doing it.

It's a bash script which uses nmap and snmpwalk to scan all your locally-connected networks (which means subnets connected to an interface of the machine you run the script on, so this should ideally be run on your router / firewall) and (a) finds SNMP-managed switches, and then (b) interrogates them to find out what's plugged in to which port.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:sonoffwifi&amp;rev=1528896490&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-13T15:28:10+02:00</dc:date>
        <title>technotes:sonoffwifi</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:sonoffwifi&amp;rev=1528896490&amp;do=diff</link>
        <description>The Itead Sonoff POW mains power control / measurement devices are a very nice idea, but many people (myself included) don't like the idea of control of the equipment in their own house being:

	*  managed by some oriental cloud service provider
	*  dependent on Internet connectivity to the house</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:sound&amp;rev=1638106818&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-28T14:40:18+02:00</dc:date>
        <title>technotes:sound</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:sound&amp;rev=1638106818&amp;do=diff</link>
        <description>Note: I suspect this page is not of very much use to anyone else, but I just want somewhere I know I can refer back to whenever I need to do this again.

I am using a Fujitsu Esprimo P5731 running a fresh installation (ie: not upgraded from anything else) of Devuan Beowulf.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:stderr&amp;rev=1712671593&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-04-09T16:06:33+02:00</dc:date>
        <title>technotes:stderr</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:stderr&amp;rev=1712671593&amp;do=diff</link>
        <description>Getting the (standard) output of a command into a variable (and leaving any errors to go to the display) is simple:

var=`command`

or, as some people prefer:

var=$(command)

In either case echo $var will then show you what was sent to STDERR.

However sometimes you want to get the &quot;error&quot; messages into the variable and leave the normal output displayed on the screen.  I say &quot;error&quot; in quotation marks because utilities like time show their own output on standard error STDERR whilst leaving the …</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:systemimager&amp;rev=1496140521&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-05-30T12:35:21+02:00</dc:date>
        <title>technotes:systemimager</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:systemimager&amp;rev=1496140521&amp;do=diff</link>
        <description>SystemImager is supposed to be a utility for creating an image from an installed, configured, working, running system, and using it to create more systems identical to the first, with important exceptions such as IP address, hostname, etc.

Everything below was written on the assumption that it works.  It doesn't.  It's shit.  Don't waste your time with it.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:taskjuggler&amp;rev=1641558212&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-07T13:23:32+02:00</dc:date>
        <title>technotes:taskjuggler</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:taskjuggler&amp;rev=1641558212&amp;do=diff</link>
        <description>Taskjuggler is a project management tool for creating Gantt charts and project task summaries, using plain text files as input.  It has no graphical interface such as you might be used to with MS Project, for example.

I used Taskjuggler many years ago for managing either my own parts of projects, or overall management involving several people, however it's some time since I've done that, so I'm writing up notes on installing and using it now that I have a reason to start again.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:telegrafana&amp;rev=1673693990&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-14T11:59:50+02:00</dc:date>
        <title>technotes:telegrafana</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:telegrafana&amp;rev=1673693990&amp;do=diff</link>
        <description>This is quite a common setup - Telegraf understands an enormous number of data input formats, and can output to a large number as well.  InfluxDB is a good choice for time series data (ie: values which are recorded regularly, or at specific points in time, rather than being indexed against some other data value, which is better done with a standard RDBMS).</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:tescosim&amp;rev=1675703457&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-02-06T18:10:57+02:00</dc:date>
        <title>technotes:tescosim</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:tescosim&amp;rev=1675703457&amp;do=diff</link>
        <description>If, like me, you use a Tesco pay-as-you-go SIM card in a USB dongle, a mini PCIe card (for example, in an APU 4D4 router), or a PCMCIA card (for example, in a Linksys WRT54 access point / router), you might wonder how to top it up with more credit without taking the SIM card out and putting it into a phone.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:tickingnxt&amp;rev=1567676112&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-09-05T11:35:12+02:00</dc:date>
        <title>technotes:tickingnxt</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:tickingnxt&amp;rev=1567676112&amp;do=diff</link>
        <description>If you have a Lego Mindstorms NXT brick which has started to tick quietly, and does absolutely nothing else, then it has gone into &quot;firmware update&quot; mode.

Strangely, there is absolutely nothing you can do to rescue it from this mode, other than updating its firmware.  Once in this mode, there is no way to cancel it on the brick itself.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:tolino_epos&amp;rev=1641333085&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-04T22:51:25+02:00</dc:date>
        <title>technotes:tolino_epos</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:tolino_epos&amp;rev=1641333085&amp;do=diff</link>
        <description>Disclaimer: This article was not written by me (and I certainly didn't do any of the clever technical stuff to find out how to do it, or to modify the boot image) but is based on my translation of a German website.  It is far from a direct translation.  Aside from any minor linguistic adjustments, I've changed the Windows-centric details to Linux ones, simply because I have no interest in the irony of hacking an Android device using Windows.  Note that in nearly all cases, the use of the persona…</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:twindb&amp;rev=1600596503&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-09-20T12:08:23+02:00</dc:date>
        <title>technotes:twindb</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:twindb&amp;rev=1600596503&amp;do=diff</link>
        <description>MySQL is a popular database system for many purposes.

The default storage engine is InnoDB, and the default configuration has one really annoying &quot;feature&quot;: the system creates one binary data file, usually called /var/lib/mysql/ibdata1, containing the data for all the databases you've created on the system.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:unusualcron&amp;rev=1772543435&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-03T14:10:35+02:00</dc:date>
        <title>technotes:unusualcron</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:unusualcron&amp;rev=1772543435&amp;do=diff</link>
        <description>cron jobs can be set up to run at various times, such as:

	*  X minutes past every hour
	*  Y minutes past hour Z
	*  X,Y and Z minutes past hours A,B and C
	*  Every Monday at a particular time
	*  The Nth day of each month at a particular time

Some cron systems can also be set to run jobs:</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:usb3&amp;rev=1690981877&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-08-02T15:11:17+02:00</dc:date>
        <title>technotes:usb3</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:usb3&amp;rev=1690981877&amp;do=diff</link>
        <description>Never trust a USB3 PCI or PCIe (or similar) interface card which does not have a power input connector.

Also, make sure you plug power into it.

----------

Go up

Return to main index.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:usb_device&amp;rev=1635025162&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-10-23T23:39:22+02:00</dc:date>
        <title>technotes:usb_device</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:usb_device&amp;rev=1635025162&amp;do=diff</link>
        <description>Sometimes it might be nice to have a script run automatically when a specific USB device gets plugged in.

So long as you are running a system based on udev, this is very simple.

The simplest situation is where you can identify the USB device ID for a particular device (or family of devices) and trigger some action based on that (which might then filter out only certain very specific devices from that family, and otherwise do nothing).</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:usingfreeswitch&amp;rev=1690401359&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-26T21:55:59+02:00</dc:date>
        <title>technotes:usingfreeswitch</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:usingfreeswitch&amp;rev=1690401359&amp;do=diff</link>
        <description>I'm completely new to FreeSwitch, so I'm documenting my experience of trying to get it to do something useful, in the hopes that this will help others coming at it for the first time too.

This refers to FreeSwitch version 1.10.6 installed under Devuan 3 Beowulf.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:vagrant&amp;rev=1487200317&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-16T00:11:57+02:00</dc:date>
        <title>technotes:vagrant</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:vagrant&amp;rev=1487200317&amp;do=diff</link>
        <description>Vagrant is supposed to be an easy way of running applications in preconfigured, known-to-work environments, cross-platform.

&lt;https://www.vagrantup.com/docs/getting-started/&gt; suggests that if you're starting from something common, such as Debian Stable, then only four simple steps are needed to get your first Vagrant instance up and running:</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:voip&amp;rev=1722432410&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-31T15:26:50+02:00</dc:date>
        <title>technotes:voip</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:voip&amp;rev=1722432410&amp;do=diff</link>
        <description>There are a few different protocols for transmitting phone calls over the Internet; the one I use is called SIP.

This stands for Session Initiation Protocol, and is very similar to HTTP in the way client and server communicate with each other.  It also has a horrible similarity to FTP, with IP addresses embedded in the messages, which make working across NAT connections potentially &quot;interesting&quot;.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:weirdhosting&amp;rev=1673090240&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-07T12:17:20+02:00</dc:date>
        <title>technotes:weirdhosting</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:weirdhosting&amp;rev=1673090240&amp;do=diff</link>
        <description>There's a large number of hosting providers out on the Internet, offering everything from website space only to racks you can put your own machines in.

Strato dedicated (physical) servers

I have some physical servers hosted by &lt;http://strato.de&gt;  The machines are supplied by, and rented from, Strato.  You can get some pretty decent deals on price if you look out for their special offers - they do contracts for slightly older machines, or ones they don't have many of any more, and the discount …</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:withingsws30&amp;rev=1546612187&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-04T15:29:47+02:00</dc:date>
        <title>technotes:withingsws30</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:withingsws30&amp;rev=1546612187&amp;do=diff</link>
        <description>Withings is a French company which produced a very nice range of wireless (802.11 and Bluetooth in the same device) scales (the sort for weighing humans, not flour and sugar).  They were so nice, in fact, that in 2016 Nokia decided to buy them (the company, not just the scales) some time after it realised it was no longer selling very many mobile phones (or, for that matter, rubber boots).  Withings then split from Nokia to be an independent company again in 2018.</description>
    </item>
    <item rdf:about="http://retinal.dehy.de/docs/doku.php?id=technotes:zoneminder&amp;rev=1664717950&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-10-02T15:39:10+02:00</dc:date>
        <title>technotes:zoneminder</title>
        <link>http://retinal.dehy.de/docs/doku.php?id=technotes:zoneminder&amp;rev=1664717950&amp;do=diff</link>
        <description>ZoneMinder is a nice application for video monitoring for security purposes.

This article is not about how to set it up in general, but instead how to create a specific master-slave setup for situations where you want to have remote security monitoring, but have rather poor bandwidth to the monitored location.  It is now (October 2021) based on ZoneMinder 1.36 running under Devuan 3 Beowulf (which means that the same instructions work on Debian 10 Buster if you really want to have systemd on yo…</description>
    </item>
</rdf:RDF>
