From 7575729683277bc18d5c312485fc4b5a78c07e31 Mon Sep 17 00:00:00 2001 From: Ken Fallon Date: Mon, 17 Jul 2023 08:47:26 +0200 Subject: [PATCH] database changed --- sql/hpr.sql | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/sql/hpr.sql b/sql/hpr.sql index 887e18d..4cf460a 100644 --- a/sql/hpr.sql +++ b/sql/hpr.sql @@ -11806,6 +11806,12 @@ INSERT INTO `assets` (`episode_id`, `filename`, `extension`, `size`, `sha1sum`, (3882,'hpr3882.flac','flac',54360165,'e60818c0a46437e1179d93996eb74d7271fb8a29','audio/flac; charset=binary','setgid FLAC audio bitstream data, 16 bit, mono, 192 kHz, 136909306 samples'), (3882,'hpr3882.opus','opus',6727905,'9be328c07dbe2b1d64aaaf6f4cff328e3f05e613','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), (3882,'hpr3882.wav','wav',273820004,'6fdc5731efabab479eb01e8c2586024df7f41dc2','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'), +(3907,'hpr3907.wav','wav',473776700,'d3a29fac6f1cdb258a580f7013dcb87716d910a7','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'), +(3907,'hpr3907.opus','opus',10420582,'391b109151bdb850c71a19d094fa51c49c9e6625','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), +(3907,'hpr3907.flac','flac',88659760,'2bee119fe1e663e667036ffa7557255930e815f2','audio/flac; charset=binary','setgid FLAC audio bitstream data, 16 bit, mono, 192 kHz, 236887667 samples'), +(3907,'hpr3907.spx','spx',4660478,'fda59e684c2f3de3018bc90a4952c712c0c739a7','audio/ogg; charset=binary','setgid Ogg data, Speex audio'), +(3907,'hpr3907.ogg','ogg',10420362,'6030efc0bc1e573e7aed0727c4a632fb2c14fdc8','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), +(3907,'hpr3907.mp3','mp3',9872127,'a87a1f13834a36dfabca3b1e17afc0d5f937aabd','audio/mpeg; charset=binary','setgid Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1, 64 kbps, 48 kHz, Monaural'), (3906,'hpr3906.opus','opus',16836657,'5417251e9ec069fddde80d10c2831dfd17a59e19','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), (3906,'hpr3906.wav','wav',699501690,'e072d436f9694533f0ca96e41bee396a8eba5fb1','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'), (3906,'hpr3906.spx','spx',6880715,'007e994ff273f11f06a8b9fa865233aa93d8cd3c','audio/ogg; charset=binary','setgid Ogg data, Speex audio'), @@ -11830,14 +11836,14 @@ INSERT INTO `assets` (`episode_id`, `filename`, `extension`, `size`, `sha1sum`, (3903,'hpr3903.spx','spx',1800878,'cad52fb60fc4068ddf2443b31074f1c0171fed9b','audio/ogg; charset=binary','setgid Ogg data, Speex audio'), (3903,'hpr3903.ogg','ogg',4414570,'359e68117506d5ffecd1395b7a6fbc8488f7d586','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), (3903,'hpr3903.mp3','mp3',3815334,'5e751e6941c624180a8e7eeca43dbe531674f57d','audio/mpeg; charset=binary','setgid Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1, 64 kbps, 48 kHz, Monaural'), -(3902,'hpr3902.wav','wav',213093220,'71d3c5e74154123f135590d48f03d2f9a4722354','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'), -(3902,'hpr3902.opus','opus',4643539,'cd3ecaba2a0a179385133bf5fa11317aa69c54e7','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), +(3902,'hpr3902.wav','wav',213093220,'71d3c5e74154123f135590d48f03d2f9a4722354','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'); +INSERT INTO `assets` (`episode_id`, `filename`, `extension`, `size`, `sha1sum`, `mime_type`, `file_type`) VALUES (3902,'hpr3902.opus','opus',4643539,'cd3ecaba2a0a179385133bf5fa11317aa69c54e7','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), (3902,'hpr3902.flac','flac',43243204,'e02262c719cf5104f1f8ec8383e06e4d7b175718','audio/flac; charset=binary','setgid FLAC audio bitstream data, 16 bit, mono, 192 kHz, 106545894 samples'), (3902,'hpr3902.spx','spx',2096486,'0c6e06c60001522fe15152ffaf48814588a27433','audio/ogg; charset=binary','setgid Ogg data, Speex audio'), (3902,'hpr3902.ogg','ogg',4643253,'42e0f03fb7fd0d9ae074ca4a2da088989f18c1ee','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), (3902,'hpr3902.mp3','mp3',4441281,'230cbf0f68cd553aad52fd8474d3571408d4bfe3','audio/mpeg; charset=binary','setgid Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1, 64 kbps, 48 kHz, Monaural'), -(3921,'hpr3921.wav','wav',2536180096,'68d80d50ed4f23201298a399fa6be9b48c5eb849','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'); -INSERT INTO `assets` (`episode_id`, `filename`, `extension`, `size`, `sha1sum`, `mime_type`, `file_type`) VALUES (3921,'hpr3921.opus','opus',59966057,'30bf4f3e57289340b5077d25be8436db14cdb9f8','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), +(3921,'hpr3921.wav','wav',2536180096,'68d80d50ed4f23201298a399fa6be9b48c5eb849','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'), +(3921,'hpr3921.opus','opus',59966057,'30bf4f3e57289340b5077d25be8436db14cdb9f8','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), (3899,'hpr3899.wav','wav',154997100,'16defa81aacbaa00e129a5541e7ce6cf8bea10d3','audio/x-wav; charset=binary','setgid RIFF (little-endian) data, WAVE audio, mono 192000 Hz'), (3921,'hpr3921.mp3','mp3',52838969,'cad3c36ce9316bb65ac3cba3d67bd4e7c0ebb3c0','audio/mpeg; charset=binary','setgid Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1, 64 kbps, 48 kHz, Monaural'), (3921,'hpr3921.ogg','ogg',59965715,'3955817622559c99e7d36cf106f0b85966133cb3','audio/ogg; charset=binary','setgid Ogg data, Opus audio,'), @@ -12184,7 +12190,7 @@ CREATE TABLE `comments` ( `last_changed` datetime NOT NULL DEFAULT current_timestamp(), PRIMARY KEY (`id`), KEY `comments_eps_id_idx` (`eps_id`) -) ENGINE=MyISAM AUTO_INCREMENT=3773 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='New comments table populated from c5t_* tables'; +) ENGINE=MyISAM AUTO_INCREMENT=3776 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci COMMENT='New comments table populated from c5t_* tables'; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -15962,7 +15968,10 @@ INSERT INTO `comments` (`id`, `eps_id`, `comment_timestamp`, `comment_author_nam (3769,3889,'2023-07-08 14:40:16','Reto','KDirStat is dead, long live QDirStat!','Hi Ken, \r\n\r\nCould it be that you mixed up kdiff3 https://apps.kde.org/kdiff3/ with KDirStat, while we were talking in the \"Community News for June\" show?\r\n\r\n_____\r\nQDirStat is based on that same code from the original KDE 3 KDirStat of 2006. It\'s an 80% rewrite using a lot of newer Qt technologies. And there was a lot of cleaning up that old code base that had been long overdue. \r\n\r\n_____\r\nIf so, QDirStat is also interesting, it comes with nice features like \r\nPackage manager support:\r\n- Show what software package a system file belongs to.\r\n- Packages view showing disk usage of installed software packages and their individual files.\r\n- Unpackaged files view showing what files in system directories do not belong to any installed software package.\r\n\r\nAnd is just an apt install away :-)\r\n\r\nHowever, you helped me anyway!\r\nBecause, while in KDE Dolphin\'s kdiff3 integration can only compare two files in the same folder, I can use it in the terminal with paths to the files like:\r\n\r\nkdiff3 /home/reto/abc.txt /media/usb/abc.txt\r\n\r\nBr,\r\nReto','2023-07-08 15:27:36'), (3770,3894,'2023-07-08 16:02:14','Kevin O\'Brien','I loved the show','I\'m looking forward to more from this series. I would humbly suggest that aiming for a one hour show may be a bit much, I think a half-hour would be better, but maybe that is just me.','2023-07-08 16:13:41'), (3771,3892,'2023-07-11 01:59:18','dnt','Do it!','Yes! It turns out that, by completing the sentence \"Let\'s go through every single package installed in a...\", you can get a bunch of shows! Looking forward to your review of your .emacs','2023-07-12 10:34:24'), -(3772,3889,'2023-07-12 06:08:21','Ken Fallon','QDirstat is nice but I meant kdiff3','Nice tip on QDirstat\r\n\r\n\r\nBut I meant kdiff3 /path/to/old /path/to/new\r\n\r\nPerhaps I need to do a show about this...\r\n\r\n.... hold on - I see what you did there.','2023-07-12 10:34:24'); +(3772,3889,'2023-07-12 06:08:21','Ken Fallon','QDirstat is nice but I meant kdiff3','Nice tip on QDirstat\r\n\r\n\r\nBut I meant kdiff3 /path/to/old /path/to/new\r\n\r\nPerhaps I need to do a show about this...\r\n\r\n.... hold on - I see what you did there.','2023-07-12 10:34:24'), +(3773,3900,'2023-07-14 13:51:22','Hipstre','Limiter/GPodder','Thanks for this episode. I had never thought to speed up podcasts before. I have the opposite problem when listening. I am always missing things, or wanting to pause to take a note. I will try speeding up some of my podcasts using Change Tempo. I think it will make me more focused on listening.\r\n\r\nI use an RSS reader to deal with my podcasts, I had considered Gpodder in the past. I think I will give it a try again after your description of the workflow.\r\n\r\nI also use Audacity to mod podcasts. I am doing it for slightly different reasons. I like to cut out commercials, and segments I don\'t like. I am not sure if Limiter is a standard Audacity effect or a Ladspa or Nyquist plugin, but it is a great substitute for Amplify/Normalize. When set to \"Soft Limiter\" it acts like a fast riding volume control. It increases the \"power\" massively without clipping like Amplify does.\r\n\r\nA typical starting point for settings for Limiter would be something like:\r\n\r\nType: Soft Limit\r\nInput Gain (mono/Left): 3.00dB\r\nLimit to: -0.1\r\nHold (ms): 1.0\r\n\r\nI separate my automated steps, and do Limiting manually for good results (I like to get MAXIMUM VOLUME because I listen to a lot of podcasts in the car with the windows open). But even while using in a Macro, I think you could find generic settings that are preferable to Amplify/Normalize.','2023-07-14 19:21:57'), +(3774,3883,'2023-07-15 18:53:39','dnt','Clap!','This was fun and new to me. I reproduced this experiment twice. A very opportune time for this show to reach the main feed, only a few days after a famous implosion of a different kind (if you are reading this is the distant future, see \"OceanGate\"). Thanks for this!','2023-07-15 19:53:28'), +(3775,3900,'2023-07-16 15:58:48','Eugene','No need for podcast preprocessing','Hi Ahuka,\r\n\r\nI listen to podcasts on a Sansa Clip+ synced from gPodder too! It\'s an excellent little player.\r\n\r\nSpeaking of the preprocessing, there is no need to do that if you install the open source Rockbox firmware on the player, https://www.rockbox.org/wiki/SansaClip. It works great and has a lot of features! There is a control to increase/decrease pitch and speed while playing; you need to enable the Timestretch option to change them separately (https://download.rockbox.org/daily/manual/rockbox-sansaclipplus/rockbox-buildch4.html#x7-640004.3.3). It took me years before I figured out it was possible to separate the two.\r\n\r\nAlso great for podcasts are: auto resume from the previously paused place, and the ability to make the left/right buttons skip N seconds instead of to the prev/next track.\r\n\r\nHave a good day!','2023-07-16 16:32:47'); /*!40000 ALTER TABLE `comments` ENABLE KEYS */; UNLOCK TABLES; /*!50003 SET @saved_cs_client = @@character_set_client */ ; @@ -19690,7 +19699,7 @@ INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hosti (3645,'2022-07-22','How to set up a small Linux Wireguard VPN',855,'I set up a small VPN and wrote a blog post about it. This is just an audiorecording of that','

The blogpost where I describe how to set up a Wireguard VPN network:
\nhttps://www.jeroenbaten.nl/the-complete-guide-to-setting-up-a-multi-peer-wireguard-vpn/

\n',369,61,0,'CC-BY-SA','wireguard,linux, vpn',0,0,1), (3648,'2022-07-27','A response to tomorrows show',1682,'Ken brings the DeLorean up to 141.6Kph to address monochromec\'s comment on stats','
\r\n

\r\nCounter Point\r\n

\r\n

\r\nThis show is a counter point to: hpr3649 :: Linux Inlaws S01E61: 20 years in review\r\n

\r\n
\r\n

There are three kinds of lies: Lies, damned lies, and statistics

\r\n

In today\'s show we discover that Hacker Public Radio is not a Podcast Hosting Platform.

\r\n

Each day your show will be heard by as many people as can squeeze into the main auditorium at FOSDEM, or between two and three Airbus A380-800. You know the big double decker passenger plane. Every month we have on average 33,584 downloads, that\'s about 40 fully loaded Airbus A380-800.

\r\n

\"\"

\r\n

Podcast \"Hosting\" Sites, like Spotify, Apple Podcast or Google Podcasts, etc. do not host the media, they are essentially monetizing Hacker Public Radio content. And we are all absolutely fine with that because our shows are released under a Creative Commons Attribution-ShareAlike 3.0 Unported license.

\r\n

\"actual_hpr_downloads\"

\r\n

Every one of those dots is a download that is not without cost, but is provided entirely free of charge to us by our kind hosting Provider AnHonestHost.com and the volunteer project the Internet Archive. Both of which donates terabytes of storage and data transfer to us for free.

\r\n

The people to thank are our own Josh Knapp over at AnHonestHost.com, who provides the Hacker Public Radio web site.

\r\n

And the Internet Archive which is an American digital library with the stated mission of \"universal access to all knowledge\", who provide hosting for the media.

\r\n

\r\nFor more details, see the full show notes.\r\n

\r\n',30,0,1,'CC-BY-SA','statistics,syndication,reality',0,0,1), (3637,'2022-07-12','HPR feed to Sqlite',454,'First step in creating a static copy of HPR','\n

One interesting thing I read during the discussion is Ken said Every thing needed to recreate an HPR site is in the feed

\n\n
git clone https://gitlab.com/norrist/hprfeed2db\ncd hprfeed2db/\npython3 -m venv venv\nsource venv/bin/activate\npip install feedparser peewee\npython data_models.py\npython feed.py\nsqlite3 hpr.sqlite "select count(*) from episode"
\n',342,0,0,'CC-BY-SA','python, rss, sqlite',0,0,1), -(3916,'2023-08-07','HPR Community News for July 2023',0,'HPR Volunteers talk about shows released and comments posted in July 2023','\n\n

New hosts

\n

\nWelcome to our new host:
\n\n HopperMCS.\n

\n\n

Last Month\'s Shows

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
IdDayDateTitleHost
3891Mon2023-07-03HPR Community News for June 2023HPR Volunteers
3892Tue2023-07-04Emacs package curation, part 1dnt
3893Wed2023-07-05Game card design resourcesKlaatu
3894Thu2023-07-06The Page 42 Show: Ugly News Week, Show\'s Epoch!HopperMCS
3895Fri2023-07-07What\'s in my backpackStache_AF
3896Mon2023-07-10The Brochs of GlenelgAndrew Conway
3897Tue2023-07-11HPR AudioBook Club 22 - Murder at Avedon HillHPR_AudioBookClub
3898Wed2023-07-12The Oh No! News.Some Guy On The Internet
3899Thu2023-07-13Repair corrupt video files for free with untrucPaul Quirk
3900Fri2023-07-14Preparing Podcasts for ListeningAhuka
3901Mon2023-07-17Time Managmentoperat0r
3902Tue2023-07-18Introduction to a new series on FFMPEGMr. Young
3903Wed2023-07-19Why I don\'t love systemd (yet)deepgeek
3904Thu2023-07-20How to make friendsKlaatu
3905Fri2023-07-21Presenting Fred Blackfolky
3906Mon2023-07-24The Oh No! News.Some Guy On The Internet
3910Fri2023-07-28Playing Civilization IIAhuka
\n\n

Comments this month

\n\n

Note to Volunteers: Comments marked in green were read in the last\nCommunity News show and should be ignored in this one.

These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 8 comments in total.

\n

Past shows

\n

There are 3 comments on\n2 previous shows:

\n

Updated on 2023-07-12 19:51:31

\n

This month\'s shows

\n

There are 5 comments on 3 of this month\'s shows:

\n\n\n

Mailing List discussions

\n

\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the Mail List which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\nMailman.\n

\n

The threaded discussions this month can be found here:

\nhttps://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-July/thread.html\n\n\n

Events Calendar

\n

With the kind permission of LWN.net we are linking to\nThe LWN.net Community Calendar.

\n

Quoting the site:

\n
This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.
\n\n

Any other business

\n

Relocation of the HPR site

\n

TBA

\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1), +(3916,'2023-08-07','HPR Community News for July 2023',0,'HPR Volunteers talk about shows released and comments posted in July 2023','\n\n

New hosts

\n

\nWelcome to our new hosts:
\n\n HopperMCS, \n Reto.\n

\n\n

Last Month\'s Shows

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
IdDayDateTitleHost
3891Mon2023-07-03HPR Community News for June 2023HPR Volunteers
3892Tue2023-07-04Emacs package curation, part 1dnt
3893Wed2023-07-05Game card design resourcesKlaatu
3894Thu2023-07-06The Page 42 Show: Ugly News Week, Show\'s Epoch!HopperMCS
3895Fri2023-07-07What\'s in my backpackStache_AF
3896Mon2023-07-10The Brochs of GlenelgAndrew Conway
3897Tue2023-07-11HPR AudioBook Club 22 - Murder at Avedon HillHPR_AudioBookClub
3898Wed2023-07-12The Oh No! News.Some Guy On The Internet
3899Thu2023-07-13Repair corrupt video files for free with untrucPaul Quirk
3900Fri2023-07-14Preparing Podcasts for ListeningAhuka
3901Mon2023-07-17Time Managmentoperat0r
3902Tue2023-07-18Introduction to a new series on FFMPEGMr. Young
3903Wed2023-07-19Why I don\'t love systemd (yet)deepgeek
3904Thu2023-07-20How to make friendsKlaatu
3905Fri2023-07-21Presenting Fred Blackfolky
3906Mon2023-07-24The Oh No! News.Some Guy On The Internet
3907Tue2023-07-25My introduction showReto
3908Wed2023-07-26Emacs package curation, part 2dnt
3910Fri2023-07-28Playing Civilization IIAhuka
\n\n

Comments this month

\n\n

Note to Volunteers: Comments marked in green were read in the last\nCommunity News show and should be ignored in this one.

These are comments which have been made during the past month, either to shows released during the month or to past shows.\nThere are 11 comments in total.

\n

Past shows

\n

There are 4 comments on\n3 previous shows:

\n

Updated on 2023-07-16 18:10:49

\n

This month\'s shows

\n

There are 7 comments on 4 of this month\'s shows:

\n\n\n

Mailing List discussions

\n

\nPolicy decisions surrounding HPR are taken by the community as a whole. This\ndiscussion takes place on the Mail List which is open to all HPR listeners and\ncontributors. The discussions are open and available on the HPR server under\nMailman.\n

\n

The threaded discussions this month can be found here:

\nhttps://hackerpublicradio.org/pipermail/hpr_hackerpublicradio.org/2023-July/thread.html\n\n\n

Events Calendar

\n

With the kind permission of LWN.net we are linking to\nThe LWN.net Community Calendar.

\n

Quoting the site:

\n
This is the LWN.net community event calendar, where we track\nevents of interest to people using and developing Linux and free software.\nClicking on individual events will take you to the appropriate web\npage.
\n\n

Any other business

\n

Relocation of the HPR site

\n

TBA

\n\n\n',159,47,1,'CC-BY-SA','Community News',0,0,1), (3643,'2022-07-20','My computing history and the software I use',3345,'Rambling about my computing history and tech stack. ','

I introduce myself by describing my computing history and tech stack. Disjointed rambling and tangentially related thoughts ensue.

\n',406,0,1,'CC-BY-SA','UNIX, Linux, first show, BSD, Android',0,0,1), (3658,'2022-08-10','Linux Inlaws S01E62: HPR\'s inner workings',1975,'An overview of HPRs inner workings and stats based on a ludicrous claim by the Inlaws','

In this episode our two ageing heroes explore the inner workings of a podcast (or podcast hosting platform depending on your perspective) called Hacker Public Radio. Yes, the platform that the Inlaws have been using since the very inception of this rapidly growing FLOSS podcast content. Wondering what the heck this episode is all about, why exactly Martin and Chris are talking about this now and the importance of statistics, lies and damned lies? Then just listen to this episode. You may also find out the difference between mere caching and content syndication. Never mind HPR\'s inner workings.

\n

Links:

\n\n',384,111,1,'CC-BY-SA','Lies, damned lies, stats, projections, CDNs, Ford, Ferrari, Monsters, Books',0,0,1), (3679,'2022-09-08','Linux Inlaws S01E64: Non-profits in the US: A closer look at 501(c)s',2177,'The Ins and Outs of 501(c)s','

In this episode, Martin and Chris shed more light on the riveting subject of non-profit\nand not-for-profit organisations especially in the US with a special focus on the all-\nimportant topic of tax implications. Warning: Due to the fast-paced and gripping never\nmind explicit nature of this topic, people with sleeping disabilities or who are easily startled\n/ offended by graphic content should consult a member of the medical profession to ensure\nthat they are capable of handling this episode. You have been warned.

\n

Links:

\n\n',384,111,1,'CC-BY-SA','501(c)3, 501(c)6, non-profits, not-for-profits, Church of Emacs, RMS, Serviettenknödel',0,0,1), @@ -19944,6 +19953,7 @@ INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hosti (3896,'2023-07-10','The Brochs of Glenelg',782,'A verbal tour in situ of one of the two brochs of Glenelg','In this episode I visit one of the best preserved brochs on the Scottish mainland called Dun Telve. It is one of two that are a few miles outside the village of Glenelg which is rare itself in that its name is a palindrome.\n\n

\"The

\n\n

\"The

\n',268,101,0,'CC-BY-SA','history,scotland,prehistoric',0,0,1), (3895,'2023-07-07','What\'s in my backpack',514,'Stache walks through the contents of his work backpack','

I have many things in my work backpack, to include a Raspberry Pico,\nmultiple USB drives, USB cables, two laptops, my glasses and a\nsunglasses case attached to the outside.

\n

It is a 5.11 RUSH MOAB 10 Sling Pack 18L, not because I want to be\n\"tacticool\" but because I like their products, and that they support\nveterans like myself.

\n',408,23,0,'CC-BY-SA','backpack contents, toolkit',0,0,1), (3897,'2023-07-11','HPR AudioBook Club 22 - Murder at Avedon Hill',6119,'In this episode the HPR Audiobook Club discusses \"Murder at Avedon Hill\" by P.G. Holyfield','In\nthis episode the HPR Audiobook Club discusses the audiobook Murder\nat Avedon Hill by P.G. Holyfield\n
\n

Non-Spoiler Thoughts

\n
\n
    \n
  • Great reading, great audio quality, fun setting and setup. It had\nthe feel of a role playing adventure at the beginning, but was well\nfleshed out by the middle. It would have been slightly better if all of\nthe guest voices had had a pronunciation guide for the names.
  • \n
\n

Beverage Reviews

\n
\n
    \n
  • Thaj: A delicious regular chocolate malt from the\nlocal ice cream shop \"The Comfy Cow\"
  • \n
  • x1101: Barton\'s 1795
  • \n
  • Pokey Leinenkugel\'s: I have a fall variety pack,\nbut this is not the fall. I\'m not enjoying this beer as much as I\nexpected. It\'s good, and I can taste the high quality of the\ningredients, but I think it\'s just the wrong season for this.
  • \n
\n

Things We Talked About

\n
\n\n

Our Next Audiobook

\n
\n

A\nPrincess of Mars by Edgar Rice Burroughs

\n

The Next Audiobook Club\nRecording

\n
\n

Right now we are working through a backlog of older episodes that\nhave already been recorded. Once that ends we fully anticipate recording\nnew episodes with listener participation.

\n

Feedback

\n
\n

Thank you very much for listening to this episode of the HPR\nAudioBookClub. We had a great time recording this show, and we hope you\nenjoyed it as well. We also hope you\'ll consider joining us next time we\nrecord a new episode. Please leave a few words in the episode\'s comment\nsection.

\n

As always; remember to visit the HPR contribution page HPR could\nreally use your help right now.

\n

Sincerely, The HPR Audiobook Club

\n

P.S. Some people really like finding mistakes. For their enjoyment,\nwe always include a few.

\n

Our Audio

\n
\n

This episode was processed using Audacity. We\'ve been making\nsmall adjustments to our audio mix each month in order to get the best\npossible sound. Its been especially challenging getting all of our\nvoices relatively level, because everyone has their own unique setup.\nMumble is great for bringing us all together, and for recording, but\nit\'s not good at making everyone\'s voice the same volume. We\'re pretty\nhappy with the way this month\'s show turned out, so we\'d like to share\nour editing process and settings with you and our future selves (who, of\ncourse, will have forgotten all this by then).

\n

We use the \"Truncate Silence\" effect with it\'s default settings to\nminimize the silence between people speaking. When used with it\'s\ndefault (or at least reasonable) settings, Truncate Silence is extremely\neffective and satisfying. It makes everyone sound smarter, it makes the\nfile shorter without destroying actual content, and it makes a\nconversations sound as easy and fluid during playback as it was while it\nwas recorded. It can be even more effective if you can train yourself to\nremain silent instead of saying \"uuuuummmm.\" Just remember to ONLY pass\nthe file through Truncate Silence ONCE. If you pass it through a second\ntime, or if you set it too aggressively your audio may sound sped up and\nchoppy.

\n

Next we use the \"Compressor\" effect with the following settings:

\n
Threshold: -30db\n\nNoise Floor: -50db\n\nRatio: 3:1\n\nAttack Time: 0.2sec\n\nDecay Time: 1.0 sec`
\n

\"Make-up Gain for 0db after compressing\" and \"compress based on\npeaks\" were both left un-checked.

\n

After compressing the audio we cut any pre-show and post-show chatter\nfrom the file and save them in a separate file for possible use as\nouttakes after the closing music.

\n

We adjust the Gain so that the VU meter in Audacity hovers around\n-12db while people are speaking, and we try to keep the peaks under\n-6db, and we adjust the Gain on each of the new tracks so that all\nvolumes are similar, and more importantly comfortable. Once this is done\nwe can \"Mix and Render\" all of our tracks into a single track for export\nto the .FLAC file which is uploaded to the HPR server.

\n

At this point we listen back to the whole file and we work on the\nshownotes. This is when we can cut out anything that needs to be cut,\nand we can also make sure that we put any links in the shownotes that\nwere talked about during the recording of the show. We finish the\nshownotes before exporting the .aup file to .FLAC so that we can paste a\ncopy of the shownotes into the audio file\'s metadata.

\n

At this point we add new, empty audio tracks into which we paste the\nintro, outro and possibly outtakes, and we rename each track\naccordingly.

\n

Remember to save often when using Audacity. We like to save after\neach of these steps. Audacity has a reputation for being \"crashy\" but if\nyou remember save after every major transform, you will wonder how it\never got that reputation.

\n',157,53,1,'CC-BY-SA','Audiobook club, audiobook, fantasy, fiction',0,0,1), +(3907,'2023-07-25','My introduction show',1153,'About me and computers','

The show notes

\n\n',421,0,0,'CC-BY-SA','introduction,solocast',0,0,1), (3899,'2023-07-13','Repair corrupt video files for free with untruc',320,'This is how I fixed corrupt video files from my dash cam after an accident','

My original blog post on this topic: https://pquirk.com/posts/corruptvideo/

\n
    \n
  • Untruc at Github: https://github.com/anthwlock/untrunc
  • \n
  • Windows version: https://github.com/anthwlock/untrunc/releases
  • \n
  • Arch linux version: https://aur.archlinux.org/packages/untrunc-git
  • \n
\n

Make your donations to:
\nhttps://www.paypal.com/paypalme/anthwlock
\nhttps://vcg.isti.cnr.it/~ponchio/untrunc.php

\n',383,0,0,'CC-BY-NC-SA','video,corrupt,fix,file,linux',0,0,1), (3921,'2023-08-14','HPR AudioBook Club 23 - John Carter of Mars (Books 1-3)',6516,'In this episode the HPR Audiobook Club discusses the first three books of John Carter of Mars','In\nthis episode the HPR Audiobook Club discusses the audiobooks A\nPrincess of Mars, The\nGods of Mars, and The\nWarlord of Mars by Edgar Rice Burroughs\n
\n

Non-Spoiler Thoughts

\n
\n
    \n
  • Burroughs is kind of verbose, which is symbolic of the time period\nin which it was written.
  • \n
\n

Beverage Reviews

\n
\n
    \n
  • Thaj: Tempting fate with a tall glass of the highly\ntoxic, Dihydrogen\nMonoxide
  • \n
  • x1101: Shipyard\nLittle Horror of Hops Its a very amber IPA
  • \n
  • Pokey: Yellow Tail\nChardonay Its definitely a chardonay in flavor. You can taste the\ncost effectiveness up front, but it mellows out on the finish, and is\npretty okay for the price on average.
  • \n
  • FiftyOneFifty: Funky Pumpkin spiced\npumpkin ale
  • \n
  • Mark: Lagunitas IPA
  • \n
\n

Things We Talked About

\n
\n
    \n
  • Chat Secure secure XMPP,\nThink of the children!!!

  • \n
  • Technology on Barsoom

  • \n
  • Deus Ex Machina much???

  • \n
  • Names in fantasy books

  • \n
\n

Our Next Audiobook

\n
\n

See\nYou At The Morgue by Lawrence Blochman

\n

The Next Audiobook Club\nRecording

\n
\n

Right now we are working through a backlog of older episode that have\nalready been recorded. Once that ends we fully anticipate recording new\nepisodes with listener participation.

\n

Feedback

\n
\n

Thank you very much for listening to this episode of the HPR\nAudioBookClub. We had a great time recording this show, and we hope you\nenjoyed it as well. We also hope you\'ll consider joining us next time we\nrecord a new episode. Please leave a few words in the episode\'s comment\nsection.

\n

As always; remember to visit the HPR contribution page HPR could\nreally use your help right now.

\n

Sincerely, The HPR Audiobook Club

\n

P.S. Some people really like finding mistakes. For their enjoyment,\nwe always include a few.

\n

Our Audio

\n
\n

This episode was processed using Audacity. We\'ve been making\nsmall adjustments to our audio mix each month in order to get the best\npossible sound. Its been especially challenging getting all of our\nvoices relatively level, because everyone has their own unique setup.\nMumble is great for bringing us all together, and for recording, but\nit\'s not good at making everyone\'s voice the same volume. We\'re pretty\nhappy with the way this month\'s show turned out, so we\'d like to share\nour editing process and settings with you and our future selves (who, of\ncourse, will have forgotten all this by then).

\n

We use the \"Truncate Silence\" effect with it\'s default settings to\nminimize the silence between people speaking. When used with it\'s\ndefault (or at least reasonable) settings, Truncate Silence is extremely\neffective and satisfying. It makes everyone sound smarter, it makes the\nfile shorter without destroying actual content, and it makes a\nconversations sound as easy and fluid during playback as it was while it\nwas recorded. It can be even more effective if you can train yourself to\nremain silent instead of saying \"uuuuummmm.\" Just remember to ONLY pass\nthe file through Truncate Silence ONCE. If you pass it through a second\ntime, or if you set it too aggressively your audio may sound sped up and\nchoppy.

\n

Next we use the \"Compressor\" effect with the following settings:

\n
Threshold: -30db\n\nNoise Floor: -50db\n\nRatio: 3:1\n\nAttack Time: 0.2sec\n\nDecay Time: 1.0 sec
\n

\"Make-up Gain for 0db after compressing\" and \"compress based on\npeaks\" were both left un-checked.

\n

After compressing the audio we cut any pre-show and post-show chatter\nfrom the file and save them in a separate file for possible use as\nouttakes after the closing music.

\n

We adjust the Gain so that the VU meter in Audacity hovers around\n-12db while people are speaking, and we try to keep the peaks under\n-6db, and we adjust the Gain on each of the new tracks so that all\nvolumes are similar, and more importantly comfortable. Once this is done\nwe can \"Mix and Render\" all of our tracks into a single track for export\nto the .FLAC file which is uploaded to the HPR server.

\n

At this point we listen back to the whole file and we work on the\nshownotes. This is when we can cut out anything that needs to be cut,\nand we can also make sure that we put any links in the shownotes that\nwere talked about during the recording of the show. We finish the\nshownotes before exporting the .aup file to .FLAC so that we can paste a\ncopy of the shownotes into the audio file\'s metadata.

\n

At this point we add new, empty audio tracks into which we paste the\nintro, outro and possibly outtakes, and we rename each track\naccordingly.

\n

Remember to save often when using Audacity. We like to save after\neach of these steps. Audacity has a reputation for being \"crashy\" but if\nyou remember save after every major transform, you will wonder how it\never got that reputation.

\n

Attribution

\n
\n

Record\nScratch Creative Commons 0

\n',157,0,1,'CC-BY-SA','mars, audiobook club, fiction, scifi, audiobook',0,0,1), (4151,'2024-07-01','HPR Community News for June 2024',0,'HPR Volunteers talk about shows released and comments posted in June 2024','',159,47,1,'CC-BY-SA','Community News',0,0,1), @@ -19953,6 +19963,8 @@ INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hosti (3904,'2023-07-20','How to make friends',2861,'This topic is being actively researched. Not for production use.','

Show notes

\n
    \n
  • \n

    No clear mark of when friendship starts

    \n
  • \n
  • \n

    often feels \"right\" when mutual

    \n
  • \n
  • \n

    to some people friendship is a persistent state. once you have it, it's forever unless explicitly dissolved.

    \n
  • \n
  • \n

    for other people, it's something requiring maintenance. arguable this suggests that there are degrees of friendship, based on when you last spoke to one another.

    \n
  • \n
  • \n

    degrees of friendship also suggests progression. friend → close friend → best friend.

    \n
  • \n
\n

how to make a friend

\n

friendship requires communication.

\n
    \n
  • \n

    start by communicating in some way that makes the other person feel not unpleasant

    \n
  • \n
  • \n

    you're not supposed to target a friend. this can be a frustrating rule, because if you're trying to make a friend, you have to target somebody, but the general consensus is that you're not supposed to \"try too hard\". target lots of people in the hopes of stumbling across somebody to befriend.

    \n
  • \n
  • \n

    complimenting something they have done, even if it's something simple like wearing a cool shirt, is a very easy start

    \n
  • \n
  • \n

    finding ground common allows for repeated communication

    \n
  • \n
  • \n

    repetition of this is what builds friendship. this is why friendships often develop at work, but can dissolve quickly after a job change.

    \n
  • \n
  • \n

    the situation matters. chatting with someone who's being paid to interact with you, like somebody working at a store, doesn't count because in context they more or less cannot choose to stop communicating with you until you leave the store. chatting with someone who has anything to gain by chatting with you doesn't count (like an intern at work).

    \n
  • \n
  • \n

    to speed up a developing friendship, you can invite the person to interact with you on something with a clearly defined goal. You like coding? I like coding! Would you care to collaborate for 4 hours on a script that would help me find my Raspberry Pi on my network?

    \n
  • \n
  • \n

    during the activity, continue to communicate. this can be difficult because you're doing an activity that you both claim to enjoy, so in theory the activity should be sufficient to further the friendship. However, the activity doesn't build the friendship, it only builds a partnership. It's the communication that builds friendship.

    \n
  • \n
\n

unfortunately, there's no clear point during this process at which you know you have made a friend. so you have to define what a friend is, to you, and then work toward that goal.

\n

Here are some examples of definitions for friendship. There is no right or wrong here, it's really just setting your own expectations and requirements:

\n
    \n
  • \n

    A friend is someone to hang out with on sundays.

    \n
  • \n
  • \n

    A friend is someone I can call when I've got some free time to kill.

    \n
  • \n
  • \n

    A friend is someone I can play video games with online.

    \n
  • \n
  • \n

    A friend is someone I can call, day or night, when I need help.

    \n
  • \n
  • \n

    A friend is someone who has come over for dinner, and has met my family, and who I see at least once a month.

    \n
  • \n
\n

There's no official definition, so you must define it yourself.\nYour definition may differ from the other person's definition.\nYou might say \"we are best friends\" but they might say \"no, I already have a best friend, but you're a good friend\" and THAT'S OK.

\n

If it helps, classify what kinds of friends you have so you understand what kinds of relationships you are maintaining.\nCommunicate with your friends, even if it's only to let them know that you're bad at communicating on a regular basis, or ask them how frequently they need to communicate to maintain a healthy friendship.

\n',78,108,0,'CC-BY-SA','autism,friendship,relationship,social engineering',0,0,1), (3905,'2023-07-21','Presenting Fred Black',1105,'I have a short talk to present Fred Black.','
    \n
  • IB-program https://ibo.org/
  • \n
  • Animals To The Max https://corbinmaxey.com/podcast-1
  • \n
  • I Spend A Day With... https://feeds.megaphone.fm/ispentadaywith
  • \n
  • The Vinyl Guide https://www.thevinylguide.com/
  • \n
  • NSOD - Norsken, Svensken og Dansken https://podkast.nrk.no/program/norsken_svensken_og_dansken.rss
  • \n
\n',309,0,0,'CC-BY-SA','school,podcasts,instrument,quiz',0,0,1), (3906,'2023-07-24','The Oh No! News.',1741,'Sgoti discusses the threat of convenience.','

The Oh No! news.

\n

Oh No! News is Good\nNews.

\n
    \n
  • TAGS: Oh No News, InfoSec, browser security,\nsession tokens, session id
  • \n
\n
\n

InfoSec; the language\nof security.

\n
    \n
  • Source: Session ID.
    \n
  • \n
  • Source: JSON Web\nToken.
    \n\n
      \n
    • Terms\nof Use: Copyleft, free content
      \n
    • \n
  • \n
  • Source: Session\nvs Token Based Authentication.
    \n\n
      \n
    • Terms\nof Use: CC-BY-SA (with CC-BY-NC-SA elements).
      \n
    • \n
  • \n
  • Source: Steal Application\nAccess Token. Adversaries can steal application access tokens as a\nmeans of acquiring credentials to access remote systems and resources.\nApplication access tokens are used to make authorized API requests on\nbehalf of a user or service and are commonly used as a way to access\nresources in cloud and container-based applications and\nsoftware-as-a-service (SaaS).
    \n\n
      \n
    • Terms of\nUse: Similar to CC-BY-SA
      \n
    • \n
  • \n
  • Source: Analysis:\nCircleCI attackers stole session cookie to bypass MFA.
    \n\n
      \n
    • Terms of\nUse: Section 8. CONTENT AND CONTENT LICENSES. NOT\ncertain
      \n
    • \n
  • \n
  • Source: How to Prevent\nSession Hijacking?
    \n\n
  • \n
\n
\n
    \n
  • Additional Information.\n
      \n
    • What is a \"Data\nBreach\"? A data breach is a security violation, in which sensitive,\nprotected or confidential data is copied, transmitted, viewed, stolen,\naltered or used by an individual unauthorized to do so.
    • \n
    • What is \"Malware\"?\nMalware (a portmanteau for\nmalicious software) is any software intentionally designed to cause\ndisruption to a computer, server, client, or computer network, leak\nprivate information, gain unauthorized access to information or systems,\ndeprive access to information, or which unknowingly interferes with the\nuser\'s computer security and privacy.
    • \n
    • What is a \"Payload\"?\nIn the context of a computer virus or worm, the payload is the portion\nof the malware which performs malicious action; deleting data, sending\nspam or encrypting data. In addition to the payload, such malware also\ntypically has overhead code aimed at simply spreading itself, or\navoiding detection.
    • \n
    • What is \"Phishing\"?\nPhishing is a form of social engineering\nwhere attackers deceive people into revealing sensitive information or\ninstalling malware such as ransomware. Phishing\nattacks have become increasingly sophisticated and often transparently\nmirror the site being targeted, allowing the attacker to observe\neverything while the victim is navigating the site, and transverse any\nadditional security boundaries with the victim.
    • \n
    • Social\nengineering (security) In the context of information security,\nsocial engineering is the psychological\nmanipulation of people into performing actions or divulging\nconfidential information. A type of confidence trick for the purpose of\ninformation gathering, fraud, or system access, it differs from a\ntraditional \"con\" in that it is often one of many steps in a more\ncomplex fraud scheme.
      \n
    • \n
    • What is \"Information\nSecurity\" (InfoSec)? Information security, sometimes shortened to\nInfoSec, is the practice of protecting information by mitigating information risks. It\nis part of information risk\nmanagement.\n
        \n
      • Information Security Attributes: Confidentiality, Integrity and Availability (C.I.A.).\nInformation Systems are composed in three main portions, hardware,\nsoftware and communications with the purpose to help identify and apply\ninformation security industry standards, as mechanisms of protection and\nprevention, at three levels or layers: physical, personal and\norganizational. Essentially, procedures or policies are implemented to\ntell administrators, users and operators how to use products to ensure\ninformation security within the organizations.
      • \n
    • \n
    • What is \"Risk\nmanagement\"? Risk management is the identification, evaluation, and\nprioritization of risks followed by coordinated and economical\napplication of resources to minimize, monitor, and control the\nprobability or impact of unfortunate events or to maximize the\nrealization of opportunities.
    • \n
    • What is a \"Vulnerability\"\n(computing)? Vulnerabilities are flaws in a computer system that\nweaken the overall security of the device/system. Vulnerabilities can be\nweaknesses in either the hardware itself, or the software that runs on\nthe hardware.
    • \n
    • What is an \"Attack\nSurface\"? The attack surface of a software environment is the sum of\nthe different points (for \"attack vectors\") where an unauthorized user\n(the \"attacker\") can try to enter data to or extract data from an\nenvironment. Keeping the attack surface as small as possible is a basic\nsecurity measure.
    • \n
    • What is an \"Attack\nVector\"? In computer security, an attack vector is a specific path,\nmethod, or scenario that can be exploited to break into an IT system,\nthus compromising its security. The term was derived from the\ncorresponding notion of vector in biology. An attack vector may be\nexploited manually, automatically, or through a combination of manual\nand automatic activity.
    • \n
    • What is\n\"Standardization\"? Standardization is the process of implementing\nand developing technical standards based on the consensus of different\nparties that include firms, users, interest groups, standards\norganizations and governments. Standardization can help maximize\ncompatibility, interoperability, safety, repeatability, or quality. It\ncan also facilitate a normalization of formerly custom processes.\n
    • \n
    • What is a \"Replay\nattack\"? A replay attack is a form of network attack in which valid\ndata transmission is maliciously or fraudulently repeated or delayed.\nAnother way of describing such an attack is: \"an attack on a security\nprotocol using a replay of messages from a different context into the\nintended (or original and expected) context, thereby fooling the honest\nparticipant(s) into thinking they have successfully completed the\nprotocol run.\"
    • \n
    • What is a\n\"Man-in-the-middle attack\"? In cryptography and computer security, a\nman-in-the-middle, ..., attack is a cyberattack where the attacker\nsecretly relays and possibly alters the communications between two\nparties who believe that they are directly communicating with each\nother, as the attacker has inserted themselves between the two\nparties.
    • \n
    • What is \"Transport Layer\nSecurity\" (TLS)? Transport Layer Security (TLS) is a cryptographic\nprotocol designed to provide communications security over a computer\nnetwork. The protocol is widely used in applications such as email,\ninstant messaging, and voice over IP, but its use in securing HTTPS\nremains the most publicly visible.
    • \n
    • What is a \"Handshake\"\n(computing)?. In computing, a handshake is a signal between two\ndevices or programs, used to, e.g., authenticate, coordinate. An example\nis the handshaking between a hypervisor and an application in a guest\nvirtual machine.
    • \n
    • What is Security\ntheater? The practice of taking security measures that are\nconsidered to provide the feeling of improved security while doing\nlittle or nothing to achieve it.
      \n
    • \n
  • \n
\n
\n\n',391,74,0,'CC-BY-SA','Oh No News, InfoSec, browser security, session tokens, session id',0,0,1); +INSERT INTO `eps` (`id`, `date`, `title`, `duration`, `summary`, `notes`, `hostid`, `series`, `explicit`, `license`, `tags`, `version`, `downloads`, `valid`) VALUES (3908,'2023-07-26','Emacs package curation, part 2',667,'Let\'s go through every single package installed in my Emacs configuration. File 2 of 3.','

We discuss the packages installed in the second of three files that\nmake up my emacs config.

\n
;;; init-base.el ---  The basics\n;;; Commentary:\n;;; Packages for my personal and work laptop, but not termux.\n\n;;; Code:\n\n;;;;;;;;;;;;;;;\n;;; Writing ;;;\n;;;;;;;;;;;;;;;\n\n;; Focused writing mode\n(use-package olivetti\n  :hook (olivetti-mode . typewriter-mode-toggle)\n  :bind ("C-x C-w" . olivetti-mode)\n  :custom (olivetti-body-width 64)\n  :config\n      (defvar-local typewriter-mode nil\n      "Typewriter mode, automatically scroll down to keep cursor in\n      the middle of the screen. Setting this variable explicitly will\n      not do anything, use typewriter-mode-on, typewriter-mode-off\n      and typewriter-mode-toggle instead.")\n      (defun typewriter-mode-on()\n      "Automatically scroll down to keep cursor in the middle of screen."\n        (interactive)\n        (setq-local typewriter-mode t)\n        (centered-cursor-mode +1))\n      (defun typewriter-mode-off()\n      "Automatically scroll down to keep cursor in the middle of screen."\n        (interactive)\n        (kill-local-variable 'typewriter-mode)\n        (centered-cursor-mode -1))\n      (defun typewriter-mode-toggle()\n        "Toggle typewriter scrolling mode on and off."\n        (interactive)\n        (if typewriter-mode (typewriter-mode-off) (typewriter-mode-on))))\n\n(use-package centered-cursor-mode)\n\n;; Check for weasel words and some other simple rules\n(use-package writegood-mode\n  :bind ("C-c g" . writegood-mode))\n\n;; spellchecking\n(use-package flyspell-correct\n  :after flyspell\n  :bind (:map flyspell-mode-map\n              ("C-;" . flyspell-correct-wrapper)))\n\n;; show correction options in a popup instead of the minibuffer\n(use-package flyspell-correct-popup\n  :after (flyspell-correct))\n\n;online thesaurus service from powerthesaurus.org\n(use-package powerthesaurus)\n\n;; WordNet Thesaurus replacement\n(use-package synosaurus\n  :custom (synosaurus-choose-method 'default)\n  :config (when window-system\n            (if (string= (x-server-vendor) "Microsoft Corp.")\n              (setq synosaurus-wordnet--command "C:\\\\Program Files (x86)\\\\WordNet\\\\2.1\\\\bin\\\\wn.exe"))))\n\n;; WordNet search and view\n(use-package wordnut\n  :bind ("C-c s" . wordnut-search)\n  :config (when window-system\n            (if (string= (x-server-vendor) "Microsoft Corp.")\n                (setq wordnut-cmd "C:\\\\Program Files (x86)\\\\WordNet\\\\2.1\\\\bin\\\\wn.exe"))))\n\n;; fill and unfill with the same key\n(use-package unfill\n  :bind ("M-q" . unfill-toggle))\n\n;; Markdown...\n(use-package markdown-mode)\n\n;;;;;;;;;;;;;;\n;;; Coding ;;;\n;;;;;;;;;;;;;;\n\n;; Syntax checking\n(use-package flycheck\n  :diminish\n  :init (global-flycheck-mode))\n\n(use-package flycheck-popup-tip\n  :after (flycheck)\n  :hook (flycheck-mode-hook . flycheck-popup-tip-mode))\n\n;; Web design\n(use-package emmet-mode\n  :hook (sgml-mode . emmet-mode) ;; Auto-start on any markup modes\n        (css-mode . emmet-mode)) ;; enable Emmet's css abbreviation.\n\n(use-package sass-mode)\n\n(use-package web-mode)\n\n;; Python\n(use-package python\n  :mode ("\\\\.py\\\\'" . python-mode)\n  :interpreter ("python" . python-mode))\n\n;; highlight todo items everywhere\n(use-package hl-todo\n  :straight (:host github :repo "tarsius/hl-todo")\n  :custom (hl-todo-keyword-faces\n             `(("FIXME" error bold)\n             ("STUB" error bold)\n             ("REPLACETHIS" error bold)\n             ("REVISIT" error bold)))\n          (hl-todo-exclude-modes nil)\n  :config (add-to-list 'hl-todo-include-modes 'org-mode)\n  :init (global-hl-todo-mode))\n\n;; git\n(use-package magit)\n\n(use-package git-timemachine)\n\n;; rest APIs via org source block\n(use-package ob-restclient)\n\n;;; END ;;;\n\n(provide 'init-base)\n;;; init-base.el ends here
\n',399,0,0,'CC-BY-SA','emacs,elisp',0,0,0), +(3918,'2023-08-09','Emacs package curation, part 3',864,'Let\'s go through every single package installed in my Emacs configuration. The last one.','

We discuss the packages installed in the second of three files that\nmake up my emacs config.

\n

Since recording, I pulled in some EXWM (the Emacs X Window Manager,\nthat\'s right), even though I\'m not actually using it, I\'m still using\nstumpWM.

\n

I have also added pass, the password manager, khardel, an emacs\npackage for the khard CLI address book application.

\n

I also moved (server-start) to this file, so that it\'ll only happen\nwhen I\'m on linux.

\n
;;; init-extra.el --- Extra init stuff\n;;; Commentary:\n;;; Stuff just for my personal laptop, not for my work laptop or termux, for example.\n\n;;; Code:\n\n;;;;;;;;;;;;;;;;\n;;; org-roam ;;;\n;;;;;;;;;;;;;;;;\n\n(use-package org-roam\n  :demand t\n  :straight (:host github :repo "org-roam/org-roam"\n             :files (:defaults "extensions/*"))\n  :custom (org-roam-mode-sections (list #'org-roam-backlinks-section\n                                        #'org-roam-reflinks-section\n                                        #'org-roam-unlinked-references-section))\n  :init (setq org-roam-directory "~/org/roam/"\n              org-roam-capture-templates\n                 '(("o" "outline" plain\n                     "%?"\n                     :if-new\n                     (file+head "${slug}.org" "#+title: ${title}\\n#+filetags: :outline:\\n")\n                     :immediate-finish t\n                     :unnarrowed t)\n                  ("r" "reference" plain "%?"\n                     :if-new\n                     (file+head "${slug}.org" "#+title: ${title}\\n")\n                     :immediate-finish t\n                     :unnarrowed t)\n                  ("m" "memo" entry "* ${title}\\n%?"\n                     :if-new\n                     (file "memos.org")\n                     :immediate-finish t\n                     :unnarrowed t)))\n  :bind (("C-c n l" . org-roam-buffer-toggle)\n         ("C-c n f" . org-roam-node-find)\n         ("C-c n g" . org-roam-graph)\n         ("C-c n i" . org-roam-node-insert)\n         ("C-c n c" . org-roam-capture)\n         ;; Dailies\n         ("C-c n j" . org-roam-dailies-capture-today))\n  :config\n  ;; If you're using a vertical completion framework, you might want a more informative completion interface\n  (setq org-roam-node-display-template (concat "${title:*} " (propertize "${tags:10}" 'face 'org-tag)))\n  (org-roam-db-autosync-mode)\n  ;; If using org-roam-protocol\n  (require 'org-roam-protocol))\n\n;; citations\n(use-package citar\n  :after org-roam\n  :custom (org-cite-insert-processor 'citar)\n          (org-cite-follow-processor 'citar)\n          (org-cite-activate-processor 'citar)\n          (citar-bibliography '("~/org/biblio.bib"))\n          (citar-notes-paths '("~/org/roam"))\n          (citar-file-note-extensions '("org"))\n  :hook (LaTeX-mode . citar-capf-setup)\n        (org-mode . citar-capf-setup)\n  :bind (("C-c n b" . #'citar-open-notes)\n          :map org-mode-map :package org\n          ("C-c b" . #'org-cite-insert)))\n\n;; view your org-roam notes on a map\n(use-package org-roam-ui\n  :after org-roam\n  :custom (org-roam-ui-sync-theme t)\n          (org-roam-ui-follow t)\n          (org-roam-ui-update-on-save t)\n          (org-roam-ui-open-on-start t))\n\n;; archive web pages in org attachments\n(use-package org-board\n  :after org\n  :custom (org-board-default-browser #'browse-url)\n          (org-board-property "ROAM_REFS")\n  :bind (:map org-mode-map\n          ("C-c B a" . org-board-archive)\n          ("C-c B o" . org-board-open)\n          ("C-c B D" . org-board-delete-all)))\n\n;;;;;;;;;;;;;;;\n;;; Writing ;;;\n;;;;;;;;;;;;;;;\n\n; something like grammarly, but open source\n(use-package langtool)\n\n;; better than docview, for pdf\n(use-package pdf-tools)\n\n;; annotating docs in org files\n(use-package org-noter)\n\n;; epub\n(use-package nov\n :mode ("\\\\.epub$" . nov-mode))\n\n;;; Invoke quick emacs windows to edit anything anywhere.\n;;; bind a key in xorg to ~emacsclient -c (emacs-everywhere)~\n(use-package emacs-everywhere)\n\n;;;;;;;;;;;;;;\n;;; Auctex ;;;\n;;;;;;;;;;;;;;\n(straight-use-package '( auctex\n  :host nil :repo "https://git.savannah.gnu.org/git/auctex.git"\n  :pre-build (("./autogen.sh")\n                  ("./configure" "--without-texmf-dir" "--with-lispdir=.")\n                  ("make"))))\n\n  (setq TeX-data-directory (expand-file-name "straight/repos/auctex" user-emacs-directory)\n      TeX-lisp-directory TeX-data-directory)\n\n  (eval-after-load 'info\n      '(add-to-list 'Info-additional-directory-list\n          (expand-file-name "straight/repos/auctex/doc" user-emacs-directory)))\n  (load (expand-file-name "straight/repos/auctex/auctex.el" user-emacs-directory) nil t t)\n  (load (expand-file-name "straight/repos/auctex/preview-latex.el" user-emacs-directory) nil t t)\n\n(use-package evil-tex)\n\n(use-package latex-preview-pane\n  :custom (latex-preview-pane-use-frame t))\n\n(use-package adaptive-wrap)\n\n;;; END AUCTEX ;;;\n\n;;;;;;;;;;;;;;;;;;;\n;;; Programming ;;;\n;;;;;;;;;;;;;;;;;;;\n\n;; downloading and viewing Dash documentation files\n(use-package dash-docs\n  :init (defun elisp-doc ()\n            (setq-local consult-dash-docsets '("Emacs Lisp")))\n        (add-hook 'emacs-lisp-mode-hook 'elisp-doc)\n  :custom (dash-docs-docsets-path (expand-file-name "docsets" user-emacs-directory))\n          (dash-docs-browse-func 'eww))\n\n(use-package consult-dash\n  :straight (:host codeberg :repo "rahguzar/consult-dash")\n  :bind (("M-s d" . consult-dash))\n  :after consult\n  :config\n  ;; Use the symbol at point as initial search term\n  (consult-customize consult-dash :initial (thing-at-point 'symbol)))\n\n;;;;;;;;;;;;;\n;;; Email ;;;\n;;;;;;;;;;;;;\n\n(use-package notmuch\n  :commands notmuch\n  :config (defun notmuch-show-view-html ()\n            "Open the text/html part of the current message using\n            `notmuch-show-view-part'. From https://emacs.stackexchange.com/a/63457"\n            (interactive)\n            (save-excursion\n                (goto-char (prop-match-beginning\n                            (text-property-search-forward\n                            :notmuch-part "text/html"\n                            (lambda (value notmuch-part)\n                                (equal (plist-get notmuch-part :content-type)\n                            value)))))\n            (notmuch-show-view-part)))\n          ;; Enable link to message via org-store-link\n          (load-file (expand-file-name "org-notmuch.el" user-emacs-directory))\n          (require 'org-notmuch)\n  :bind (:map notmuch-show-mode-map\n              (". v" . notmuch-show-view-html))\n  :custom (notmuch-draft-folder "local/drafts")\n          (notmuch-search-oldest-first nil)\n          (notmuch-fcc-dirs "fastmail/sent")\n          (notmuch-tagging-keys '(("r" ("+receipt" "-inbox") "Receipt")))\n          (sendmail-program (executable-find "msmtp"))\n          (message-sendmail-f-is-evil t)\n          (message-sendmail-extra-arguments '("--read-envelope-from")))\n\n(use-package khardel\n  :after notmuch\n  :bind (:map notmuch-message-mode-map\n         ("C-c M-k" . khardel-insert-email)))\n\n;;;;;;;;;;;;\n;;; PASS ;;;\n;;;;;;;;;;;;\n\n(use-package pass)\n\n;;;;;;;;;;;;\n;;; EXWM ;;;\n;;;;;;;;;;;;\n\n(use-package xelb\n  :disabled t\n  :straight (:host github :repo "ch11ng/xelb"))\n\n(use-package exwm\n  :disabled t\n  :straight (:host github :repo "ch11ng/exwm")\n  :defer t\n  :config (require 'exwm-systemtray)\n          (require 'exwm-randr)\n          (setq xcb:connection-timeout 20)\n          (exwm-systemtray-enable)\n          (add-hook 'exwm-update-class-hook\n                  (lambda ()\n                  (exwm-workspace-rename-buffer exwm-class-name)))\n          (add-hook 'exwm-randr-screen-change-hook\n                    (lambda ()\n                      (start-process-shell-command\n                       "autorandr" nil "autorandr -c")))\n          (defun exwm-randr-mobile()\n          "Load a xrandr profile to use only the laptop screen."\n          (interactive)\n          (start-process-shell-command "xrandr" nil "xrandr --output eDP-1 --auto --output DP-1 --off"))\n          (defun exwm-randr-docked()\n          "Load a xrandr profile to use only the connected external screen DP-1."\n          (interactive)\n          (start-process-shell-command "xrandr" nil "xrandr --output eDP-1 --off --output DP-1 --auto"))\n          (defun exwm-randr-chair()\n          "Load a xrandr profile to use both the laptop screen and the connected screen."\n          (interactive)\n          (start-process-shell-command "xrandr" nil "xrandr --output HDMI-1 --auto --scale 1.3 --output eDP-1 --off"))\n          (defun exwm-randr-all()\n          "Load a xrandr profile to use both the laptop screen and the connected screen."\n          (interactive)\n          (start-process-shell-command "xrandr" nil "xrandr --output eDP-1 --primary --output DP-1 --above eDP-1")\n          (setq exwm-randr-workspace-output-plist '(0 "eDP-1" 1 "DP-1"))\n          )\n          (exwm-randr-enable)\n    :custom (exwm-input-global-keys\n              `((,(kbd "s-r") . exwm-reset)\n                (,(kbd "s-w") . exwm-workspace-switch)\n                (,(kbd "s-a") . exwm-randr-all)\n                (,(kbd "s-c") . exwm-randr-chair)\n                (,(kbd "s-d") . exwm-randr-docked)\n                (,(kbd "s-m") . exwm-randr-mobile)\n                (,(kbd "s-k") . exwm-input-release-keyboard)\n                (,(kbd "s-f") . exwm-layout-toggle-fullscreen)\n                (,(kbd "s-p") . pass)\n                (,(kbd "s-t") . exwm-workspace-switch-to-buffer)\n                (,(kbd "s-&") . (lambda (command)\n                                       (interactive (list (read-shell-command "$ ")))\n                                       (start-process-shell-command command nil command)))\n                ,@(mapcar (lambda (i)\n                       `(,(kbd (format "s-%d" i)) .\n                           (lambda ()\n                               (interactive)\n                               (exwm-workspace-switch-create ,i))))\n                     (number-sequence 0 9))\n                ))\n          )\n\n;; start emacs server\n(server-start)\n\n;;; END ;;;\n\n(provide 'init-extra)\n;;; init-extra.el ends here
\n',399,0,0,'CC-BY-SA','emacs,elisp',0,0,0); /*!40000 ALTER TABLE `eps` ENABLE KEYS */; UNLOCK TABLES; @@ -19974,7 +19986,7 @@ CREATE TABLE `hosts` ( `valid` int(1) NOT NULL DEFAULT 1, `espeak_name` text DEFAULT NULL COMMENT 'Version of the host name for use with espeak', PRIMARY KEY (`hostid`) -) ENGINE=MyISAM AUTO_INCREMENT=421 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; +) ENGINE=MyISAM AUTO_INCREMENT=422 DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci; /*!40101 SET character_set_client = @saved_cs_client */; -- @@ -20221,6 +20233,7 @@ INSERT INTO `hosts` (`hostid`, `host`, `email`, `profile`, `license`, `local_ima (298,'tcuc','infotcuc.nospam@nospam.gmail.com','

The American viking.

','CC-BY-SA',0,'',1,'T C U C '), (299,'Fin','finlaygmitchell.nospam@nospam.gmail.com','','CC-BY-SA',1,'',1,'Fin'), (300,'Mr. Young','by33zi.nospam@nospam.protonmail.com','

\r\nI am a dad, small-business owner, scientist, and Linux enthousiast with a lust for knowledge. You can find me on Mastadon at @ryoung39@mastodon.online\r\n

','CC-BY-SA',1,'',1,'b-yeezi'), +(421,'Reto','reto007.nospam@nospam.yahoo.com','

Tech enthusiast from Switzerland

','CC-BY-SA',0,'',1,'ray toe'), (301,'Amunizp','amunizp.nospam@nospam.member.fsf.org','

\r\nI am a scientist as my day job and in my free time I enjoy being with my family. I also contribute to my local hacerspace/makerspace: https://wiki.richmondmakerlabs.uk/index.php?title=Main_Page\r\n

\r\n

\r\nmy handle at gnusocial is @andresinmp@loadaverage.org\r\n

','CC-BY-SA',1,'',1,'A MunizP'), (302,'Stilvoid','steve.nospam@nospam.offend.me.uk','

\r\nDoes things with servers. Deeply embedded in the Linux world with no way out and sees that as a great thing. Father of one. Often too polite.\r\n

\r\n

\r\nIf you want to know more about me, look here: https://offend.me.uk/about/ and feel free to get in touch.\r\n

','CC-BY-SA',0,'',1,'Stilvoid'), (303,'Alpha32','andrew.neher1.nospam@nospam.gmail.com','

\r\nJust a guy with a microphone. And a computer. and some other stuff, but that\'s not important.\r\n

','CC-BY-SA',0,'',1,'Alpha32'), @@ -20871,4 +20884,4 @@ UNLOCK TABLES; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2023-07-14 6:38:32 +-- Dump completed on 2023-07-17 6:46:27