trying to fix

This commit is contained in:
Chris Cochrun 2022-01-03 12:41:35 -06:00
parent fa407dfeb6
commit e013d7569e
22945 changed files with 447936 additions and 0 deletions

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/9UCDXolZPAY" width="480" alt="thumbnail" title="The "Squid Game" Cryptocurrency is The Most Ridiculous Scam This Year" /></p>don't buy the squid game coin, its a scam, but that should be obvious.<br /><br />₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿<br /><br />Monero<br />45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436<br /><br />Bitcoin<br />3MMKHXPQrGHEsmdHaAGD59FWhKFGeUsAxV<br /><br />Ethereum<br />0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079<br /><br />Litecoin<br />MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF<br /><br />Dash<br />Xh9PXPEy5RoLJgFDGYCDjrbXdjshMaYerz<br /><br />Zcash<br />t1aWtU5SBpxuUWBSwDKy4gTkT2T1ZwtFvrr<br /><br />Chainlink<br />0x0f7f21D267d2C9dbae17fd8c20012eFEA3678F14<br /><br />Bitcoin Cash<br />qz2st00dtu9e79zrq5wshsgaxsjw299n7c69th8ryp<br /><br />Etherum Classic<br />0xeA641e59913960f578ad39A6B4d02051A5556BfC<br /><br />USD Coin<br />0x0B045f743A693b225630862a3464B52fefE79FdB<br /><br />Subscribe to my YouTube channel http://goo.gl/9U10Wz<br />and be sure to click that notification bell so you know when new videos are released.<br />...<br />https://www.youtube.com/watch?v=9UCDXolZPAY

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/Sp1AOwN17CU" width="480" alt="thumbnail" title="Use SQL to generate a document with Troff/Groff" /></p>This is the 10th in a series of videos taking you from a beginner to a pro at using Troff/Groff.<br /><br />This tutorial is focused on tsql a preprocessor for using sqlite inside of a Troff. If you don't know sql this is a fun new way to learn.<br /><br />The code used in this video can be found here: <br />https://gist.github.com/Gavinok/0c41f8232a5cf3684522c38f22de01c7<br /><br />tsql can be found here : https://github.com/pjfichet/tsql<br /><br />Great job Pierre-Jean Fichet the creator of tsql<br /><br />Let me know what you think and if there is anything specific you would like to learn about.<br /><br />Github: https://www.github.com/gavinok<br />vimrc: https://github.com/Gavinok/dotvim<br />Resume: https://github.com/Gavinok/Groff-resume<br />Discord: https://discord.gg/JJk5KKU<br />...<br />https://www.youtube.com/watch?v=Sp1AOwN17CU

View file

@ -0,0 +1,26 @@
<p><iframe loading="lazy" title="Destination Linux EP49 - Rob Collins of Linux Quest" width="800" height="450" src="https://www.youtube.com/embed/UxO7iYWdxD4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p>Welcome to Episode 49 of Destination Linux for 12-11-17</p>
<p>Special Guest: Rob Collins</p>
<p>Everyone in the Linux community and the developers and organizers did an amazing job. I think we can all agree this has been an amazing year for Linux. Here we pick some of our top picks but that doesnt mean there werent dozens of others we could name.</p>
<p><a href="https://www.linuxfoundation.org/blog/2017-linux-kernel-report-highlights-developers-roles-accelerating-pace-change/">Top Contributors 2017 To Linux</a></p>
<p><a href="http://www.omgubuntu.co.uk/2017/11/linux-now-powers-100-worlds-top-500-supercomputers">Linux Now Powers 100% of the Worlds Top 500 Supercomputers</a></p>
<ul>
<li><b>Our personal pick for top distro(s) of 2017</b></li>
<li><b>Our personal pick for beloved DE(s) of 2017</b></li>
<li><b>Your Favorite Software Finds of 2017 </b></li>
<li><strong>Some of our favorite Linux sites</strong></li>
<li><b>Impactful changes to Linux</b></li>
</ul>
<p><b>News</b></p>
<p><a href="https://www.linuxmint.com/rel_sylvia_cinnamon_whatsnew.php">Linux Mint Sylvia</a></p>
<p><a href="https://www.phoronix.com/scan.php?page=article&amp;item=11-linux-boot&amp;num=1">Which Linux Distribution Boots The Fastest? An 11-Way Linux Comparison</a></p>
<p><a href="https://itsfoss.com/best-gnome-extensions/">itsfoss Top 20 Gnome Extensions</a></p>
<p><b>Admin</b></p>
<p><a href="https://teespring.com/destinationlinuxpodcast">Destination Linux Apparel</a></p>
<p><b>Where Can You Find Us This Week</b></p>
<ul>
<li>Big Daddy Linux Live! Will be on Saturday night on the BigDaddyLinux Channel</li>
</ul>
<p>Twitter @bigdaddylinux</p>
<p>A big thank you to each and every one of you for supporting us and Thank you For Watching Destination Linux</p>
<p>Have a great week and remember the Journey ITSELF is just as important as the Destination</p>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/aB0ziwcS0Dw" width="480" alt="thumbnail" title="Fedora Goes Streamin' | DLN Xtend 86" /></p>On this episode of DLN Xtend we discuss Fedora Workstation: Live Streaming Compatibility Initiative. <br /><br />Welcome to episode 86 of DLN Xtend. DLN Xtend is a community powered podcast. We take conversations from the DLN Community from places like the DLN Discourse Forums, Telegram group, Discord server and more. We also take topics from other shows around the network to give our takes.<br /><br />00:00 Introduction<br />22:18 Topic - Fedora Streaming Compatibility Initiative<br />38:10 Host Related Interest<br />50:26 Wrap Up<br /><br />Main Topic<br />- https://fedoraproject.org/wiki/Workstation/LiveStreamingCompatInitiative#Fedora_Workstation:_Live_Streaming_Compatibility_Initiative<br /><br />Wendy<br />- FairEmail<br /> - https://email.faircode.eu/<br /><br />Matt<br />- Horizon Zero Dawn<br /> - https://store.steampowered.com/app/1151640/Horizon_Zero_Dawn_Complete_Edition/<br /><br />Nate<br />- Home Assistant smart switches<br /><br />Charity Event<br />- https://discourse.destinationlinux.network/t/12-13-21-24-hour-charity-stream-for-st-jude-children-hospital/4416<br /><br />Contact info <br />Matt (Twitter @MattDLN)<br />Wendy (Mastodon @WendyDLN)<br />Nate (Website CubicleNate.com)<br />...<br />https://www.youtube.com/watch?v=aB0ziwcS0Dw

View file

@ -0,0 +1,40 @@
<p>There are so many good routers to choose from it&#39;s so hard to decide. There&#39;s good and bad with all of them. Unifi is back at it again with sending data home, KDE 5.18 is out, and we&#39;ve officially launched wiki.linuxdelta.com!</p>
<h3><strong>-- The Extra Credit Section --</strong></h3>
<p>For links to the articles and material referenced in this week&#39;s episode check out this week&#39;s page from our podcast dashboard!</p>
<p><a href="http://podcast.asknoahshow.com/166" rel="nofollow">This Episode&#39;s Podcast Dashboard</a></p>
<p><a href="http://www.voxtelesys.com/asknoah" rel="nofollow">Phone Systems for Ask Noah provided by Voxtelesys</a></p>
<p>Join us in our dedicated chatroom #AskNoahShow on Freenode!</p>
<h3><strong>-- Stay In Touch --</strong></h3>
<p><strong>Find all the resources for this show on the Ask Noah Dashboard</strong></p>
<blockquote>
<p><a href="http://www.asknoahshow.com" rel="nofollow">Ask Noah Dashboard</a></p>
</blockquote>
<p><strong>Need more help than a radio show can offer? Altispeed provides commercial IT services and theyre excited to offer you a great deal for listening to the Ask Noah Show. Call today and ask about the discount for listeners of the Ask Noah Show!</strong></p>
<blockquote>
<p><a href="http://www.altispeed.com/" rel="nofollow">Altispeed Technologies</a></p>
</blockquote>
<p><strong>Contact Noah</strong></p>
<blockquote>
<p>live [at] asknoahshow.com</p>
</blockquote>
<p><strong>-- Twitter --</strong></p>
<ul>
<li><a href="https://twitter.com/kernellinux" rel="nofollow">Noah - Kernellinux</a></li>
<li><a href="https://twitter.com/asknoahshow" rel="nofollow">Ask Noah Show</a></li>
<li><a href="https://twitter.com/altispeed" rel="nofollow">Altispeed Technologies</a></li>
</ul><p><a href="https://patreon.com/linuxdelta" rel="payment">Support Ask Noah Show</a></p><p>Links:</p><ul><li><a href="https://buttondown.email/cryptography-dispatches/archive/cryptography-dispatches-the-linux-csprng-is-now/" title="Cryptography Dispatches: The Linux CSPRNG Is Now Good! • Buttondown" rel="nofollow">Cryptography Dispatches: The Linux CSPRNG Is Now Good! • Buttondown</a></li><li><a href="https://coreos.com/os/eol/" title="End-of-life announcement for CoreOS Container Linux" rel="nofollow">End-of-life announcement for CoreOS Container Linux</a></li><li><a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0ddad21d3e99c743a3aa473121dc5561679e26bb" title="kernel/git/torvalds/linux.git - Linux kernel source tree" rel="nofollow">kernel/git/torvalds/linux.git - Linux kernel source tree</a></li><li><a href="https://kde.org/announcements/plasma-5.18.0" title="KDE Plasma 5.18: More Convenient and with Long Term Stability - KDE.org" rel="nofollow">KDE Plasma 5.18: More Convenient and with Long Term Stability - KDE.org</a></li><li><a href="https://letsencrypt.org/docs/challenge-types/" title="Challenge Types - Let's Encrypt - Free SSL/TLS Certificates" rel="nofollow">Challenge Types - Let's Encrypt - Free SSL/TLS Certificates</a></li><li><a href="https://wiki.linuxdelta.com/mediawiki/index.php/Main_Page" title="LinuxDelta Wiki" rel="nofollow">LinuxDelta Wiki</a></li></ul>

View file

@ -0,0 +1,31 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! Seriously, go there.
- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- Video: <a href='https://www.youtube.com/watch?v=AzmYV8GNAIM'>Proverbs Overview</a></p>
<p>- The Bible Recap Merch <a href='http://theconnextion.com/tbr'>Store</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>

View file

@ -0,0 +1 @@
<p>Megyn Kelly is joined by David Zweig, journalist for New York Magazine, to talk about the Biden administration's push to vaccinate small kids and keep them masked in schools, the truth about natural immunity, and how experts are being silenced on COVID reality. Then, a Deep State deep dive, with Glenn Greenwald, journalist on Substack, and Marc Polymeropoulos, former CIA official, to talk about "Havana Syndrome" symptoms, doubters of the mysterious disease, what the causes may be, the media's Russia obsession, the reports that CIA informants are becoming double agents and being captured and killed, the state of our national security apparatus, how the left became more favorable to the CIA and FBI, and more.</p><p>Follow The Megyn Kelly Show on all social platforms:</p><p> </p><p>YouTube: <a href="https://www.youtube.com/MegynKelly">https://www.youtube.com/MegynKelly</a></p><p>Twitter: <a href="http://twitter.com/MegynKellyShow">http://Twitter.com/MegynKellyShow</a></p><p>Instagram: <a href="http://instagram.com/MegynKellyShow">http://Instagram.com/MegynKellyShow</a></p><p>Facebook: <a href="http://facebook.com/MegynKellyShow">http://Facebook.com/MegynKellyShow</a></p><p> </p><p>Find out more information at:<br /> </p><p><a href="https://www.devilmaycaremedia.com/megynkellyshow">https://www.devilmaycaremedia.com/megynkellyshow</a></p>

View file

@ -0,0 +1,26 @@
<p>Windows is getting more competitive by adopting core Linux features, so we cover the latest Linux-inspired additions to Windows. Then review the new release of Pi-hole, sort through recent PINE64 updates, and read your feedback.</p><p>Special Guests: Alex Kretzschmar, Drew DeVore, Neal Gompa, and Philip Muller.</p><p><a href="https://jupitersignal.memberful.com/checkout?plan=52946" rel="payment">Support LINUX Unplugged</a></p><p>Links:</p><ul><li><a href="https://marc.info/?l=openbsd-tech&m=158926407905492&w=2" title="WireGuard patchset for OpenBSD" rel="nofollow">WireGuard patchset for OpenBSD</a>
</li><li><a href="https://www.phoronix.com/scan.php?page=news_item&px=Microsoft-Pres-On-Open-Source" title="Microsoft President Brad Smith Acknowledges They Were Previously Wrong On Open-Source" rel="nofollow">Microsoft President Brad Smith Acknowledges They Were Previously Wrong On Open-Source</a>
</li><li><a href="https://twitter.com/craigaloewen/status/1262766908333416449" title="Craig Loewen on Twitter: "@satyanadella has just announced that WSL will include GPU compute support, and GUI application support! Get ready for more WSL announces and details today" rel="nofollow">Craig Loewen on Twitter: "@satyanadella has just announced that WSL will include GPU compute support, and GUI application support! Get ready for more WSL announces and details today</a>
</li><li><a href="https://twitter.com/craigaloewen/status/1262769387141918720" title="Craig Loewen on Twitter: “@Kiview @thezigpc @cinnamon_msft @satyanadella Our initial prototypes use Wayland”" rel="nofollow">Craig Loewen on Twitter: “@Kiview @thezigpc @cinnamon_msft @satyanadella Our initial prototypes use Wayland”</a>
</li><li><a href="https://twitter.com/unixterminal/status/1262762430821814272?s=19" title="Hayden Barnes on Twitter: “WSL2 is getting GUI support, pass-through GPU support, and a new way to easily install.”" rel="nofollow">Hayden Barnes on Twitter: “WSL2 is getting GUI support, pass-through GPU support, and a new way to easily install.”</a>
</li><li><a href="https://twitter.com/unixterminal/status/1262779199825248256" title="Hayden Barnes on Twitter: "More glimpses of GUI support for WSL 2 from @shanselman and @cinnamon_msft" rel="nofollow">Hayden Barnes on Twitter: "More glimpses of GUI support for WSL 2 from @shanselman and @cinnamon_msft</a>
</li><li><a href="https://devblogs.microsoft.com/directx/directx-heart-linux/" title="DirectX ❤ Linux | DirectX Developer Blog" rel="nofollow">DirectX ❤ Linux | DirectX Developer Blog</a>
</li><li><a href="https://devblogs.microsoft.com/commandline/windows-terminal-1-0/" title="Windows Terminal 1.0" rel="nofollow">Windows Terminal 1.0</a>
</li><li><a href="https://www.thurrott.com/windows/windows-10/236301/windows-10-is-getting-its-own-built-in-package-manager" title="Windows 10 Is Getting Its Own Built-In Package Manager" rel="nofollow">Windows 10 Is Getting Its Own Built-In Package Manager</a>
</li><li><a href="https://www.pine64.org/2020/05/15/may-update-pinetab-pre-orders-pinephone-qi-charging-more/" title="PineTab pre-orders open in late May" rel="nofollow">PineTab pre-orders open in late May</a>
</li><li><a href="https://www.youtube.com/watch?v=Ii6lAjgfW3c&feature=youtu.be" title="PineTab running UBPorts with 5.6 kernel and Lima graphics drivers" rel="nofollow">PineTab running UBPorts with 5.6 kernel and Lima graphics drivers</a>
</li><li><a href="https://www.ubuntushop.be/index.php/en/opensource-notebooks/manjaro-notebooks/manjarobook-amd-ryzen.html" title="ManjaroBook AMD Ryzen" rel="nofollow">ManjaroBook AMD Ryzen</a>
</li><li><a href="https://www.jupiterbroadcasting.com/release-calendar/" title="Know when were going to be live. Check out the calendar!" rel="nofollow">Know when were going to be live. Check out the calendar!</a>
</li><li><a href="http://jupiterbroadcasting.com/telegram" title="Join us on Telegram" rel="nofollow">Join us on Telegram</a>
</li><li><a href="https://pi-hole.net/2020/05/10/pi-hole-v5-0-is-here/" title="Pi-hole v5.0 is here!" rel="nofollow">Pi-hole v5.0 is here!</a>
</li><li><a href="https://www.bloomberg.com/news/features/2018-05-10/inside-the-brotherhood-of-pi-hole-ad-blockers" title="Inside the Brotherhood of Pi-hole Ad Blockers" rel="nofollow">Inside the Brotherhood of Pi-hole Ad Blockers</a>
</li><li><a href="https://slexy.org/view/s21WOqdZGu" title="Linux Mint Success from Zachary
" rel="nofollow">Linux Mint Success from Zachary
</a>
</li><li><a href="https://slexy.org/view/s21r0ZSCl1" title="Pi Boot question from Kamil" rel="nofollow">Pi Boot question from Kamil</a>
</li><li><a href="https://jamesachambers.com/raspberry-pi-4-usb-boot-config-guide-for-ssd-flash-drives/" title="Raspberry Pi 4 USB Boot Config Guide for SSD / Flash Drives" rel="nofollow">Raspberry Pi 4 USB Boot Config Guide for SSD / Flash Drives</a>
</li><li><a href="https://slexy.org/view/s21nrry6Wc" title="XPS Feedback Request" rel="nofollow">XPS Feedback Request</a>
</li><li><a href="https://slexy.org/view/s2aNNsluNf" title="Pick: multi-boot ISO USB" rel="nofollow">Pick: multi-boot ISO USB</a>
</li><li><a href="https://github.com/ventoy/Ventoy" title="Ventoy: just copy the iso file to the USB drive and boot it!" rel="nofollow">Ventoy: just copy the iso file to the USB drive and boot it!</a>
</li></ul>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/1VPHA2Lc2zQ" width="480" alt="thumbnail" title="Installing Doom Emacs for the non-programmers (Windows & Linux)" /></p>00:00 intro<br />00:27 Demo of Doom Emacs (My Setup)<br />00:50 Windows installation<br />13:44 Linux installation<br /><br />I use this setup everyday, for task management, creating pptx files, docx files, book notes, writing my own books, blogging, and just about anything I can get away with doing it in Doom Emacs.<br /><br />This is for writers (i.e. non-programmers). If that's you, I'm sure you'll have questions. I'll try to answer then if you ask them.<br /><br />I included most of the problems I ran into while installing Emacs and Doom Emacs because I wanted you to see how I got around them.<br /><br />Subscribe for more Emacs<br /><br />REFERENCES<br />https://earvingad.github.io/posts/doom_emacs_windows/<br /><br />DOOM EMACS install (linux)<br />git clone --depth 1 https://github.com/hlissner/doom-emacs ~/.emacs.d<br />~/.emacs.d/bin/doom install<br /><br />if you run into problems after install, run this:<br />~/.emacs.d/bin/doom sync<br /><br /><br />🖥️ https://abepeters.com<br />📽️ https://lbry.tv/@biblecraft:f<br />🧰 https://github.com/bc-abe/doom-emacs<br />🎙 https://anchor.fm/poetsphilosophers<br /><br />MUSIC<br />Day Like These<br />https://www.youtube.com/watch?v=RTGEoh-vPIc<br />...<br />https://www.youtube.com/watch?v=1VPHA2Lc2zQ

View file

@ -0,0 +1 @@
<table> <tr><td> <a href="https://www.reddit.com/r/unixporn/comments/rrdfse/bspwm_neovim/"> <img src="https://preview.redd.it/313fkhmlni881.jpg?width=640&amp;crop=smart&amp;auto=webp&amp;s=7a48df4e4b93e3543cfdb48bbe3e9351c8bff6f7" alt="[bspwm] Neovim" title="[bspwm] Neovim" /> </a> </td><td> &#32; submitted by &#32; <a href="https://www.reddit.com/user/Asta101Clover"> /u/Asta101Clover </a> <br/> <span><a href="https://i.redd.it/313fkhmlni881.jpg">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/unixporn/comments/rrdfse/bspwm_neovim/">[comments]</a></span> </td></tr></table>

View file

@ -0,0 +1,378 @@
<p>
In a tool I'm writing I want to load a file that may reside on the local disk,
but if it isn't there I want to fetch it from the web. Basically it's very
similar to having a cache and dealing with a miss, except in my case I don't
populate the cache.
</p>
<p>
Let me first define the functions to play with
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">loadFromDisk</span> <span class="org-haskell-operator">::</span> <span class="org-haskell-type">String</span> <span class="org-haskell-operator">-&gt;</span> <span class="org-haskell-type">IO</span> <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> <span class="org-haskell-type">Int</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-haskell-definition">loadFromDisk</span> k<span class="org-haskell-operator">@</span><span class="org-string">"bad key"</span> <span class="org-haskell-operator">=</span> <span class="org-haskell-keyword">do</span>
putStrLn <span class="org-haskell-operator">$</span> <span class="org-string">"local: "</span> <span class="org-haskell-operator">&lt;&gt;</span> k
pure <span class="org-haskell-operator">$</span> <span class="org-haskell-constructor">Left</span> <span class="org-haskell-operator">$</span> <span class="org-string">"no such local key: "</span> <span class="org-haskell-operator">&lt;&gt;</span> k
<span class="org-haskell-definition">loadFromDisk</span> k <span class="org-haskell-operator">=</span> <span class="org-haskell-keyword">do</span>
putStrLn <span class="org-haskell-operator">$</span> <span class="org-string">"local: "</span> <span class="org-haskell-operator">&lt;&gt;</span> k
pure <span class="org-haskell-operator">$</span> <span class="org-haskell-constructor">Right</span> <span class="org-haskell-operator">$</span> length k
<span class="org-haskell-definition">loadFromWeb</span> <span class="org-haskell-operator">::</span> <span class="org-haskell-type">String</span> <span class="org-haskell-operator">-&gt;</span> <span class="org-haskell-type">IO</span> <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> <span class="org-haskell-type">Int</span><span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-haskell-definition">loadFromWeb</span> k<span class="org-haskell-operator">@</span><span class="org-string">"bad key"</span> <span class="org-haskell-operator">=</span> <span class="org-haskell-keyword">do</span>
putStrLn <span class="org-haskell-operator">$</span> <span class="org-string">"web: "</span> <span class="org-haskell-operator">&lt;&gt;</span> k
pure <span class="org-haskell-operator">$</span> <span class="org-haskell-constructor">Left</span> <span class="org-haskell-operator">$</span> <span class="org-string">"no such remote key: "</span> <span class="org-haskell-operator">&lt;&gt;</span> k
<span class="org-haskell-definition">loadFromWeb</span> k <span class="org-haskell-operator">=</span> <span class="org-haskell-keyword">do</span>
putStrLn <span class="org-haskell-operator">$</span> <span class="org-string">"web: "</span> <span class="org-haskell-operator">&lt;&gt;</span> k
pure <span class="org-haskell-operator">$</span> <span class="org-haskell-constructor">Right</span> <span class="org-haskell-operator">$</span> length k
</pre>
</div>
<div class="outline-2" id="outline-container-org79c5c1e">
<h2 id="org79c5c1e">Discarded solution: using the <code>Alternative</code> of <code>IO</code> directly</h2>
<div class="outline-text-2" id="text-org79c5c1e">
<p>
It's fairly easy to get the desired behaviour but <code>Alternative</code> of <code>IO</code> is based
on exceptions which doesn't strike me as a good idea unless one is using <code>IO</code>
directly. That is fine in a smallish application, but in my case it makes sense
to use tagless style (or <code>ReaderT</code> pattern) so I'll skip exploring this option
completely.
</p>
</div>
</div>
<div class="outline-2" id="outline-container-org74c8945">
<h2 id="org74c8945">First attempt: lifting into the <code>Alternative</code> of <code>Either e</code></h2>
<div class="outline-text-2" id="text-org74c8945">
<p>
There's an instance of <code>Alternative</code> for <code>Either e</code> in version 0.5 of
<a href="https://hackage.haskell.org/package/transformers-0.5.6.2/docs/Control-Monad-Trans-Error.html#section.orphans">transformers</a>. It's deprecated and it's gone in newer versions of the library as
one really should use <code>Except</code> or <code>ExceptT</code> instead. Even if I don't think it's
where I want to end up, it's not an altogether bad place to start.
</p>
<p>
Now let's define a function using <code>liftA2 (&lt;|&gt;)</code> to make it easy to see what the
behaviour is
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">fallBack</span> <span class="org-haskell-operator">::</span>
<span class="org-haskell-type">Applicative</span> m <span class="org-haskell-operator">=&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> res<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> res<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> res<span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-haskell-definition">fallBack</span> <span class="org-haskell-operator">=</span> liftA2 <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-operator">&lt;|&gt;</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
<pre class="example" id="org1f6b3a0">λ&gt; loadFromDisk "bad key" `fallBack` loadFromWeb "good key"
local: bad key
web: good key
Right 8
λ&gt; loadFromDisk "bad key" `fallBack` loadFromWeb "bad key"
local: bad key
web: bad key
Left "no such remote key: bad key"
</pre>
<p>
The first example shows that it falls back to loading form the web, and the
second one shows that it's only the last failure that survives. The latter part,
that only the last failure survives, isn't ideal but I think I can live with
that. If I were interested in collecting all failures I would reach for
<code>Validation</code> from <a href="https://hackage.haskell.org/package/validation-selective"><code>validation-selective</code></a> (there's one in <a href="https://hackage.haskell.org/package/validation-selective"><code>validation</code></a> that
should work too).
</p>
<p>
So far so good, but the next example shows a behaviour I don't want
</p>
<pre class="example" id="org005ead3">λ&gt; loadFromDisk "good key" `fallBack` loadFromWeb "good key"
local: good key
web: good key
Right 8
</pre>
<p>
or to make it even more explicit
</p>
<pre class="example" id="orgf34f455">λ&gt; loadFromDisk "good key" `fallBack` undefined
local: good key
*** Exception: Prelude.undefined
CallStack (from HasCallStack):
error, called at libraries/base/GHC/Err.hs:79:14 in base:GHC.Err
undefined, called at &lt;interactive&gt;:451:36 in interactive:Ghci4
</pre>
<p>
There's no short-circuiting!<sup><a class="footref" href="https://magnus.therning.org/feed.xml#fn.1" id="fnr.1">1</a></sup>
</p>
<p>
The behaviour I want is of course that if the first action is successful, then
the second action shouldn't take place at all.
</p>
<p>
It looks like either <code>&lt;|&gt;</code> is strict in its second argument, or maybe it's
<code>liftA2</code> that forces it. I've not bothered digging into the details, it's enough
to observe it to realise that this approach isn't good enough.
</p>
</div>
</div>
<div class="outline-2" id="outline-container-second-attempt">
<h2 id="second-attempt">Second attempt: cutting it short, manually</h2>
<div class="outline-text-2" id="text-second-attempt">
<p>
Fixing the lack of short-circuiting the evaluation after the first success isn't
too difficult to do manually. Something like this does it
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">fallBack</span> <span class="org-haskell-operator">::</span>
<span class="org-haskell-type">Monad</span> m <span class="org-haskell-operator">=&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> a<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> a<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> <span class="org-haskell-type">String</span> a<span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-haskell-definition">fallBack</span> first other <span class="org-haskell-operator">=</span> <span class="org-haskell-keyword">do</span>
first <span class="org-haskell-operator">&gt;&gt;=</span> <span class="org-haskell-operator">\</span><span class="org-haskell-keyword">case</span>
r<span class="org-haskell-operator">@</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-constructor">Right</span> <span class="org-haskell-keyword">_</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span> pure r
r<span class="org-haskell-operator">@</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-constructor">Left</span> <span class="org-haskell-keyword">_</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span> <span class="org-rainbow-delimiters-depth-1">(</span>r <span class="org-haskell-operator">&lt;|&gt;</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">&lt;$&gt;</span> other
</pre>
</div>
<p>
It does indeed show the behaviour I want
</p>
<pre class="example" id="org0bc7069">λ&gt; loadFromDisk "bad key" `fallBack` loadFromWeb "good key"
local: bad key
web: good key
Right 8
λ&gt; loadFromDisk "bad key" `fallBack` loadFromWeb "bad key"
local: bad key
web: bad key
Left "no such remote key: bad key"
λ&gt; loadFromDisk "good key" `fallBack` undefined
local: good key
Right 8
</pre>
<p>
Excellent! And to switch over to use <code>Validation</code> one just have to switch
constructors, <code>Right</code> becomes <code>Success</code> and <code>Left</code> becomes <code>Failure</code>. Though
collecting the failures by concatenating strings isn't the best idea of course.
Switching to some other <code>Monoid</code> (that's the constraint on the failure type)
isn't too difficult.
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">fallBack</span> <span class="org-haskell-operator">::</span>
<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Monad</span> m, <span class="org-haskell-type">Monoid</span> e<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">=&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Validation</span> e a<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Validation</span> e a<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Validation</span> e a<span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-haskell-definition">fallBack</span> first other <span class="org-haskell-operator">=</span> <span class="org-haskell-keyword">do</span>
first <span class="org-haskell-operator">&gt;&gt;=</span> <span class="org-haskell-operator">\</span><span class="org-haskell-keyword">case</span>
r<span class="org-haskell-operator">@</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-constructor">Success</span> <span class="org-haskell-keyword">_</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span> pure r
r<span class="org-haskell-operator">@</span><span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-constructor">Failure</span> <span class="org-haskell-keyword">_</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span> <span class="org-rainbow-delimiters-depth-1">(</span>r <span class="org-haskell-operator">&lt;|&gt;</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">&lt;$&gt;</span> other
</pre>
</div>
</div>
</div>
<div class="outline-2" id="outline-container-orgbc3f08f">
<h2 id="orgbc3f08f">Third attempt: pulling failures out to <code>MonadPlus</code></h2>
<div class="outline-text-2" id="text-orgbc3f08f">
<p>
After writing the <code>fallBack</code> function I still wanted to explore other solutions.
There's almost always something more out there in the Haskell eco system, right?
So I asked in the <i>#haskell-beginners</i> channel on the Functional Programming
Slack. The way I asked the question resulted in answers that iterates over a
list of actions and cutting at the first success.
</p>
<p>
The first suggestion had me a little confused at first, but once I re-organised
the helper function a little it made more sense to me.
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">mFromRight</span> <span class="org-haskell-operator">::</span> <span class="org-haskell-type">MonadPlus</span> m <span class="org-haskell-operator">=&gt;</span> m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> err res<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span> m res
<span class="org-haskell-definition">mFromRight</span> <span class="org-haskell-operator">=</span> <span class="org-rainbow-delimiters-depth-1">(</span>either <span class="org-rainbow-delimiters-depth-2">(</span>const mzero<span class="org-rainbow-delimiters-depth-2">)</span> return <span class="org-haskell-operator">=&lt;&lt;</span><span class="org-rainbow-delimiters-depth-1">)</span>
</pre>
</div>
<p>
To use it put the actions in a list, map the helper above, and finally run
<code>asum</code> on it all<sup><a class="footref" href="https://magnus.therning.org/feed.xml#fn.2" id="fnr.2">2</a></sup>. I think it makes it a little clearer what happens if
it's rewritten like this.
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">firstRightM</span> <span class="org-haskell-operator">::</span> <span class="org-haskell-type">MonadPlus</span> m <span class="org-haskell-operator">=&gt;</span> <span class="org-rainbow-delimiters-depth-1">[</span>m <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-haskell-type">Either</span> err res<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">]</span> <span class="org-haskell-operator">-&gt;</span> m res
<span class="org-haskell-definition">firstRightM</span> <span class="org-haskell-operator">=</span> asum <span class="org-haskell-operator">.</span> fmap go
<span class="org-haskell-keyword">where</span>
go m <span class="org-haskell-operator">=</span> m <span class="org-haskell-operator">&gt;&gt;=</span> either <span class="org-rainbow-delimiters-depth-1">(</span>const mzero<span class="org-rainbow-delimiters-depth-1">)</span> return
</pre>
</div>
<pre class="example" id="org46be250">λ&gt; firstRightM [loadFromDisk "bad key", loadFromWeb "good key"]
local: bad key
web: good key
8
λ&gt; firstRightM [loadFromDisk "good key", undefined]
local: good key
8
</pre>
<p>
So far so good, but I left out the case where both fail, because that's sort of
the fly in the ointment here
</p>
<pre class="example" id="orgdda08c7">λ&gt; firstRightM [loadFromDisk "bad key", loadFromWeb "bad key"]
local: bad key
web: bad key
*** Exception: user error (mzero)
</pre>
<p>
It's not nice to be back to deal with exceptions, but it's possible to recover,
e.g. by appending <code>&lt;|&gt; pure 0</code>.
</p>
<pre class="example" id="org3555519">λ&gt; firstRightM [loadFromDisk "bad key", loadFromWeb "bad key"] &lt;|&gt; pure 0
local: bad key
web: bad key
0
</pre>
<p>
However that removes the ability to deal with the situation where all actions
fail. Not nice! Add to that the difficulty of coming up with a <i>good</i>
<code>MonadPlus</code> instance for an application monad; one basically have to resort to
the same thing as for <code>IO</code>, i.e. to throw an exception. Also not nice!
</p>
</div>
</div>
<div class="outline-2" id="outline-container-fourth-attempt">
<h2 id="fourth-attempt">Fourth attempt: wrapping in <code>ExceptT</code> to get its <code>Alternative</code> behaviour</h2>
<div class="outline-text-2" id="text-fourth-attempt">
<p>
This was another suggestion from the Slack channel, and it is the one I like the
most. Again it was suggested as a way to stop at the first successful action in
a list of actions.
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">firstRightM</span> <span class="org-haskell-operator">::</span>
<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Foldable</span> t, <span class="org-haskell-type">Functor</span> t, <span class="org-haskell-type">Monad</span> m, <span class="org-haskell-type">Monoid</span> err<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">=&gt;</span>
t <span class="org-rainbow-delimiters-depth-1">(</span>m <span class="org-rainbow-delimiters-depth-2">(</span><span class="org-haskell-type">Either</span> err res<span class="org-rainbow-delimiters-depth-2">)</span><span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> err res<span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-haskell-definition">firstRightM</span> <span class="org-haskell-operator">=</span> runExceptT <span class="org-haskell-operator">.</span> asum <span class="org-haskell-operator">.</span> fmap <span class="org-haskell-constructor">ExceptT</span>
</pre>
</div>
<p>
Which can be used similarly to the previous one. It's also easy to write a
variant of <code>fallBack</code> for it.
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">fallBack</span> <span class="org-haskell-operator">::</span>
<span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Monad</span> m, <span class="org-haskell-type">Monoid</span> err<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">=&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> err res<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> err res<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span>
m <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Either</span> err res<span class="org-rainbow-delimiters-depth-1">)</span>
<span class="org-haskell-definition">fallBack</span> first other <span class="org-haskell-operator">=</span> runExceptT <span class="org-haskell-operator">$</span> <span class="org-haskell-constructor">ExceptT</span> first <span class="org-haskell-operator">&lt;|&gt;</span> <span class="org-haskell-constructor">ExceptT</span> other
</pre>
</div>
<pre class="example" id="org2366803">λ&gt; loadFromDisk "bad key" `fallBack` loadFromWeb "good key"
local: bad key
web: good key
Right 8
λ&gt; loadFromDisk "good key" `fallBack` undefined
local: good key
Right 8
λ&gt; loadFromDisk "bad key" `fallBack` loadFromWeb "bad key"
local: bad key
web: bad key
Left "no such local key: bad keyno such remote key: bad key"
</pre>
<p>
Yay! This solution has the short-circuiting behaviour I want, as well as
collecting all errors on failure.
</p>
</div>
</div>
<div class="outline-2" id="outline-container-orgc7c8216">
<h2 id="orgc7c8216">Conclusion</h2>
<div class="outline-text-2" id="text-orgc7c8216">
<p>
I'm still a little disappointed that <code>liftA2 (&lt;|&gt;)</code> isn't short-circuiting as I
still think it's the easiest of the approaches. However, it's a problem that one
has to rely on a deprecated instance of <code>Alternative</code> for <code>Either String</code>,
but switching to use <code>Validation</code> would be only a minor change.
</p>
<p>
Manually writing the <code>fallBack</code> function, as I did in the <a href="https://magnus.therning.org/feed.xml#second-attempt">second attempt</a>,
results in very explicit code which is nice as it often reduces the cognitive
load for the reader. It's a contender, but using the deprecated <code>Alternative</code>
instance is problematic and introducing <code>Validition</code>, an arguably not very
common type, takes away a little of the appeal.
</p>
<p>
In the end I prefer the <a href="https://magnus.therning.org/feed.xml#fourth-attempt">fourth attempt</a>. It behaves exactly like I want and even
though <code>ExpectT</code> lives in <i>transformers</i> I feel that it (I pull it in via <i>mtl</i>)
is in such wide use that most Haskell programmers will be familiar with it.
</p>
<p>
One final thing to add is that the <a href="https://hackage.haskell.org/package/validation-selective-0.1.0.1/docs/Validation.html">documentation of <code>Validation</code></a> is an excellent
inspiration when it comes to the behaviour of its instances. I wish that the
documentation of other packages, in particular commonly used ones like <i>base</i>,
<i>transformers</i>, and <i>mtl</i>, would be more like it.
</p>
</div>
</div>
<div id="footnotes">
<h2 class="footnotes">Footnotes: </h2>
<div id="text-footnotes">
<div class="footdef"><sup><a class="footnum" href="https://magnus.therning.org/feed.xml#fnr.1" id="fn.1">1</a></sup> <div class="footpara"><p class="footpara">
I'm not sure if it's a good term to use in this case as <a href="https://en.wikipedia.org/wiki/Short-circuit_evaluation">Wikipedia</a> says
it's for Boolean operators. I hope it's not too far a stretch to use it in this
context too.
</p></div></div>
<div class="footdef"><sup><a class="footnum" href="https://magnus.therning.org/feed.xml#fnr.2" id="fn.2">2</a></sup> <div class="footpara"><p class="footpara">
In the version of <i>base</i> I'm using there is no <code>asum</code>, so I simply copied
the implementation from a later version:
</p>
<div class="org-src-container">
<pre class="src src-haskell"><span class="org-haskell-definition">asum</span> <span class="org-haskell-operator">::</span> <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-type">Foldable</span> t, <span class="org-haskell-type">Alternative</span> f<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">=&gt;</span> t <span class="org-rainbow-delimiters-depth-1">(</span>f a<span class="org-rainbow-delimiters-depth-1">)</span> <span class="org-haskell-operator">-&gt;</span> f a
<span class="org-haskell-definition">asum</span> <span class="org-haskell-operator">=</span> foldr <span class="org-rainbow-delimiters-depth-1">(</span><span class="org-haskell-operator">&lt;|&gt;</span><span class="org-rainbow-delimiters-depth-1">)</span> empty
</pre>
</div></div></div>
</div>
</div><div class="taglist"><a href="https://magnus.therning.org/tags.html">Tags</a>: <a href="https://magnus.therning.org/tag-alternative_typeclass.html">alternative_typeclass</a> <a href="https://magnus.therning.org/tag-caching.html">caching</a> <a href="https://magnus.therning.org/tag-fallback.html">fallback</a> <a href="https://magnus.therning.org/tag-haskell.html">haskell</a> </div>

View file

@ -0,0 +1,31 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! Seriously, go there.
- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=1+kings+16%3A33&version=ESV'>1 Kings 16:33</a></p>
<p>- <a href='https://www.theconnextion.com/tbr'>The Bible Recap Store</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>

View file

@ -0,0 +1,75 @@
<div ( . )='http://www.w3.org/1999/xhtml'>
<a href='https://yewtu.be/watch?v=WJilpQsl4vc'>
<img src='https://yewtu.be/vi/WJilpQsl4vc/mqdefault.jpg'/>
</a>
<p style='word-break:break-word;white-space:pre-wrap'>Today&apos;s the day. I&apos;ve spent weeks trying to dig deep on the debate of whether the last 12 verses of the Gospel of Mark are actually part of the Gospel of Mark.
Video Map with Time Stamps:
0:00 - Introduction
1. 3:45 Mike admits his bias
2. 7:39 Why this research was so hard
3. 10:04 Mikes basic conclusions on the passage
4. 11:21 Here begins the external evidence analysis
5. 16:40 Codex Sinaiticus
6. 22:38 Codex Vaticanus
7. 33:55 How important are those 2 manuscripts really?
8. 36:18 Codex 304; a Byzantine MS that ends at vs. 8
9. 40:40 Other Greek manuscripts that weigh in on this
10. 52:00 Syriac translations
11. 54:30 Armenian translations
12. 55:49 Georgian translations
13. 56:42 Sahidic translations
14. 58:03 Latin translations
15. 1:00:13 Lectionary systems
16. 1:01:38 What church fathers have to say
17. 1:02:35 Irenaeus (c. 180)
18. 1:04:01 Tatian (c. 170)
19. 1:04:38 Eusebius (mid 300s)
20. 1:10:45 Jerome (early 400s)
21. 1:16:03 Victor of Antioch (5th or 6th century)
22. 1:17:22 Clement of Alexandria
23. 1:18:04 Origen
24. 1:19:11 1st Clement (c. 95)
25. 1:22:00 My thoughts on Lunn and Snapp
26. 1:22:34 Conclusion on the church fathers
27. 1:24:32 What is the “internal evidence”?
28. 1:28:58 How vs. 9 doesnt fit with vs. 8
29. 1:33:16 Two common bad examples of internal evidence
30. 1:36:45 Kai is not like Mark
31. 1:41:29 The historical present
32. 1:43:06 The demonstrative pronoun
33. 1:44:46 Verbs for perception
34. 1:45:57 The strongest piece of internal evidence
35. 1:50:10 21 Markisms
36. 1:55:00 The million-dollar question of scribal motives
37. 2:03:55 Why I still want the longer ending in my Bible
38. 2:06:46 Lingering issues
This is a book where 4 scholars each build a case for their different views on the ending of Mark. Its a good introduction into the issues of the debate even if no one scholar has the space to fully flesh out their case. “Perspectives on the Ending of Mark: Four Views” https://www.amazon.com/Perspectives-Ending-Mark-Daniel-Wallace-ebook/dp/B004OR17WK/
Nicholas Lunn recently wrote a book offering a very detailed case that the longer ending always part of Marks Gospel. At first I found Lunns book to be really helpful in challenging the scholarly majority. But after spending a lot of time with it Ive come to think that his work causes more confusion than clarity on the topic. Uneven standards in how evidence is handled make his work difficult to read without leading to important misimpressions. “The Original Ending of Mark: A New Case for the Authenticity of Mark 16:9-20” https://www.amazon.com/Original-Ending-Mark-Case-Authenticity-ebook/dp/B00OU6OB78/
Larry Hurtado offered three short reviews of Lunns book, all three at this link. http://evangelicaltextualcriticism.blogspot.com/search/label/Nicholas%20P.%20Lunn
James Snapps theory is that Mark wrote the longer ending but it was originally not part of the Gospel of Mark. It was taken from some other work from Mark and then added on to the end of the Gospel of Mark. He offers 5 different theories for why it is missing from some manuscripts. I respect Snapps tenacity but I think his logic has regular logical problems. I mean no insult by this, I just want you to be prepared to think very carefully about what he says. His book, “Authentic: The Case for Mark 16:9-20”, is free here. https://www.academia.edu/12545835/Authentic_The_Case_for_Mark_16_9_20
The most helpful resource I found for dealing with the internal evidence in the longer ending of Mark is this article from Travis Williams. https://www.academia.edu/1444542/Bringing_Method_to_the_Madness_Examining_the_Style_of_the_Longer_Ending_of_Mark
My verse by verse study of the longer ending of Mark is here. Its long, methodical and shows that the passage doesnt pose theological problems, even if it wasnt written by Mark. https://youtu.be/zA6s9O4o5Uo
For the 12th century Greek Codex 304, which is Byzantine in nature and ends Mark at 16:8, see the two links following; and youll need them because Snapp and Lunn have bad info on this. The text is viewable here. https://mr-mark16.sib.swiss/show?id=R0EzMDQ=
A helpful commentary, from Dr. Mina Monier, on the text and its significance can be found here. https://mark16-etalk.sib.swiss/index.php?dir=Mark16_MM_1#0
The MARK16 Project is awesome. Their website has a lot of helpful stuff and I expect a lot more in years to come. https://mark16.sib.swiss/
Randall Booths paper on Marks use of “palin” https://www.silpacific.org/resources/archives/61477
For a full list of Marks use of the historical present and how other Gospels tend not to, see pages 144-148 in this old book, “Horae Synopticae” https://archive.org/details/1909horaesynopt00hawkuoft/page/144/mode/2up
This is part 69 of the Mark Series, going verse by verse through the Gospel of Mark.
See the WHOLE Gospel of Mark playlist here. https://www.youtube.com/playlist?list=PLZ3iRMLYFlHuGenHwUdeiQ5M-uj5XW4sF
My website https://BibleThinker.org</p>
</div>

View file

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Nyxt 2.2.2</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">Nyxt 2.2.2</h1>
</header>
<p>We are happy to announce Nyxt 2.2.2. This is mostly a bug-fix release with some minor improvements.</p>
<p>Change log:</p>
<div>
<h2>2.2.2</h2>
<ul>
<li>HTTP redirects are no longer stored to history.
<li>Selecting hints in prompt-buffer no longer scrolls the page automatically,
press <code>C-l</code> instead.
</ul>
<h3>Build and compilation changes</h3>
<ul>
<li>The source tarball now embeds the Git submodules and thus fixes build errors
about missing dependencies.
</ul>
<h3>Platform support</h3>
<ul>
<li>Fix type errors when building with some unusual compiler. (Thanks to
@lpaviets!)
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix prompt buffer paging.
<li><code>switch-buffer</code> is no longer triggered when there is no buffer to
restore.
<li>On various occasions, KeepassXC entries could be missing from the prompt,
this is now fixed.
<li><code>lisp-repl</code> now prints all results properly.
<li>Onion URLs are now supported. (Thanks to @hendursaga!)
</ul>
</div>
</body>
</html>

View file

@ -0,0 +1 @@
<!-- SC_OFF --><div class="md"><p>I&#39;m doing this year&#39;s <a href="https://adventofcode.com/">Advent of Code</a> in Emacs Lisp. Is anyone else trying it this year?</p> <p>I&#39;d love some feedback on my solutions!</p> <p><strong>Day 1</strong></p> <pre><code>(defun read-lines (filePath) &quot;Return a list of lines of a file at filePath.&quot; (with-temp-buffer (insert-file-contents filePath) (split-string (buffer-string) &quot;\n&quot; t))) (setq measurements (mapcar #&#39;string-to-number (read-lines &quot;day-1-input.txt&quot;))) (defun count-increases (func) (let ((iter-list measurements) (num-increases 0)) (while iter-list (if (&lt; (pop iter-list) (or (funcall func iter-list) 0)) (cl-incf num-increases))) num-increases)) ;; Part 1 (count-increases #&#39;car) ;; Part 2 (count-increases #&#39;caddr) </code></pre> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/-cvdub-"> /u/-cvdub- </a> <br/> <span><a href="https://www.reddit.com/r/emacs/comments/r7kk9n/advent_of_code_in_elisp_spoilers/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/r7kk9n/advent_of_code_in_elisp_spoilers/">[comments]</a></span>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/FXCitlsA7eQ" width="480" alt="thumbnail" title="Extreme Vim Macros for Traditionalist Catholics" /></p>This is how you do pretty advanced actions in vim automatically. In this case, I want vim to automatically insert footnotes taken from the end of a text file in the appropriate place for them to be formatted automatically in a LaTeX document. This would be a huge chore for a Wordcuck or someone using a text editor or IDE without sufficient macro capabilities, but vim makes it pretty easy. Keys are displayed with screenkey.<br /><br />My website: https://lukesmith.xyz<br />Please donate: https://lukesmith.xyz/donate<br />Get all my videos off YouTube: https://videos.lukesmith.xyz<br />or Odysee: https://odysee.com/$/invite/@Luke:7<br /><br />BTC: bc1qk2dz5x6m3sjnkzf0mhlz9pmsz4xfjtjmfrgm9d<br />XMR: 48jewbtxe4jU3MnzJFjTs3gVFWh2nRrAMWdUuUd7Ubo375LL4SjLTnMRKBrXburvEh38QSNLrJy3EateykVCypnm6gcT9bh<br /><br />OR affiliate links to things l use:<br />https://www.vultr.com/?ref=8384069-6G Get a VPS and host a website or server for anything else.<br />https://www.epik.com/?affid=we2ro7sa6 Get a cheap and reliable domain name with Epik.<br />https://brave.com/luk005 Get the Brave browser.<br />https://odysee.com/$/invite/@Luke:7 View my videos on Odysee and get a bonus for joining.<br />https://www.coinex.com/register?refer_code=ndf87 Get crypto-rich on Coinex. Get reduced exchange fees for 3 months.<br />https://www.coinbase.com/join/smith_5to1 Get crypto-rich on Coinbase. We both get $10 in Bitcoin when you buy or sell $100 in cryptocurrencies.<br />...<br />https://www.youtube.com/watch?v=FXCitlsA7eQ

View file

@ -0,0 +1,4 @@
<p><a href="https://www.lfg.co/page/1563/" rel="bookmark" title="1563"><img width="210" height="300" src="https://www.lfg.co/wp-content/uploads/2021/12/lfg5619-1559-dec06-21-210x300.jpg" class="attachment-medium size-medium wp-post-image" alt="" srcset="https://www.lfg.co/wp-content/uploads/2021/12/lfg5619-1559-dec06-21-210x300.jpg 210w, https://www.lfg.co/wp-content/uploads/2021/12/lfg5619-1559-dec06-21-105x150.jpg 105w, https://www.lfg.co/wp-content/uploads/2021/12/lfg5619-1559-dec06-21.jpg 700w" sizes="(max-width: 210px) 100vw, 210px" /></a></p>
<p>The post <a rel="nofollow" href="https://www.lfg.co/page/1563/">1563</a> appeared first on <a rel="nofollow" href="https://www.lfg.co">Looking For Group</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LookingForGroup?a=9L9lyWWRnmQ:01T4kMDj7eI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LookingForGroup?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LookingForGroup?a=9L9lyWWRnmQ:01T4kMDj7eI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LookingForGroup?i=9L9lyWWRnmQ:01T4kMDj7eI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LookingForGroup?a=9L9lyWWRnmQ:01T4kMDj7eI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LookingForGroup?d=7Q72WNTAKBA" border="0"></img></a>
</div>

View file

@ -0,0 +1 @@
<!-- SC_OFF --><div class="md"><p>Github (and gitlab) is completely blocked by company. I am using Doom-emacs at the moment. Not sure there&#39;s any possible way to use Emacs without github access?</p> <p>(possible to mirror some github repos onto local git server).</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/enzechi"> /u/enzechi </a> <br/> <span><a href="https://www.reddit.com/r/emacs/comments/r7k4wr/how_to_use_emacs_without_github_access/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/r7k4wr/how_to_use_emacs_without_github_access/">[comments]</a></span>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
<!-- SC_OFF --><div class="md"><p>hi everybody,</p> <p>i use auctex to edit latex (in Linux, mostly).</p> <p>As I move around the document in latex, I would like the pdf view (either inside emacs or ouside, I could adapt to either one) to jump to the page that corresponds to the area in the latex document I am editing. Is this possible?</p> <p>I know it is possible to do it the other way around (click on the pdf, jump to the corresponding latex).</p> <p>thank you in advance for any hints/information.</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/dm_g"> /u/dm_g </a> <br/> <span><a href="https://www.reddit.com/r/emacs/comments/r55ho4/auctex_and_automatic_display_of_page/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/r55ho4/auctex_and_automatic_display_of_page/">[comments]</a></span>

View file

@ -0,0 +1,46 @@
<p>This is another episode in our series on Gods portrayal as a character in the Bible. In this episode Tim and Jon finally (finally!) begin to talk about Jesus. But in order to talk about him, they need to unpack a confusing phrase in the Bible, “the Son of Man.” Whats the story behind this phrase? It comes from a famous vision from Daniel chapter 7.</p>
<p>In part one (00:00-19:45), the guys quickly review their conversation so far. Tim reiterates that Gods portrayal in the Bible is extremely complex, and thats on purpose because God is complex. The biblical writers want to leave the reader with a sense of mystery about Gods identity. Jon says that its fundamentally impossible to completely understand a being that is other than you.</p>
<p>Tim shares a quote from biblical scholar Mehrdad Fatehi, saying that for the biblical authors, “Yahweh cannot be reduced to any one of the manifestations of his presence (Word, Spirit, Wisdom, Angel, etc.). Yahweh is not completely identified with any one of these, but rather dynamically related. Yahweh is the Spirit, in so far as he is relating himself to creation. This is why the biblical writers prefer to speak of Yahwehs 'spirit,' or 'arm,' or 'glory,' or 'word,' rather than to refer to God himself in a more direct way. By adopting such a procedure, they manage both to express the objective reality of Gods contact with his creation, and at the same time maintain that God himself is always greater than any specific act of revealing himself to someone.” -- Mehrdad Fatehi, The Spirits Relation to the Risen Lord in Pauls Letters, 57-58.</p>
<p>In part two (19:45-38:10), Tim introduces the dream that Daniel has. He notes the design of the book of Daniel by saying that Daniels dream is related to the other dreams and events in the book. The dream begins in verse 7:9-10:</p>
<p>I kept looking<br />
Until thrones were set up,<br />
And the Ancient of Days took His seat;<br />
His vesture was like white snow<br />
And the hair of His head like pure wool.<br />
His throne was ablaze with flames,<br />
Its wheels were a burning fire.<br />
10 “A river of fire was flowing<br />
And coming out from before Him;<br />
Thousands upon thousands were attending Him,<br />
And myriads upon myriads were standing before Him;<br />
The court sat,<br />
And the books were opened.</p>
<p>7:11-12: The super-beast is killed and thrown into the fire before the throne</p>
<p>Daniel 7:13-14:<br />
I kept looking in the night visions<br />
And behold, with the clouds of heaven<br />
One like a son of human was coming,<br />
And he came up to the Ancient of Days<br />
And was presented before Him.<br />
“And to him was given dominion,<br />
glory and ba kingdom,<br />
That all the peoples, nations<br />
and languages Might serve (or “worship”) Him.<br />
His dominion is an everlasting dominion<br />
Which will not pass away;<br />
And His kingdom is one<br />
Which will not be destroyed.</p>
<p>Who is this Son of Man? Jon asks if its a physical child. Tim explains that it's actually biblical imagery to depict a class of being. This is a “son” similar to the “sons of the prophets/Elijah” depicted in the Old Testament. Tim says the point of the vision is that Daniel represents a summary of the future hope of the Hebrew Bible, and it envisions the coming of Gods Kingdom as the coming of a human figure (“a son of humanity”), who will sit beside God, share in his rule over the beasts (remember the plural “thrones”), and receive worship from all nations.</p>
<p>In part three (38:10-end), Tim says that the Christian claim of God existing “three in one” and the divine complexity is a thoroughly Jewish idea, but Jews have long debated who the actual &quot;Son of Man&quot; is. Tim says theres a ancient Jewish author called Ezekiel the Tragedian, who believed that the vision of Daniels Son of Man was actually referring to Moses. Tim also says that its clear that the New Testament authors believed Jesus is the Son of Man, and they combine all of Gods attributes (word, spirit, wisdom, etc) with the idea of a human being elevated to Gods status.</p>
<p>Thank you to all of our supporters!</p>
<p>Show Music:<br />
Defender Instrumental, Tents<br />
Praise Through The Valley, Tae the Producer<br />
Moments, Tae the Producer</p>
<p>Show Produced By:<br />
Dan Gummel, Jon Collins</p>
<p>Show Resources:<br />
Mehrdad Fatehi, The Spirits Relation to the Risen Lord in Pauls Letters, 57-58.<br />
Ezekiel the Tragedian, &quot;Exagoge&quot;<br />
See: http://jewishchristianlit.com/Texts/OT/EzekielTheTragedian.html<br />
www.thebibleproject.com</p>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/f4sgMkPGjak" width="480" alt="thumbnail" title="When Cloud Services and Vintage Gaming Hold Hands | DLN Xtend 87" /></p>On this episode of DLN Xtend we discuss how over-reliance on cloud services and preserving vintage games goes hand in hand.<br /><br />Welcome to episode 87 of DLN Xtend. DLN Xtend is a community powered podcast. We take conversations from the DLN Community from places like the DLN Discourse Forums, Telegram group, Discord server and more. We also take topics from other shows around the network to give our takes.<br /><br />00:00 Introduction<br />10:18 Topic - Cloud Services and Vintage Gaming<br />25:37 Host Related Interest<br />40:24 Wrap Up<br /><br />Main Topic-<br />- https://www.polygon.com/2014/6/20/5775924/how-to-get-ds-wii-online<br />- http://www.neocomputer.org/projects/et/#download<br />- https://www.youtube.com/watch?v=23qeQa0exe0<br /><br />Nate-<br />- https://frontpagelinux.com/tutorials/screenly-digital-sign-solution-for-raspberry-pi-tutorial/<br /><br />Wendy-<br />- https://manjaro.org/ <br /><br />Contact info <br />Matt (Twitter @MattDLN)<br />Wendy (Mastodon @WendyDLN)<br />Nate (Website CubicleNate.com)<br />...<br />https://www.youtube.com/watch?v=f4sgMkPGjak

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/Z87YDdP1z9k" width="480" alt="thumbnail" title="MacOS Catalina - Turn Your iPad Into A Second Monitor w/ Sidecar" /></p>In this video we take a look at the built in 'sidecar' function of MacOS. The ability to turn your iPad into a second monitor and increase your productivity on the go. We briefly talk about other integrations like Apple TV, Apple Watch, Apple Airpods, and even file sharing. The integration of the OS is the single greatest feature of being on Apple. Let's check it out. <br /><br /><br /><br />Apple iPad 7th Gen 10.2" https://amzn.to/37OKTln<br />#Apple #ipad #macOS<br /><br /><br /> DasGeek Channel is a proud member of the Destination Linux Network! Head to https://destinationlinux.network to find more amazing content!<br /><br />Support the Channel: www.dasgeekcommunity.com<br /><br />Support the channel on Patreon<br />https://www.patreon.com/dasgeek<br /><br />Special thanks to my Patrons! : Scott R, Bob A, Loren H, Peter K, Christopher W, Liam M, SpazzyC, Kevin B, Jeremy G, Gert B, Jill & Steve R, Dark1LTG, Josh, CubicleNate, Steve L, Mattias E, Michael C, David M, Zebediah Boss, Sean Davis, Anselm, David M, Mike K.<br /><br />Head to Digital Ocean do.co/dln for a 60 day $100 credit.<br /><br />Amazon Affiliate: Just purchase any item on Amazon using this link and you support the channel and pay the same price! <br />https://amzn.to/2HiUNyD<br /><br />Get DasGeek Swag<br />https://signaturegraphics.store/collections/das-geek<br /><br />Social:<br />Twitter: @dasgeekchannel<br />Mastodon: dasgeek@mastodon.social<br />Web: http://www.dasgeekcommunity.com<br />Github: https://github.com/dasgeekchannel<br />Podcast: Destination Linux - http://destinationlinux.org/<br />...<br />https://www.youtube.com/watch?v=Z87YDdP1z9k

View file

@ -0,0 +1,88 @@
<p>SHOW NOTES:
Thanks for listening! Weve posted some helpful info for you in our show notes below!</p>
<p> </p>
<p>PODCAST BASICS:
</p>
<p>- Subscribe where you listen!</p>
<p>- Check out the details on our <a href='http://www.thebiblerecap.com'>website
</a></p>
<p>- Get the<a href='https://www.bible.com/app'> Bible app</a> (free)
</p>
<p>- Follow our<a href='https://www.bible.com/reading-plans/5-chronological'> Bible reading plan</a></p>
<p>- Check out our customized <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>journal</a></p>
<p>- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus fun! </p>
<p> </p>
<p>MERCH: Get your<a href='https://www.theconnextion.com/tlcdgroup/index.cfm'> TBR merch</a>! Weve got t-shirts, coffee mugs, tote bags, phone wallets, and stickers! </p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=galatians+5%3A22-23&version=ESV'>Galatians 5:22-23</a></p>
<p>- <a href='https://thebiblerecap.podbean.com/e/157-proverbs-10-12/?token=05a82a2aa3cd8400077f518264e5a645'>The Bible Recap - Episode 157</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=proverbs+10%3A15&version=ESV'>Proverbs 10:15</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=proverbs+11%3A28&version=ESV'>Proverbs 11:28</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a> | <a href='http://pinterest.com/thebiblerecap'>Pinterest</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a> | <a href='http://pinterest.com/ilovemydgroup'>Pinterest</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>
<p> </p>
<p>TBR TEAM:
</p>
<p>Written and Hosted by: <a href='http://taraleighcobble.com'>Tara-Leigh Cobble</a></p>
<p>Content Manager: <a href='http://mydgroup.org'>Courtney Vaughan
</a></p>
<p>Podcast Operations: <a href='http://mydgroup.org'>Callie Summers
</a></p>
<p>Website Management: <a href='http://mydgroup.org'>Joelle Smith</a></p>
<p>Sound Engineer: <a href='http://thebiblerecap.com'>Allison Congden</a></p>
<p>Content Design: <a href='http://misswyolene.com'>Morgan Young
</a></p>
<p>Social Media Management: <a href='http://thebiblerecap.com'>Sarah Yocum</a></p>
<p>Journal Design: <a href='https://brittneyhmurray.weebly.com/'>Brittney Murray</a></p>
<p>Logo Design: <a href='mailto:landonhwade@gmail.com'>Landon Wade</a></p>
<p> </p>
<p>Available on:<a href='https://itunes.apple.com/us/podcast/the-bible-recap/id1440833267'> iTunes</a> |<a href='https://open.spotify.com/show/2lWv2RlsyMSMzerbAb1uOx'> Spotify</a> |<a href='https://www.google.com/podcasts?feed=aHR0cHM6Ly93d3cuaXZvb3guY29tL3RoZS1iaWJsZS1yZWNhcF9mZ19mMTYzNzgzNF9maWx0cm9fMS54bWw'> Google</a> |<a href='https://www.stitcher.com/podcast/dgroup/the-bible-recap?refid=stpr'> Stitcher</a> |<a href='https://thebiblerecap.podbean.com/'> Podbean</a> | <a href='https://play.google.com/music/m/Ivmpjo6234pwcvclpwxzlklglpm?t=The_Bible_Recap'>Google Play</a> | <a href='http://youtube.com/c/TheBibleRecap'>YouTube
</a></p>
<p> </p>
<p>WEBSITE:
<a href='http://www.thebiblerecap.com'>thebiblerecap.com</a></p>

View file

@ -0,0 +1 @@
<!-- SC_OFF --><div class="md"><p>When we are in the middle of a line, <code>open-line</code> splits current line at the cursor while saving the cursor&#39;s position, but the opened line below isn&#39;t indented.</p> <p>Is there a version which can indent the line below? </p> <p>&quot;RET C-p C-e&quot; seems a bit verbose.</p> <p>I can write a simple command line <code>(save-excursion (newline-and-indent))</code> but I&#39;d love to know if there are any existing ones.</p> <p>Edit: use case (assume that the cursor is at &quot;|&quot;):</p> <pre><code> &lt;html-tag|&gt;&lt;/html-tag&gt; &lt;!-- What C-o does --&gt; &lt;html-tag| &gt;&lt;/html-tag&gt; &lt;!-- What M-j does --&gt; &lt;html-tag |&gt;&lt;/html-tag&gt; &lt;!-- What I need --&gt; &lt;html-tag| &lt;!-- we write the attributes here --&gt; &gt;&lt;/html-tag&gt; &lt;!-- This is great, too! --&gt; &lt;html-tag | &gt;&lt;/html-tag&gt; </code></pre> <p>Edit: explained the use case more thoroughly.</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/takutekato"> /u/takutekato </a> <br/> <span><a href="https://www.reddit.com/r/emacs/comments/rcfggm/is_there_an_indented_version_of_openline/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/rcfggm/is_there_an_indented_version_of_openline/">[comments]</a></span>

View file

@ -0,0 +1,4 @@
<p>Grouping For Looks is a page-by-page retelling of the Looking For Group saga through the lens of a mirror universe where Cale is a goateed tyrant and Richard is a holy soul trying to set him on a good path. [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://www.lfg.co/gfl-page-0068/">GFL Page 0068</a> appeared first on <a rel="nofollow" href="https://www.lfg.co">Looking For Group</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LookingForGroup?a=ak7UAlRp-CA:vsH0jDzC8RY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LookingForGroup?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LookingForGroup?a=ak7UAlRp-CA:vsH0jDzC8RY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LookingForGroup?i=ak7UAlRp-CA:vsH0jDzC8RY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LookingForGroup?a=ak7UAlRp-CA:vsH0jDzC8RY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LookingForGroup?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LookingForGroup/~4/ak7UAlRp-CA" height="1" width="1" alt=""/>

View file

@ -0,0 +1,130 @@
<ul class="org-ul">
<li>Upcoming events:
<ul class="org-ul">
<li>EmacsATX: TBD <a href="https://www.meetup.com/EmacsATX/events/282436104/">https://www.meetup.com/EmacsATX/events/282436104/</a> Wed Jan 5 1630 Vancouver / 1830 Chicago / 1930 Toronto Thu Jan 6 0030 GMT / 0130 Berlin / 0600 Kolkata / 0830 Singapore</li>
<li>Emacs Paris (virtual, in French) <a href="https://www.emacs-doctor.com/emacs-paris-user-group/">https://www.emacs-doctor.com/emacs-paris-user-group/</a> Thu Jan 6 0830 Vancouver / 1030 Chicago / 1130 Toronto / 1630 GMT / 1730 Berlin / 2200 Kolkata Fri Jan 7 0030 Singapore</li>
<li>M-x Research (contact them for password): TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Fri Jan 7 0700 Vancouver / 0900 Chicago / 1000 Toronto / 1500 GMT / 1600 Berlin / 2030 Kolkata / 2300 Singapore</li>
</ul></li>
<li>Emacs configuration:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/rs73un/emacs_its_dependencies_and_dotfile_integration/">Emacs, its dependencies, and dotfile integration with Nix</a></li>
<li><a href="https://www.reddit.com/r/emacs/comments/rs4opl/first_thing_you_configured_when_started_using/">First thing you configured when started using Emacs</a></li>
<li><a href="https://github.com/susam/emfy">Emacs for You - A 72 line ~/.emacs to quickly set up vanilla Emacs for general purpose editing and programming</a> (<a href="https://www.reddit.com/r/emacs/comments/rrc7r7/emacs_for_you_a_72_line_emacs_to_quickly_set_up/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=29726398">HN</a>)</li>
<li><a href="https://tecosaur.github.io/emacs-config/config.html">Good overview of various Emacs config settings, worthy to steal</a> (<a href="https://www.reddit.com/r/emacs/comments/rpxbnc/good_overview_of_various_emacs_config_settings/">Reddit</a>)</li>
<li><a href="https://notxor.nueva-actitud.org/2021/12/30/editorconfig-y-emacs.html">EditorConfig y Emacs</a></li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="http://ag91.github.io/blog/2021/12/31/moldable-emacs-make-your-molds-async-with-ease">Andrea: Moldable Emacs: make your molds async with ease</a></li>
<li><a href="https://sachachua.com/blog/2022/01/defining-generic-and-mode-specific-emacs-lisp-functions-with-cl-defmethod/">Sacha Chua: Defining generic and mode-specific Emacs Lisp functions with cl-defmethod</a></li>
<li><a href="https://sachachua.com/blog/2022/01/coverage-reporting-in-emacs-with-buttercup-undercover-coverage-and-a-makefile/">Sacha Chua: Coverage reporting in Emacs with Buttercup, Undercover, Coverage, and a Makefile</a></li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://i.redd.it/8ntembu7qf881.png">svg-tag-mode (v 0.3.1) is now on ELPA</a> (<a href="https://www.reddit.com/r/emacs/comments/rr2gtj/svgtagmode_v_031_is_now_on_elpa/">Reddit</a>)</li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://karthinks.com/software/a-tab-bar-menu-in-emacs/">Karthik Chikmagalur: A Tab Bar Menu in Emacs</a></li>
<li><a href="https://github.com/akermu/cbm.el">cbm.el: Cycle by major - Cycle through buffers with the same major-mode</a></li>
<li><a href="https://gitlab.com/ideasman42/emacs-counsel-at-point">[ANN] counsel-at-point now on MELPA (better ergonomics for file searching)</a> (<a href="https://www.reddit.com/r/emacs/comments/rsi1hj/ann_counselatpoint_now_on_melpa_better_ergonomics/">Reddit</a>)</li>
</ul></li>
<li>TRAMP:
<ul class="org-ul">
<li><a href="https://github.com/fejfighter/toolbox-tramp">toolbox-tramp: tramp support for toolbox containers</a></li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://github.com/duckwork/fill-sentences-correctly.el">[ANN]: fill-sentences-correctly.el: Fill sentences with two spaces after a period while accepting one</a> (<a href="https://www.reddit.com/r/emacs/comments/rsiv45/ann_fillsentencescorrectlyel_fill_sentences_with/">Reddit</a>)</li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/rt9yad/a_smart_agenda_view_which_integrates_day_and_week/">A smart agenda View which integrates day and week</a></li>
<li><a href="https://protesilaos.com/codelog/2022-01-02-review-modus-themes-org-habit-colours/">Protesilaos Stavrou: Modus themes: review of the org-habit graph colours</a></li>
<li><a href="https://i.redd.it/1aidpvzvww881.png">Literate &amp; annotated bibliography (WIP)</a> (<a href="https://www.reddit.com/r/emacs/comments/rsyqxu/literate_annotated_bibliography_wip/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=A96fIRKV1e0">Org-mode - Repeat tasks multiple times a day</a> (06:36)</li>
<li><a href="https://www.reddit.com/r/orgmode/comments/rtfu95/psa_default_branch_of_org_repo_changed_to_main/">PSA: Default branch of Org repo changed to "main"</a></li>
<li><a href="https://magnus.therning.org/2022-01-01-trimming-newline-on-code-block-variable.html">Magnus: Trimming newline on code block variable</a></li>
<li><a href="https://blog.tecosaur.com/tmio/2021-12-31-retrospection.html">This Month in Org: December 2021</a> (<a href="https://www.reddit.com/r/emacs/comments/rtqrlp/this_month_in_org_december_2021/">Reddit</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/rrzgak/orgtransclusion_111_released/">Org-transclusion 1.1.1 released</a></li>
</ul></li>
<li>Completion:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/rqewjw/companymode_now_has_a_manual/">company-mode now has a manual</a></li>
<li><a href="https://www.reddit.com/r/emacs/comments/rphl36/dynamic_c_snippet_i_wrote/">Dynamic C++ Snippet I Wrote</a></li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://metaredux.com/posts/2022/01/01/reduce-summarize-year-2021.html">Meta Redux: (reduce summarize year-2021)</a></li>
<li><a href="https://www.youtube.com/watch?v=wm3px6vPTiU">Basic Emacs Setup for C Programming</a> (16:03)</li>
<li>AI:
<ul class="org-ul">
<li><a href="https://codingstruggles.com/emacs,/tabnine/setting-tabnine-emacs.html">Setting up TabNine on Doom Emacs</a></li>
<li><a href="https://semiosis.github.io/posts/a-prompting-lsp-server-for-any-language-or-context-using-large-language-models/">A prompting LSP server for any language or context using large language models, built with emacs</a></li>
<li><a href="https://www.reddit.com/r/emacs/comments/rr7u8o/working_penel_lsp_server_an_early_demo_an_ai/">Working Pen.el LSP server. An early demo - An AI overlay for everything async and parallelised</a></li>
</ul></li>
</ul></li>
<li>Shells:
<ul class="org-ul">
<li><a href="https://niklaseklund.gitlab.io/blog/posts/dtache_eshell/">Dtache Eshell | λ</a> (<a href="https://www.reddit.com/r/emacs/comments/rsda1l/dtache_eshell_integration_of_dtache_in_eshell/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=wbG-a8DIIuY">Background processes in Eshell - YouTube</a> (4:21, <a href="https://irreal.org/blog/?p=10212">Irreal</a>)</li>
</ul></li>
<li>Web:
<ul class="org-ul">
<li><a href="https://lifeofpenguin.blogspot.com/2021/12/browser-in-gnu-emacs.html">Browser in GNU Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/rr43vk/surf_browser_in_gnu_emacs/">Reddit</a>)</li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/rr330u/weekly_tips_tricks_c_thread/">Weekly Tips, Tricks, &amp;c. Thread</a></li>
<li><a href="https://www.reddit.com/r/emacs/comments/rpqsqq/your_plans_for_2022_and_beyond/">Your plans for 2022 and beyond..</a></li>
<li><a href="https://www.youtube.com/watch?v=aUhDLuD3F_Y">System Crafters Live - The Best of 2021!</a> (02:02:43)</li>
<li><a href="https://emacsnotes.wordpress.com/2022/01/03/subreddit-r-planetemacs-my-favorite-source-for-emacs-related-news-it-is-3-years-old-and-has-1750-subscribers-a-brief-note-on-how-it-is-made/">Emacs Notes: Subreddit /r/planetemacs: My favorite source for Emacs-related news. It is 3+ Years old, and has 1750+ subscribers. A brief note on how it is made.</a></li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://ruzkuku.com/texts/emacs-mouse.html">On Emacs 28 context menu and mouse-usage in general</a> (<a href="https://www.reddit.com/r/emacs/comments/rs6nus/on_emacs_28_context_menu_and_mouseusage_in_general/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=29736366">HN</a>, <a href="https://irreal.org/blog/?p=10220">Irreal</a>)</li>
<li><a href="https://christiantietze.de/posts/2021/12/remote-emacs-bulk-editing/">Christian Tietze: Remote Bulk Editing Using Regexp with Emacs</a> - wgrep</li>
<li><a href="https://codeberg.org/Red_Starfish/mastodon.el/src/branch/login">(Red_Starfish) mastodon.el: A fork that implements the 2FA login for Mastodon</a></li>
<li><a href="https://www.youtube.com/watch?v=AP625GHAonc">GNU/Emacs Aggressive indent Undo-tree &amp; Beacon</a> (03:23)</li>
<li><a href="https://geeksocket.in/posts/emacs-lf-exam/">Bhavin Gandhi: Using GNU Emacs in Linux Foundation exam</a></li>
<li><a href="http://angg.twu.net/2021-ffll.html">How I write 5-minute hacks in eev with `M-x find-find-links-links-new' - DO try this at home!!!</a></li>
<li><a href="https://irreal.org/blog/?p=10216">Irreal: A Nice Example of Emacs Keyboard Macros</a> (video from 2017)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/rs30b6/xwidgets_support_pgtk_now/">Xwidgets support pgtk now</a></li>
<li><a href="https://emacstil.com/til/2021/12/30/aideel-updates/">Emacs TIL: aide.el Update: Demo and More Commands</a></li>
<li><a href="https://emacstil.com/til/2021/12/28/playing-with-openai/">Emacs TIL: aide.el - An OpenAI Wrapper on Emacs</a></li>
</ul></li>
<li>Emacs development:
<ul class="org-ul">
<li>emacs-devel discussions:
<ul class="org-ul">
<li><a href="https://lists.gnu.org/archive/html/emacs-devel/2022-01/msg00061.html">Propose to add setup-wizard.el to ELPA</a>, discussion about Customize</li>
<li><a href="https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg01875.html">Development Speed</a></li>
<li><a href="https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg02502.html">Platform independent graphical display for Emacs</a></li>
<li><a href="https://lists.gnu.org/archive/html/emacs-devel/2021-12/msg01544.html">Touchscreen support</a></li>
</ul></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=984391a9dc384627533758f6fced219b5381c91f">New :type key for defcustom</a></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=0922634b28ff501ded2bf8f343c848f5e4db35d5">Minor improvements of 'lisp-directory' docs</a></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=59732a83c8875c8986d2221600d559a24d8309cc">Don't store docstrings of preloaded .el files in etc/DOC</a></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=f6da1eed7447c363ef927fea9b23a7b35587473c">Properly report errors about unbound ERT test symbols.</a></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=13ef21e84a8c4af0cd9e7a5f9c56a359b1344fe9">Fix EIEIO tests to account for eieio-compat move</a></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=1f792c2bc1bf12c254dc896e42eadda4be5d5cc3">* etc/NEWS: Mention completion-wrap-movement.</a></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=d7416e301218024dda92ce5638a625c915a18e51">* doc/emacs/search.texi (Lax Search): Add char-fold-include.</a></li>
<li><a href="http://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=65cd66c7d7a2e120d533ef26baf499d6ee4e44f0">* lisp/tab-bar.el (tab-bar-history-mode-map): New defvar-keymap.</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a href="https://melpa.org/#/arxiv-mode" target="_blank">arxiv-mode</a>: Read and search for articles on arXiv.org</li>
<li><a href="https://elpa.gnu.org/packages/blist.html" target="_blank">blist</a>: Display bookmarks in an ibuffer way</li>
<li><a href="https://melpa.org/#/counsel-at-point" target="_blank">counsel-at-point</a>: Context sensitive project search</li>
<li><a href="https://melpa.org/#/filldent" target="_blank">filldent</a>: Fill or indent</li>
<li><a href="https://elpa.gnu.org/packages/ilist.html" target="_blank">ilist</a>: Display a list in an ibuffer way.</li>
<li><a href="https://melpa.org/#/matrix-theme" target="_blank">matrix-theme</a>: Green-on-black dark theme inspired by "The Matrix" movie</li>
<li><a href="https://melpa.org/#/org-visibility" target="_blank">org-visibility</a>: Persistent org tree visibility</li>
<li><a href="https://melpa.org/#/perspective-exwm" target="_blank">perspective-exwm</a>: Better integration for perspective.el and EXWM</li>
<li><a href="https://melpa.org/#/redacted" target="_blank">redacted</a>: Obscure text in buffer</li>
</ul></li>
</ul>
<p>
Links from <a href="https://www.reddit.com/r/emacs">reddit.com/r/emacs</a>, <a href="https://www.reddit.com/r/orgmode">r/orgmode</a>, <a href="https://www.reddit.com/r/spacemacs">r/spacemacs</a>, <a href="https://www.reddit.com/r/planetemacs">r/planetemacs</a>, <a href="https://hn.algolia.com/?query=emacs&amp;sort=byDate&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story">Hacker News</a>, <a href="https://planet.emacslife.com">planet.emacslife.com</a>, <a href="https://www.youtube.com/playlist?list=PL4th0AZixyREOtvxDpdxC9oMuX7Ar7Sdt">YouTube</a>, <a href="http://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS">the Emacs NEWS file</a>, <a href="https://emacslife.com/calendar/">Emacs Calendar</a>, <a href="http://lists.gnu.org/archive/html/emacs-devel/2022-01">emacs-devel</a>, and <a href="https://lemmy.ml/c/emacs">lemmy/c/emacs</a>.
</p>

View file

@ -0,0 +1 @@
Darren gets grilled by Kepler Education on why and what makes him qualified to be a teacher at a Masters/Doctorate level. For more information check out https://kepler.education/t/darren.doane?tab=courses. 

View file

@ -0,0 +1 @@
<p>Thank you to our audience for your incredible questions. In this weeks episode, we tackle questions like, “Is God the same in the Old and New Testaments?” “Does the Bible support the idea of generational curses?” “Does Moses convince God to change his mind?” Listen in to hear the team answer your questions.</p><p><a href="https://bibleproject.com/podcast/does-god-curse-generations/">View full show notes from this episode →</a></p><p>Timestamps </p><ul><li>Is Gods character the same in the Old and New Testaments? (00:49)</li><li>Does the Bible teach about generational curses? (16:05)</li><li>Consequences versus punishment (27:20)</li><li>Why did God change his mind? (42:18)</li></ul><p>Show Music </p><ul><li>“Defender (Instrumental)” by Tents</li></ul><p>Show produced by Dan Gummel and Camden McAfee. </p><p>Powered and distributed by Simplecast.</p>

View file

@ -0,0 +1 @@
This is CrossPolitic Daily News for Wednesday April 7th, 2021.&#160; And if you or your business would like to advertise with CrossPolitic, send inquiries to Ads@FightLaughFeast.com . Plug Have you registered for the Fight Laugh Feast Rally in Rapid City, South Dakota, April 29, 30, May 1? Excited to see many of you as we learn [&#8230;]