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 @@
<!-- SC_OFF --><div class="md"><p>I have an MacBook air 2020 that I have installed arch on, everything works fine except the keyboard which does not work at all. From my understanding the kernel does not support the keyboard on the new MacBooks. It was a little while ago I tried it last time but I am getting more and more frustrated at Mac OS so it would be nice to get it to work.</p> <p>Have anyone got it to work?</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/empdo"> /u/empdo </a> <br/> <span><a href="https://www.reddit.com/r/archlinux/comments/rgu1vj/arch_on_mac/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/archlinux/comments/rgu1vj/arch_on_mac/">[comments]</a></span>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/Ne2YIdRu4O0" width="480" alt="thumbnail" title="An Installation And First Look Of Fedora 35" /></p>I'm taking a quick look at the recently released Fedora 35. After my recent negative review of Ubuntu 21.10 with the GNOME desktop, many viewers asked me to look at Fedora 35 believing that I might like Fedora's GNOME desktop more. We shall see...<br /><br />REFERENCED:<br />► https://fedoramagazine.org/announcing-fedora-35/<br /><br />WANT TO SUPPORT THE CHANNEL? <br />💰 Patreon: https://www.patreon.com/distrotube <br />💳 Paypal: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=derek%40distrotube%2ecom&lc=US&item_name=DistroTube&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHostedGuest<br />🛍️ Amazon: https://amzn.to/2RotFFi<br />👕 Teespring: https://teespring.com/stores/distrotube<br /><br />DONATE CRYPTO:<br />💰 Bitcoin: 1Mp6ebz5bNcjNFW7XWHVht36SkiLoxPKoX<br />🐶 Dogecoin: D5fpRD1JRoBFPDXSBocRTp8W9uKzfwLFAu<br />📕 LBC: bMfA2c3zmcLxPCpyPcrykLvMhZ7A5mQuhJ<br /><br />SOCIAL PLATFORMS: <br />🗨️ Mastodon: https://distrotoot.com/@derek<br />👫 Reddit: https://www.reddit.com/r/DistroTube/<br />📽️ LBRY/Odysee: https://odysee.com/$/invite/@DistroTube:2<br /><br />DT ON THE WEB:<br />🕸️ Website: http://distrotube.com/<br />🐿️ Gemini Capsule: gemini://distro.tube<br />📁 GitLab: https://gitlab.com/dwt1 <br /><br />FREE AND OPEN SOURCE SOFTWARE THAT I USE:<br />🌐 Brave Browser - https://brave.com/dis872 <br />📽️ Open Broadcaster Software: https://obsproject.com/<br />🎬 Kdenlive: https://kdenlive.org<br />🎨 GIMP: https://www.gimp.org/<br />🎵 Ardour: https://ardour.org/<br />💻 VirtualBox: https://www.virtualbox.org/<br />🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs<br /><br />Your support is very much appreciated. Thanks, guys!<br />...<br />https://www.youtube.com/watch?v=Ne2YIdRu4O0

View file

@ -0,0 +1,243 @@
<p>Raw link: <a href="https://www.youtube.com/watch?v=TxYGHjKBMUg">https://www.youtube.com/watch?v=TxYGHjKBMUg</a></p>
<p>In this video tutorial I show how to use regular expression syntax to
solve various practical problems in Emacs.</p>
<p>Knowledge of regexp notation is not a prerequisite to using Emacs
effectively. In fact, you can be very productive without knowing
anything about regular expressions. However, knowing those things
will certainly boost your productivity and make Emacs an even more
powerful tool at your hands.</p>
<p>See <a href="https://protesilaos.com/emacs/dotemacs">my dotemacs</a> for the
documentation and package declarations I provide.</p>
<hr />
<p>This is the full text of my presentation, which was done using
<code>org-mode</code> (check my dotemacs for presentations with Org).</p>
<pre><code>* Emacs regular expressions in practice
Emacs has a few ways to operate on regexp matches, such as:
+ =isearch=
+ =query-replace=
+ =keep-lines=
+ =flush-lines=
To make our life easier, we can practice with the built-in
=regexp-builder= or the third-party package =visual-regexp=. This demo
will rely on the latter.
If you have the manual you can run =C-h r i regexp= to get to the
relevant chapter. *Do it!*
** Line boundaries
The caret =^= denotes the beginning of the line.
The dollar sign =$= marks the end.
Match all lines that start with a space:
Emacs
Emacs
Emacs
Emacs
Emacs
And all that end with a capital =S=:
emacs emacS
emacS emacs
emacs emacs
emacS emacS
** Remove or keep lines
Remove the empty lines. Then keep the ones that contain "username".
&lt;username&gt;&lt;![CDATA[name]]&gt;&lt;/username&gt;
emacs emacS
emacS emacs
emacs emacs
emacS emacS
&lt;userName&gt;&lt;![CDATA[nom]]&gt;&lt;/userName&gt;
emacs emacS
emacS emacs
emacs emacs
emacS emacS
&lt;username&gt;&lt;![CDATA[name]]&gt;&lt;/username&gt;
emacs emacS
emacS emacs
emacs emacs
emacS emacS
** The dot character
The dot or full stop =.= means matches every character except the
newline.
Match these words using their common part =ired= as a string.
dired
fired
mired
tired
wired
** Character sets and ranges
A set of individual characters is marked between brackets =[]=.
Sets can be written as ranges:
| Range | Scope |
|------------+--------------------------------------------|
| [a-z] | all lower cases alphabetic characters |
| [A-Za-z] | all upper or lower case letters |
| [a-z0-9] | lower case alphabet or numbers 0 through 9 |
| [abcd1234] | letters a,b,c,d and numbers 1,2,3,4 |
Match both of those using a character set for the first letter:
emacs
Emacs
Match those that end with a number:
Emacs
emacs-27
emacs-26
GNU emacs
** Difference between postfix operators ?, +, *
"Postfix" means that it comes after a given set and alters its scope.
=?= match the previous term zero or one time.
=+= match the previous term one or more times.
=*= match the previous term zero or as many times as possible.
Match the =s= optionally:
day
days
Use =prote= followed by a postfix:
prot
prote
proteeee
** Grouped matches
A group is enclosed inside escaped parentheses =\(GROUP\)=.
Match both of these, including the optional suffix =ig=:
conf
config
** Greedy versus non-greedy
Postfix charaacter are greedy by default. "Greedy" matches the
longest possible part. Whereas "non-greedy" corresponds to the
shortest.
A non-greedy variant is used when the postfix is followed by =?=.
Using the =.*= construct, match items both greedily and not:
Hello world
Hello world world world world
** Multiple groups
Match the alphabetic and numeric parts in two separate groups.
emacs27
emacs26
emacs25
emacs24
** Literal hyphen and dot
Match the hyphen as part of the alphabetic group and the dot as part
of the numeric one.
emacs-27.1
emacs-26.3
emacs-25.2
** Exclude sets
To exclude a set you prepend a caret sign: =[^SET]=
Match every line except those that start with a capital letter.
GNU
Emacs
org-mode
regexp
emacs_lisp
Linux
guix
** Alternative groups with literal brackets
Use a character sets that matches =name= and =nom=.
name
nom
Then:
1. Match the =username= variants' =[name]= or =[nom]=.
2. Replace the match with =[PROT]=.
&lt;username&gt;&lt;![CDATA[name]]&gt;&lt;/username&gt;
&lt;nameuser&gt;&lt;![CDATA[nam]]&gt;&lt;/nameuser&gt;
&lt;userName&gt;&lt;![CDATA[nom]]&gt;&lt;/userName&gt;
&lt;nameuser&gt;&lt;![CDATA[nome]]&gt;&lt;/nameuser&gt;
** Either match
To target either set, use =\|=.
Prepend =vr/= to the first =group= and =match= on each line.
`(group-0 ((group (:inherit modus-theme-intense-blue))))
`(group-1 ((group (:inherit modus-theme-intense-magenta))))
`(group-2 ((group (:inherit modus-theme-intense-green))))
`(match-0 ((match (:inherit modus-theme-refine-yellow))))
`(match-1 ((match (:inherit modus-theme-refine-yellow))))
** Running elisp functions on groups
Run elisp by escaping the comma =\,= and then following it with a symbol
inside parentheses: =\,(FUNCTION)=.
Using the =.ired= pattern from earlier, run a replace command where you
must execute the =upcase= function on the second/middle match. Keep the
rest in tact.
direddireddired
firedfiredfired
miredmiredmired
tiredtiredtired
wiredwiredwired
</code></pre>

View file

@ -0,0 +1,29 @@
<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.
</p>
<p>- 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> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- Join us on a trip to Israel! Find out more at <a href='https://www.mydgroup.org/israel'>mydgroup.org/israel</a>! The trip sign-up closes soon, so be sure to fill out the interest form (not a commitment) today! Well send you more info on the trip so you can decide if its a good fit for you! </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,32 @@
<p>Brandon and Eric sit down with Dustin Krysak and talk about his journey from warehouse worker to cloud engineer. Plus, Dustin shares his thoughts on how people, not technology, is the key to a successful business and career.</p>
<p><a href="https://destinationlinux.network" rel="nofollow">Destination Linux Network</a><br>
<a href="https://sudo.show" rel="nofollow">Sudo Show Website</a><br>
<a href="https://do.co/dln" rel="nofollow">Sponsor: Digital Ocean</a><br>
<a href="https://bitwarden.com/dln" rel="nofollow">Sponsor: Bitwarden</a><br>
<a href="https://sudo.show/swag" rel="nofollow">Sudo Show Swag</a></p>
<p>Contact Us:<br>
<a href="https://sudo.show/discuss" rel="nofollow">DLN Discourse</a><br>
<a href="mailto:contact@sudo.show" rel="nofollow">Email Us!</a><br>
Matrix: +sudoshow:destinationlinux.network UPDATED!</p>
<p><a href="https://www.digitalocean.com/docs/app-platform/how-to/add-deploy-do-button/" rel="nofollow">Digital Ocean: Deploy to DO</a></p>
<p><a href="https://aws.amazon.com/workspaces/" rel="nofollow">Amazon Workspaces</a><br>
<a href="https://www.cio.com/article/3331604/data-gravity-and-what-it-means-for-enterprise-data-analytics-and-ai-architectures.html" rel="nofollow">CIO.com - What Is Data Gravity</a></p>
<p>Chapters<br>
00:00 Intro<br>
00:42 Welcome<br>
01:00 Sponsor - Digital Ocean<br>
01:56 Ansible Playbooks<br>
05:31 Meet Dustin<br>
11:58 Back in the Day<br>
22:39 The MultiCloud <br>
29:55 Sponsor - Bitwarden<br>
31:01 Commoditizing the Cloud<br>
38:10 People Skills<br>
44:34 Volunteering<br>
52:39 Wrap Up</p><p>Special Guest: Dustin Krysak.</p><p>Sponsored By:</p><ul><li><a href="https://do.co/dln" rel="nofollow">Digital Ocean</a>: <a href="https://do.co/dln" rel="nofollow">$100 Free Credit!</a></li><li><a href="https://bitwarden.com/dln" rel="nofollow">Bitwarden</a></li></ul><p><a href="https://www.patreon.com/sudoshow" rel="payment">Support Sudo Show</a></p>

View file

@ -0,0 +1,153 @@
<p>This week we&#39;re focusing on your questions! We take your calls, answer emails, and with the help of the community we solve some Linux problems!</p>
<h3><strong>-- During The Show --</strong></h3>
<h5>02:40 Caller - Bret</h5>
<ul>
<li>Vendor agnostic hybrid conference room</li>
<li>Audio: <a href="https://www.bhphotovideo.com/c/product/168029-REG/Audio_Technica_PRO44_PRO_44_Hemi_Cardioid_Boundary.html" rel="nofollow">Audio-Technica Pro</a></li>
<li>Video: <a href="https://www.bhphotovideo.com/c/product/1247779-REG/blackmagic_design_bdlkduo2_decklink_duo_2.html" rel="nofollow">PCI capture device</a></li>
<li><a href="http://www.amazon.com/dp/B006JH8T3S/?tag=minddripmedia-20" rel="nofollow">c920 webcam Amazon Affiate Link</a></li>
<li><a href="http://www.amazon.com/dp/B00CRJWW2G/?tag=minddripmedia-20" rel="nofollow">c930e Webcam Amazon Affiliate Link</a></li>
<li><a href="https://www.bhphotovideo.com/c/product/1401958-REG/ptzoptics_pt30x_sdi_gy_g2_30x_optical_zoom_3g_sdi.html" rel="nofollow">PTZOPtics</a></li>
<li><a href="https://www.axis.com/products/network-cameras" rel="nofollow">Axis Cameras</a></li>
</ul>
<h5>22:15 Caller - Tony</h5>
<ul>
<li>Desktop graphics issues</li>
</ul>
<h5>25:55 Guide for installing AMD drivers? - Charlie</h5>
<ul>
<li><a href="https://ask.fedoraproject.org/t/fedora-problem-war-thunder-vulkan-driver-rx-580/14942" rel="nofollow">Detailed Explanation</a></li>
</ul>
<h5>26:50 Google Voice Alternative? - David</h5>
<ul>
<li><a href="https://9to5google.com/2021/03/09/google-voice-soon-no-longer-forward-messages-phone/" rel="nofollow">Google Voice Killing SMS</a></li>
<li><a href="https://matrix.org/docs/projects/bridge/matrix-sms-bridge" rel="nofollow">Matrix SMS Bridge</a></li>
<li><a href="https://matrix.org/docs/projects/bridge/mautrix-twilio" rel="nofollow">Twillio Bridge</a></li>
<li><a href="https://jmp.chat/" rel="nofollow">JMP Chat</a></li>
<li><a href="https://github.com/matrix-org/matrix-bifrost" rel="nofollow">Matrix Bifrost</a></li>
</ul>
<h5>38:00 Caller - Jared</h5>
<ul>
<li>Resizing a windows partition</li>
<li>Use Gparted (defragment the drive first)</li>
<li>Use windows built in Disk Management in the Management Console</li>
</ul>
<h5>40:00 User Responds to 235 Zebre Printers - Skylar</h5>
<ul>
<li><a href="https://www.easypost.com/" rel="nofollow">Easypost</a></li>
</ul>
<h5>42:00 Jordan Replies Fix for WiFi Switching - Jordan</h5>
<ul>
<li><a href="https://wiki.archlinux.org/title/Wpa_supplicant#Roaming" rel="nofollow">Arch Linux Wiki</a></li>
<li><a href="https://askubuntu.com/questions/961246/configure-wifi-roaming-for-gnome-network-manager/1134754#1134754" rel="nofollow">Ask Ubuntu Wifi Roaming</a></li>
<li><a href="https://askubuntu.com/questions/165679/how-to-manage-available-wireless-network-priority#722010" rel="nofollow">Ask Ubuntu Wireless Priority</a></li>
</ul>
<h5>43:50 Low powered convertable device? - Joel</h5>
<ul>
<li>No personal experience, but go go it</li>
<li><a href="https://fedoraproject.org/wiki/Changes/32BitUefiSupport" rel="nofollow">Fedora Wiki 32-bit UEFI support</a> Thank You Conan Kudo</li>
</ul>
<h5>44:50 Pick of the Week</h5>
<ul>
<li><a href="https://github.com/rustdesk/rustdesk" rel="nofollow">RustDesk</a></li>
<li>Remote Desktop Support</li>
</ul>
<h5>46:00 Gadget of the Week</h5>
<ul>
<li><a href="https://github.com/dominikbraun/timetrace" rel="nofollow">Time trace</a></li>
<li><a href="https://www.reddit.com/r/linux/comments/o526e1/timetrace_v0100_supports_project_modules/" rel="nofollow">Reddit Post about Time Trace</a></li>
</ul>
<h5>47:50 Rocky Linux</h5>
<ul>
<li><a href="https://rockylinux.org/news/rocky-linux-8-4-ga-release/" rel="nofollow">Rocky Linux Post</a></li>
<li>Report bugs or issues via Bugzilla</li>
<li>Released as
<ul>
<li>Container Images</li>
<li>Docker Hub</li>
<li>Quay.io</li>
<li>Cloud Offerings</li>
<li>Amazon Web Services</li>
<li>Google Cloud Platform</li>
</ul></li>
</ul>
<h5>50:20 Right to Repair</h5>
<ul>
<li><a href="https://www.vice.com/en/article/v7e37d/national-right-to-repair-bill-filed-in-congress" rel="nofollow">Vice Article</a></li>
<li>Congressman Joseph Morelle (D-NY) filed national right-to-repair legislation with Congress.</li>
<li>Farmers have been locked out of fixing their own tractors</li>
</ul>
<h5>54:40 New HTTP Spec Proposed</h5>
<ul>
<li><a href="https://arstechnica.com/gadgets/2021/06/tired-of-accepting-rejecting-cookies-adpc-wants-to-automate-the-process/" rel="nofollow">Ars Technica Article</a></li>
<li>ADPC</li>
<li>Two specs proposed</li>
<li>Aims to eleminate cookie banners</li>
</ul>
<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/238" 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 <a href="https://element.linuxdelta.com/#/room/#geeklab:linuxdelta.com" rel="nofollow">#GeekLab:linuxdelta.com on Matrix</a></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>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/q2YRakwmC9U" width="480" alt="thumbnail" title="KDE Blur: How Does It Work?" /></p>Stay in the loop: https://t.me/veggeroblog<br /><br />If you want to help me make these videos:<br />Patreon: https://www.patreon.com/niccolove<br />Liberapay: https://liberapay.com/niccolove<br />Paypal: https://paypal.me/niccolove<br /><br />My website is https://niccolo.venerandi.com and if you want to contact me, my telegram handle is [at] veggero.<br /><br />Background music by:<br />After The Fall - https://www.youtube.com/channel/UCGQErWWbH15OMutnpM2vW7w<br />KaizanBlu - https://www.youtube.com/channel/UCUtxQO1jg3bJcRjBWnYAzmw<br />Low FM - https://www.youtube.com/channel/UC831upHpo4t748vRdHSWDmA<br />Idyllic - https://www.youtube.com/watch?v=8QgbdivnDDs&t=92s<br />Evol - https://www.youtube.com/watch?v=F-dDQmDVNzk&t=4s<br />...<br />https://www.youtube.com/watch?v=q2YRakwmC9U

View file

@ -0,0 +1,144 @@
<p>Over the years I've been a consistent[<a href="https://technomancy.us#fn1">1</a>] user of
Thinkpads; early on because I liked the keyboards, but then later
just because I wanted hardware that would last a long time rather
than a machine with a soldered-in battery that's designed to be more
disposable.</p>
<img alt="thinkpad x301" class="right" src="https://technomancy.us/i/x301.jpg" />
<p>My most recent device was a Thinkpad X301 built in 2008 which I
started using in 2016. While it's no speed demon, using Firefox with
<a href="https://ublockorigin.com">uBlock Origin</a> configured to
block 3rd-party scripts by default left it feeling quite usable for
my purposes, and the physical design of the device was perfect. They
used a rubberized coating for the chassis in the X301 that
I haven't seen in any other model that feels really nice on the palm
rest. Unfortunately while nearly every component of that machine has
withstood the test of time, the battery has not. The original
battery's charge is down to around 90 minutes, and while it's
swappable, working new batteries in this form factor simply cannot
be purchased for any amount of money. I bought from two separate
vendors claiming to have original batteries, but both of them sold
me a battery which ballooned up and became unusable after a month or
two.</p>
<p>When I started to look for replacements I was dismayed. So many of
the newer models had fallen into the Appleization
trap—everything must be made as thin and as glossy as possible
at the expense of every other concern. I don't want a thin laptop! I
want a laptop where I can look at it and see what's
displayed on the screen instead of my own face staring back at me. It
seemed it was still possible to find a model with a replaceable
battery, but even this basic feature was becoming increasingly rare.</p>
<img alt="mnt reform in a hammock" src="https://technomancy.us/i/recursion.jpg" />
<p>A couple years ago I became aware of
the <a href="https://crowdsupply.com/mnt/reform">MNT Reform
laptop</a>, and it seems like the perfect antidote to the mistakes
the entire industry seems dead-set on repeating. It's a laptop
that's focused on open design with schematics freely available and
all parts easily serviceable by the end user. Finding this was like
a breath of fresh air; it's like someone was finally listening to
my frustrations.</p>
<img align="left" alt="an Apple ][ computer with its case open" src="https://technomancy.us/i/appleii.jpg" />
<p>The MNT Reform has
been <a href="https://www.inputmag.com/reviews/mnt-reform-review-your-diy-laptop-fantasy-is-here-at-last">described</a>
as "the anti-macbook" which I think is fitting, but ironically I
prefer to think of it as the Apple ][ of laptops (in a good way). If
you're like me and you're fed up with thin laptops, you will be
pleased to see that this machine is <em>chonky</em>. It has to be in
order to have room for its three most unique features: a mechanical
keyboard, a trackball, and a standardized 18650-cell
battery bay. Originally the batteries were what caught my attention
after all the trouble I'd had buying replacements for my Thinkpad, but
when I saw the mechanical keyboard I knew I had to have one. (But
also: can we talk for a second about the <em>audacity</em> of
producing a laptop with a trackball? Much respect.)</p>
<p>Part of having an open design is having everything
documented. While you can get the schematics for everything from the
motherboard PCB to the 3D printed trackball buttons, the part that
nearly everyone will benefit from is the
excellent <a href="https://mntre.com/reform2/handbook/index.html">Operator
Handbook</a> which describes the usage of the system in detail.</p>
<img alt="bottom view of reform with components and PCB visible" class="right" src="https://technomancy.us/i/reform-clear.jpg" />
<p>Other than the thick size, perhaps the most eye-catching feature of
the Reform is its transparent bottom plate, which is laser cut from
acrylic. Similar to the open lid of the Apple ][, it invites you to
take a look inside and reminds you that this machine isn't magic:
it's wires and capacitors and screws and connectors. It's physical
parts you can understand and control.</p>
<p>This machine isn't perfect though; there are trade-offs. The four
ARM Cortex A53 cores in the CPU do not perform any out-of-order or
speculative execution, which means they are not vulnerable to
attacks like <a href="https://technomancy.us">Spectre</a> and Meltdown, but at the cost of
speed. (I'm using it mostly for chat, email, and developing
the <a href="https://fennel-lang.org">Fennel compiler</a>, and it's
plenty fast for that.) The lid closes with a satisfying magnetic
snap, but it doesn't have a lid sensor, so you'll have to turn off
the screen yourself. The stock wifi antenna's range is quite
limited. (But you can easily replace it!) Suspend is
currently <a href="https://source.mnt.re/reform/reform/-/issues/8">not
super reliable</a>, but there are ongoing efforts to improve
that.</p>
<img alt="reform kb" class="right" src="https://technomancy.us/i/reform-kb.jpg" />
<p>The keyboard is ... well, it's head-and-shoulders above any other laptop
keyboard I've tried. Instead of a comically huge space bar, the
bottom row is broken up into a reasonably-sized space bar plus
several other useful keys. But it's still frustrating in a few ways. (Note
that I'm a major keyboard nerd who has spent a lot of time getting my
keyboard setup <a href="https://atreus.technomancy.us">just
right</a> and I am far more picky about this kind of thing than most
people!) While you can reprogram the keybord firmware to
reassign keys with ease, the physical layout is very awkward. It has
a conventional row-stagger which is not great but also not
unusual. The problem is that in most row-staggered boards each
row is offset from the one above it by 1.25 key widths or so, and on
the Reform it's 1.5. Even 1.25 is too much (zero would be ideal),
but 1.5 makes it so you have to contort your hand even more to hit
keys on the "ZXCV" row.</p>
<p>Of course, it's a hackable laptop! Reprogramming the firmware to
rearrange the keys can't fix problems with the physical arrangement,
but I've built hundreds of keyboards by hand, so I planned to do design and
construct one from scratch for my Reform when I got it. Unfortunately it's a little more complicated than I anticipated;
the stock keyboard is integrated with the system controller which is
involved with powering on the entire system and controls the OLED
display containing the battery indicator, etc. I couldn't just adapt
my existing design for a new form factor.</p>
<img align="left" alt="ortholinear kb mock-up in a reform" src="https://technomancy.us/i/olkb.jpg" />
<p>Luckily the folks at OLKB
announced they were
developing <a href="https://www.theregister.com/2021/07/06/ortholinear_keyboard_laptop/">a
kit for an improved keyboard</a> with no row-staggering. I'd prefer
an ergonomic design, but this is still a big improvement over the
stock board, which is itself light years beyond anything I've ever
used in a laptop before. I'm looking forward to building one out.</p>
<p>Overall I'm thrilled with this laptop. It's available both as a DIY set
which needs some assembly (just screwing things together and
plugging connectors; no soldering) and as a prebuilt laptop, but
honestly if you're anywhere near the target market for the Reform,
you're probably going to enjoy the assembly process and are best off
skipping the pre-assembled option. In the end the Reform is a
powerful antidote to the user-hostile trends which have prevailed in
computing over the past decade or so, and if you're anything like me
and you don't mind a little tinkering, I can't recommend it
enough. </p>
<hr />
<p>[<a name="fn1">1</a>] Starting with <a href="https://technomancy.us/74">a T60p in
2007</a> followed by an X61, then an X200s, and finally a
X301. I <a href="https://technomancy.us/160">took a brief detour</a> with a Samsung
ultrabook but the keyboard was so unpleasant that it didn't last
long before I sold it.</p>

View file

@ -0,0 +1,38 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! </p>
<p>- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> family 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=Ezra+5%3A1&version=ESV'>Ezra 5:1</a></p>
<p>- <a href='https://thebiblerecap.podbean.com/e/252-ezekiel-40-42/'>The Bible Recap - Episode 252</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=job+42%3A12&version=ESV'>Job 42:12</a></p>
<p>- Video: <a href='https://www.youtube.com/watch?v=_106IfO6Kc0'>Zechariah Overview</a></p>
<p>- <a href='http://www.thebiblerecap.com/start'>Printable Version of The Bible Recap Reading Plan</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><img src="https://thumbnails.lbry.com/MSYjTWd0DKc" width="480" alt="thumbnail" title="Playing 0 A.D. Alpha 25 - DT LIVE!" /></p>Today, I'm going to be playing one of my favorite free and open source games--0 A.D! This is areal time strategy game that is similar to Age of Empires. 0 A.D. can be found in almost every Linux distro's repositories. It is also available on both Windows and Mac.<br /><br />https://play0ad.com/<br /><br />WANT TO SUPPORT THE CHANNEL? <br />💰 Patreon: https://www.patreon.com/distrotube <br />💳 Paypal: https://www.paypal.com/cgi-bin/webscr...<br />🛍️ Amazon: https://amzn.to/2RotFFi<br />👕 Teespring: https://teespring.com/stores/distrotube<br /><br />DONATE CRYPTO:<br />💰 Bitcoin: 1Mp6ebz5bNcjNFW7XWHVht36SkiLoxPKoX<br />🐶 Dogecoin: D5fpRD1JRoBFPDXSBocRTp8W9uKzfwLFAu<br />📕 LBC: bMfA2c3zmcLxPCpyPcrykLvMhZ7A5mQuhJ<br /><br />SOCIAL PLATFORMS: <br />🗨️ Mastodon: https://distrotoot.com/@derek<br />👫 Reddit: https://www.reddit.com/r/DistroTube/<br />📽️ LBRY/Odysee: https://odysee.com/$/invite/@DistroTu...<br /><br />DT ON THE WEB:<br />🕸️ Website: http://distro.tube<br />🐿️ Gemini Capsule: gemini://distro.tube<br />📁 GitLab: https://gitlab.com/dwt1 <br /><br />FREE AND OPEN SOURCE SOFTWARE THAT I USE:<br />🌐 Brave Browser - https://brave.com/dis872 <br />📽️ Open Broadcaster Software: https://obsproject.com/<br />🎬 Kdenlive: https://kdenlive.org<br />🎨 GIMP: https://www.gimp.org/<br />🎵 Ardour: https://ardour.org/<br />💻 VirtualBox: https://www.virtualbox.org/<br />🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs<br /><br />Your support is very much appreciated. Thanks, guys!<br />...<br />https://www.youtube.com/watch?v=MSYjTWd0DKc

View file

@ -0,0 +1 @@
<!-- SC_OFF --><div class="md"><p>Working in Emacs I often use shift button, also I use delete button. Sometimes I press them both accidentally, but Shift + Delete causes instant deletion of all the text above the cursor (yep, this is how shift+delete works on Windows). Is there a simple way (because I am a dummy) to write something in my .emacs file to ban the combination shift + delete in emacs?</p> <p><strong>Update</strong>: I&#39;m not sure what is going on, I reopened emacs, tried that again: In some documents the shift+delete doesn&#39;t cause the deletion of all the text above the cursor, but in some it still does. Looks like it somehow related to Org mode in my case. Hm... Though, better to deactivate that shift+delete combination anyway.</p> <p><strong>UpDate2:</strong> Looks like shift+delete erase the text between the cursor and the last &quot;mark set&quot; place in the text. Considering that a mark can be set just by double click of the mouse by accident in any place of the text, it causes those unexpected deletions. </p> <p>&#x200B;</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/Dimimimitriks"> /u/Dimimimitriks </a> <br/> <span><a href="https://www.reddit.com/r/emacs/comments/pon2qp/how_to_ban_shift_delete_in_emacs_on_windows/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/pon2qp/how_to_ban_shift_delete_in_emacs_on_windows/">[comments]</a></span>

View file

@ -0,0 +1,2 @@
<p>As PINE64&lsquo;s flagship mainline GNU/Linux smartphone, the PinePhone Pro, was about to be announced, a trailer and some nice renderings showcasing the phone and its features had to be produced. The groundwork for the trailer was started in February 2021 and took all the way up to a few days before the trailer was released at October 15th 2021. The work for the trailer included making the material and...</p>
<p><a href="https://www.pine64.org/2021/10/27/how-meet-the-pinephone-pro-was-made/" rel="nofollow">Source</a></p>

View file

@ -0,0 +1,20 @@
<p>On this episode, we will look at Soda, a data monitoring platform designed to ensure the integrity and fitness of your data right in your application stream.</p>
<p><a href="https://destinationlinux.network" rel="nofollow">Destination Linux Network</a><br>
<a href="https://sudo.show" rel="nofollow">Sudo Show Website</a><br>
<a href="https://bitwarden.com/dln" rel="nofollow">Sponsor: Bitwarden</a><br>
<a href="https://do.co/dln" rel="nofollow">Sponsor: Digital Ocean</a><br>
<a href="https://sudo.show/swag" rel="nofollow">Sudo Show Swag</a></p>
<p>Contact Us:<br>
<a href="https://sudo.show/discuss" rel="nofollow">DLN Discourse</a><br>
<a href="mailto:contact@sudo.show" rel="nofollow">Email Us!</a><br>
Matrix: +sudoshow:destinationlinux.network</p>
<p><a href="https://bitwarden.com/blog/post/quick-tips-to-secure-and-share-your-information/" rel="nofollow">Bitwarden Blog: Quick Tips to Secure and Share Your Information</a></p>
<p><a href="https://www.soda.io" rel="nofollow">Soda Data</a><br>
<a href="https://www.sodalive.io/" rel="nofollow">Soda Live</a>, May 12, 2021<br>
<a href="https://github.com/sodadata" rel="nofollow">Soda on GitHub</a><br>
<a href="https://community.soda.io/slack" rel="nofollow">Soda on Slack</a></p><p>Special Guests: Maarten Masschelein and Tom Baeyens.</p><p>Sponsored By:</p><ul><li><a href="https://do.co/dln" rel="nofollow">Digital Ocean</a>: <a href="https://do.co/dln" rel="nofollow">$100 Free Credit!</a></li><li><a href="https://bitwarden.com/dln" rel="nofollow">Bitwarden</a></li></ul><p><a href="https://www.patreon.com/sudoshow" rel="payment">Support Sudo Show</a></p>

View file

@ -0,0 +1,45 @@
<p><iframe loading="lazy" title="Destination Linux EP58 | 2+2=4 sudo apt update" width="800" height="450" src="https://www.youtube.com/embed/bGzseeS8mOE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p><b>Welcome to Episode 58 of Destination Linux for 2-19-18</b></p>
<p>We are your hosts, Rocco, Ryan, Zeb and Michael</p>
<p><a href="https://distrowatch.com/table.php?distribution=endlessos">Endless OS Released </a></p>
<p><a href="http://linuxscoop.com/video/whats-new-linux-lite-3-8">Linux Lite 3.8 Released</a></p>
<p><a href="http://www.omgubuntu.co.uk/2018/02/ubuntu-data-collection-opt-out">Ubuntu Wants To Be Your Valentine</a></p>
<p><a href="https://pointieststick.wordpress.com/2018/02/07/app-popularity-in-discover/">App popularity in Discover</a></p>
<p><a href="https://pointieststick.wordpress.com/2018/02/09/this-week-in-discover-part-5/">This week in Discover, part 5</a></p>
<p><a href="https://blog.neon.kde.org/index.php/2018/02/12/hiding-neon-lts-edition/">Hiding Neon LTS Edition</a></p>
<p><a href="https://www.linuxtoday.com/infrastructure/kde-plasma-linux-desktop-is-no-longer-vulnerable-to-usb-attacks-update-now-180212125516.html">KDE Plasma No Longer Vulnerable To USB Attacks</a></p>
<p><a href="https://www.linux.com/blog/learn/2018/2/windows-subsystem-linux-bridge-between-two-platforms">Windows 10 Adds More WSL Features</a></p>
<p><a href="https://opensource.com/article/18/2/how-open-source-solved-my-instagram-problem">Need Instagram On Linux? Try Ramme</a></p>
<p><a href="http://ubuntuhandbook.org/index.php/2018/02/yarock-music-player-1-3-1-released-ubuntu-ppa/">Yarock Music Player 1.3.1 Released</a></p>
<p><a href="https://www.afterdawn.com/news/article.cfm/2018/02/14/google-gmail-amp-for-email">Google Looks To Amp Up Gmail</a></p>
<p><a href="https://www.afterdawn.com/news/article.cfm/2018/02/12/vlc-updated-to-3-0-finally-with-chromecast-support">VLC 3.0 Released &#8211; Now With Chromecast</a></p>
<p><a href="https://www.phoronix.com/scan.php?page=article&amp;item=linux-415-cpus&amp;num=1">19 CPU&#8217;s Put To The Test Linux 4.15 Kernel</a></p>
<p><a href="https://www.afterdawn.com/news/article.cfm/2018/02/11/nvidia-admits-that-they-aren-t-making-enough-graphics-cards">Nvidia admits that they aren&#8217;t making enough graphics cards</a></p>
<p><a href="https://dot.kde.org/2018/02/08/new-kde-slimbook-ii-sleek-and-powerful-plasma-based-ultrabook">There is a new KDE Slimbook on sale as from today</a></p>
<p><a href="https://slimbook.es/en/kde-slimbook-2-ultrabook-laptop">KDE Slimbook II</a></p>
<p><a href="http://www.omgubuntu.co.uk/2018/02/ubuntu-data-collection-opt-out" target="_blank" rel="noopener noreferrer"> Ubuntu Wants to Collect Data About Your System</a></p>
<p><a href="https://www.itworld.com/article/2827546/enterprise-software/14-of-the-most-useful-linux-websites.html">14 Of the Most Useful Linux Websites</a></p>
<p><a href="https://thehackernews.com/2018/02/supercomputer-mining-bitcoin.html">Russian Scientists Arrested for Using Nuclear Weapon Facility to Mine Bitcoins</a></p>
<p><a href="https://www.eff.org/deeplinks/2018/02/john-perry-barlow-internet-pioneer-1947-2018">John Perry Barlow, Internet Pioneer, 1947-2018</a></p>
<p><b>What Have I Been Playing: </b><a href="http://store.steampowered.com/app/115800/Owlboy/">Owlboy</a></p>
<p><a href="https://www.gamingonlinux.com/articles/rise-of-the-tomb-raider-announced-for-linux-port-from-feral-interactive.11214?module=articles_full&amp;title=rise-of-the-tomb-raider-announced-for-linux-port-from-feral-interactive&amp;aid=11214">Rise of the Tomb Raider announced for Linux, port from Feral Interactive</a></p>
<p><a href="http://www.feralinteractive.com/en/news/849/">Rise of the Tomb Raider<img src="https://s.w.org/images/core/emoji/13.1.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />: 20 Year Celebration sets forth for macOS and Linux</a></p>
<p><a href="http://store.steampowered.com/app/391220/Rise_of_the_Tomb_Raider/">Rise of the Tomb Raider<img src="https://s.w.org/images/core/emoji/13.1.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" /></a></p>
<p><a href="https://blogs.gnome.org/hughsie/2018/02/11/razer-doesnt-care-about-linux/">Razer Doesn&#8217;t Care About Linux</a></p>
<p><a href="https://www.gamespace.com/all-articles/news/rocket-league-light-up-clip-ons-available-this-march-in-the-us/">Rocket League Light-Up Clip-Ons Available This March in the US</a></p>
<p><b>Admin</b></p>
<p><a href="https://www.patreon.com/destinationlinux">Patreon</a></p>
<p><a href="https://liberapay.com/destinationlinux/">Liberapay</a></p>
<p><a href="https://teespring.com/destinationlinuxpodcast">Destination Linux Apparel</a></p>
<p><a href="http://www.youtube.com/destinationlinux">Destination Linux Youtube</a></p>
<p><b>Where Can You Find Us This Week</b></p>
<ul>
<li>Rocco can be found at <a href="http://www.bigdaddylinux.com">www.bigdaddylinux.com</a></li>
<li>Ryan can be found on youtube at <a href="http://www.youtube.com/dasgeek">www.youtube.com/dasgeek</a></li>
<li>Zeb can be found on youtube at <a href="http://www.youtube.com/zebedeeboss">www.youtube.com/zebedeeboss</a></li>
<li>Michael can be found at <a href="http://www.tuxdigital.com">www.tuxdigital.com</a></li>
<li>All of us can be found on Big Daddy Linux Live! Which is on every Saturday night on the BigDaddyLinux Youtube channel</li>
</ul>
<p>Twitter @bigdaddylinux &nbsp;@dasgeekchannel @zebedeeboss &nbsp;@TuxDigitalcom</p>
<p>A big thank you to each and every one of you for supporting us by watching or listening to Destination Linux</p>
<p>Everybody have a great week and remember the Journey ITSELF is just as important as the Destination</p>

View file

@ -0,0 +1 @@
<p>From agriculture to resumes, Darren Doane jumps back on to Plowtalk to talk about Content Communication.&#160;</p>

View file

@ -0,0 +1,47 @@
<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="Interview with Neal Gompa, Fedora Contributor | Destination Linux 198" width="800" height="450" src="https://www.youtube.com/embed/REZ8Cn8gXAA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div></figure>
<p>This week we have an awesome interview with Neal Gompa, Fedora Contributor, about Fedora 33, BTRFS and his Journey into Linux. We also discuss that status of Accessiblity in Linux. Linux is Everywhere, even in Space as afterall . . . Linux is the Final Frontier. In this episode we discuss just how far Linux has gone including leaving the planet. In the Gaming section we discuss Facebook&#8217;s entrance into Cloud Gaming. Later in the show, we&#8217;ll give you our popular tips/tricks and software picks. Plus so much more, on this week&#8217;s episode of Destination Linux.</p>
<figure class="wp-block-image size-large is-resized"><img loading="lazy" src="https://tuxdigital.com/wp-content/uploads/2019/01/digital-ocean-banner.png" alt="" class="wp-image-1499" width="468" height="60"/><figcaption>Sponsored by: <a rel="noopener noreferrer" href="https://do.co/dln" target="_blank">do.co/dln</a></figcaption></figure>
<h4>Hosts of Destination Linux:</h4>
<p>Noah Chelliah = <a href="http://asknoahshow.com/" target="_blank" rel="noopener noreferrer">asknoahshow.com</a><br>Ryan (DasGeek) = <a href="https://dasgeekcommunity.com" target="_blank" rel="noopener noreferrer">dasgeekcommunity.com</a><br>Jill Bryant Ryniker = <a href="https://linuxgamecast.com/" target="_blank" rel="noreferrer noopener">linuxgamecast.com</a> &amp; <a href="https://linuxchix.org" target="_blank" rel="noreferrer noopener">Linux Chix</a><br>Michael Tunnell = <a href="https://tuxdigital.com" target="_blank" rel="noopener noreferrer">tuxdigital.com</a></p>
<h4>Want to Support the Show?</h4>
<p>Support us on Patreon = <a href="https://destinationlinux.org/patreon" target="_blank" rel="noopener noreferrer">https://destinationlinux.org/patreon</a><br>Support us on Sponsus = <a href="https://destinationlinux.org/sponsus" target="_blank" rel="noopener noreferrer">https://destinationlinux.org/sponsus</a><br>Destination Linux Network Store = <a href="https://destinationlinux.network/store" target="_blank" rel="noopener noreferrer">http://dlnstore.com</a></p>
<h4>Want to follow the show and hosts on social media?</h4>
<p>You can find all of our social accounts at <a href="https://destinationlinux.org/contact">https://destinationlinux.org/contact</a></p>
<h3>Segment Index</h3>
<ul><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h00m00s" target="_blank">00:00:00</a> = Coming up on DL198</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h00m38s" target="_blank">00:00:38</a> = Welcome to Destination Linux 198</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h00m57s" target="_blank">00:00:57</a> = Episode 200 Is Almost Here!</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h01m12s" target="_blank">00:01:12</a> = DLN GameFest (November 15th)</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h01m33s" target="_blank">00:01:33</a> = New 4th Host Added to DL!</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h02m49s" target="_blank">00:02:49</a> = New Show Coming to the <a href="https://destinationlinux.network" target="_blank" rel="noreferrer noopener">Destination Linux Network</a></li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h02m57s" target="_blank">00:02:57</a> = DLN <a href="https://discourse.destinationlinux.network/t/its-time-to-give-back-dln-charity-drive/2888" target="_blank" rel="noreferrer noopener">Gives Back Charity Event</a></li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h05m12s" target="_blank">00:05:12</a> = Digital Ocean &#8211; App Platform Service ( <a href="https://do.co/dln" target="_blank" rel="noreferrer noopener">https://do.co/dln</a> )</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h06m21s" target="_blank">00:06:21</a> = Feedback: Linux Accessibility in response to MS Edge on Linux</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h13m42s" target="_blank">00:13:42</a> = How to Send in Feedback to the show</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h13m54s" target="_blank">00:13:54</a> = Interview with <a href="https://twitter.com/Det_Conan_Kudo" target="_blank" rel="noreferrer noopener">Neal Gompa</a> (Fedora Contributor)</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h46m06s" target="_blank">00:46:06</a> = Security Advisory: Be Cautious of App Permissions</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h46m53s" target="_blank">00:46:53</a> = Bitwarden &#8211; Open Source Password Manager ( <a href="https://bitwarden.com/dln" target="_blank" rel="noreferrer noopener">https://bitwarden.com/dln</a> )</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h48m16s" target="_blank">00:48:16</a> = Space: A Linux Frontier</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=00h58m12s" target="_blank">00:58:12</a> = <a href="https://www.facebook.com/fbgaminghome/blog/cloud-gaming-meet-facebook-gaming" target="_blank" rel="noreferrer noopener">Facebook Cloud Gaming</a>? Um Okay</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=01h01m27s" target="_blank">01:01:27</a> = Tip of the Week: /sys</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=01h02m16s" target="_blank">01:02:16</a> = Software Spotlight: <a href="https://openphdguiding.org/" target="_blank" rel="noreferrer noopener">PHD2 Guiding Software</a></li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=01h03m42s" target="_blank">01:03:42</a> = Outro</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=01h03m58s" target="_blank">01:03:58</a> = Become a Patron</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=01h04m29s" target="_blank">01:04:29</a> = Join the DLN Community!</li><li><a rel="noopener noreferrer" href="https://www.youtube.com/watch?v=REZ8Cn8gXAA&amp;t=01h05m01s" target="_blank">01:05:01</a> = Check out the DestinationLinux.Network website for more great content</li></ul>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/-LyODsypGHI" width="480" alt="thumbnail" title="Integrate Command line Tools With TMUX" /></p>This tutorial is focused on TMUX and how I have been using it to save time and speed up my workflow.<br /><br />Let me know what you think and if there is anything specific you would like to learn about.<br /><br />----------------► Wanna Support Me? ◀︎----------------<br />Github: <br /> https://www.github.com/sponsors/gavinok<br />Patreon: <br /> https://www.patreon.com/gavinfreeborn<br /><br />----------------► Wanna Checkout My Dots? ◀︎----------------<br />Vimrc:<br /> https://github.com/Gavinok/dotvim<br />Vimrc:<br /> https://github.com/Gavinok/emacs.d<br />----------------► Come Join The Community◀----------------<br />LBRY:<br /> https://open.lbry.com/@GavinFreeborn:d?r=FVxxdjxLmbpPS5K4EdMsLjBjkxv9eEGs<br />Matrix Space:<br /> https://matrix.to/#/%23gavinfreeborn:matrix.org<br />Discord:<br /> https://discord.gg/JJk5KKU<br /> <br />00:00 Intro<br />00:00:41 What is tmux<br />00:01:39 Why tmux<br />00:04:22 Start of demo<br />00:04:51 Keybinding Overview<br />00:06:32 Session Management<br />00:07:36 Panes vs Windows vs Sessions<br />00:09:58 Async Command Execution<br />00:11:10 Pros and Cons of tmux Window Management<br />00:12:04 Session Groups (AKA best part)<br />00:14:12 Automation With tmux<br />00:19:09 Tmux Is not always the best option<br />00:20:38 Outro<br />...<br />https://www.youtube.com/watch?v=-LyODsypGHI

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/_ZCEiFA8ezA" width="480" alt="thumbnail" title="Garuda Linux - The Best "Just Works" Distro?" /></p>In this video I review Garuda Linux, one of the best "Just Works" Arch Based distros.<br /><br /><br />Download Garuda Linux<br />https://garudalinux.org/downloads.html<br /><br /><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=_ZCEiFA8ezA

View file

@ -0,0 +1,194 @@
<!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" />
<meta name="author" content="By Pierre Neidhardt" />
<title>Typed, customizable hooks</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>
<style type="text/css">
a.sourceLine { display: inline-block; line-height: 1.25; }
a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
a.sourceLine:empty { height: 1.2em; position: absolute; }
.sourceCode { overflow: visible; }
code.sourceCode { white-space: pre; position: relative; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
code.sourceCode { white-space: pre-wrap; }
a.sourceLine { text-indent: -1em; padding-left: 1em; }
}
pre.numberSource a.sourceLine
{ position: relative; }
pre.numberSource a.sourceLine:empty
{ position: absolute; }
pre.numberSource a.sourceLine::before
{ content: attr(data-line-number);
position: absolute; left: -5em; text-align: right; vertical-align: baseline;
border: none; pointer-events: all;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
a.sourceLine::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</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">Typed, customizable hooks</h1>
<p class="author">By Pierre Neidhardt</p>
</header>
<p>Below, we share what we've learned about hook design, extensibility, and how we've improved upon legacy hook systems in Nyxt.</p>
<p>Note: For an introduction to hooks in Nyxt, see our <a href="https://nyxt.atlas.engineer/article/hooks.org">other article on hooks</a>.</p>
<p>Definitions:</p>
<ul>
<li><p>Hook: a place in the code where we can add code dynamically.</p></li>
<li><p>Hook handler: a piece of code that can be evaluated by a hook.</p></li>
</ul>
<p>During the development of Nyxt we quickly felt dissatisfied with our initial hook implementation (based on Emacs, built with cl-hooks (<a href="https://github.com/scymtym/architecture.hooks" class="uri">https://github.com/scymtym/architecture.hooks</a>)). Hooks are an important extension feature. They need to be powerful, reliable, and easy to use.</p>
<p>No existing implementations satisfied our needs, so we decided to write our own with the following enhancements/concepts:</p>
<ul>
<li><p>Hooks are first-class objects not just any list so that we can tell if something evaluates to a hook.</p></li>
<li><p>We can <code>disable</code> hook handlers without deleting them, so that they can be toggled on and off.</p></li>
<li><p>In Emacs, handlers can be any function, including lambdas which make hooks hard to manipulate (e.g. you can't remove a lambda by its name since it has no name).</p>
<ul>
<li><p>Lambdas are effectively blackboxes once added to the hook.</p></li>
<li><p>Lambdas don't compare, so adding the same lambda twice will unintentionally stack it.</p></li>
</ul>
<p>To overcome this limitation while still allowing the use of lambdas, we created a <code>handler</code> type with a <code>name</code> slot. This allows us to fix both issues: The handler can be associated to a lambda and handlers can be compared.</p></li>
<li><p>In Emacs, hook handlers are always run sequentially and do not return anything. There is no way to customize how they are run and what return value we expect. In particular, they do now allow for composing handlers which would in effect turn the hook into a pipeline!</p>
<p>Our hook class has a <code>combination</code> slot which accepts a function that schedules the handler execution and collects the return value(s).</p></li>
<li><p>In Emacs, hooks cannot be typed which leads to &quot;hard to catch&quot; errors. E.g., when the user tries to add a function of the wrong type to a hook. Therefore, we've added macros to help define <em>typed hooks</em>.</p></li>
<li><p>Emacs hooks are simple lists, they can't be <em>attached</em> to a given object. In our hook system we've added support for globally-accessible hooks, as well as object-bound hooks.</p></li>
</ul>
<p>Our work has now been <a href="https://github.com/ruricolist/serapeum/issues/41">merged in Serapeum</a> and can be accessed from the <code>serapeum/contrib/hooks</code> package.</p>
<p>Let's have a look at the implementation details!</p>
<h1 id="declaring-new-hook-types">Declaring new hook types</h1>
<p>We provide a <code>define-hook-type</code> macro. For instance</p>
<div class="sourceCode" id="cb1" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb1-1" data-line-number="1">(define-hook-type string-&gt;string (<span class="kw">function</span> (<span class="kw">string</span>) <span class="kw">string</span>))</a></code></pre></div>
<p>will generate</p>
<ul>
<li><p>a <code>handler-string-&gt;string</code> class,</p></li>
<li><p>a <code>hook-string-&gt;string</code> class,</p></li>
<li><p>a <code>make-handler-string-&gt;string</code> function,</p></li>
<li><p>a <code>make-hook-string-&gt;string</code> function,</p></li>
<li><p>a <code>add-hook</code> method specialized over <code>hook-string-&gt;string</code> and <code>handler-string-&gt;string</code>.</p></li>
</ul>
<p>Say we've got a <code>#'my-downcase</code> function of type <code>(function (string) string)</code>. Now we can create a hook and add <code>#'my-downcase</code> to it.</p>
<div class="sourceCode" id="cb2" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb2-1" data-line-number="1">(<span class="kw">defvar</span><span class="fu"> test-hook </span>(hooks:make-hook-string-&gt;string))</a>
<a class="sourceLine" id="cb2-2" data-line-number="2"></a>
<a class="sourceLine" id="cb2-3" data-line-number="3">(hooks:add-hook test-hook</a>
<a class="sourceLine" id="cb2-4" data-line-number="4"> (make-handler-string-&gt;string #&#39;my-downcase))</a></code></pre></div>
<p>The library comes with the following predefined hook types:</p>
<div class="sourceCode" id="cb3" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb3-1" data-line-number="1">(define-hook-type void (<span class="kw">function</span> ()))</a>
<a class="sourceLine" id="cb3-2" data-line-number="2">(define-hook-type string-&gt;string (<span class="kw">function</span> (<span class="kw">string</span>) <span class="kw">string</span>))</a>
<a class="sourceLine" id="cb3-3" data-line-number="3">(define-hook-type number-&gt;number (<span class="kw">function</span> (<span class="kw">number</span>) <span class="kw">number</span>))</a>
<a class="sourceLine" id="cb3-4" data-line-number="4">(define-hook-type any (<span class="kw">function</span> (&amp;<span class="kw">rest</span> <span class="kw">t</span>)))</a></code></pre></div>
<ul>
<li>The <code>void</code> hook type is for handlers that don't return anything. This is useful when we want to use handlers for their side effects.</li>
<li>The <code>any</code> hook type accepts any handler type.</li>
</ul>
<h1 id="lambdas-as-handlers">Lambdas as handlers</h1>
<p>You don't always want to declare top-level functions before adding a handler to a hook. So the above example could be replaced with the following:</p>
<div class="sourceCode" id="cb4" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb4-1" data-line-number="1">(<span class="kw">defvar</span><span class="fu"> test-hook </span>(hooks:make-hook-string-&gt;string))</a>
<a class="sourceLine" id="cb4-2" data-line-number="2"></a>
<a class="sourceLine" id="cb4-3" data-line-number="3">(hooks:add-hook test-hook</a>
<a class="sourceLine" id="cb4-4" data-line-number="4"> (make-handler-string-&gt;string (<span class="kw">lambda</span> (s) (<span class="kw">string-downcase</span> s))</a>
<a class="sourceLine" id="cb4-5" data-line-number="5"> <span class="bu">:name</span> &#39;my-downcase))</a></code></pre></div>
<h1 id="disabling-handlers">Disabling handlers</h1>
<p>See the <code>disable-hook</code> and <code>enable-hook</code> methods which accept multiple handler names as argument.</p>
<div class="sourceCode" id="cb5" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb5-1" data-line-number="1">(disable-hook test-hook &#39;my-downcase)</a>
<a class="sourceLine" id="cb5-2" data-line-number="2">(run-hook test-hook <span class="st">&quot;FOO&quot;</span>)</a>
<a class="sourceLine" id="cb5-3" data-line-number="3"><span class="co">; =&gt; &quot;FOO&quot;</span></a>
<a class="sourceLine" id="cb5-4" data-line-number="4">(enable-hook test-hook &#39;my-downcase)</a>
<a class="sourceLine" id="cb5-5" data-line-number="5">(run-hook test-hook <span class="st">&quot;FOO&quot;</span>)</a>
<a class="sourceLine" id="cb5-6" data-line-number="6"><span class="co">; =&gt; &quot;foo&quot;</span></a></code></pre></div>
<p>Not passing any handler name is equivalent to selecting all handlers.</p>
<p>Disabling a handler and re-enabling it moves it to the front of the handler list, which may change the handler order. Keep this in mind if execution order matters!</p>
<h1 id="handler-combinations">Handler combinations</h1>
<p>A hook can be configured in how it runs its handlers. Example:</p>
<div class="sourceCode" id="cb6" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb6-1" data-line-number="1">(<span class="kw">defvar</span><span class="fu"> test-hook </span>(hooks:make-hook-number-&gt;number</a>
<a class="sourceLine" id="cb6-2" data-line-number="2"> :handlers (<span class="kw">list</span> #&#39;<span class="dv">1</span>+ #&#39;square)</a>
<a class="sourceLine" id="cb6-3" data-line-number="3"> :combination #&#39;hooks:combine-composed-hook))</a>
<a class="sourceLine" id="cb6-4" data-line-number="4"></a>
<a class="sourceLine" id="cb6-5" data-line-number="5">(run-hook test-hook <span class="dv">2</span>)</a>
<a class="sourceLine" id="cb6-6" data-line-number="6"><span class="co">;; =&gt; 9</span></a></code></pre></div>
<p>In the above the result of the first handler is passed as the input to the second and so on. The final result is the output of the last handler.</p>
<p>The library provides a few default combination functions:</p>
<ul>
<li><p><code>default-combine-hook</code>: Return the list of the results of the HOOK handlers applied to the arguments.</p></li>
<li><p><code>combine-hook-until-failure</code>: As above but stop the list at the first handler that returns nil.</p></li>
<li><p><code>combine-hook-until-success</code>: As above but return the first non-nil result.</p></li>
<li><p><code>combine-composed-hook</code>: This is the handler from the above example.</p></li>
</ul>
<h1 id="typing">Typing</h1>
<p>A common pitfall that keeps tripping Emacs users is when a handler is added to a hook that takes an argument of an unexpected type. This kind of error is usually only caught at runtime.</p>
<p>This is why we've introduced typing in our library. In the [[Declaring new hook types]] section we saw that defining a hook type generates a new <code>add-hook</code> method that's specialized over the specified types. Since there is only one such method, it's only possible to call <code>add-hook</code> over the right handler object, which is created by the associated typed handler constructor (e.g. <code>handler-string-&gt;string</code>).</p>
<p>Common Lisp compilers like <a href="http://www.sbcl.org/">SBCL</a> perform function type-checking at compile time, which allows us to catch errors early when the user tries to create a handler over a function of the wrong type.</p>
<h1 id="global-hooks-and-object-bound-hooks">Global hooks and object-bound hooks</h1>
<p>The <code>define-hook</code> function allows for registering hooks globally without binding them to global variables.</p>
<p>With just a type and a name, it defines a global hook which can then be accessed with the <code>find-hook</code>:</p>
<div class="sourceCode" id="cb7" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb7-1" data-line-number="1">(hooks:define-hook &#39;hooks:hook-number-&gt;number &#39;foo)</a>
<a class="sourceLine" id="cb7-2" data-line-number="2">(hooks:find-hook &#39;foo)</a>
<a class="sourceLine" id="cb7-3" data-line-number="3"><span class="co">;; #&lt;HOOKS:HOOK-NUMBER-&gt;NUMBER {1007537C83}&gt;</span></a>
<a class="sourceLine" id="cb7-4" data-line-number="4"><span class="co">;; T</span></a></code></pre></div>
<p>You can also bind a hook over an object. This hook is unique to the object.</p>
<div class="sourceCode" id="cb8" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb8-1" data-line-number="1">(hooks:define-hook &#39;hooks:hook-number-&gt;number &#39;foo</a>
<a class="sourceLine" id="cb8-2" data-line-number="2"> :object #&#39;mul2)</a>
<a class="sourceLine" id="cb8-3" data-line-number="3">(hooks:find-hook &#39;foo #&#39;mul2)</a>
<a class="sourceLine" id="cb8-4" data-line-number="4"><span class="co">;; #&lt;HOOKS:HOOK-NUMBER-&gt;NUMBER {100757FC43}&gt;</span></a>
<a class="sourceLine" id="cb8-5" data-line-number="5"><span class="co">;; T</span></a></code></pre></div>
<h1 id="conclusion">Conclusion</h1>
<p>We've been using our novel hook system in Nyxt for a while now and it's proven both robust and flexible. It has removed a whole class of errors from user configurations!</p>
<p>We hope these design decisions will be met with success. It'd be great to see this kind of sophistication in Emacs and other extensible programs!</p>
<p>Thanks for reading :-)</p>
</body>
</html>

View file

@ -0,0 +1 @@
<p>Megyn Kelly is joined by Sen. Ted Cruz to discuss the Supreme Court and what happens next with Amy Coney Barrett, his personal experience working for Supreme Court justices, the debate this week and his suggestion for new moderators and a new format, the media, 2016, 2020 and 2024 presidential politics and more.</p><p><br /></p><p>Follow The Megyn Kelly Show on all social platforms:</p><p><br /></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><br /></p><p>Find out more information at:</p><p><br /></p><p><a href="https://www.devilmaycaremedia.com/megynkellyshow">https://www.devilmaycaremedia.com/megynkellyshow</a></p>

View file

@ -0,0 +1 @@
&#32; submitted by &#32; <a href="https://www.reddit.com/user/lazybear579f"> /u/lazybear579f </a> <br/> <span><a href="https://youtu.be/yZRyEhi4y44">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/rtknko/streamline_your_email_management_with_mu4e_live/">[comments]</a></span>

View file

@ -0,0 +1 @@
<p>Megyn Kelly is joined by Ben Shapiro, author of "The Authoritarian Moment," co-founder of The Daily Wire, to talk about COVID mask mandates and vaccine shaming, Dr. Fauci's latest media tour, President Biden's effectiveness, Gov. Ron DeSantis and President Trump running in 2024, why our cultural moment is "authoritarian" in America in 2021, the obsession with titles, the Olympics, how best to fight the cultural battles, and more.</p><p><br /></p><p>Follow The Megyn Kelly Show on all social platforms:</p><p><br /></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><br /></p><p>Find out more information at:</p><p><a href="https://www.devilmaycaremedia.com/megynkellyshow">https://www.devilmaycaremedia.com/megynkellyshow</a></p>

View file

@ -0,0 +1 @@
<table> <tr><td> <a href="https://www.reddit.com/r/unixporn/comments/ra13nd/sway_my_new_rice/"> <img src="https://preview.redd.it/lbuwtk7qev381.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=20f20d6a3a96c1329c908702df5c50ee2f0861ba" alt="[SWAY] My new rice" title="[SWAY] My new rice" /> </a> </td><td> &#32; submitted by &#32; <a href="https://www.reddit.com/user/Arya_Kiran"> /u/Arya_Kiran </a> <br/> <span><a href="https://i.redd.it/lbuwtk7qev381.png">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/unixporn/comments/ra13nd/sway_my_new_rice/">[comments]</a></span> </td></tr></table>

View file

@ -0,0 +1 @@
This is Toby Sumpter with your CrossPolitic Daily News Brief for Tuesday, April 6, 2021. Major League Baseball is Wokey McWoke Face, Shohei Ohtani setting records, China money is going digital, and Japan gives China a rare rebuff.&#160; Are you a Fight Laugh Feast Club Member? For as little as $5 a month you can [&#8230;]

View file

@ -0,0 +1 @@
<a href="https://www.facebook.com/NorthernValleyTFC/"><img src="https://scontent.fict1-1.fna.fbcdn.net/v/t1.6435-1/cp0/p50x50/151177197_115670240562784_7305556504870656520_n.png?_nc_cat=105&ccb=1-5&_nc_sid=dbb9e7&_nc_ohc=xoFCcgZhpMsAX_xHxjk&_nc_ht=scontent.fict1-1.fna&oh=4ec63298f66f25af09c5755fa579e557&oe=616904E6" alt="" /></a><a href="https://www.facebook.com/NorthernValleyTFC/">NV TFC</a><a href="https://www.facebook.com/NorthernValleyTFC/posts/128448839284924"></a><i></i><p>Since it's spring break there is no TFC tonight, but parents, you've made it halfway through spring break! If you are still wondering what to do with you child who is normally in school, might I suggest teaching them to play pitch?! It's never too late to learn some cards! After that, quiz them on some Bible trivia! This is one of the places I've gotten questions to stump kids on for a long time! <a href="https://icebreakerideas.com/bible-trivia-questions-answers/">https://icebreakerideas.com/bible-trivia-questions-answers/</a></p><a href="https://icebreakerideas.com/bible-trivia-questions-answers/">Check your knowledge of Bible with our BIGGEST list of Bible Trivia Questions and Answers. Try our Bible Quiz NOW!<img src="https://external.fict1-1.fna.fbcdn.net/safe_image.php?d=AQEntxbGAVhocMg9&w=540&h=282&url=https%3A%2F%2Ficebreakerideas.com%2Fwp-content%2Fuploads%2F2019%2F04%2FBible-Trivia-Questions-and-Answers.jpg&cfs=1&upscale=1&fallback=news_d_placeholder_publisher&_nc_oe=6eb0d&_nc_sid=06c271&ccb=3-5&_nc_hash=AQH-KceZ9Z07aw0e" alt="" width="500" height="262" caption="" /></a><p>icebreakerideas.com</p><p>270 Bible Trivia Questions + Answers (New & Old Testament)</p>Check your knowledge of Bible with our BIGGEST list of Bible Trivia Questions and Answers. Try our Bible Quiz NOW!<a href="https://icebreakerideas.com/bible-trivia-questions-answers/">Check your knowledge of Bible with our BIGGEST list of Bible Trivia Questions and Answers. Try our Bible Quiz NOW!</a>

View file

@ -0,0 +1 @@
<!-- SC_OFF --><div class="md"><p>Many have suggested adding a lambda reader construct to Emacs Lisp: something like <code>#(princ $1)</code>, which would be translated to <code>(lambda (x) (princ x))</code>.</p> <p>Well, it turns out that you can (ab)use the existing reader constructs for this purpose. Specifically, <code>,x</code> and <code>,@x</code> are translated to <code>(\, x)</code> and <code>(\,@ x)</code>, which are without meaning outside of a backquoted list.</p> <p>That means that it is legal to define and use <code>\,</code> as a function or macro:</p> <pre><code>(defmacro \, (body) &quot;Return an anonymous function. In BODY, symbols of the type $N, where N is a non-zero, positive number, represent positional arguments. $* represents a list of optional remaining arguments. ,(+ $1 $2) expands to (lambda ($1 $2) (+ $1 $2)). See `lambda&#39;.&quot; (let ((total 0) rest) (cl-labels ((search (form) (if (consp form) (progn (search (car form)) (search (cdr form))) (if (eq form &#39;$*) (setq rest t) (let ((s (prin1-to-string form))) (if (string-match &quot;^\\$\\([1-9][0-9]*\\)$&quot; s) (let ((n (string-to-number (match-string 1 s)))) (setq total (max total n))))))))) (search body)) `(lambda ,(append (cl-loop for n from 1 upto total collect (intern (format &quot;$%d&quot; n))) (and rest &#39;(&amp;rest $*))) ,body))) </code></pre> <p>With this macro, you can replace</p> <pre><code>(mapcar (lambda (x) (with-output-to-string (princ x))) objects) </code></pre> <p>with</p> <pre><code>(mapcar ,(with-output-to-string (princ $1)) objects) </code></pre> <p>If you want your lambda to accept an unlimited number of arguments, use `$*&#39;:</p> <pre><code>(advice-add &#39;some-function :before ,(dolist (x $*) (message &quot;%s&quot; x))) </code></pre> <p>What are the downsides? Strictly, there is only one. The docstring for the macro above will not be displayed in Emacs&#39; help system, which will always display the built-in information about <code>,</code>.</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/quote-only-eeee"> /u/quote-only-eeee </a> <br/> <span><a href="https://www.reddit.com/r/emacs/comments/r4b3au/working_implementation_of_shorthand_lambda_syntax/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/r4b3au/working_implementation_of_shorthand_lambda_syntax/">[comments]</a></span>

View file

@ -0,0 +1,45 @@
<!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" />
<meta name="author" content="By John Mercouris" />
<title>Autofills</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">Autofills</h1>
<p class="author">By John Mercouris</p>
</header>
<p>Autofills are a feature in Nyxt that allow you to compose and fill in forms as rapidly as possible. Typical autofill functionality includes inputting 'remembered' information such as your username, address or telephone number. This is useful, but can be further expanded.</p>
<p><img src="../static/image/article/typical-autofill.png" /></p>
<p>In Nyxt, autofills are dynamic, and context sensitive. In addition to being able to 'remember' data, autofills can also compute data. This is because autofills can be functions.</p>
<p>An example of a dynamic autofill can be a requirement to fill in the current date on a form. Instead of manually retrieving and copying the date, you can have an autofill automatically input the date in whatever format you wish.</p>
<p><img src="../static/image/article/nyxt-autofill.png" /></p>
<p>Beyond simple workflows of inputting a single element, autofills can be used in a more advanced fashion. Imagine that you are working on a customer support ticket. Typically, you have a template for messages:</p>
<pre id="template" class="language"><code>Dear customer W,
We&#39;ve received your information about problem X, and we are working on
a solution. We anticipate we&#39;ll have more information for you by date
Y.
thank you for continued patience,
signed, Z
</code></pre>
<p>Instead of writing this information out all the time, you could have an autofill that prompts you for the values of W, X, Y, and Z to automatically compose your customer response messages.</p>
<p>To find out more about autofills and how to configure them in Nyxt, please see <code>describe-slot</code>, <code>autofills</code>.</p>
<p>We hope you enjoy using Nyxt's autofills!</p>
<p>Thanks for reading :-)</p>
</body>
</html>