<?xml version="1.0"?><rss version="2.0"><channel>
<title>gopher.lottalinuxlinks.com</title>
<link>gopher://gopher.lottalinuxlinks.com/</link>
<description>gopher.lottalinuxlinks.com	Description</description>
<item>
  <title>10 13 2140_SID_TO_ARCH.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-10-13-2140_SID_TO_ARCH.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.10.13
  TIME : 21:40
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : SID TO ARCH
 
===================================================================
I've been using debian linux since 1995; when I say using,
I mean at least one machine in my house has been running debian
constantly during that entire time, be it a server install running
stable, a laptop or desktop computer for the wife or one of my
daughters running stable, or maybe testing, and always my personal
daily driver laptop running sid. So when I changed my two personal
daily driver laptops (not any of my servers or other family
member's computers) from debian sid to arch linux this past July,
it could be asked, why arch and why now?

I know and love debian. It works, I know all the ins and outs,
and it has never once broken, failed to update, or let me down
in any memorable way; these are the reasons debian is the only
distro I would ever install on a server.  Debian is not just
for servers; debian is everything anybody needs, meaning if you
need stable they have you covered, if you need more recent, less
"stale" programs, they have that covered as well, and if you need
the latest and greatest, then they have that too! If you want
a minimal install, or a full fledged out of the box, everything
included, just works distro, you have those options too. And no
matter what you need, they have security covered too. Installing
packages from the appropriate official repo, no matter stable,
testing, or sid, you can rest easy knowing that security has been
handled appropriately.

Debian sid is often called a rolling release, and it's accurate
to do so; outside of the freeze before a stable release, debian
sid is constantly being updated. Other than that, if one sticks to
the official repos, and doesn't mix repos, just about everything
you could possibly need is there, and can be safely downloaded and
installed with almost zero unexpected gotchas to be had.

So why even try something new? Was there an itch that debian
sid wasn't scratching for me? The short and only answer to
the question is that for my personal daily driver computers
running sid, I have been for years maintaining a list (paper
and electronic) of packages that were installed from source and
outside of the standard sid repos. The itch that arch seemed to
scratch that debian sid does not, is a solution for installing
packages outside of the standard repos using the package
manager. Debian doesn't do this as easily, and more times than
not, it's easier to just build and install from source. With arch
however, using the aur, and the pkgbuild system, everything on my
lists of things installed outside the package manager on debain
sid, could be installed using the package manager and the aur.

Is it perfect? Is it safer? No to both questions. The aur doesn't
feel as safe or secure as debian for sure; but it is just a safe
as installing from source on sid, if you take the time to read
the source --which is something you should be doing every time you
install anything from source. The main advantage with arch and the
aur is that you can install from source using the package manager.

So, for me it's a win: if something is not in the official arch
repos, and it's in the aur (which everything on my lists were)
I can install it with the package manger, which with arch is a
superior user experience.

Just from a more nebulous aspect though, having things installed
more close to source (less patches than with debian binaries) my
system seems a little more lean--it's a feel thing but it seems
a little more lean and a little more snappy. One of the things I
really enjoy about a debian sid install is the minimal netinstall,
arch does this in spades, as you only install what you need and
you only enable or start the services you need as well. With arch
I feel more in control of every detail of my system.

Overall I am very happy replacing debian sid with arch, and I
don't regret anything about it. YMMV

-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
<item>
  <title>03 13 1155_PEN_AND_PAPER.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-03-13-1155_PEN_AND_PAPER.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.03.13
  TIME : 11:55
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : PEN AND PAPER
 
===================================================================
Nothing earth shattering to see here, just a overdue, short
post about two things that I have carried with me everyday since
since graduating college in 1989: a pen and some kind of pocket
notebook.

It really started earlier than that though, around 5th grade;
I evidently was lying about the amount of homework I had, and
my mom made me carry a notebook that I was to use to write down
everything that I had to do. She probably had the teacher sign
it too; I can’t remember the details, but it worked, and I have
used and carried notebooks ever since. In school I would carry it
my bag, but since then it has resided in my back pocket.

I take notes on my computer too of course. I have used a variety
of apps in the past; I am currently using a combination of Vim,
Joplin, syncthing, git, and nextcloud. Notes stored on my computer
are more often for procedural or repetitive task, or things that I
may want to copy and paste. In most cases these digital notes are
as important to me as config files, and other things I routinely
back up, but the pen and paper notes server a different purpose,
and are also just quicker, easier, and more convenient. My analog
notes tend to be more list-like in nature, compared to the ones
I keep on my computer, and almost never need to be digitized, as
they are a mainly a complementary supplement to my digital note
taking.

Since graduating college and entering the work force, I have used
a variety of pocket sized notebooks, spiral bound flip books, pads
of paper in a cover, pocket calendars, and day-timers; but for
the last 20 years or so, I can say that of all the pen and paper
solutions I have carried, the best I have found is simply this:
a Fisher Bullet Space Pen coupled with 3.5“x 5.5” dotted, memo
books, carried in a leather cover.

What I love about this notebook, is that the leather cover makes
it very durable and comfortable to carry in my back pocket, and it
can hold 3, 64 page notebooks. In one leather cover I can carry
one notebook for long term work-related things, one for mostly
linux-related things, and one for archived material from the
previous year.

The Fisher Bullet Space Pen is almost indestructible. The one I
carry now, I found near my driveway after losing it for over a
year. It had been run over by a car and exposed to the elements
and still serves as my everyday pen. It’s not the best writing
pen, but it is small and comfortable, and easily carried.

It may seem trivial, or an insignificant geeky thing, but my pen
and paper pocket notebook make me happy.

-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
<item>
  <title>02 13 0135 ADDING_A_REPURPOSED_CAPS_LOCK_AS_A_THIRD_MOD_KEY_IN_I3.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-02-13-0135-ADDING_A_REPURPOSED_CAPS_LOCK_AS_A_THIRD_MOD_KEY_IN_I3.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
==================================================================
  DATE : 2021.02.13
  TIME : 01:35
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : ADDING A REPURPOSED CAPS LOCK AS A THIRD MOD KEY IN I3 

===================================================================
When the i3 window manager is run for the first time, a configuration
wizard runs and allows you to set the modifier, or mod key, that you
want to use for your keybindings. The configuration wizard allows you
to choose either the Alt key or the Super key, i.e. one or the other,
but not more than one. i3 though has support for all five modifier
keys, and these can be set in your i3 config file. My i3 config file
was set up to use two mod keys: mod4, the Super key, and mod1, the Alt
key. For a while, I was happily using two mod keys, but recently I
have found myself needing to use a third. This quick and dirty post
will explain how, and why I repurposed my Caps Lock key as mod3.

Disclaimer: what follows is what worked for me, and what I did, and in
the order I did it, to use the Caps Lock key for use as mod3 in i3.

Here is the relevant excerpt from my i3 config file, from when I was
using just two mod keys:

    set $mod Mod4                                                      
    set $mod1 Mod1

And here is the xmodmap -pm command output (before repurposing the
Caps Lock Key) showing the default assignments for mod1 through mod5:

    xmodmap -pm
    xmodmap:  up to 5 keys per modifier, (keycodes in parentheses):

    shift       Shift_L (0x32),  Shift_R (0x3e)
    lock      
    control     Control_L (0x25),  Control_R (0x69)
    mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
    mod2        Num_Lock (0x4d)
    mod3      
    mod4        Hyper_L (0x42),  Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
    mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

As you can see in the above output, mod3 is empty and mod4, in
addition to the Super key, also includes the Hyper key.

The first thing I did was run the following setxkbmap command to
change the Caps Lock key to the Hyper key:

    setxkbmap -option caps:hyper

This might seem like enough, but it’s not; next a ~/.Xmodmap file
needs to be created to clear out the mod4 designations, add the mod3
designation, and then re-add the mod4 designations. Here is the
contents of the ~/.Xmodmap file I created:

    clear mod4
    keycode 66 = Hyper_L NoSymbol Hyper_L
    add mod3 = Hyper_L
    add mod4 = Super_L Super_R

Note: the keycode for the Caps Lock key can be obtained using the xev
command like this:

    xev -event keyboard

After creating the .Xmodmap file you either need to restart X or
source the .Xmodmap file. Here is the command to source the new file:

    xmodmap ~/.Xmodmap

After running that above command, re-running the xmodmap -pm command
outputs the following:

    xmodmap -pm
    xmodmap:  up to 3 keys per modifier, (keycodes in parentheses):

    shift       Shift_L (0x32),  Shift_R (0x3e)
    lock      
    control     Control_L (0x25),  Control_R (0x69)
    mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
    mod2        Num_Lock (0x4d)
    mod3        Hyper_L (0x42),  Hyper_L (0xcf)
    mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce)
    mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

As you can see mod4 now only includes Super, and mod3 is no longer
empty, but contains Hyper.

Next (since I don’t run a display manager) I added the following to my
~/.xinitrc:

    [[ -f ~/.Xmodmap ]] && xmodmap ~/.Xmodmap

This will source my custom ~/.Xmodmap file when I run startx.

And the last thing I did was add the following to my i3 config file:

    set $mod3 Mod3
    exec --no-startup-id setxkbmap -option caps:hyper

For clarity, I put the set $mod3 Mod3 line in the same section of the
file where I had set $mod and $mod4; and I put the exec –no-startup-id
setxkbmap command in the section of the file where I put the programs
that I want started when i3 starts up.

With the above changes made, I now have three modifier keys that I can
use for keybindings in i3. This gives me another whole level of
keybinding flexibility.

The main reason I did this though, is that a third mod key made it
more simple and intuitive to add and use an additional 10 workspaces,
for a easily accessed total of 30. With i3 configured this way I can
now access workspaces 1-10 with Super+numbers 1-0; workspaces 11-20
with Alt+numbers 1-0; and workspaces 21-30 with Caps Lock+numbers 1-0.

Here is the excerpt from my i3 config with 30 workspaces:

    # Define names for default workspaces for which we configure key bindings later on.
    # We use variables to avoid repeating the names in multiple places.
    set $ws1 "1"
    set $ws2 "2"
    set $ws3 "3"
    set $ws4 "4"
    set $ws5 "5"
    set $ws6 "6"
    set $ws7 "7"
    set $ws8 "8"
    set $ws9 "9"
    set $ws10 "10"
    set $ws11 "11"
    set $ws12 "12"
    set $ws13 "13"
    set $ws14 "14"
    set $ws15 "15"
    set $ws16 "16"
    set $ws17 "17"
    set $ws18 "18"
    set $ws19 "19"
    set $ws20 "20"
    set $ws21 "21"
    set $ws22 "22"
    set $ws23 "23"
    set $ws24 "24"
    set $ws25 "25"
    set $ws26 "26"
    set $ws27 "27"
    set $ws28 "28"
    set $ws29 "29"
    set $ws30 "30"

    # switch to workspace
    bindsym $mod+1 workspace number $ws1
    bindsym $mod+2 workspace number $ws2
    bindsym $mod+3 workspace number $ws3
    bindsym $mod+4 workspace number $ws4
    bindsym $mod+5 workspace number $ws5
    bindsym $mod+6 workspace number $ws6
    bindsym $mod+7 workspace number $ws7
    bindsym $mod+8 workspace number $ws8
    bindsym $mod+9 workspace number $ws9
    bindsym $mod+0 workspace number $ws10
    bindsym $mod1+1 workspace number $ws11
    bindsym $mod1+2 workspace number $ws12
    bindsym $mod1+3 workspace number $ws13
    bindsym $mod1+4 workspace number $ws14
    bindsym $mod1+5 workspace number $ws15
    bindsym $mod1+6 workspace number $ws16
    bindsym $mod1+7 workspace number $ws17
    bindsym $mod1+8 workspace number $ws18
    bindsym $mod1+9 workspace number $ws19
    bindsym $mod1+0 workspace number $ws20
    bindsym $mod3+1 workspace number $ws21
    bindsym $mod3+2 workspace number $ws22
    bindsym $mod3+3 workspace number $ws23
    bindsym $mod3+4 workspace number $ws24
    bindsym $mod3+5 workspace number $ws25
    bindsym $mod3+6 workspace number $ws26
    bindsym $mod3+7 workspace number $ws27
    bindsym $mod3+8 workspace number $ws28
    bindsym $mod3+9 workspace number $ws29
    bindsym $mod3+0 workspace number $ws30
        
    # move focused container to workspace
    bindsym $mod+Shift+1 move container to workspace number $ws1
    bindsym $mod+Shift+2 move container to workspace number $ws2
    bindsym $mod+Shift+3 move container to workspace number $ws3
    bindsym $mod+Shift+4 move container to workspace number $ws4
    bindsym $mod+Shift+5 move container to workspace number $ws5
    bindsym $mod+Shift+6 move container to workspace number $ws6
    bindsym $mod+Shift+7 move container to workspace number $ws7
    bindsym $mod+Shift+8 move container to workspace number $ws8
    bindsym $mod+Shift+9 move container to workspace number $ws9
    bindsym $mod+Shift+0 move container to workspace number $ws10
    bindsym $mod1+Shift+1 move container to workspace number $ws11
    bindsym $mod1+Shift+2 move container to workspace number $ws12
    bindsym $mod1+Shift+3 move container to workspace number $ws13
    bindsym $mod1+Shift+4 move container to workspace number $ws14
    bindsym $mod1+Shift+5 move container to workspace number $ws15
    bindsym $mod1+Shift+6 move container to workspace number $ws16
    bindsym $mod1+Shift+7 move container to workspace number $ws17
    bindsym $mod1+Shift+8 move container to workspace number $ws18
    bindsym $mod1+Shift+9 move container to workspace number $ws19
    bindsym $mod1+Shift+0 move container to workspace number $ws20
    bindsym $mod3+Shift+1 move container to workspace number $ws21
    bindsym $mod3+Shift+2 move container to workspace number $ws22
    bindsym $mod3+Shift+3 move container to workspace number $ws23
    bindsym $mod3+Shift+4 move container to workspace number $ws24
    bindsym $mod3+Shift+5 move container to workspace number $ws25
    bindsym $mod3+Shift+6 move container to workspace number $ws26
    bindsym $mod3+Shift+7 move container to workspace number $ws27
    bindsym $mod3+Shift+8 move container to workspace number $ws28
    bindsym $mod3+Shift+9 move container to workspace number $ws29
    bindsym $mod3+Shift+0 move container to workspace number $ws30

-dsyates
(o_!_/o)
</pre>]]></description>
</item>
<item>
  <title>02 07 0919_MY_GEMINI_CAPSULE_HAS_LAUNCHED.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-02-07-0919_MY_GEMINI_CAPSULE_HAS_LAUNCHED.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.02.07
  TIME : 09:19
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : MY GEMINI CAPSULE HAS LAUNCHED
 
===================================================================
And we have liftoff! I have a gemini capsule now.

If you already have a gemini client enter in the following
address:

gemini://gemini.lottalinuxlinks.com

Gemini is a new privacy-respecting internet protocol that
seeks to fill the space between the web and gopher. It
is still new to me, so I am just getting into it; but
[@Samsai](https://mastodon.social/@Samsai), has a really good post
about what makes gemini intriguing.

  [post]: https://samsai.eu/post/introduction-to-gemini/

Much like gopher, except way more modern, you will need a gemini
client to view gemini content.

Here is a list of clients, proxies, and servers that can be used
with gemini.

  [list]: https://github.com/kr1sp1n/awesome-gemini

If you don’t have a gemini client yet, you can use the gemini
portal to access gemini capsules with a web browser.

  [gemini portal]:
https://portal.mozz.us/gemini/gemini.circumlunar.space/

There isn’t a lot of information on the web about it, but
Project Gemini, and of course wikipedia, have a little more
information if you are interested in learning more.

  [Project Gemini]: https://gemini.circumlunar.space/ [wikipedia]:
  https://en.wikipedia.org/wiki/Gemini_(protocol)

Special thanks to [@ecliptik](https://fosstodon.org/@ecliptik) and
his _scripts repository.

  [_scripts repository]:
https://github.com/ecliptik/ecliptik.github.io/tree/master/_scripts

-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
<item>
  <title>02 06 0157_HOW_TO_BUILD_AND_INSTALL_I3 GAPS_FROM_SOURCE_ON_DEBIAN.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-02-06-0157_HOW_TO_BUILD_AND_INSTALL_I3-GAPS_FROM_SOURCE_ON_DEBIAN.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.02.06
  TIME : 01:57
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : HOW TO BUILD AND INSTALL I3-GAPS FROM SOURCE ON DEBIAN
 
===================================================================
i3-gaps is a fork of the i3 window manager that is kept up to
date with upstream i3, and adds the feature of allowing you to
have visible and configurable gaps between windows. This feature
**is** just eye candy, and may or may not actually aid the user by
providing some visible space between windows (at the expense of
some screen real estate) to make clearer the distinction between
adjacent windows.  What cannot be argued though, is that i3-gaps
just looks better.  Seriously though, it is just regular i3 but
with re-sizable gaps between windows that can be turned on or off.

Debian does not have i3-gaps in their repos, just plain i3.  If
you are running debian, and already have i3 from the debian repos
installed, and you want to use i3-gaps, I recommend uninstalling
the version from the debian repos before proceeding. The reason
you want to do this is that the i3-gaps binary is actually named
i3, just like the non-gapped i3 from which it is forked.

I don't know why the forked version has the same name, but that's
OK. You either want the gap option, or you don't. If you want them
bad enough, just uninstall the i3 from the repo before proceeding.


sudo apt purge i3


Before we go any further, and in the spirit of full disclosure,
I installed i3 in /usr/ instead of /usr/local/.  *I know, I
know*...the instructions that follow though will assume that you
want to install i3-gaps in /usr/local/.

So, here is how to build from source and install i3-gaps on
debian:

First install the dependencies:


apt install meson dh-autoreconf libxcb-keysyms1-dev
libpango1.0-dev libxcb-util0-dev xcb libxcb1-dev libxcb-icccm4-dev
libyajl-dev libev-dev libxcb-xkb-dev libxcb-cursor-dev
libxkbcommon-dev libxcb-xinerama0-dev libxkbcommon-x11-dev
libstartup-notification0-dev libxcb-randr0-dev libxcb-xrm0
libxcb-xrm-dev libxcb-shape0 libxcb-shape0-dev


Then cd to the directory where you want to download the i3-gaps
source code and the run the following commands in the order shown.


git clone https://github.com/Airblader/i3. git i3-gaps

cd i3-gaps

mkdir -p build && cd build

meson --prefix /usr/local

ninja

sudo ninja install


The meson --prefix option allows you to pick where you want
to install i3-gaps. In the above example, everything will be
installed in sub-directories of the /usr/local/ directory.

As I mentioned before, this binary will not be called i3-gaps, but
it will be called i3.

If you are like me, and don't use a display manager, just edit
your .xinitrc file and comment out your current window manager and
add the following line:


exec i3


If you are running a display manager you should be able to pick i3
from the login screen. Remember it will be called i3, not i3-gaps.

Once installed, you will need to edit your config file
(~/.config/i3/config) to enable the gaps feature, since the
config file that comes with i3-gaps is the same one as the
default non-gapped i3 from the repo. All you need to add is in
the README.md at the https://github.com/Airblader/i3. Note that
the i3-gaps documentation states that window titlebars need to
be disabled in order for the gaps feature to work. I *think* that
recommendation may be out of date, as I have run gaps with window
titlebars enabled; but YMMV. I have since grown to love windows
without titlebars though, and keep my titlebars disabled..

Here is the pertinent part of my config file, and how I have the
gaps configured:


# gaps
# disable window titlebars 
for_window [class="^.*"] border pixel 0

gaps inner 6
gaps outer 2

bindsym $mod+Shift+g gaps inner all set 6; gaps outer all set 2
bindsym $mod+Shift+n gaps inner all set 0; gaps outer all set 0

# Only enable gaps on a workspace when there is at least one 
# container smart_gaps on

# Activate smart borders (always)
# smart_borders on

# Activate smart borders (only when there are effectively no gaps)i
# smart_borders no_gaps

# Hide edge borders only if there is one window with no gaps
hide_edge_borders smart_no_gaps

# What follows here is optional and defines a mode that allows you
# to resize the gaps on the fly.
# Press $mod1+Shift+g to enter the gap mode. Choose o or i for 
# modifying outer/inner gaps.
# Press one of + / - (in-/decrement for current workspace) or 
# 0 (remove gaps for current workspace).  
# If you also press Shift with these keys, the change will be 
# global for all workspaces.  
set $mode_gaps Gaps: (o) outer, (i) inner
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global) 
bindsym $mod1+Shift+g mode "$mode_gaps"

mode "$mode_gaps" {
        bindsym o mode "$mode_gaps_outer" 
        bindsym i mode "$mode_gaps_inner" 
        bindsym Return mode "default" 
        bindsym Escape mode "default"
}

mode "$mode_gaps_inner" {
        bindsym plus gaps inner current plus 5 
        bindsym minus gaps inner current minus 5 
        bindsym 0 gaps inner current set 0

        bindsym Shift+plus gaps inner all plus 5 
        bindsym Shift+minus gaps inner all minus 5 
        bindsym Shift+0 gaps inner all set 0

        bindsym Return mode "default"
        bindsym Escape mode "default"
}
mode "$mode_gaps_outer" {
        bindsym plus gaps outer current plus 5 
        bindsym minus gaps outer current minus 5 
        bindsym 0 gaps outer current set 0

        bindsym Shift+plus gaps outer all plus 5 
        bindsym Shift+minus gaps outer all minus 5 
        bindsym Shift+0 gaps outer all set 0

        bindsym Return mode "default" 
        bindsym Escape mode "default"
}

If you like i3, you'll love i3-gaps; even if you don't love gaps,
you can just turn them off and it will be just like regular i3.
That is a win-win-win scenario.



-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
<item>
  <title>01 31 0043_FOSSTODON.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-01-31-0043_FOSSTODON.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.01.31
  TIME : 00:43
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : FOSSTODON
 
===================================================================
I have posted before at about my experiences in the linux and FOSS
community, and specifically about getting in, fitting in, taking
part in, and later dropping out of the community. Since the recent
rebirth of this dormant website, I have revisited mastodon, and
logged back in to my fosstodon account again for the first time. I
say the first time because I honestly cannot remember the last
time I had logged in, but thankfully bitwarden had my password. In
the short two week period, at the time of this writing, that I
have been back on fosstodon, I can say it has been enjoyable and
eye opening.

Mastodon is an open source, and Free as in freedom, privacy
respecting, own your data, social network server and micro
blogging platform. All mastodon servers can communicate with
each other on a federated network of decentralized servers; this
means that if you are have an account on one server, or instance,
you can communicate with all users on the server you are on,
as well as users on other servers. Additionally, mastodon is
part of the larger fediverse and can communicate with the other
non-mastodon parts of the fediverse too. That is the short and
sweet, oversimplified explanation of what mastodon is.

If you want to know why you should use mastodon, please read the
post by @codesections:

~~~~~

at https://www.codesections.com/blog/mastodon-elevator-pitch/

~~~~~

about how and why mastodon is better than twitter; he is one of
the moderators of the fosstodon mastodon instance, and he says it
better than I ever could.

So, after that brief, what, how, and why, I will get back to the
main purpose of the this post, and continue to gush a little about
the fosstodon mastodon instance. One of the things I love about
mastodon and it being federated, is that the instance you choose
to have an account with can, if you find the right instance,
really feel like a community. What I mean by that is if you are a
Free and open source linux geek, the fosstodon instance will feel
like home for you. The fosstodon instance is filled with people
who care about linux, Free and open source software, and all
the various and sundry geeky/nerdy things that those people are
passionate about.  If you are passionate about something, being
surrounded by, and communicating with, people who are passionate
about the same things, puts you in an environment that both
liberates and fosters a healthy, fun, and engaging community.

I am living proof that, even someone like me who has suffered
from occasional impostor's syndrome, can, and will, be accepted
into the linux and Free and open source software community. The
fosstodon instance is a place for people like me; an exciting, and
engaging place that allows anyone and everyone that is passionate
about these things to get in , fit in, and take part in, an
accepting community that feels like home.

Fosstodon, being just one instance of the larger mastodon
federated network, isn't a particularity small instance with over
15,000 users (and don't forget you can still communicate with
the other instances), but it still feels like a community, as
well connected part of a larger unique part of the internet. And
that is because it is part of the fediverse, the larger universe
made up of all the federated networks, that in addition to
mastodon include diaspora, Friendica, GNU Social, Hubzilla,
Misskey, PeerTube, Pleroma, Pixelfed, Funkwhale, and possibly
more. Together, all of these decentralized networks of federated
servers make up the larger fediverse.  It is a small-feeling,
interconnected corner of the internet, that isn't controlled by
giant companies that mine your data for their profits. It sort of
reminds me of the internet before the web became the way it is
today; it somehow reminds me of gopher space and BBSs, when the
internet felt, in a good way, smaller--but more connected.

I told you I was gonna gush.

None of this is rocket science, and it may not even be that
eye-opening for most people reading this, but I have had my eyes
opened, again, by the linux and Free and open source software
community. Thanks fosstodon.

If you don't have a home on mastodon yet, and especially, if you
are passionate about FOSS and linux, just click the link below to
sign up for an account on the fosstodon instance:

Join fosstodon at https://fosstodon.org/invite/XrJRievw

And if fosstodon doesn't sound like home to you, being able to
pick

~~~~~

at https://instances.social/

~~~~~

or even host 

~~~~~

at https://github.com/tootsuite/mastodon

~~~~~

your own instance are just two more reasons that make mastodon,
and the fediverse 

~~~~~

at https://fediverse.party/en/fediverse

~~~~~

so awesome.



-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
<item>
  <title>01 29 0630_WELCOME_TO_THE_MODCAST.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-01-29-0630_WELCOME_TO_THE_MODCAST.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.01.29
  TIME : 06:30
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : WELCOME TO THE MODCAST
 
===================================================================
Shortly after I set up my gopher hole last year, I downloaded all
of the MOD files off of http://artscene.textfiles.com/music/mods/
thinking I would mirror them on my gopher site. I decided not to
once I had finished the 54 gig download of over 140,000 MOD files.
The directory structure of the downloaded files was going to make
it a little cumbersome to be useful on a gopher site. As an aside,
I can't remember the exact details, but I pretty sure I used wget,
or maybe it was curl, to grab the files; either way it was easy. I
kept the files and have enjoyed listening to them as background
music on several occasions since then.

But wait, what are MOD files? MOD is short for module, and
paraphrased from wikipedia at
https://en.wikipedia.org/wiki/MOD_(file_format), is a file format,
first developed for the Amiga computer in 1987, and is mainly used
to represent music. A MOD file (including files with the extension
MOD, XM, IT, 669, MTM, and S3M) contains a set of instruments in
the form of samples and a number of patterns indicating how and
when the samples are played. More information about MOD files can
be found at the alt.binaries.sounds.mods FAQ at
http://cd.textfiles.com/darkdomain/faqs/faq-mod_v28-part1.txt,
retrieved and stored at http://textfiles.com.

All that aside, MOD files are both plenty fun and geeky; I have
fond memories of editing MOD files back in the day, changing the
instrument samples and completely changing the sound of the music.
And you can still do that today with with the MOD tracking program
MilkyTracker found at https://milkytracker.org/about/.

So, back to the story, a couple of day ago I decided I would
stream a randomly shuffled, continuous playlist of 140,129 MOD
files. That's a lot of MOD files; 309 days, 6 hours, 2 minutes,
and 48 seconds worth of mod files to be exact! With this many
files, there are sure to be some that are not your cup of tea, but
there will plenty of good ones too. So, if you feel so inclined,
tune in and give it a listen.  I can pretty much guarantee you
won't hear the same song twice in 309 day of continuous listening.

Just paste the following stream address in your media player of
choice:


http://lottalinuxlinks.com:8000/stream.m3u


I don't know for sure how much my daily internet usage will affect
the stream quality, but I know there will be times when the stream
is less than ideal. I really don't think this is going to blow up
the internet or anything like that, but if it gets to be a hassle
bandwidth wise (or even if it doesn't), there is a decent chance
that I may end up moving the stream to a slot on anonradio at
https://anonradio.net/listen/ over at SDF at https://sdf.org/,
or maybe tilderadio at https://tilderadio.org/. We'll see what
happens.

tl;dr: I set up a pretty awesome internet audio stream at
https://lottalinuxlinks.com/modcast/ of over 140,000 MOD files.


-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
<item>
  <title>01 20 0947_I3_SCRATCHPAD_AND_VIM_LIKE_MARKS.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-01-20-0947_I3_SCRATCHPAD_AND_VIM_LIKE_MARKS.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.01.20
  TIME : 09:47
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : I3 SCRATCHPAD AND VIM LIKE MARKS
 
===================================================================
I've been using linux a LONG time, and without a doubt the best
and most versatile graphical environment I have ever used is the
i3 tiling window manger. Technically I use a fork called i3-gaps,
but I will talk about that in another post one day. What makes
i3 the best (for me) is that it fits the way I work, is easily
customized, and that all the navigation can be done with the
keyboard. Two really cool features of i3 are the scratchpad and
vim like marks.

The scratchpad is a place you can send floating windows where
you can quickly retrieve them when needed. Think of it sort of
like minimizing a window--except that with i3 windows are not
minimized.  i3 is a tiling window manager and all windows are by
default opened in the largest dimensions possible. If a window
is the only window opened on a workspace, then it is maximized;
and if any more windows are opened on that workspace they are
tiled to take up half the space of the previously opened window
on that workspace. Any tiled window can be turned into a floating
window (and toggled back into a tiled window) with the following
keystroke (where the mod key is either set to the windows key or
the alt key, depending on your i3 config file--in my case I have
the mod key set to the windows key and mod1 set to the alt key):

~~~~~~
mod+shift+space
~~~~~~

mod+shift+space is a toggle, meaning repeating the keystroke will
disable floating for the window and return it to a tiling window.

Once a window is turned into a floating window it can be sent to
the scratchpad like this:

~~~~~~
mod+shift+minus
~~~~~~

Technically, you don't have to turn a window into a floating
window before you send it the scratchpad; i3 does that for you
when you send something to the scratchpad. mod+shift+minus will
send any window, whether it is tiled, tabbed, or floating to the
scratchpad; but any window that is retrieved from the scratchpad
is brought back as a floating window.

When a window is sent to the scratchpad it disappears. Like
I said, it is sort of like minimizing a window, except that
status bars in i3 show workspace numbers, not windows; that means
that there is no status bar indicator showing where that window
went. What good is a disappearing window if you can't bring it
back? Any window sent to the scratchpad can be retrieved like
this:

~~~~~~
mod+minus
~~~~~~

What makes this cool is that you can take any window that you
don't need right now, and set it aside, out of the way, until you
need it again, and then bring it right back to the front, where
and when you need it.  You can even configure programs to start in
a floating window that is sent straight to the scratchpad at start
up. I have my i3 config file set up to automatically start the RPN
calculator orpie, and a urxvt terminal window opened in a floating
window and sent to the scratchpad as soon as I start i3. In the
case of urxvt, my config file has this in it:

~~~~~~
exec --no-startup-id urxvt -name scratchterm
for_window [instance="scratchterm"] move scratchpad
~~~~~~

What if you decide that you no longer want a program to be in the
scratchpad? Simply retrieve it from the scratchpad (mod+minus),
and do a mod+shift+space to return it to a tiled window.

Once you have sent several windows to the scratchpad, you can
bring them back with a mod+minus; this will bring them back one
(and only one) at a time in a cycling sequence based on the order
that they were sent to the scratchpad. What that means is, if you
have eight windows in the scratchpad, you will have to repeat the
mod+minus keystroke until the one you are looking for cycles back
around.  This can become a little bit of a time waster, and that
is where vim like marks come in.

Why are they called vim like marks? Marks in vim allow you
to record your current position so that you can return to it
later. In i3 marks can be applied to windows that allow you
to directly jump to a specific window. In the case of windows
that don't reside in the scratchpad, going to a marked window
will switch to the appropriate workspace and focus the marked
window. That is cool enough all by itself, but combined with the
scratchpad, it gets even better.

I avoided using marks for a while, because I have i3 configured
to not draw window decorations (title bars and borders), and I
though this meant I couldn't use marks. I have since found out two
things, marks do not have to be drawn on window decorations to use
then, and i3 can even be configured to not show marks in window
decorations.

So, how do you use marks, and what makes using them so great
coupled with the scratchpad?  The way I use marks in i3 is by
using the i3-input tool to assign a mark to a window that can be
used to retrieve that specific window from the scratchpad. This
allows me to assign a keystroke to mark a window and another to
later go to that marked window whenever I choose.  Simply adding
the following to your i3 config file will do the trick:

~~~~~~
# read 1 character and mark the current window with this character
bindsym $mod+m exec i3-input -F 'mark %s' -l 1 -P 'Mark: '

# read 1 character and go to the window with the character
bindsym $mod+g exec i3-input -F '[con_mark="%s"] focus' -l 1 -P 'Goto: '
~~~~~~

With this, when I type mod+m the i3-input tool will open a
one line terminal to accept input, and I can mark the focused
window with a one character mark.  Then, I can send that
window to the scratchpad with all the other windows that are
already there. Later I can just type mod+g and then input the
one character mark I assigned, and boom, the marked window is
retrieved from the scratchpad. I didn't have to type mod+minus,
8 times to cycle through the scratchpad windows until I found it.

That's just the way I use the scratchpad with marks, and that just
scratches the surface (see what I did there?). You can configure
i3 to move containers and windows to a mark, use marks with a
window's class and title (or named instance like I used in the
urxvt example above) to jump to a specific window, and marks can
be be replaced removed and even toggled.

Scratching the itch where x marks the spot is something that
should never be typed in a phlog.


-dsyates

(o\_!_/o)


</pre>]]></description>
</item>
<item>
  <title>01 18 1220_CHECKRESTART_AND_NEEDRESTART.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-01-18-1220_CHECKRESTART_AND_NEEDRESTART.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.01.18
  TIME : 12:20
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : CHECKRESTART AND NEEDRESTART
 
===================================================================
I saw a toot on mastodon today talking about the program
checkrestart. checkrestart, which is part of the debian-goodies
package, can check and see which processes need to be restarted
after an upgrade. So why is this cool, what does it do, and is it
worth installing?

Well, in general linux machines get a lot of updates, but don't
need to be rebooted very often. When the ratio of updates to
required reboots is high, as it is especially in the case of
debian sid, there are going to be times where services may still
use old libraries after doing a apt upgrade. Running checkrestart
as su will list what processes and services are still using old
versions of new files. It will also list the total number of
processes, the number of distinct programs and packages affected,
and if any of these contain systemd definitions or init scripts
that can be used to restart them.

Looking into checkrestart, and installing and running it, led me
to finding out about a package, that was inspired by checkrestart,
called needrestart. needrestart checks which daemons need to
be restarted after library upgrades. needrestart, in addition
to scanning processes, will scan containers, interpreter
based-daemons (Java, Perl, Python, Ruby), processor microcode
upgrades for Intel CPUs, and the kernel, for cases where outdated
libraries are being run, and even if there are any user sessions
where outdated binaries are being run.  The coolest part for me
though, is that needrestart is fully integrated with apt/dpkg and
will prompt you with a which services should be restarted dialog
after an apt upgrade.

Even though I have run debian sid on my daily driver for over
15 years, with a potential for available updates every 6 hours,
without either of these programs installed until today, I would
argue, that both of these are worth installing and using. With a
distro like sid, there are some best practices; and while neither
checkrestart or needrestart make this best practice list (like the
must have apt-listbugs, and apt-listchanges packeges), needrestart
(and checkrestart) both provide useful information (and the choice
to act on the provided information) that can help make your high
update to reboot ratio machine more secure. These are good things
to have.

-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
<item>
  <title>01 13 1227_UNDERGROUND_AUDIOBOOK.txt</title>
  <link>gopher://gopher.lottalinuxlinks.com/0/phlog/2021-01-13-1227_UNDERGROUND_AUDIOBOOK.txt</link>
  <pubdate>Wed, 13 Oct 2021 20:21:00 -0400</pubdate>
  <description><![CDATA[<pre>
===================================================================
  DATE : 2021.01.13
  TIME : 12:27
AUTHOR : dsyates@lottalinuxlinks.com
 TITLE : UNDERGROUND AUDIOBOOK
 
===================================================================
Underground: Hacking, Madness and Obsession on the Electronic
Frontier is a book written by Suelette Dreyfus with research by
Julian Assange in 1997.  The book's title is an apt description
of what the book is about, so I won't go into detail about
that. One of the unusual things about Underground is that the
authors licensed the book as literary freeware, which means that
the book is available to anyone, anywhere at no cost, and with
almost no restrictions whatsoever, except for commercial use of
course. The book is available at Project Gutenburg as well as at
http://underground-book.net.  After reading Underground in 2007,
I tried to contact Suelette Dreyfus about making a festival text
to speech audio version available as a serialized podcast. I never
could get in touch with her, so I emailed Julian Assange about
this:

Tue, Mar 6, 2007, 8:41 PM

"Julian, I have tried many time times to contact both you
and Suelette regarding this. I would like very much to make
the book Underground available in festival generated audio
in a podcast format. I have taken the text files available at
http://www.xs4all.nl/~suelette/underground/underground-speech-text/
and have converted them to audio using festival. I would like
very much to make these files available as mp3 and ogg files
(converted from the verbatim text files) available for download on
an individual basis, as well as to allow the end user to subscribe
to an rss feed containing the audio files. My gut tells me that
this is something that I am allowed, but I do not want to assume
the wrong thing. I want to make sure that i have permission to do
this.  Please know that I seek no personal gain from this. I would
just be making the converted files available to people in modern
download-able format. The feed could even be available in iTtunes.
Please let me know if this is something I am allowed to do. Thanks
in advance for your kind consideration of this request."

His reply:

Tues, Mar 6, 2007, 10:04 PM

"Dear dave. Please do!

Sorry if we haven't been easily available. Busy consulting for
this http://wikileaks.org/

Best, J"

I only included the above exchange for the following obvious
reasons: it was super cool to have talked to one of the authors;
Julian Assange wrote the super cool program surfraw (that I still
use today in a rofi menu); the historical reference to wikileaks
in it's infancy; and Julian Assange is even more (in)famous today.
So please allow my braggadocio, as it was my 15 minutes of fame.

I did make the audio files, and did release them as a podcast,
and made them available for download too.  I hosted these files on
my server from 2007 until 2011 or so, when I sort of took a hiatus
from the linux community.

Anyway, the book is awesome, and you should read it if you
haven't.  Yesterday I generated new festival audio files for the
book and put them on my gopher sites; download and enjoy if you
wish.


-dsyates

(o\_!_/o)

</pre>]]></description>
</item>
</channel>
</rss>