planet.gnu.org.rss20.xml - sfeed_tests - sfeed tests and RSS and Atom files
 (HTM) git clone git://git.codemadness.org/sfeed_tests
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       planet.gnu.org.rss20.xml (217822B)
       ---
            1 <?xml version="1.0"?>
            2 <rss version="2.0">
            3 
            4 <channel>
            5         <title>Planet GNU</title>
            6         <link>https://planet.gnu.org/</link>
            7         <language>en</language>
            8         <description>Planet GNU - https://planet.gnu.org/</description>
            9 
           10 
           11 <item>
           12         <title>GNU Anastasis: GNU Anastasis v0.1.0 released</title>
           13         <guid>https://anastasis.lu/en/news/news/2021-09.html</guid>
           14         <link>https://anastasis.lu/en/news/news/2021-09.html</link>
           15      <description>  &lt;article&gt;
           16              GNU Anastasis is a Free Software protocol and implementation that allows users to securely deposit core secrets with an open set of escrow providers and to recover these secrets if their original copies are lost.
           17            &lt;/article&gt; </description> 
           18         <pubDate>Tue, 07 Sep 2021 22:00:00 +0000</pubDate>
           19 
           20 </item> 
           21 <item>
           22         <title>Applied Pokology: Array boundaries and closures in Poke</title>
           23         <guid>http://jemarch.net/pokology-03102019.html</guid>
           24         <link>http://jemarch.net/pokology-03102019.html</link>
           25      <description>  Poke arrays are rather peculiar.  One of their seemingly
           26         bizarre characteristics is the fact that the expressions
           27         calculating their boundaries (when they are bounded) evaluate
           28         in their own lexical environment, which is captured.  In other
           29         words: the expressions denoting the boundaries of Poke arrays
           30         conform closures.  Also, the way they evaluate may be
           31         surprising.  This is no capricious. </description> 
           32         <pubDate>Sun, 05 Sep 2021 22:05:53 +0000</pubDate>
           33 
           34 </item> 
           35 <item>
           36         <title>gzip @ Savannah: gzip-1.11 released [stable]</title>
           37         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10044</guid>
           38         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10044</link>
           39      <description>  &lt;blockquote class=&quot;verbatim&quot;&gt;&lt;p&gt; This is to announce gzip-1.11, a stable release.&lt;br /&gt;
           40 &lt;br /&gt;
           41 There have been 43 commits by 5 people in the 2.7(!) years since 1.10.&lt;br /&gt;
           42 &lt;br /&gt;
           43 See the NEWS below for a brief summary.&lt;br /&gt;
           44 &lt;br /&gt;
           45 Thanks to everyone who has contributed!&lt;br /&gt;
           46 The following people contributed changes to this release:&lt;br /&gt;
           47 &lt;br /&gt;
           48   Bjarni Ingi Gislason (1)&lt;br /&gt;
           49   Dmitry V. Levin (1)&lt;br /&gt;
           50   Ilya Leoshkevich (8)&lt;br /&gt;
           51   Jim Meyering (20)&lt;br /&gt;
           52   Paul Eggert (13)&lt;br /&gt;
           53 &lt;br /&gt;
           54 Jim [on behalf of the gzip maintainers]&lt;br /&gt;
           55 ==================================================================&lt;br /&gt;
           56 &lt;br /&gt;
           57 Here is the GNU gzip home page:&lt;br /&gt;
           58     http://gnu.org/s/gzip/&lt;br /&gt;
           59 &lt;br /&gt;
           60 For a summary of changes and contributors, see:&lt;br /&gt;
           61   http://git.sv.gnu.org/gitweb/?p=gzip.git;a=shortlog;h=v1.11&lt;br /&gt;
           62 or run this command from a git-cloned gzip directory:&lt;br /&gt;
           63   git shortlog v1.10..v1.11&lt;br /&gt;
           64 &lt;br /&gt;
           65 To summarize the 2581 gnulib-related changes, run these commands&lt;br /&gt;
           66 from a git-cloned gzip directory:&lt;br /&gt;
           67   git checkout v1.11&lt;br /&gt;
           68   git submodule summary v1.10&lt;br /&gt;
           69 &lt;br /&gt;
           70 ==================================================================&lt;br /&gt;
           71 Here are the compressed sources:&lt;br /&gt;
           72   https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.gz   (1.2MB)&lt;br /&gt;
           73   https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz   (788KB)&lt;br /&gt;
           74 &lt;br /&gt;
           75 Here are the GPG detached signatures[*]:&lt;br /&gt;
           76   https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.gz.sig&lt;br /&gt;
           77   https://ftp.gnu.org/gnu/gzip/gzip-1.11.tar.xz.sig&lt;br /&gt;
           78 &lt;br /&gt;
           79 Use a mirror for higher download bandwidth:&lt;br /&gt;
           80   https://www.gnu.org/order/ftp.html&lt;br /&gt;
           81 &lt;br /&gt;
           82 Here are SHA1 and SHA256 checksums:&lt;br /&gt;
           83   ee2d3f44d8b370db7090b4c3250132cd62b38ec6  gzip-1.11.tar.gz&lt;br /&gt;
           84   PooODEW60wCTQdzhfXFTbExlXZMTA5AhznVUomzVDtk  gzip-1.11.tar.gz&lt;br /&gt;
           85   adf4964893a45a211a888f8943c939f2794d86d4  gzip-1.11.tar.xz&lt;br /&gt;
           86   m5qV1o/cuTaEmk1vrai/hobN31i5smycQontDJKneQc  gzip-1.11.tar.xz&lt;br /&gt;
           87 &lt;br /&gt;
           88 The SHA256 checksum is base64 encoded, instead of the&lt;br /&gt;
           89 hexadecimal encoding that most checksum tools default to.&lt;br /&gt;
           90 &lt;br /&gt;
           91 [*] Use a .sig file to verify that the corresponding file (without the&lt;br /&gt;
           92 .sig suffix) is intact.  First, be sure to download both the .sig file&lt;br /&gt;
           93 and the corresponding tarball.  Then, run a command like this:&lt;br /&gt;
           94 &lt;br /&gt;
           95   gpg --verify gzip-1.11.tar.gz.sig&lt;br /&gt;
           96 &lt;br /&gt;
           97 If that command fails because you don&#39;t have the required public key,&lt;br /&gt;
           98 then run this command to import it:&lt;br /&gt;
           99 &lt;br /&gt;
          100   gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE&lt;br /&gt;
          101 &lt;br /&gt;
          102 and rerun the &#39;gpg --verify&#39; command.&lt;br /&gt;
          103 &lt;br /&gt;
          104 This release was bootstrapped with the following tools:&lt;br /&gt;
          105   Autoconf 2.71&lt;br /&gt;
          106   Automake 1.16d&lt;br /&gt;
          107   Gnulib v0.1-4886-g93280a4bd&lt;br /&gt;
          108 &lt;br /&gt;
          109 NEWS&lt;br /&gt;
          110 &lt;br /&gt;
          111 * Noteworthy changes in release 1.11 (2021-09-03) [stable]&lt;br /&gt;
          112 &lt;br /&gt;
          113 ** Performance improvements&lt;br /&gt;
          114 &lt;br /&gt;
          115   IBM Z platforms now support hardware-accelerated deflation.&lt;br /&gt;
          116 &lt;/p&gt;&lt;/blockquote&gt; </description> 
          117         <pubDate>Fri, 03 Sep 2021 15:00:02 +0000</pubDate>
          118 
          119 </item> 
          120 <item>
          121         <title>FSF News: A wake-up call for iPhone users -- it&#39;s time to go</title>
          122         <guid>http://www.fsf.org/news/a-wake-up-call-for-iphone-users-its-time-to-go</guid>
          123         <link>http://www.fsf.org/news/a-wake-up-call-for-iphone-users-its-time-to-go</link>
          124     
          125         <pubDate>Thu, 02 Sep 2021 20:45:00 +0000</pubDate>
          126 
          127 </item> 
          128 <item>
          129         <title>FSF News: FSF job opportunity: Outreach and communications coordinator</title>
          130         <guid>http://www.fsf.org/news/fsf-job-opportunity-outreach-and-communications-coordinator</guid>
          131         <link>http://www.fsf.org/news/fsf-job-opportunity-outreach-and-communications-coordinator</link>
          132     
          133         <pubDate>Thu, 02 Sep 2021 20:19:24 +0000</pubDate>
          134 
          135 </item> 
          136 <item>
          137         <title>gdbm @ Savannah: Version 1.21</title>
          138         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10043</guid>
          139         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10043</link>
          140      <description>  &lt;p&gt;&lt;a href=&quot;https://ftp.gnu.org/gnu/gdbm/gdbm-1.21.tar.gz&quot;&gt;Version 1.21&lt;/a&gt; is available for download.  This version introduces an important new feature: &lt;a href=&quot;https://www.gnu.org.ua/software/gdbm/manual/Crash-Tolerance.html&quot;&gt;Crash tolerance&lt;/a&gt;, brought to gdbm by Terence Kelly.&lt;br /&gt;
          141 &lt;/p&gt; </description> 
          142         <pubDate>Thu, 02 Sep 2021 14:28:17 +0000</pubDate>
          143 
          144 </item> 
          145 <item>
          146         <title>FSF Blogs: August GNU Spotlight with Mike Gerwitz: 13 new GNU releases!</title>
          147         <guid>http://www.fsf.org/blogs/community/august-gnu-spotlight-with-mike-gerwitz-13-new-gnu-releases</guid>
          148         <link>http://www.fsf.org/blogs/community/august-gnu-spotlight-with-mike-gerwitz-13-new-gnu-releases</link>
          149      <description>  13 new GNU releases in the last month (as of August 29, 2021): </description> 
          150         <pubDate>Wed, 01 Sep 2021 16:47:42 +0000</pubDate>
          151 
          152 </item> 
          153 <item>
          154         <title>FSF Blogs: FSF copyright handling: A basis for distribution, licensing and enforcement</title>
          155         <guid>http://www.fsf.org/blogs/licensing/FSF-copyright-handling</guid>
          156         <link>http://www.fsf.org/blogs/licensing/FSF-copyright-handling</link>
          157     
          158         <pubDate>Mon, 30 Aug 2021 21:31:26 +0000</pubDate>
          159 
          160 </item> 
          161 <item>
          162         <title>GNU Taler news: GNU Taler v0.8 released</title>
          163         <guid>https://taler.net/en/news/2021-09.html</guid>
          164         <link>https://taler.net/en/news/2021-09.html</link>
          165      <description>  &lt;article&gt;
          166              We are happy to announce the release of GNU Taler v0.8.
          167            &lt;/article&gt; </description> 
          168         <pubDate>Mon, 23 Aug 2021 22:00:00 +0000</pubDate>
          169 
          170 </item> 
          171 <item>
          172         <title>health @ Savannah: MyGNUHealth maintenance release 1.0.4 is out!</title>
          173         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10040</guid>
          174         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10040</link>
          175      <description>  &lt;p&gt;Dear community
          176 &lt;br /&gt;
          177 &lt;/p&gt;
          178 &lt;p&gt;I am pleased to announce the maintanance release 1.0.4 from MyGNUHealth, the GNUHealth Personal Health Record.
          179 &lt;br /&gt;
          180 &lt;/p&gt;
          181 &lt;p&gt;It fixes plotting issues when matplotlib uses unsorted records or dup batch inputs.
          182 &lt;br /&gt;
          183 &lt;/p&gt;
          184 &lt;p&gt;You can see the Changelog at GNU Savannah mercurial server.
          185 &lt;br /&gt;
          186 &lt;/p&gt;
          187 &lt;p&gt;The package is at GNU.org, the Python Package Index (PyPi) and different GNU/Linux distributions. 
          188 &lt;br /&gt;
          189 &lt;/p&gt;
          190 &lt;p&gt;Happy and healthy hacking!
          191 &lt;br /&gt;
          192 Luis
          193 &lt;br /&gt;
          194 &lt;/p&gt;
          195 &lt;p&gt;-- 
          196 &lt;br /&gt;
          197 Dr. Luis Falcon, MD, MSc
          198 &lt;br /&gt;
          199 President, GNU Solidario
          200 &lt;br /&gt;
          201 Advancing Social Medicine
          202 &lt;br /&gt;
          203 &lt;a href=&quot;http://www.gnuhealth.org&quot;&gt;http://www.gnuhealth.org&lt;/a&gt;&lt;br /&gt;
          204 &lt;/p&gt; </description> 
          205         <pubDate>Sun, 22 Aug 2021 21:41:29 +0000</pubDate>
          206 
          207 </item> 
          208 <item>
          209         <title>parallel @ Savannah: GNU Parallel 20210822 (&#39;Kabul&#39;) released</title>
          210         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10039</guid>
          211         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10039</link>
          212      <description>  &lt;p&gt;GNU Parallel 20210822 (&#39;Kabul&#39;) has been released. It is available for download at: lbry://@GnuParallel:4
          213 &lt;br /&gt;
          214 &lt;/p&gt;
          215 &lt;p&gt;Quote of the month:
          216 &lt;br /&gt;
          217 &lt;/p&gt;
          218 &lt;p&gt;  Safe to say, @GnuParallel was a life changer during my PhD! It helped
          219 &lt;br /&gt;
          220   me optimise so many of my tasks and analyses.
          221 &lt;br /&gt;
          222     -- Parice Brandies @PariceBrandies@twitter
          223 &lt;br /&gt;
          224 &lt;/p&gt;
          225 &lt;p&gt;New in this release:
          226 &lt;br /&gt;
          227 &lt;/p&gt;
          228 &lt;ul&gt;
          229 &lt;li&gt;--ctag/--ctagstring colors the tag in different colors for each job.
          230 &lt;/li&gt;
          231 &lt;li&gt;You can use unit prefixes (k, m, g, etc) with -n -N -L.
          232 &lt;/li&gt;
          233 &lt;li&gt;Bug fixes and man page updates.
          234 &lt;/li&gt;
          235 &lt;/ul&gt;
          236 
          237 &lt;p&gt;News about GNU Parallel:
          238 &lt;br /&gt;
          239 &lt;/p&gt;
          240 &lt;ul&gt;
          241 &lt;li&gt;Parallelising jobs with GNU parallel &lt;a href=&quot;https://blog.ronin.cloud/gnu-parallel/&quot;&gt;https://blog.ronin.cloud/gnu-parallel/&lt;/a&gt;
          242 &lt;/li&gt;
          243 &lt;li&gt;Use multiple CPU Cores with your Linux commands - awk, sed, bzip2, grep, wc, etc. &lt;a href=&quot;https://cdmana.com/2021/07/20210728132344693t.html&quot;&gt;https://cdmana.com/2021/07/20210728132344693t.html&lt;/a&gt;
          244 &lt;/li&gt;
          245 &lt;li&gt;How to execute commands in parallel in Linux &lt;a href=&quot;https://net2.com/how-to-execute-commands-in-parallel-in-linux/&quot;&gt;https://net2.com/how-to-execute-commands-in-parallel-in-linux/&lt;/a&gt;
          246 &lt;/li&gt;
          247 &lt;/ul&gt;
          248 
          249 &lt;p&gt;Get the book: GNU Parallel 2018 &lt;a href=&quot;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&quot;&gt;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&lt;/a&gt;
          250 &lt;br /&gt;
          251 &lt;/p&gt;
          252 &lt;p&gt;GNU Parallel - For people who live life in the parallel lane.
          253 &lt;br /&gt;
          254 &lt;/p&gt;
          255 &lt;p&gt;If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
          256 &lt;br /&gt;
          257 &lt;/p&gt;
          258 
          259 &lt;h2&gt;About GNU Parallel&lt;/h2&gt;
          260 
          261 &lt;p&gt;GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.
          262 &lt;br /&gt;
          263 &lt;/p&gt;
          264 &lt;p&gt;If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.
          265 &lt;br /&gt;
          266 &lt;/p&gt;
          267 &lt;p&gt;GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.
          268 &lt;br /&gt;
          269 &lt;/p&gt;
          270 &lt;p&gt;For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
          271 &lt;br /&gt;
          272 &lt;/p&gt;
          273 &lt;p&gt;  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
          274 &lt;br /&gt;
          275 &lt;/p&gt;
          276 &lt;p&gt;Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
          277 &lt;br /&gt;
          278 &lt;/p&gt;
          279 &lt;p&gt;  find . -name &#39;*.jpg&#39; |
          280 &lt;br /&gt;
          281     parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
          282 &lt;br /&gt;
          283 &lt;/p&gt;
          284 &lt;p&gt;You can find more about GNU Parallel at: &lt;a href=&quot;http://www.gnu.org/s/parallel/&quot;&gt;http://www.gnu.org/s/parallel/&lt;/a&gt;
          285 &lt;br /&gt;
          286 &lt;/p&gt;
          287 &lt;p&gt;You can install GNU Parallel in just 10 seconds with:
          288 &lt;br /&gt;
          289 &lt;/p&gt;
          290 &lt;p&gt;    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
          291 &lt;br /&gt;
          292        fetch -o - &lt;a href=&quot;http://pi.dk/3&quot;&gt;http://pi.dk/3&lt;/a&gt; ) &amp;gt; install.sh
          293 &lt;br /&gt;
          294     $ sha1sum install.sh | grep c82233e7da3166308632ac8c34f850c0
          295 &lt;br /&gt;
          296     12345678 c82233e7 da316630 8632ac8c 34f850c0
          297 &lt;br /&gt;
          298     $ md5sum install.sh | grep ae3d7aac5e15cf3dfc87046cfc5918d2
          299 &lt;br /&gt;
          300     ae3d7aac 5e15cf3d fc87046c fc5918d2
          301 &lt;br /&gt;
          302     $ sha512sum install.sh | grep dfc00d823137271a6d96225cea9e89f533ff6c81f
          303 &lt;br /&gt;
          304     9c5198d5 31a3b755 b7910ece 3a42d206 c804694d fc00d823 137271a6 d96225ce
          305 &lt;br /&gt;
          306     a9e89f53 3ff6c81f f52b298b ef9fb613 2d3f9ccd 0e2c7bd3 c35978b5 79acb5ca
          307 &lt;br /&gt;
          308     $ bash install.sh
          309 &lt;br /&gt;
          310 &lt;/p&gt;
          311 &lt;p&gt;Watch the intro video on &lt;a href=&quot;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&quot;&gt;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&lt;/a&gt;
          312 &lt;br /&gt;
          313 &lt;/p&gt;
          314 &lt;p&gt;Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
          315 &lt;br /&gt;
          316 &lt;/p&gt;
          317 &lt;p&gt;When using programs that use GNU Parallel to process data for publication please cite:
          318 &lt;br /&gt;
          319 &lt;/p&gt;
          320 &lt;p&gt;O. Tange (2018): GNU Parallel 2018, March 2018, &lt;a href=&quot;https://doi.org/10.5281/zenodo.1146014&quot;&gt;https://doi.org/10.5281/zenodo.1146014&lt;/a&gt;.
          321 &lt;br /&gt;
          322 &lt;/p&gt;
          323 &lt;p&gt;If you like GNU Parallel:
          324 &lt;br /&gt;
          325 &lt;/p&gt;
          326 &lt;ul&gt;
          327 &lt;li&gt;Give a demo at your local user group/team/colleagues
          328 &lt;/li&gt;
          329 &lt;li&gt;Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
          330 &lt;/li&gt;
          331 &lt;li&gt;Get the merchandise &lt;a href=&quot;https://gnuparallel.threadless.com/designs/gnu-parallel&quot;&gt;https://gnuparallel.threadless.com/designs/gnu-parallel&lt;/a&gt;
          332 &lt;/li&gt;
          333 &lt;li&gt;Request or write a review for your favourite blog or magazine
          334 &lt;/li&gt;
          335 &lt;li&gt;Request or build a package for your favourite distribution (if it is not already there)
          336 &lt;/li&gt;
          337 &lt;li&gt;Invite me for your next conference
          338 &lt;/li&gt;
          339 &lt;/ul&gt;
          340 &lt;p&gt;If you use programs that use GNU Parallel for research:
          341 &lt;br /&gt;
          342 &lt;/p&gt;
          343 &lt;ul&gt;
          344 &lt;li&gt;Please cite GNU Parallel in you publications (use --citation)
          345 &lt;/li&gt;
          346 &lt;/ul&gt;
          347 &lt;p&gt;If GNU Parallel saves you money:
          348 &lt;br /&gt;
          349 &lt;/p&gt;
          350 &lt;ul&gt;
          351 &lt;li&gt;(Have your company) donate to FSF &lt;a href=&quot;https://my.fsf.org/donate/&quot;&gt;https://my.fsf.org/donate/&lt;/a&gt;
          352 &lt;/li&gt;
          353 &lt;/ul&gt;
          354 
          355 &lt;h2&gt;About GNU SQL&lt;/h2&gt;
          356 
          357 &lt;p&gt;GNU sql aims to give a simple, unified interface for accessing databases through all the different databases&#39; command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.
          358 &lt;br /&gt;
          359 &lt;/p&gt;
          360 &lt;p&gt;The database is addressed using a DBURL. If commands are left out you will get that database&#39;s interactive shell.
          361 &lt;br /&gt;
          362 &lt;/p&gt;
          363 &lt;p&gt;When using GNU SQL for a publication please cite:
          364 &lt;br /&gt;
          365 &lt;/p&gt;
          366 &lt;p&gt;O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.
          367 &lt;br /&gt;
          368 &lt;/p&gt;
          369 
          370 &lt;h2&gt;About GNU Niceload&lt;/h2&gt;
          371 
          372 &lt;p&gt;GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.&lt;br /&gt;
          373 &lt;/p&gt; </description> 
          374         <pubDate>Sun, 22 Aug 2021 20:02:32 +0000</pubDate>
          375 
          376 </item> 
          377 <item>
          378         <title>FSF Blogs: Meeting every Friday: Help us update the Free Software Directory</title>
          379         <guid>http://www.fsf.org/blogs/licensing/meeting-every-friday-help-us-update-the-free-software-directory</guid>
          380         <link>http://www.fsf.org/blogs/licensing/meeting-every-friday-help-us-update-the-free-software-directory</link>
          381     
          382         <pubDate>Fri, 20 Aug 2021 17:26:21 +0000</pubDate>
          383 
          384 </item> 
          385 <item>
          386         <title>GNU Anastasis: Anastasis becomes a GNU package</title>
          387         <guid>https://anastasis.lu/en/news/news/2021-08.html</guid>
          388         <link>https://anastasis.lu/en/news/news/2021-08.html</link>
          389      <description>  &lt;article&gt;
          390              Anastasis is now officially a GNU package.
          391            &lt;/article&gt; </description> 
          392         <pubDate>Sun, 15 Aug 2021 22:00:00 +0000</pubDate>
          393 
          394 </item> 
          395 <item>
          396         <title>GNU Health: GNU Health emergency response in Haiti</title>
          397         <guid>http://meanmicio.org/?p=2399</guid>
          398         <link>https://meanmicio.org/2021/08/15/gnu-health-emergency-response-in-haiti/</link>
          399      <description>  &lt;p&gt;Yesterday, yet another devastating earthquake hit the southern area of Haiti. &lt;/p&gt;
          400 
          401 
          402 
          403 &lt;p&gt;Immediately knowing about the earthquake, we contacted our representative in Haiti, &lt;strong&gt;Pierre Michel&lt;/strong&gt; &lt;strong&gt;Augustin&lt;/strong&gt;, and started an emergency humanitarian response in coordination with our team in the country .  &lt;/p&gt;
          404 
          405 
          406 
          407 &lt;p&gt;Haiti suffers  from recurrent &lt;strong&gt;natural disasters&lt;/strong&gt; (hurricanes, earthquakes). In the last years, Haiti has also been a victim of &lt;strong&gt;structural poverty and civil unrest.&lt;/strong&gt; Haitians are strong, resilient, noble people.  Haiti is the land of the free and the brave (see my post “&lt;em&gt;&lt;a href=&quot;https://meanmicio.org/2019/04/12/my-trip-to-haiti-the-land-of-the-free-and-the-brave/&quot;&gt;My trip to Haiti, the land of the Free and the Brave&lt;/a&gt;&lt;/em&gt;” ), yet it seems like the &lt;strong&gt;world has forgotten about Hait&lt;/strong&gt;i.&lt;/p&gt;
          408 
          409 
          410 
          411 &lt;p&gt;&lt;strong&gt;GNU Solidario&lt;/strong&gt; emergency response campaign in Haiti: &lt;a href=&quot;https://www.gnusolidario.org/haiti.html&quot;&gt;https://www.gnusolidario.org/haiti.html&lt;/a&gt; &lt;/p&gt;
          412 
          413 
          414 
          415 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/08/gnusolidario_haiti_earthquake_campaign.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2402&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/08/gnusolidario_haiti_earthquake_campaign.png?w=781&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Archive picture (credit: UN Photo/Marco Dormino).&lt;/figcaption&gt;&lt;/figure&gt;
          416 
          417 
          418 
          419 &lt;p&gt;We need emergency response now, but we also need to work on Social Medicine, and tackle the socioeconomic determinants that are the root cause of the structural poverty in Haiti. Only then, our Haitians brothers and sisters will be able to recover the dignity that they deserve, and grow in prosperity. We need to create the conditions, working the local community in the country to strengthen the public health and education system. &lt;a href=&quot;https://www.gnuhealth.org&quot;&gt;GNU Health&lt;/a&gt; is part of this program. &lt;/p&gt;
          420 
          421 
          422 
          423 &lt;p&gt;Our local representative, engineer Pierre Michel Augustin, has been working in the localization of GNU Health, and by the end of 2021, we will have the GNU Health node fully operational in Limbé. The Haiti GNU Health office will provide training and support to the local and regional health professionals and institutions.&lt;/p&gt;
          424 
          425 
          426 
          427 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/08/gnu_health_social_medicine.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2404&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/08/gnu_health_social_medicine.png?w=1024&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;The GNU Health project focuses on helping health professionals delivering Social Medicine and health informatics.&lt;/figcaption&gt;&lt;/figure&gt;
          428 
          429 
          430 
          431 &lt;p&gt;Natural disasters have a profound impact in the short, medium and long period in any nation. The situation gets much worse when they hit impoverished nations. So, in the short term, we will put all the effort to tackle this emergency and save lives. For the medium and long term, we will continue the GNU Health node in Haiti and building the GNU Health Federation in the country, in cooperation with the local team, academic and health institutions. &lt;/p&gt;
          432 
          433 
          434 
          435 &lt;p&gt;Creating local capacity is key to make the project sustainable. Resources will be dedicated to build the infrastructure (hardware, network..), but the main  focus and effort will be on building local capacity,  and training the local team to make them independent and build a sustainable and ethical model.&lt;/p&gt;
          436 
          437 
          438 
          439 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/08/gnu-health-haiti-help-twitter.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2406&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/08/gnu-health-haiti-help-twitter.png?w=1024&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Visit &lt;a href=&quot;https://www.gnusolidario.org/haiti.html&quot;&gt;https://www.gnusolidario.org/haiti.html &lt;/a&gt;to support our mission in Haiti&lt;/figcaption&gt;&lt;/figure&gt;
          440 
          441 
          442 
          443 &lt;p&gt;In the end, technology is just a medium, and &lt;strong&gt;GNU Health is a social project &lt;/strong&gt;that uses really cool Free/Libre technology&lt;strong&gt; &lt;/strong&gt;and open science, for the betterment of our societies.&lt;/p&gt;
          444 
          445 
          446 
          447 &lt;p&gt;Please consider helping GNU Solidario humanitarian campaign in Haiti, by visiting the following link:&lt;/p&gt;
          448 
          449 
          450 
          451 &lt;p&gt;&lt;a href=&quot;https://www.gnusolidario.org/haiti.html&quot;&gt;https://www.gnusolidario.org/haiti.html&lt;/a&gt;&lt;/p&gt;
          452 
          453 
          454 
          455 &lt;p&gt;&lt;/p&gt;
          456 
          457 
          458 
          459 &lt;p&gt;&lt;strong&gt;About GNU Solidario:&lt;/strong&gt;&lt;/p&gt;
          460 
          461 
          462 
          463 &lt;p&gt;&lt;strong&gt;GNU Solidario&lt;/strong&gt; is a non-profit humanitarian organization focused on Social Medicine. We have missions around the globe, and our projects has been adopted by health institutions, multilateral organizations and national public health systems around the world.&lt;/p&gt;
          464 
          465 
          466 
          467 &lt;p&gt;GNU Solidario is the organization behind &lt;a href=&quot;https://www.gnuhealth.org&quot;&gt;GNU Health&lt;/a&gt;, the award winning Free / Libre digital health ecosystem, that provides a Hospital Management System, a Lab Information System, a Personal Health Record and a distributed, Federated health network.&lt;/p&gt;
          468 
          469 
          470 
          471 &lt;p&gt;GNU Health is a &lt;strong&gt;GNU official project&lt;/strong&gt; ( see &lt;a href=&quot;https://www.gnu.org&quot;&gt;www.g&lt;/a&gt;&lt;a href=&quot;http://www.gnu.org&quot;&gt;nu.org&lt;/a&gt;), licensed under the GNU General Public License, GPL v3+ &lt;/p&gt; </description> 
          472         <pubDate>Sun, 15 Aug 2021 13:26:03 +0000</pubDate>
          473 
          474 </item> 
          475 <item>
          476         <title>grep @ Savannah: grep-3.7 released [stable]</title>
          477         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10037</guid>
          478         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10037</link>
          479      <description>  &lt;blockquote class=&quot;verbatim&quot;&gt;&lt;p&gt; This is to announce grep-3.7, a stable release.&lt;br /&gt;
          480 &lt;br /&gt;
          481 There have been 33 commits by 6 people in the 40 weeks since 3.6.&lt;br /&gt;
          482 &lt;br /&gt;
          483 See the NEWS below for a brief summary.&lt;br /&gt;
          484 &lt;br /&gt;
          485 Thanks to everyone who has contributed!&lt;br /&gt;
          486 The following people contributed changes to this release:&lt;br /&gt;
          487 &lt;br /&gt;
          488   Helge Kreutzmann (1)&lt;br /&gt;
          489   Jim Meyering (15)&lt;br /&gt;
          490   Kevin Locke (2)&lt;br /&gt;
          491   Marek Suppa (1)&lt;br /&gt;
          492   Mateusz Okulus (1)&lt;br /&gt;
          493   Paul Eggert (13)&lt;br /&gt;
          494 &lt;br /&gt;
          495 There were also 855 changes via the gnulib submodule.&lt;br /&gt;
          496 ==================================================================&lt;br /&gt;
          497 Here is the GNU grep home page:&lt;br /&gt;
          498     http://gnu.org/s/grep/&lt;br /&gt;
          499 &lt;br /&gt;
          500 Here are the compressed sources:&lt;br /&gt;
          501   https://ftp.gnu.org/gnu/grep/grep-3.7.tar.gz   (2.6MB)&lt;br /&gt;
          502   https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz   (1.6MB)&lt;br /&gt;
          503 &lt;br /&gt;
          504 Here are the GPG detached signatures[*]:&lt;br /&gt;
          505   https://ftp.gnu.org/gnu/grep/grep-3.7.tar.gz.sig&lt;br /&gt;
          506   https://ftp.gnu.org/gnu/grep/grep-3.7.tar.xz.sig&lt;br /&gt;
          507 &lt;br /&gt;
          508 Use a mirror for higher download bandwidth:&lt;br /&gt;
          509   https://www.gnu.org/order/ftp.html&lt;br /&gt;
          510 &lt;br /&gt;
          511 Here are the SHA1 and SHA256 checksums:&lt;br /&gt;
          512 &lt;br /&gt;
          513 5359ea0105cedfa21a63c89b22e0d7b41b016a40  grep-3.7.tar.gz&lt;br /&gt;
          514 wisM8tT2u+WZyQI4foBYmQ4e7pmu8zOiA4KeX9Pbs0I  grep-3.7.tar.gz&lt;br /&gt;
          515 4d56da85e468e4012c81533a22052014a4c98b17  grep-3.7.tar.xz&lt;br /&gt;
          516 XBDaMSRgrschmE1dgyRtJFIOxDjdSNerWgXbwNbWgjw  grep-3.7.tar.xz&lt;br /&gt;
          517 &lt;br /&gt;
          518 The SHA256 checksum is base64 encoded, instead of the&lt;br /&gt;
          519 hexadecimal encoding that most checksum tools default to.&lt;br /&gt;
          520 &lt;br /&gt;
          521 [*] Use a .sig file to verify that the corresponding file (without the&lt;br /&gt;
          522 .sig suffix) is intact.  First, be sure to download both the .sig file&lt;br /&gt;
          523 and the corresponding tarball.  Then, run a command like this:&lt;br /&gt;
          524 &lt;br /&gt;
          525   gpg --verify grep-3.7.tar.gz.sig&lt;br /&gt;
          526 &lt;br /&gt;
          527 If that command fails because you don&#39;t have the required public key,&lt;br /&gt;
          528 then run this command to import it:&lt;br /&gt;
          529 &lt;br /&gt;
          530   gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE&lt;br /&gt;
          531 &lt;br /&gt;
          532 and rerun the &#39;gpg --verify&#39; command.&lt;br /&gt;
          533 &lt;br /&gt;
          534 This release was bootstrapped with the following tools:&lt;br /&gt;
          535   Autoconf 2.71&lt;br /&gt;
          536   Automake 1.16d&lt;br /&gt;
          537   Gnulib v0.1-4847-g1cb09be022&lt;br /&gt;
          538 &lt;br /&gt;
          539 ===============================&lt;br /&gt;
          540 NEWS&lt;br /&gt;
          541 &lt;br /&gt;
          542 * Noteworthy changes in release 3.7 (2021-08-14) [stable]&lt;br /&gt;
          543 &lt;br /&gt;
          544 ** Changes in behavior&lt;br /&gt;
          545 &lt;br /&gt;
          546   Use of the --unix-byte-offsets (-u) option now evokes a warning.&lt;br /&gt;
          547   Since 3.1, this Windows-only option has had no effect.&lt;br /&gt;
          548 &lt;br /&gt;
          549 ** Bug fixes&lt;br /&gt;
          550 &lt;br /&gt;
          551   Preprocessing N patterns would take at least O(N^2) time when too many&lt;br /&gt;
          552   patterns hashed to too few buckets. This now takes seconds, not days:&lt;br /&gt;
          553   : | grep -Ff &amp;lt;(seq 6400000 | tr 0-9 A-J)&lt;br /&gt;
          554   [Bug#44754 introduced in grep 3.5]&lt;br /&gt;
          555 &lt;/p&gt;&lt;/blockquote&gt; </description> 
          556         <pubDate>Sat, 14 Aug 2021 20:12:52 +0000</pubDate>
          557 
          558 </item> 
          559 <item>
          560         <title>Parabola GNU/Linux-libre: TalkingParabola merged in main ISO and installation medium with installer</title>
          561         <guid>tag:parabolagnulinux.org,2021-08-12:/news/talkingparabola-merged-in-main-iso-and-installation-medium-with-installer/</guid>
          562         <link>https://parabolagnulinux.org/news/talkingparabola-merged-in-main-iso-and-installation-medium-with-installer/</link>
          563      <description>  &lt;p&gt;Last year &lt;a href=&quot;https://www.archlinux.org/news/accessible-installation-medium/&quot;&gt;Arch integrated the features from the TalkingArch project into archiso&lt;/a&gt; and some months ago &lt;a href=&quot;https://archlinux.org/news/installation-medium-with-installer/&quot;&gt;they added an installer into their installation medium&lt;/a&gt;. As a result, and with some delay, TalkingParabola was deprecated and we added these features to our ISOs too. They are available in out &lt;a href=&quot;https://www.parabola.nu/download/&quot;&gt;download page&lt;/a&gt; as well.&lt;/p&gt;
          564 &lt;p&gt;Note that although the OpenRC LXDE ISO has the speech boot option, this only works for CLI. Screen reader support will be added in the future for the GUI and the current installer will be replaced with one based in &lt;a href=&quot;https://sourceforge.net/projects/revenge-installer/&quot;&gt;Zen Installer&lt;/a&gt;.&lt;/p&gt; </description> 
          565         <pubDate>Thu, 12 Aug 2021 05:43:05 +0000</pubDate>
          566 
          567 </item> 
          568 <item>
          569         <title>GNU Taler news: Code Blau GmbH deploys first external Taler auditor</title>
          570         <guid>https://taler.net/en/news/2021-08.html</guid>
          571         <link>https://taler.net/en/news/2021-08.html</link>
          572      <description>  &lt;article&gt;
          573                We received a grant from NLnet  foundation with the goal to qualify Code Blau GmbH  to act as an external auditor for GNU Taler.  To do this, we created a guide  that describes how to deploy a Taler auditor and then practiced the  steps using the existing Taler exchange deployment at BFH.  Code Blau wrote a report  detailing all the steps taken. Finally, we have created a  draft of  the kind of business agreement that Code Blau would enter with banks  operating the Taler payment system.  We thank CodeBlau for their work, and NLnet and the European  Commission&#39;s Horizion 2020 NGI initiative  for funding this work.
          574            &lt;/article&gt; </description> 
          575         <pubDate>Sat, 07 Aug 2021 22:00:00 +0000</pubDate>
          576 
          577 </item> 
          578 <item>
          579         <title>GNUnet News: GNUnet 0.15.0</title>
          580         <guid>https://gnunet.org/en/news/2021-08-0.15.0.html</guid>
          581         <link>https://gnunet.org/en/news/2021-08-0.15.0.html</link>
          582      <description>  &lt;article id=&quot;newspost-content&quot;&gt;
          583  &lt;h1&gt;
          584   GNUnet 0.15.0 released
          585  &lt;/h1&gt;
          586  &lt;p&gt;
          587   We are pleased to announce the release of GNUnet 0.15.0.
          588   &lt;br /&gt;
          589   This is a new major release. It breaks protocol compatibility with the 0.14.x versions.
          590   Please be aware that Git master is thus henceforth
          591   &lt;b&gt;
          592    INCOMPATIBLE
          593   &lt;/b&gt;
          594   with
          595   the 0.14.x GNUnet network, and interactions between old and new peers
          596   will result in issues.  0.14.x peers will be able to communicate with Git
          597   master or 0.14.x peers, but some services - in particular GNS - will not be compatible.
          598   &lt;br /&gt;
          599   The MESSENGER service goes out of experimental to be used by
          600   libraries and applications as dependency. It handles decentralized
          601   messaging in flexible groups by using the CADET service and messages
          602   can be signed with your ego from the IDENTITY service. The service
          603   is still in an early stage, so its protocol (currently version 0.1)
          604   will likely adapt or change in future releases to some degree.
          605   &lt;br /&gt;
          606   In terms of usability, users should be aware that there are still
          607   &lt;b&gt;
          608    a number of known open issues
          609   &lt;/b&gt;
          610   in particular with respect to ease
          611   of use, but also some critical privacy issues especially for mobile users.
          612   Also, the nascent network is tiny and thus unlikely to
          613   provide good anonymity or extensive amounts of interesting information.
          614   As a result, the 0.15.0 release is still
          615   &lt;b&gt;
          616    only suitable for early adopters
          617   with some reasonable pain tolerance
          618   &lt;/b&gt;
          619   .
          620  &lt;/p&gt;
          621  &lt;h4&gt;
          622   Download links
          623  &lt;/h4&gt;
          624  &lt;ul&gt;
          625   &lt;li&gt;
          626    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-0.15.0.tar.gz&quot;&gt;
          627     gnunet-0.15.0.tar.gz
          628    &lt;/a&gt;
          629    (
          630    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-0.15.0.tar.gz.sig&quot;&gt;
          631     signature
          632    &lt;/a&gt;
          633    )
          634   &lt;/li&gt;
          635   &lt;li&gt;
          636    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.15.0.tar.gz&quot;&gt;
          637     gnunet-gtk-0.15.0.tar.gz
          638    &lt;/a&gt;
          639    (
          640    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-gtk-0.15.0.tar.gz.sig&quot;&gt;
          641     signature
          642    &lt;/a&gt;
          643    )
          644   &lt;/li&gt;
          645   &lt;li&gt;
          646    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.15.0.tar.gz&quot;&gt;
          647     gnunet-fuse-0.15.0.tar.gz
          648    &lt;/a&gt;
          649    (
          650    &lt;a href=&quot;http://ftpmirror.gnu.org/gnunet/gnunet-fuse-0.15.0.tar.gz.sig&quot;&gt;
          651     signature
          652    &lt;/a&gt;
          653    )
          654   &lt;/li&gt;
          655  &lt;/ul&gt;
          656  &lt;p&gt;
          657   The GPG key used to sign is:
          658   &lt;a href=&quot;https://gnunet.org/~schanzen/3D11063C10F98D14BD24D1470B0998EF86F59B6A&quot;&gt;
          659    3D11063C10F98D14BD24D1470B0998EF86F59B6A
          660   &lt;/a&gt;
          661  &lt;/p&gt;
          662  &lt;p&gt;
          663   Note that due to mirror synchronization, not all links might be functional
          664   early after the release. For direct access try
          665   &lt;a href=&quot;http://ftp.gnu.org/gnu/gnunet/&quot;&gt;
          666    http://ftp.gnu.org/gnu/gnunet/
          667   &lt;/a&gt;
          668  &lt;/p&gt;
          669  &lt;h4&gt;
          670   Noteworthy changes in 0.15.0 (since 0.14.1)
          671  &lt;/h4&gt;
          672  &lt;ul&gt;
          673   &lt;li&gt;
          674    &lt;tt&gt;
          675     GNS
          676    &lt;/tt&gt;
          677    :
          678    &lt;ul&gt;
          679     &lt;li&gt;
          680      First-come-first-served GNUnet top-level domain &quot;.pin&quot; zone key and website updated a.
          681      &lt;a href=&quot;https://fcfs.gnunet.org/&quot;&gt;
          682       Register here.
          683      &lt;/a&gt;
          684      &lt;a href=&quot;https://bugs.gnunet.org/view.php?id=6832&quot;&gt;
          685       #6832
          686      &lt;/a&gt;
          687     &lt;/li&gt;
          688     &lt;li&gt;
          689      New
          690      &lt;a href=&quot;https://lsd.gnunet.org/lsd0001/#name-edkey&quot;&gt;
          691       EDKEY zone keys
          692      &lt;/a&gt;
          693      .
          694     &lt;/li&gt;
          695    &lt;/ul&gt;
          696   &lt;/li&gt;
          697   &lt;li&gt;
          698    &lt;tt&gt;
          699     SCALARPRODUCT
          700    &lt;/tt&gt;
          701    : Crypto ported to libsodium improving performance.
          702    &lt;a href=&quot;https://bugs.gnunet.org/view.php?id=6818&quot;&gt;
          703     #6818
          704    &lt;/a&gt;
          705   &lt;/li&gt;
          706   &lt;li&gt;
          707    &lt;tt&gt;
          708     RECLAIM
          709    &lt;/tt&gt;
          710    : Added support for
          711    &lt;a class=&quot;link&quot; href=&quot;https://github.com/Fraunhofer-AISEC/libpabc&quot;&gt;
          712     BBS+ blind signature credentials
          713    &lt;/a&gt;
          714    for selective disclosure.
          715   &lt;/li&gt;
          716   &lt;li&gt;
          717    &lt;tt&gt;
          718     UTIL
          719    &lt;/tt&gt;
          720    :
          721    &lt;ul&gt;
          722     &lt;li&gt;
          723      Swap gnunet-config&#39;s default behaviour for the rewrite flag.
          724     &lt;/li&gt;
          725     &lt;li&gt;
          726      Config file is not not always written
          727     &lt;/li&gt;
          728     &lt;li&gt;
          729      Introduced new TIME helper functions
          730     &lt;/li&gt;
          731    &lt;/ul&gt;
          732   &lt;/li&gt;
          733   &lt;li&gt;
          734    &lt;tt&gt;
          735     SETU
          736    &lt;/tt&gt;
          737    : Implemented set union subsystem along with technical specification
          738    &lt;a href=&quot;https://lsd.gnunet.org/lsd0003/&quot;&gt;
          739     LSD0003
          740    &lt;/a&gt;
          741    .
          742   &lt;/li&gt;
          743   &lt;li&gt;
          744    &lt;tt&gt;
          745     MESSENGER
          746    &lt;/tt&gt;
          747    : New messenger component moved out of experimental.
          748   &lt;/li&gt;
          749  &lt;/ul&gt;
          750  &lt;p&gt;
          751   A detailed list of changes can be found in the
          752   &lt;a href=&quot;https://git.gnunet.org/gnunet.git/tree/ChangeLog&quot;&gt;
          753    ChangeLog
          754   &lt;/a&gt;
          755   and
          756   the
          757   &lt;a href=&quot;https://bugs.gnunet.org/changelog_page.php?project_id=13&quot;&gt;
          758    bug tracker
          759   &lt;/a&gt;
          760   .
          761  &lt;/p&gt;
          762  &lt;h4&gt;
          763   Known Issues
          764  &lt;/h4&gt;
          765  &lt;ul&gt;
          766   &lt;li&gt;
          767    There are known major design issues in the TRANSPORT, ATS and CORE subsystems which will need to be addressed in the future to achieve acceptable usability, performance and security.
          768   &lt;/li&gt;
          769   &lt;li&gt;
          770    There are known moderate implementation limitations in CADET that negatively impact performance.
          771   &lt;/li&gt;
          772   &lt;li&gt;
          773    There are known moderate design issues in FS that also impact usability and performance.
          774   &lt;/li&gt;
          775   &lt;li&gt;
          776    There are minor implementation limitations in SET that create unnecessary attack surface for availability.
          777   &lt;/li&gt;
          778   &lt;li&gt;
          779    The RPS subsystem remains experimental.
          780   &lt;/li&gt;
          781   &lt;li&gt;
          782    Some high-level tests in the test-suite fail non-deterministically due to the low-level TRANSPORT issues.
          783   &lt;/li&gt;
          784  &lt;/ul&gt;
          785  &lt;p&gt;
          786   In addition to this list, you may also want to consult our bug tracker at
          787   &lt;a href=&quot;https://bugs.gnunet.org/&quot;&gt;
          788    bugs.gnunet.org
          789   &lt;/a&gt;
          790   which lists about 190 more specific issues.
          791  &lt;/p&gt;
          792  &lt;h4&gt;
          793   Thanks
          794  &lt;/h4&gt;
          795  &lt;p&gt;
          796   This release was the work of many people. The following people contributed code and were thus easily identified:
          797   Christian Grothoff, Daniel Golle, Alessio Vanni, Thien-Thi Nguyen, Elias Summermatter, t3sserakt, TheJackiMonster and Martin Schanzenbach.
          798  &lt;/p&gt;
          799 &lt;/article&gt; </description> 
          800         <pubDate>Sat, 07 Aug 2021 22:00:00 +0000</pubDate>
          801 
          802 </item> 
          803 <item>
          804         <title>FSF Blogs: The threat of software patents persists</title>
          805         <guid>http://www.fsf.org/blogs/community/the-threat-of-software-patents-persists</guid>
          806         <link>http://www.fsf.org/blogs/community/the-threat-of-software-patents-persists</link>
          807     
          808         <pubDate>Thu, 05 Aug 2021 14:40:00 +0000</pubDate>
          809 
          810 </item> 
          811 <item>
          812         <title>FSF Blogs: July GNU Spotlight with Mike Gerwitz: Fifteen new GNU releases!</title>
          813         <guid>http://www.fsf.org/blogs/community/july-gnu-spotlight-with-mike-gerwitz-fifteen-new-gnu-releases</guid>
          814         <link>http://www.fsf.org/blogs/community/july-gnu-spotlight-with-mike-gerwitz-fifteen-new-gnu-releases</link>
          815      <description>  15 new GNU releases in the last month (as of July 26, 2021): </description> 
          816         <pubDate>Thu, 05 Aug 2021 14:39:59 +0000</pubDate>
          817 
          818 </item> 
          819 <item>
          820         <title>mailutils @ Savannah: Version 3.13</title>
          821         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10034</guid>
          822         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10034</link>
          823      <description>  &lt;p&gt;Version 3.13 of GNU mailutils is [https://ftp.gnu.org/gnu/mailutils/mailutils-3.13.tar.gz available for download.
          824 &lt;br /&gt;
          825 &lt;/p&gt;
          826 &lt;p&gt;New in this version:
          827 &lt;br /&gt;
          828 &lt;/p&gt;
          829 &lt;ul&gt;
          830 &lt;li&gt;Improved mailbox locking.
          831 &lt;/li&gt;
          832 &lt;li&gt;Changes in the &#39;locking&#39; configuration statement.
          833 &lt;/li&gt;
          834 &lt;li&gt;Important changes in &lt;strong&gt;mail&lt;/strong&gt; utility.
          835 &lt;/li&gt;
          836 &lt;/ul&gt; </description> 
          837         <pubDate>Thu, 05 Aug 2021 11:46:54 +0000</pubDate>
          838 
          839 </item> 
          840 <item>
          841         <title>GNU Guix: Taming the ‘stat’ storm with a loader cache</title>
          842         <guid>https://guix.gnu.org/blog/2021/taming-the-stat-storm-with-a-loader-cache/</guid>
          843         <link>https://guix.gnu.org/blog/2021/taming-the-stat-storm-with-a-loader-cache/</link>
          844      <description>  &lt;p&gt;It was one of these days where some of us on IRC were rehashing that old
          845 problem—that application startup in Guix causes a
          846 “&lt;a href=&quot;https://linux.die.net/man/2/stat&quot;&gt;&lt;code&gt;stat&lt;/code&gt;&lt;/a&gt; storm”—and lamenting the
          847 lack of a solution when suddenly, Ricardo
          848 &lt;a href=&quot;https://logs.guix.gnu.org/guix/2020-11-24.log#183934&quot;&gt;proposes&lt;/a&gt; what,
          849 in hindsight, looks like an obvious solution: “maybe we could use a
          850 per-application ld cache?”.  A moment where collective thinking exceeds
          851 the sum of our individual thoughts.  The result is one of the many
          852 features that made it in the &lt;code&gt;core-updates&lt;/code&gt; branch, slated to be merged
          853 in the coming weeks, one that reduces application startup time.&lt;/p&gt;&lt;h1&gt;ELF files and their dependencies&lt;/h1&gt;&lt;p&gt;Before going into detail, let’s look at what those “&lt;code&gt;stat&lt;/code&gt; storms” look
          854 like and where they come from.  Loading an
          855 &lt;a href=&quot;https://en.wikipedia.org/wiki/Executable_and_Linkable_Format&quot;&gt;ELF&lt;/a&gt;
          856 executable involves loading the shared libraries (the &lt;code&gt;.so&lt;/code&gt; files, for
          857 “shared objects”) it depends on, recursively.  This is the job of the
          858 &lt;em&gt;loader&lt;/em&gt; (or &lt;em&gt;dynamic linker&lt;/em&gt;), &lt;code&gt;ld.so&lt;/code&gt;, which is part of the GNU C
          859 Library (glibc) package.  What shared libraries an executable like that
          860 of Emacs depends on?  The &lt;code&gt;ldd&lt;/code&gt; command answers that question:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ ldd $(type -P .emacs-27.2-real)
          861         linux-vdso.so.1 (0x00007fff565bb000)
          862         libtiff.so.5 =&amp;gt; /gnu/store/l1wwr5c34593gqxvp34qbwdkaf7xhdbd-libtiff-4.2.0/lib/libtiff.so.5 (0x00007fd5aa2b1000)
          863         libjpeg.so.62 =&amp;gt; /gnu/store/5khkwz9g6vza1n4z8xlmdrwhazz7m8wp-libjpeg-turbo-2.0.5/lib/libjpeg.so.62 (0x00007fd5aa219000)
          864         libpng16.so.16 =&amp;gt; /gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/libpng16.so.16 (0x00007fd5aa1e4000)
          865         libz.so.1 =&amp;gt; /gnu/store/rykm237xkmq7rl1p0nwass01p090p88x-zlib-1.2.11/lib/libz.so.1 (0x00007fd5aa1c2000)
          866         libgif.so.7 =&amp;gt; /gnu/store/bpw826hypzlnl4gr6d0v8m63dd0k8waw-giflib-5.2.1/lib/libgif.so.7 (0x00007fd5aa1b8000)
          867         libXpm.so.4 =&amp;gt; /gnu/store/jgdsl6whyimkz4hxsp2vrl77338kpl0i-libxpm-3.5.13/lib/libXpm.so.4 (0x00007fd5aa1a4000)
          868 […]
          869 $ ldd $(type -P .emacs-27.2-real) | wc -l
          870 89&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(If you’re wondering why we’re looking at &lt;code&gt;.emacs-27.2-real&lt;/code&gt; rather than
          871 &lt;code&gt;emacs-27.2&lt;/code&gt;, it’s because in Guix the latter is a tiny shell wrapper
          872 around the former.)&lt;/p&gt;&lt;p&gt;To load a graphical program like Emacs, the loader needs to load more
          873 than 80 shared libraries!  Each is in its own &lt;code&gt;/gnu/store&lt;/code&gt; sub-directory
          874 in Guix, one directory per package.&lt;/p&gt;&lt;p&gt;But how does &lt;code&gt;ld.so&lt;/code&gt; know where to find these libraries in the first
          875 place?  In Guix, during the link phase that produces an ELF file
          876 (executable or shared library), we tell the
          877 &lt;a href=&quot;https://en.wikipedia.org/wiki/Linker_%28computing%29&quot;&gt;linker&lt;/a&gt; to
          878 populate the &lt;code&gt;RUNPATH&lt;/code&gt; entry of the ELF file with the list of
          879 directories where its dependencies may be found.  This is done by
          880 passing
          881 &lt;a href=&quot;https://sourceware.org/binutils/docs/ld/Options.html#index-_002drpath_003ddir&quot;&gt;&lt;code&gt;-rpath&lt;/code&gt;&lt;/a&gt;
          882 options to the linker, which Guix’s &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/ld-wrapper.in&quot;&gt;“linker
          883 wrapper”&lt;/a&gt;
          884 takes care of.  The &lt;code&gt;RUNPATH&lt;/code&gt; is the &lt;em&gt;run-time library search path&lt;/em&gt;:
          885 it’s a colon-separated list of directories where &lt;code&gt;ld.so&lt;/code&gt; will look for
          886 shared libraries when it loads an ELF file.  We can look at the
          887 &lt;code&gt;RUNPATH&lt;/code&gt; of our Emacs executable like this:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ objdump -x $(type -P .emacs-27.2-real) | grep RUNPATH
          888   RUNPATH              /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib:/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib:/gnu/store/l1wwr5c34593gqxvp34qbwdkaf7xhdbd-libtiff-4.2.0/lib:/gnu/store/5khkwz9g6vza1n4z8xlmdrwhazz7m8wp-libjpeg-turbo-2.0.5/lib:[…]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This &lt;code&gt;RUNPATH&lt;/code&gt; has 39 entries, which roughly corresponds to the number
          889 of direct dependencies of the executable—dependencies are listed as
          890 &lt;code&gt;NEEDED&lt;/code&gt; entries in the ELF file:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ objdump -x $(type -P .emacs-27.2-real) | grep NEED | head
          891   NEEDED               libtiff.so.5
          892   NEEDED               libjpeg.so.62
          893   NEEDED               libpng16.so.16
          894   NEEDED               libz.so.1
          895   NEEDED               libgif.so.7
          896   NEEDED               libXpm.so.4
          897   NEEDED               libgtk-3.so.0
          898   NEEDED               libgdk-3.so.0
          899   NEEDED               libpangocairo-1.0.so.0
          900   NEEDED               libpango-1.0.so.0
          901 $ objdump -x $(type -P .emacs-27.2-real) | grep NEED | wc -l
          902 52&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(Some of these &lt;code&gt;.so&lt;/code&gt; files live in the same directory, which is why
          903 there are more &lt;code&gt;NEEDED&lt;/code&gt; entries than directories in the &lt;code&gt;RUNPATH&lt;/code&gt;.)&lt;/p&gt;&lt;p&gt;A system such as Debian that follows the &lt;a href=&quot;https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard&quot;&gt;file system hierarchy
          904 standard&lt;/a&gt;
          905 (FHS), where all libraries are in &lt;code&gt;/lib&lt;/code&gt; or &lt;code&gt;/usr/lib&lt;/code&gt;, does not have to
          906 bother with &lt;code&gt;RUNPATH&lt;/code&gt;: all &lt;code&gt;.so&lt;/code&gt; files are known to be found in one of
          907 these two “standard” locations.  Anyway, let’s get back to our initial
          908 topic: the “&lt;code&gt;stat&lt;/code&gt; storm”.&lt;/p&gt;&lt;h1&gt;Walking search paths&lt;/h1&gt;&lt;p&gt;As you can guess, when we run Emacs, the loader first needs to locate
          909 and load the 80+ shared libraries it depends on.  That’s where things
          910 get pretty inefficient: the loader will search each &lt;code&gt;.so&lt;/code&gt; file Emacs
          911 depends on in one of the 39 directories listed in its &lt;code&gt;RUNPATH&lt;/code&gt;.
          912 Likewise, when it finally finds &lt;code&gt;libgtk-3.so&lt;/code&gt;, it’ll look for its
          913 dependencies in each of the directories in its &lt;code&gt;RUNPATH&lt;/code&gt;.  We can see
          914 that at play by tracing system calls with the
          915 &lt;a href=&quot;https://strace.io/&quot;&gt;&lt;code&gt;strace&lt;/code&gt;&lt;/a&gt; command:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ strace -c emacs --version
          916 GNU Emacs 27.2
          917 Copyright (C) 2021 Free Software Foundation, Inc.
          918 GNU Emacs comes with ABSOLUTELY NO WARRANTY.
          919 You may redistribute copies of GNU Emacs
          920 under the terms of the GNU General Public License.
          921 For more information about these matters, see the file named COPYING.
          922 % time     seconds  usecs/call     calls    errors syscall
          923 ------ ----------- ----------- --------- --------- ----------------
          924  55.46    0.006629           3      1851      1742 openat
          925  16.06    0.001919           4       422           mmap
          926  11.46    0.001370           2       501       477 stat
          927   4.79    0.000573           4       122           mprotect
          928   3.84    0.000459           4       111           read
          929   2.45    0.000293           2       109           fstat
          930   2.34    0.000280           2       111           close
          931 […]
          932 ------ ----------- ----------- --------- --------- ----------------
          933 100.00    0.011952           3      3325      2227 total&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;For this simple &lt;code&gt;emacs --version&lt;/code&gt; command, the loader and &lt;code&gt;emacs&lt;/code&gt; probed
          934 for more than 2,200 files, with the
          935 &lt;a href=&quot;https://linux.die.net/man/2/openat&quot;&gt;&lt;code&gt;openat&lt;/code&gt;&lt;/a&gt; and
          936 &lt;a href=&quot;https://linux.die.net/man/2/stat&quot;&gt;&lt;code&gt;stat&lt;/code&gt;&lt;/a&gt; system calls, and most of
          937 these probes were unsuccessful (counted as “errors” here, meaning that
          938 the call returned an error).  The fraction of “erroneous” system calls
          939 is no less than 67% (2,227 over 3,325).  We can see the desperate search
          940 of &lt;code&gt;.so&lt;/code&gt; files by looking at individual calls:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ strace -e openat,stat emacs --version
          941 […]
          942 openat(AT_FDCWD, &quot;/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          943 openat(AT_FDCWD, &quot;/gnu/store/01b4w3m6mp55y531kyi1g8shh722kwqm-gcc-7.5.0-lib/lib/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          944 openat(AT_FDCWD, &quot;/gnu/store/l1wwr5c34593gqxvp34qbwdkaf7xhdbd-libtiff-4.2.0/lib/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          945 openat(AT_FDCWD, &quot;/gnu/store/5khkwz9g6vza1n4z8xlmdrwhazz7m8wp-libjpeg-turbo-2.0.5/lib/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          946 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls/haswell/x86_64/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          947 stat(&quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls/haswell/x86_64&quot;, 0x7ffe428a1c70) = -1 ENOENT (No such file or directory)
          948 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls/haswell/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          949 stat(&quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls/haswell&quot;, 0x7ffe428a1c70) = -1 ENOENT (No such file or directory)
          950 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls/x86_64/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          951 stat(&quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls/x86_64&quot;, 0x7ffe428a1c70) = -1 ENOENT (No such file or directory)
          952 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          953 stat(&quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/tls&quot;, 0x7ffe428a1c70) = -1 ENOENT (No such file or directory)
          954 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/haswell/x86_64/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          955 stat(&quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/haswell/x86_64&quot;, 0x7ffe428a1c70) = -1 ENOENT (No such file or directory)
          956 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/haswell/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          957 stat(&quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/haswell&quot;, 0x7ffe428a1c70) = -1 ENOENT (No such file or directory)
          958 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/x86_64/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
          959 stat(&quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/x86_64&quot;, 0x7ffe428a1c70) = -1 ENOENT (No such file or directory)
          960 openat(AT_FDCWD, &quot;/gnu/store/3x2kak8abb6z2klch72kfff2qxzv00pj-libpng-1.6.37/lib/libpng16.so.16&quot;, O_RDONLY|O_CLOEXEC) = 3
          961 […]&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Above is the sequence where we see &lt;code&gt;ld.so&lt;/code&gt; look for &lt;code&gt;libpng16.so.16&lt;/code&gt;,
          962 searching in locations where we &lt;em&gt;know&lt;/em&gt; it’s not going to find it.  A bit
          963 ridiculous.  How does this affect performance?  The impact is small in
          964 the most favorable case—on a hot cache, with fast solid state device
          965 (SSD) storage.  But it likely has a visible effect in other cases—on a
          966 cold cache, with a slower spinning hard disk drive (HDD), on a network
          967 file system (NFS).&lt;/p&gt;&lt;h1&gt;Enter the per-package loader cache&lt;/h1&gt;&lt;p&gt;The idea that Ricardo submitted, using a loader cache, makes a lot of
          968 sense: we know from the start that &lt;code&gt;libpng.so&lt;/code&gt; may only be found in
          969 &lt;code&gt;/gnu/store/…-libpng-1.6.37&lt;/code&gt;, no need to look elsewhere.  In fact, it’s
          970 not new: glibc has had such a cache “forever”; it’s the
          971 &lt;code&gt;/etc/ld.so.cache&lt;/code&gt; file you can see on FHS distros and which is
          972 typically created by running
          973 &lt;a href=&quot;https://linux.die.net/man/8/ldconfig&quot;&gt;&lt;code&gt;ldconfig&lt;/code&gt;&lt;/a&gt; when a package has
          974 been installed.  Roughly, the cache maps library &lt;code&gt;SONAME&lt;/code&gt;s, such as
          975 &lt;code&gt;libpng16.so.16&lt;/code&gt;, to their file name on disk, say
          976 &lt;code&gt;/usr/lib/libpng16.so.16&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;The problem is that this cache is inherently system-wide: it assumes
          977 that there is only &lt;em&gt;one&lt;/em&gt; &lt;code&gt;libpng16.so&lt;/code&gt; on the system; any binary that
          978 depends on &lt;code&gt;libpng16.so&lt;/code&gt; will load it from its one and only location.
          979 This models perfectly matches the FHS, but it’s at odds with the
          980 flexibility offered by Guix, where several variants or versions of the
          981 library can coexist on the system, used by different applications.
          982 That’s the reason why Guix and other non-FHS distros such as NixOS or
          983 GoboLinux typically &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/base.scm?id=a92dfbce30777de6ca05031e275410cf9f56c84c#n716&quot;&gt;turn
          984 off&lt;/a&gt;
          985 that feature altogether… and pay the cost of those &lt;code&gt;stat&lt;/code&gt; storms.&lt;/p&gt;&lt;p&gt;The insight we gained on that Tuesday evening IRC conversation is that
          986 we could &lt;em&gt;adapt&lt;/em&gt; glibc’s loader cache to our setting: instead of a
          987 system-wide cache, we’d have a &lt;em&gt;per-application loader cache&lt;/em&gt;.  As one
          988 of the last package &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/Build-Phases.html&quot;&gt;build
          989 phases&lt;/a&gt;,
          990 we’d run &lt;code&gt;ldconfig&lt;/code&gt; to create &lt;code&gt;etc/ld.so.cache&lt;/code&gt; within that package’s
          991 &lt;code&gt;/gnu/store&lt;/code&gt; sub-directory.  We then need to modify the loader so it
          992 would look for &lt;code&gt;${ORIGIN}/../etc/ld.so.cache&lt;/code&gt; instead of
          993 &lt;code&gt;/etc/ld.so.cache&lt;/code&gt;, where &lt;code&gt;${ORIGIN}&lt;/code&gt; is the location of the ELF file
          994 being loaded.  A discussion of these changes is &lt;a href=&quot;https://issues.guix.gnu.org/44899&quot;&gt;in the issue
          995 tracker&lt;/a&gt;; you can see &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/patches/glibc-dl-cache.patch?h=core-updates&amp;amp;id=0236013cd0fc86ff4a042885c735e3f36a7f5c25&quot;&gt;the glibc
          996 patch&lt;/a&gt;
          997 and the new &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/gnu-build-system.scm?h=core-updates&amp;amp;id=0236013cd0fc86ff4a042885c735e3f36a7f5c25#n735&quot;&gt;&lt;code&gt;make-dynamic-linker-cache&lt;/code&gt; build
          998 phase&lt;/a&gt;.
          999 In short, the &lt;code&gt;make-dynamic-linker-cache&lt;/code&gt; phase computes the set of
         1000 direct and indirect dependencies of an ELF file using the
         1001 &lt;a href=&quot;https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/gremlin.scm?id=0236013cd0fc86ff4a042885c735e3f36a7f5c25#n265&quot;&gt;&lt;code&gt;file-needed/recursive&lt;/code&gt;&lt;/a&gt;
         1002 procedure and derives from that the library search path, creates a
         1003 temporary &lt;code&gt;ld.so.conf&lt;/code&gt; file containing this search path for use by
         1004 &lt;code&gt;ldconfig&lt;/code&gt;, and finally runs &lt;code&gt;ldconfig&lt;/code&gt; to actually build the cache.&lt;/p&gt;&lt;p&gt;How does this play out in practice?  Let’s try an &lt;code&gt;emacs&lt;/code&gt; build that
         1005 uses this new loader cache:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ strace -c /gnu/store/ijgcbf790z4x2mkjx2ha893hhmqrj29j-emacs-27.2/bin/emacs --version
         1006 GNU Emacs 27.2
         1007 Copyright (C) 2021 Free Software Foundation, Inc.
         1008 GNU Emacs comes with ABSOLUTELY NO WARRANTY.
         1009 You may redistribute copies of GNU Emacs
         1010 under the terms of the GNU General Public License.
         1011 For more information about these matters, see the file named COPYING.
         1012 % time     seconds  usecs/call     calls    errors syscall
         1013 ------ ----------- ----------- --------- --------- ----------------
         1014  28.68    0.002909          26       110        13 openat
         1015  25.13    0.002549          26        96           read
         1016  20.41    0.002070           4       418           mmap
         1017   9.34    0.000947          10        90           pread64
         1018   6.60    0.000669           5       123           mprotect
         1019   4.12    0.000418           3       107         1 newfstatat
         1020   2.19    0.000222           2        99           close
         1021 […]
         1022 ------ ----------- ----------- --------- --------- ----------------
         1023 100.00    0.010144           8      1128        24 total&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Compared to what we have above, the total number of system calls has
         1024 been divided by 3, and the fraction of erroneous system calls goes from
         1025 67% to 0.2%.  Quite a difference!  We count on you, dear users, to &lt;a href=&quot;https://guix.gnu.org/en/contact&quot;&gt;let
         1026 us know&lt;/a&gt; how this impacts load time for
         1027 you.&lt;/p&gt;&lt;h1&gt;Flexibility without &lt;code&gt;stat&lt;/code&gt; storms&lt;/h1&gt;&lt;p&gt;With &lt;a href=&quot;https://www.gnu.org/software/stow&quot;&gt;GNU Stow&lt;/a&gt; in the 1990s, and
         1028 then Nix, Guix, and other distros, the benefits of flexible file layouts
         1029 rather than the rigid Unix-inherited FHS have been demonstrated—nowadays
         1030 I see it as an antidote to opaque and bloated application bundles à la
         1031 Docker.  Luckily, few of our system tools have FHS assumptions baked in,
         1032 probably in large part thanks to GNU’s insistence on a &lt;a href=&quot;https://www.gnu.org/prep/standards/html_node/Directory-Variables.html&quot;&gt;rigorous
         1033 installation directory
         1034 categorization&lt;/a&gt;
         1035 in the early days rather than hard-coded directory names.  The loader
         1036 cache is one of the few exceptions.  Adapting it to a non-FHS context is
         1037 fruitful for Guix and for the other distros and packaging tools in a
         1038 similar situation; perhaps it could become an option in glibc proper?&lt;/p&gt;&lt;p&gt;This is not the end of &lt;code&gt;stat&lt;/code&gt; storms, though.  Interpreters and language
         1039 run-time systems rely on search paths—&lt;code&gt;GUILE_LOAD_PATH&lt;/code&gt; for Guile,
         1040 &lt;code&gt;PYTHONPATH&lt;/code&gt; for Python, &lt;code&gt;OCAMLPATH&lt;/code&gt; for OCaml, etc.—and are equally
         1041 prone to stormy application startups.  Unlike ELF, they do not have a
         1042 mechanism akin to &lt;code&gt;RUNPATH&lt;/code&gt;, let alone a run-time search path cache.  We
         1043 have yet to find ways to address these.&lt;/p&gt;&lt;h4&gt;About GNU Guix&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;https://guix.gnu.org&quot;&gt;GNU Guix&lt;/a&gt; is a transactional package manager and
         1044 an advanced distribution of the GNU system that &lt;a href=&quot;https://www.gnu.org/distros/free-system-distribution-guidelines.html&quot;&gt;respects user
         1045 freedom&lt;/a&gt;.
         1046 Guix can be used on top of any system running the Hurd or the Linux
         1047 kernel, or it can be used as a standalone operating system distribution
         1048 for i686, x86_64, ARMv7, AArch64 and POWER9 machines.&lt;/p&gt;&lt;p&gt;In addition to standard package management features, Guix supports
         1049 transactional upgrades and roll-backs, unprivileged package management,
         1050 per-user profiles, and garbage collection.  When used as a standalone
         1051 GNU/Linux distribution, Guix offers a declarative, stateless approach to
         1052 operating system configuration management.  Guix is highly customizable
         1053 and hackable through &lt;a href=&quot;https://www.gnu.org/software/guile&quot;&gt;Guile&lt;/a&gt;
         1054 programming interfaces and extensions to the
         1055 &lt;a href=&quot;http://schemers.org&quot;&gt;Scheme&lt;/a&gt; language.&lt;/p&gt; </description> 
         1056         <pubDate>Mon, 02 Aug 2021 15:00:00 +0000</pubDate>
         1057 
         1058 </item> 
         1059 <item>
         1060         <title>libc @ Savannah: The GNU C Library version 2.34 is now available</title>
         1061         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10032</guid>
         1062         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10032</link>
         1063      <description>  &lt;p&gt;The GNU C Library
         1064 &lt;br /&gt;
         1065 =================
         1066 &lt;br /&gt;
         1067 &lt;/p&gt;
         1068 &lt;p&gt;The GNU C Library version 2.34 is now available.
         1069 &lt;br /&gt;
         1070 &lt;/p&gt;
         1071 &lt;p&gt;The GNU C Library is used as &lt;strong&gt;the&lt;/strong&gt; C library in the GNU system and
         1072 &lt;br /&gt;
         1073 in GNU/Linux systems, as well as many other systems that use Linux
         1074 &lt;br /&gt;
         1075 as the kernel.
         1076 &lt;br /&gt;
         1077 &lt;/p&gt;
         1078 &lt;p&gt;The GNU C Library is primarily designed to be a portable 
         1079 &lt;br /&gt;
         1080 and high performance C library.  It follows all relevant 
         1081 &lt;br /&gt;
         1082 standards including ISO C11 and POSIX.1-2017.  It is also 
         1083 &lt;br /&gt;
         1084 internationalized and has one of the most complete 
         1085 &lt;br /&gt;
         1086 internationalization interfaces known. 
         1087 &lt;br /&gt;
         1088 &lt;/p&gt;
         1089 &lt;p&gt;The GNU C Library webpage is at &lt;a href=&quot;http://www.gnu.org/software/libc/&quot;&gt;http://www.gnu.org/software/libc/&lt;/a&gt;
         1090 &lt;br /&gt;
         1091 &lt;/p&gt;
         1092 &lt;p&gt;Packages for the 2.34 release may be downloaded from:
         1093 &lt;br /&gt;
         1094         &lt;a href=&quot;http://ftpmirror.gnu.org/libc/&quot;&gt;http://ftpmirror.gnu.org/libc/&lt;/a&gt;
         1095 &lt;br /&gt;
         1096         &lt;a href=&quot;http://ftp.gnu.org/gnu/libc/&quot;&gt;http://ftp.gnu.org/gnu/libc/&lt;/a&gt;
         1097 &lt;br /&gt;
         1098 &lt;/p&gt;
         1099 &lt;p&gt;The mirror list is at &lt;a href=&quot;http://www.gnu.org/order/ftp.html&quot;&gt;http://www.gnu.org/order/ftp.html&lt;/a&gt;
         1100 &lt;br /&gt;
         1101 &lt;/p&gt;
         1102 &lt;p&gt;NEWS for version 2.34
         1103 &lt;br /&gt;
         1104 =====================
         1105 &lt;br /&gt;
         1106 &lt;/p&gt;
         1107 &lt;p&gt;Major new features:
         1108 &lt;br /&gt;
         1109 &lt;/p&gt;
         1110 &lt;ul&gt;
         1111 &lt;li&gt;In order to support smoother in-place-upgrades and to simplify
         1112 &lt;/li&gt;
         1113 &lt;/ul&gt;&lt;p&gt;  the implementation of the runtime all functionality formerly
         1114 &lt;br /&gt;
         1115   implemented in the libraries libpthread, libdl, libutil, libanl has
         1116 &lt;br /&gt;
         1117   been integrated into libc.  New applications do not need to link with
         1118 &lt;br /&gt;
         1119   -lpthread, -ldl, -lutil, -lanl anymore.  For backwards compatibility,
         1120 &lt;br /&gt;
         1121   empty static archives libpthread.a, libdl.a, libutil.a, libanl.a are
         1122 &lt;br /&gt;
         1123   provided, so that the linker options keep working.  Applications which
         1124 &lt;br /&gt;
         1125   have been linked against glibc 2.33 or earlier continue to load the
         1126 &lt;br /&gt;
         1127   corresponding shared objects (which are now empty).  The integration
         1128 &lt;br /&gt;
         1129   of those libraries into libc means that additional symbols become
         1130 &lt;br /&gt;
         1131   available by default.  This can cause applications that contain weak
         1132 &lt;br /&gt;
         1133   references to take unexpected code paths that would only have been
         1134 &lt;br /&gt;
         1135   used in previous glibc versions when e.g. preloading libpthread.so.0,
         1136 &lt;br /&gt;
         1137   potentially exposing application bugs.
         1138 &lt;br /&gt;
         1139 &lt;/p&gt;
         1140 &lt;ul&gt;
         1141 &lt;li&gt;When _DYNAMIC_STACK_SIZE_SOURCE or _GNU_SOURCE are defined,
         1142 &lt;/li&gt;
         1143 &lt;/ul&gt;&lt;p&gt;  PTHREAD_STACK_MIN is no longer constant and is redefined to
         1144 &lt;br /&gt;
         1145   sysconf(_SC_THREAD_STACK_MIN).  This supports dynamic sized register
         1146 &lt;br /&gt;
         1147   sets for modern architectural features like Arm SVE.
         1148 &lt;br /&gt;
         1149 &lt;/p&gt;
         1150 &lt;ul&gt;
         1151 &lt;li&gt;Add _SC_MINSIGSTKSZ and _SC_SIGSTKSZ.  When _DYNAMIC_STACK_SIZE_SOURCE
         1152 &lt;/li&gt;
         1153 &lt;/ul&gt;&lt;p&gt;  or _GNU_SOURCE are defined, MINSIGSTKSZ and SIGSTKSZ are no longer
         1154 &lt;br /&gt;
         1155   constant on Linux.  MINSIGSTKSZ is redefined to sysconf(_SC_MINSIGSTKSZ)
         1156 &lt;br /&gt;
         1157   and SIGSTKSZ is redefined to sysconf (_SC_SIGSTKSZ).  This supports
         1158 &lt;br /&gt;
         1159   dynamic sized register sets for modern architectural features like
         1160 &lt;br /&gt;
         1161   Arm SVE.
         1162 &lt;br /&gt;
         1163 &lt;/p&gt;
         1164 &lt;ul&gt;
         1165 &lt;li&gt;The dynamic linker implements the --list-diagnostics option, printing
         1166 &lt;/li&gt;
         1167 &lt;/ul&gt;&lt;p&gt;  a dump of information related to IFUNC resolver operation and
         1168 &lt;br /&gt;
         1169   glibc-hwcaps subdirectory selection.
         1170 &lt;br /&gt;
         1171 &lt;/p&gt;
         1172 &lt;ul&gt;
         1173 &lt;li&gt;On Linux, the function execveat has been added.  It operates similar to
         1174 &lt;/li&gt;
         1175 &lt;/ul&gt;&lt;p&gt;  execve and it is is already used to implement fexecve without requiring
         1176 &lt;br /&gt;
         1177   /proc to be mounted.  However, different than fexecve, if the syscall is not
         1178 &lt;br /&gt;
         1179   supported by the kernel an error is returned instead of trying a fallback.
         1180 &lt;br /&gt;
         1181 &lt;/p&gt;
         1182 &lt;ul&gt;
         1183 &lt;li&gt;The ISO C2X function timespec_getres has been added.
         1184 &lt;/li&gt;
         1185 &lt;/ul&gt;
         1186 &lt;ul&gt;
         1187 &lt;li&gt;The feature test macro &lt;em&gt;_STDC_WANT_IEC_60559_EXT_&lt;/em&gt;, from draft ISO
         1188 &lt;/li&gt;
         1189 &lt;/ul&gt;&lt;p&gt;  C2X, is supported to enable declarations of functions defined in Annex F
         1190 &lt;br /&gt;
         1191   of C2X.  Those declarations are also enabled when
         1192 &lt;br /&gt;
         1193   &lt;em&gt;_STDC_WANT_IEC_60559_BFP_EXT_&lt;/em&gt;, as specified in TS 18661-1, is
         1194 &lt;br /&gt;
         1195   defined, and when _GNU_SOURCE is defined.
         1196 &lt;br /&gt;
         1197 &lt;/p&gt;
         1198 &lt;ul&gt;
         1199 &lt;li&gt;On powerpc64*, glibc can now be compiled without scv support using the
         1200 &lt;/li&gt;
         1201 &lt;/ul&gt;&lt;p&gt;  --disable-scv configure option.
         1202 &lt;br /&gt;
         1203 &lt;/p&gt;
         1204 &lt;ul&gt;
         1205 &lt;li&gt;Add support for 64-bit time_t on configurations like x86 where time_t
         1206 &lt;/li&gt;
         1207 &lt;/ul&gt;&lt;p&gt;  is traditionally 32-bit.  Although time_t still defaults to 32-bit on
         1208 &lt;br /&gt;
         1209   these configurations, this default may change in future versions.
         1210 &lt;br /&gt;
         1211   This is enabled with the _TIME_BITS preprocessor macro set to 64 and is
         1212 &lt;br /&gt;
         1213   only supported when LFS (_FILE_OFFSET_BITS=64) is also enabled.  It is
         1214 &lt;br /&gt;
         1215   only enabled for Linux and the full support requires a minimum kernel
         1216 &lt;br /&gt;
         1217   version of 5.1.
         1218 &lt;br /&gt;
         1219 &lt;/p&gt;
         1220 &lt;ul&gt;
         1221 &lt;li&gt;The main gconv-modules file in glibc now contains only a small set of
         1222 &lt;/li&gt;
         1223 &lt;/ul&gt;&lt;p&gt;  essential converter modules and the rest have been moved into a supplementary
         1224 &lt;br /&gt;
         1225   configuration file gconv-modules-extra.conf in the gconv-modules.d directory
         1226 &lt;br /&gt;
         1227   in the same GCONV_PATH.  Similarly, external converter modules directories
         1228 &lt;br /&gt;
         1229   may have supplementary configuration files in a gconv-modules.d directory
         1230 &lt;br /&gt;
         1231   with names ending with .conf to logically classify the converter modules in
         1232 &lt;br /&gt;
         1233   that directory.
         1234 &lt;br /&gt;
         1235 &lt;/p&gt;
         1236 &lt;ul&gt;
         1237 &lt;li&gt;On Linux, a new tunable, glibc.pthread.stack_cache_size, can be used
         1238 &lt;/li&gt;
         1239 &lt;/ul&gt;&lt;p&gt;  to configure the size of the thread stack cache.
         1240 &lt;br /&gt;
         1241 &lt;/p&gt;
         1242 &lt;ul&gt;
         1243 &lt;li&gt;The function _Fork has been added as an async-signal-safe fork replacement
         1244 &lt;/li&gt;
         1245 &lt;/ul&gt;&lt;p&gt;  since Austin Group issue 62 droped the async-signal-safe requirement for
         1246 &lt;br /&gt;
         1247   fork (and it will be included in the future POSIX standard).  The new _Fork
         1248 &lt;br /&gt;
         1249   function does not run any atfork function neither resets any internal state
         1250 &lt;br /&gt;
         1251   or lock (such as the malloc one), and only sets up a minimal state required
         1252 &lt;br /&gt;
         1253   to call async-signal-safe functions (such as raise or execve).  This function
         1254 &lt;br /&gt;
         1255   is currently a GNU extension.
         1256 &lt;br /&gt;
         1257 &lt;/p&gt;
         1258 &lt;ul&gt;
         1259 &lt;li&gt;On Linux, the close_range function has been added.  It allows efficiently
         1260 &lt;/li&gt;
         1261 &lt;/ul&gt;&lt;p&gt;  closing a range of file descriptors on recent kernels (version 5.9).
         1262 &lt;br /&gt;
         1263 &lt;/p&gt;
         1264 &lt;ul&gt;
         1265 &lt;li&gt;The function closefrom has been added.  It closes all file descriptors
         1266 &lt;/li&gt;
         1267 &lt;/ul&gt;&lt;p&gt;  greater than or equal to a given integer.  This function is a GNU extension,
         1268 &lt;br /&gt;
         1269   although it is also present in other systems.
         1270 &lt;br /&gt;
         1271 &lt;/p&gt;
         1272 &lt;ul&gt;
         1273 &lt;li&gt;The posix_spawn_file_actions_addclosefrom_np function has been added,
         1274 &lt;/li&gt;
         1275 &lt;/ul&gt;&lt;p&gt;  enabling posix_spawn and posix_spawnp to close all file descriptors greater
         1276 &lt;br /&gt;
         1277   than or equal to a given integer.  This function is a GNU extension,
         1278 &lt;br /&gt;
         1279   although Solaris also provides a similar function.
         1280 &lt;br /&gt;
         1281 &lt;/p&gt;
         1282 &lt;p&gt;Deprecated and removed features, and other changes affecting compatibility:
         1283 &lt;br /&gt;
         1284 &lt;/p&gt;
         1285 &lt;ul&gt;
         1286 &lt;li&gt;The function pthread_mutex_consistent_np has been deprecated; programs
         1287 &lt;/li&gt;
         1288 &lt;/ul&gt;&lt;p&gt;  should use the equivalent standard function pthread_mutex_consistent
         1289 &lt;br /&gt;
         1290   instead.
         1291 &lt;br /&gt;
         1292 &lt;/p&gt;
         1293 &lt;ul&gt;
         1294 &lt;li&gt;The function pthread_mutexattr_getrobust_np has been deprecated;
         1295 &lt;/li&gt;
         1296 &lt;/ul&gt;&lt;p&gt;  programs should use the equivalent standard function
         1297 &lt;br /&gt;
         1298   pthread_mutexattr_getrobust instead.
         1299 &lt;br /&gt;
         1300 &lt;/p&gt;
         1301 &lt;ul&gt;
         1302 &lt;li&gt;The function pthread_mutexattr_setrobust_np has been deprecated;
         1303 &lt;/li&gt;
         1304 &lt;/ul&gt;&lt;p&gt;  programs should use the equivalent standard function
         1305 &lt;br /&gt;
         1306   pthread_mutexattr_setrobust instead.
         1307 &lt;br /&gt;
         1308 &lt;/p&gt;
         1309 &lt;ul&gt;
         1310 &lt;li&gt;The function pthread_yield has been deprecated; programs should use
         1311 &lt;/li&gt;
         1312 &lt;/ul&gt;&lt;p&gt;  the equivalent standard function sched_yield instead.
         1313 &lt;br /&gt;
         1314 &lt;/p&gt;
         1315 &lt;ul&gt;
         1316 &lt;li&gt;The function inet_neta declared in &amp;lt;arpa/inet.h&amp;gt; has been deprecated.
         1317 &lt;/li&gt;
         1318 &lt;/ul&gt;
         1319 &lt;ul&gt;
         1320 &lt;li&gt;Various rarely-used functions declared in &amp;lt;resolv.h&amp;gt; and
         1321 &lt;/li&gt;
         1322 &lt;/ul&gt;&lt;p&gt;  &amp;lt;arpa/nameser.h&amp;gt; have been deprecated.  Applications are encouraged to
         1323 &lt;br /&gt;
         1324   use dedicated DNS processing libraries if applicable.  For &amp;lt;resolv.h&amp;gt;,
         1325 &lt;br /&gt;
         1326   this affects the functions dn_count_labels, fp_nquery, fp_query,
         1327 &lt;br /&gt;
         1328   fp_resstat, hostalias, loc_aton, loc_ntoa, p_cdname, p_cdnname,
         1329 &lt;br /&gt;
         1330   p_class, p_fqname, p_fqnname, p_option, p_query, p_rcode, p_time,
         1331 &lt;br /&gt;
         1332   p_type, putlong, putshort, res_hostalias, res_isourserver,
         1333 &lt;br /&gt;
         1334   res_nameinquery, res_queriesmatch, res_randomid, sym_ntop, sym_ntos,
         1335 &lt;br /&gt;
         1336   sym_ston.  For &amp;lt;arpa/nameser.h&amp;gt;, the functions ns_datetosecs,
         1337 &lt;br /&gt;
         1338   ns_format_ttl, ns_makecanon, ns_parse_ttl, ns_samedomain, ns_samename,
         1339 &lt;br /&gt;
         1340   ns_sprintrr, ns_sprintrrf, ns_subdomain have been deprecated.
         1341 &lt;br /&gt;
         1342 &lt;/p&gt;
         1343 &lt;ul&gt;
         1344 &lt;li&gt;Various symbols previously defined in libresolv have been moved to libc
         1345 &lt;/li&gt;
         1346 &lt;/ul&gt;&lt;p&gt;  in order to prepare for libresolv moving entirely into libc (see earlier
         1347 &lt;br /&gt;
         1348   entry for merging libraries into libc).  The symbols __dn_comp,
         1349 &lt;br /&gt;
         1350   __dn_expand, __dn_skipname, __res_dnok, __res_hnok, __res_mailok,
         1351 &lt;br /&gt;
         1352   __res_mkquery, __res_nmkquery, __res_nquery, __res_nquerydomain,
         1353 &lt;br /&gt;
         1354   __res_nsearch, __res_nsend, __res_ownok, __res_query, __res_querydomain,
         1355 &lt;br /&gt;
         1356   __res_search, __res_send formerly in libresolv have been renamed and no
         1357 &lt;br /&gt;
         1358   longer have a __ prefix.  They are now available in libc.
         1359 &lt;br /&gt;
         1360 &lt;/p&gt;
         1361 &lt;ul&gt;
         1362 &lt;li&gt;The pthread cancellation handler is now installed with SA_RESTART and
         1363 &lt;/li&gt;
         1364 &lt;/ul&gt;&lt;p&gt;  pthread_cancel will always send the internal SIGCANCEL on a cancellation
         1365 &lt;br /&gt;
         1366   request.  It should not be visible to applications since the cancellation
         1367 &lt;br /&gt;
         1368   handler should either act upon cancellation (if asynchronous cancellation
         1369 &lt;br /&gt;
         1370   is enabled) or ignore the cancellation internal signal.  However there are
         1371 &lt;br /&gt;
         1372   buggy kernel interfaces (for instance some CIFS versions) that could still
         1373 &lt;br /&gt;
         1374   see a spurious EINTR error when cancellation interrupts a blocking syscall.
         1375 &lt;br /&gt;
         1376 &lt;/p&gt;
         1377 &lt;ul&gt;
         1378 &lt;li&gt;Previously, glibc installed its various shared objects under versioned
         1379 &lt;/li&gt;
         1380 &lt;/ul&gt;&lt;p&gt;  file names such as libc-2.33.so.  The ABI sonames (e.g., libc.so.6)
         1381 &lt;br /&gt;
         1382   were provided as symbolic links.  Starting with glibc 2.34, the shared
         1383 &lt;br /&gt;
         1384   objects are installed under their ABI sonames directly, without
         1385 &lt;br /&gt;
         1386   symbolic links.  This increases compatibility with distribution
         1387 &lt;br /&gt;
         1388   package managers that delete removed files late during the package
         1389 &lt;br /&gt;
         1390   upgrade or downgrade process.
         1391 &lt;br /&gt;
         1392 &lt;/p&gt;
         1393 &lt;ul&gt;
         1394 &lt;li&gt;The symbols mallwatch and tr_break are now deprecated and no longer used in
         1395 &lt;/li&gt;
         1396 &lt;/ul&gt;&lt;p&gt;  mtrace.  Similar functionality can be achieved by using conditional
         1397 &lt;br /&gt;
         1398   breakpoints within mtrace functions from within gdb.
         1399 &lt;br /&gt;
         1400 &lt;/p&gt;
         1401 &lt;ul&gt;
         1402 &lt;li&gt;The __morecore and __after_morecore_hook malloc hooks and the default
         1403 &lt;/li&gt;
         1404 &lt;/ul&gt;&lt;p&gt;  implementation __default_morecore have been removed from the API.  Existing
         1405 &lt;br /&gt;
         1406   applications will continue to link against these symbols but the interfaces
         1407 &lt;br /&gt;
         1408   no longer have any effect on malloc.
         1409 &lt;br /&gt;
         1410 &lt;/p&gt;
         1411 &lt;ul&gt;
         1412 &lt;li&gt;Debugging features in malloc such as the MALLOC_CHECK_ environment variable
         1413 &lt;/li&gt;
         1414 &lt;/ul&gt;&lt;p&gt;  (or the glibc.malloc.check tunable), mtrace() and mcheck() have now been
         1415 &lt;br /&gt;
         1416   disabled by default in the main C library.  Users looking to use these
         1417 &lt;br /&gt;
         1418   features now need to preload a new debugging DSO libc_malloc_debug.so to get
         1419 &lt;br /&gt;
         1420   this functionality back.
         1421 &lt;br /&gt;
         1422 &lt;/p&gt;
         1423 &lt;ul&gt;
         1424 &lt;li&gt;The deprecated functions malloc_get_state and malloc_set_state have been
         1425 &lt;/li&gt;
         1426 &lt;/ul&gt;&lt;p&gt;  moved from the core C library into libc_malloc_debug.so.  Legacy applications
         1427 &lt;br /&gt;
         1428   that still use these functions will now need to preload libc_malloc_debug.so
         1429 &lt;br /&gt;
         1430   in their environment using the LD_PRELOAD environment variable.
         1431 &lt;br /&gt;
         1432 &lt;/p&gt;
         1433 &lt;ul&gt;
         1434 &lt;li&gt;The deprecated memory allocation hooks __malloc_hook, __realloc_hook,
         1435 &lt;/li&gt;
         1436 &lt;/ul&gt;&lt;p&gt;  __memalign_hook and __free_hook are now removed from the API.  Compatibility
         1437 &lt;br /&gt;
         1438   symbols are present to support legacy programs but new applications can no
         1439 &lt;br /&gt;
         1440   longer link to these symbols.  These hooks no longer have any effect on glibc
         1441 &lt;br /&gt;
         1442   functionality.  The malloc debugging DSO libc_malloc_debug.so currently
         1443 &lt;br /&gt;
         1444   supports hooks and can be preloaded to get this functionality back for older
         1445 &lt;br /&gt;
         1446   programs.  However this is a transitional measure and may be removed in a
         1447 &lt;br /&gt;
         1448   future release of the GNU C Library.  Users may port away from these hooks by
         1449 &lt;br /&gt;
         1450   writing and preloading their own malloc interposition library.
         1451 &lt;br /&gt;
         1452 &lt;/p&gt;
         1453 &lt;p&gt;Changes to build and runtime requirements:
         1454 &lt;br /&gt;
         1455 &lt;/p&gt;
         1456 &lt;ul&gt;
         1457 &lt;li&gt;On Linux, the shm_open, sem_open, and related functions now expect the
         1458 &lt;/li&gt;
         1459 &lt;/ul&gt;&lt;p&gt;  file shared memory file system to be mounted at /dev/shm.  These functions
         1460 &lt;br /&gt;
         1461   no longer search among the system&#39;s mount points for a suitable
         1462 &lt;br /&gt;
         1463   replacement if /dev/shm is not available.
         1464 &lt;br /&gt;
         1465 &lt;/p&gt;
         1466 &lt;p&gt;Security related changes:
         1467 &lt;br /&gt;
         1468 &lt;/p&gt;
         1469 &lt;p&gt;  CVE-2021-27645: The nameserver caching daemon (nscd), when processing
         1470 &lt;br /&gt;
         1471   a request for netgroup lookup, may crash due to a double-free,
         1472 &lt;br /&gt;
         1473   potentially resulting in degraded service or Denial of Service on the
         1474 &lt;br /&gt;
         1475   local system.  Reported by Chris Schanzle.
         1476 &lt;br /&gt;
         1477 &lt;/p&gt;
         1478 &lt;p&gt;  CVE-2021-33574: The mq_notify function has a potential use-after-free
         1479 &lt;br /&gt;
         1480   issue when using a notification type of SIGEV_THREAD and a thread
         1481 &lt;br /&gt;
         1482   attribute with a non-default affinity mask.
         1483 &lt;br /&gt;
         1484 &lt;/p&gt;
         1485 &lt;p&gt;  CVE-2021-35942: The wordexp function may overflow the positional
         1486 &lt;br /&gt;
         1487   parameter number when processing the expansion resulting in a crash.
         1488 &lt;br /&gt;
         1489   Reported by Philippe Antoine.
         1490 &lt;br /&gt;
         1491 &lt;/p&gt;
         1492 &lt;p&gt;The following bugs are resolved with this release:
         1493 &lt;br /&gt;
         1494 &lt;/p&gt;
         1495 &lt;p&gt;  [4737] libc: fork is not async-signal-safe
         1496 &lt;br /&gt;
         1497   [5781] math: Slow dbl-64 sin/cos/sincos for special values
         1498 &lt;br /&gt;
         1499   [10353] libc: Methods for deleting all file descriptors greater than
         1500 &lt;br /&gt;
         1501     given integer (closefrom)
         1502 &lt;br /&gt;
         1503   [14185] glob: fnmatch() fails when &#39;*&#39; wildcard is applied on the file
         1504 &lt;br /&gt;
         1505     name containing multi-byte character(s)
         1506 &lt;br /&gt;
         1507   [14469] math: Inaccurate j0f function
         1508 &lt;br /&gt;
         1509   [14470] math: Inaccurate j1f function
         1510 &lt;br /&gt;
         1511   [14471] math: Inaccurate y0f function
         1512 &lt;br /&gt;
         1513   [14472] math: Inaccurate y1f function
         1514 &lt;br /&gt;
         1515   [14744] nptl: kill -32 $pid or kill -33 $pid on a process cancels a
         1516 &lt;br /&gt;
         1517     random thread
         1518 &lt;br /&gt;
         1519   [15271] dynamic-link: dlmopen()ed shared library with LM_ID_NEWLM
         1520 &lt;br /&gt;
         1521     crashes if it fails dlsym() twice
         1522 &lt;br /&gt;
         1523   [15648] nptl: multiple definition of `__lll_lock_wait_private&#39;
         1524 &lt;br /&gt;
         1525   [16063] nptl: Provide a pthread_once variant in libc directly
         1526 &lt;br /&gt;
         1527   [17144] libc: syslog is not thread-safe if NO_SIGPIPE is not defined
         1528 &lt;br /&gt;
         1529   [17145] libc: syslog with LOG_CONS leaks console file descriptor
         1530 &lt;br /&gt;
         1531   [17183] manual: description of ENTRY struct in &amp;lt;search.h&amp;gt; in glibc
         1532 &lt;br /&gt;
         1533     manual is incorrect
         1534 &lt;br /&gt;
         1535   [18435] nptl: pthread_once hangs when init routine throws an exception
         1536 &lt;br /&gt;
         1537   [18524] nptl: Missing calloc error checking in
         1538 &lt;br /&gt;
         1539     __cxa_thread_atexit_impl
         1540 &lt;br /&gt;
         1541   [19329] dynamic-link: dl-tls.c assert failure at concurrent
         1542 &lt;br /&gt;
         1543     pthread_create and dlopen
         1544 &lt;br /&gt;
         1545   [19366] nptl: returning from a thread should disable cancellation
         1546 &lt;br /&gt;
         1547   [19511] nptl: 8MB memory leak in pthread_create in case of failure
         1548 &lt;br /&gt;
         1549     when non-root user changes priority
         1550 &lt;br /&gt;
         1551   [20802] dynamic-link: getauxval NULL pointer dereference after static
         1552 &lt;br /&gt;
         1553     dlopen
         1554 &lt;br /&gt;
         1555   [20813] nptl: pthread_exit is inconsistent between libc and libpthread
         1556 &lt;br /&gt;
         1557   [22057] malloc: malloc_usable_size is broken with mcheck
         1558 &lt;br /&gt;
         1559   [22668] locale: LC_COLLATE: the last character of ellipsis is not
         1560 &lt;br /&gt;
         1561     ordered correctly
         1562 &lt;br /&gt;
         1563   [23323] libc: [RFE] CSU startup hardening.
         1564 &lt;br /&gt;
         1565   [23328] malloc: Remove malloc hooks and ensure related APIs return no
         1566 &lt;br /&gt;
         1567     data.
         1568 &lt;br /&gt;
         1569   [23462] dynamic-link: Static binary with dynamic string tokens ($LIB,
         1570 &lt;br /&gt;
         1571     $PLATFORM, $ORIGIN) crashes
         1572 &lt;br /&gt;
         1573   [23489] libc: &quot;gcc -lmcheck&quot; aborts on free when using posix_memalign
         1574 &lt;br /&gt;
         1575   [23554] nptl: pthread_getattr_np reports wrong stack size with
         1576 &lt;br /&gt;
         1577     MULTI_PAGE_ALIASING
         1578 &lt;br /&gt;
         1579   [24106] libc: Bash interpreter in ldd script is taken from host
         1580 &lt;br /&gt;
         1581   [24773] dynamic-link: dlerror in an secondary namespace does not use
         1582 &lt;br /&gt;
         1583     the right free implementation
         1584 &lt;br /&gt;
         1585   [25036] localedata: Update collation order for Swedish
         1586 &lt;br /&gt;
         1587   [25383] libc: where_is_shmfs/__shm_directory/SHM_GET_NAME may cause
         1588 &lt;br /&gt;
         1589     shm_open to pick wrong directory
         1590 &lt;br /&gt;
         1591   [25680] dynamic-link: ifuncmain9picstatic and ifuncmain9picstatic
         1592 &lt;br /&gt;
         1593     crash in IFUNC resolver due to stack canary (--enable-stack-
         1594 &lt;br /&gt;
         1595     protector=all)
         1596 &lt;br /&gt;
         1597   [26874] build: -Warray-bounds in _IO_wdefault_doallocate
         1598 &lt;br /&gt;
         1599   [26983] math: [x86_64] x86_64 tgamma has too large ULP error
         1600 &lt;br /&gt;
         1601   [27111] dynamic-link: pthread_create and tls access use link_map
         1602 &lt;br /&gt;
         1603     objects that may be concurrently freed by dlclose
         1604 &lt;br /&gt;
         1605   [27132] malloc: memusagestat is linked to system librt, leading to
         1606 &lt;br /&gt;
         1607     undefined symbols on major version upgrade
         1608 &lt;br /&gt;
         1609   [27136] dynamic-link: dtv setup at thread creation may leave an entry
         1610 &lt;br /&gt;
         1611     uninitialized
         1612 &lt;br /&gt;
         1613   [27249] libc: libSegFault.so does not output signal number properly
         1614 &lt;br /&gt;
         1615   [27304] nptl: pthread_cond_destroy does not pass private flag to futex
         1616 &lt;br /&gt;
         1617     system calls
         1618 &lt;br /&gt;
         1619   [27318] dynamic-link: glibc fails to load binaries when built with
         1620 &lt;br /&gt;
         1621     -march=sandybridge:  CPU ISA level is lower than required
         1622 &lt;br /&gt;
         1623   [27343] nss: initgroups() SIGSEGVs when called on a system without
         1624 &lt;br /&gt;
         1625     nsswich.conf (in a chroot)
         1626 &lt;br /&gt;
         1627   [27346] dynamic-link: x86: PTWRITE feature check is missing
         1628 &lt;br /&gt;
         1629   [27389] network: NSS chroot hardening causes regressions in chroot
         1630 &lt;br /&gt;
         1631     deployments
         1632 &lt;br /&gt;
         1633   [27403] dynamic-link: aarch64: tlsdesc htab is not freed on dlclose
         1634 &lt;br /&gt;
         1635   [27444] libc: sysconf reports unsupported option (-1) for
         1636 &lt;br /&gt;
         1637     _SC_LEVEL1_ICACHE_LINESIZE on X86 since v2.33
         1638 &lt;br /&gt;
         1639   [27462] nscd: double-free in nscd (CVE-2021-27645)
         1640 &lt;br /&gt;
         1641   [27468] malloc: aarch64: realloc crash with heap tagging: FAIL:
         1642 &lt;br /&gt;
         1643     malloc/tst-malloc-thread-fail
         1644 &lt;br /&gt;
         1645   [27498] dynamic-link: __dl_iterate_phdr lacks unwinding information
         1646 &lt;br /&gt;
         1647   [27511] libc: S390 memmove assumes Vector Facility when MIE Facility 3
         1648 &lt;br /&gt;
         1649     is present
         1650 &lt;br /&gt;
         1651   [27522] glob: glob, glob64 incorrectly marked as __THROW
         1652 &lt;br /&gt;
         1653   [27555] dynamic-link: Static tests fail with --enable-stack-
         1654 &lt;br /&gt;
         1655     protector=all
         1656 &lt;br /&gt;
         1657   [27559] libc: fstat(AT_FDCWD) succeeds (it shouldn&#39;t) and returns
         1658 &lt;br /&gt;
         1659     information for the current directory
         1660 &lt;br /&gt;
         1661   [27577] dynamic-link: elf/ld.so --help doesn&#39;t work
         1662 &lt;br /&gt;
         1663   [27605] libc: tunables can&#39;t control xsave/xsavec selection in
         1664 &lt;br /&gt;
         1665     dl_runtime_resolve_*
         1666 &lt;br /&gt;
         1667   [27623] libc: powerpc: Missing registers in sc[v] clobbers list
         1668 &lt;br /&gt;
         1669   [27645] libc: [linux] sysconf(_SC_NPROCESSOR...) breaks down on
         1670 &lt;br /&gt;
         1671     containers
         1672 &lt;br /&gt;
         1673   [27646] dynamic-link: Linker error for non-existing NSS symbols (e.g.
         1674 &lt;br /&gt;
         1675     _nss_files_getcanonname_r) from within a dlmopen namespace.
         1676 &lt;br /&gt;
         1677   [27648] libc: FAIL: misc/tst-select
         1678 &lt;br /&gt;
         1679   [27650] stdio: vfscanf returns too early if a match is longer than
         1680 &lt;br /&gt;
         1681     INT_MAX
         1682 &lt;br /&gt;
         1683   [27651] libc: Performance regression after updating to 2.33
         1684 &lt;br /&gt;
         1685   [27655] string: Wrong size calculation in string/test-strnlen.c
         1686 &lt;br /&gt;
         1687   [27706] libc: select fails to update timeout on error
         1688 &lt;br /&gt;
         1689   [27709] libc: arm: FAIL: debug/tst-longjmp_chk2
         1690 &lt;br /&gt;
         1691   [27721] dynamic-link: x86: ld_audit ignores bind now for TLSDESC and
         1692 &lt;br /&gt;
         1693     tries resolving them lazily
         1694 &lt;br /&gt;
         1695   [27744] nptl: Support different libpthread/ld.so load orders in
         1696 &lt;br /&gt;
         1697     libthread_db
         1698 &lt;br /&gt;
         1699   [27749] libc: Data race __run_exit_handlers
         1700 &lt;br /&gt;
         1701   [27761] libc: getconf: Segmentation fault when passing &#39;-vq&#39; as
         1702 &lt;br /&gt;
         1703     argument
         1704 &lt;br /&gt;
         1705   [27832] nss: makedb.c:797:7: error: &#39;writev&#39; specified size 4294967295
         1706 &lt;br /&gt;
         1707     exceeds maximum object size 2147483647
         1708 &lt;br /&gt;
         1709   [27870] malloc: MALLOC_CHECK_ causes realloc(valid_ptr, TOO_LARGE) to
         1710 &lt;br /&gt;
         1711     not set ENOMEM
         1712 &lt;br /&gt;
         1713   [27872] build: Obsolete configure option --enable-stackguard-
         1714 &lt;br /&gt;
         1715     randomization
         1716 &lt;br /&gt;
         1717   [27873] build: tst-cpu-features-cpuinfo fail when building on AMD cpu
         1718 &lt;br /&gt;
         1719   [27882] localedata: Use U+00AF MACRON in more EBCDIC charsets
         1720 &lt;br /&gt;
         1721   [27892] libc: powerpc: scv ABI error handling fails to check
         1722 &lt;br /&gt;
         1723     IS_ERR_VALUE
         1724 &lt;br /&gt;
         1725   [27896] nptl: mq_notify does not handle separately allocated thread
         1726 &lt;br /&gt;
         1727     attributes (CVE-2021-33574)
         1728 &lt;br /&gt;
         1729   [27901] libc: TEST_STACK_ALIGN doesn&#39;t work
         1730 &lt;br /&gt;
         1731   [27902] libc: The x86-64 clone wrapper fails to align child stack
         1732 &lt;br /&gt;
         1733   [27914] nptl: Install SIGSETXID handler with SA_ONSTACK
         1734 &lt;br /&gt;
         1735   [27939] libc: aarch64: clone does not align the stack
         1736 &lt;br /&gt;
         1737   [27968] libc: s390x: clone does not align the stack
         1738 &lt;br /&gt;
         1739   [28011] libc: Wild read in wordexp (parse_param) (CVE-2021-35942)
         1740 &lt;br /&gt;
         1741   [28024] string: s390(31bit): Wrong result of memchr (MEMCHR_Z900_G5)
         1742 &lt;br /&gt;
         1743     with n &amp;gt;= 0x80000000
         1744 &lt;br /&gt;
         1745   [28028] malloc: malloc: tcache shutdown sequence does not work if the
         1746 &lt;br /&gt;
         1747     thread never allocated anything
         1748 &lt;br /&gt;
         1749   [28033] libc: Need to check RTM_ALWAYS_ABORT for RTM
         1750 &lt;br /&gt;
         1751   [28064] string: x86_64:wcslen implementation list has wcsnlen
         1752 &lt;br /&gt;
         1753   [28067] libc: FAIL: posix/tst-spawn5
         1754 &lt;br /&gt;
         1755   [28068] malloc: FAIL: malloc/tst-mallocalign1-mcheck
         1756 &lt;br /&gt;
         1757   [28071] time: clock_gettime, gettimeofday, time lost vDSO acceleration
         1758 &lt;br /&gt;
         1759     on older kernels
         1760 &lt;br /&gt;
         1761   [28075] nis: Out-of-bounds static buffer read in nis_local_domain
         1762 &lt;br /&gt;
         1763   [28089] build: tst-tls20 fails when linker defaults to --as-needed
         1764 &lt;br /&gt;
         1765   [28090] build: elf/tst-cpu-features-cpuinfo-static fails on certain
         1766 &lt;br /&gt;
         1767     AMD64 cpus
         1768 &lt;br /&gt;
         1769   [28091] network: ns_name_skip may return 0 for domain names without
         1770 &lt;br /&gt;
         1771     terminator
         1772 &lt;br /&gt;
         1773 &lt;/p&gt;
         1774 &lt;p&gt;Release Notes
         1775 &lt;br /&gt;
         1776 =============
         1777 &lt;br /&gt;
         1778 &lt;/p&gt;
         1779 &lt;p&gt;&lt;a href=&quot;https://sourceware.org/glibc/wiki/Release/2.34&quot;&gt;https://sourceware.org/glibc/wiki/Release/2.34&lt;/a&gt;
         1780 &lt;br /&gt;
         1781 &lt;/p&gt;
         1782 &lt;p&gt;Contributors
         1783 &lt;br /&gt;
         1784 ============
         1785 &lt;br /&gt;
         1786 &lt;/p&gt;
         1787 &lt;p&gt;This release was made possible by the contributions of many people.
         1788 &lt;br /&gt;
         1789 The maintainers are grateful to everyone who has contributed
         1790 &lt;br /&gt;
         1791 changes or bug reports.  These include:
         1792 &lt;br /&gt;
         1793 &lt;/p&gt;
         1794 &lt;p&gt;Adhemerval Zanella
         1795 &lt;br /&gt;
         1796 Alejandro Colomar \(man-pages\)
         1797 &lt;br /&gt;
         1798 Alexandra Hájková
         1799 &lt;br /&gt;
         1800 Alice Xu
         1801 &lt;br /&gt;
         1802 Alyssa Ross
         1803 &lt;br /&gt;
         1804 Andreas Roeseler
         1805 &lt;br /&gt;
         1806 Andreas Schwab
         1807 &lt;br /&gt;
         1808 Anton Blanchard
         1809 &lt;br /&gt;
         1810 Arjun Shankar
         1811 &lt;br /&gt;
         1812 Armin Brauns
         1813 &lt;br /&gt;
         1814 Bruno Haible
         1815 &lt;br /&gt;
         1816 Carlos O&#39;Donell
         1817 &lt;br /&gt;
         1818 Cooper Qu
         1819 &lt;br /&gt;
         1820 DJ Delorie
         1821 &lt;br /&gt;
         1822 Dan Raymond
         1823 &lt;br /&gt;
         1824 Darius Rad
         1825 &lt;br /&gt;
         1826 David Hughes
         1827 &lt;br /&gt;
         1828 Fangrui Song
         1829 &lt;br /&gt;
         1830 Florian Weimer
         1831 &lt;br /&gt;
         1832 H.J. Lu
         1833 &lt;br /&gt;
         1834 Hanataka Shinya
         1835 &lt;br /&gt;
         1836 Hugo Gabriel Eyherabide
         1837 &lt;br /&gt;
         1838 Jakub Jelinek
         1839 &lt;br /&gt;
         1840 JeffyChen
         1841 &lt;br /&gt;
         1842 John David Anglin
         1843 &lt;br /&gt;
         1844 Joseph Myers
         1845 &lt;br /&gt;
         1846 Khem Raj
         1847 &lt;br /&gt;
         1848 Lirong Yuan
         1849 &lt;br /&gt;
         1850 Lucas A. M. Magalhaes
         1851 &lt;br /&gt;
         1852 Lukasz Majewski
         1853 &lt;br /&gt;
         1854 Maninder Singh
         1855 &lt;br /&gt;
         1856 Mark Harris
         1857 &lt;br /&gt;
         1858 Martin Sebor
         1859 &lt;br /&gt;
         1860 Matheus Castanho
         1861 &lt;br /&gt;
         1862 Michal Nazarewicz
         1863 &lt;br /&gt;
         1864 Mike Hommey
         1865 &lt;br /&gt;
         1866 Naohiro Tamura
         1867 &lt;br /&gt;
         1868 Nicholas Piggin
         1869 &lt;br /&gt;
         1870 Noah Goldstein
         1871 &lt;br /&gt;
         1872 Paul Eggert
         1873 &lt;br /&gt;
         1874 Paul Zimmermann
         1875 &lt;br /&gt;
         1876 Pedro Franco de Carvalho
         1877 &lt;br /&gt;
         1878 Raoni Fassina Firmino
         1879 &lt;br /&gt;
         1880 Raphael Moreira Zinsly
         1881 &lt;br /&gt;
         1882 Romain GEISSLER
         1883 &lt;br /&gt;
         1884 Sajan Karumanchi
         1885 &lt;br /&gt;
         1886 Samuel Thibault
         1887 &lt;br /&gt;
         1888 Sebastian Rasmussen
         1889 &lt;br /&gt;
         1890 Sergei Trofimovich
         1891 &lt;br /&gt;
         1892 Shen-Ta Hsieh
         1893 &lt;br /&gt;
         1894 Siddhesh Poyarekar
         1895 &lt;br /&gt;
         1896 Stafford Horne
         1897 &lt;br /&gt;
         1898 Stefan Liebler
         1899 &lt;br /&gt;
         1900 Sunil K Pandey
         1901 &lt;br /&gt;
         1902 Szabolcs Nagy
         1903 &lt;br /&gt;
         1904 Tulio Magno Quites Machado Filho
         1905 &lt;br /&gt;
         1906 Vineet Gupta
         1907 &lt;br /&gt;
         1908 Vitaly Buka
         1909 &lt;br /&gt;
         1910 Vitaly Chikunov
         1911 &lt;br /&gt;
         1912 Wilco Dijkstra
         1913 &lt;br /&gt;
         1914 Xeonacid
         1915 &lt;br /&gt;
         1916 Xiaoming Ni
         1917 &lt;br /&gt;
         1918 Yang Xu
         1919 &lt;br /&gt;
         1920 liuhongt
         1921 &lt;br /&gt;
         1922 noah
         1923 &lt;br /&gt;
         1924 Érico Nogueira&lt;br /&gt;
         1925 &lt;/p&gt; </description> 
         1926         <pubDate>Mon, 02 Aug 2021 03:57:01 +0000</pubDate>
         1927 
         1928 </item> 
         1929 <item>
         1930         <title>diffutils @ Savannah: diffutils-3.8 released [stable]</title>
         1931         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10031</guid>
         1932         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10031</link>
         1933      <description>  &lt;blockquote class=&quot;verbatim&quot;&gt;&lt;p&gt; This is to announce diffutils-3.8, a stable release.&lt;br /&gt;
         1934 &lt;br /&gt;
         1935 There have been 47 commits by 5 people in the 2.6 years since 3.7.&lt;br /&gt;
         1936 &lt;br /&gt;
         1937 See the NEWS below for a brief summary.&lt;br /&gt;
         1938 &lt;br /&gt;
         1939 Thanks to everyone who has contributed!&lt;br /&gt;
         1940 The following people contributed changes to this release:&lt;br /&gt;
         1941 &lt;br /&gt;
         1942   Bruno Haible (2)&lt;br /&gt;
         1943   Dave Odell (1)&lt;br /&gt;
         1944   Jim Meyering (23)&lt;br /&gt;
         1945   KO Myung-Hun (1)&lt;br /&gt;
         1946   Paul Eggert (20)&lt;br /&gt;
         1947 &lt;br /&gt;
         1948 Jim [on behalf of the diffutils maintainers]&lt;br /&gt;
         1949 ==================================================================&lt;br /&gt;
         1950 &lt;br /&gt;
         1951 Here is the GNU diffutils home page:&lt;br /&gt;
         1952     http://gnu.org/s/diffutils/&lt;br /&gt;
         1953 &lt;br /&gt;
         1954 For a summary of changes and contributors, see:&lt;br /&gt;
         1955   http://git.sv.gnu.org/gitweb/?p=diffutils.git;a=shortlog;h=v3.8&lt;br /&gt;
         1956 or run this command from a git-cloned diffutils directory:&lt;br /&gt;
         1957   git shortlog v3.7..v3.8&lt;br /&gt;
         1958 &lt;br /&gt;
         1959 To summarize the 2453 gnulib-related changes, run these commands&lt;br /&gt;
         1960 from a git-cloned diffutils directory:&lt;br /&gt;
         1961   git checkout v3.8&lt;br /&gt;
         1962   git submodule summary v3.7&lt;br /&gt;
         1963 &lt;br /&gt;
         1964 Here are the compressed sources and a GPG detached signature[*]:&lt;br /&gt;
         1965   https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz&lt;br /&gt;
         1966   https://ftp.gnu.org/gnu/diffutils/diffutils-3.8.tar.xz.sig&lt;br /&gt;
         1967 &lt;br /&gt;
         1968 Use a mirror for higher download bandwidth:&lt;br /&gt;
         1969   https://ftpmirror.gnu.org/diffutils/diffutils-3.8.tar.xz&lt;br /&gt;
         1970   https://ftpmirror.gnu.org/diffutils/diffutils-3.8.tar.xz.sig&lt;br /&gt;
         1971 &lt;br /&gt;
         1972 [*] Use a .sig file to verify that the corresponding file (without the&lt;br /&gt;
         1973 .sig suffix) is intact.  First, be sure to download both the .sig file&lt;br /&gt;
         1974 and the corresponding tarball.  Then, run a command like this:&lt;br /&gt;
         1975 &lt;br /&gt;
         1976   gpg --verify diffutils-3.8.tar.xz.sig&lt;br /&gt;
         1977 &lt;br /&gt;
         1978 If that command fails because you don&#39;t have the required public key,&lt;br /&gt;
         1979 then run this command to import it:&lt;br /&gt;
         1980 &lt;br /&gt;
         1981   gpg --keyserver keys.gnupg.net --recv-keys 7FD9FCCB000BEEEE&lt;br /&gt;
         1982 &lt;br /&gt;
         1983 and rerun the &#39;gpg --verify&#39; command.&lt;br /&gt;
         1984 &lt;br /&gt;
         1985 This release was bootstrapped with the following tools:&lt;br /&gt;
         1986   Autoconf 2.71&lt;br /&gt;
         1987   Automake 1.16d&lt;br /&gt;
         1988   Gnulib v0.1-4758-gb48905892&lt;br /&gt;
         1989 &lt;br /&gt;
         1990 NEWS&lt;br /&gt;
         1991 &lt;br /&gt;
         1992 * Noteworthy changes in release 3.8 (2021-08-01) [stable]&lt;br /&gt;
         1993 &lt;br /&gt;
         1994 ** Incompatible changes&lt;br /&gt;
         1995 &lt;br /&gt;
         1996   diff no longer treats a closed stdin as representing an absent file&lt;br /&gt;
         1997   in usage like &#39;diff --new-file - foo &amp;lt;&amp;amp;-&#39;.  This feature was rarely&lt;br /&gt;
         1998   if ever used and was not portable to POSIX platforms that reopen&lt;br /&gt;
         1999   stdin on exec, such as SELinux if the process underwent an AT_SECURE&lt;br /&gt;
         2000   transition, or HP-UX even if not setuid.&lt;br /&gt;
         2001   [bug#33965 introduced in 2.8]&lt;br /&gt;
         2002 &lt;br /&gt;
         2003 ** Bug fixes&lt;br /&gt;
         2004 &lt;br /&gt;
         2005   diff and related programs no longer get confused if stdin, stdout,&lt;br /&gt;
         2006   or stderr are closed.  Previously, they sometimes opened files into&lt;br /&gt;
         2007   file descriptors 0, 1, or 2 and then mistakenly did I/O with them&lt;br /&gt;
         2008   that was intended for stdin, stdout, or stderr.&lt;br /&gt;
         2009   [bug#33965 present since &quot;the beginning&quot;]&lt;br /&gt;
         2010 &lt;br /&gt;
         2011   cmp, diff and sdiff no longer treat negative command-line&lt;br /&gt;
         2012   option-arguments as if they were large positive numbers.&lt;br /&gt;
         2013   [bug#35256 introduced in 2.8]&lt;br /&gt;
         2014 &lt;/p&gt;&lt;/blockquote&gt; </description> 
         2015         <pubDate>Mon, 02 Aug 2021 02:14:08 +0000</pubDate>
         2016 
         2017 </item> 
         2018 <item>
         2019         <title>remotecontrol @ Savannah: Nest Outage Takes Out Most Services</title>
         2020         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10029</guid>
         2021         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10029</link>
         2022      <description>  &lt;p&gt;&lt;a href=&quot;https://www.droid-life.com/2021/07/28/nest-outage-takes-out-most-services/&quot;&gt;https://www.droid-life.com/2021/07/28/nest-outage-takes-out-most-services/&lt;/a&gt;
         2023 &lt;br /&gt;
         2024 &lt;/p&gt;
         2025 &lt;p&gt;&lt;a href=&quot;https://status.nest.com/history&quot;&gt;https://status.nest.com/history&lt;/a&gt;&lt;br /&gt;
         2026 &lt;/p&gt; </description> 
         2027         <pubDate>Thu, 29 Jul 2021 10:27:43 +0000</pubDate>
         2028 
         2029 </item> 
         2030 <item>
         2031         <title>FSF News: FSF job opportunity: Operations assistant</title>
         2032         <guid>http://www.fsf.org/news/fsf-job-opportunity-operations-assistant-1</guid>
         2033         <link>http://www.fsf.org/news/fsf-job-opportunity-operations-assistant-1</link>
         2034      <description>  The Free Software Foundation (FSF), a Massachusetts 501(c)(3) charity with a worldwide mission to protect and promote computer-user freedom, seeks a motivated and organized Boston-based individual to be our full-time operations assistant. </description> 
         2035         <pubDate>Wed, 28 Jul 2021 20:35:00 +0000</pubDate>
         2036 
         2037 </item> 
         2038 <item>
         2039         <title>health @ Savannah: Release of MyGNUHealth 1.0.3</title>
         2040         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10028</guid>
         2041         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10028</link>
         2042      <description>  &lt;p&gt;Dear GNU community:
         2043 &lt;br /&gt;
         2044 &lt;/p&gt;
         2045 &lt;p&gt;I am happy to announce that the release 1.0.3 of the GNU Health Personal Health Record (PHR) component, MyGNUHealth.
         2046 &lt;br /&gt;
         2047 &lt;/p&gt;
         2048 &lt;p&gt;This release updates the medical genetics domain, with the latest human natural variant dataset based on UniProt Consortium (release 2021_03 of June 02 2021).
         2049 &lt;br /&gt;
         2050 &lt;/p&gt;
         2051 &lt;p&gt;Statistics for single amino acid variants:
         2052 &lt;br /&gt;
         2053 &lt;/p&gt;
         2054 &lt;blockquote class=&quot;verbatim&quot;&gt;&lt;p&gt;              Likely pathogenic or pathogenic (LP/P):  31398&lt;br /&gt;
         2055              Likely benign or benign         (LB/B):  39584&lt;br /&gt;
         2056              Uncertain significance            (US):   8763&lt;br /&gt;
         2057                                              --------------&lt;br /&gt;
         2058                                               Total:  79745&lt;br /&gt;
         2059 &lt;br /&gt;
         2060 &lt;/p&gt;&lt;/blockquote&gt;
         2061 &lt;p&gt;
         2062 &lt;/p&gt;
         2063 &lt;p&gt;In addition, some minor changes / updates in the documentation and credits have been done.
         2064 &lt;br /&gt;
         2065 &lt;/p&gt;
         2066 &lt;p&gt;This latest version is already available at Savannah, and the Python Package Index (PyPi). Shortly will also be in your favorite Libre operating system / distribution.
         2067 &lt;br /&gt;
         2068 &lt;/p&gt;
         2069 &lt;p&gt;Again, thanks to all of you who collaborate and make GNU Health a reality!
         2070 &lt;br /&gt;
         2071 &lt;/p&gt;
         2072 &lt;p&gt;Happy and healthy hacking!
         2073 &lt;br /&gt;
         2074 Luis&lt;br /&gt;
         2075 &lt;/p&gt; </description> 
         2076         <pubDate>Sun, 25 Jul 2021 13:03:00 +0000</pubDate>
         2077 
         2078 </item> 
         2079 <item>
         2080         <title>parallel @ Savannah: GNU Parallel 20210722 (&#39;Blue Unity&#39;) released</title>
         2081         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10027</guid>
         2082         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10027</link>
         2083      <description>  &lt;p&gt;GNU Parallel 20210722 (&#39;Blue Unity&#39;) has been released. It is available for download at: lbry://@GnuParallel:4
         2084 &lt;br /&gt;
         2085 &lt;/p&gt;
         2086 &lt;p&gt;Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: &lt;a href=&quot;http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4&quot;&gt;http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4&lt;/a&gt;
         2087 &lt;br /&gt;
         2088 &lt;/p&gt;
         2089 &lt;p&gt;It does not have to be as detailed as Juan&#39;s. It is perfectly fine if you just say your name, and what field you are using GNU Parallel for.
         2090 &lt;br /&gt;
         2091 &lt;/p&gt;
         2092 &lt;p&gt;Quote of the month:
         2093 &lt;br /&gt;
         2094 &lt;/p&gt;
         2095 &lt;p&gt;  We use gnu parallel now - and happier for it.
         2096 &lt;br /&gt;
         2097      -- Ben Davies @benjamindavies@twitter
         2098 &lt;br /&gt;
         2099 &lt;/p&gt;
         2100 &lt;p&gt;New in this release:
         2101 &lt;br /&gt;
         2102 &lt;/p&gt;
         2103 &lt;ul&gt;
         2104 &lt;li&gt;--results no longer prints the result to standard output (stdout) as voted in &lt;a href=&quot;https://lists.gnu.org/archive/html/parallel/2020-12/msg00003.html&quot;&gt;https://lists.gnu.org/archive/html/parallel/2020-12/msg00003.html&lt;/a&gt;
         2105 &lt;/li&gt;
         2106 &lt;/ul&gt;
         2107 &lt;ul&gt;
         2108 &lt;li&gt;parset supports associative arrays in bash, ksh, zsh.
         2109 &lt;/li&gt;
         2110 &lt;/ul&gt;
         2111 &lt;ul&gt;
         2112 &lt;li&gt;Online HTML is now generated by Sphinx.
         2113 &lt;/li&gt;
         2114 &lt;/ul&gt;
         2115 &lt;ul&gt;
         2116 &lt;li&gt;Bug fixes and man page updates.
         2117 &lt;/li&gt;
         2118 &lt;/ul&gt;
         2119 &lt;p&gt;News about GNU Parallel:
         2120 &lt;br /&gt;
         2121 &lt;/p&gt;
         2122 &lt;ul&gt;
         2123 &lt;li&gt;Cleaning Up Scanned Documents with Open Source Tools &lt;a href=&quot;https://kaerumy.medium.com/cleaning-up-scanned-documents-with-open-source-tools-9d87e15305b&quot;&gt;https://kaerumy.medium.com/cleaning-up-scanned-documents-with-open-source-tools-9d87e15305b&lt;/a&gt;
         2124 &lt;/li&gt;
         2125 &lt;/ul&gt;
         2126 
         2127 &lt;p&gt;Get the book: GNU Parallel 2018 &lt;a href=&quot;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&quot;&gt;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&lt;/a&gt;
         2128 &lt;br /&gt;
         2129 &lt;/p&gt;
         2130 &lt;p&gt;GNU Parallel - For people who live life in the parallel lane.
         2131 &lt;br /&gt;
         2132 &lt;/p&gt;
         2133 &lt;p&gt;If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
         2134 &lt;br /&gt;
         2135 &lt;/p&gt;
         2136 
         2137 &lt;h2&gt;About GNU Parallel&lt;/h2&gt;
         2138 
         2139 &lt;p&gt;GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.
         2140 &lt;br /&gt;
         2141 &lt;/p&gt;
         2142 &lt;p&gt;If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.
         2143 &lt;br /&gt;
         2144 &lt;/p&gt;
         2145 &lt;p&gt;GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.
         2146 &lt;br /&gt;
         2147 &lt;/p&gt;
         2148 &lt;p&gt;For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
         2149 &lt;br /&gt;
         2150 &lt;/p&gt;
         2151 &lt;p&gt;  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
         2152 &lt;br /&gt;
         2153 &lt;/p&gt;
         2154 &lt;p&gt;Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
         2155 &lt;br /&gt;
         2156 &lt;/p&gt;
         2157 &lt;p&gt;  find . -name &#39;*.jpg&#39; |
         2158 &lt;br /&gt;
         2159     parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
         2160 &lt;br /&gt;
         2161 &lt;/p&gt;
         2162 &lt;p&gt;You can find more about GNU Parallel at: &lt;a href=&quot;http://www.gnu.org/s/parallel/&quot;&gt;http://www.gnu.org/s/parallel/&lt;/a&gt;
         2163 &lt;br /&gt;
         2164 &lt;/p&gt;
         2165 &lt;p&gt;You can install GNU Parallel in just 10 seconds with:
         2166 &lt;br /&gt;
         2167 &lt;/p&gt;
         2168 &lt;p&gt;    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
         2169 &lt;br /&gt;
         2170        fetch -o - &lt;a href=&quot;http://pi.dk/3&quot;&gt;http://pi.dk/3&lt;/a&gt; ) &amp;gt; install.sh
         2171 &lt;br /&gt;
         2172     $ sha1sum install.sh | grep c82233e7da3166308632ac8c34f850c0
         2173 &lt;br /&gt;
         2174     12345678 c82233e7 da316630 8632ac8c 34f850c0
         2175 &lt;br /&gt;
         2176     $ md5sum install.sh | grep ae3d7aac5e15cf3dfc87046cfc5918d2
         2177 &lt;br /&gt;
         2178     ae3d7aac 5e15cf3d fc87046c fc5918d2
         2179 &lt;br /&gt;
         2180     $ sha512sum install.sh | grep dfc00d823137271a6d96225cea9e89f533ff6c81f
         2181 &lt;br /&gt;
         2182     9c5198d5 31a3b755 b7910ece 3a42d206 c804694d fc00d823 137271a6 d96225ce
         2183 &lt;br /&gt;
         2184     a9e89f53 3ff6c81f f52b298b ef9fb613 2d3f9ccd 0e2c7bd3 c35978b5 79acb5ca
         2185 &lt;br /&gt;
         2186     $ bash install.sh
         2187 &lt;br /&gt;
         2188 &lt;/p&gt;
         2189 &lt;p&gt;Watch the intro video on &lt;a href=&quot;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&quot;&gt;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&lt;/a&gt;
         2190 &lt;br /&gt;
         2191 &lt;/p&gt;
         2192 &lt;p&gt;Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
         2193 &lt;br /&gt;
         2194 &lt;/p&gt;
         2195 &lt;p&gt;When using programs that use GNU Parallel to process data for publication please cite:
         2196 &lt;br /&gt;
         2197 &lt;/p&gt;
         2198 &lt;p&gt;O. Tange (2018): GNU Parallel 2018, March 2018, &lt;a href=&quot;https://doi.org/10.5281/zenodo.1146014&quot;&gt;https://doi.org/10.5281/zenodo.1146014&lt;/a&gt;.
         2199 &lt;br /&gt;
         2200 &lt;/p&gt;
         2201 &lt;p&gt;If you like GNU Parallel:
         2202 &lt;br /&gt;
         2203 &lt;/p&gt;
         2204 &lt;ul&gt;
         2205 &lt;li&gt;Give a demo at your local user group/team/colleagues
         2206 &lt;/li&gt;
         2207 &lt;li&gt;Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
         2208 &lt;/li&gt;
         2209 &lt;li&gt;Get the merchandise &lt;a href=&quot;https://gnuparallel.threadless.com/designs/gnu-parallel&quot;&gt;https://gnuparallel.threadless.com/designs/gnu-parallel&lt;/a&gt;
         2210 &lt;/li&gt;
         2211 &lt;li&gt;Request or write a review for your favourite blog or magazine
         2212 &lt;/li&gt;
         2213 &lt;li&gt;Request or build a package for your favourite distribution (if it is not already there)
         2214 &lt;/li&gt;
         2215 &lt;li&gt;Invite me for your next conference
         2216 &lt;/li&gt;
         2217 &lt;/ul&gt;
         2218 &lt;p&gt;If you use programs that use GNU Parallel for research:
         2219 &lt;br /&gt;
         2220 &lt;/p&gt;
         2221 &lt;ul&gt;
         2222 &lt;li&gt;Please cite GNU Parallel in you publications (use --citation)
         2223 &lt;/li&gt;
         2224 &lt;/ul&gt;
         2225 &lt;p&gt;If GNU Parallel saves you money:
         2226 &lt;br /&gt;
         2227 &lt;/p&gt;
         2228 &lt;ul&gt;
         2229 &lt;li&gt;(Have your company) donate to FSF &lt;a href=&quot;https://my.fsf.org/donate/&quot;&gt;https://my.fsf.org/donate/&lt;/a&gt;
         2230 &lt;/li&gt;
         2231 &lt;/ul&gt;
         2232 
         2233 &lt;h2&gt;About GNU SQL&lt;/h2&gt;
         2234 
         2235 &lt;p&gt;GNU sql aims to give a simple, unified interface for accessing databases through all the different databases&#39; command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.
         2236 &lt;br /&gt;
         2237 &lt;/p&gt;
         2238 &lt;p&gt;The database is addressed using a DBURL. If commands are left out you will get that database&#39;s interactive shell.
         2239 &lt;br /&gt;
         2240 &lt;/p&gt;
         2241 &lt;p&gt;When using GNU SQL for a publication please cite:
         2242 &lt;br /&gt;
         2243 &lt;/p&gt;
         2244 &lt;p&gt;O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.
         2245 &lt;br /&gt;
         2246 &lt;/p&gt;
         2247 
         2248 &lt;h2&gt;About GNU Niceload&lt;/h2&gt;
         2249 
         2250 &lt;p&gt;GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.&lt;br /&gt;
         2251 &lt;/p&gt; </description> 
         2252         <pubDate>Thu, 22 Jul 2021 20:33:58 +0000</pubDate>
         2253 
         2254 </item> 
         2255 <item>
         2256         <title>health @ Savannah: MyGNUHealth maintenance release 1.0.2 is out!</title>
         2257         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10023</guid>
         2258         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10023</link>
         2259      <description>  &lt;p&gt;MyGNUHealth 1.0.2 is ready to be downloaded from GNU.org!
         2260 &lt;br /&gt;
         2261 &lt;/p&gt;
         2262 &lt;p&gt;This maintenance release fixes some issues with global (drawer) menus in MATE, XFCE desktops, as well as in SXMO on the PinePhone.
         2263 &lt;br /&gt;
         2264 &lt;/p&gt;
         2265 &lt;p&gt;In addition, the documentation has been updated.
         2266 &lt;br /&gt;
         2267 (&lt;a href=&quot;https://www.gnuhealth.org/docs/mygnuhealth&quot;&gt;https://www.gnuhealth.org/docs/mygnuhealth&lt;/a&gt;)
         2268 &lt;br /&gt;
         2269 &lt;/p&gt;
         2270 &lt;p&gt;Happy and healthy hacking!&lt;br /&gt;
         2271 &lt;/p&gt; </description> 
         2272         <pubDate>Wed, 14 Jul 2021 23:13:01 +0000</pubDate>
         2273 
         2274 </item> 
         2275 <item>
         2276         <title>GNU Health: Back to the Future</title>
         2277         <guid>http://meanmicio.org/?p=2373</guid>
         2278         <link>https://meanmicio.org/2021/07/12/back-to-the-future/</link>
         2279      <description>  &lt;p class=&quot;has-drop-cap&quot;&gt;Leonardo da Vinci said “&lt;em&gt;simplicity is the ultimate sophistication&lt;/em&gt;“, but it seems like the “modern” computing world never heard that quote, or ignore it.  Today, a single application takes hundreds of megabytes, both of disk and RAM space.  Slow, buggy, inefficient systems at every level. &lt;/p&gt;
         2280 
         2281 
         2282 
         2283 &lt;p&gt;Probably the best example on this cluttering mess comes from the mobile computing. Most phones are bloated with useless software that not only hinders the navigation experience, but pose a threat to your privacy. Yes, all this software is proprietary. Worst of it, you can not even uninstall it.&lt;/p&gt;
         2284 
         2285 
         2286 
         2287 &lt;p&gt;Fortunately, there is hope. Let me introduce &lt;strong&gt;SXMO, the Simple X on Mobile &lt;/strong&gt;project. As the authors describe it, SXMO is a minimalist environment for Linux smartphones, such as the &lt;strong&gt;PinePhone&lt;/strong&gt;. SXMO embraces simplicity, and simplicity is both elegant and efficient. &lt;/p&gt;
         2288 
         2289 
         2290 
         2291 &lt;div class=&quot;wp-block-columns&quot;&gt;
         2292 &lt;div class=&quot;wp-block-column&quot;&gt;
         2293 &lt;div class=&quot;wp-container-613c8401e0c62 wp-block-group&quot;&gt;&lt;div class=&quot;wp-block-group__inner-container&quot;&gt;
         2294 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/07/gnuhealth_sxmo_pinephone_greetins_.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2378&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/07/gnuhealth_sxmo_pinephone_greetins_.png?w=512&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;MyGNUHealth running on PinePhone and SXMO&lt;/figcaption&gt;&lt;/figure&gt;
         2295 &lt;/div&gt;&lt;/div&gt;
         2296 &lt;/div&gt;
         2297 
         2298 
         2299 
         2300 &lt;div class=&quot;wp-block-column&quot;&gt;
         2301 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/07/gnuhealth_sxmo_fullscreen.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2380&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/07/gnuhealth_sxmo_fullscreen.png?w=512&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Full screen mode of MyGNUHealth on SXMO&lt;/figcaption&gt;&lt;/figure&gt;
         2302 &lt;/div&gt;
         2303 &lt;/div&gt;
         2304 
         2305 
         2306 
         2307 &lt;p&gt;SXMO uses a tiling window manager called  &lt;strong&gt;dwm&lt;/strong&gt; (Dynamic Window Manager), which allocates the different applications in the most efficient way. The dwm project is available as a single binary file, which source is intended not to exceed 2000 lines of code. That is amazing.&lt;/p&gt;
         2308 
         2309 
         2310 
         2311 &lt;p&gt;Simplicity is robust, and that again applies to SXMO. All the necessary components expected on a mobile phone (making and receiving calls, browsing the Internet, SMS messaging,..) just work. Moreover, SMXO comes with a scripting system that allow us to write solutions to our needs. For instance, the screenshots you see were taken with a script of 3 lines of code. Just place the little program under your “&lt;em&gt;userscripts&lt;/em&gt;” directory, and &lt;em&gt;voilà&lt;/em&gt;!, you’re ready to make screenshots from your PinePhone!&lt;/p&gt;
         2312 
         2313 
         2314 
         2315 &lt;div class=&quot;wp-block-columns&quot;&gt;
         2316 &lt;div class=&quot;wp-block-column&quot;&gt;
         2317 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/07/sxmo_browsing_gnuhealth.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2383&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/07/sxmo_browsing_gnuhealth.png?w=512&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
         2318 
         2319 
         2320 
         2321 &lt;p&gt;Browsing the Internet  and the GNU Health homepage&lt;/p&gt;
         2322 &lt;/div&gt;
         2323 
         2324 
         2325 
         2326 &lt;div class=&quot;wp-block-column&quot;&gt;
         2327 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/07/sxmo_pinephone_menu.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2385&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/07/sxmo_pinephone_menu.png?w=512&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
         2328 
         2329 
         2330 
         2331 &lt;p&gt;Menu driven navigation in SXMO dwm in the PinePhone&lt;/p&gt;
         2332 &lt;/div&gt;
         2333 &lt;/div&gt;
         2334 
         2335 
         2336 
         2337 &lt;p&gt;In the end, most of current desktop environments today are huge, bloated and buggy. The discovery of SXMO has been an eyeopener. The perfect companion for my PinePhone.&lt;/p&gt;
         2338 
         2339 
         2340 
         2341 &lt;p&gt;&lt;/p&gt;
         2342 
         2343 
         2344 
         2345 &lt;p&gt;I’m using SXMO on my PinePhone as a daily driver, and I just love it. Thanks to simple distributions such as Archlinux, Parabola or PostmarketOS, and simple Desktop / window managers as DWM, a am finally enjoying Libre mobile computing.&lt;/p&gt;
         2346 
         2347 
         2348 
         2349 &lt;p&gt;I feel projects like this take us back to the roots, to the beautiful world of simplicity, yet delivering the latest technology and showing us the path o the future.&lt;/p&gt;
         2350 
         2351 
         2352 
         2353 &lt;p&gt;&lt;/p&gt;
         2354 
         2355 
         2356 
         2357 &lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;:&lt;/p&gt;
         2358 
         2359 
         2360 
         2361 &lt;p&gt;SXMO:  &lt;a href=&quot;https://www.sxmo.org&quot;&gt;https://www.sxmo.org &lt;/a&gt;&lt;/p&gt;
         2362 
         2363 
         2364 
         2365 &lt;p&gt;Pine64: &lt;a href=&quot;https://www.pine64.org/&quot;&gt;https://www.pine64.org/&lt;/a&gt;&lt;/p&gt;
         2366 
         2367 
         2368 
         2369 &lt;p&gt;GNU Health : &lt;a href=&quot;https://www.gnuhealth.org&quot;&gt;https://www.gnuhealth.org&lt;/a&gt;&lt;/p&gt;
         2370 
         2371 
         2372 
         2373 &lt;p&gt;PostmarketOS: &lt;a href=&quot;https://postmarketos.org/&quot;&gt;https://postmarketos.org/&lt;/a&gt;&lt;/p&gt;
         2374 
         2375 
         2376 
         2377 &lt;p&gt;Archlinux: &lt;a href=&quot;https://www.archlinux.org&quot;&gt;https://www.archlinux.org&lt;/a&gt;&lt;/p&gt;
         2378 
         2379 
         2380 
         2381 &lt;p&gt;Parabola: &lt;a href=&quot;https://www.parabola.nu/&quot;&gt;https://www.parabola.nu/&lt;/a&gt;&lt;/p&gt;
         2382 
         2383 
         2384 
         2385 &lt;p&gt;Featured Image: Leonardo da Vinci, drawing of a flying machine . Public domain, via &lt;a href=&quot;https://commons.wikimedia.org/wiki/File:Leonardo_da_vinci,_Drawing_of_a_flying_machine.jpg&quot;&gt;Wikimedia Commons&lt;/a&gt;  &lt;/p&gt; </description> 
         2386         <pubDate>Mon, 12 Jul 2021 14:18:28 +0000</pubDate>
         2387 
         2388 </item> 
         2389 <item>
         2390         <title>FSF Events: &quot;Freedom ladder&quot; IRC discussion and brainstorming: August 05</title>
         2391         <guid>http://www.fsf.org/events/freedomladder-20210805-irc</guid>
         2392         <link>http://www.fsf.org/events/freedomladder-20210805-irc</link>
         2393      <description>  Learning how to find help / Trying a free operating system </description> 
         2394         <pubDate>Thu, 08 Jul 2021 17:10:00 +0000</pubDate>
         2395 
         2396 </item> 
         2397 <item>
         2398         <title>FSF Events: &quot;Freedom ladder&quot; IRC discussion and brainstorming: July 29</title>
         2399         <guid>http://www.fsf.org/events/freedomladder-20210729-irc</guid>
         2400         <link>http://www.fsf.org/events/freedomladder-20210729-irc</link>
         2401      <description>  Understanding encryption / Mobile phone freedom </description> 
         2402         <pubDate>Thu, 08 Jul 2021 17:10:00 +0000</pubDate>
         2403 
         2404 </item> 
         2405 <item>
         2406         <title>FSF Events: &quot;Freedom ladder&quot; IRC discussion and brainstorming: July 22</title>
         2407         <guid>http://www.fsf.org/events/freedomladder-20210722-irc</guid>
         2408         <link>http://www.fsf.org/events/freedomladder-20210722-irc</link>
         2409      <description>  Free replacements and installing your first free program </description> 
         2410         <pubDate>Thu, 08 Jul 2021 17:10:00 +0000</pubDate>
         2411 
         2412 </item> 
         2413 <item>
         2414         <title>FSF Events: &quot;Freedom ladder&quot; IRC discussion and brainstorming: July 15</title>
         2415         <guid>http://www.fsf.org/events/freedomladder-20210715-irc</guid>
         2416         <link>http://www.fsf.org/events/freedomladder-20210715-irc</link>
         2417      <description>  Understanding nonfree software / Finding your own reason to use free software </description> 
         2418         <pubDate>Thu, 08 Jul 2021 17:10:00 +0000</pubDate>
         2419 
         2420 </item> 
         2421 <item>
         2422         <title>health @ Savannah: MyGNUHealth 1.0.1 is out!</title>
         2423         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10022</guid>
         2424         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10022</link>
         2425      <description>  &lt;p&gt;Dear all
         2426 &lt;br /&gt;
         2427 &lt;/p&gt;
         2428 &lt;p&gt;I just released 1.0.1 for the stable series 1.0 of MyGNUHealth, the GNU Health Personal Health Record.
         2429 &lt;br /&gt;
         2430 &lt;/p&gt;
         2431 &lt;p&gt;This maintenance release for MyGNUHealth contains, in a nutshell:
         2432 &lt;br /&gt;
         2433 &lt;/p&gt;
         2434 &lt;ul&gt;
         2435 &lt;li&gt;Fix the download path within GNU.org. Now it points to &lt;a href=&quot;https://ftp.gnu.org/gnu/health/mygnuhealth/&quot;&gt;https://ftp.gnu.org/gnu/health/mygnuhealth/&lt;/a&gt;
         2436 &lt;/li&gt;
         2437 &lt;li&gt;Include Changelog file
         2438 &lt;/li&gt;
         2439 &lt;li&gt;Include local / offline documentation (resides on /usr/share/doc/mygnuhealth)
         2440 &lt;/li&gt;
         2441 &lt;li&gt;Clean up &lt;em&gt;_pycache_&lt;/em&gt; from tarball
         2442 &lt;/li&gt;
         2443 &lt;/ul&gt;
         2444 
         2445 &lt;p&gt;Happy and healthy hacking!
         2446 &lt;br /&gt;
         2447 Luis&lt;br /&gt;
         2448 &lt;/p&gt; </description> 
         2449         <pubDate>Thu, 08 Jul 2021 00:23:05 +0000</pubDate>
         2450 
         2451 </item> 
         2452 <item>
         2453         <title>Parabola GNU/Linux-libre: [From Arch] Sorting out old password hashes</title>
         2454         <guid>tag:parabolagnulinux.org,2021-07-07:/news/from-arch-sorting-out-old-password-hashes/</guid>
         2455         <link>https://parabolagnulinux.org/news/from-arch-sorting-out-old-password-hashes/</link>
         2456      <description>  &lt;p&gt;Starting with &lt;code&gt;libxcrypt&lt;/code&gt; 4.4.21, weak password hashes (such as &lt;em&gt;MD5&lt;/em&gt; and &lt;em&gt;SHA1&lt;/em&gt;) are no longer accepted for new passwords. Users that still have their passwords stored with a weak hash will be asked to update their password on their next login.&lt;/p&gt;
         2457 &lt;p&gt;If the login just fails (for example from display manager) switch to a virtual terminal (&lt;em&gt;Ctrl-Alt-F2&lt;/em&gt;) and log in there once.&lt;/p&gt; </description> 
         2458         <pubDate>Wed, 07 Jul 2021 01:34:00 +0000</pubDate>
         2459 
         2460 </item> 
         2461 <item>
         2462         <title>texinfo @ Savannah: Texinfo 6.8 released</title>
         2463         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10020</guid>
         2464         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10020</link>
         2465      <description>  &lt;p&gt;We have released version 6.8 of Texinfo, the GNU documentation format.
         2466 &lt;br /&gt;
         2467 &lt;/p&gt;
         2468 &lt;p&gt;It&#39;s available via a mirror (xz is much smaller than gz, but gz is available too just in case):
         2469 &lt;br /&gt;
         2470 &lt;/p&gt;
         2471 &lt;p&gt;&lt;a href=&quot;http://ftpmirror.gnu.org/texinfo/texinfo-6.8.tar.xz&quot;&gt;http://ftpmirror.gnu.org/texinfo/texinfo-6.8.tar.xz&lt;/a&gt;
         2472 &lt;br /&gt;
         2473 &lt;a href=&quot;http://ftpmirror.gnu.org/texinfo/texinfo-6.8.tar.gz&quot;&gt;http://ftpmirror.gnu.org/texinfo/texinfo-6.8.tar.gz&lt;/a&gt;
         2474 &lt;br /&gt;
         2475 &lt;/p&gt;
         2476 &lt;p&gt;Please send any comments to bug-texinfo@gnu.org.
         2477 &lt;br /&gt;
         2478 &lt;/p&gt;
         2479 &lt;p&gt;Full announcement: &lt;a href=&quot;https://lists.gnu.org/archive/html/bug-texinfo/2021-07/msg00011.html&quot;&gt;https://lists.gnu.org/archive/html/bug-texinfo/2021-07/msg00011.html&lt;/a&gt;&lt;br /&gt;
         2480 &lt;/p&gt; </description> 
         2481         <pubDate>Sat, 03 Jul 2021 11:48:11 +0000</pubDate>
         2482 
         2483 </item> 
         2484 <item>
         2485         <title>FSF News: Apply to be the FSF&#39;s next executive director</title>
         2486         <guid>http://www.fsf.org/news/apply-to-be-the-fsfs-next-executive-director</guid>
         2487         <link>http://www.fsf.org/news/apply-to-be-the-fsfs-next-executive-director</link>
         2488      <description>  The Free Software Foundation (FSF), a Massachusetts 501(c)(3) charity
         2489 with a worldwide mission to protect computer user freedom, seeks a
         2490 principled, compassionate, and capable leader to be its new executive
         2491 director. This position can be remote or based in our Boston office. </description> 
         2492         <pubDate>Fri, 02 Jul 2021 14:00:00 +0000</pubDate>
         2493 
         2494 </item> 
         2495 <item>
         2496         <title>FSF News: FSF takes next step in commitment to improving board governance</title>
         2497         <guid>http://www.fsf.org/news/fsf-takes-next-step-in-commitment-to-improving-board-governance</guid>
         2498         <link>http://www.fsf.org/news/fsf-takes-next-step-in-commitment-to-improving-board-governance</link>
         2499     
         2500         <pubDate>Thu, 01 Jul 2021 14:40:05 +0000</pubDate>
         2501 
         2502 </item> 
         2503 <item>
         2504         <title>Christopher Allan Webber: Hello, I&#39;m Chris Lemmer-Webber, and I&#39;m nonbinary trans-femme</title>
         2505         <guid>tag:dustycloud.org,2021-06-28:/blog/nonbinary-trans-femme/</guid>
         2506         <link>http://dustycloud.org/blog/nonbinary-trans-femme/</link>
         2507      <description>  &lt;p&gt;&lt;img alt=&quot;A picture of Chris and Morgan together&quot; src=&quot;https://dustycloud.org/gfx/goodies/chris-and-morgan-2021-06-27.jpg&quot; /&gt;&lt;/p&gt;
         2508 &lt;p&gt;I recently came out as nonbinary trans-femme.
         2509 That&#39;s a picture of me on the left, with my spouse Morgan Lemmer-Webber
         2510 on the right.&lt;/p&gt;
         2511 &lt;p&gt;In a sense, not much has changed, and so much has changed.
         2512 I&#39;ve dropped the &quot;-topher&quot; from my name, and given the common tendency
         2513 to apply gender to pronouns in English, please either use nonbinary
         2514 pronouns or feminine pronouns to apply to me.
         2515 Other changes are happening as I wander through this space, from
         2516 appearance to other things.
         2517 (Probably the biggest change is finally achieving something resembling
         2518 self-acceptance, however.)&lt;/p&gt;
         2519 &lt;p&gt;If you want to know more,
         2520 &lt;a href=&quot;https://fossandcrafts.org/episodes/30-gender-sexuality-personal-perspective.html&quot;&gt;Morgan and I did a podcast episode&lt;/a&gt;
         2521 which explains more from my present standing, and also explains Morgan&#39;s
         2522 experiences with being demisexual, which not many people know about!
         2523 (Morgan has been incredible through this whole process, by the way.)&lt;/p&gt;
         2524 &lt;p&gt;But things may change further.
         2525 Maybe a year from now those changes may be even more drastic, or maybe
         2526 not.
         2527 We&#39;ll see.
         2528 I am wandering, and I don&#39;t know where I will land, but it won&#39;t be
         2529 back to where I was.&lt;/p&gt;
         2530 &lt;p&gt;At any rate, I&#39;ve spent much of my life not being able to stand myself
         2531 for how I look and feel.
         2532 For most of my life, I have not been able to look at myself in a mirror
         2533 for more than a second or two due to the revulsion I felt at the person
         2534 I saw staring back at me.
         2535 The last few weeks have been a shift change for me in that regard...
         2536 it&#39;s a very new experience to feel so happy with myself.&lt;/p&gt;
         2537 &lt;p&gt;I&#39;m only at the beginning of this journey.
         2538 I&#39;d appreciate your support... people have been incredibly kind to me
         2539 by and large so far but like everyone who goes through a process like this,
         2540 it&#39;s very hard in those experiences where people aren&#39;t.
         2541 Thank you to everyone who has been there for me so far.&lt;/p&gt; </description> 
         2542         <pubDate>Mon, 28 Jun 2021 23:13:00 +0000</pubDate>
         2543 
         2544 </item> 
         2545 <item>
         2546         <title>health @ Savannah: Welcome to MyGNUHealth, the GNU Health Libre Personal Health Record</title>
         2547         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10015</guid>
         2548         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10015</link>
         2549      <description>  &lt;p&gt;Original article including MyGNUHealth pictures is at (&lt;a href=&quot;https://meanmicio.org/2021/06/24/welcome-to-mygnuhealth-the-libre-personal-health-record/&quot;&gt;https://meanmicio.org/2021/06/24/welcome-to-mygnuhealth-the-libre-personal-health-record/&lt;/a&gt;)
         2550 &lt;br /&gt;
         2551 &lt;/p&gt;
         2552 &lt;p&gt;---
         2553 &lt;br /&gt;
         2554 &lt;/p&gt;
         2555 
         2556 &lt;p&gt;&lt;strong&gt;MyGNUHealth&lt;/strong&gt; 1.0 us out! The GNU Health Libre Personal Health Record is now ready for prime time!
         2557 &lt;br /&gt;
         2558 &lt;/p&gt;
         2559 &lt;p&gt;This is great news. Great news because citizens around the world have now access to a Free/Libre application, focused on privacy, that puts them in control of their health.
         2560 &lt;br /&gt;
         2561 &lt;/p&gt;
         2562 &lt;p&gt;Health is personal, so is the health data. It’s been years since I got the idea of expanding the GNU Health ecosystem, not only to the health professionals and institutions, but making it personal, accessible to individuals. Now is a reality!
         2563 &lt;br /&gt;
         2564 &lt;/p&gt;
         2565 &lt;p&gt;Throughout these years, the mobile health (mHealth) has been governed by private companies that benefit from your health data. Private companies, private insurances, proprietary operating systems, proprietary health applications. Big business, no privacy.
         2566 &lt;br /&gt;
         2567 &lt;/p&gt;
         2568 &lt;p&gt;The GNU Health ecosystem exists because of Free software. Thanks to communities such as GNU and KDE, we can have fully operational operating systems, desktop environments, databases and programming languages that allow us to use and write free software. GNU Health is one example.
         2569 &lt;br /&gt;
         2570 &lt;/p&gt;
         2571 &lt;p&gt;The Libre Software movement fights for the advancement of our societies, by providing universality in computing. In the case of GNU Health, that freedom and equity in computing is applied into the healthcare and social medicine domains. Health is a non-negotiable human right, so it must be health informatics.
         2572 &lt;br /&gt;
         2573 &lt;/p&gt;
         2574 &lt;h3&gt;What is MyGNUHealth?&lt;/h3&gt;
         2575 
         2576 &lt;p&gt;MyGNUHealth (MyGH)is a Health Personal Record application focused in &lt;strong&gt;privacy&lt;/strong&gt;, that can be used in desktops and mobile devices.
         2577 &lt;br /&gt;
         2578 &lt;/p&gt;
         2579 &lt;p&gt;MyGH embraces the main health domains (*bio-psycho-social*). All the components in the GNU Health ecosystem combine social medicine and primary care with the latest on bioinformatics and precision medicine. The complex interactions between these health domains play a key role in the state of health and disease of an individual, family and society.
         2580 &lt;br /&gt;
         2581 &lt;/p&gt;
         2582 &lt;p&gt;MyGH has the functionality of a health and activity tracker, and that of a health diary / record. It records and tracks the main anthropometric and physiological measures, such as weight, blood pressure, blood sugar level or oxygen saturation. It keeps track of your lifestyle, nutrition, physical activity, and sleep, with numerous charts to visualize the trends.
         2583 &lt;br /&gt;
         2584 &lt;/p&gt;
         2585 &lt;p&gt;MyGNUHealth is also a diary, that records all relevant information from the medical and social domain and their context. In the medical domain, you can record your encounters, immunizations, hospitalizations, lab tests,genetic and family history, among others. In the genetic context, MyGH provides a dataset of over 30000 natural variants / SNP from &lt;strong&gt;UniProt&lt;/strong&gt; that are relevant in human. Entering the RefSNP will automatically provide the information about that particular variant and it clinical significance.
         2586 &lt;br /&gt;
         2587 &lt;/p&gt;
         2588 &lt;p&gt;The Social domain, contains the key social determinants of health (Social Gradient, Early life development, Stress, Social exclusion, Working conditions, Education, Physical environment, Unemployment, Social Support, Addiction, Food, Transportation, Health services, Family functionality, Family violence, Bullying, War) , most of them from the World Health Organization social determinants of health.
         2589 &lt;br /&gt;
         2590 &lt;/p&gt;
         2591 &lt;p&gt;A very important feature of MyGH is that it is GNU Health Federation. That is, if you want to share any of this data with your health professional in real-time, and they will be able to study it.
         2592 &lt;br /&gt;
         2593 &lt;/p&gt;
         2594 &lt;h3&gt;The PinePhone and the revolution in mobile computing&lt;/h3&gt;
         2595 
         2596 &lt;p&gt;Of course, in a world of mobile phones and mobile computing, we need free/libre mobile applications. The problem I was facing until recently, that prevented me from writing MyGNUHealth, was the fact that there was no libre mobile environment. The mobile computing market has been dominated by Google and Apple, which both deliver proprietary operating systems, Android and iOS respectively.
         2597 &lt;br /&gt;
         2598 &lt;/p&gt;
         2599 &lt;p&gt;The irruption of the &lt;strong&gt;Pine64&lt;/strong&gt; community was the eye-opener and a game changer. A thriving community of talented people, determined to provide freedom in mobile computing. The Pine64 provides, among others, a smartphone (PinePhone), and a smartwatch (PineTime), and I have adopted both.
         2600 &lt;br /&gt;
         2601 &lt;/p&gt;
         2602 
         2603 &lt;p&gt;I wrote an article some weeks ago (“Liberating our mobile computing”), where I mentioned why I have changed the Android phone to the PinePhone, and my watch to the PineTime.
         2604 &lt;br /&gt;
         2605 &lt;/p&gt;
         2606 &lt;p&gt;Does the PinePhone have the best camera? Can we compare the PinePhone with Apple or Google products? It’s hard to compare a multi-billion dollar corporation with a fresh community oriented project. The business model, the technology components and the ethics behind are very different.
         2607 &lt;br /&gt;
         2608 &lt;/p&gt;
         2609 &lt;p&gt;So, why making the move? I made the change because we, as a society, need to embrace a technology that is universal and that respects our freedom and privacy. A technology that if focus on the individual and not the corporation. That moves takes determination and commitment. There is a small price to pay, but freedom and privacy are priceless.
         2610 &lt;br /&gt;
         2611 &lt;/p&gt;
         2612 &lt;p&gt;As a physician, I need to provide my patients the resources that use state-of-the-art technology, and, at the same time, guarantee the privacy of their sensitive medical information. Libre software and open standards are key in healthcare. When my patients choose free/libre software, they have full control. They also have the possibility to share it with me or with other health professionals, in real-time and with the highest levels of privacy.
         2613 &lt;br /&gt;
         2614 &lt;/p&gt;
         2615 &lt;p&gt;We can only manage sensitive health data with technology that respects our privacy. In other words, we can not put our personal information in the hands of corporate interests. Choosing Libre Software and Hardware means much more than just technology. Libre Software means embracing solidarity and cooperation. It means sharing knowledge, code and time with others. It means embracing open science for the advancement of our societies, specially for those that need it most.
         2616 &lt;br /&gt;
         2617 &lt;/p&gt;
         2618 &lt;p&gt;MyGNUHealth will be included by default in many operating systems and distributions, so you don’t have to worry about the technical details. Just use your health companion! If your operating system does not have MyGH in their repositories, please ask them to include it.
         2619 &lt;br /&gt;
         2620 &lt;/p&gt;
         2621 &lt;p&gt;Governments, institutions, and health professional need affordable technology that respects their citizens freedom. We need you to be part of this eHealth revolution.
         2622 &lt;br /&gt;
         2623 &lt;/p&gt;
         2624 &lt;p&gt;Happy and healthy hacking!
         2625 &lt;br /&gt;
         2626 &lt;/p&gt;
         2627 &lt;h3&gt;About GNUHealth&lt;/h3&gt;
         2628 
         2629 &lt;p&gt;MyGNUHealth is part of the GNU Health, the Libre digital health ecosystem. GNU Health is from GNU Solidario, a humanitarian, non-for-profit organization focused on the advancement of Social Medicine. GNU Solidario develops health applications and uses exclusively Free/Libre software. &lt;strong&gt;GNU Health is an official GNU project&lt;/strong&gt;
         2630 &lt;br /&gt;
         2631 &lt;/p&gt;
         2632 &lt;p&gt;Homepage : &lt;a href=&quot;https://www.gnuhealth.org&quot;&gt;https://www.gnuhealth.org&lt;/a&gt;
         2633 &lt;br /&gt;
         2634 Documentation portal : &lt;a href=&quot;https://www.gnuhealth.org/docs&quot;&gt;https://www.gnuhealth.org/docs&lt;/a&gt;
         2635 &lt;br /&gt;
         2636 &lt;/p&gt;
         2637 &lt;p&gt;Original article: &lt;a href=&quot;https://meanmicio.org/2021/06/24/welcome-to-mygnuhealth-the-libre-personal-health-record/&quot;&gt;https://meanmicio.org/2021/06/24/welcome-to-mygnuhealth-the-libre-personal-health-record/&lt;/a&gt;&lt;br /&gt;
         2638 &lt;/p&gt; </description> 
         2639         <pubDate>Thu, 24 Jun 2021 17:35:19 +0000</pubDate>
         2640 
         2641 </item> 
         2642 <item>
         2643         <title>GNU Health: Welcome to MyGNUHealth, the Libre Personal Health Record</title>
         2644         <guid>http://meanmicio.org/?p=2319</guid>
         2645         <link>https://meanmicio.org/2021/06/24/welcome-to-mygnuhealth-the-libre-personal-health-record/</link>
         2646      <description>  &lt;p class=&quot;has-drop-cap&quot;&gt;MyGNUHealth 1.0 us out! The GNU Health Libre Personal Health Record is now ready for prime time!&lt;/p&gt;
         2647 
         2648 
         2649 
         2650 &lt;p&gt;This is great news. Great news because citizens around the world have now access to a Free/Libre application, focused on privacy, that puts them in control of their health.&lt;/p&gt;
         2651 
         2652 
         2653 
         2654 &lt;p&gt;Health is personal, so is the health data. It’s been years since I got the idea of expanding the GNU Health ecosystem, not only to the health professionals and institutions, but making it personal, accessible to individuals. Now is a reality!&lt;/p&gt;
         2655 
         2656 
         2657 
         2658 &lt;p&gt;Throughout these years, the mobile health (mHealth) has been governed by private companies that benefit from your health data. Private companies, private insurances, proprietary operating systems, proprietary health applications. Big business, no privacy.&lt;/p&gt;
         2659 
         2660 
         2661 
         2662 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/mygnuhealth-kde-plasma-desktop.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2323&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/mygnuhealth-kde-plasma-desktop.png?w=1024&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;MyGNUHealth running on KDE Plasma desktop and Arch Linux&lt;/figcaption&gt;&lt;/figure&gt;
         2663 
         2664 
         2665 
         2666 &lt;h2&gt;GNU and Libre Software&lt;/h2&gt;
         2667 
         2668 
         2669 
         2670 &lt;p&gt;The GNU Health ecosystem exists because of Free software. Thanks to communities such as GNU, we can have fully operational operating systems, desktop environments, databases and programming languages that allow us to use and write free software. GNU Health is one example.&lt;/p&gt;
         2671 
         2672 
         2673 
         2674 &lt;p&gt;The Libre Software movement fights for the advancement of our societies, by providing universality in computing. In the case of GNU Health, that freedom and equity in computing is applied into the healthcare and social medicine domains. Health is a non-negotiable human right, so it must be health informatics.&lt;/p&gt;
         2675 
         2676 
         2677 
         2678 &lt;h3&gt;What is MyGNUHealth?&lt;/h3&gt;
         2679 
         2680 
         2681 
         2682 &lt;p&gt;MyGNUHealth (MyGH)is a Health Personal Record application focused in privacy, that can be used in desktops and mobile devices.&lt;/p&gt;
         2683 
         2684 
         2685 
         2686 &lt;p&gt;MyGH embraces the main health domains (&lt;strong&gt;bio-psycho-social&lt;/strong&gt;). All the components in the GNU Health ecosystem combine &lt;strong&gt;social medicine&lt;/strong&gt; and primary care with the latest on &lt;strong&gt;bioinformatics&lt;/strong&gt; and &lt;strong&gt;precision medicine&lt;/strong&gt;. The complex interactions between these health domains play a key role in the state of health and disease of an individual, family and society. &lt;/p&gt;
         2687 
         2688 
         2689 
         2690 &lt;p&gt;MyGH has the functionality of a health and activity tracker, and that of a health diary / record. It records and tracks the main anthropometric and physiological measures, such as weight, blood pressure, blood sugar level or  oxygen saturation. It keeps track of your lifestyle, nutrition, physical activity, and sleep, with numerous charts to visualize the trends. &lt;/p&gt;
         2691 
         2692 
         2693 
         2694 &lt;p&gt;MyGNUHealth is also a diary, that records all relevant information from the medical and social domain and their context. In the medical domain, you can record your encounters, immunizations, hospitalizations, lab tests,genetic and family history, among others. In the &lt;strong&gt;genetic&lt;/strong&gt; context, MyGH provides a dataset of over &lt;strong&gt;30000 natural variants / SNP&lt;/strong&gt; from &lt;strong&gt;UniProt&lt;/strong&gt; that are relevant in human. Entering the RefSNP will automatically provide the information about that particular variant and it clinical significance.&lt;/p&gt;
         2695 
         2696 
         2697 
         2698 &lt;p&gt;The &lt;strong&gt;Social&lt;/strong&gt; domain, contains the key social determinants of health (Social Gradient, Early life development, Stress, Social exclusion, Working conditions, Education, Physical environment, Unemployment, Social Support, Addiction, Food, Transportation, Health services, Family functionality, Family violence, Bullying, War) , most of them from the World Health Organization social determinants of health. &lt;/p&gt;
         2699 
         2700 
         2701 
         2702 &lt;p&gt;A very important feature of MyGH is that it is GNU Health Federation. That is, if you want to share any of this data with your health professional in real-time, and they will be able to study it. &lt;/p&gt;
         2703 
         2704 
         2705 
         2706 &lt;p&gt;&lt;/p&gt;
         2707 
         2708 
         2709 
         2710 &lt;div class=&quot;wp-block-columns&quot;&gt;
         2711 &lt;div class=&quot;wp-block-column&quot;&gt;
         2712 &lt;figure class=&quot;wp-block-image size-large is-resized is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/physical_activity.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2348&quot; height=&quot;256&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/physical_activity.png?w=861&quot; width=&quot;273&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Lifestyle and activity tracker&lt;/figcaption&gt;&lt;/figure&gt;
         2713 
         2714 
         2715 
         2716 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/social_domain_context_book_of_life.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2354&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/social_domain_context_book_of_life.png?w=854&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Social domain and its contexts, along the book of life&lt;/figcaption&gt;&lt;/figure&gt;
         2717 &lt;/div&gt;
         2718 
         2719 
         2720 
         2721 &lt;div class=&quot;wp-block-column&quot;&gt;
         2722 &lt;figure class=&quot;wp-block-image size-large is-resized is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/mood_and_energy.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2349&quot; height=&quot;460&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/mood_and_energy.png?w=490&quot; width=&quot;279&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Mood and energy assessment&lt;/figcaption&gt;&lt;/figure&gt;
         2723 &lt;/div&gt;
         2724 
         2725 
         2726 
         2727 &lt;div class=&quot;wp-block-column&quot;&gt;
         2728 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/genetics.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2350&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/genetics.png?w=546&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Medical genetics showing the relevant information on a particular natural variant / SNP&lt;/figcaption&gt;&lt;/figure&gt;
         2729 &lt;/div&gt;
         2730 &lt;/div&gt;
         2731 
         2732 
         2733 
         2734 &lt;h2&gt;The PinePhone and the revolution in mobile computing&lt;/h2&gt;
         2735 
         2736 
         2737 
         2738 &lt;p&gt;Of course, in a world of mobile phones and mobile computing, we need free/libre mobile applications. The problem I was facing until recently, that prevented me from writing MyGNUHealth, was the fact that there was no libre mobile environment. The mobile computing market has been dominated by Google and Apple, which both deliver proprietary operating systems, Android and iOS respectively.&lt;/p&gt;
         2739 
         2740 
         2741 
         2742 &lt;p&gt;The irruption of the &lt;strong&gt;Pine64&lt;/strong&gt; community was the eye-opener and a game changer. A thriving community of talented people, determined to provide freedom in mobile computing. The Pine64 provides, among others, a smartphone (&lt;strong&gt;PinePhone&lt;/strong&gt;), and a smartwatch (&lt;strong&gt;PineTime&lt;/strong&gt;), and I have adopted both. &lt;/p&gt;
         2743 
         2744 
         2745 
         2746 &lt;div class=&quot;wp-block-columns&quot;&gt;
         2747 &lt;div class=&quot;wp-block-column&quot;&gt;
         2748 &lt;figure class=&quot;wp-block-image size-large is-resized is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/screenshot_20210622_231438.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2333&quot; height=&quot;811&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/screenshot_20210622_231438.png?w=512&quot; width=&quot;406&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Starting up MyGNUHealth application in the PinePhone&lt;/figcaption&gt;&lt;/figure&gt;
         2749 &lt;/div&gt;
         2750 
         2751 
         2752 
         2753 &lt;div class=&quot;wp-block-column&quot;&gt;
         2754 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/screenshot_20210623_224140-2.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2338&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/screenshot_20210623_224140-2.png?w=512&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;KDE Plasma mobile applications on the PinePhone&lt;/figcaption&gt;&lt;/figure&gt;
         2755 
         2756 
         2757 
         2758 &lt;p&gt;&lt;/p&gt;
         2759 &lt;/div&gt;
         2760 &lt;/div&gt;
         2761 
         2762 
         2763 
         2764 &lt;p&gt;I wrote an article some weeks ago (“&lt;a href=&quot;https://meanmicio.org/2021/06/04/liberating-our-mobile-computing/&quot;&gt;Liberating our mobile computing”)&lt;/a&gt;, where I mentioned why I have changed the Android phone to the PinePhone, and my watch to the PineTime.&lt;/p&gt;
         2765 
         2766 
         2767 
         2768 &lt;p&gt;Does the PinePhone have the best camera? Can we compare the PinePhone with Apple or Google products? It’s hard to compare a multi-billion dollar corporation with a fresh, community-oriented project. The business model, the technology components and the ethics behind are very different. &lt;/p&gt;
         2769 
         2770 
         2771 
         2772 &lt;p&gt;So, why making the move? I made the change because we, as a society, need to embrace a technology that is universal and that respects our freedom and privacy.  A technology that focuses on the individual and not in the corporation. That moves takes determination and commitment. There is a small price to pay, but freedom and privacy are priceless.&lt;/p&gt;
         2773 
         2774 
         2775 
         2776 &lt;p&gt;&lt;/p&gt;
         2777 
         2778 
         2779 
         2780 &lt;div class=&quot;wp-block-columns&quot;&gt;
         2781 &lt;div class=&quot;wp-block-column&quot;&gt;
         2782 &lt;div class=&quot;wp-container-613c8401e4bc9 wp-block-group&quot;&gt;&lt;div class=&quot;wp-block-group__inner-container&quot;&gt;
         2783 &lt;div class=&quot;wp-block-columns&quot;&gt;
         2784 &lt;div class=&quot;wp-block-column&quot;&gt;
         2785 &lt;figure class=&quot;wp-block-image size-large is-resized is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/mygnuhealth-09b2-pinephone.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2327&quot; height=&quot;626&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/mygnuhealth-09b2-pinephone.jpg?w=1024&quot; width=&quot;836&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;Taking MyGNUHealth and the PinePhone to the outdoors.&lt;/figcaption&gt;&lt;/figure&gt;
         2786 &lt;/div&gt;
         2787 &lt;/div&gt;
         2788 &lt;/div&gt;&lt;/div&gt;
         2789 &lt;/div&gt;
         2790 &lt;/div&gt;
         2791 
         2792 
         2793 
         2794 &lt;p&gt;As a physician, I need to provide my patients the resources that use state-of-the-art technology, and, at the same time,  guarantee the privacy of their sensitive medical information. Libre software and open standards are key in healthcare. When my patients choose free/libre software, they have full control. They also have the possibility to share it with me or with other health professionals, in real-time and with the highest levels of privacy.&lt;/p&gt;
         2795 
         2796 
         2797 
         2798 &lt;p&gt;We can only manage sensitive health data with technology that respects our privacy. In other words, we can not put our personal information in the hands of corporate interests. Choosing Libre Software and Hardware  means much more than just technology. Libre Software means embracing solidarity and cooperation. It means sharing knowledge, code and time with others. It means embracing open science for the advancement of our societies,  specially for those that need it most.&lt;/p&gt;
         2799 
         2800 
         2801 
         2802 &lt;p&gt;MyGNUHealth will be included by default in many operating systems and distributions, so you don’t have to worry about the technical details. Just use your health companion! If your operating system does not have MyGH in their repositories,  please ask them to include it.&lt;/p&gt;
         2803 
         2804 
         2805 
         2806 &lt;p&gt;Governments, institutions, and health professional need affordable technology that respects their citizens freedom. We need you to be part of this eHealth revolution.&lt;/p&gt;
         2807 
         2808 
         2809 
         2810 &lt;p&gt;Happy and healthy hacking!&lt;/p&gt;
         2811 
         2812 
         2813 
         2814 &lt;p&gt;&lt;/p&gt;
         2815 
         2816 
         2817 
         2818 &lt;h2&gt;About GNUHealth:&lt;/h2&gt;
         2819 
         2820 
         2821 
         2822 &lt;p&gt;MyGNUHealth is part of the GNU Health, the Libre digital health ecosystem. GNU Health is from&lt;strong&gt; GNU Solidario&lt;/strong&gt;, a humanitarian, non-for-profit organization focused on the advancement of Social Medicine.  GNU Solidario develops health applications and uses exclusively Free/Libre software. GNU Health is an official GNU project.&lt;/p&gt;
         2823 
         2824 
         2825 
         2826 &lt;p&gt;&lt;strong&gt;Homepage&lt;/strong&gt; : &lt;a href=&quot;https://www.gnuhealth.org&quot;&gt;https://www.gnuhealth.org&lt;/a&gt;&lt;/p&gt;
         2827 
         2828 
         2829 
         2830 &lt;p&gt;&lt;strong&gt;Documentation portal&lt;/strong&gt; : &lt;a href=&quot;https://www.gnuhealth.org/docs&quot;&gt;https://www.gnuhealth.org/docs&lt;/a&gt;&lt;/p&gt; </description> 
         2831         <pubDate>Thu, 24 Jun 2021 14:54:55 +0000</pubDate>
         2832 
         2833 </item> 
         2834 <item>
         2835         <title>dejagnu @ Savannah: DejaGnu 1.6.3 released</title>
         2836         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10014</guid>
         2837         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10014</link>
         2838      <description>  &lt;p&gt;DejaGnu 1.6.3 was released on 16 June 2021.  Many bugs are fixed in this release and active development is resuming, though perhaps at a slow pace.&lt;br /&gt;
         2839 &lt;/p&gt; </description> 
         2840         <pubDate>Thu, 24 Jun 2021 01:48:43 +0000</pubDate>
         2841 
         2842 </item> 
         2843 <item>
         2844         <title>texmacs @ Savannah: TeXmacs 2.1 released</title>
         2845         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10013</guid>
         2846         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10013</link>
         2847      <description>  &lt;p&gt;This version of TeXmacs consolidates many developments that took place in the last decade. Most importantly, the interface is now based on Qt, which allowed us develop native versions for Linux, MacOS, and Windows. TeXmacs has evolved from a scientific text editor into a scientific office suite, with an integrated presentation mode, technical drawing editor, versioning tools, bibliography tool, etc. The typesetting quality has continued to improve with a better support of microtypography and a large variety of fonts. The converters for LaTeX and Html have also been further perfected and TeXmacs now comes with a native support for Pdf.&lt;br /&gt;
         2848 &lt;/p&gt; </description> 
         2849         <pubDate>Wed, 23 Jun 2021 12:48:33 +0000</pubDate>
         2850 
         2851 </item> 
         2852 <item>
         2853         <title>parallel @ Savannah: GNU Parallel 20210622 (&#39;Protasevich&#39;) released [stable]</title>
         2854         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10012</guid>
         2855         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10012</link>
         2856      <description>  &lt;p&gt;GNU Parallel 20210622 (&#39;Protasevich&#39;) [stable] has been released. It is available for download at: lbry://@GnuParallel:4
         2857 &lt;br /&gt;
         2858 &lt;/p&gt;
         2859 &lt;p&gt;No new functionality was introduced so this is a good candidate for a stable release.
         2860 &lt;br /&gt;
         2861 &lt;/p&gt;
         2862 &lt;p&gt;Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: &lt;a href=&quot;http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4&quot;&gt;http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4&lt;/a&gt;
         2863 &lt;br /&gt;
         2864 &lt;/p&gt;
         2865 &lt;p&gt;It does not have to be as detailed as Juan&#39;s. It is perfectly fine if you just say your name, and what field you are using GNU Parallel for.
         2866 &lt;br /&gt;
         2867 &lt;/p&gt;
         2868 &lt;p&gt;Quote of the month:
         2869 &lt;br /&gt;
         2870 &lt;/p&gt;
         2871 &lt;p&gt;  GNU Parallel makes my life so much easier.
         2872 &lt;br /&gt;
         2873   I&#39;m glad I don&#39;t have to implement multi-threaded Python scripts on the regular.
         2874 &lt;br /&gt;
         2875      -- Fredrick Brennan @fr_brennan@twitter
         2876 &lt;br /&gt;
         2877 &lt;/p&gt;
         2878 &lt;p&gt;New in this release:
         2879 &lt;br /&gt;
         2880 &lt;/p&gt;
         2881 &lt;ul&gt;
         2882 &lt;li&gt;Bug fixes and man page updates.
         2883 &lt;/li&gt;
         2884 &lt;/ul&gt;
         2885 &lt;p&gt;News about GNU Parallel:
         2886 &lt;br /&gt;
         2887 &lt;/p&gt;
         2888 &lt;ul&gt;
         2889 &lt;li&gt;How to use GNU Parallel &lt;a href=&quot;https://techtipbits.com/linux/how-to-use-gnu-parallel/&quot;&gt;https://techtipbits.com/linux/how-to-use-gnu-parallel/&lt;/a&gt;
         2890 &lt;/li&gt;
         2891 &lt;/ul&gt;
         2892 &lt;ul&gt;
         2893 &lt;li&gt;How to Speed Up Bash Scripts with Multithreading and GNU Parallel &lt;a href=&quot;https://adamtheautomator.com/how-to-speed-up-bash-scripts-with-multithreading-and-gnu-parallel/&quot;&gt;https://adamtheautomator.com/how-to-speed-up-bash-scripts-with-multithreading-and-gnu-parallel/&lt;/a&gt;
         2894 &lt;/li&gt;
         2895 &lt;/ul&gt;
         2896 &lt;ul&gt;
         2897 &lt;li&gt;Use Parallel to split by line &lt;a href=&quot;https://madflex.de/use-parallel-to-split-by-line/&quot;&gt;https://madflex.de/use-parallel-to-split-by-line/&lt;/a&gt;
         2898 &lt;/li&gt;
         2899 &lt;/ul&gt;
         2900 &lt;ul&gt;
         2901 &lt;li&gt;Optimizing long batch processes or ETL by using buff/cache properly II (parallelizing network operations) &lt;a href=&quot;http://www.elsotanillo.net/2021/06/optimizing-long-batch-processes-or-etl-by-using-buff-cache-properly-ii-parallelizing-network-operations/&quot;&gt;http://www.elsotanillo.net/2021/06/optimizing-long-batch-processes-or-etl-by-using-buff-cache-properly-ii-parallelizing-network-operations/&lt;/a&gt;
         2902 &lt;/li&gt;
         2903 &lt;/ul&gt;
         2904 &lt;ul&gt;
         2905 &lt;li&gt;Parallelization 3: GNU Parallel &lt;a href=&quot;https://www.youtube.com/watch?v=Rl06WD60afA&quot;&gt;https://www.youtube.com/watch?v=Rl06WD60afA&lt;/a&gt;
         2906 &lt;/li&gt;
         2907 &lt;/ul&gt;
         2908 
         2909 &lt;p&gt;Get the book: GNU Parallel 2018 &lt;a href=&quot;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&quot;&gt;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&lt;/a&gt;
         2910 &lt;br /&gt;
         2911 &lt;/p&gt;
         2912 &lt;p&gt;GNU Parallel - For people who live life in the parallel lane.
         2913 &lt;br /&gt;
         2914 &lt;/p&gt;
         2915 &lt;p&gt;If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
         2916 &lt;br /&gt;
         2917 &lt;/p&gt;
         2918 
         2919 &lt;h2&gt;About GNU Parallel&lt;/h2&gt;
         2920 
         2921 &lt;p&gt;GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.
         2922 &lt;br /&gt;
         2923 &lt;/p&gt;
         2924 &lt;p&gt;If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.
         2925 &lt;br /&gt;
         2926 &lt;/p&gt;
         2927 &lt;p&gt;GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.
         2928 &lt;br /&gt;
         2929 &lt;/p&gt;
         2930 &lt;p&gt;For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
         2931 &lt;br /&gt;
         2932 &lt;/p&gt;
         2933 &lt;p&gt;  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
         2934 &lt;br /&gt;
         2935 &lt;/p&gt;
         2936 &lt;p&gt;Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
         2937 &lt;br /&gt;
         2938 &lt;/p&gt;
         2939 &lt;p&gt;  find . -name &#39;*.jpg&#39; |
         2940 &lt;br /&gt;
         2941     parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
         2942 &lt;br /&gt;
         2943 &lt;/p&gt;
         2944 &lt;p&gt;You can find more about GNU Parallel at: &lt;a href=&quot;http://www.gnu.org/s/parallel/&quot;&gt;http://www.gnu.org/s/parallel/&lt;/a&gt;
         2945 &lt;br /&gt;
         2946 &lt;/p&gt;
         2947 &lt;p&gt;You can install GNU Parallel in just 10 seconds with:
         2948 &lt;br /&gt;
         2949 &lt;/p&gt;
         2950 &lt;p&gt;    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
         2951 &lt;br /&gt;
         2952        fetch -o - &lt;a href=&quot;http://pi.dk/3&quot;&gt;http://pi.dk/3&lt;/a&gt; ) &amp;gt; install.sh
         2953 &lt;br /&gt;
         2954     $ sha1sum install.sh | grep c82233e7da3166308632ac8c34f850c0
         2955 &lt;br /&gt;
         2956     12345678 c82233e7 da316630 8632ac8c 34f850c0
         2957 &lt;br /&gt;
         2958     $ md5sum install.sh | grep ae3d7aac5e15cf3dfc87046cfc5918d2
         2959 &lt;br /&gt;
         2960     ae3d7aac 5e15cf3d fc87046c fc5918d2
         2961 &lt;br /&gt;
         2962     $ sha512sum install.sh | grep dfc00d823137271a6d96225cea9e89f533ff6c81f
         2963 &lt;br /&gt;
         2964     9c5198d5 31a3b755 b7910ece 3a42d206 c804694d fc00d823 137271a6 d96225ce
         2965 &lt;br /&gt;
         2966     a9e89f53 3ff6c81f f52b298b ef9fb613 2d3f9ccd 0e2c7bd3 c35978b5 79acb5ca
         2967 &lt;br /&gt;
         2968     $ bash install.sh
         2969 &lt;br /&gt;
         2970 &lt;/p&gt;
         2971 &lt;p&gt;Watch the intro video on &lt;a href=&quot;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&quot;&gt;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&lt;/a&gt;
         2972 &lt;br /&gt;
         2973 &lt;/p&gt;
         2974 &lt;p&gt;Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
         2975 &lt;br /&gt;
         2976 &lt;/p&gt;
         2977 &lt;p&gt;When using programs that use GNU Parallel to process data for publication please cite:
         2978 &lt;br /&gt;
         2979 &lt;/p&gt;
         2980 &lt;p&gt;O. Tange (2018): GNU Parallel 2018, March 2018, &lt;a href=&quot;https://doi.org/10.5281/zenodo.1146014&quot;&gt;https://doi.org/10.5281/zenodo.1146014&lt;/a&gt;.
         2981 &lt;br /&gt;
         2982 &lt;/p&gt;
         2983 &lt;p&gt;If you like GNU Parallel:
         2984 &lt;br /&gt;
         2985 &lt;/p&gt;
         2986 &lt;ul&gt;
         2987 &lt;li&gt;Give a demo at your local user group/team/colleagues
         2988 &lt;/li&gt;
         2989 &lt;li&gt;Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
         2990 &lt;/li&gt;
         2991 &lt;li&gt;Get the merchandise &lt;a href=&quot;https://gnuparallel.threadless.com/designs/gnu-parallel&quot;&gt;https://gnuparallel.threadless.com/designs/gnu-parallel&lt;/a&gt;
         2992 &lt;/li&gt;
         2993 &lt;li&gt;Request or write a review for your favourite blog or magazine
         2994 &lt;/li&gt;
         2995 &lt;li&gt;Request or build a package for your favourite distribution (if it is not already there)
         2996 &lt;/li&gt;
         2997 &lt;li&gt;Invite me for your next conference
         2998 &lt;/li&gt;
         2999 &lt;/ul&gt;
         3000 &lt;p&gt;If you use programs that use GNU Parallel for research:
         3001 &lt;br /&gt;
         3002 &lt;/p&gt;
         3003 &lt;ul&gt;
         3004 &lt;li&gt;Please cite GNU Parallel in you publications (use --citation)
         3005 &lt;/li&gt;
         3006 &lt;/ul&gt;
         3007 &lt;p&gt;If GNU Parallel saves you money:
         3008 &lt;br /&gt;
         3009 &lt;/p&gt;
         3010 &lt;ul&gt;
         3011 &lt;li&gt;(Have your company) donate to FSF &lt;a href=&quot;https://my.fsf.org/donate/&quot;&gt;https://my.fsf.org/donate/&lt;/a&gt;
         3012 &lt;/li&gt;
         3013 &lt;/ul&gt;
         3014 
         3015 &lt;h2&gt;About GNU SQL&lt;/h2&gt;
         3016 
         3017 &lt;p&gt;GNU sql aims to give a simple, unified interface for accessing databases through all the different databases&#39; command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.
         3018 &lt;br /&gt;
         3019 &lt;/p&gt;
         3020 &lt;p&gt;The database is addressed using a DBURL. If commands are left out you will get that database&#39;s interactive shell.
         3021 &lt;br /&gt;
         3022 &lt;/p&gt;
         3023 &lt;p&gt;When using GNU SQL for a publication please cite:
         3024 &lt;br /&gt;
         3025 &lt;/p&gt;
         3026 &lt;p&gt;O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.
         3027 &lt;br /&gt;
         3028 &lt;/p&gt;
         3029 
         3030 &lt;h2&gt;About GNU Niceload&lt;/h2&gt;
         3031 
         3032 &lt;p&gt;GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.&lt;br /&gt;
         3033 &lt;/p&gt; </description> 
         3034         <pubDate>Tue, 22 Jun 2021 17:30:08 +0000</pubDate>
         3035 
         3036 </item> 
         3037 <item>
         3038         <title>GNU Taler news: Comment émettre une monnaie numérique de banque centrale</title>
         3039         <guid>https://taler.net/en/news/2021-07.html</guid>
         3040         <link>https://taler.net/en/news/2021-07.html</link>
         3041      <description>  &lt;article&gt;
         3042              Nous sommes heureux de vous annoncer la publication de notre article sur &quot;Comment émettre une monnaie numérique de banque centrale&quot; par le Banque nationale suisse.
         3043            &lt;/article&gt; </description> 
         3044         <pubDate>Mon, 21 Jun 2021 22:00:00 +0000</pubDate>
         3045 
         3046 </item> 
         3047 <item>
         3048         <title>GNU Guix: Substitutes now also available from bordeaux.guix.gnu.org</title>
         3049         <guid>https://guix.gnu.org/blog/2021/substitutes-now-also-available-from-bordeauxguixgnuorg/</guid>
         3050         <link>https://guix.gnu.org/blog/2021/substitutes-now-also-available-from-bordeauxguixgnuorg/</link>
         3051      <description>  &lt;p&gt;There have been a number of different project operated sources of
         3052 substitutes, for the last couple of years the default source of
         3053 substitutes has been &lt;a href=&quot;https://ci.guix.gnu.org&quot;&gt;ci.guix.gnu.org&lt;/a&gt; (with a few
         3054 different URLs).&lt;/p&gt;&lt;p&gt;Now, in addition to &lt;a href=&quot;https://ci.guix.gnu.org&quot;&gt;ci.guix.gnu.org&lt;/a&gt;,
         3055 &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt; is a default substitute
         3056 server.&lt;/p&gt;&lt;p&gt;Put that way, this development maybe doesn&#39;t sound particularly
         3057 interesting.  Why is a second substitute server useful?  There&#39;s some
         3058 thoughts on that exact question in the next section.  If you&#39;re just
         3059 interested in how to use (or how not to use) substitutes from
         3060 &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt;, then you can just skip
         3061 ahead to the last section.&lt;/p&gt;&lt;h1&gt;Why a second source of substitutes?&lt;/h1&gt;&lt;p&gt;This change is an important milestone, following on from the work that
         3062 started on the &lt;a href=&quot;https://guix.gnu.org/en/blog/2021/building-derivations-how-complicated-can-it-be/&quot;&gt;Guix Build Coordinator towards the start of
         3063 2020&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Back in 2020, the substitute availability from
         3064 &lt;a href=&quot;https://ci.guix.gnu.org&quot;&gt;ci.guix.gnu.org&lt;/a&gt; was often an issue.  There seemed
         3065 to be a number of contributing factors, including some parts of the
         3066 architecture.  Without going too much in to the details of the issues,
         3067 aspects of the design of the Guix Build Coordinator were specifically
         3068 meant to avoid some of these issues.&lt;/p&gt;&lt;p&gt;While there were some very positive results from testing back in 2020,
         3069 it&#39;s taken so long to bring the substitute availability benefits to
         3070 general users of Guix that &lt;a href=&quot;https://ci.guix.gnu.org&quot;&gt;ci.guix.gnu.org&lt;/a&gt; has
         3071 &lt;a href=&quot;https://guix.gnu.org/en/blog/2021/cuirass-10-released/&quot;&gt;changed and improved significantly in the meantime&lt;/a&gt;.
         3072 This means that any benefits in terms of substitute availability are
         3073 less significant now.&lt;/p&gt;&lt;p&gt;One clearer benefit of just having two independent sources of
         3074 substitutes is redundancy.  While the availability of
         3075 &lt;a href=&quot;https://ci.guix.gnu.org&quot;&gt;ci.guix.gnu.org&lt;/a&gt; has been very high (in my opinion),
         3076 having a second independent substitute server should mean that if
         3077 there&#39;s a future issue with users accessing either source of
         3078 substitutes, the disruption should be reduced.&lt;/p&gt;&lt;p&gt;I&#39;m also excited about the new possibilities offered by having a
         3079 second substitute server, particularly one using the Guix Build
         3080 Coordinator to manage the builds.&lt;/p&gt;&lt;p&gt;Substitutes for the Hurd is already something that&#39;s &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-devel/2021-03/msg00074.html&quot;&gt;been
         3081 prototyped&lt;/a&gt;, so I&#39;m hopeful that
         3082 &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt; can start using
         3083 &lt;a href=&quot;https://guix.gnu.org/en/blog/2020/childhurds-and-substitutes/&quot;&gt;childhurd VMs&lt;/a&gt; to build things soon.&lt;/p&gt;&lt;p&gt;Looking a bit further forward, I think there&#39;s some benefits to be had
         3084 in doing further work on how the nar and narinfo files used for
         3085 substitutes are managed. There are some &lt;a href=&quot;https://lists.gnu.org/archive/html/guix-devel/2021-02/msg00104.html&quot;&gt;rough plans
         3086 already&lt;/a&gt; on how to address the
         3087 retention of nars, and how to look at high performance mirrors.&lt;/p&gt;&lt;p&gt;Having two substitute servers is one step towards stronger trust
         3088 policies for substitutes (&lt;a href=&quot;https://lists.gnu.org/archive/html/guix-devel/2020-06/msg00179.html&quot;&gt;as discussed on guix-devel&lt;/a&gt;,
         3089 where you would only use a substitute if both
         3090 &lt;a href=&quot;https://ci.guix.gnu.org&quot;&gt;ci.guix.gnu.org&lt;/a&gt; and
         3091 &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt; have built it exactly
         3092 the same.  This would help protect against the compromise of a single
         3093 substitute server.&lt;/p&gt;&lt;h1&gt;Using substitutes from bordeaux.guix.gnu.org&lt;/h1&gt;&lt;p&gt;If you&#39;re using Guix System, and haven&#39;t altered the default
         3094 substitute configuration, updating guix (via &lt;code&gt;guix pull&lt;/code&gt;),
         3095 reconfiguring using the updated guix, and then restarting the
         3096 guix-daemon should enable substitutes from
         3097 &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;If the ACL is being managed manually, you might need to add the public
         3098 key for &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt; manually as
         3099 well.&lt;/p&gt;&lt;p&gt;When using Guix on a foreign distribution with the default substitute
         3100 configuration, you&#39;ll need to run &lt;code&gt;guix pull&lt;/code&gt; as root, then restart
         3101 the guix-daemon.  You&#39;ll then need to add the public key for
         3102 &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt; to the ACL.&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;guix archive --authorize &amp;lt; /root/.config/guix/current/share/guix/bordeaux.guix.gnu.org.pub&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you want to just use &lt;a href=&quot;https://ci.guix.gnu.org&quot;&gt;ci.guix.gnu.org&lt;/a&gt;, or
         3103 &lt;a href=&quot;https://bordeaux.guix.gnu.org&quot;&gt;bordeaux.guix.gnu.org&lt;/a&gt; for that matter, you&#39;ll
         3104 need to adjust the substitute urls configuration for the guix-daemon
         3105 to just refer to the substitute servers you want to use.&lt;/p&gt; </description> 
         3106         <pubDate>Fri, 18 Jun 2021 12:00:00 +0000</pubDate>
         3107 
         3108 </item> 
         3109 <item>
         3110         <title>gdbm @ Savannah: Version 1.20</title>
         3111         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10011</guid>
         3112         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10011</link>
         3113      <description>  &lt;p&gt;&lt;a href=&quot;https://ftp.gnu.org/gnu/gdbm/gdbm-1.20.tar.gz&quot;&gt;Version 1.20&lt;/a&gt; is available for download.
         3114 &lt;br /&gt;
         3115 &lt;/p&gt;
         3116 &lt;p&gt;Changes in this version:
         3117 &lt;br /&gt;
         3118 &lt;/p&gt;
         3119 &lt;h3&gt;New bucket cache&lt;/h3&gt;
         3120 
         3121 &lt;p&gt;The bucket cache support has been rewritten from scratch.  The new code provides for significant speed up of search operations.
         3122 &lt;br /&gt;
         3123 &lt;/p&gt;
         3124 &lt;h3&gt;Change in the mmap prereading strategy&lt;/h3&gt;
         3125 
         3126 &lt;p&gt;Pre-reading of the memory mapper regions, introduced in version 1.19 can be advantageous only when doing intensive look-ups on a read-only
         3127 &lt;br /&gt;
         3128 database.  It degrades performance otherwise, especially if doing multiple inserts.  Therefore, this version introduces a new flag
         3129 &lt;br /&gt;
         3130 to gdbm_open: GDBM_PREREAD.  When given, it enables pre-reading of memory mapped regions. (&lt;a href=&quot;https://github.com/Perl/perl5/issues/18884&quot;&gt;details&lt;/a&gt;)&lt;br /&gt;
         3131 &lt;/p&gt; </description> 
         3132         <pubDate>Thu, 17 Jun 2021 11:07:51 +0000</pubDate>
         3133 
         3134 </item> 
         3135 <item>
         3136         <title>GNU Taler news: How to issue a privacy-preserving central bank digital currency</title>
         3137         <guid>https://taler.net/en/news/2021-06.html</guid>
         3138         <link>https://taler.net/en/news/2021-06.html</link>
         3139      <description>  &lt;article&gt;
         3140              We are happy to announce the publication of our policy brief on&quot;How to issue a privacy-preserving central bank digital currency&quot; by The European Money and Finance Forum.
         3141            &lt;/article&gt; </description> 
         3142         <pubDate>Wed, 16 Jun 2021 22:00:00 +0000</pubDate>
         3143 
         3144 </item> 
         3145 <item>
         3146         <title>GNU Guix: Reproducible data processing pipelines</title>
         3147         <guid>https://guix.gnu.org/blog/2021/reproducible-data-processing-pipelines/</guid>
         3148         <link>https://guix.gnu.org/blog/2021/reproducible-data-processing-pipelines/</link>
         3149      <description>  &lt;p&gt;Last week, &lt;a href=&quot;https://hpc.guix.info&quot;&gt;we at Guix-HPC&lt;/a&gt; published &lt;a href=&quot;https://hpc.guix.info/events/2021/atelier-reproductibilit%C3%A9-environnements/&quot;&gt;videos of
         3150 a workshop on reproducible software
         3151 environments&lt;/a&gt;
         3152 we organized on-line.  The videos are well worth watching—especially if
         3153 you’re into reproducible research, and especially if you speak French or
         3154 want to practice.  This post, though, is more of a meta-post: it’s about
         3155 how we processed these videos.  “A workshop on reproducibility &lt;em&gt;ought to
         3156 have&lt;/em&gt; a reproducible video pipeline”, we thought.  So this is what we
         3157 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/master/doc/atelier-reproductibilit%C3%A9/render-videos.scm&quot;&gt;did&lt;/a&gt;!&lt;/p&gt;&lt;h1&gt;From BigBlueButton to WebM&lt;/h1&gt;&lt;p&gt;Over the last year and half, perhaps you had the “opportunity” to
         3158 participate in an on-line conference, or even to organize one.  If so,
         3159 chances are that you already know
         3160 &lt;a href=&quot;https://bigbluebutton.org/&quot;&gt;BigBlueButton&lt;/a&gt; (BBB), the free software
         3161 video conferencing suite initially designed for on-line teaching.  In a
         3162 nutshell, it allows participants to chat (audio, video, and keyboard),
         3163 and speakers can share their screen or a PDF slide deck.  Organizers can
         3164 also record the session.&lt;/p&gt;&lt;p&gt;BBB then creates a link to recorded sessions with a custom JavaScript
         3165 player that replays everything: typed chat, audio and video (webcams),
         3166 shared screens, and slide decks.  This BBB replay a bit too rough though
         3167 and often not the thing you’d like to publish after the conference.
         3168 Instead, you’d rather do a bit of editing: adjusting the start and end
         3169 time of each talk, removing live chat from what’s displayed (which
         3170 allows you to remove info that personally identifies participants,
         3171 too!), and so forth.  Turns out this kind of post-processing is a bit of
         3172 work, primarily because BBB does “the right thing” of recording each
         3173 stream separately, in the most appropriate form: webcam and screen
         3174 shares are recorded as separate videos, chat is recorded as text with
         3175 timings, slide decks is recorded as a bunch of PNGs plus timings, and
         3176 then there’s a bunch of XML files with metadata putting it all together.&lt;/p&gt;&lt;p&gt;Anyway, with a bit of searching, we quickly found the handy
         3177 &lt;a href=&quot;https://github.com/plugorgau/bbb-render&quot;&gt;bbb-render&lt;/a&gt; tool, which can
         3178 first
         3179 &lt;a href=&quot;https://github.com/plugorgau/bbb-render/blob/master/download.py&quot;&gt;download&lt;/a&gt;
         3180 all these files and then
         3181 &lt;a href=&quot;https://github.com/plugorgau/bbb-render/blob/master/make-xges.py&quot;&gt;assemble&lt;/a&gt;
         3182 them using the Python interface to the &lt;a href=&quot;https://gstreamer.freedesktop.org/documentation/gst-editing-services/index.html&quot;&gt;GStreamer Editing Services
         3183 (GES)&lt;/a&gt;.
         3184 Good thing: we don’t have to figure out all these things; we “just” have
         3185 to run these two scripts in an environment with the right dependencies.
         3186 And guess what: we know of a great tool to control execution
         3187 environments!&lt;/p&gt;&lt;h1&gt;A “deployment-aware Makefile”&lt;/h1&gt;&lt;p&gt;So we have a process that takes input files—those PNGs, videos, and XML
         3188 files—and produces output files—WebM video files.  As developers we
         3189 immediately recognize a pattern and the timeless tool to deal with it:
         3190 &lt;a href=&quot;https://www.gnu.org/software/make&quot;&gt;&lt;code&gt;make&lt;/code&gt;&lt;/a&gt;.  The web already seems to
         3191 contain countless BBB post-processing makefiles (and shell scripts,
         3192 too).  We were going to contribute to this while we suddenly realized
         3193 that we know of &lt;em&gt;another&lt;/em&gt; great tool to express such processes: Guix!
         3194 Bonus: while a makefile would address just the tip of the
         3195 iceberg—running bbb-render—Guix can also take care of the tedious task
         3196 of deploying the &lt;em&gt;right&lt;/em&gt; environment to run bbb-render in.&lt;/p&gt;&lt;p&gt;What we did was to write some sort of a &lt;em&gt;deployment-aware makefile&lt;/em&gt;.
         3197 It’s still a relatively unconventional way to use Guix, but one that’s
         3198 very convenient.  We’re talking about videos, but really, you could use
         3199 the same approach for any kind of processing graph where you’d be
         3200 tempted to just use &lt;code&gt;make&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;The end result here is a &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm&quot;&gt;Guix
         3201 file&lt;/a&gt;
         3202 that returns a &lt;em&gt;manifest&lt;/em&gt;—a list of videos to “build”.  You can build
         3203 the videos with:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;guix build -m render-videos.scm&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Overall, the file defines a bunch of functions (&lt;em&gt;procedures&lt;/em&gt; in
         3204 traditional Scheme parlance), each of which takes input files and
         3205 produces output files.  More accurately, these functions returns objects
         3206 that &lt;em&gt;describe&lt;/em&gt; how to build their output from the input files—similar
         3207 to how a &lt;a href=&quot;https://www.gnu.org/software/make/manual/html_node/Rule-Introduction.html&quot;&gt;makefile
         3208 rule&lt;/a&gt;
         3209 describes how to build its target(s) from its prerequisite(s).  (The
         3210 reader familiar with functional programming may recognize a monad here,
         3211 and indeed, those build descriptions can be thought of as monadic values
         3212 in a hypothetical “Guix build” monad; technically though, they’re
         3213 regular Scheme values.)&lt;/p&gt;&lt;p&gt;Let’s take a guided tour of this 300-line file.&lt;/p&gt;&lt;h1&gt;Rendering&lt;/h1&gt;&lt;p&gt;The &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L23-75&quot;&gt;first
         3214 step&lt;/a&gt;
         3215 in this file describes where bbb-render can be found and how to run it
         3216 to produce a GES “project” file, which we’ll use later to render the
         3217 video:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(define bbb-render
         3218   (origin
         3219     (method git-fetch)
         3220     (uri (git-reference (url &quot;https://github.com/plugorgau/bbb-render&quot;)
         3221                         (commit &quot;a3c10518aedc1bd9e2b71a4af54903adf1d972e5&quot;)))
         3222     (file-name &quot;bbb-render-checkout&quot;)
         3223     (sha256
         3224      (base32 &quot;1sf99xp334aa0qgp99byvh8k39kc88al8l2wy77zx7fyvknxjy98&quot;))))
         3225 
         3226 (define rendering-profile
         3227   (profile
         3228    (content (specifications-&amp;gt;manifest
         3229              &#39;(&quot;gstreamer&quot; &quot;gst-editing-services&quot; &quot;gobject-introspection&quot;
         3230                &quot;gst-plugins-base&quot; &quot;gst-plugins-good&quot;
         3231                &quot;python-wrapper&quot; &quot;python-pygobject&quot; &quot;python-intervaltree&quot;)))))
         3232 
         3233 (define* (video-ges-project bbb-data start end
         3234                             #:key (webcam-size 25))
         3235   &quot;Return a GStreamer Editing Services (GES) project for the video,
         3236 starting at START seconds and ending at END seconds.  BBB-DATA is the raw
         3237 BigBlueButton directory as fetched by bbb-render&#39;s &#39;download.py&#39; script.
         3238 WEBCAM-SIZE is the percentage of the screen occupied by the webcam.&quot;
         3239   (computed-file &quot;video.ges&quot;
         3240                  (with-extensions (list (specification-&amp;gt;package &quot;guile-gcrypt&quot;))
         3241                   (with-imported-modules (source-module-closure
         3242                                           &#39;((guix build utils)
         3243                                             (guix profiles)))
         3244                     #~(begin
         3245                         (use-modules (guix build utils) (guix profiles)
         3246                                      (guix search-paths) (ice-9 match))
         3247 
         3248                         (define search-paths
         3249                           (profile-search-paths #+rendering-profile))
         3250 
         3251                         (for-each (match-lambda
         3252                                     ((spec . value)
         3253                                      (setenv
         3254                                       (search-path-specification-variable
         3255                                        spec)
         3256                                       value)))
         3257                                   search-paths)
         3258 
         3259                         (invoke &quot;python&quot;
         3260                                 #+(file-append bbb-render &quot;/make-xges.py&quot;)
         3261                                 #+bbb-data #$output
         3262                                 &quot;--start&quot; #$(number-&amp;gt;string start)
         3263                                 &quot;--end&quot; #$(number-&amp;gt;string end)
         3264                                 &quot;--webcam-size&quot;
         3265                                 #$(number-&amp;gt;string webcam-size)))))))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;First it defines the source code location of bbb-render as an
         3266 &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/origin-Reference.html&quot;&gt;“origin”&lt;/a&gt;.
         3267 Second, it defines &lt;code&gt;rendering-profile&lt;/code&gt; as a
         3268 &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/Getting-Started.html#index-profile&quot;&gt;“profile”&lt;/a&gt;
         3269 containing all the packages needed to run bbb-render’s &lt;code&gt;make-xges.py&lt;/code&gt;
         3270 script.  The &lt;code&gt;specification-&amp;gt;manifest&lt;/code&gt; procedure creates a &lt;em&gt;manifest&lt;/em&gt;
         3271 from a set of packages specs, and likewise &lt;code&gt;specification-&amp;gt;package&lt;/code&gt;
         3272 returns the package that matches a given spec.  You can try these things at
         3273 the &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/Invoking-guix-repl.html&quot;&gt;&lt;code&gt;guix repl&lt;/code&gt;&lt;/a&gt;
         3274 prompt:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ guix repl
         3275 GNU Guile 3.0.7
         3276 Copyright (C) 1995-2021 Free Software Foundation, Inc.
         3277 
         3278 Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w&#39;.
         3279 This program is free software, and you are welcome to redistribute it
         3280 under certain conditions; type `,show c&#39; for details.
         3281 
         3282 Enter `,help&#39; for help.
         3283 scheme@(guix-user)&amp;gt; ,use(guix profiles)
         3284 scheme@(guix-user)&amp;gt; ,use(gnu)
         3285 scheme@(guix-user)&amp;gt; (specification-&amp;gt;package &quot;guile@2.0&quot;)
         3286 $1 = #&amp;lt;package guile@2.0.14 gnu/packages/guile.scm:139 7f416be776e0&amp;gt;
         3287 scheme@(guix-user)&amp;gt; (specifications-&amp;gt;manifest &#39;(&quot;guile&quot; &quot;gstreamer&quot; &quot;python&quot;))
         3288 $2 = #&amp;lt;&amp;lt;manifest&amp;gt; entries: (#&amp;lt;&amp;lt;manifest-entry&amp;gt; name: &quot;guile&quot; version: &quot;3.0.7&quot; …&amp;gt; #&amp;lt;&amp;lt;manifest-entry&amp;gt; name: &quot;gstreamer&quot; version: &quot;1.18.2&quot; …&amp;gt; …)&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Last, it defines &lt;code&gt;video-ges-project&lt;/code&gt; as a function that takes the BBB
         3289 raw data, a start and end time, and produces a &lt;code&gt;video.ges&lt;/code&gt; file.  There
         3290 are three key elements here:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/G_002dExpressions.html#index-computed_002dfile&quot;&gt;&lt;code&gt;computed-file&lt;/code&gt;&lt;/a&gt;
         3291 is a function to produce a file, &lt;code&gt;video.ges&lt;/code&gt; in this case, by
         3292 running the code you give it as its second argument—the &lt;em&gt;recipe&lt;/em&gt;,
         3293 in makefile terms.&lt;/li&gt;&lt;li&gt;The recipe passed to &lt;code&gt;computed-file&lt;/code&gt; is a
         3294 &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/G_002dExpressions.html&quot;&gt;&lt;em&gt;G-expression&lt;/em&gt;&lt;/a&gt;
         3295 (or “gexp”), introduced by this fancy &lt;code&gt;#~&lt;/code&gt; (hash tilde) notation.
         3296 G-expressions are a way to &lt;em&gt;stage&lt;/em&gt; code, to mark it for eventual
         3297 execution.  Indeed, that code will only be executed if and when we
         3298 run &lt;code&gt;guix build&lt;/code&gt; (without &lt;code&gt;--dry-run&lt;/code&gt;), and only if the result is
         3299 not already in &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/The-Store.html&quot;&gt;the
         3300 store&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;The gexp refers to &lt;code&gt;rendering-profile&lt;/code&gt;, to &lt;code&gt;bbb-render&lt;/code&gt;, to
         3301 &lt;code&gt;bbb-data&lt;/code&gt; and so on by &lt;em&gt;escaping&lt;/em&gt; with the &lt;code&gt;#+&lt;/code&gt; or &lt;code&gt;#$&lt;/code&gt; syntax
         3302 (they’re equivalent, unless doing cross-compilation).  During
         3303 build, these reference items in the store, such as
         3304 &lt;code&gt;/gnu/store/…-bbb-render&lt;/code&gt;, which is itself the result of “building”
         3305 the origin we’ve seen above.  The &lt;code&gt;#$output&lt;/code&gt; reference corresponds
         3306 to the build result of this &lt;code&gt;computed-file&lt;/code&gt;, the complete file name
         3307 of &lt;code&gt;video.ges&lt;/code&gt; under &lt;code&gt;/gnu/store&lt;/code&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;That’s quite a lot already!  Of course, this real-world example is
         3308 more intimidating than the toy examples you’d find in the manual, but
         3309 really, pretty much everything’s there.  Let’s see in more detail at
         3310 what’s inside this gexp.&lt;/p&gt;&lt;p&gt;The gexp first imports a bunch of helper modules with &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/Build-Utilities.html&quot;&gt;build
         3311 utilities&lt;/a&gt;
         3312 and tools to manipulate profiles and search path environment variables.
         3313 The &lt;code&gt;for-each&lt;/code&gt; call iterates over search path environment
         3314 variables—&lt;code&gt;PATH&lt;/code&gt;, &lt;code&gt;PYTHONPATH&lt;/code&gt;, and so on—, setting them so that the
         3315 &lt;code&gt;python&lt;/code&gt; command is found and so that the needed Python modules are
         3316 found.&lt;/p&gt;&lt;p&gt;The &lt;code&gt;with-imported-modules&lt;/code&gt; form above indicates that the &lt;code&gt;(guix build utils)&lt;/code&gt; and &lt;code&gt;(guix profiles)&lt;/code&gt; modules, which are part of Guix, along
         3317 with their dependencies (their &lt;em&gt;closure&lt;/em&gt;), need to be imported in the
         3318 build environment.  What about &lt;code&gt;with-extensions&lt;/code&gt;?  Those &lt;code&gt;(guix …)&lt;/code&gt;
         3319 module indirectly depend on additional modules, provided by the
         3320 &lt;code&gt;guile-gcrypt&lt;/code&gt; package, hence this spec.&lt;/p&gt;&lt;p&gt;Next comes the
         3321 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L77-106&quot;&gt;&lt;code&gt;ges-&amp;gt;webm&lt;/code&gt;&lt;/a&gt;
         3322 function which, as the name implies, takes a &lt;code&gt;.ges&lt;/code&gt; file and produces a
         3323 WebM video file by invoking &lt;code&gt;ges-launch-1.0&lt;/code&gt;.  The end result is a video
         3324 containing the recording’s audio, the webcam and screen share (or slide
         3325 deck), but not the chat.&lt;/p&gt;&lt;h1&gt;Opening and closing&lt;/h1&gt;&lt;p&gt;We have a WebM video, so we’re pretty much done, right?  But… we’d also
         3326 like to have an opening, showing the talk title and the speaker’s name,
         3327 as well as a closing.  How do we get that done?&lt;/p&gt;&lt;p&gt;Perhaps a bit of a sledgehammer, but it turns out that we chose to
         3328 produce those still images with LaTeX/Beamer, from
         3329 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/opening.tex&quot;&gt;these&lt;/a&gt;
         3330 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/closing.tex&quot;&gt;templates&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;We need again several processing steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;We first define the
         3331 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L140-166&quot;&gt;&lt;code&gt;latex-&amp;gt;pdf&lt;/code&gt;&lt;/a&gt;
         3332 function that takes a template &lt;code&gt;.tex&lt;/code&gt; file, a speaker name and
         3333 title.  It copies the template, replaces placeholders with the
         3334 speaker name and title, and runs &lt;code&gt;pdflatex&lt;/code&gt; to produce the PDF.&lt;/li&gt;&lt;li&gt;The
         3335 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L168-175&quot;&gt;&lt;code&gt;pdf-&amp;gt;bitmap&lt;/code&gt;&lt;/a&gt;
         3336 function takes a PDF and returns a suitably-sized JPEG.&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L177-200&quot;&gt;&lt;code&gt;image-&amp;gt;webm&lt;/code&gt;&lt;/a&gt;
         3337 takes that JPEG and invokes &lt;code&gt;ffmpeg&lt;/code&gt; to render it as WebM, with the
         3338 right resolution, frame rate, and audio track.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;With that in place, we define a sweet and small function that produces
         3339 the opening WebM file for a given talk:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(define (opening title speaker)
         3340   (image-&amp;gt;webm
         3341    (pdf-&amp;gt;bitmap (latex-&amp;gt;pdf (local-file &quot;opening.tex&quot;) &quot;opening.pdf&quot;
         3342                             #:title title #:speaker speaker)
         3343                 &quot;opening.jpg&quot;)
         3344    &quot;opening.webm&quot; #:duration 5))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;We need one last function,
         3345 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L216-236&quot;&gt;&lt;code&gt;video-with-opening/closing&lt;/code&gt;&lt;/a&gt;,
         3346 that given a talk, an opening, and a closing, concatenates them by
         3347 invoking &lt;code&gt;ffmpeg&lt;/code&gt;.&lt;/p&gt;&lt;h1&gt;Putting it all together&lt;/h1&gt;&lt;p&gt;Now we have all the building blocks!&lt;/p&gt;&lt;p&gt;We use
         3348 &lt;a href=&quot;https://guix.gnu.org/manual/en/html_node/G_002dExpressions.html#index-local_002dfile&quot;&gt;&lt;code&gt;local-file&lt;/code&gt;&lt;/a&gt;
         3349 to refer to the raw BBB data, taken from disk:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(define raw-bbb-data/monday
         3350   ;; The raw BigBlueButton data as returned by &#39;./download.py URL&#39;, where
         3351   ;; &#39;download.py&#39; is part of bbb-render.
         3352   (local-file &quot;bbb-video-data.monday&quot; &quot;bbb-video-data&quot;
         3353               #:recursive? #t))
         3354 
         3355 (define raw-bbb-data/tuesday
         3356   (local-file &quot;bbb-video-data.tuesday&quot; &quot;bbb-video-data&quot;
         3357               #:recursive? #t))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;No, the raw data is not in the Git repository (it’s too big and contains
         3358 personally-identifying information about participants), so this assumes
         3359 that there’s a &lt;code&gt;bbb-video-data.monday&lt;/code&gt; and a &lt;code&gt;bbb-video-data.tuesday&lt;/code&gt; in
         3360 the same directory as &lt;code&gt;render-videos.scm&lt;/code&gt;.&lt;/p&gt;&lt;p&gt;For good measure, we define a
         3361 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L243-251&quot;&gt;&lt;code&gt;&amp;lt;talk&amp;gt;&lt;/code&gt;&lt;/a&gt;
         3362 data type:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(define-record-type &amp;lt;talk&amp;gt;
         3363   (talk title speaker start end cam-size data)
         3364   talk?
         3365   (title     talk-title)
         3366   (speaker   talk-speaker)
         3367   (start     talk-start)           ;start time in seconds
         3368   (end       talk-end)             ;end time
         3369   (cam-size  talk-webcam-size)     ;percentage used for the webcam
         3370   (data      talk-bbb-data))       ;BigBlueButton data&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;… such that we can easily &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L263-288&quot;&gt;define
         3371 talks&lt;/a&gt;,
         3372 along with
         3373 &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L297-311&quot;&gt;&lt;code&gt;talk-&amp;gt;video&lt;/code&gt;&lt;/a&gt;,
         3374 which takes a talk and return a complete, final video:&lt;/p&gt;&lt;pre&gt;&lt;code class=&quot;language-scheme&quot;&gt;(define (talk-&amp;gt;video talk)
         3375   &quot;Given a talk, return a complete video, with opening and closing.&quot;
         3376   (define file-name
         3377     (string-append (canonicalize-string (talk-speaker talk))
         3378                    &quot;.webm&quot;))
         3379 
         3380   (let ((raw (ges-&amp;gt;webm (video-ges-project (talk-bbb-data talk)
         3381                                            (talk-start talk)
         3382                                            (talk-end talk)
         3383                                            #:webcam-size
         3384                                            (talk-webcam-size talk))
         3385                         file-name))
         3386         (opening (opening (talk-title talk) (talk-speaker talk))))
         3387     (video-with-opening/closing file-name raw
         3388                                 opening closing.webm)))&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;a href=&quot;https://gitlab.inria.fr/guix-hpc/website/-/blob/6977da4618814c790e767618da5cf9ec2cab0742/doc/atelier-reproductibilit%C3%A9/render-videos.scm#L313-319&quot;&gt;very last
         3389 bit&lt;/a&gt;
         3390 iterates over the talks and returns a manifest containing all the final
         3391 videos.  Now we can build the ready-to-be-published videos, all at once:&lt;/p&gt;&lt;pre&gt;&lt;code&gt;$ guix build -m render-videos.scm
         3392 [… time passes…]
         3393 /gnu/store/…-emmanuel-agullo.webm
         3394 /gnu/store/…-francois-rue.webm
         3395 …&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&quot;https://hpc.guix.info/events/2021/atelier-reproductibilité-environnements/&quot;&gt;Voilà!&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img alt=&quot;Image of an old TV screen showing a video opening.&quot; src=&quot;https://guix.gnu.org/static/blog/img/2021-video-tv-screen.png&quot; /&gt;&lt;/p&gt;&lt;h1&gt;Why all the fuss?&lt;/h1&gt;&lt;p&gt;OK, maybe you’re thinking “this is just another hackish script to fiddle
         3396 with videos”, and that’s right!  It’s also worth mentioning another
         3397 approach: &lt;a href=&quot;https://lang.video/&quot;&gt;Racket’s video language&lt;/a&gt;, which is
         3398 designed to manipulate video abstractions, similar to GES but with a
         3399 sweet high-level functional interface.&lt;/p&gt;&lt;p&gt;But look, this one’s different: it’s
         3400 self-contained, it’s reproducible, and it has the right abstraction
         3401 level.  Self-contained is a big thing; it means you can run it and it
         3402 knows what software to deploy, what environment variables to set, and so
         3403 on, for each step of the pipeline.  Granted, it could be simplified with
         3404 appropriate high-level interfaces in Guix.  But remember: the
         3405 alternative is a makefile (“deployment-unaware”) completed by a &lt;code&gt;README&lt;/code&gt;
         3406 file giving a vague idea of the dependencies needed.  The reproducible
         3407 bit is pretty nice too (especially for a workshop &lt;em&gt;on&lt;/em&gt; reproducibility).
         3408 It also means there’s caching: videos or intermediate byproducts already
         3409 in the store don’t need to be recomputed.  Last, we have access to a
         3410 general-purpose programming language where we can &lt;em&gt;build abstractions&lt;/em&gt;,
         3411 such as the &lt;code&gt;&amp;lt;talk&amp;gt;&lt;/code&gt; data type, that makes the whole thing more pleasant
         3412 to work with and more maintainable.&lt;/p&gt;&lt;p&gt;Hopefully that’ll inspire you to have a reproducible video pipeline for
         3413 your next on-line event, or maybe that’ll inspire you to replace your
         3414 old makefile and shelly habits for data processing!&lt;/p&gt;&lt;p&gt;High-performance computing (HPC) people might be wondering how to go
         3415 from here and build “computing-resource-aware” or
         3416 “storage-resource-aware” pipelines where each computing step could be
         3417 submitted to the job scheduler of an HPC cluster and use distributed
         3418 file systems for intermediate results rather than &lt;code&gt;/gnu/store&lt;/code&gt;.  If
         3419 you’re one of these folks, do take a look at how the &lt;a href=&quot;https://guixwl.org/&quot;&gt;Guix Workflow
         3420 Language&lt;/a&gt; addresses these issues.&lt;/p&gt;&lt;h1&gt;Acknowledgments&lt;/h1&gt;&lt;p&gt;Thanks to Konrad Hinsen for valuable feedback on an earlier draft.&lt;/p&gt;&lt;h4&gt;About GNU Guix&lt;/h4&gt;&lt;p&gt;&lt;a href=&quot;https://guix.gnu.org&quot;&gt;GNU Guix&lt;/a&gt; is a transactional package manager and
         3421 an advanced distribution of the GNU system that &lt;a href=&quot;https://www.gnu.org/distros/free-system-distribution-guidelines.html&quot;&gt;respects user
         3422 freedom&lt;/a&gt;.
         3423 Guix can be used on top of any system running the Hurd or the Linux
         3424 kernel, or it can be used as a standalone operating system distribution
         3425 for i686, x86_64, ARMv7, AArch64 and POWER9 machines.&lt;/p&gt;&lt;p&gt;In addition to standard package management features, Guix supports
         3426 transactional upgrades and roll-backs, unprivileged package management,
         3427 per-user profiles, and garbage collection.  When used as a standalone
         3428 GNU/Linux distribution, Guix offers a declarative, stateless approach to
         3429 operating system configuration management.  Guix is highly customizable
         3430 and hackable through &lt;a href=&quot;https://www.gnu.org/software/guile&quot;&gt;Guile&lt;/a&gt;
         3431 programming interfaces and extensions to the
         3432 &lt;a href=&quot;http://schemers.org&quot;&gt;Scheme&lt;/a&gt; language.&lt;/p&gt; </description> 
         3433         <pubDate>Fri, 11 Jun 2021 17:00:00 +0000</pubDate>
         3434 
         3435 </item> 
         3436 <item>
         3437         <title>www-zh-cn @ Savannah: Welcome our new member - jiderlesi</title>
         3438         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10008</guid>
         3439         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10008</link>
         3440      <description>  &lt;p&gt;Dear www-zh-cn-translators:
         3441 &lt;br /&gt;
         3442 &lt;/p&gt;
         3443 &lt;p&gt;It&#39;s a good time to welcome our new member:
         3444 &lt;br /&gt;
         3445 &lt;/p&gt;
         3446 &lt;p&gt;User Details:
         3447 &lt;br /&gt;
         3448  -------------
         3449 &lt;br /&gt;
         3450 Name:    Yuqi Feng
         3451 &lt;br /&gt;
         3452 Login:   jiderlesi
         3453 &lt;br /&gt;
         3454 Email:   &lt;a href=&quot;mailto:jiderlesi@outlook.de&quot;&gt;jiderlesi@outlook.de&lt;/a&gt; &amp;lt;mailto:jiderlesi@outlook.de&amp;gt;
         3455 &lt;br /&gt;
         3456 &lt;/p&gt;
         3457 &lt;p&gt;We thank jiderlesi for her/his commitment for contributing to GNU Chinese Translation.
         3458 &lt;br /&gt;
         3459 We wish jiderlesi has a wonderful and successful free journey.&lt;br /&gt;
         3460 &lt;/p&gt; </description> 
         3461         <pubDate>Wed, 09 Jun 2021 07:41:35 +0000</pubDate>
         3462 
         3463 </item> 
         3464 <item>
         3465         <title>GNU Health: IFMSA Bangladesh joins the GNU Health Alliance</title>
         3466         <guid>http://meanmicio.org/?p=2308</guid>
         3467         <link>https://meanmicio.org/2021/06/07/ifmsa-bangladesh-joins-the-gnu-health-alliance/</link>
         3468      <description>  &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/banner-ifmsa-alliance.png&quot;&gt;&lt;img alt=&quot;The non-profit organization with 3500+ medical students and 65 universities across the country is now part of the GNU Health Alliance of Academic and Research Institutions&quot; class=&quot;wp-image-2313&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/banner-ifmsa-alliance.png?w=960&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;The non-profit organization with 3500+ medical students and 65 universities across the country is now part of the GNU Health Alliance of Academic and Research Institutions&lt;/figcaption&gt;&lt;/figure&gt;
         3469 
         3470 
         3471 
         3472 &lt;p&gt;It’s a great day for Bangladesh. It’s a great day for public health! Today, &lt;a href=&quot;https://www.gnusolidario.org&quot;&gt;GNU Solidario&lt;/a&gt; and the International Federation of Medical Students Association, &lt;a href=&quot;http://ifmsabd.org/&quot;&gt;IFMSA Bangladesh&lt;/a&gt;, have signed an initial &lt;strong&gt;5-year&lt;/strong&gt; partnership on the grounds of the &lt;strong&gt;GNU Health Alliance of Academic and Research Institutions&lt;/strong&gt;.&lt;/p&gt;
         3473 
         3474 
         3475 
         3476 &lt;p&gt;IFMSA Bangladesh is a non-for-profit, non-political organization that comprises &lt;strong&gt;3500+ medical students from over 65 schools of Medicine across Bangladesh.&lt;/strong&gt;  They are a solid organization, very well organized, with different standing committees and support divisions.  &lt;/p&gt;
         3477 
         3478 
         3479 
         3480 &lt;p&gt;IFMSA vision and mission fits very well with those of GNU Solidario advancement of &lt;strong&gt;Social Medicine&lt;/strong&gt;. IFMSA has projects on Public Health (reproductive health; personal hygiene; cardiovascular disease and cancer prevention, … ), Human rights and peace (campaigns to end violence against women;  protection of the underprivileged elders and children.. ). I am positive the GNU Health ecosystem will help them reach their goals in each of their projects!&lt;/p&gt;
         3481 
         3482 
         3483 
         3484 &lt;p&gt;The GNU Health Alliance of Academic and Research Institutions is extremely happy to have IFMSA Bangladesh as a member. IFMSA Bangladesh joins now a group of outstanding researchers and institutions that have made phenomenal advancements in health informatics and contributions to public health. Some examples:&lt;/p&gt;
         3485 
         3486 
         3487 
         3488 &lt;ul&gt;&lt;li&gt;The &lt;strong&gt;National University of Entre Ríos (UNER) &lt;/strong&gt;has been awarded the project to use GNU Health as a real-time observatory for the &lt;strong&gt;COVID-19&lt;/strong&gt; pandemic, by the Government of Argentina. In the context of the GNU Health Alliance, UNER has also developed the oral health package for GNU Health; and implemented the GNU Health Hospital Management Information System component in many public health care institutions in the country. The team from the UNER has traveled to Cameroon to implement GNU Health HMIS in several health facilities in the country, as well as training their health professionals.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Thymbra&lt;/strong&gt; Healthcare (R&amp;amp;D Labs) has contributed the &lt;strong&gt;medical genetics&lt;/strong&gt; and &lt;strong&gt;precision medicine&lt;/strong&gt;. Currently, Thymbra is focused on &lt;strong&gt;MyGNUHealth&lt;/strong&gt;, the GNU Health Personal Health Record (PHR) for &lt;strong&gt;KDE&lt;/strong&gt; plasma mobile and desktops devices, and working on the integration of MyGNUHealth with the &lt;strong&gt;PinePhone&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Khadas&lt;/strong&gt; has signed an agreement to work on with the GNU Health community in &lt;strong&gt;Artificial Intelligence&lt;/strong&gt; and medical imaging, as well on integrating Single Board Computers (SBCs) with GNU Health (the GNU Health in a Box project)&lt;/li&gt;&lt;/ul&gt;
         3489 
         3490 
         3491 
         3492 &lt;p&gt;The fact that an association of 3500+ medical students embrace GNU Health means that all these bright future doctors from Bangladesh will also bear the ethics and philosophy of Libre Software to their communities.  Public Health can not be run by private corporations, nor by proprietary software.&lt;/p&gt;
         3493 
         3494 
         3495 
         3496 &lt;p&gt;IFMSA has 5 years ahead to make a wonderful revolution in the public health care system. Health institutions will be able to implement state-of-the-art health informatics. Medical students can learn GNU Health inside-out, and conduct workshops across the country in the Libre digital health ecosystem. Most importantly, I am positive GNU Health will provide a wonderful opportunity to improve the health promotion and disease prevention campaigns in Bangladesh.&lt;/p&gt;
         3497 
         3498 
         3499 
         3500 &lt;p&gt;As the president of GNU Solidario, I am truly honored and looking forward to start collaborating with our colleagues from Bangladesh, and, when the pandemic is over, be able to meet them in person. &lt;/p&gt;
         3501 
         3502 
         3503 
         3504 &lt;p&gt;My most sincere appreciation to IFMSA Bangladesh for becoming part of the GNU Health community. To the 3500+ members, a very warm welcome! &lt;/p&gt;
         3505 
         3506 
         3507 
         3508 &lt;p&gt;Let’s keep building communities that foster universal health care, freedom and social medicine around the world.&lt;/p&gt;
         3509 
         3510 
         3511 
         3512 &lt;p&gt;For further information about the GNU Health Alliance of Academic and Research Institutions, please contact us at:&lt;/p&gt;
         3513 
         3514 
         3515 
         3516 &lt;div class=&quot;wp-block-columns&quot;&gt;
         3517 &lt;div class=&quot;wp-block-column&quot;&gt;
         3518 &lt;p&gt;&lt;strong&gt;GNU Health Alliance&lt;/strong&gt;: alliance@gnuhealth.org&lt;/p&gt;
         3519 &lt;/div&gt;
         3520 
         3521 
         3522 
         3523 &lt;div class=&quot;wp-block-column&quot;&gt;
         3524 &lt;p&gt;&lt;strong&gt;Press&lt;/strong&gt;: press@gnuhealth.org&lt;/p&gt;
         3525 &lt;/div&gt;
         3526 
         3527 
         3528 
         3529 &lt;div class=&quot;wp-block-column&quot;&gt;
         3530 &lt;p&gt;&lt;strong&gt;General Information&lt;/strong&gt; : info@gnuhealth.org&lt;/p&gt;
         3531 &lt;/div&gt;
         3532 &lt;/div&gt;
         3533 
         3534 
         3535 
         3536 &lt;p&gt;&lt;/p&gt;
         3537 
         3538 
         3539 
         3540 &lt;p&gt;&lt;/p&gt; </description> 
         3541         <pubDate>Mon, 07 Jun 2021 18:44:43 +0000</pubDate>
         3542 
         3543 </item> 
         3544 <item>
         3545         <title>edma @ Savannah: GNU/EDMA 0.19.1. Alpha Release</title>
         3546         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10007</guid>
         3547         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10007</link>
         3548      <description>  &lt;p&gt;GNU/EDMA 0.19.1 has been released as an Alpha Version. This version tries to fix the long standing issue with 64bits platforms.
         3549 &lt;br /&gt;
         3550 &lt;/p&gt;
         3551 &lt;p&gt;In order to fix that problem this version adds a dependency on `libffi`.
         3552 &lt;br /&gt;
         3553 &lt;/p&gt;
         3554 &lt;p&gt;This is an alpha release and it is still under test and can be downloaded from:
         3555 &lt;br /&gt;
         3556 &lt;/p&gt;
         3557 &lt;p&gt;&lt;a href=&quot;http://alpha.gnu.org/gnu/edma/&quot;&gt;http://alpha.gnu.org/gnu/edma/&lt;/a&gt;
         3558 &lt;br /&gt;
         3559 &lt;/p&gt;
         3560 &lt;p&gt;Any feedback or comment is welcomed
         3561 &lt;br /&gt;
         3562 &lt;/p&gt;
         3563 &lt;p&gt;Best Regards
         3564 &lt;br /&gt;
         3565 David&lt;br /&gt;
         3566 &lt;/p&gt; </description> 
         3567         <pubDate>Mon, 07 Jun 2021 07:14:21 +0000</pubDate>
         3568 
         3569 </item> 
         3570 <item>
         3571         <title>gsl @ Savannah: GNU Scientific Library 2.7 released</title>
         3572         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10006</guid>
         3573         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10006</link>
         3574      <description>  &lt;p&gt;Version 2.7 of the GNU Scientific Library (GSL) is now available. GSL provides a large collection of routines for numerical computing in C.
         3575 &lt;br /&gt;
         3576 &lt;/p&gt;
         3577 &lt;p&gt;This release introduces some new features and fixes several bugs. The full NEWS file entry is appended below.
         3578 &lt;br /&gt;
         3579 &lt;/p&gt;
         3580 &lt;p&gt;The file details for this release are:
         3581 &lt;br /&gt;
         3582 &lt;/p&gt;
         3583 &lt;p&gt;&lt;a href=&quot;ftp://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz&quot;&gt;ftp://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz&lt;/a&gt;
         3584 &lt;br /&gt;
         3585 &lt;a href=&quot;ftp://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz.sig&quot;&gt;ftp://ftp.gnu.org/gnu/gsl/gsl-2.7.tar.gz.sig&lt;/a&gt;
         3586 &lt;br /&gt;
         3587 &lt;/p&gt;
         3588 &lt;p&gt;The GSL project homepage is &lt;a href=&quot;http://www.gnu.org/software/gsl/&quot;&gt;http://www.gnu.org/software/gsl/&lt;/a&gt;
         3589 &lt;br /&gt;
         3590 &lt;/p&gt;
         3591 &lt;p&gt;GSL is free software distributed under the GNU General Public License.
         3592 &lt;br /&gt;
         3593 &lt;/p&gt;
         3594 &lt;p&gt;Thanks to everyone who reported bugs and contributed improvements.
         3595 &lt;br /&gt;
         3596 &lt;/p&gt;
         3597 &lt;p&gt;Patrick Alken
         3598 &lt;br /&gt;
         3599 &lt;/p&gt;
         3600 &lt;p&gt;-------------------------------
         3601 &lt;br /&gt;
         3602 &lt;/p&gt;
         3603 &lt;ul&gt;
         3604 &lt;li&gt;What is new in gsl-2.7:
         3605 &lt;/li&gt;
         3606 &lt;/ul&gt;
         3607 &lt;ul&gt;
         3608 &lt;li&gt;&lt;ul&gt;
         3609 &lt;li&gt;fixed doc bug for gsl_histogram_min_bin (lhcsky at 163.com)
         3610 &lt;/li&gt;
         3611 &lt;/ul&gt;
         3612 &lt;/li&gt;
         3613 &lt;/ul&gt;
         3614 &lt;ul&gt;
         3615 &lt;li&gt;&lt;ul&gt;
         3616 &lt;li&gt;fixed &lt;em&gt;&lt;a href=&quot;http://savannah.gnu.org/bugs/?60335&quot;&gt;bug #60335&lt;/a&gt;&lt;/em&gt; (spmatrix test failure, J. Lamb)
         3617 &lt;/li&gt;
         3618 &lt;/ul&gt;
         3619 &lt;/li&gt;
         3620 &lt;/ul&gt;
         3621 &lt;ul&gt;
         3622 &lt;li&gt;&lt;ul&gt;
         3623 &lt;li&gt;fixed &lt;em&gt;&lt;a href=&quot;http://savannah.gnu.org/bugs/?36577&quot;&gt;bug #36577&lt;/a&gt;&lt;/em&gt;
         3624 &lt;/li&gt;
         3625 &lt;/ul&gt;
         3626 &lt;/li&gt;
         3627 &lt;/ul&gt;
         3628 &lt;ul&gt;
         3629 &lt;li&gt;&lt;ul&gt;
         3630 &lt;li&gt;clarified documentation on interpolation accelerators (V. Krishnan)
         3631 &lt;/li&gt;
         3632 &lt;/ul&gt;
         3633 &lt;/li&gt;
         3634 &lt;/ul&gt;
         3635 &lt;ul&gt;
         3636 &lt;li&gt;&lt;ul&gt;
         3637 &lt;li&gt;fixed &lt;em&gt;&lt;a href=&quot;http://savannah.gnu.org/bugs/?45521&quot;&gt;bug #45521&lt;/a&gt;&lt;/em&gt; (erroneous GSL_ERROR_NULL in ode-initval2, thanks to M. Sitte)
         3638 &lt;/li&gt;
         3639 &lt;/ul&gt;
         3640 &lt;/li&gt;
         3641 &lt;/ul&gt;
         3642 &lt;ul&gt;
         3643 &lt;li&gt;&lt;ul&gt;
         3644 &lt;li&gt;fixed doc &lt;em&gt;&lt;a href=&quot;http://savannah.gnu.org/bugs/?59758&quot;&gt;bug #59758&lt;/a&gt;&lt;/em&gt;
         3645 &lt;/li&gt;
         3646 &lt;/ul&gt;
         3647 &lt;/li&gt;
         3648 &lt;/ul&gt;
         3649 &lt;ul&gt;
         3650 &lt;li&gt;&lt;ul&gt;
         3651 &lt;li&gt;fixed &lt;em&gt;&lt;a href=&quot;http://savannah.gnu.org/bugs/?58202&quot;&gt;bug #58202&lt;/a&gt;&lt;/em&gt; (rstat median for n=5)
         3652 &lt;/li&gt;
         3653 &lt;/ul&gt;
         3654 &lt;/li&gt;
         3655 &lt;/ul&gt;
         3656 &lt;ul&gt;
         3657 &lt;li&gt;&lt;ul&gt;
         3658 &lt;li&gt;added support for native C complex number types in gsl_complex when using a C11 compiler
         3659 &lt;/li&gt;
         3660 &lt;/ul&gt;
         3661 &lt;/li&gt;
         3662 &lt;/ul&gt;
         3663 &lt;ul&gt;
         3664 &lt;li&gt;&lt;ul&gt;
         3665 &lt;li&gt;upgraded to autoconf 2.71, automake 1.16.3, libtool 2.4.6
         3666 &lt;/li&gt;
         3667 &lt;/ul&gt;
         3668 &lt;/li&gt;
         3669 &lt;/ul&gt;
         3670 &lt;ul&gt;
         3671 &lt;li&gt;&lt;ul&gt;
         3672 &lt;li&gt;updated exponential fitting example for nonlinear least squares
         3673 &lt;/li&gt;
         3674 &lt;/ul&gt;
         3675 &lt;/li&gt;
         3676 &lt;/ul&gt;
         3677 &lt;ul&gt;
         3678 &lt;li&gt;&lt;ul&gt;
         3679 &lt;li&gt;added banded LU decomposition and solver (gsl_linalg_LU_band)
         3680 &lt;/li&gt;
         3681 &lt;/ul&gt;
         3682 &lt;/li&gt;
         3683 &lt;/ul&gt;
         3684 &lt;ul&gt;
         3685 &lt;li&gt;&lt;ul&gt;
         3686 &lt;li&gt;New functions added to the library:
         3687 &lt;/li&gt;
         3688 &lt;/ul&gt;
         3689 &lt;/li&gt;
         3690 &lt;/ul&gt;&lt;p&gt;    - gsl_matrix_norm1
         3691 &lt;br /&gt;
         3692     - gsl_spmatrix_norm1
         3693 &lt;br /&gt;
         3694     - gsl_matrix_complex_conjtrans_memcpy
         3695 &lt;br /&gt;
         3696     - gsl_linalg_QL: decomp, unpack
         3697 &lt;br /&gt;
         3698     - gsl_linalg_complex_QR_* (thanks to Christian Krueger)
         3699 &lt;br /&gt;
         3700     - gsl_vector_sum
         3701 &lt;br /&gt;
         3702     - gsl_matrix_scale_rows
         3703 &lt;br /&gt;
         3704     - gsl_matrix_scale_columns
         3705 &lt;br /&gt;
         3706     - gsl_multilarge_linear_matrix_ptr
         3707 &lt;br /&gt;
         3708     - gsl_multilarge_linear_rhs_ptr
         3709 &lt;br /&gt;
         3710     - gsl_spmatrix_dense_add (renamed from gsl_spmatrix_add_to_dense)
         3711 &lt;br /&gt;
         3712     - gsl_spmatrix_dense_sub
         3713 &lt;br /&gt;
         3714     - gsl_linalg_cholesky_band: solvem, svxm, scale, scale_apply
         3715 &lt;br /&gt;
         3716     - gsl_linalg_QR_UD: decomp, lssolve
         3717 &lt;br /&gt;
         3718     - gsl_linalg_QR_UU: decomp, lssolve,QTvec
         3719 &lt;br /&gt;
         3720     - gsl_linalg_QR_UZ: decomp
         3721 &lt;br /&gt;
         3722     - gsl_multifit_linear_lcurvature
         3723 &lt;br /&gt;
         3724     - gsl_spline2d_eval_extrap
         3725 &lt;br /&gt;
         3726 &lt;/p&gt;
         3727 &lt;ul&gt;
         3728 &lt;li&gt;&lt;ul&gt;
         3729 &lt;li&gt;bug fix in checking vector lengths in gsl_vector_memcpy (dieggsy@pm.me)
         3730 &lt;/li&gt;
         3731 &lt;/ul&gt;
         3732 &lt;/li&gt;
         3733 &lt;/ul&gt;
         3734 &lt;ul&gt;
         3735 &lt;li&gt;&lt;ul&gt;
         3736 &lt;li&gt;made gsl_sf_legendre_array_index() inline and documented gsl_sf_legendre_nlm()|
         3737 &lt;/li&gt;
         3738 &lt;/ul&gt;
         3739 &lt;/li&gt;
         3740 &lt;/ul&gt; </description> 
         3741         <pubDate>Sat, 05 Jun 2021 15:02:45 +0000</pubDate>
         3742 
         3743 </item> 
         3744 <item>
         3745         <title>poke @ Savannah: GNU poke 1.3 released</title>
         3746         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10004</guid>
         3747         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10004</link>
         3748      <description>  &lt;p&gt;I am happy to announce a new release of GNU poke, version 1.3.
         3749 &lt;br /&gt;
         3750 &lt;/p&gt;
         3751 &lt;p&gt;This is a bug fix release in the poke 1.x series.
         3752 &lt;br /&gt;
         3753 &lt;/p&gt;
         3754 &lt;p&gt;See the file NEWS in the released tarball for a detailed list of
         3755 &lt;br /&gt;
         3756 changes in this release.
         3757 &lt;br /&gt;
         3758 &lt;/p&gt;
         3759 &lt;p&gt;The tarball poke-1.3.tar.gz is now available at
         3760 &lt;br /&gt;
         3761 &lt;a href=&quot;https://ftp.gnu.org/gnu/poke/poke-1.3.tar.gz&quot;&gt;https://ftp.gnu.org/gnu/poke/poke-1.3.tar.gz&lt;/a&gt;.
         3762 &lt;br /&gt;
         3763 &lt;/p&gt;
         3764 &lt;p&gt;  GNU poke (&lt;a href=&quot;http://www.jemarch.net/poke&quot;&gt;http://www.jemarch.net/poke&lt;/a&gt;) is an interactive, extensible
         3765 &lt;br /&gt;
         3766   editor for binary data.  Not limited to editing basic entities such
         3767 &lt;br /&gt;
         3768   as bits and bytes, it provides a full-fledged procedural,
         3769 &lt;br /&gt;
         3770   interactive programming language designed to describe data
         3771 &lt;br /&gt;
         3772   structures and to operate on them.
         3773 &lt;br /&gt;
         3774 &lt;/p&gt;
         3775 &lt;p&gt;This release is the product of a month of work resulting in 41
         3776 &lt;br /&gt;
         3777 commits, made by 4 contributors.
         3778 &lt;br /&gt;
         3779 &lt;/p&gt;
         3780 &lt;p&gt;Thanks to the people who contributed with code and/or documentation to
         3781 &lt;br /&gt;
         3782 this release.  In certain but no significant order they are:
         3783 &lt;br /&gt;
         3784 &lt;/p&gt;
         3785 &lt;p&gt;  Mohammad-Reza Nabipoor &amp;lt;m.nabipoor@yahoo.com&amp;gt;
         3786 &lt;br /&gt;
         3787   Egeyar Bagcioglu &amp;lt;egeyar@gmail.com&amp;gt;
         3788 &lt;br /&gt;
         3789   Konstantinos Chasialis &amp;lt;sdi1600195@di.uoa.gr&amp;gt;  
         3790 &lt;br /&gt;
         3791 &lt;/p&gt;
         3792 &lt;p&gt;As always, thank you all!
         3793 &lt;br /&gt;
         3794 &lt;/p&gt;
         3795 &lt;p&gt;And this is all for now.
         3796 &lt;br /&gt;
         3797 Happy poking!
         3798 &lt;br /&gt;
         3799 &lt;/p&gt;
         3800 &lt;p&gt;--
         3801 &lt;br /&gt;
         3802 Jose E. Marchesi
         3803 &lt;br /&gt;
         3804 Frankfurt am Main
         3805 &lt;br /&gt;
         3806 5 June 2021&lt;br /&gt;
         3807 &lt;/p&gt; </description> 
         3808         <pubDate>Sat, 05 Jun 2021 10:55:55 +0000</pubDate>
         3809 
         3810 </item> 
         3811 <item>
         3812         <title>GNU Health: Liberating our mobile computing</title>
         3813         <guid>http://meanmicio.org/?p=2288</guid>
         3814         <link>https://meanmicio.org/2021/06/04/liberating-our-mobile-computing/</link>
         3815      <description>  &lt;p&gt;Last week I got the PineTime, a free/libre smartwatch. In the past months, I’ve been working on MyGNUHealth and porting it to the PinePhone.&lt;/p&gt;
         3816 
         3817 
         3818 
         3819 &lt;p&gt;Why doing so? Because running free/libre operating systems and having control of the applications on your mobile phones and wearables is the right thing to do.&lt;/p&gt;
         3820 
         3821 
         3822 
         3823 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/pinetime_pinephone_kdeplasma1.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2292&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/pinetime_pinephone_kdeplasma1.jpg?w=1024&quot; /&gt;&lt;/a&gt;&lt;/figure&gt;
         3824 
         3825 
         3826 
         3827 &lt;p&gt;Yesterday, I told myself: “This is the day to move away from Android and take control over my phone”. And I made the switch. Now I am using a PinePhone on Manjaro running KDE plasma mobile. I have also switched my smartwatch to the PineTime.&lt;/p&gt;
         3828 
         3829 
         3830 
         3831 &lt;p&gt;The mobile phone and smartwatch were the last pieces of hardware and software to liberate. All my computing is now libre. No proprietary operating systems, no closed-source applications. Not on my laptop, not in my desktop, not on my phone.&lt;/p&gt;
         3832 
         3833 
         3834 
         3835 &lt;h3&gt;Facing and overcoming the social pressure&lt;/h3&gt;
         3836 
         3837 
         3838 
         3839 &lt;p&gt;At the moment I ditched Android, I felt an immense sense of relief and happiness. It took me back 30 years ago, early FreeBSD and GNU/Linux times, being in control of every component of my computer.&lt;/p&gt;
         3840 
         3841 
         3842 
         3843 &lt;p&gt;We can not put our daily life activities, electronic transactions and data  in the hands of the corporations. Android phones shipped today are full of “bloatware” and closed-source applications. We can safely call most of those applications spyware. &lt;/p&gt;
         3844 
         3845 
         3846 
         3847 &lt;p&gt;The PinePhone is a libre computer, with a phone. All the applications are Libre Software. I have SSH, most of the cool KDE plasma applications I enjoy in the desktop, I can have them now in my pocket. Again, most importantly, I am free.&lt;/p&gt;
         3848 
         3849 
         3850 
         3851 &lt;p&gt;Of course, freedom comes with a price. The price to face social and corporate pressure. For instance, somebody asked me yesterday how to deal with banking without the app. My answer was, I never used an app for banking. Running a proprietary financial application is shooting at the heart of your privacy. If your bank does not let you do your transactions from any standard web browser, then change your bank. Quick digression… the financial system and the big technological corporations are desperately trying to get rid of good all coins and bills. This is yet another attack on our privacy. Nobody needs to know when, where and what I buy. &lt;/p&gt;
         3852 
         3853 
         3854 
         3855 &lt;h3&gt;A brighter future depends on us&lt;/h3&gt;
         3856 
         3857 
         3858 
         3859 &lt;p&gt;Some people might argue that this technology might not be ready for prime time, yet. I would say that I am ok with it, and the more we join, the more feedback we provide, and the better end result we’ll get.&lt;/p&gt;
         3860 
         3861 
         3862 
         3863 &lt;p&gt;The Pine64 project is mainly a community-oriented ecosystem. Its hardware, operating system and applications are from the community and for the community. I am developing MyGNUHealth Personal Health Record to be run on KDE Plasma, both for desktop and for the PinePhone and other Libre mobile devices. It is my commitment with freedom, privacy and universal healthcare to deliver health informatics in Libre, privacy focused platforms that anyone can adopt.&lt;/p&gt;
         3864 
         3865 
         3866 
         3867 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/pinetime_mygnuhealth_pinephone.jpg&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2294&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/pinetime_mygnuhealth_pinephone.jpg?w=1024&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;MyGNUHealth Personal Health Record running on the Desktop and on the PinePhone. The PineTime smartwatch as the next companion for MyGNUHealth. All these components are privacy focused, Free/Libre Software and hardware.&lt;/figcaption&gt;&lt;/figure&gt;
         3868 
         3869 
         3870 
         3871 &lt;p&gt;It depends on you to be prisoner of the corporation and massive surveillance systems, or to be in full control of your programming, health information and life.  It takes commitment to achieve it… some components might be too bleeding edge or the camera might not have the highest resolutions and you won’t have the Whatsapp “app” (removing that application would actually be a blessing). It’s a very small price to pay for freedom and privacy. It’s a very small price to pay for the advancement of our society.&lt;/p&gt;
         3872 
         3873 
         3874 
         3875 &lt;figure class=&quot;wp-block-image size-large is-style-default&quot;&gt;&lt;a href=&quot;https://meanmicio.files.wordpress.com/2021/06/siglo_pinetime_firmware_upgrade.png&quot;&gt;&lt;img alt=&quot;&quot; class=&quot;wp-image-2296&quot; src=&quot;https://meanmicio.files.wordpress.com/2021/06/siglo_pinetime_firmware_upgrade.png?w=1024&quot; /&gt;&lt;/a&gt;&lt;figcaption&gt;InfiniTime firmware upgrade using Siglo. &lt;/figcaption&gt;&lt;/figure&gt;
         3876 
         3877 
         3878 
         3879 &lt;p&gt;It’s been many years since I’ve been in the look out for a truly libre phone. After many projects that succumbed, the PinePhone is the first one that has gained momentum. Please support the PinePhone project. Support KDE plasma mobile. Support Arch, Manjaro, openSUSE, FreeBSD or your favorite Libre operating system. Support those who make Libre convergent applications that can be run on mobile devices, like Kirigami. Support InfiniTime and any free/libre firmware for smartwatches, as well as their companions as Siglo or Amazfish.&lt;/p&gt;
         3880 
         3881 
         3882 
         3883 &lt;p&gt;The future of Libre mobile computing is now, more than ever, in your hands.&lt;/p&gt;
         3884 
         3885 
         3886 
         3887 &lt;p&gt;Happy and healthy hacking.&lt;/p&gt; </description> 
         3888         <pubDate>Fri, 04 Jun 2021 15:45:19 +0000</pubDate>
         3889 
         3890 </item> 
         3891 <item>
         3892         <title>gnuastro @ Savannah: Gnuastro 0.15 released</title>
         3893         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10002</guid>
         3894         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10002</link>
         3895      <description>  &lt;p&gt;The 15th release of Gnuastro is now available. See the &lt;a href=&quot;https://lists.gnu.org/archive/html/info-gnuastro/2021-05/msg00000.html&quot;&gt;full announcement&lt;/a&gt; for more.&lt;br /&gt;
         3896 &lt;/p&gt; </description> 
         3897         <pubDate>Sun, 30 May 2021 23:41:45 +0000</pubDate>
         3898 
         3899 </item> 
         3900 <item>
         3901         <title>m4 @ Savannah: GNU M4 1.4.19 released [stable]</title>
         3902         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=10001</guid>
         3903         <link>http://savannah.gnu.org/forum/forum.php?forum_id=10001</link>
         3904      <description>  &lt;p&gt;See the release announcement here:
         3905 &lt;br /&gt;
         3906 &lt;a href=&quot;https://lists.gnu.org/archive/html/m4-announce/2021-05/msg00002.html&quot;&gt;https://lists.gnu.org/archive/html/m4-announce/2021-05/msg00002.html&lt;/a&gt;&lt;br /&gt;
         3907 &lt;/p&gt; </description> 
         3908         <pubDate>Sat, 29 May 2021 11:33:40 +0000</pubDate>
         3909 
         3910 </item> 
         3911 <item>
         3912         <title>FSF Events: Community meeting on the future of our IRC presence</title>
         3913         <guid>http://www.fsf.org/events/community-meeting-on-the-future-of-our-irc-presence</guid>
         3914         <link>http://www.fsf.org/events/community-meeting-on-the-future-of-our-irc-presence</link>
         3915     
         3916         <pubDate>Tue, 25 May 2021 18:49:28 +0000</pubDate>
         3917 
         3918 </item> 
         3919 <item>
         3920         <title>parallel @ Savannah: GNU Parallel 20210522 (&#39;Gaza&#39;) released</title>
         3921         <guid>http://savannah.gnu.org/forum/forum.php?forum_id=9999</guid>
         3922         <link>http://savannah.gnu.org/forum/forum.php?forum_id=9999</link>
         3923      <description>  &lt;p&gt;GNU Parallel 20210522 (&#39;Gaza&#39;) has been released. It is available for download at: lbry://@GnuParallel:4
         3924 &lt;br /&gt;
         3925 &lt;/p&gt;
         3926 &lt;p&gt;Please help spreading GNU Parallel by making a testimonial video like Juan Sierra Pons: &lt;a href=&quot;http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4&quot;&gt;http://www.elsotanillo.net/wp-content/uploads/GnuParallel_JuanSierraPons.mp4&lt;/a&gt;
         3927 &lt;br /&gt;
         3928 &lt;/p&gt;
         3929 &lt;p&gt;It does not have to be as detailed as Juan&#39;s. It is perfectly fine if you just say your name, and what field you are using GNU Parallel for.
         3930 &lt;br /&gt;
         3931 &lt;/p&gt;
         3932 &lt;p&gt;Quote of the month:
         3933 &lt;br /&gt;
         3934 &lt;/p&gt;
         3935 &lt;p&gt;  If you work with lots of files at once
         3936 &lt;br /&gt;
         3937   Take a good look at GNU parallel
         3938 &lt;br /&gt;
         3939   Change your life for the better
         3940 &lt;br /&gt;
         3941     -- French @notareverser@twitter
         3942 &lt;br /&gt;
         3943 &lt;/p&gt;
         3944 &lt;p&gt;New in this release:
         3945 &lt;br /&gt;
         3946 &lt;/p&gt;
         3947 &lt;ul&gt;
         3948 &lt;li&gt;--plus includes {%%regexp} and {##regexp}.
         3949 &lt;/li&gt;
         3950 &lt;/ul&gt;
         3951 &lt;ul&gt;
         3952 &lt;li&gt;Bug fixes and man page updates.
         3953 &lt;/li&gt;
         3954 &lt;/ul&gt;
         3955 &lt;p&gt;News about GNU Parallel:
         3956 &lt;br /&gt;
         3957 &lt;/p&gt;
         3958 &lt;ul&gt;
         3959 &lt;li&gt;Batch Calculate and Verify MD5 Checksum With GNU Parallel &lt;a href=&quot;https://omicx.cc/posts/2021-04-28-calculate-and-verify-md5-checksum-with-gnu-parallel/&quot;&gt;https://omicx.cc/posts/2021-04-28-calculate-and-verify-md5-checksum-with-gnu-parallel/&lt;/a&gt;
         3960 &lt;/li&gt;
         3961 &lt;/ul&gt;
         3962 &lt;ul&gt;
         3963 &lt;li&gt;HerrComp Gnu parallel, c++11 threads 2021 04 28 &lt;a href=&quot;https://www.youtube.com/watch?v=wDd9F9nn0qA&quot;&gt;https://www.youtube.com/watch?v=wDd9F9nn0qA&lt;/a&gt;
         3964 &lt;/li&gt;
         3965 &lt;/ul&gt;
         3966 &lt;ul&gt;
         3967 &lt;li&gt;Distributing embarrassingly parallel tasks GNU Parallel &lt;a href=&quot;https://ulhpc-tutorials.readthedocs.io/en/latest/sequential/gnu-parallel/&quot;&gt;https://ulhpc-tutorials.readthedocs.io/en/latest/sequential/gnu-parallel/&lt;/a&gt;
         3968 &lt;/li&gt;
         3969 &lt;/ul&gt;
         3970 &lt;ul&gt;
         3971 &lt;li&gt;Job Parallelization on Niagara &lt;a href=&quot;https://www.maryamdaryalal.com/post/job-parallelization-on-niagara&quot;&gt;https://www.maryamdaryalal.com/post/job-parallelization-on-niagara&lt;/a&gt;
         3972 &lt;/li&gt;
         3973 &lt;/ul&gt;
         3974 &lt;ul&gt;
         3975 &lt;li&gt;Use Parallel to split by line &lt;a href=&quot;https://madflex.de/use-parallel-to-split-by-line/&quot;&gt;https://madflex.de/use-parallel-to-split-by-line/&lt;/a&gt;
         3976 &lt;/li&gt;
         3977 &lt;/ul&gt;
         3978 &lt;ul&gt;
         3979 &lt;li&gt;m1 multi-core batch convert with gpu parallel + ffmpeg &lt;a href=&quot;https://www.youtube.com/watch?v=hAuc0YsXv6A&quot;&gt;https://www.youtube.com/watch?v=hAuc0YsXv6A&lt;/a&gt;
         3980 &lt;/li&gt;
         3981 &lt;/ul&gt;
         3982 &lt;p&gt;Get the book: GNU Parallel 2018 &lt;a href=&quot;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&quot;&gt;http://www.lulu.com/shop/ole-tange/gnu-parallel-2018/paperback/product-23558902.html&lt;/a&gt;
         3983 &lt;br /&gt;
         3984 &lt;/p&gt;
         3985 &lt;p&gt;GNU Parallel - For people who live life in the parallel lane.
         3986 &lt;br /&gt;
         3987 &lt;/p&gt;
         3988 &lt;p&gt;If you like GNU Parallel record a video testimonial: Say who you are, what you use GNU Parallel for, how it helps you, and what you like most about it. Include a command that uses GNU Parallel if you feel like it.
         3989 &lt;br /&gt;
         3990 &lt;/p&gt;
         3991 
         3992 &lt;h2&gt;About GNU Parallel&lt;/h2&gt;
         3993 
         3994 &lt;p&gt;GNU Parallel is a shell tool for executing jobs in parallel using one or more computers. A job can be a single command or a small script that has to be run for each of the lines in the input. The typical input is a list of files, a list of hosts, a list of users, a list of URLs, or a list of tables. A job can also be a command that reads from a pipe. GNU Parallel can then split the input and pipe it into commands in parallel.
         3995 &lt;br /&gt;
         3996 &lt;/p&gt;
         3997 &lt;p&gt;If you use xargs and tee today you will find GNU Parallel very easy to use as GNU Parallel is written to have the same options as xargs. If you write loops in shell, you will find GNU Parallel may be able to replace most of the loops and make them run faster by running several jobs in parallel. GNU Parallel can even replace nested loops.
         3998 &lt;br /&gt;
         3999 &lt;/p&gt;
         4000 &lt;p&gt;GNU Parallel makes sure output from the commands is the same output as you would get had you run the commands sequentially. This makes it possible to use output from GNU Parallel as input for other programs.
         4001 &lt;br /&gt;
         4002 &lt;/p&gt;
         4003 &lt;p&gt;For example you can run this to convert all jpeg files into png and gif files and have a progress bar:
         4004 &lt;br /&gt;
         4005 &lt;/p&gt;
         4006 &lt;p&gt;  parallel --bar convert {1} {1.}.{2} ::: *.jpg ::: png gif
         4007 &lt;br /&gt;
         4008 &lt;/p&gt;
         4009 &lt;p&gt;Or you can generate big, medium, and small thumbnails of all jpeg files in sub dirs:
         4010 &lt;br /&gt;
         4011 &lt;/p&gt;
         4012 &lt;p&gt;  find . -name &#39;*.jpg&#39; |
         4013 &lt;br /&gt;
         4014     parallel convert -geometry {2} {1} {1//}/thumb{2}_{1/} :::: - ::: 50 100 200
         4015 &lt;br /&gt;
         4016 &lt;/p&gt;
         4017 &lt;p&gt;You can find more about GNU Parallel at: &lt;a href=&quot;http://www.gnu.org/s/parallel/&quot;&gt;http://www.gnu.org/s/parallel/&lt;/a&gt;
         4018 &lt;br /&gt;
         4019 &lt;/p&gt;
         4020 &lt;p&gt;You can install GNU Parallel in just 10 seconds with:
         4021 &lt;br /&gt;
         4022 &lt;/p&gt;
         4023 &lt;p&gt;    $ (wget -O - pi.dk/3 || lynx -source pi.dk/3 || curl pi.dk/3/ || \
         4024 &lt;br /&gt;
         4025        fetch -o - &lt;a href=&quot;http://pi.dk/3&quot;&gt;http://pi.dk/3&lt;/a&gt; ) &amp;gt; install.sh
         4026 &lt;br /&gt;
         4027     $ sha1sum install.sh | grep c82233e7da3166308632ac8c34f850c0
         4028 &lt;br /&gt;
         4029     12345678 c82233e7 da316630 8632ac8c 34f850c0
         4030 &lt;br /&gt;
         4031     $ md5sum install.sh | grep ae3d7aac5e15cf3dfc87046cfc5918d2
         4032 &lt;br /&gt;
         4033     ae3d7aac 5e15cf3d fc87046c fc5918d2
         4034 &lt;br /&gt;
         4035     $ sha512sum install.sh | grep dfc00d823137271a6d96225cea9e89f533ff6c81f
         4036 &lt;br /&gt;
         4037     9c5198d5 31a3b755 b7910ece 3a42d206 c804694d fc00d823 137271a6 d96225ce
         4038 &lt;br /&gt;
         4039     a9e89f53 3ff6c81f f52b298b ef9fb613 2d3f9ccd 0e2c7bd3 c35978b5 79acb5ca
         4040 &lt;br /&gt;
         4041     $ bash install.sh
         4042 &lt;br /&gt;
         4043 &lt;/p&gt;
         4044 &lt;p&gt;Watch the intro video on &lt;a href=&quot;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&quot;&gt;http://www.youtube.com/playlist?list=PL284C9FF2488BC6D1&lt;/a&gt;
         4045 &lt;br /&gt;
         4046 &lt;/p&gt;
         4047 &lt;p&gt;Walk through the tutorial (man parallel_tutorial). Your command line will love you for it.
         4048 &lt;br /&gt;
         4049 &lt;/p&gt;
         4050 &lt;p&gt;When using programs that use GNU Parallel to process data for publication please cite:
         4051 &lt;br /&gt;
         4052 &lt;/p&gt;
         4053 &lt;p&gt;O. Tange (2018): GNU Parallel 2018, March 2018, &lt;a href=&quot;https://doi.org/10.5281/zenodo.1146014&quot;&gt;https://doi.org/10.5281/zenodo.1146014&lt;/a&gt;.
         4054 &lt;br /&gt;
         4055 &lt;/p&gt;
         4056 &lt;p&gt;If you like GNU Parallel:
         4057 &lt;br /&gt;
         4058 &lt;/p&gt;
         4059 &lt;ul&gt;
         4060 &lt;li&gt;Give a demo at your local user group/team/colleagues
         4061 &lt;/li&gt;
         4062 &lt;li&gt;Post the intro videos on Reddit/Diaspora*/forums/blogs/ Identi.ca/Google+/Twitter/Facebook/Linkedin/mailing lists
         4063 &lt;/li&gt;
         4064 &lt;li&gt;Get the merchandise &lt;a href=&quot;https://gnuparallel.threadless.com/designs/gnu-parallel&quot;&gt;https://gnuparallel.threadless.com/designs/gnu-parallel&lt;/a&gt;
         4065 &lt;/li&gt;
         4066 &lt;li&gt;Request or write a review for your favourite blog or magazine
         4067 &lt;/li&gt;
         4068 &lt;li&gt;Request or build a package for your favourite distribution (if it is not already there)
         4069 &lt;/li&gt;
         4070 &lt;li&gt;Invite me for your next conference
         4071 &lt;/li&gt;
         4072 &lt;/ul&gt;
         4073 &lt;p&gt;If you use programs that use GNU Parallel for research:
         4074 &lt;br /&gt;
         4075 &lt;/p&gt;
         4076 &lt;ul&gt;
         4077 &lt;li&gt;Please cite GNU Parallel in you publications (use --citation)
         4078 &lt;/li&gt;
         4079 &lt;/ul&gt;
         4080 &lt;p&gt;If GNU Parallel saves you money:
         4081 &lt;br /&gt;
         4082 &lt;/p&gt;
         4083 &lt;ul&gt;
         4084 &lt;li&gt;(Have your company) donate to FSF &lt;a href=&quot;https://my.fsf.org/donate/&quot;&gt;https://my.fsf.org/donate/&lt;/a&gt;
         4085 &lt;/li&gt;
         4086 &lt;/ul&gt;
         4087 
         4088 &lt;h2&gt;About GNU SQL&lt;/h2&gt;
         4089 
         4090 &lt;p&gt;GNU sql aims to give a simple, unified interface for accessing databases through all the different databases&#39; command line clients. So far the focus has been on giving a common way to specify login information (protocol, username, password, hostname, and port number), size (database and table size), and running queries.
         4091 &lt;br /&gt;
         4092 &lt;/p&gt;
         4093 &lt;p&gt;The database is addressed using a DBURL. If commands are left out you will get that database&#39;s interactive shell.
         4094 &lt;br /&gt;
         4095 &lt;/p&gt;
         4096 &lt;p&gt;When using GNU SQL for a publication please cite:
         4097 &lt;br /&gt;
         4098 &lt;/p&gt;
         4099 &lt;p&gt;O. Tange (2011): GNU SQL - A Command Line Tool for Accessing Different Databases Using DBURLs, ;login: The USENIX Magazine, April 2011:29-32.
         4100 &lt;br /&gt;
         4101 &lt;/p&gt;
         4102 
         4103 &lt;h2&gt;About GNU Niceload&lt;/h2&gt;
         4104 
         4105 &lt;p&gt;GNU niceload slows down a program when the computer load average (or other system activity) is above a certain limit. When the limit is reached the program will be suspended for some time. If the limit is a soft limit the program will be allowed to run for short amounts of time before being suspended again. If the limit is a hard limit the program will only be allowed to run when the system is below the limit.&lt;br /&gt;
         4106 &lt;/p&gt; </description> 
         4107         <pubDate>Sat, 22 May 2021 20:20:33 +0000</pubDate>
         4108 
         4109 </item> 
         4110 </channel>
         4111 </rss>