# entry

guid: https://christitus.com/the-teamviewer-scam/
title: The Teamviewer Scam
link: https://christitus.com/the-teamviewer-scam/
hash: �h݌+����p~�L
attributes: {"enclosures":[]}
content:
<p>This keeps getting worse… removal of lifetime memberships, subscriptions for everything, and now predatory tactics to force it’s users to keep paying by removing cancellations of the subscriptions.</p>
<h2 data-sanitized-id="still-the-most-used-remote-software">Still the most used Remote Software?</h2>
<p>Teamviewer rose to the #1 spot after logmein stopped offering a free tier. In the beginning it was a great piece of software and even offered a lifetime membership. You pay for it once and have it forever. The free tier was also really nice in a pinch you could load up their software and easily remote in to any PC. To this day, it is one of the most used remote software applications on the market.</p>
<h2 data-sanitized-id="the-downfall">The Downfall</h2>
<p>On June 1st, 2021 Teamviewer stopped supporting Teamviewr 9 &amp; 10 versions that had the last of the lifetime subscriptions. This forced anyone that bought these “lifetime” licenses to purchase a subscription or move to a different product. However, something else happened behind the scenes that has NOT been talked about. The Lock in and predatory behaviors were being escalated to force people to continue paying them far beyond their intended expiration date.</p>
<h2 data-sanitized-id="the-scam">The Scam</h2>
<p>Behind the scenes, Teamviewer has removed the ability to CANCEL any subscriptions. This used to not be the case, but you have to create a support ticket to cancel is the official text on their site.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/the-teamviewer-scam/cancel-ticket.webp" alt="" data-sanitized-class="img-fluid"> </p>
<p>Finding the support ticket creation is difficult and hidden through a sister site with a DIFFERENT login.</p>
<p>Use this website: <a href="https://support.teamviewer.com/en/support/tickets">https://support.teamviewer.com/en/support/tickets</a></p>
<p>If you do NOT cancel within 28 days of the renewal you WILL BE CHARGED for an ENTIRE YEAR!</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/the-teamviewer-scam/28days.webp" alt="" data-sanitized-class="img-fluid"> </p>
<p>Ticket answer time? 7-10 DAYS!</p>
<p>Need to talk with someone now? Call their phone number at +1-800-638-0253 Use option 4 and then Option 3 to Cancel</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/zbrPQsMK2gU?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/replace-google-fonts-with-bunny-fonts/
title: Replace Google Fonts With Bunny Fonts
link: https://christitus.com/replace-google-fonts-with-bunny-fonts/
hash: {�����O�ϔ(E@
attributes: {"enclosures":[]}
content:
<p>Did you know Google Fonts is bloated and can cause longer load times? Bunny fonts to the rescue!</p>
<p>Oh, I forgot to mention, Google fonts is also NOT GDPR compliant. For legal reasons and traffic you might switch over to bunny because it IS GDPR compliant.</p>
<h2 data-sanitized-id="installation">Installation</h2>
<p>Wordpress Install: <a href="https://wordpress.org/plugins/replace-google-fonts-with-bunny-fonts/">https://wordpress.org/plugins/replace-google-fonts-with-bunny-fonts/</a></p>
<p>Using a static site like me? or are a web designer? Great! It’s even easier.</p>
<p>The Bunny Fonts API was designed to be fully compatible with the Google Fonts CSS v1 API, making the switch as easy as changing the hostname.</p>
<p>Simply swap <code>https://fonts.bunny.net/css</code> in place of <code>https://fonts.googleapis.com/css</code> on your website’s source code and let your users enjoy better privacy.</p>
<p>Thanks to DigitalSparky for the Pull Request and updating my website for me! Here is Bunny font implementation pull request on this website: <a href="https://github.com/ChrisTitusTech/website/pull/108">https://github.com/ChrisTitusTech/website/pull/108</a></p>
<h2 data-sanitized-id="future-improvements">Future Improvements</h2>
<p>There are so many more improvements to make! Thanks to feedback from users here is the to-do list.</p>
<ul>
<li>Use both Netlify AND Cloudflare utilizing round-robin DNS (Thanks Larry!)</li>
<li>Fix “Total Blocking Time” delays with either a new theme or using Partytown to debloat Javascript <a href="https://github.com/BuilderIO/partytown">https://github.com/BuilderIO/partytown</a></li>
</ul>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/nBcZASOwo1Q?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/microsoft-is-driving-users-away/
title: Microsoft Is Driving Users Away
link: https://christitus.com/microsoft-is-driving-users-away/
hash: T��b!��X���!a/�
attributes: {"enclosures":[]}
content:
<p>What will be the end of Windows? Microsoft.</p>
<p>I’ve been a lifelong Windows user since the 90s and even MS-DOS back in the 80s, but things are changing. I’ve been using other operating systems more and more. MacOS and Linux are getting mixed into my workflow more and Windows less. Why? Microsoft is actively angering it power users by removing features. By trying to simplify Windows they are actively making administering it worse.</p>
<h2 data-sanitized-id="the-problem">The Problem</h2>
<p>Microsoft is in a panic from the continued loss of it’s user base. They are making some improvements like the GUI and cleaning up other elements that give a more cohesive look. No more mixing Metro UI and Legacy panels like Windows 10. While this is good on the surface, they aren’t fixing anything. In fact, things are about to get much worse with the removal of these panels. On Tuesday, I had a printer issue at a client site and I was going to pull up the “Devices and Printers” panel to manage the drives and printing default settings. In the most recent 22H2 Windows 11 update, they hid it!</p>
<p>Using old Control Panel (Start-&gt;Run-&gt;<code>control</code>)</p>
<p>Clicking on this will redirect you to the new settings printer that gives NO options to do any advanced troubleshooting and removes the ability to FIX the issue!</p>
<p>What about the old <code>control printers</code> shortcut? remapped to the new crap.</p>
<h2 data-sanitized-id="the-solution">The Solution</h2>
<p>With any Windows problem, Microsoft never really removes ANYTHING! Remember, this company is still using legacy code from the 90s in spots and just slapping in new coat of paint on top of it every 5 years when they need to extract more money from its users.</p>
<p>To Access the old devices and printer use the run prompt and type the following:</p>
<div data-sanitized-class="highlight"><pre tabindex="0" data-sanitized-class="chroma"><code data-lang="fallback" data-sanitized-class="language-fallback"><span data-sanitized-class="line"><span data-sanitized-class="cl">shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}
</span></span></code></pre></div><p>Alternatively, you can create a new shortcut and assign the key combination to it.</p>
<ul>
<li>Create a new shortcut on your desktop</li>
<li>Set the location to: explorer.exe shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}</li>
<li>Set the name to Devices and Printers</li>
<li>Choose the shortcut icon</li>
<li>Add the key combination shortcut (CTRL + ALT + D is default for this window)</li>
</ul>
<p>This provides you an easy to access link as well as overwriting the keyboard shortcut to open the old version.</p>
<p>Success for now…</p>
<h2 data-sanitized-id="the-future">The Future</h2>
<p>MacOS and Linux will keep gaining market share. Microsoft needs to stop actively sabotaging it’s users. MacOS is bland and hasn’t changed in years, while Linux has a technical barrier of entry with little support. Yet, both of these options are better than modern Windows unless you need Gaming. However, Steam with it’s steamdeck might be changing the game…</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/q7JmN8_URGY?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


author: ;Eva K Bartlett
hash: ����/=~1�>L] �
guid:
https://odysee.com/commentator-journalist%2C-marwa-osman%2C-on:062446ca89c45c64595e95475a7ec06b0ef70a3d

title:
Commentator &amp; Journalist, Marwa Osman, on the Western Sanctions Preventing Syria's Rescue Efforts

content:
<p><img src="https://thumbnails.lbry.com/NXvvDoZ2f88" width="480" alt="thumbnail" title="Commentator &amp; Journalist, Marwa Osman, on the Western Sanctions Preventing Syria's Rescue Efforts"></p>Early last week, Turkey, Syria &amp; surrounding countries experienced a series of earthquakes &amp; aftershocks which tragically struck Syria and Turkey the hardest, killing over 35,000 people now, including over 4,300 in Syria. <br><br>Syria has already suffered over a decade of the West's devastating war on the Syrian people. Now this tragedy. <br><br>I spoke with Marwa Osman to discuss the impact of the West's cruel anti-Syrian sanctions on the current rescue &amp; relief efforts in Syria. Marwa is a Lebanese journalist, political commentator, host &amp; producer of the Mideast Stream, and a university lecturer.<br><br>“It's already devastating in Syria because of the cumulative effect of the sanctions. Before the earthquakes, the sanctions worked on three specialized levels: <br><br>The first level is on the financial institutions in Syria  that are directly linked to the government. If you want to wire money from outside of Syria to any bank in Syria, it has to go through the central bank of Syria, which has been sanctioned since the early days of the war. Which means if you want to transfer &amp; wire money to the people affected by the earthquake to their bank accounts in Syria, you can't, because its still under sanctions...<br><br>The second level: the health sector in Syria. The sanctions are on everything within the governmental institutions in Syria, one of which is the Ministry of Health, which controls all of the health sector in Syria. Syria does have privatized hospitals, but majorly all of the hospitals in Syria are controlled by the government, because everyone has the right to have medical care in Syria. By doing these sanctions on all institutions related to the Syrian government, you by default sanction the health sector in Syria.<br><br>Third: sanctioning any country that deals with the Syrian government, whether buying selling products, especially medical products or machinery needed for reconstruction, ambulances...You're not allowed to deal with Syria or you will be sanctioned...If you have the right technology, you can detect whether there are people under the rubble. Syria isn't even allowed to buy this technology, because of the sanctions.”<br><br>Follow Marwa:<br>https://twitter.com/Marwa__Osman<br>https://t.me/Marwa_OsmanLB<br><br>LINKS FOR DONATING TO SYRIA:<br><br>https://www.facebook.com/wataawanoo?mibextid=ZbWKwL <br><br>https://haysatar.com/campaign/242/help-the-earthquake-victims-in-syria <br><br>https://m.facebook.com/story.php?story_fbid=pfbid02agS6UrYXDJxaMzFsiwekyYUFmCjKzH5txoHz7JsMUmqPeKnAE1QFd4hBW2qLUjzwl&amp;id=100069728167963&amp;mibextid=Nif5oz<br><br>RELATED TO THE SANCTIONS:<br><br>Western sanctions will mean that more Syrians die after the earthquakes<br>https://web.archive.org/web/20230212044123/https://www.rt.com/news/571295-western-sanctions-syria-earthquake/<br><br>US sanctions are part of a multi-front war on Syria, and its long-suffering civilians are the main target<br>https://web.archive.org/web/20230212045008/https://www.rt.com/op-ed/494613-us-sanctions-war-syria/ <br><br>Western leaders, screw your ‘Sanctions Target the Regime’ blather: Sanctions KILL PEOPLE<br>https://web.archive.org/web/20230212054459/https://www.rt.com/op-ed/475983-sanctions-kill-people-syria-us/<br>...<br>https://www.youtube.com/watch?v=NXvvDoZ2f88

link:
https://odysee.com/commentator-journalist%2C-marwa-osman%2C-on:062446ca89c45c64595e95475a7ec06b0ef70a3d

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/commentator-journalist,-marwa-osman,-on/062446ca89c45c64595e95475a7ec06b0ef70a3d/71633d.mp4","type":"video/mp4","length":226687369}]}


guid: https://odysee.com/tamara-lorincz-canada%27s-support-for:5e0f177e4b9e1e411c1ca3078a9edd385b8540a6
author: ;Eva K Bartlett
link: https://odysee.com/tamara-lorincz-canada%27s-support-for:5e0f177e4b9e1e411c1ca3078a9edd385b8540a6
hash: ��hڽt$Q �.:�
title:
Tamara Lorincz: Canada's Support For Ukraine's War on the Donbass &amp; Canada's Anti-Russia Policies

content:
<p><img src="https://thumbnails.lbry.com/KpEaovhVois" width="480" alt="thumbnail" title="Tamara Lorincz: Canada's Support For Ukraine's War on the Donbass &amp; Canada's Anti-Russia Policies"></p>I spoke with Canadian researcher and writer,Tamara Lorincz, about Canada's militaristic foreign and defence policies, Canada's belligerent NATO role in bombing sovereign nations, Canada's role in fomenting the Maidan protests which preceded the (2014) illegal coup in Ukraine, and, among other things, Canada's support to Ukraine's war on the Donbass.<br><br>Tamara has a Masters in International Politics and Security Studies and is currently working on her PhD. She has has long been very actively involved in various anti-war, peace &amp; educational initiatives, with an emphasis in exposing the military’s impacts on the environment, Canadian defence and foreign policy, disarmament, &amp; resistance to NATO,  among many other things.<br><br>See her bio here: https://www.balsillieschool.ca/people/tamara-lorincz/ <br>Follow her: https://twitter.com/TamaraLorincz<br><br>Conversation points:<br><br>*Trudeau government &amp; Canada's new defence policy: (June 2017) “Strong, Secure and Engaged”--a “militaristic, belligerent, posture on the world. Canada will spend $553 billion on military over next 20 years...Defence policy very informed by membership in NATO &amp; partnership in NORAD.”<br><br>*Canada's role in the illegal bombing of the former Yugoslavia (1999)<br>*Canada's role in the US-led illegal occupation of Afghanistan (Canada has never been held accountable for war crimes committed in Afghanistan)<br>*(2011) Canadian general led NATO's bombing of Libya, killing civilians &amp; destroying civilian infrastructure<br>*(2014-2016) Canada's illegal bombing, with US-led coalition, of Syria.<br><br>*Under Harper government, FM Baird was on the ground fomenting the Maidan protests &amp; illegal coup; under Trudeau and Freeland support for Ukraine continues.<br><br>LINKS:<br>https://rabble.ca/politics/world-politics/canadas-interference-in-ukrainian-democracy/<br>https://www.canada.ca/en/department-national-defence/services/operations/military-operations/current-operations/operation-unifier.html<br>https://ottawacitizen.com/news/national/defence-watch/canada-failed-when-it-trained-ukrainian-troops-linked-to-the-far-right-says-nazi-hunter<br>https://banderalobby.substack.com/p/the-canadian-bandera-network<br>https://coat.ncf.ca/research/Chomiak-Freeland/C-F1.htm<br><br>*My reports from the Donbass, under Ukrainian fire.<br>https://ingaza.wordpress.com/the-donbass-my-articles-videos-interviews-from-on-the-donetsk-lugansk-peoples-republics-2019-present/<br>https://www.mintpressnews.com/under-fire-from-ukraine-everyday-life-in-the-donetsk-peoples-republic/262363/<br>https://ingaza.wordpress.com/2022/04/28/on-the-osces-claims-of-russian-war-crimes/ <br><br>*CBC<br>https://twitter.com/TamaraLorincz/status/1544813798069923840 <br>https://ingaza.wordpress.com/2022/07/17/government-funded-cbc-smears-me-interview-with-maverick-media-cbc-fake-news-hit-piece-targets-journalists-eva-bartlett/ <br>https://t.me/Reality_Theories/10222<br>https://www.thecanadafiles.com/articles/facts-are-subversive-how-canadas-mainstream-media-spreads-disinformation-about-the-conflict-in-ukraine<br><br>*Ukraine Intensified Its Shelling of the Donbass Weeks Before Russia's Special Military Operation:<br>https://www.thepostil.com/the-military-situation-in-the-ukraine/<br><br><br>*Disrupting war mongers:<br>I disrupted #Canada's Minister of @NationalDefence @AnitaAnandMP. War in #Ukraine is not about "democracy". #Canada should call for a ceasefire not send more weapons. @TorontoMet Uni should have a real debate &amp; stand for #peace <br>https://twitter.com/TamaraLorincz/status/1583683692047699969<br><br>https://twitter.com/TamaraLorincz/status/1571957556435898369<br><br><br>Join us to stand for "Peace Now! Stop the #Ukraine #Russia War, Stop #NATO" on Sun. Feb. 26 from 1-2pm at the Waterloo Public Sq. 75 King St. Part of the International Weekend of Action. <br>https://twitter.com/TamaraLorincz/status/1626695803585679380<br><br>Fascinating Insights on Russia, by Americans Who Chose to Relocate Here<br>https://youtu.be/VHhePpl723g<br>...<br>https://www.youtube.com/watch?v=KpEaovhVois

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/tamara-lorincz-canada's-support-for/5e0f177e4b9e1e411c1ca3078a9edd385b8540a6/364037.mp4","type":"video/mp4","length":108922169}]}


guid: https://odysee.com/dr.-marwa-osman-on-recent-developments:836ee1c3dc8037cf2ebe60b9116223be6e2c2e13
title: Dr. Marwa Osman On Recent Developments in Occupied Palestine
author: ;Eva K Bartlett
link: https://odysee.com/dr.-marwa-osman-on-recent-developments:836ee1c3dc8037cf2ebe60b9116223be6e2c2e13
hash: cFӓ�c�)��F�EE
content:
<p><img src="https://thumbnails.lbry.com/0vc6tMaKlJI" width="480" alt="thumbnail" title="Dr. Marwa Osman On Recent Developments in Occupied Palestine"></p>Following our mid-February conversation, I spoke again with Lebanese journalist and political commentator, Dr. Marwa Osman, about recent developments in occupied Palestine. <br><br>Among the things discussed were:<br><br>-The new Israeli law passed in the Knesset that legitimizes the deportation &amp; ethnic cleansing of Palestinians by revoking their citizenship and residency.<br>-The near-daily resistance acts against the occupation forces, particularly at inhumane “checkpoints” &amp; against Israeli invasions into Jenin Camp.<br>-The UN Charter on right for people under occupation to defend themselves by any means possible, including armed resistance.<br>-That Israel bombs Gaza and Syria routinely without world condemnation, including just two weeks after the worst earthquake to hit the Levant in 100 years.<br>-The brutal Israeli policies of terrorism in Gaza: gunning down fishers and farmers; shooting medics, including firing dart bombs at medics; the over 15 year full blockade of Gaza; destroying Gaza's sole power plant and not allowing Palestinians to rebuild it; not allowing Palestinians to maintain or improve on their sewage holding and treatment facilities (meaning floods of sewage, sewage pumped into the sea, sewage contaminating the ground water).<br><br>Follow Marwa:<br>https://twitter.com/Marwa__Osman <br>https://t.me/Marwa_OsmanLB <br><br>[See our previous conversation: Commentator &amp; Journalist, Marwa Osman, on the Western Sanctions Preventing Syria's Rescue Efforts https://www.youtube.com/watch?v=NXvvDoZ2f88 ]<br><br>RECOMMENDED LINKS:<br><br>https://twitter.com/palinfoen<br>https://twitter.com/QudsNen <br>https://twitter.com/PalEvePlus <br>https://twitter.com/MyPalestine0<br>https://twitter.com/ShehabAgency <br>https://twitter.com/j_nagency<br><br><br>RELATED LINKS:<br><br>https://www.972mag.com/citizenship-residency-revocation-explainer/<br>https://opt2007.wordpress.com/2007/11/15/huwara-lines-one-of-israels-degrading-deadly-military-checkpoints<br>https://ingaza.wordpress.com/2021/04/17/israeli-settlers-attack-palestinians-steal-land-with-impunity-imagine-outrage-calls-for-sanctions-if-any-other-state-did-it/<br>https://ingaza.wordpress.com/2011/08/06/stars-and-bombs/<br>https://t.me/Marwa_OsmanLB/428<br>https://twitter.com/Marwa__Osman/status/1627169416105304065 <br>https://www.rt.com/op-ed/532726-israel-airstrikes-syria-lebanon/ <br>https://opt2007.wordpress.com/2007/08/27/caged-in-ram/<br>https://ingaza.wordpress.com/2013/11/05/observations-from-occupied-palestine-part-1/<br>https://opt2007.wordpress.com/2007/07/01/nablus-invasion-aftermath/<br>https://opt2007.wordpress.com/2007/12/31/azzoun-village-under-israeli-assault-and-lockdown/<br>https://ingaza.wordpress.com/2014/01/01/observations-from-occupied-palestine-in-gaza/<br>https://ingaza.wordpress.com/2021/03/09/gaza-has-suffered-the-longest-most-barbaric-lockdown-in-the-world-i-know-because-i-lived-through-three-years-of-it/<br>https://pchrgaza.org/en/category/fishermen/ <br>https://ingaza.wordpress.com/videos-from-gaza/fishing-under-fire/<br>https://www.youtube.com/watch?v=5PVoHhuZqrQ <br>https://www.youtube.com/watch?v=u-Vt4jSw8y0<br>https://ingaza.wordpress.com/2008/11/17/they-would-have-already-shot-us-by-now/<br>https://ingaza.wordpress.com/2009/09/03/israeli-terrorism-at-sea-israelis-destroy-boats-and-lives/<br>https://ingaza.wordpress.com/2009/07/01/israeli-naval-abductions-and-shooting-at-palestinian-fishermen-its-routine/ <br>https://gisha.org/en/increase-in-israeli-navy-attacks-on-gaza-fishermen-including-children/ <br>https://ingaza.wordpress.com/2009/05/22/israel-destroying-gazas-farmlands-arson-in-johr-ad-dik/<br>https://ingaza.wordpress.com/videos-from-gaza/farming-under-fire-in-the-border-region/<br>https://ingaza.wordpress.com/2009/02/03/canada-okay-with-israeli-soldiers-firing-on-unarmed-palestinian-farmers-and-us/<br>https://www.youtube.com/@gazanews2009/videos<br>https://ingaza.wordpress.com/2009/02/27/the-third-hit-her-in-the-kneecap-teenager-targeted-by-zionist-soldiers/<br>https://ingaza.wordpress.com/2009/04/06/lost-in-the-buffer-zone/<br>https://ingaza.wordpress.com/2010/02/15/how-israeli-policies-and-attacks-have-ravaged-gazas-agricultural-sector/ <br>https://ingaza.wordpress.com/2009/01/15/7-minutes-before-the-2nd-bombing/ <br>https://ingaza.wordpress.com/2012/11/20/abu-tomaa-house-deir-al-balah-now-an-f-16d-crater/<br>https://ingaza.wordpress.com/2009/01/05/israeli-army-kills-palestinian-medic-with-dart-bomb/ <br>https://ingaza.wordpress.com/2009/03/16/ensuring-maximum-casualties-in-gaza/<br>https://ingaza.wordpress.com/2009/02/04/next-time-it-will-hurt-more-israeli-threat-against-surviving-family-members-of-white-phosphorous-attack/<br>WP over Jabaliya<br>https://youtu.be/O_sK87XjEDc<br>https://ingaza.wordpress.com/2009/06/18/attack-on-water-brings-sanitation-crisis/<br>https://www.youtube.com/watch?v=VVedD30tvu4 <br>Gaza playlist<br>https://www.youtube.com/playlist?list=PLqtiZC-4QZC3l7asjnh7Fq8E-UxLt2EjT<br>https://peoplesdispatch.org/2022/09/22/shireen-abu-akleh-was-deliberately-killed-by-an-israeli-sniper-claims-fresh-investigation-report/<br>https://t.me/Marwa_OsmanLB/447<br>...<br>https://www.youtube.com/watch?v=0vc6tMaKlJI

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/dr.-marwa-osman-on-recent-developments/836ee1c3dc8037cf2ebe60b9116223be6e2c2e13/2b52c0.mp4","type":"video/mp4","length":242898987}]}


guid: yt:video:D1Xvy7y1Aq0
title: 2022 FIFA World Cup Mogrts on Fox Sports
author: ;ukramedia
link: https://www.youtube.com/watch?v=D1Xvy7y1Aq0
hash: �6 �^m]P����HM�
attributes:
{"enclosures":[{"url":"https://www.youtube.com/v/D1Xvy7y1Aq0?version=3","title":"2022 FIFA World Cup Mogrts on Fox Sports","description":"In this video, I will show you some of the Motion Graphics Templates (MOGRTS) I created for the 2022 Men's FIFA World Cup on Fox Sports. Check it out!\n\n#AfterEffects #AdobeAfterEffects #worldcup","type":"application/x-shockwave-flash","height":390,"width":640,"thumbnails":["https://i1.ytimg.com/vi/D1Xvy7y1Aq0/hqdefault.jpg"]}]}


title: Interview With Jeff Monson: "The people of the Donbass want peace."
author: ;Eva K Bartlett
hash: ���x[����>N�f*
guid:
https://odysee.com/interview-with-jeff-monson-the-people-of:f1f576df662073f08ebca1f33df82a518837dfff

content:
<p><img src="https://thumbnails.lbry.com/h1uuDgFUAnc" width="480" alt="thumbnail" title="Interview With Jeff Monson: " the people of donbass want peace.></p>In Moscow I spoke with Jeff Monson, a world-acclaimed American mixed martial arts fighter and political activist. <br><br>Jeff travelled to the Lugansk People's Republic in 2016, and has returned to the LPR and neighbouring Donetsk People's Republic nearly a dozen times since, speaking with every day people about their lives under Ukraine's war on the Donbass.<br><br>We spoke about his experiences in the Donbass and how they directly contradicted media claims, as well as his opening of dozens of sports schools in Russia and now in Donetsk.<br><br>Monson, together with RT journalist Donald Courter, collaboratively-produced the independently-funded documentary “8 Years Before”, on the suffering that the people of the Donbass under Ukraine's 8+ years of bombings.<br>[ https://www.youtube.com/watch?v=JM0VYkL_UI4 ]<br>...<br>https://www.youtube.com/watch?v=h1uuDgFUAnc

link:
https://odysee.com/interview-with-jeff-monson-the-people-of:f1f576df662073f08ebca1f33df82a518837dfff

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/interview-with-jeff-monson-the-people-of/f1f576df662073f08ebca1f33df82a518837dfff/24930d.mp4","type":"video/mp4","length":500696515}]}


guid: https://christitus.com/changes/
title: Changes
link: https://christitus.com/changes/
hash: ���z}B؞h� %ĩL
attributes: {"enclosures":[]}
content:
<p>Moving to Twitch from YouTube in 2023… for project development and daily work.</p>
<h2 data-sanitized-id="why">Why</h2>
<p>This was not a monetary decision, YouTube will pay more than Twitch, but I have done enough YouTube videos to understand that my growth from a personal level will be limited with YouTube’s 3 videos a-week schedule. By moving to Twitch, I can live stream project work and not rely on finishing projects every 1-2 days to make videos. I can do larger projects and make more polished ones that aren’t rushed out before moving to the next video.</p>
<h2 data-sanitized-id="growth">Growth</h2>
<p>By focusing on one project for a week, a month, or more… I can grow my skills much faster and in a way that will benefit all, including myself.</p>
<h2 data-sanitized-id="money">Money</h2>
<p>YouTube pays me roughly $3000-$4000 in ad revenue per month pre-tax. Twitch is about $100 per month.</p>
<p>By switching, and reducing my YouTube content, I anticipate a 50%-70% reduction from YouTube, but Twitch would need to make $2000 a month to balance this out. I’m not sure if that is possible, but I can make this up in real life outside of social media if needed.</p>
<h2 data-sanitized-id="youtube-future">Youtube Future</h2>
<p>I would have liked to keep everything on YouTube with live streams, but after looking at a year of doing that on YouTube, I would be better off doing nothing over there based on past performance. Its live streaming is not good from a broken chat moderation system, lack of features, and having live streams on youtube hurts video content on the same channel from doing it over 100 times.</p>
<p>For videos, I will only make a video once a project wraps up or has a major update. I won’t make a video to meet a quota or meet an arbitrary schedule. I’ll publish a video when there is major progress on a project from the Twitch streams.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/hv3bfDhEyAI?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/tiny11-has-problems/
title: Tiny11 Has Problems
link: https://christitus.com/tiny11-has-problems/
hash: 0X8�Zj�[��p����
attributes: {"enclosures":[]}
content:
<p>Using any custom Windows ISO is problematic for many reasons outlined in this article.</p>
<h2 data-sanitized-id="the-main-problems">The Main Problems</h2>
<ul>
<li>Botnets</li>
<li>Viruses</li>
<li>Keyloggers</li>
<li>Crypto Miners</li>
</ul>
<blockquote>
<p>But what about Virus scan? Tiny11 is CLEAN!</p>
</blockquote>
<p>Antivirus is just a security layer and should NEVER be relied on. More often than not, it will allow viruses through or classify legit programs as viruses.</p>
<h3 data-sanitized-id="how-do-they-bypass-antivirus">How do they bypass Antivirus?</h3>
<p>When you are distributing an entire operating system, like Tiny11, anything can be modified. Keyloggers can be loaded before an antivirus or have them part of edge. You could steal session tokens from your logged in accounts, or modify Windows defender to exclude the viruses at a system level.</p>
<h3 data-sanitized-id="by-why-would-tiny11-do-this">By why would Tiny11 do this?</h3>
<p>Redistributing any form of a modified Windows is illegal. A man was sentenced to 15 months in prison just for Redistributing restore discs preventing ewaste <em>Source:</em> <a href="https://www.polygon.com/windows/2018/4/25/17280178/eric-lundgren-windows-restore-disks-microsoft-prison">https://www.polygon.com/windows/2018/4/25/17280178/eric-lundgren-windows-restore-disks-microsoft-prison</a>.</p>
<p>Not only is the Tiny11 developer risking prison time if caught, but what motivates any custom iso maker given the risks? These are real questions that anyone with ANY common sense would come to the conclusion there has to be a payout somewhere. A small harmless program using your system to mine resources? keylogging passwords or credit cards? Spread chaos? or use you to attack others in a Botnet?</p>
<p>All these are strong motivators, but it’s possible they are breaking the law just so you can have a clean version of Windows out of the goodness in their heart. You decide, but don’t be shocked when you are compromised when using any custom ISO.</p>
<h2 data-sanitized-id="building-yourself">Building Yourself</h2>
<p>Build with <a href="https://github.com/ntdevlabs/tiny11builder">https://github.com/ntdevlabs/tiny11builder</a>, but do NOT use the oscdimg.exe as the signing is missing a proper timestamp. Always use official Microsoft tools from their website. oscdimg.exe is included in the Windows ADK Package located @ <a href="https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install">https://learn.microsoft.com/en-us/windows-hardware/get-started/adk-install</a></p>
<p><strong>Why should you not trust digital signatures</strong> - Check out the latest hack from 3cx and it exploiting them in this article: <a href="https://www.bleepingcomputer.com/news/microsoft/10-year-old-windows-bug-with-opt-in-fix-exploited-in-3cx-attack/">https://www.bleepingcomputer.com/news/microsoft/10-year-old-windows-bug-with-opt-in-fix-exploited-in-3cx-attack/</a></p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/3UVKfliA_Rc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/recovering-deleted-windows-boot-partition/
title: Recovering Deleted Windows Boot Partition
link: https://christitus.com/recovering-deleted-windows-boot-partition/
hash: =�} ;}�3�Y����D�
attributes: {"enclosures":[]}
content:
<p>Is your Windows boot partition missing? This guide fixes it!</p>
<h2 data-sanitized-id="requirements">Requirements</h2>
<ul>
<li>Windows Boot media Download here: <a href="https://www.microsoft.com/software-download/windows11">https://www.microsoft.com/software-download/windows11</a></li>
<li>Linux Live USB for partition resizing. I recommend gparted: <a href="https://gparted.org/download.php">https://gparted.org/download.php</a></li>
</ul>
<h2 data-sanitized-id="partitioning-the-drive">Partitioning the Drive</h2>
<p>This is meant for a GPT Drive using EFI boot on a modern Windows. If you computer is less than 5 years old, this is probably how your system is setup. If you are using an old system it might be DOS/MBR based and this guide is NOT to be used!</p>
<p>From Gparted in Linux create a FAT32 partition at least 300 MB in size with the <code>boot</code> flag.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/recover-deleted-partition/bootflag.webp" alt="bootflag" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="copy-boot-files-from-windows-iso">Copy Boot Files from Windows ISO</h2>
<p>Boot into your Windows ISO you downloaded above and press <code>Shift + F10</code> to pull up command prompt</p>
<p>Run the utility <code>DISKPART</code></p>
<ul>
<li><code>list vol</code> - list volumes and make note of what they are called</li>
<li><code>select partition #</code> - select the new EFI Partition you created in Gparted</li>
<li><code>assign letter g:</code> - pick something that is NOT C:</li>
<li><code>exit</code> - exit the program</li>
</ul>
<p><em>Note: If you have problems your main partition with the installed windows is probably not assigned as C: and just follow the steps above to assign it letter C:</em></p>
<p>Create the Boot files on the new EFI partition with <code>bcdboot</code></p>
<div data-sanitized-class="highlight"><pre tabindex="0" data-sanitized-class="chroma"><code data-lang="fallback" data-sanitized-class="language-fallback"><span data-sanitized-class="line"><span data-sanitized-class="cl">bcdboot c:\Windows /s g: /f ALL
</span></span></code></pre></div><p>Once this is done you can check to see if Windows will detect your boot partition with this command:</p>
<div data-sanitized-class="highlight"><pre tabindex="0" data-sanitized-class="chroma"><code data-lang="fallback" data-sanitized-class="language-fallback"><span data-sanitized-class="line"><span data-sanitized-class="cl">bootrec /scanos
</span></span></code></pre></div><h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/UGqBZwPIOqc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/atlasos-review/
title: AtlasOS Review
link: https://christitus.com/atlasos-review/
hash: ��H��P��K'Y
attributes: {"enclosures":[]}
content:
<p>I don’t review Custom ISO or Custom Windows. Anything that requires downloading ISO is an immediate red flag. AtlasOS takes a different approach using official Microsoft ISOs and modifying them using an open source tool.</p>
<h2 data-sanitized-id="what-is-it">What is it?</h2>
<p>A stripped version of windows that has had a LOT of Microsoft’s tools and bloat removed. It is NOT to be used lightly or by an uneducated or non-tech savvy person! However, in the right hands it can be a good tool when you have a specific need, but I would NOT daily drive it.</p>
<h2 data-sanitized-id="the-main-issues">The Main Issues</h2>
<p>I take issue with its main marketing being “secure”, when it is anything but secure. I do not like Defender, Edge, MRT, or any numerous microsoft security projects built in to Windows, but saying you are more secure by not having them is madness.</p>
<p>They did make a thread about this on twitter below addressing some of the backlash since the Linus Tech Tips coverage.</p>
<blockquote data-sanitized-class="twitter-tweet"><p lang="en" dir="ltr">To address the recent concerns about AtlasOS' security, and what we're doing to improve.<br><br>🧵</p>— Atlas (@AtlasOS) <a href="https://twitter.com/AtlasOS/status/1651284816489336832?ref_src=twsrc%5Etfw">April 26, 2023</a></blockquote>

<p>AtlasOS 22H2 (Current Release) has the following security issues:</p>
<ul>
<li>No Windows Updates (Updates are done manually using their EXE tool and this can be hit and miss)</li>
<li>MRT is missing. (Malicious Removal Tool)</li>
<li>Defender is gone. (Good performance boost, but most people need an Anti-Virus.)</li>
<li>Anything related to SecHealth, HealthCheck, MsMpEng, SmartScreen, and any Misc. Tools for virus or malware protection.</li>
<li>Some security improvements in Networking configuration were made, but they disable most logging which makes it less secure.</li>
<li>Automatic Elevation of Admin without Consent Ex. <code>ConsentPromptBehaviorAdmin</code> entry <code>0</code> - Will NOT prompt user.</li>
<li>Virtualization Based security</li>
<li>Spectre and Meltdown mitigations removed</li>
</ul>
<h3 data-sanitized-id="what-else-was-removed">What Else was Removed?</h3>
<ul>
<li>Microsoft Edge</li>
<li>Internet Explorer</li>
<li>WebView</li>
<li>OneDrive</li>
<li>MSPaint</li>
<li>OneNote</li>
<li>OfficeHub</li>
<li>Solitare</li>
<li>Many other MS Store Apps (Maps, Feedbackhub, Camera, etc.)</li>
<li>Error Reporting</li>
<li>Telemetry</li>
<li>Logging (Printer, Events, Etc.)</li>
<li>Windows Restore and Restore Points</li>
<li>Remote Assistance</li>
<li>Microsoft Sign-In (Login for PC)</li>
<li>Background Apps</li>
</ul>
<h3 data-sanitized-id="improvement-suggestions-for-atlasos">Improvement suggestions for AtlasOS</h3>
<ul>
<li>Defrag tasks should be left alone. Windows Defrag does utilize TRIM on ssd’s and should be run.</li>
<li>Disk Cleanup tasks are also beneficial.</li>
<li>Inform the public that this is a VERY INSECURE spin that is an EXTREME DEBLOAT!</li>
<li>Offer a Security flavor that has all the security issues addresed</li>
<li>Enable VBS (Virtualization based security) - In testing this netted no performance gains</li>
<li>Logging needs to be more robust and is too stripped down. Troubleshooting an AtlasOS system would be a nightmare.</li>
<li>Fill out the “what is removed section” in FAQ.</li>
<li>Better documentation. Example: unpacking the playbook with the password <code>malte</code> is hard to find.</li>
<li>Incorporate basic security hygiene - Check out the project <a href="https://github.com/securitywithoutborders/hardentools">https://github.com/securitywithoutborders/hardentools</a></li>
</ul>
<h2 data-sanitized-id="who-is-this-for">Who is this for?</h2>
<p>Its for someone with a specific purpose in mind. Playing a few games, a kiosk, or using the machine for simple tasks. It is NOT suitable for browsing the internet or using as a daily driver in it’s current state. If you are aware of the security issues, and have the ability to navigate them, it <em>might</em> be for you. For the average user… HELL NO!</p>
<blockquote data-sanitized-class="twitter-tweet"><p lang="en" dir="ltr">I'm working on an AtlasOS Review. <br>Please stop recommending this for the average person. <a href="https://t.co/UFBmKN5YCq">pic.twitter.com/UFBmKN5YCq</a></p>— Chris Titus Tech (@christitustech) <a href="https://twitter.com/christitustech/status/1651325245209341959?ref_src=twsrc%5Etfw">April 26, 2023</a></blockquote>

<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/UICz1S1xuHo?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: yt:video:tOQE2FGuGn8
title: Bruce de Torres on TNT Radio interviewed Anton Chaitkin on April 16, 2023
author: ;Anton Chaitkin
link: https://www.youtube.com/watch?v=tOQE2FGuGn8
hash: �`�!�sDT��B��`
attributes:
{"enclosures":[{"url":"https://www.youtube.com/v/tOQE2FGuGn8?version=3","title":"Bruce de Torres on TNT Radio interviewed Anton Chaitkin on April 16, 2023","description":"For more information: https://whowearebook.com\n\nIn this April 15th, 2023 interview, Anton gives an overview on his 3-volume work Who We Are, and a status report on Volume 2: he’s currently writing chapter 8, out of the planned 12 or 13 chapters.\n\nA special emphasis of the show starts at 30 minutes and 15 seconds into the recording:\n\nWhen interviewer Bruce de Torres asks Anton to “teach” about the fallacy of Free Trade, Anton elaborates on the inner history of Southern Reconstruction after the Civil War. Anton’s discoveries about that era will challenge most of today’s opinions about what happened then.\n\nThose who worked for industrialization were also the most militant fighters to end the oppression of Black people. \n\nThe sharp lesson for today is that the liberal establishment’s anti-industrial (and perpetual war) policy means poverty and death for the world’s poor.","type":"application/x-shockwave-flash","height":390,"width":640,"thumbnails":["https://i1.ytimg.com/vi/tOQE2FGuGn8/hqdefault.jpg"]}]}


guid: https://christitus.com/ame-wizard-the-future-of-debloat/
title: AME Wizard - The Future of Debloat?
link: https://christitus.com/ame-wizard-the-future-of-debloat/
hash: l�O#��f�wq1t�u��
attributes: {"enclosures":[]}
content:
<p>I recently made a review of AtlasOS and what drove it is the AME Wizard made by a different entity. This overviews it and what it is and is NOT!</p>
<h2 data-sanitized-id="can-we-trust-it">Can we trust it?</h2>
<p>Their is parts of it that are open-source and other parts are closed source and gated behind the <a href="https://ameliorated.io/">https://ameliorated.io/</a> team. This is done for monetary purposes and security. They do gate the playbook process and AME Wizard verification. They can also charge for auto-updates related to the playbooks.</p>
<p>Personally, I don’t mind this approach, but it does give me pause. When they are getting money for maintaining multiple custom windows playbooks from different teams, it will make it more secure as the incentive to remain virus-free and legitimate is more important because they make money from their reputation.</p>
<p>Right now to immediately get verified you can go through their patreon and for $10/Month you get verified playbook publications.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/ame/verified.webp" alt="" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="my-recommendations">My Recommendations</h2>
<p>It is still the early days of these custom windows installs. Right now they only have a handful of patreon donations and until they start making a considerable amount, I can’t recommend it.</p>
<p>The documentation for making custom playbooks or using the open-source cli program is not out right now. This makes it a project I can’t verify or use, because all the playbooks I’ve seen just strip out too many things to either recommend or use as a daily driver.</p>
<p>The future of the project is really bright, and I look forward to seeing the continued evolution of it.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/Y35Prm8nG40?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


title: Measure &amp; Improve Your Site's Footprint with Carbon Control from Catchpoint WebPageTest
author: ;Scott Jehl
hash: i�����ா�-�
attributes: {"enclosures":[]}
guid:
https://scottjehl.com/posts/measure-and-improve-your-site-s-footprint-with-carbon-control-from-catchpoint-webpagetest/

link:
https://scottjehl.com/posts/measure-and-improve-your-site-s-footprint-with-carbon-control-from-catchpoint-webpagetest/


guid: https://christitus.com/you-will-watch-ads/
title: You Will Watch Ads
link: https://christitus.com/you-will-watch-ads/
hash: �)}^C�T�*N�Za�h
attributes: {"enclosures":[]}
content:
<p>There are massive changes coming to the internet and youtube in the form of Ads and the death of the ad blocker.</p>
<p>This is happening in several different ways in the coming months. Let’s go over what I see as inevitable and talk about workarounds.</p>
<h2 data-sanitized-id="youtube-detecting-ad-blockers">YouTube detecting Ad Blockers</h2>
<p><img loading="lazy" src="https://christitus.com/images/2023/you-will-watch-ads/yt-ads.webp" alt="" data-sanitized-class="img-fluid"> </p>
<p>YouTube is testing blocking ad blockers like so many different news websites do right now. This will bring the rise of secondary viewers and the use of other sites likes odysee or freetube. These sites rely on YouTube’s API and public sync, which will also be in the cross-hairs very soon.</p>
<p>Source: <a href="https://www.bleepingcomputer.com/news/technology/youtube-tests-blocking-videos-unless-you-disable-ad-blockers/">https://www.bleepingcomputer.com/news/technology/youtube-tests-blocking-videos-unless-you-disable-ad-blockers/</a></p>
<h2 data-sanitized-id="chromium-changes">Chromium changes</h2>
<p>Google’s Manifest 3 is almost here in June 2023 and that will hamstring all Ad blockers. Most ad blockers and privacy plugins rely on Manifest 2 and with version 3 being activated they will sunset version 2. How will this affect Firefox users? Will they require google and youtube viewers to be compliant with version 3? Time will tell…</p>
<p>Here was a good writeup from adguard on manifest v3: <a href="https://adguard.com/en/blog/firefox-manifestv3-chrome-adblocking.html">https://adguard.com/en/blog/firefox-manifestv3-chrome-adblocking.html</a></p>
<p>TLDR; Firefox will see more adoption and regular chrome ad extensions will be limited.</p>
<h2 data-sanitized-id="api-access-and-3rd-party-sites">API Access and 3rd Party sites</h2>
<p>I can already see an ocean of comments that I will x, y, or z instead of youtube and google. The main issue is most alternatives rely on Google and it’s VERY open API. Sites like Odysee and many youtube apps not playing ads, rely on the API to SYNC the youtube videos to their servers. These services are on borrowed time and I’m shocked they haven’t already been taken down or at least restricted access for syncing YouTube content.</p>
<h2 data-sanitized-id="what-about-custom-dns-like-pihole">What About Custom DNS like pihole?</h2>
<p>Ad block through custom dns always works, but it works too well. The reason we use ublock orgin or a browser based ad block is to keep the sites loading correctly and apps functioning properly. It would be trivial for Google to put roadblocks in the way of loading youtube if you block adsense. A good solution, but not the best when it comes to the user experience and using Google Ad supported products.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/oQL9dVsEXT0?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/registry-cleaner/
title: The TRUTH about Registry Cleaners
link: https://christitus.com/registry-cleaner/
hash: �Y���6W6��9.�
attributes: {"enclosures":[]}
content:
<p>Registry cleaners are still everywhere in Windows utilities, but why? Microsoft itself has said NOT to use them.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/registry-cleaner/wise-regcleaner.webp" alt="" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="they-used-to-be-good">They used to be good!</h2>
<p>Back in the 2000s, registry cleaners were needed as programs like AOL, Games, and other applications would make a bunch of additions to the registry on install. When uninstalling these programs they would never remove all the entries which would lead to problems. Enter… THE REGISTRY CLEANER! You could run these before reinstalling a program and have it be successful where it would otherwise fail. Contrary to popular belief these cleaners NEVER made your system run faster.</p>
<p>A good example: Final Fantasy XI Online configures the game and has installation directory entries in the Windows Registry even TODAY! Most applications from 20 years ago have been sunset or upgraded to NOT make registry entries.</p>
<h2 data-sanitized-id="why-they-still-exist">Why they still exist</h2>
<p>MARKETING. Cleaners always looked impressive cleaning up thousands of “bad” entries. However, the risk of something going wrong or your system becoming unstable FAR outweighs any cleanup these tools do. The best case is they might clean an old context menu entry, but at it’s worst case it will make your system unstable. DO NOT USE THEM!</p>
<p>If you must use them, CCleaner free has the most proven track record for not messing systems up, but any other tool I’ve seen causes more harm than good and I do NOT recommend using CCleaner.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/21VMQyQzRJw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/winutil-may-23-update/
title: Windows Utility Update
link: https://christitus.com/winutil-may-23-update/
hash: w���*�룫)�,fkw
attributes: {"enclosures":[]}
content:
<p>A big update with about 50 commits has made it to the May 2023 Windows Utility Update.</p>
<h2 data-sanitized-id="the-big-changes">The Big Changes</h2>
<ul>
<li>Import/Export Command</li>
<li>Winget upgrades and selection of already installed programs</li>
<li>Tweaks checker (still early days, but improving)</li>
<li>Added Desktop Shortcut for running Winutil</li>
</ul>
<h2 data-sanitized-id="summary-of-all-commits">Summary of ALL commits</h2>
<p>Source: <a href="https://github.com/ChrisTitusTech/winutil/pull/726">https://github.com/ChrisTitusTech/winutil/pull/726</a></p>
<ul>
<li>Update to GUI (InputXML)</li>
<li>Fix Dark Mode</li>
<li>Tweaks.json Update (Services restoring to factory)</li>
<li>Fix Hovertime (annoying instant pop-up is removed)</li>
<li>Fix IRPStackSize (minor networking tweak)</li>
<li>O&amp;O Shutup shortcut fix (was failing to apply tweaks)</li>
<li>More runspace tweaks from Durp (better performance and faster)</li>
<li>Added Toggle for Calendar/Notification Center</li>
<li>Updated Edge Removal</li>
<li>Program Additions
<ul>
<li>WinRAR</li>
<li>Ubisoft Connect</li>
<li>Neovim</li>
<li>Node Version Manager</li>
<li>Geforce NOW</li>
</ul>
</li>
<li>Preload winget with already installed tweaks/programs</li>
<li>Split AllowGameDVR to make sure xbox game bar does NOT break</li>
<li>Removed Atom IDE from Programs due to it being sunset</li>
<li>Fixed OriginalType from stock Windows installs to always restore to Microsoft preset Services</li>
</ul>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/ju_BSNKeP6w?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/fitness-transformation/
title: Fitness Transformation
link: https://christitus.com/fitness-transformation/
hash: �,�5.��τG
attributes: {"enclosures":[]}
content:
<p>On November 7th, I decided to start working out and eating right. This is how I transformed my body and you can as well.</p>
<p>When I was younger I could eat anything I wanted and go work out to burn it off. This is no longer true at 40 and if you eat poorly, You will get hurt, not have energy, and see poor results even if you can stay healthy. I’d say health is 70% nutrition and 30% exercise. Also you need to know WHY you are working out or want to get healthy. Here are the key pillars that I used to be healthy.</p>
<h2 data-sanitized-id="why-workout">Why Workout?</h2>
<p>Everyone wants to be healthy, but want a shortcut, a fad diet, something easy that requires very little work. This is where I failed in past attempts, I just wanted to be healthy or to look a certain way. It was a WEAK reason to workout and as soon as it became hard or the shortcut stopped working after the initial success I would quit.</p>
<p>This time was different, my why changed after I hit 40, because my father passed away at 55 and many other relatives also passed in their 50s. Fear of death is a powerful motivator and just thinking about all the birthdays and life events my father missed from passing away at an early age. I don’t want that to happen to my children or many other scenarios that would lead to a degraded quality of life by NOT working out.</p>
<h2 data-sanitized-id="nutrition">Nutrition</h2>
<p>An overly complicated subject that I failed miserably at because of all the misinformation that exists. Here are the three biggest things I did that kept me unhappy and miserable.</p>
<ul>
<li>No Alcohol (Special Events, but NO MORE than once a month.)</li>
<li>Limit Added Sugar (Drinks and Artificial Sweetners are also bad.)</li>
<li>Limit Refined/Simple Carbs (White Bread, Pizza, Pasta, Pastries, White Flour, White Rice, Desserts, Cereal)</li>
</ul>
<h2 data-sanitized-id="which-workout">Which Workout?</h2>
<p>The first month should be something simple that just gets you active daily. For me, I could NOT take a day off and maintain consistency. It’s not about going to a gym and killing yourself every single day, but staying active every day. Before I started doing Crossfit, I made sure to walk daily and still do even on gym days. Start being ACTIVE and doing something active everyday!</p>
<p>I would even caution against joining a gym or rigorous workout program without first having a healthy habit like daily walking. If you can get up and walk a mile daily, then going to the gym is NOT going to happen and nothing will change. Start with a healthy activity you enjoy then add in more strenuous exercise. Before my first month of crossfit, I made sure that I had a healthy walking habit down and that I was staying active otherwise I’m sure I would have just been injured. The key is pushing yourself and getting to a spot where the walk or simple activity is something that becomes second nature, at that point you move on to the harder workout if you want to see more results.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/kfQC-sQxMcw?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://odysee.com/donetsk-residents-about-victory-day:a3d1bc4bf05447d0bc04f526cd00ee2be7569c3b
title: Donetsk Residents About Victory Day Importance
author: ;Eva K Bartlett
link: https://odysee.com/donetsk-residents-about-victory-day:a3d1bc4bf05447d0bc04f526cd00ee2be7569c3b
hash: g����Ɂ�Z=_
content:
<p><img src="https://thumbnails.lbry.com/9XutRAzYGTk" width="480" alt="thumbnail" title="Donetsk Residents About Victory Day Importance"></p>Powerful words of Donetsk residents speaking about what Victory Day means to them, with grandparents who fought to defeat fascism, and who for the past 9 years have lived under Ukraine/NATO's fascism.<br><br>May peace return to them soon.<br>...<br>https://www.youtube.com/watch?v=9XutRAzYGTk

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/donetsk-residents-about-victory-day/a3d1bc4bf05447d0bc04f526cd00ee2be7569c3b/1e5f89.mp4","type":"video/mp4","length":183693801}]}


title: Artyomovsk Refugees Speak of Ukraine's "White Angels" Abducting Children
author: ;Eva K Bartlett
hash: ݮ�� ��kûZ���
guid:
https://odysee.com/artyomovsk-refugees-speak-of-ukraine%27s:0e28d132a7b3b698cbb5a84c995d77453b3dbd7b

content:
<p><img src="https://thumbnails.lbry.com/jpEHsxbqZ6I" width="480" alt="thumbnail" title="Artyomovsk Refugees Speak of Ukraine's " white angels abducting children></p>In late April, survivors of Ukrainian bombing in Artyomovsk spoke to Christelle Néant (Donbass Insider (https://t.me/donbassinsider)) &amp; myself about the horrors they endured on April 11, when Ukrainian forces deliberately blew up the ground floor of their apartment building, burying the civilians sheltering in the basement below. <br><br>Seven of the seventeen civilians in that basement died almost immediately, including a seven year old child. <br><br>These civilians spoke about how people known as "White Angels", Ukrainian military police, were actively seeking to abduct children, and were succeeding.  <br><br>“They were hunting our kids, and we were hiding them around the buildings.”<br><br>Kiev openly announced they would be forcibly taking children, under the premise of providing security. They do so, according to the people we spoke with (and many other testimonies since) against the will of parents, without their consent.<br><br>Kiev is doing precisely what it falsely-accused Russia of doing (https://t.me/Reality_Theories/10885): abducting children, without their parent's consent.<br><br>My article on this, as well as longer testimonies from the Artyomovsk refugees, will be published soon.<br>...<br>https://www.youtube.com/watch?v=jpEHsxbqZ6I

link:
https://odysee.com/artyomovsk-refugees-speak-of-ukraine%27s:0e28d132a7b3b698cbb5a84c995d77453b3dbd7b

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/artyomovsk-refugees-speak-of-ukraine's/0e28d132a7b3b698cbb5a84c995d77453b3dbd7b/f1eb51.mp4","type":"video/mp4","length":112086249}]}


guid: http://isystem-tf.com/?p=3102
title: Global Britain is circling the drain
author: ;Alex Krainer
link: https://isystem-tf.com/2023/06/14/global-britain-is-circling-the-drain/
hash: g��;2 ��c�)�b4�
tags: #Empire #Global Britain
content:
<p data-sanitized-class="has-medium-font-size">Decades of steady economic and social decay… at what point can we call this a failed system?</p>



<p>Earlier this month I visited the UK to speak at the <a href="https://betterwayconference.org/">Better Way Conference</a> in the beautiful city of Bath, alongside eminent thought delinquents like <strong>Dr. Pierre Kory</strong>, <strong>Neil Olver</strong>, <strong>Prof. Dolores Cahill</strong>, <strong>Andrew Bridgen, Melissa Ciummei</strong>, <strong>Vera Sharav, Dr. Mattias Desmet</strong> and many others. The title of my speech on Sunday, 4 June was, “Freedom of speech is our sacred birthright,” and I’ll be posting its contents here in a few days’ time.</p>



<figure data-sanitized-class="wp-block-image"><a href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1991eac4-67af-4f8d-80c3-cc1caa0078b2_525x438.png" target="_blank" rel="noreferrer noopener"><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1991eac4-67af-4f8d-80c3-cc1caa0078b2_525x438.png" alt=""></a></figure>



<p>The conference itself was extraordinary: an abundance of extraordinary content with one speaker after another delivering mind-blowing remarks – the result of years or decades of deep research into important social, economic, scientific or medical issues which the mainstream is trying to obscure to oblivion. It was so much more than one could absorb in one sitting and I’ll have to revisit much of what I’d heard in Bath – it was an overload of awesome.</p>



<span data-sanitized-id="more-3102"></span>



<h2 data-sanitized-class="wp-block-heading">Poverty on the streets of England</h2>



<p>However, the economic and social conditions I could observe during my 4-day visit were disheartening. People on the street – most of them perhaps – do not appear prosperous. Physically, they’re not the picture of radiant health, far from it. For a tourist spot, the city of Bath – otherwise a very beautiful place – is surprisingly dirty and homeless people are pretty much everywhere. Bristol, where I spent a day, looks even worse. The fact that the ordinary Britons are truly struggling is now quite visible.</p>



<figure data-sanitized-class="wp-block-image"><a href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72102c4-93a1-4582-a2ac-00f4be3e3fb4_4032x2268.jpeg" target="_blank" rel="noreferrer noopener"><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72102c4-93a1-4582-a2ac-00f4be3e3fb4_4032x2268.jpeg" alt=""></a></figure>



<p>The streets of Bristol resemble a third world country, not what one might expect to find in one of the world’s richest and most advanced economies.</p>



<h2 data-sanitized-class="wp-block-heading">Strikes are erupting everywhere</h2>



<p>My return trip was disrupted by a strike and I was unable to get from Bath to the Bristol Airport by train. Indeed, it seems that strikes are becoming increasingly frequent in the British economy:</p>



<figure data-sanitized-class="wp-block-image"><a href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ebcafb7-9f10-489f-b91f-a8dfdf181afe_895x429.png" target="_blank" rel="noreferrer noopener"><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ebcafb7-9f10-489f-b91f-a8dfdf181afe_895x429.png" alt=""></a></figure>



<p>Statistical measures confirm that the struggle is very real and large segments of the British society are slumping into a Dickensian era poverty, confirming my contention that empires sow mayhem abroad and misery at home. According to the recent figures from <a href="https://www.trusselltrust.org/news-and-blog/latest-stats/end-year-stats/#factsheets">Trussell Trust</a>, the number of people in the UK who needed emergency food supplies from food banks <a href="https://www.trusselltrust.org/wp-content/uploads/sites/2/2023/04/EYS-UK-Factsheet-2022-23.pdf">has increased</a> from 1.35 million in 2017/18 to a record 2.99 million in 2022/23. One in five households have trouble paying their water bills, and many more are struggling to keep up with their energy bills. Even with the subsidies government provided for last winter, electricity bills in the UK are more than five times higher than the European average! </p>



<h2 data-sanitized-class="wp-block-heading">Everything points to a horrific cliff-edge</h2>



<p><a href="https://www.theguardian.com/commentisfree/2023/feb/02/energy-profits-british-gas-prepayment-meters-scandal">As the Guardian wrote</a> a few weeks ago, “Everything points, in short, to a horrific cliff-edge looming this spring, and an avalanche of debts, defaults, evictions and unpaid bills to follow. … Put simply, frighteningly large numbers of people just don’t have enough money to absorb the shocks that are coming. Wages are too low, benefits too mean, and the cost of living too high for them to afford even the basics.   … The CEO of one British retailer complained that his stores were losing customers to food banks or simply “to hunger.”</p>



<p>When businesses are losing sales to poverty, rather than competition, we know that the financial parasite has begun to kill its host. And it is not that the government isn’t doing enough social spending: <a href="https://www.dailymail.co.uk/news/article-11664757/Over-half-households-State-pay-tax.html">more than half of all British households</a> (54.2% of households, or 36 million people) receive more in benefits from the Government than they pay in tax. This is the highest ever level of dependency. It has increased from 24 million, or two-fifths of households from the turn of the century, when Sir <strong><a href="https://www.dailymail.co.uk/news/tony_blair/index.html">Tony Blair</a></strong> was in power. In other words, the system is locked in a slow, steady and consistent deterioration which now appears to be accelerating.</p>



<h2 data-sanitized-class="wp-block-heading">Creators of this disaster: aloof and tone-deaf as it gets</h2>



<p>At the same time, monetary authorities who are the creators of this appalling state of things, are beyond tone-deaf. In a recent interview, Bank of England’s top economist, <strong>Huw Pill</strong>, thought <a href="https://www.zerohedge.com/markets/uk-inflation-unexpectedly-comes-red-hot-remains-double-digits">the best advice he could offer to his fellow Britons</a> was to just accept being worse off. He literally said that, “Somehow in the UK, someone needs to accept that they’re worse off and stop trying to maintain their real spending power by bidding up prices…” </p>



<p>Last year, the Bank’s Governor, Mr. <strong>Andrew Bailey</strong> admonished British workers not to demand pay raises in order to do their part in the fight against inflation. Thus, the top genius in the country seems to seriously think that British people could help counter inflation by embracing poverty and by not eating? At the same time, <a href="https://rmx.news/migrant-crisis/farage-britain-addicted-to-cheap-imported-labor-and-let-down-by-dishonest-globalist-conservative-party/">immigration into Britain</a> has reached the highest figures ever recorded: 606,000 people in 2022. And this is all awesome, because immigration supposedly helps economic growth. Somehow however, the first 8 million immigrants over the last 25 years did not yet do the trick. Perhaps the next 100,000 or so will improve things? If not, another million or another ten? Perhaps professor <strong>Neil Ferguson</strong> will know how to model the right figure. This is a failed system and calling it successful will require increasingly absurd level of lying and increasingly harsh suppression of truth.</p>



<h2 data-sanitized-class="wp-block-heading">Economic consequences</h2>



<p>The more predictable consequences of all this include further quantitative easing as the Bank of England will be forced to backstop the gaping bad debts on the balance sheets of the British Banks, more government intervention in the economy through greater deficit spending, higher interest rates and higher inflation – the recipe that’s been tried and tested by nations including Zimbabwe, Argentina and Venezuela, and which invariably yields the same results. I pointed out these developments in an article titled, “<a href="https://isystem-tf.com/2021/10/27/the-fall-of-global-britain-an-investment-hypothesis/">The Fall of Global Britain</a>,” making the following prediction:</p>



<blockquote data-sanitized-class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>“A severe crisis at home coupled with the dramatic loss of international leverage and a very costly addiction to imperial prestige. The UK will likely make all the mistakes made by other powers in that similar position through history: it will suffocate its domestic economic growth by imposing hard austerity at home while at the same time increasing military spending and foreign adventurism. Britain’s public debt will continue to outpace its GDP growth and the government’s budget deficits will be covered by Bank of England’s monetary inflation. This recipe reliably leads to stagflation and possibly to hyperinflation. … At a macro level, we can expect the following developments over the coming months and years: <strong>asset prices will probably continue to rise (i.e. a bullish cycle for the FTSE 100), but the government bonds will continue to slide along with the British pound</strong>.”</p>
</blockquote>



<p>Here’s how that prediction, made on 27 October 2021 panned out thus far:</p>



<figure data-sanitized-class="wp-block-image"><a href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd62bc9eb-490c-437f-904e-b47e68cf2a17_738x295.png" target="_blank" rel="noreferrer noopener"><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd62bc9eb-490c-437f-904e-b47e68cf2a17_738x295.png" alt=""></a></figure>



<p>I expect that things will continue to evolve along the same trajectory. Social tensions and strikes will only accelerate the progression of this crisis and while predicting what its full unravelling could entail, historical precedents suggest that the decline of fallen empire can get very ugly. The chart below shows the way German imperial 3% bond fared during the opening decades of the 20th century:</p>



<figure data-sanitized-class="wp-block-image"><a href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a457c0-d4a6-44c8-813d-8e7ea3a66bf5_980x439.png" target="_blank" rel="noreferrer noopener"><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a457c0-d4a6-44c8-813d-8e7ea3a66bf5_980x439.png" alt=""></a></figure>



<p>Britain’s crisis might not quite reach these dismal proportions, although I do expect that the policymakers will continue to make all the mistakes committed by their counterparts in the past, ensuring that the crisis will continue to get worse. Unfortunately, it will be the people of Britain who’ll pay the highest price. Let us hope that leaders like <strong>Andrew Bridgen</strong>, will gain enough political power to pull the nation away from the precipice and out of costly imperial adventures that are dissipating the wealth of the British people which could be better spent at home.</p>



<h2 data-sanitized-class="wp-block-heading">Navigating the fallout</h2>



<p>For investors and people with savings to protect, navigating the unravelling of a crisis will be difficult. While nobody can predict the timing or magnitude of events like the decline of the British pound and the government bonds, one thing we know is that large-scale price events (LSPEs) invariably unfold as trends which can span years. As the above charts show, British pound, Gilts and the FTSE each followed a very different trajectory and their decline/rise unfolded at different time intervals. The most reliable way to navigate these trends by following high quality trend following strategies, precisely the kind of decision support we offer through <strong><a href="https://isystem-tf.com/trendcompass/">I-System TrendCompass</a></strong> reports.</p>



<p></p>



<p><strong><a href="http://linkedin.com/in/alex-sasha-krainer-0b74ab1a">Alex Krainer</a> – <a href="https://twitter.com/NakedHedgie">@NakedHedgie</a></strong> is the creator of <strong><a href="https://isystem-tf.com/">I-System Trend Following</a></strong> and publisher of daily <strong><a href="https://isystem-tf.com/trendcompass/">TrendCompass</a></strong> reports which cover over 200 financial and commodities markets. One-month test drive is always free of charge, <strong>no jumping through hoops to cancel</strong>. To start your trial subscription, drop us an email at <a href="mailto:TrendCompass@ISystem-TF.com">TrendCompass@ISystem-TF.com</a></p>



<p>For<strong> <a href="https://isystem-tf.com/solutions/u-s-investors/">US investors</a></strong>, we propose a trend-driven inflation/recession resilient portfolio covering a basket of 30+ financial and commodities markets. For more information, you can drop me a comment or an email to <a href="mailto:xela.reniark@gmail.com">xela.reniark@gmail.com</a></p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="712" height="417" data-attachment-id="2805" data-permalink="https://isystem-tf.com/i-system-trendcompass-reports/tc_navwithconf/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/03/tc_navwithconf.png" data-orig-size="1532,899" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="tc_navwithconf" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/03/tc_navwithconf.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/03/tc_navwithconf.png?w=1024" src="https://isystem-tf.com/wp-content/uploads/2023/03/tc_navwithconf.png?w=712" alt="" data-sanitized-class="wp-image-2805"></figure>

attributes:
{"enclosures":[{"url":"https://0.gravatar.com/avatar/3cf56351ad2361f720df6adf94285322fc831b589472a80e77d0f256d827358f?s=96&amp;d=identicon&amp;r=G","title":"nakedhedgie","medium":"image"},{"url":"https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1991eac4-67af-4f8d-80c3-cc1caa0078b2_525x438.png","medium":"image"},{"url":"https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe72102c4-93a1-4582-a2ac-00f4be3e3fb4_4032x2268.jpeg","medium":"image"},{"url":"https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ebcafb7-9f10-489f-b91f-a8dfdf181afe_895x429.png","medium":"image"},{"url":"https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd62bc9eb-490c-437f-904e-b47e68cf2a17_738x295.png","medium":"image"},{"url":"https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc7a457c0-d4a6-44c8-813d-8e7ea3a66bf5_980x439.png","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/03/tc_navwithconf.png?w=712","medium":"image"}]}


guid: https://swprs.org/?p=68933
title: The Holocaust Debate (Preview)
author: ;Swiss Policy Research
link: https://swprs.org/2023/07/12/why-the-holocaust-occurred-preview/
hash: ���B�L�6���J�
tags: #SPR
attributes: {"enclosures":[]}
content:
<p><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="68934" data-permalink="https://swprs.org/2023/07/12/why-the-holocaust-occurred-preview/treblinka-excavators-1942-arc/" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/treblinka-excavators-1942-arc.png?fit=805%2C510&amp;ssl=1" data-orig-size="805,510" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="treblinka-excavators-1942-arc" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/treblinka-excavators-1942-arc.png?fit=300%2C190&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/treblinka-excavators-1942-arc.png?fit=736%2C466&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/treblinka-excavators-1942-arc.png?resize=736%2C466&amp;ssl=1" alt="" width="736" height="466" data-sanitized-class="aligncenter wp-image-68934 size-full"></p>
<p>(Preview) Neither hoax nor Hollywood: how and why the Holocaust occurred, and why neither side has ever acknowledged this. Pictured: Excavators at the Treblinka camp (<a href="http://www.deathcamps.org/treblinka/photos.html" target="_blank" rel="noopener">1942</a>)</p>
<p><strong>Videos</strong>: <a href="https://odysee.com/$/playlist/0249a127e02592fe10bc4d6d5555d447394fb82f" target="_blank" rel="noopener"> Holocaust Debate →</a></p>
<hr>


guid: https://swprs.org/?p=68677
title: Atrocity Propaganda in Modern Warfare (Preview)
author: ;Swiss Policy Research
link: https://swprs.org/2023/07/12/atrocity-propaganda-in-modern-warfare-preview/
hash: �`5 <h��Oa��= y
tags: #SPR
attributes: {"enclosures":[]}
content:
<p><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="60508" data-permalink="https://swprs.org/2023/07/12/atrocity-propaganda-in-modern-warfare-preview/bbc-panorama-2013/" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/bbc-panorama-2013.png?fit=704%2C396&amp;ssl=1" data-orig-size="704,396" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="Syria: BBC chemical attack deception (2013)" data-image-description="" data-image-caption="&lt;p&gt;Syria: BBC “chemical attack” deception (2013)&lt;/p&gt;
" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/bbc-panorama-2013.png?fit=300%2C169&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/bbc-panorama-2013.png?fit=704%2C396&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/bbc-panorama-2013.png?resize=704%2C396&amp;ssl=1" alt="" width="704" height="396" data-sanitized-class="aligncenter wp-image-60508 size-full"></p>
<p>(Preview) Atrocity propaganda from World War I to the Ukraine War. Pictured above: The BBC staging a <a href="https://odysee.com/$/playlist/0114886a4bcfb537b80128c7a6242b03e5849930" target="_blank" rel="noopener">“chemical attack”</a> in Syria in 2013.</p>
<p><strong>Videos</strong>: <a href="https://odysee.com/$/playlist/08fd4070137a9bbf31f091d241c28630956d49a0" target="_blank" rel="noopener">Atrocity Propaganda →</a></p>
<hr>


guid: https://swprs.org/?p=68989
title: The Climate Change Debate (Preview)
author: ;Swiss Policy Research
link: https://swprs.org/2023/07/17/the-climate-change-debate-preview/
hash: ��1��^�|{� |��
tags: #SPR
attributes: {"enclosures":[]}
content:
<p><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="69150" data-permalink="https://swprs.org/2023/07/17/the-climate-change-debate-preview/glacial-interglacial-cycles-ugs-2010-2/" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/glacial-interglacial-cycles-ugs-2010-1.jpg?fit=1285%2C572&amp;ssl=1" data-orig-size="1285,572" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="glacial-interglacial-cycles-ugs-2010" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/glacial-interglacial-cycles-ugs-2010-1.jpg?fit=300%2C134&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/glacial-interglacial-cycles-ugs-2010-1.jpg?fit=736%2C328&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2023/07/glacial-interglacial-cycles-ugs-2010-1.jpg?resize=736%2C328&amp;ssl=1" alt="" width="736" height="328" data-sanitized-class="aligncenter wp-image-69150 size-large"></p>
<p>(Preview) Hockey stick or end of the Holocene? Heat records or heat islands? Coal or clouds? CO2 sequestration or CO2 starvation? Pictured: Recent glacial-interglacial cycles (<a href="http://archive.today/2021.08.09-153113/http://geology.utah.gov/map-pub/survey-notes/glad-you-asked/ice-ages-what-are-they-and-what-causes-them/" target="_blank" rel="noopener">UGS</a>)</p>
<p><strong>Videos</strong>: <a href="https://odysee.com/$/playlist/0a23e50b3419f9e078cd0174290b70cbb04ff350" target="_blank" rel="noopener">Climate Debate →</a></p>
<hr>


guid: https://swprs.org/?p=68672
title: Staged Terrorism (Preview)
author: ;Swiss Policy Research
link: https://swprs.org/2023/07/18/staged-terrorism-preview/
hash: 8�~�� F�*�7��검
tags: #SPR
attributes: {"enclosures":[]}
content:
<p><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="60880" data-permalink="https://swprs.org/?attachment_id=60880" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/boston-nydn-e1689793461202.jpg?fit=1397%2C883&amp;ssl=1" data-orig-size="1397,883" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="boston-nydn" data-image-description="" data-image-caption="&lt;p&gt;The staged “Boston Marathon bombing” (2013)&lt;/p&gt;
" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/boston-nydn-e1689793461202.jpg?fit=300%2C190&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/boston-nydn-e1689793461202.jpg?fit=736%2C465&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2022/04/boston-nydn-e1689793461202-1024x647.jpg?resize=736%2C465&amp;ssl=1" alt="" width="736" height="465" data-sanitized-class="aligncenter wp-image-60880 size-large"></p>
<p>(Preview) How and why staged terrorist attacks, such as the <a href="https://swprs.org/the-staged-boston-marathon-bombing-11-years-ago/" target="_blank" rel="noopener">“Boston Marathon bombing”</a> of 2013 and the <a href="https://odysee.com/$/playlist/a711067eba3df565a653c6c86cbfc94404421327" target="_blank" rel="noopener">“Brussels bombings”</a> of 2016, are carried out.</p>
<p><strong>Videos</strong>: <a href="https://odysee.com/$/playlist/01d05ed3b470a271e799a27216a3550340a189d4" target="_blank" rel="noopener">Staged Terrorism →</a></p>
<hr>


guid: yt:video:kytvILqNa1k
title: Parliament, Democracy &amp; You
author: ;Parliament of Canada
link: https://www.youtube.com/watch?v=kytvILqNa1k
hash: ��]�(Hq��i�����
attributes:
{"enclosures":[{"url":"https://www.youtube.com/v/kytvILqNa1k?version=3","title":"Parliament, Democracy &amp; You","description":"Canada is a parliamentary democracy, which means people like you have the right to participate in the decision-making process. How will you get involved?","type":"application/x-shockwave-flash","height":390,"width":640,"thumbnails":["https://i4.ytimg.com/vi/kytvILqNa1k/hqdefault.jpg"]}]}


guid: https://christitus.com/windows-11-perfect-install/
title: Windows 11 Perfect Install
link: https://christitus.com/windows-11-perfect-install/
hash: ɟ��Uz#�"�QG���
attributes: {"enclosures":[]}
content:
<p>Setting a clean Windows 11 is difficult with all the built-in bloat. This guide fixes all that to give you a clean system that is easy to manage.</p>
<h2 data-sanitized-id="the-download-iso">The Download ISO</h2>
<p>You can download any of the ISOs from Microsoft <a href="https://www.microsoft.com/software-download/windows11">https://www.microsoft.com/software-download/windows11</a></p>
<p>Choose English World from initial boot screen (Credit to ThioJoe for this tip - This makes sure TikTok and other 3rd party stuff don’t install)</p>
<h2 data-sanitized-id="change-region-to-united-states-post-install">Change Region to United States Post Install</h2>
<p>Run <code>intl.cpl</code> or launch the windows toolbox and use legacy panels to launch Region Settings. Then switch it to US region.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/windows-11-perfect-install/region.webp" alt="Alt text" data-sanitized-class="img-fluid"> </p>
<p>If you are using the Microsoft Store you need to search for Region in Settings and Set it to United States</p>
<h2 data-sanitized-id="debloat-with-recommended-tweaks">Debloat with Recommended Tweaks</h2>
<p>Run <code>irm christitus.com/win | iex</code> from Administrator Terminal (Powershell)</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/windows-11-perfect-install/winutil.webp" alt="Alt text" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="optional-browser-change-from-edge">(Optional) Browser Change from Edge</h2>
<p>Install your browser of choice from the Install Menu on winutil. I recommend Brave, but you can choose whatever you want.</p>
<p>Then run Edge Removal from the winutil Tweaks Menu and it will redirect all web links to your new browser.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/6UQZ5oQg8XA?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: yt:video:aoVreJKVtmQ
title: Parliament: The Immersive Experience
author: ;Parliament of Canada
link: https://www.youtube.com/watch?v=aoVreJKVtmQ
hash: � BWzw�W's�2Ñ�
attributes:
{"enclosures":[{"url":"https://www.youtube.com/v/aoVreJKVtmQ?version=3","title":"Parliament: The Immersive Experience","description":"An immersive journey. A captivating story. An unforgettable experience. \n\nParliament: The Immersive Experience takes visitors on a 360° journey into the historic Parliament Building (also called Centre Block), which is now closed for long-term rehabilitation. Free tickets are available at visit.parl.ca.","type":"application/x-shockwave-flash","height":390,"width":640,"thumbnails":["https://i2.ytimg.com/vi/aoVreJKVtmQ/hqdefault.jpg"]}]}


guid: https://christitus.com/ltt-bad/
title: Linus Tech Tips Problems
link: https://christitus.com/ltt-bad/
hash: j�� RDw@���|_�
attributes: {"enclosures":[]}
content:
<p>With Gamers Nexus covering Linus tech tips in an unfavorable light, here is the bullet points of Problems with LTT.</p>
<h2 data-sanitized-id="linustechtips-issues">LinusTechTips Issues</h2>
<ul>
<li>LTT Rushing Videos before they are done</li>
<li>Bad Data reporting from LTT
<ul>
<li>GPU Review Errors</li>
<li>CPU Cooler Test Errors</li>
<li>PSU Review Errors</li>
<li>CPU Review Errors</li>
</ul>
</li>
<li>Billet Labs Review was Bad
<ul>
<li>Linus tried to save face by saying he was paying them, but only AFTER GamersNexus published his video.</li>
<li>Linus was unwilling to get an accurate review for $500, but he built a million dollar lab?</li>
</ul>
</li>
<li>Ethics violation and favoritism with Sponsors.
<ul>
<li>Framework Laptop and “reviews”</li>
<li>ASUS favoritism</li>
<li>Noctua Screwdriver and reviewing their fans</li>
</ul>
</li>
</ul>
<p>GamersNexus Videos: <a href="https://youtu.be/FGW3TPytTjc">https://youtu.be/FGW3TPytTjc</a> and <a href="https://youtu.be/X3byz3txpso">https://youtu.be/X3byz3txpso</a></p>
<h2 data-sanitized-id="linus-response">Linus Response</h2>
<p>Overview:</p>
<ul>
<li>Mad at Steve for doing the video</li>
<li>Big company growing fast makes mistakes</li>
<li>Billet video stays as it was a bad product. Too Expensive and niche to a 3090 that was hard to get.</li>
</ul>
<p><img loading="lazy" src="https://christitus.com/images/2023/ltt-bad/linus.webp" alt="linus" data-sanitized-class="img-fluid"> </p>
<p>LinusTechTips forum - Linus Post 08/14/2023 @ <a href="https://linustechtips.com/topic/1526180-gamers-nexus-alleges-lmg-has-insufficient-ethics-and-integrity/page/16/">https://linustechtips.com/topic/1526180-gamers-nexus-alleges-lmg-has-insufficient-ethics-and-integrity/page/16/</a></p>
<h2 data-sanitized-id="my-thoughts">My Thoughts</h2>
<p>LTT is a media company and most YouTubers make mistakes and have favoritism with their reviews. As LinusTechTips has grown there is a ton of bias from owning a stake in framework laptops and hiring industry people such as Gary Key for LTT Labs that used to be the Sr. Marketing Director for ASUS.</p>
<p>LTT Labs is silly and too much overhead for their business. They need to push out tons of videos with very little review time to continue to grow into a huge business. They need to reduce their overhead to increase the quality of their videos… NOT INCREASE IT! If they employ 120 people, they simply can’t afford to NOT publish a video or take one down. If a sponsor is paying good money to have a video published, they don’t have the luxury of NOT publishing it.</p>
<p>The drop in replacement ability for these big channels is messed up and they can simply revise history by changing existing videos. This can skirt responsibility and gaslight people which looks like Linus has done.</p>
<p>YouTube is a marketing platform and bias does exist. Reviews can never be 100% trusted by anyone. However, the best thing about YouTube is the comments and the fact the audience can call out the YouTuber and the thing I love the most is learning from my mistakes on YouTube.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/nGu0_8whK54?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://christitus.com/install-windows-the-arch-linux-way/
title: Install Windows the Arch Linux Way
link: https://christitus.com/install-windows-the-arch-linux-way/
hash: 7m����4h�(T�!�`
attributes: {"enclosures":[]}
content:
<p>Installing Windows strictly through the Command Line is an important tool to have. If windows changes the installer or out of box experience, you can bypass any changes with this guide!</p>
<h2 data-sanitized-id="the-installer">The Installer</h2>
<p>Download and Launch the Windows Installer</p>
<p>Launch Command Prompt with <code>Shift+F10</code></p>
<h3 data-sanitized-id="partition-both-a-boot-partition-and-data-partition">Partition both a Boot Partition and Data Partition</h3>
<ul>
<li>List Disks with <code>list disk</code></li>
<li>Select desired disk with <code>sel disk #</code></li>
<li>Check to verify there is NO partitions <code>list partition</code></li>
<li>(Optional) Delete any existing partitions <code>del part #</code> <strong>NOTE: THIS ERASES ALL DATA</strong></li>
<li>Check to verify DISK is GPT <code>list disk</code> and use <code>convert gpt</code> if GPT is not enabled <code>*</code></li>
<li>Create Boot partition <code>create partition efi size=100</code></li>
<li>Create Data partition <code>create partition primary size=*</code></li>
<li>Select Boot <code>sel partition 1</code></li>
<li>Format Boot <code>format fs=FAT32 quick</code></li>
<li>Assign Boot partition <code>assign letter=g:</code></li>
<li>Select Data <code>sel par 2</code></li>
<li>Format Data <code>format fs=NTFS quick</code></li>
<li>Assign Data partition <code>assign letter=c:</code> <strong>Note: You may need to UNASSIGN an existing C: drive</strong></li>
</ul>
<h3 data-sanitized-id="verify-the-windows-version-to-install">Verify the Windows Version to Install</h3>
<p>DISM is at the heart of every Windows installation. You need to do a verification on your installation ISO to figure out the source index # that you will install.</p>
<div data-sanitized-class="highlight"><pre tabindex="0" data-sanitized-class="chroma"><code data-lang="fallback" data-sanitized-class="language-fallback"><span data-sanitized-class="line"><span data-sanitized-class="cl">DISM /Get-ImageInfo /imagefile:x:\sources\install.wim
</span></span></code></pre></div><p>Note the Index: # that you want to install</p>
<h3 data-sanitized-id="install-main-windows-data">Install Main Windows Data</h3>
<p>Now we copy over the operating system in its entirety.</p>
<div data-sanitized-class="highlight"><pre tabindex="0" data-sanitized-class="chroma"><code data-lang="fallback" data-sanitized-class="language-fallback"><span data-sanitized-class="line"><span data-sanitized-class="cl">DISM /apply-image /imagefile:x:\sources\install.wim /index:2 /applydir:c:
</span></span></code></pre></div><h3 data-sanitized-id="copy-boot-files-to-efi">Copy Boot Files to EFI</h3>
<p>Copy the boot files to complete the EFI partition to boot into our windows.</p>
<div data-sanitized-class="highlight"><pre tabindex="0" data-sanitized-class="chroma"><code data-lang="fallback" data-sanitized-class="language-fallback"><span data-sanitized-class="line"><span data-sanitized-class="cl">bcdboot c:\Windows /s G: /f ALL
</span></span></code></pre></div><h2 data-sanitized-id="bypass-oobe">Bypass OOBE</h2>
<p>The Out of Box Experience is changing all the time. The requirement to be online or only use a Microsoft account. Bypass it with this command and using <code>Shift+F10</code> to bring up the command prompt. <strong>NOTE: DISCONNECT FROM INTERNET before booting!</strong></p>
<div data-sanitized-class="highlight"><pre tabindex="0" data-sanitized-class="chroma"><code data-lang="fallback" data-sanitized-class="language-fallback"><span data-sanitized-class="line"><span data-sanitized-class="cl">oobe\BypassNRO
</span></span></code></pre></div><p>System will restart after executing the command. Select <code>Continue with limited Setup</code> and name the device and create a local account.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/vtxedkuUCas?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: http://www.thespec.com/tncms/asset/editorial/5686862d-c206-5495-aa88-bae71b9dfa28
title: Airport noise restricts development in most of Ancaster lands pulled from Greenbelt
author: ;Matthew Van Dongen Spectator Reporter
hash: ����%i��n���r8�
content:
Ontario’s auditor general said the province was ‘not aware’ of those restrictions when it opened 1,800 acres of protected countryside for development. The government could still overrule the building ban.

link:
https://www.thespec.com/news/hamilton-region/airport-noise-restricts-development-in-most-of-ancaster-lands-pulled-from-greenbelt/article_5686862d-c206-5495-aa88-bae71b9dfa28.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/f/7b/f7b65668-019f-560c-b46d-726625365f9b/64f26753a8772.image.jpg?resize=300%2C185","type":"image/jpeg","length":37216}]}


guid: http://www.thespec.com/tncms/asset/editorial/bb7baecf-5b00-5812-aa7c-a85bc351b0c3
title: ‘Popular and dedicated’ drag racer dies in collision at Cayuga track
author: ;Matthew Van Dongen Spectator Reporter
content: Tributes to the 69-year-old driver poured in from across the country online Sunday.
hash: ȌG��@� ���U#�2v
link:
https://www.thespec.com/news/hamilton-region/popular-and-dedicated-drag-racer-dies-in-collision-at-cayuga-track/article_bb7baecf-5b00-5812-aa7c-a85bc351b0c3.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/4/22/422546b5-2652-5161-970f-3142dba0b76b/64f602b30845f.preview.jpg?crop=928%2C614%2C3%2C10&amp;resize=300%2C198&amp;order=crop%2Cresize","type":"image/jpeg","length":90742}]}


title: "Media on Trial with Mike Robinson, Eva Bartlett, Fiorella Isabel and Vanessa Beeley"
author: ;Eva K Bartlett
hash: �}��yx��?H�g�y
guid:
https://odysee.com/media-on-trial-with-mike-robinson%2C-eva:ef9191d7d65c4d66358224f3e9b6edac02f546ac

content:
<p><img src="https://thumbnails.lbry.com/nvDgw_UHSJw" width="480" alt="thumbnail" title="" media on trial with mike robinson eva bartlett fiorella isabel and vanessa beeley></p>Via UK Column:<br><br>"Mike Robinson speaks to Vanessa Beeley, Eva Bartlett and Fiorella Isabel about what it's like to report from the front lines of conflict zones, what they have experienced in their interactions with legacy media journalists and what it's like to live and work in Russia and with RT.<br><br>Vanessa Beeley is an independent journalist, peace activist, photographer and regular contributor to the UK Column. She can be found on Twitter, and on her Substack.<br><br>Eva Bartlett is an independent journalist with extensive experience in Syria and in the Gaza Strip, where she lived a cumulative three years (from late 2008 to early 2013). She has also reported from the Donbass and Venezuela. She can be found on Twitter, and on many other platforms.<br><br>Fiorella Isabel is a journalist and geo-political analyst. She can be found on the news at RT, on the Convo Couch, and at her Substack"<br><br>Original link: https://www.ukcolumn.org/media-on-trial-vanessa-beeley-eva-bartlett-and-fiorella-isabel<br>...<br>https://www.youtube.com/watch?v=nvDgw_UHSJw

link:
https://odysee.com/media-on-trial-with-mike-robinson%2C-eva:ef9191d7d65c4d66358224f3e9b6edac02f546ac

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/media-on-trial-with-mike-robinson,-eva/ef9191d7d65c4d66358224f3e9b6edac02f546ac/0bdb56.mp4","type":"video/mp4","length":155207351}]}


guid: http://www.thespec.com/tncms/asset/editorial/7b60077d-1a24-55d6-b578-6ab1aa3f84b2
title: Rent for one-bedroom apartments surpasses $1,900 in Hamilton
author: ;Fallon Hewitt Spectator Reporter
hash: 0�G2Qa]� �㰹L�[
content:
The average rent for apartments and condominiums in the city was $2,090 in August, according to Rentals.ca.

link:
https://www.thespec.com/business/real-estate/rent-for-one-bedroom-apartments-surpasses-1-900-in-hamilton/article_7b60077d-1a24-55d6-b578-6ab1aa3f84b2.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/5/84/58481ab7-74fc-5d38-b2f0-4a88bd849333/6501febb1d80d.image.jpg?resize=300%2C157","type":"image/jpeg","length":148006}]}


guid: https://christitus.com/saving-a-business-5000-a-year-in-telecom/
title: Saving a Business Thousands a Year in Telecom
link: https://christitus.com/saving-a-business-5000-a-year-in-telecom/
hash: ����p��W L&�dF�
attributes: {"enclosures":[]}
content:
<p>Over the past 3 years I’ve setup a hosted solution for a business that has saved them over $5000 per year on their telephone bill.</p>
<p>If you have ever dealt with porting numbers or switching telephone services it is a complete nightmare. However, you can do this all yourself and take control and save a TON of money in the process. Need to move from this solution? Install and register your numbers on something else in minutes, NOT days or even weeks in some instances.</p>
<p>The best part is you will own your numbers directly and have NO contracts that some sneaky companies that lock you in to their services for years at a time.</p>
<h2 data-sanitized-id="the-solution">The Solution</h2>
<p>There are many solutions that can be self hosted where you register a telephony trunk, but the easiest I’ve found is 3CX. It has a variety of plans from free to under 10 users to a good small business setup for around 20 users, but the best part is you pay for the SERVER… NOT the user accounts.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/pricing.webp" alt="" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="installation">Installation</h2>
<p>I’ve done videos on 3cx installation. Here are links to both self-hosted and using the hosted plans above. For a small business I’d recommend the SMB Plan above.</p>
<p>3CX Hosted Installation Video: <a href="https://youtu.be/M7dXvFDhoaI">https://youtu.be/M7dXvFDhoaI</a>
3CX Self-Hosted Installation Video: <a href="https://youtu.be/P6CS5_CHy8s">https://youtu.be/P6CS5_CHy8s</a></p>
<h2 data-sanitized-id="features">Features</h2>
<h3 data-sanitized-id="call-forwarding">Call Forwarding</h3>
<p>To setup Call forwarding I’d recommend adding a mobile number in User Web Client -&gt; Settings</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/call-forwarding.webp" alt="" data-sanitized-class="img-fluid"> </p>
<p>After that is setup, Specify My Mobile in different modes (DND, Away, Etc.). You can also specify different forwards for internal and external calls.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/call-forwarding2.webp" alt="" data-sanitized-class="img-fluid"> </p>
<h3 data-sanitized-id="officeholiday-hours">Office/Holiday Hours</h3>
<p><img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/office-hours.webp" alt="" data-sanitized-class="img-fluid"> </p>
<p>In the System configuration panel, You can specify Office Hours and Holiday Messages.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/holidays.webp" alt="" data-sanitized-class="img-fluid"> </p>
<h3 data-sanitized-id="mobile-application">Mobile Application</h3>
<p>The mobile app for android and iOS is amazing. Has a ton of functionality and can substitute as an extension.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/chat.webp" alt="" data-sanitized-class="img-fluid"> <img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/recent.webp" alt="" data-sanitized-class="img-fluid">
<img loading="lazy" src="https://christitus.com/images/2023/saving-a-business-5000-a-year-in-telecom/voicemail.webp" alt="" data-sanitized-class="img-fluid"> </p>
<h3 data-sanitized-id="live-chat">Live Chat</h3>
<p>They also have live chat code that is really easy to add to any website. Only two lines of code and you can setup an entire call center. Here is the video I did on that.</p>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/IPhbI3LWkTg?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/klsqtRclpXo?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: http://isystem-tf.com/?p=3291
title: Italy crumbling
author: ;Alex Krainer
link: https://isystem-tf.com/2023/09/15/italy-crumbling/
hash: ��x�#��Yss�� g�
tags: #Central banks #Empire #ECB #Euro #Italy #Lagarde #Mario Draghi
content:
<p>Throughout 2023, the yields on Italian 10-year Treasury Bonds have been trading at above 4%. Only last summer, they were 0.6%. When they began approaching 4% last December, the financial markets thought that level would trigger a panic. Fast forward nine months and we’re still above that panic level.</p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="1024" height="430" data-attachment-id="3292" data-permalink="https://isystem-tf.com/2023/09/15/italy-crumbling/image-1-14/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-1.png" data-orig-size="1237,520" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="image-1" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-1.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-1.png?w=1024" src="https://isystem-tf.com/wp-content/uploads/2023/09/image-1.png?w=1024" alt="" data-sanitized-class="wp-image-3292"></figure>



<p>Currently the yields are just over 4.4% but they appear to be trending higher. Namely, since June, every pullback reversed from a higher trough. It’s hard to see how this trend could reverse, absent some miraculous outcome that isn’t even theoretically in the offing. The moment when the yields rally to new highs could mark the beginning of the unraveling of the eurozone. Italy’s fiscal collapse could destroy the ECB’s and EU’s credibility which, however diminished, is perhaps all that stands between the place where we are today and the abyss.</p>



<h2 data-sanitized-class="wp-block-heading">Thirty years of neoliberalism</h2>



<p>Italy has been a good pupil of the IMF’s class of neoliberal economics: between 1992 and 2009, it implemented the most severe fiscal consolidation measures of all EU countries, including sharp spending cuts, liberalization of its labor markets and a clampdown of its labor unions. The cost of these reforms has not yet deterred successive governments in spite of the precipitous decline in the living standards. Italy is the only EU economy where real wages registered negative growth since 1990! </p>



<p>In 2000, Italian living standards were comparable to those in Germany. Today, Italy’s per capita income is 20% below Germany’s. For a society that was very affluent a generation ago, it has deteriorated fast and today more than one in five Italians live in poverty. Nearly 10% of the population (5.6 million Italians, including 1.4 million children) now live in absolute poverty and the population has declined by nearly 2.5% since 2014 (from 60.346 million to 58.851 million today).</p>



<h2 data-sanitized-class="wp-block-heading">It’s been a criminal enterprise all along</h2>



<p>Well, all that pain must have yielded some gain? Well, not so much. To begin with, Italy has surrendered its sovereignty to NATO and the EU (read, ECB). Its foreign policy is dictated by NATO and its economic policy is almost entirely in the hands of a convicted criminal, the ECB chief <strong>Christine Lagarde</strong>. </p>



<p>A small digression: that’s the same Christine Lagarde who, in her position as the head of the IMF, helped orchestrate the 2014 coup in Ukraine and arranged IMF funding for the Kiev fascist junta, but only on condition that they step up their vicious anti-terrorist operation against the Donbass region. The puppet junta obliged and over the next two months killed at least 2,000 Ukrainians (according to Kiev’s official figures). Of course, Lagarde’s sterling leadership qualified her to head up the EU’s central bank. </p>



<p>Now the EU’s economy too, is in the hands of the brightest and the best so we can look forward to EU and Italy following in the footsteps of Ukraine’s economic miracle. Here’s an example of how it’s done: Italy’s nonperforming loans collapsed from 17% of bank assets in 2016 to only 4% last year. How was that miracle accomplished? The regulator simply declared the bulk of those bad debts just awesome, approved them as “healthy” collateral for the REPO markets and swept them into the black hole of toxic junk that is Europe’s Target 2 rebalancing system. And we all lived happily ever after. Easy-peasy!</p>



<p>By this time, the EU should consider adopting <strong>George Michael</strong>‘s song “Freedom” as its official hymn: </p>



<p>“All we have to do now, is take these lies and make them true…” </p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="1023" height="610" data-attachment-id="3296" data-permalink="https://isystem-tf.com/2023/09/15/italy-crumbling/image-2-13/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-2.png" data-orig-size="1023,610" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-2.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-2.png?w=1023" src="https://isystem-tf.com/wp-content/uploads/2023/09/image-2.png?w=1023" alt="" data-sanitized-class="wp-image-3296"></figure>



<p>But lies can’t be made true. Recall, the Eurozone nearly came apart in similar circumstances in 2010-2012. At the time, Italy’s Prime Minister <strong>Silvio Berlusconi</strong> wanted to take Italy out of the Eurozone and bring back her national currency. But true to Europe’s democratical values, the ECB’s then chief, <strong>Mario Draghi</strong> quickly orchestrated Berlusconi’s ouster and sealed Italy’s fate on the sinking ship that is the EU. </p>



<p>Oh, and then Draghi himself became Prime Minister in February 2021 because, freedom and democracy! Today’s cabinet led by <strong>Giorgia Meloni</strong> seems impotent at best, and completely subservient to Lagarde’s ECB whose policies Meloni’s coalition partner and former Prime Minister <strong>Matteo Salvini</strong> called “unbelievable, baffling, worrying.” </p>



<p>The predictable result has been further suffocation of the Italian economy which registered a sharp decline in manufacturing output, a 0.4% negative GDP growth during the second quarter of 2023 and a rise in unemployment which is now at 7.6%. Neither Italy nor the rest of the EU are in any shape to sustain another 2008-style financial crisis. The EU little shop of horrors is due to turn up many “surprises” over the coming months. </p>



<p>I believe that we’ll see sovereign bond yields shoot up higher and their prices tank along with the Euro. If the brightest and the best talent in charge of the economy prove unable to stem the gathering avalanche, the Eurozone, the EU and the NATO might all come crashing down like a house of cards. If only we could take all the lies and somehow make them true! </p>



<h2 data-sanitized-class="wp-block-heading">To war!</h2>



<p>Otherwise, the only alternative that’s been used by the democratical ruling parasite class since the days of the Roman Empire is to drum up the “enemies at the gates” alarm and orchestrate a big war. It’s just the kind of emergency that always helps the ruling establishment deflect the people’s anger away from their own mismanagement and toward an external enemy who could be blamed for all of their troubles. Luckily for Europe’s degenerate oligarchs, there’s an evil dictator in the east who might just fit the bill. To war!</p>



<p></p>



<p><strong><a href="http://linkedin.com/in/alex-sasha-krainer-0b74ab1a">Alex Krainer</a> – <a href="https://twitter.com/NakedHedgie">@NakedHedgie</a></strong> is the creator of <strong><a href="https://isystem-tf.com/">I-System Trend Following</a></strong> and publisher of daily <strong><a href="https://isystem-tf.com/trendcompass/">TrendCompass</a></strong> investor reports which cover over 200 financial and commodities markets. One-month test drive is always free of charge, <strong>no jumping through hoops to cancel</strong>. To start your trial subscription, drop us an email at <a href="mailto:TrendCompass@ISystem-TF.com">TrendCompass@ISystem-TF.com</a></p>



<p>For<strong> <a href="https://isystem-tf.com/solutions/u-s-investors/">US investors</a></strong>, we propose a trend-driven inflation/recession resilient portfolio covering a basket of 30+ financial and commodities markets. For more information, you can drop me a comment or an email to <a href="mailto:xela.reniark@gmail.com">xela.reniark@gmail.com</a></p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="1024" height="600" data-attachment-id="3293" data-permalink="https://isystem-tf.com/2023/09/15/italy-crumbling/tc_coverimage/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png" data-orig-size="2553,1497" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="tc_coverimage" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=1024" src="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=1024" alt="" data-sanitized-class="wp-image-3293"></figure>

attributes:
{"enclosures":[{"url":"https://0.gravatar.com/avatar/3cf56351ad2361f720df6adf94285322fc831b589472a80e77d0f256d827358f?s=96&amp;d=identicon&amp;r=G","title":"nakedhedgie","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/image-1.png?w=1024","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/image-2.png?w=1023","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=1024","medium":"image"}]}


guid: http://www.thespec.com/tncms/asset/editorial/4dc299ff-bda8-5167-bb9b-915ea186cf8d
title: Landowners push back against criticism of Ancaster Greenbelt development
author: ;Matthew Van Dongen Spectator Reporter
hash: %�*sE������n��
content:
A group representing ‘generational’ property owners in the former Ancaster Greenbelt argue the former Liberal government should never have banned development on their lands in the first place

link:
https://www.thespec.com/news/hamilton-region/landowners-push-back-against-criticism-of-ancaster-greenbelt-development/article_4dc299ff-bda8-5167-bb9b-915ea186cf8d.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/6/88/6880774b-0143-5ede-84ca-6ee1f99ecd44/6507564f41aac.image.jpg?resize=300%2C210","type":"image/jpeg","length":215260}]}


guid: http://www.thespec.com/tncms/asset/editorial/99a67b68-8878-5141-9f26-0937227709ef
title: Guess Who played this Ancaster backyard?
author: ;Scott Radley Spectator Columnist
content: Canadian icon Burton Cummings shows up in town to play a show for 300, Scott Radley writes.
hash: U#���� %̔ O�;*
link:
https://www.thespec.com/opinion/guess-who-played-this-ancaster-backyard/article_99a67b68-8878-5141-9f26-0937227709ef.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/d/82/d82d1784-b2b4-57e6-b764-830230454d7b/6508c8e3c6bfc.image.jpg?resize=300%2C200","type":"image/jpeg","length":80906}]}


guid: http://www.thespec.com/tncms/asset/editorial/aad36df8-b0dd-5fe7-8c91-3b9e28ad0d39
title: Hamilton cop quits one day before hearing on cocaine allegations
author: ;Susan Clairmont Spectator Columnist
hash: ��aEm�}{�C�o
content:
Constable accused of discreditable conduct was suspended with pay for more than two years before resigning on eve of Police Services Act hearing, Susan Clairmont writes.

link:
https://www.thespec.com/news/hamilton-region/hamilton-cop-quits-one-day-before-hearing-on-cocaine-allegations/article_aad36df8-b0dd-5fe7-8c91-3b9e28ad0d39.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/2/17/2175ea97-99e3-58b5-99a8-43ef9f3c4f8f/6508b70b6941f.image.jpg?resize=300%2C172","type":"image/jpeg","length":71852}]}


guid: http://www.thespec.com/tncms/asset/editorial/e7752845-569c-5796-b112-9002cfb723b1
title: Drum roll, please! FirstOntario Concert Hall — formerly Hamilton Place — celebrates 50 years
author: ;Mark McNeil Contributing Columnist
hash: ^,�֎�R��?��
content:
Hamilton Philharmonic Orchestra timpanist Jean Norman Iadeluca played the hall’s grand opening. He’s still around to celebrate the big anniversary, Mark McNeil writes.

link:
https://www.thespec.com/news/hamilton-region/flashbacks-hamilton/drum-roll-please-firstontario-concert-hall-formerly-hamilton-place-celebrates-50-years/article_e7752845-569c-5796-b112-9002cfb723b1.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/d/e7/de749129-6fb7-54b0-8cfc-7a4f3001a072/650892b7c154b.image.jpg?resize=300%2C375","type":"image/jpeg","length":186243}]}


guid: http://www.thespec.com/tncms/asset/editorial/67daed60-753c-518a-9dbf-ef49964768b4
title: ‘They are truly magical’: Waterford woman raised 80 monarch butterflies in her kitchen this summer
author: ;J.P. Antonacci Local Journalism Initiative Reporter
content: House turned into a butterfly nursery to help endangered pollinators survive
hash: ާ3P��QΧ�9]9� �
link:
https://www.thespec.com/news/hamilton-region/they-are-truly-magical-waterford-woman-raised-80-monarch-butterflies-in-her-kitchen-this-summer/article_67daed60-753c-518a-9dbf-ef49964768b4.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/a/88/a88e11f6-e209-5a26-9d64-95f6d34ee0d6/6508d457389a9.image.jpg?resize=300%2C225","type":"image/jpeg","length":114904}]}


guid: https://christitus.com/do-not-make-these-github-mistakes/
title: Github Mistakes and What I Wish I Knew Sooner
link: https://christitus.com/do-not-make-these-github-mistakes/
hash: �m,��5��+���>�H
attributes: {"enclosures":[]}
content:
<p>I’ve made a LOT of GitHub mistakes! Here is a list of things most new users do not know or do WRONG!</p>
<h2 data-sanitized-id="raw-files">Raw Files</h2>
<ul>
<li>Raw Button</li>
<li>Raw Files only update every few minutes</li>
</ul>
<h2 data-sanitized-id="using-branches-and-release-tags">Using Branches and Release Tags</h2>
<ul>
<li>list branches with <code>git branch -a</code></li>
<li>clone a specific branch with <code>git clone -b main https://github.com/christitustech/winutil</code></li>
<li>list tags and releases with <code>git fetch --all --tags</code></li>
<li>checkout tag with <code>git checkout tags/v1.0</code></li>
<li>see a log of commits and tags <code>git log --oneline --graph</code></li>
</ul>
<h2 data-sanitized-id="pull-requests">Pull Requests</h2>
<p>Pull requests are a great way of collaboration. However, most developers joke that they just close and don’t merge most public pull requests. This is mainly because there can be a lot of low quality or hap-hazard commits. I’ve seen this in many of projects and have made strict requirements before accepting any. The biggest rule I stole from Linus Torvalds, “Never merge a pull request that you do NOT understand.”</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/do-not-make-these-github-mistakes/pullrequest.webp" alt="pr" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="issues">Issues</h2>
<p>It is easy to ignore issues, because most issues do not fill out the basic form below. However, I find about half the issues are great at testing your program and help develop it. Delete the issues that say, “IT DON’T WORK!” with no elaboration. Issues help roadmap the development of the program and fix or document any bugs.</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/do-not-make-these-github-mistakes/issues.webp" alt="issues" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="rolling-back-commits-and-referencing-them">Rolling back commits and Referencing them</h2>
<p>GitHub is truly amazing because of the ability to go back in time revert a single commit or create a branch based on the project at the time a commit was done!</p>
<p><img loading="lazy" src="https://christitus.com/images/2023/do-not-make-these-github-mistakes/revert.webp" alt="revert" data-sanitized-class="img-fluid"> </p>
<h2 data-sanitized-id="unit-tests">Unit Tests</h2>
<p>Unit testing is a vital part of every project as it checks for syntax errors and keeps you from accepting a bad pull request. This is done with automated builds and tests. Check project examples and the <code>pester</code> folder. For the github documentation on unit tests refer to <a href="https://docs.github.com/en/actions/automating-builds-and-tests">https://docs.github.com/en/actions/automating-builds-and-tests</a>.</p>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/djPC_hBKl3I?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: http://www.thespec.com/tncms/asset/editorial/4236d990-5d82-5fe3-8a6b-b240b0d24cda
title: New sports? No problem: Dundas athlete is golden at Invictus Games
author: ;Scott Radley Spectator Columnist
content: In his first Games, and in brand new sports, veteran Rory Figliola is a two-time winner
hash: � -18 �sD.�I���
link:
https://www.thespec.com/sports/hamilton-region/new-sports-no-problem-dundas-athlete-is-golden-at-invictus-games/article_4236d990-5d82-5fe3-8a6b-b240b0d24cda.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/a/8f/a8f93107-d7af-5352-8643-681515397c8c/6509fba7a0702.image.jpg?resize=300%2C186","type":"image/jpeg","length":115341}]}


guid: http://www.thespec.com/tncms/asset/editorial/a35241d2-69fe-5004-aca0-dcb1ba20f0ec
title: Hamilton aims to up density along LRT route
author: ;Teviah Moro Spectator Reporter
content: Public feedback sought for plan to intensify development in major transit station zones
hash: �ϑ+"[ �q��(���
link:
https://www.thespec.com/news/hamilton-region/hamilton-aims-to-up-density-along-lrt-route/article_a35241d2-69fe-5004-aca0-dcb1ba20f0ec.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/3/0e/30e0af1e-d6f4-523b-9214-512884103e1f/650eef9f6bc6e.image.jpg?resize=300%2C212","type":"image/jpeg","length":124652}]}


guid: http://www.thespec.com/tncms/asset/editorial/e6c8d7f9-fa28-545e-8cc1-7a3f5088a39b
author: ;Nicole O’Reilly Spectator Reporter
content: Police working on operational plan for Rockton Fair amid inexplicable spike in youth violence
hash: ����]�lVʼ�o�7s�
title:
Several Ancaster Fair incidents, including swarming attacks involving crowd of up to 100 youths, reported to Hamilton police

link:
https://www.thespec.com/news/crime/several-ancaster-fair-incidents-including-swarming-attacks-involving-crowd-of-up-to-100-youths-reported/article_e6c8d7f9-fa28-545e-8cc1-7a3f5088a39b.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/e/cb/ecb8729b-5754-5ef9-88e9-e7bbe19cc6c5/651207d047dba.image.jpg?resize=300%2C201","type":"image/jpeg","length":158172}]}


guid: http://www.thespec.com/tncms/asset/editorial/dca4b6fb-b484-5d1a-9469-579d78170994
title: ‘Attila’ explores the search for answers following a brother’s death on Jackson Square rooftop
author: ;Teviah Moro Spectator Reporter
content: Director Stephen Hosier says friend Richard Csanyi was courageous in sharing tragic story
hash: և����$l���Ht�
link:
https://www.thespec.com/news/hamilton-region/attila-explores-the-search-for-answers-following-a-brother-s-death-on-jackson-square-rooftop/article_dca4b6fb-b484-5d1a-9469-579d78170994.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/8/02/802f1029-ed75-5691-b197-4daa7f762f09/6511ece1f223f.image.jpg?resize=300%2C200","type":"image/jpeg","length":144988}]}


guid: http://www.thespec.com/tncms/asset/editorial/3dcd5205-910c-54b0-a5d3-acd6305bc102
title: Environmentally friendly natural burial site a first for Hamilton
author: ;Sebastian Bron Spectator Reporter
content: New “green burial” grounds at Mount Hamilton Cemetery comes after years of planning
hash: ��Қ�B�����x��֣
link:
https://www.thespec.com/news/hamilton-region/environmentally-friendly-natural-burial-site-a-first-for-hamilton/article_3dcd5205-910c-54b0-a5d3-acd6305bc102.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/d/25/d253784f-81ad-5ce8-96f2-5c12e3368e31/6511cea2de8c1.image.jpg?resize=300%2C200","type":"image/jpeg","length":246066}]}


guid: http://isystem-tf.com/?p=3330
title: Mean Reversion or Trend Following?
author: ;Alex Krainer
link: https://isystem-tf.com/2023/09/26/mean-reversion-or-trend-following/
hash: �Ɏ�홶9r˘���
tags: #Uncategorized
content:
<p>All investment strategies fall in one of these two categories. Which one’s better? Surprise: it’s trend following.</p>



<p>In his most recent podcast, <strong>Joris Bastien</strong>, founder and CEO of Quantraxia rightly summed up the universe of investment strategies: “<em>… however you look at it, investment strategies – quantitative or not – fall into two broad categories: trend following and mean-reversion</em>.” He explains each, in turn. </p>



<ul data-sanitized-class="wp-block-list">
<li>Mean-reversion strategies, also called “short volatility” are based on the philosophy that when values diverge away from their historical norms, they subsequently revert to them (to the <em>mean). Such strategies </em>include value investing, pairs-trading [arbitrage], and options selling.</li>



<li>Trend following is also called “long volatility” or divergence strategy based on the idea that market equilibriums change over time and that this transition can be captured. In this category we have CTAs (commodity trading advisors), and any kind of momentum strategies.</li>
</ul>



<p>In essence, Bastien articulates the same school of thought that I had embraced already in the 1990s and explains that trend following is, “positively skewed, with many small losses and fewer large wins, with low-to-medium turnover. Trend following strategies exhibit higher volatility; … the performance of trend following is highly cyclical and will definitely test your patience.” I think that Bastien’s short podcast provides excellent and very valid food for thought and is well worth its 7 minutes. You can find it at <strong><a href="https://www.linkedin.com/posts/jorisbastien_quantaraxia-money-management-ugcPost-7108810361738330112-QJua?utm_source=share&amp;utm_medium=member_desktop" target="_blank" rel="noreferrer noopener">this link</a></strong>.</p>



<p>In the past, in explaining my own approach, I said many times that the question is not whether I-System Trend Following works. The question is whether markets move in trends. In Bastien’s formulation, are they mean-reverting or do they exhibit shifting equilibriums over time? This report now has a nearly 4-year continuity and in that time, the 15 markets we track have begun to crystallize an answer, discernible in the chart showing the performance of 180 strategies in our Major Markets portfolio, which I had recently shared:</p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="813" height="369" data-attachment-id="3335" data-permalink="https://isystem-tf.com/2023/09/26/mean-reversion-or-trend-following/image-4-8/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-4.png" data-orig-size="813,369" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="image-4" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-4.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-4.png?w=813" src="https://isystem-tf.com/wp-content/uploads/2023/09/image-4.png?w=813" alt="" data-sanitized-class="wp-image-3335"></figure>



<p>The negative performance of our strategies is more limited and its bottom extent has remained relatively <em>horizontal </em>(our worst losses haven’t exceeded 70% of the risk budget in any market over the past 4 years), while its upper extent has an upward-trending bias with gains in four markets exceeding 100% of their risk budget. While we use <em>different</em> trading strategies in each market, they are all based on the same trend following algorithms. </p>



<h2 data-sanitized-class="wp-block-heading">Empirical evidence of mean-reversion in the markets is thin</h2>



<p>Of course, this observation doesn’t represent a very large sample, nor a very long time interval. Still, the reason why I believe it is nonetheless valid, is that it conveys the result of a large number of strategies and signals generated in real time, not a backtest.  </p>



<p>Last year however, researchers at Goldman Sachs analyzed markets for evidence of mean-reversion based on over 140 years’ worth of stock market data. Their conclusions validated the trend following approach in a very important way. As <a rel="noreferrer noopener" href="https://realinvestmentadvice.com/goldman-sachs-destroys-an-investing-myth/" target="_blank">cited by <strong>Lance Roberts</strong></a>, Goldman’s lead analyst <strong>Sam Ro</strong> wrote that, <em>“While valuations feature importantly in our toolbox to estimate forward equity returns, we should dispel an oft-repeated myth that equity valuations are mean-reverting.” </em></p>



<p>The report concludes: “<strong><em><u>We have not found any statistical evidence of mean reversion</u></em></strong><em>.<strong>” </strong></em>Ro’s analysis found that the mean-reversion significance of the Schiller CAPE metric since 1881 is very low, at just 26%. That conclusion would very much corroborate the findings of <strong>Dimson</strong>, <strong>Marsh </strong>and <strong>Staunton </strong>on momentum investing, which I summarized in my article, “<a rel="noreferrer noopener" href="https://isystem-tf.com/2020/12/17/tesla-and-the-power-of-momentum-investing/" target="_blank"><strong>Tesla and the power of momentum investing</strong></a>.”</p>



<p></p>



<div data-sanitized-class="wp-block-group"><div data-sanitized-class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h2 data-sanitized-id="sign-up-for-a-1-month-free-trial-of-i-system-trendcompass" data-sanitized-class="wp-block-heading">Sign up for a 1-month free trial of <a href="https://isystem-tf.com/i-system/" target="_blank" rel="noreferrer noopener">I-System</a> TrendCompass!</h2>



<p>One of the best trend following newsletters on the market, I-System TrendCompass delivers consistent, dependable and effective<strong> decision support daily, based on <a rel="noreferrer noopener" href="https://isystem-tf.com/i-system/" target="_blank">I-System</a></strong> trend following strategies covering over 200 key financial and commodities markets with no dilution in quality or focus.</p>



<ul data-sanitized-class="wp-block-list">
<li>Cut the information overload</li>



<li>Get real-time CTA intelligence in <strong>seconds per day</strong></li>



<li>Never miss a major trend move</li>



<li>Navigate trends profitably, with confidence and <strong>peace of mind</strong></li>
</ul>



<p>One month test-drive is always on us. Sign up for a 1-month FREE trial by e-mailing us at <a rel="noreferrer noopener" href="mailto:TrendCompass@ISystem-TF.com" target="_blank"><strong>TrendCompass@ISystem-TF.com</strong></a></p>



<p data-sanitized-class="has-medium-font-size">To learn more, please visit <strong><a rel="noreferrer noopener" href="https://isystem-tf.com/trendcompass/" target="_blank">I-System TrendCompass</a> page</strong>.</p>
</div></div>

attributes:
{"enclosures":[{"url":"https://0.gravatar.com/avatar/3cf56351ad2361f720df6adf94285322fc831b589472a80e77d0f256d827358f?s=96&amp;d=identicon&amp;r=G","title":"nakedhedgie","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/image-4.png?w=813","medium":"image"}]}


guid: http://www.thespec.com/tncms/asset/editorial/2d306b20-12de-56f9-adb5-610980b29a19
author: ;Fallon Hewitt Spectator Reporter
content: Double-homicide sparked lengthy standoff that led to fatal police shooting
hash: ��pD��J�h�� Pr��
title:
Murder in Stoney Creek: SIU release shocking details from the night a landlord shot and killed his tenants

link:
https://www.thespec.com/news/crime/murder-in-stoney-creek-siu-release-shocking-details-from-the-night-a-landlord-shot-and/article_2d306b20-12de-56f9-adb5-610980b29a19.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/f/08/f0819b43-3674-535c-abb9-e985c059371e/65133e5b5618e.image.jpg?resize=300%2C171","type":"image/jpeg","length":128360}]}


guid: https://scottjehl.com/posts/responsive-video/
title: We're Bringing Responsive Video Back!
author: ;Scott Jehl
link: https://scottjehl.com/posts/responsive-video/
hash: $x���e�St�����
attributes: {"enclosures":[]}
content:
<p>It's been a couple of years since I wrote <a href="https://www.filamentgroup.com/lab/video-with-sizes/">HTML Video Sources Should Be Responsive</a>, where I expressed frustration about the lack of a straightforward, declarative HTML solution for delivering different video sizes to different devices. I also pointed out that there used to be a graceful solution to this issue!</p>
<p>That's right. We used to have standard, cross-browser responsive video. However, in 2014, media attribute support for HTML video sources <a href="https://github.com/whatwg/html/commit/c5ec4f6203e199721a879a3267e63520e21a8f8f">was <strong>deleted</strong> from the HTML standard</a>, partly based on claims that other, albeit more complicated video delivery options like HLS were better for all use cases. Soon after, both Chrome and Firefox pulled their stable, functioning code to comply with the changed standard, but interestingly, Safari hung onto their support, leaving us a working implementation to use and reference today both on desktop and iOS.</p>
<p><strong>To Recap: removing responsive video support was a mistake. Here's why:</strong></p>
<ul>
<li>Using an HTML video element to display a static video file is one of the most common and portable ways to drop a video into a webpage today. In fact, according to HTTP Archive, <a href="https://almanac.httparchive.org/en/2022/media#format-adoption-1">MP4 remains the most popular video format in use</a>.</li>
<li>Video is the heaviest type of media used on websites. According to the HTTP Archive, the median weight of just the video files on pages that use video <a href="https://httparchive.org/reports/page-weight#bytesVideo">is <strong>almost 5 megabytes per page</strong> on mobile devices</a>. That weight has a huge impact on performance, users' data costs, sites' hosting costs, and overall energy usage.</li>
<li>Video download size has constantly increased over time (<a href="https://httparchive.org/reports/page-weight#bytesVideo">up by 45% on mobile in the past 5 years</a>), despite the <a href="https://almanac.httparchive.org/en/2022/media#video-durations">median video's duration</a> remaining quite short.</li>
<li>Using media queries to deliver different files responsively is intuitive to web developers today, with precedent in responsive images and CSS, and it's quicker and easier to implement than more robust streaming protocols like <em>HTTP Live Streaming</em>.</li>
<li>The median video download size is <a href="https://httparchive.org/reports/page-weight#bytesVideo"><strong>heavier on mobile devices than on desktop devices</strong></a>, across the same set of tested websites on HTTP Archive (fwiw, this is probably because their mobile crawl uses a higher browser resolution for mobile, which streaming video will accommodate).</li>
</ul>
<p>That last point feels particularly salient because the opposite is true both for images and for page weight as a whole: they are lighter weight at the median for mobile devices, no doubt thanks to "responsive image" features like <code>picture</code>, <code>srcset</code>, <code>sizes</code>, and <code>loading=lazy</code>. When technology makes it easy, web developers will build responsively <em>and <a href="https://abookapart.com/products/responsible-responsive-design">responsibly</a></em>, but <strong>it's just not easy enough to do that with video.</strong></p>
<p>Anyway, it's clear that we still need something <em><strong>&lt;picture&gt;...sque!</strong></em><br>
(<em>Look, I don't know what to say besides this website is free.</em>)</p>
<p>So along with that article, I outlined some of the points above in an <a href="https://github.com/filamentgroup/html-video-responsive">explainer document</a>, which included some markup examples that should feel familiar to folks who have used the <code>picture</code> element, like this:</p>
<pre><code data-sanitized-class="language-html">&lt;video&gt;
    &lt;source media="(min-width: 2000px)" src="large.webm" type="video/webm"&gt;
    &lt;source media="(min-width: 2000px)" src="large.mp4" type="video/mp4"&gt;
    &lt;source media="(min-width: 1000px)" src="medium.webm" type="video/webm"&gt;
    &lt;source media="(min-width: 1000px)" src="medium.mp4" type="video/mp4"&gt;
    &lt;source src="small.webm" type="video/webm"&gt;
    &lt;source src="small.mp4" type="video/mp4"&gt;
&lt;/video&gt;
</code></pre>
<p>Lastly, I <a href="https://github.com/whatwg/html/issues/6363">filed an issue on the WhatWG's HTML working standard</a> asking the WhatWG to reinstate the feature in the HTML spec, which received some nice discussion from the community.</p>
<h2>Quiet... then Progress!</h2>
<p>For a couple of years, that was the whole story.</p>
<p>But then, this spring the WhatWG issue thread lit up with some good news: representatives from <a href="https://github.com/whatwg/html/issues/6363#issuecomment-1561454274">Firefox</a> and <a href="https://github.com/whatwg/html/pull/9341#issuecomment-1564631397">Chrome</a> chimed in to say that they agreed and intend to reinstate their support! Following that, implementation bugs were filed in the <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=1450316">Chromium</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1836128">Firefox</a> trackers.</p>
<h2>Responsive Video Becomes Standard Again</h2>
<p>With two major browsers' intent to implement and the other already implemented, Simon Pieters <a href="https://github.com/web-platform-tests/wpt/commit/0f4b390234ab06f8841c9e89c74afc04c66c7f91">landed a commit to amend the HTML standard</a>.</p>
<p>And here is that change reflected in <a href="https://html.spec.whatwg.org/#attr-source-media">the actual HTML spec today</a>.</p>
<p><strong>Yeah!</strong></p>
<h2>My C++ Coding Journey</h2>
<p>I bet you didn't expect to see that heading. I'll get there...</p>
<p>So responsive video is standard again, but the cross-browser support situation remains unchanged. What happens now is the change has made its way into the respective browsers' backlogs, <strong>which is awesome</strong>, but there's no indication of a timeline or priority for when the changes will be made.</p>
<h3>Back to Work</h3>
<p>In the interest of sustaining this renewed momentum, I started by putting together a very simple test page to demonstrate support for responsive video. There are many of these test pages out there, and <a href="https://www.zachleat.com/test/media-on-video/video-media.html">some are more thorough</a>, but this one's quick and easy to test. The page contains a video element with two sources referencing <code>large.mp4</code> and <code>small.mp4</code>. That code looks like this:</p>
<pre><code data-sanitized-class="language-html">&lt;video controls autoplay loop&gt;
    &lt;source src="large.mp4" type="video/mp4" media="(min-width: 600px)"&gt;
    &lt;source src="small.mp4" type="video/mp4"&gt;
&lt;/video&gt;
</code></pre>
<p>That <code>media</code> attribute on the first <code>source</code> element instructs browsers that support media queries on video source elements to only use that <code>source</code> when their viewport size is at least 600px wide. Those supporting browsers will skip over that source at narrower viewport sizes and choose the <code>small.mp4</code> instead, and you can tell which source in <em>play</em> because the video displays some <em>Word-Art</em>-style dancing text that says which size is playing. Meanwhile, browsers that don't support responsive video will simply ignore the media attribute and pick the first suitable source, which in this case will be the large video.</p>
<p>Here's <a href="https://scottjehl.com/sandbox/video-media/">a link to that test page</a>.</p>
<p>I'd recommend opening that page in Safari (our existing working implementation) to try it out yourself. Here are a couple of screenshots verifying that Safari negotiates the media attribute as it should.</p>
<p><img src="https://scottjehl.com/assets/post-video-media/webkit-small.png" alt="safari screenshot showing a small window with a small video source, made clear by the text on the video that says small video source"></p>
<p><img src="https://scottjehl.com/assets/post-video-media/webkit-large.png" alt="safari screenshot showing a larger window with a large video source, made clear by the text on the video that says large video source"></p>
<p>Oh, and I should mention one detail unique to responsive video: due to the complexity involved in swapping <code>video</code> sources (e.g. matching timecodes, reloading heavy files, etc.), <code>video</code> media is assessed <strong>only</strong> at page load time, and not again after that when media changes from a browser resize (so it's not quite like <code>picture</code>). Basically, you'll need to refresh the page to see the video change.</p>
<h3>Alright, Let's Fix Up Firefox!</h3>
<p>Thanks to the beauty of open source, the Firefox and Chrome code from 2016 is still available to browse and analyze. I decided I would try to dig into those commits and see if I could make at least one of the updates myself. As a Firefox fan from the early days, I chose to start there.</p>
<p>I've never contributed to Firefox before, nor have I written a whole lot of C++, but I found this <a href="https://firefox-source-docs.mozilla.org/setup/contributing_code.html">How to Contribute Code to Firefox</a> guide to be incredibly helpful and encouraging.</p>
<p>Following the initial steps, it took my aging Macbook Pro at least a few hours to clone and build Firefox Nightly, but I was pleased to see it all work without any trouble. After that, I moved on to reinstating the C++ code that would enable media attribute support in video <code>source</code> elements.</p>
<p><strong>After a bit of tinkering with the code, I was pleased to see that responsive video seemed to be working in my local build!</strong></p>
<p>Here's a screenshot of my patched Firefox Nightly loading the demo page at a small viewport size. The small video source that's shown means Firefox assessed those media queries and selected the appropriate source.</p>
<p><img src="https://scottjehl.com/assets/post-video-media/ffnightly-small.png" alt="a screenshot of firefox nightly showing the successful demo page"></p>
<p>In addition to the code edits themselves, there were some previously-written web platform tests that needed to be unmarked as "expected failure" because, yep, now they're passing!</p>
<p>With the changes in and tests running as expected, it was time to package up the patch.</p>
<h3>A Firefox Patch!</h3>
<p>I submitted a patch to the Firefox team on Sept. 27th, and Paul Adenot at Mozilla has been reviewing and testing it, and providing some great feedback. If you're curious, you can check out the patch and its progress here on Mozilla Phabricator:</p>
<p><a href="https://phabricator.services.mozilla.com/D189416">Patch: Implement source media for media elements and reference/update relevant platform tests</a></p>
<p>Hopefully, this patch will show up in an upcoming Firefox release! For updates on that, keep an eye on the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1836128">issue on Bugzilla</a>, or <a href="https://mstdn.social/@scottjehl">follow me on Mastodon</a>.</p>
<p><strong>UPDATE!:</strong> My patch was accepted and merged! Responsive video is now in Firefox stable.</p>
<h3>Next up, Chromium?</h3>
<p>With cross-browser support building, I would love to see Chromium (that is, the engine behind Chrome, Edge, Arc, and more) regain this feature soon. I'm not sure I'll have the time to try and tackle the Chromium reimplementation myself, so I'm hoping the pending addition to Firefox will help motivate someone from the browser teams or the community to jump in on that. For now, we can follow the progress in the <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=1450316">Chromium</a> tracker (<em>oh hey, and star the issue!</em>)</p>
<p><strong>UPDATE!:</strong> Google wrote a patch as well. Responsive video is now in Chrome stable.</p>
<h3>Stretch Goal: Srcset and Sizes</h3>
<p>As a parting thought, I wanted to add that there are additional conventions that could be useful to borrow from <code>picture</code>, and one in particular that comes to mind is support for the <code>srcset</code> and <code>sizes</code> attributes. These have proven to be wildly successful in responsive image delivery, and I think they'd offer a level of control over delivery that's often better than media queries can provide.</p>
<p>I've added another issue to the WhatWG group tracker to discuss these attributes for <code>video</code> source selection. <a href="https://github.com/whatwg/html/issues/9446">Feel free to chime in</a>!</p>
<h2>So When Can I use Responsive Video?</h2>
<p>I'm so glad you asked! <strong>The answer is today!</strong> Heck, <em>yesterday</em> even.</p>
<p>Responsive video is a web standard again, and it has been working in Safari for well over a decade, meaning iOS users can already benefit from responsive video. Start using it wherever it makes sense for you!</p>
<h3>Should I use this instead of streaming video?</h3>
<p>So, probably not, if you have the choice. That is, if you're able to use streaming video protocols, by all means, do that! HLS video is designed to accommodate browser environments and connection speeds and will result in a more tailored experience. That said, if you're constrained by time, hosting environment, or even familiarity with the HLS tech, responsive video is a great option to consider.</p>
<p>Having said all that, one use case that I think might be better supported by responsive video is offline/PWA websites, where it might be very helpful to cache an appropriately-sized offline video. I'd be interested in hearing if others have ideas on this...</p>
<h2>Thanks for reading!</h2>
<p>You made it this far. Thank you for reading. I'd like to thank Eric Portis for giving this post an early read and technical review, and a very special thanks to Paul Adenot at Mozilla for guidance and for reviewing the Firefox patch.</p>


guid: http://isystem-tf.com/?p=3343
title: Market experts: crude oil to go to $12 or $65 or $150 or $380 per barrel…
author: ;Alex Krainer
hash: U�����5��1��
content:
<p>It has long been my contention that in securities markets, prices lead and narratives follow, as I summed up in this 2016 article: “<a rel="noreferrer noopener" href="https://thenakedhedgie.com/2016/04/12/market-facts-vs-market-narratives/" target="_blank">Market facts vs. market narratives</a>.” Yesterday we had another case in point: the price of Crude Oil rallied and the media rushed a slew of articles and commentary explaining the move. </p>



<p>ZeroHedge headline read, “<strong><a rel="noreferrer noopener" href="https://www.zerohedge.com/markets/us-shale-giant-agrees-jpmorgan-oil-headed-150" target="_blank">US Shale Giant Agrees With JPMorgan: Oil Headed For $150</a>.</strong>” Without a doubt, had the price of Crude Oil crashed, we’d have a slew of articles and commentary explaining all the reasons why that had happened. It calls to mind these two articles, published by Bloomberg on the same week last summer and showing a very different forecast from JPMorgan:</p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="1024" height="566" data-attachment-id="3347" data-permalink="https://isystem-tf.com/2023/09/28/market-experts-crude-oil-to-go-to-12-or-65-or-150-or-380-per-barrel/image-6-3/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-6.png" data-orig-size="1118,618" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="image-6" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-6.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-6.png?w=1024" src="https://isystem-tf.com/wp-content/uploads/2023/09/image-6.png?w=1024" alt="" data-sanitized-class="wp-image-3347"></figure>



<p></p>



<p>So, oil is going to $65, or $150, or $380… Other analysts still called for Crude Oil going to $20-handle, and let’s not forget <strong>Cathy Wood</strong>‘s genius 2020 forecast for oil at $12/bbl. All these predictions were duly reasoned by learned analysts working diligently at their great big market institutions armed with all the information money can buy. Given the broad range of all these forecasts, someone will prove right and they’ll probably be ushered before the viewers at CNBC, Bloomberg and other media to talk about <em>how they knew</em>… Next, we’ll read about “the analyst who predicted <em>bla, bla.. </em>who now says that, <em>bla, bla, bla…”</em></p>



<h2 data-sanitized-class="wp-block-heading">There has got to be a better way!?</h2>



<p>This kind of thing has been going on forever, but from an investor’s point of view, it’s all worth less than zero. As an oil market analyst in the 1990s, after about three years of following many market experts, I realized that this kind of guidance was worthless, which led me to develop a quantitative trading approach based on systematic trend following. </p>



<p>Here’s how the 12 Crude Oil strategies included in our Major Markets portfolio have performed, basing the trading decisions exclusively on Brent’s price fluctuation dynamics, without any sort of prediction involved:</p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="775" height="822" data-attachment-id="3345" data-permalink="https://isystem-tf.com/2023/09/28/market-experts-crude-oil-to-go-to-12-or-65-or-150-or-380-per-barrel/image-5-5/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-5.png" data-orig-size="775,822" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="image-5" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-5.png?w=283" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/image-5.png?w=775" src="https://isystem-tf.com/wp-content/uploads/2023/09/image-5.png?w=775" alt="" data-sanitized-class="wp-image-3345"></figure>



<p>It’s a busy chart for sure, but what it shows is the price of Brent Crude Oil contract, I-System’s <em>trend confidence</em> function, our exposure based on the 12 strategies, each trading a single contract of Brent Crude, and the trading performance of these signals. </p>



<h2 data-sanitized-class="wp-block-heading">The current positioning…</h2>



<p>We switched from net short to net long on 12 July when Brent closed at $81.11 and added to a full long position at an average price of $83.91 for an unrealized gain through last night’s closing price of $10.45/barrel. Also, please note that trend following includes deep and long drawdowns, which is why I repeatedly drum on the need for patience and discipline. </p>



<p>With respect to our current (unrealized) gain, it might grow, or it might vanish, depending on future price fluctuations, which we cannot predict. Perhaps the price of the barrel goes to JPMorgan’s target of $150, or JPMorgan’s other target of $380, who knows. Or perhaps it goes to Cathy Wood’s $12.  </p>



<p>The point is that markets move in trends and that <a rel="noreferrer noopener" href="https://isystem-tf.com/2021/07/11/market-trends-far-and-away-the-most-powerful-drivers-of-investment-performance/" target="_blank">large-scale price events represent the most powerful driver of investment returns</a>. A disciplined, <a rel="noreferrer noopener" href="https://isystem-tf.com/2020/05/26/trend-following-is-the-only-valid-answer-to-the-problem-of-uncertainty/" target="_blank">patient adherence to a set of tried-and-tested rules</a> offers more sustainable, more reliable guidance to markets than expert forecasts can, which is the whole <em>raison d’etre</em> behind I-System Trend Following and the TrendCompass newsletter. </p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="712" height="417" data-attachment-id="3293" data-permalink="https://isystem-tf.com/2023/09/15/italy-crumbling/tc_coverimage/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png" data-orig-size="2553,1497" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="tc_coverimage" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=1024" src="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=712" alt="" data-sanitized-class="wp-image-3293"></figure>



<div data-sanitized-class="wp-block-group"><div data-sanitized-class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h2 data-sanitized-id="sign-up-for-a-1-month-free-trial-of-i-system-trendcompass" data-sanitized-class="wp-block-heading">Sign up for a 1-month free trial of <a href="https://isystem-tf.com/i-system/" target="_blank" rel="noreferrer noopener">I-System</a> TrendCompass!</h2>



<p>One of the best trend following newsletters on the market, I-System TrendCompass delivers consistent, dependable and effective<strong> decision support daily, based on <a rel="noreferrer noopener" href="https://isystem-tf.com/i-system/" target="_blank">I-System</a></strong> trend following strategies covering over 200 key financial and commodities markets with no dilution in quality or focus.</p>



<ul data-sanitized-class="wp-block-list">
<li>Cut the information overload</li>



<li>Get real-time CTA intelligence in <strong>seconds per day</strong></li>



<li>Never miss a major trend move</li>



<li>Navigate trends profitably, with confidence and <strong>peace of mind</strong></li>
</ul>



<p>One month test-drive is always on us. Sign up for a 1-month FREE trial by e-mailing us at <a rel="noreferrer noopener" href="mailto:TrendCompass@ISystem-TF.com" target="_blank"><strong>TrendCompass@ISystem-TF.com</strong></a></p>



<p data-sanitized-class="has-medium-font-size">To learn more, please visit <strong><a rel="noreferrer noopener" href="https://isystem-tf.com/trendcompass/" target="_blank">I-System TrendCompass</a> page</strong>.</p>
</div></div>

link:
https://isystem-tf.com/2023/09/28/market-experts-crude-oil-to-go-to-12-or-65-or-150-or-380-per-barrel/

tags:
#Commodity price #Forecasts #I-System TrendCompass #Quantitative strategies #Trend following #TrendCompass #Oil price

attributes:
{"enclosures":[{"url":"https://0.gravatar.com/avatar/3cf56351ad2361f720df6adf94285322fc831b589472a80e77d0f256d827358f?s=96&amp;d=identicon&amp;r=G","title":"nakedhedgie","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/image-6.png?w=1024","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/image-5.png?w=775","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=712","medium":"image"}]}


guid: http://www.thespec.com/tncms/asset/editorial/58c0bd9f-493b-5227-948a-ae391c1ced03
title: Pedestrian dead after collision involving cement truck in downtown Hamilton
author: ;Sebastian Bron Spectator Reporter
content: The intersection at James and York re-opened in all directions around 9:25 p.m. Thursday
hash: ���#���\�3ƟG
link:
https://www.thespec.com/news/hamilton-region/pedestrian-dead-after-collision-involving-cement-truck-in-downtown-hamilton/article_58c0bd9f-493b-5227-948a-ae391c1ced03.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/f/85/f85bba87-0b04-5c43-8eee-1859d0641770/6516022b13534.image.jpg?resize=300%2C225","type":"image/jpeg","length":226966}]}


guid: http://www.thespec.com/tncms/asset/editorial/0169b89e-6558-587d-8423-514d807d9429
title: Hamilton exploring court injunctions to bar unruly ‘fake homecoming’ street parties
author: ;Teviah Moro Spectator Reporter
content: Councillor wants to send ‘clear message’ that large unsanctioned events ‘not acceptable’
hash: ��R��N��|�)~��
link:
https://www.thespec.com/news/hamilton-region/hamilton-exploring-court-injunctions-to-bar-unruly-fake-homecoming-street-parties/article_0169b89e-6558-587d-8423-514d807d9429.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/1/25/125ae3c1-3bf0-558c-b072-245904db7f0d/6515f7a050738.image.jpg?resize=300%2C193","type":"image/jpeg","length":112188}]}


guid: http://www.thespec.com/tncms/asset/editorial/2018cf32-4cbc-502d-b17d-c57e4c708adc
title: McMaster Children’s Hospital shores up beds, ER and ICU to prepare for respiratory season
author: ;Joanna Frketich Spectator Reporter
content: Hospital looks to avoid another crisis during expected viral surge of COVID, flu and RSV
hash: e#9�g6� �8�L��
link:
https://www.thespec.com/news/hamilton-region/mcmaster-children-s-hospital-shores-up-beds-er-and-icu-to-prepare-for-respiratory-season/article_2018cf32-4cbc-502d-b17d-c57e4c708adc.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/9/a3/9a36dfb2-b606-526e-9fab-33894752758d/6515f54717e32.image.jpg?resize=300%2C198","type":"image/jpeg","length":132091}]}


guid: http://www.thespec.com/tncms/asset/editorial/8f22bd8f-2ccf-50b7-ba40-f3a47734cdca
title: Cyclist killed in downtown Hamilton collision
author: ;Fallon Hewitt Spectator Reporter
hash: � 3�|̆�t�D�"/�
content:
The crash was originally reported as a pedestrian fatality by police, however police later confirmed the victim was a cyclist

link:
https://www.thespec.com/news/hamilton-region/cyclist-killed-in-downtown-hamilton-collision/article_8f22bd8f-2ccf-50b7-ba40-f3a47734cdca.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/3/15/3150a4b5-34cc-54c6-a66d-4badc0dc10f5/6516d68407484.image.jpg?resize=300%2C225","type":"image/jpeg","length":226966}]}


guid: http://www.thespec.com/tncms/asset/editorial/0e03b6e2-7849-52b8-828c-6591a0fdc0c7
title: Hamilton cat rescuer who sued Facebook group for libel has case dismissed
author: ;Sebastian Bron Spectator Reporter
content: Judge says libel challenge tried to ‘silence concerns and debate,’ limit freedom of expression
hash: ���Ϧ�|��?�Ф��
link:
https://www.thespec.com/news/hamilton-region/hamilton-cat-rescuer-who-sued-facebook-group-for-libel-has-case-dismissed/article_0e03b6e2-7849-52b8-828c-6591a0fdc0c7.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/2/c6/2c6491ac-22c8-5d31-85f4-95016b2c2bf8/651745db60ad1.image.jpg?resize=300%2C205","type":"image/jpeg","length":91079}]}


guid: http://www.thespec.com/tncms/asset/editorial/94733956-de61-5f1d-9607-5cbfc3516038
title: Why response to school bomb threats can differ from day to day
author: ;Kate McCullough Spectator Reporter
hash: L.̾��>�_��9�1 +
content:
Hamilton has seen a wave of school threats — some resulting in evacuation, for others students stayed in class; police and school officials explain how they scale their response

link:
https://www.thespec.com/news/hamilton-region/why-response-to-school-bomb-threats-can-differ-from-day-to-day/article_94733956-de61-5f1d-9607-5cbfc3516038.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/8/c2/8c2c0e00-5ff6-54c3-b89a-35c055aeab40/651af3cb4518b.image.jpg?resize=300%2C158","type":"image/jpeg","length":139024}]}


guid: http://www.thespec.com/tncms/asset/editorial/bf0543fe-f798-5c9b-97b0-e9fa0b02e5a4
author: ;Jon Wells Spectator Reporter
hash: =�B��%0A�(B�^��
title:
Disgraced McMaster scientist Jonathan Pruitt publishes fantasy novel in aftermath of research scandal

content:
Investigation found Jonathan Pruitt ‘engaged in data falsification and fabrication in several papers’ while based at U.S. universities.

link:
https://www.thespec.com/news/hamilton-region/disgraced-mcmaster-scientist-jonathan-pruitt-publishes-fantasy-novel-in-aftermath-of-research-scandal/article_bf0543fe-f798-5c9b-97b0-e9fa0b02e5a4.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/f/80/f80e0b09-2d91-5600-aefd-8a73b41ca0d0/651b3ecb8a8c7.image.jpg?resize=300%2C200","type":"image/jpeg","length":139657}]}


guid: http://www.thespec.com/tncms/asset/editorial/b0354722-ecef-5c0a-9ff2-150da84d7bff
title: Stabbing caught on film only results in manslaughter plea
author: ;Susan Clairmont Spectator Columnist
hash: �Q��3���S��'d
content:
Unusual case will see Malcolm Washington serve 10 years for killing Ethan MacCullouch in MacNab Street rooming house

link:
https://www.thespec.com/opinion/stabbing-caught-on-film-only-results-in-manslaughter-plea/article_b0354722-ecef-5c0a-9ff2-150da84d7bff.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/0/55/05599db8-40b7-547e-94c0-bc9d45cfa687/651b08e352f1e.image.jpg?resize=300%2C285","type":"image/jpeg","length":47455}]}


guid: yt:video:jUay_Gf7cKE
title: How I Create Mogrts Minutes with Smart Functions!
author: ;ukramedia
link: https://www.youtube.com/watch?v=jUay_Gf7cKE
hash: l�ICXl G�f�-Eh�e
attributes:
{"enclosures":[{"url":"https://www.youtube.com/v/jUay_Gf7cKE?version=3","title":"How I Create Mogrts Minutes with Smart Functions!","description":"*/// About*\nIn this video, I'll demonstrate how to create a responsive lower third for MoGrts (Motion Graphics Templates) in Adobe After Effects in just minutes. I'll be showcasing a powerful tool I've developed called Smart Functions, which consists of a collection of After Effects Expressions stored in a .jsx file.\n\nBy importing this file into After Effects, I'll show you how to harness the capabilities of Smart Functions to effortlessly design responsive MoGrts. It's important to note that Smart Functions is currently in its BETA stage and not yet publicly available. However, I'm excited to announce that it will be released soon, so stay tuned for updates.\n\n*/// Let's Connect*\nFacebook: https://www.facebook.com/ukramedia\nSergei's Facebook Page: https://www.facebook.com/sergeiprokhn...\nTwitter: https://twitter.com/ukramedia\nTikTok: https://www.tiktok.com/@ukramedia\nInstagram: https://www.instagram.com/ukramedia/\nPinterest: https://www.pinterest.com/ukramedia/\nLinkedin: https://www.linkedin.com/company/ukra...\nYouTube: https://www.youtube.com/c/ukramedia\nUkramedia Online Community: https://www.ukramedia.com/community\n\nMusic from Uppbeat (free for Creators!):\nhttps://uppbeat.io/t/moire/new-life\nLicense code: RFTA4RIBY3QN4N8F\n\n#AfterEffects #AdobeAfterEffects #mogrt","type":"application/x-shockwave-flash","height":390,"width":640,"thumbnails":["https://i3.ytimg.com/vi/jUay_Gf7cKE/hqdefault.jpg"]}]}


title: The Battle Against Slavery and the Roots of the USA [Nancy Spannaus RTF Lecture]
author: ;Rising Tide Foundation
hash: ����� �E|u��
guid:
https://odysee.com/the-battle-against-slavery-and-the-roots:4c9d6722358cf2d679c4fe167427de84ba6cf639

content:
<p><img src="https://thumbnails.lbry.com/DpnIV4qSA1w" width="480" alt="thumbnail" title="The Battle Against Slavery and the Roots of the USA [Nancy Spannaus RTF Lecture]"></p>This Sunday September 24, The Rising Tide Foundation hosted American System Now President Nancy Spannaus brilliantly refuted the popular narrative that the USA was a nation built upon exploitation, hypocrisy, slavery and empire.<br><br>Nancy unpacks the principled battles that occured before, during and after the American revolution over the issue of the idea of freedom for all citizens regardless of skin color. <br><br>Nancy Spannaus is the author of Hamilton vs Wall Street which can be purchased here:  https://www.amazon.com/s?k=Hamilton+Versus+Wall+Street&amp;ref=nb_sb_noss<br><br>Her website is: https://americansystemnow.com/<br><br>Support the Rising Tide Foundation's work by any of the following ways:<br><br>1) Make a donation on Paypal, Patreon or Wordpress<br>https://risingtidefoundation.net/support-the-work/<br><br>2) Subscribe to Matt and Cynthia's Substacks at<br>matthewehret.substack.com<br>cynthiachung.substack.com<br><br>3) Buy some books!<br>https://canadianpatriot.org/untold-history-of-canada-books/<br>...<br>https://www.youtube.com/watch?v=DpnIV4qSA1w

link:
https://odysee.com/the-battle-against-slavery-and-the-roots:4c9d6722358cf2d679c4fe167427de84ba6cf639

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/the-battle-against-slavery-and-the-roots/4c9d6722358cf2d679c4fe167427de84ba6cf639/d12d33.mp4","type":"video/mp4","length":305133967}]}


guid: http://www.thespec.com/tncms/asset/editorial/5164c246-aaeb-59bd-8827-dbea8c450a59
title: New owner of Hamilton rentals aims to preserve affordability
author: ;Teviah Moro Spectator Reporter
hash: ��'��i�:�1��
content:
New Market Funds teams up with Hamilton Community Foundation to put pair of walk-ups in non-profit hands

link:
https://www.thespec.com/news/hamilton-region/new-owner-of-hamilton-rentals-aims-to-preserve-affordability/article_5164c246-aaeb-59bd-8827-dbea8c450a59.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/3/ab/3ab04bb7-45e9-52c9-aa76-2ad3982fc662/651dca5b4636b.image.jpg?resize=300%2C249","type":"image/jpeg","length":172864}]}


guid: http://www.thespec.com/tncms/asset/editorial/f6f6e4f2-f56f-550b-b89b-413834d8589b
title: Developer appeals 39-storey highrise pitch for downtown Hamilton parking lot to tribunal
author: ;Teviah Moro Spectator Reporter
content: Councillor says city needs that kind of intensification in core
hash: �_�/ ѦČe���
link:
https://www.thespec.com/news/hamilton-region/developer-appeals-39-storey-highrise-pitch-for-downtown-hamilton-parking-lot-to-tribunal/article_f6f6e4f2-f56f-550b-b89b-413834d8589b.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/9/8d/98d159eb-1959-5694-ba25-535fda823dd5/651defe4ea019.image.jpg?resize=300%2C349","type":"image/jpeg","length":166777}]}


guid: http://www.thespec.com/tncms/asset/editorial/889ea2dc-f4cc-502f-8ce2-cbb97db41382
title: City backs Mountain residents in Canadian Tire compactor conflict
author: ;Teviah Moro Spectator Reporter
content: Pair of noisy waste compressors have driven her from backyard, neighbour says
hash: �ٓW��8L���)y�
link:
https://www.thespec.com/news/hamilton-region/city-backs-mountain-residents-in-canadian-tire-compactor-conflict/article_889ea2dc-f4cc-502f-8ce2-cbb97db41382.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/5/4b/54b7deed-7a3c-566c-a6f7-d9b666dfbac9/651ebbc599c49.image.jpg?resize=300%2C225","type":"image/jpeg","length":177624}]}


guid: http://www.thespec.com/tncms/asset/editorial/4c13d193-c3e9-520a-9718-113201fb02b9
title: Hamilton real estate market sees slowest September in more than a decade
author: ;Fallon Hewitt Spectator Reporter
content: Just 373 homes sold in the city last month, marking a 17 per cent drop from the same time last year
hash: ��sE��u��po��
link:
https://www.thespec.com/business/real-estate/hamilton-real-estate-market-sees-slowest-september-in-more-than-a-decade/article_4c13d193-c3e9-520a-9718-113201fb02b9.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/c/69/c697d859-e5d1-52cb-9aa9-d786854ce1cd/651edeeb0c200.image.jpg?resize=300%2C200","type":"image/jpeg","length":143413}]}


guid: http://www.thespec.com/tncms/asset/editorial/3ed2a5ca-d272-5278-b8c3-c7bd0900894f
title: Hamilton cop guilty of sex assault against fellow officer
author: ;Susan Clairmont Spectator Columnist
content: Michael LaCombe wept as judge delivered sentence; will be sentenced at later date
hash: f�9��8Z4��Ц�i�
link:
https://www.thespec.com/news/crime/hamilton-cop-guilty-of-sex-assault-against-fellow-officer/article_3ed2a5ca-d272-5278-b8c3-c7bd0900894f.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/4/eb/4eb7de55-1e99-5c9e-bf91-0b661935de2d/651ef1aacd6e6.image.jpg?resize=300%2C190","type":"image/jpeg","length":171188}]}


guid: http://www.thespec.com/tncms/asset/editorial/a7838a31-a33c-5390-9881-d1f8457457b3
title: ‘Everyone wants our waste’: Energy-from-waste companies eye Hamilton garbage
author: ;Matthew Van Dongen Spectator Reporter
content: Private sector interest in local trash growing despite a history of opposition to incineration.
hash: ���M%6Eh��ڜ�֮
link:
https://www.thespec.com/news/hamilton-region/everyone-wants-our-waste-energy-from-waste-companies-eye-hamilton-garbage/article_a7838a31-a33c-5390-9881-d1f8457457b3.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/4/cb/4cbbb89f-922b-5d27-9328-1ee9e4e231a7/651f0259ae98f.image.jpg?resize=300%2C172","type":"image/jpeg","length":183595}]}


guid: http://www.thespec.com/tncms/asset/editorial/5b092a10-f402-50fe-b244-22d740e3a959
title: Hamilton Health Sciences overcrowded and understaffed as respiratory season starts early
author: ;Joanna Frketich Spectator Reporter
content: Hamilton General Hospital redirecting some out-of-town critical care referrals
hash: �bQ+=J�Ձ1��V
link:
https://www.thespec.com/news/hamilton-region/hamilton-health-sciences-overcrowded-and-understaffed-as-respiratory-season-starts-early/article_5b092a10-f402-50fe-b244-22d740e3a959.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/a/d7/ad7be883-b888-515e-b356-5494f88cfeb7/651ef07eb5ba8.image.jpg?resize=300%2C164","type":"image/jpeg","length":125562}]}


guid: http://www.thespec.com/tncms/asset/editorial/cf568bd7-603a-5be3-a7e7-2557e8b2751d
author: ;Matthew Van Dongen Spectator Reporter
hash: ��y �:�i�)���
title:
‘Too bad I slept with my windows open:’ Hamilton beach strip residents blanketed with shiny, mystery fallout

content:
Provincial investigators have taken samples of the dirty-white substance that coated cars, windows and decks in the lakeside Hamilton neighbourhood.

link:
https://www.thespec.com/news/hamilton-region/too-bad-i-slept-with-my-windows-open-hamilton-beach-strip-residents-blanketed-with-shiny/article_cf568bd7-603a-5be3-a7e7-2557e8b2751d.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/8/a3/8a3db531-bea5-5448-93e9-28698570c788/651f3ab76df28.image.jpg?resize=300%2C187","type":"image/jpeg","length":305436}]}


guid: http://www.thespec.com/tncms/asset/editorial/3260dc8b-4cb1-5c50-b9c8-d357cbec4969
title: Simoni Lawrence brings a dying fan one final burst of joy
author: ;Scott Radley Spectator Columnist
content: Visit with Ticat veteran gives retired Halton cop ‘the last happiest moment’
hash: m)��˙��e � �ǁ
link:
https://www.thespec.com/sports/simoni-lawrence-brings-a-dying-fan-one-final-burst-of-joy/article_3260dc8b-4cb1-5c50-b9c8-d357cbec4969.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/e/47/e47b1467-f0e0-50c9-b380-b62cee603aeb/6520214458f52.image.jpg?crop=450%2C338%2C200%2C312&amp;resize=300%2C225&amp;order=crop%2Cresize","type":"image/jpeg","length":225085}]}


guid: http://www.thespec.com/tncms/asset/editorial/65aee479-b637-5f59-af72-f0191faeb278
title: St. Patrick Parish soup kitchen moves to new space as need in Hamilton ‘just keeps growing’
author: ;Fallon Hewitt Spectator Reporter
content: The King Street East outreach served a record 690 meals in late August.
hash: {�\�3 �]_&6̚��
link:
https://www.thespec.com/news/hamilton-region/st-patrick-parish-soup-kitchen-moves-to-new-space-as-need-in-hamilton-just-keeps/article_65aee479-b637-5f59-af72-f0191faeb278.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/b/62/b6233cd0-0409-5302-866b-46af9781c479/651f17e38a3e0.image.jpg?resize=300%2C207","type":"image/jpeg","length":172180}]}


guid: https://scottjehl.com/posts/hello-begin/
title: Collab Time! I'm Teaming Up with Enhance Dev
author: ;Scott Jehl
link: https://scottjehl.com/posts/hello-begin/
hash: >���?w�bͭa-�2<�
attributes: {"enclosures":[]}
content:
<p><strong>Announcement!</strong> Today I am starting a new work collaboration that I’m <em>real excited</em> about! I’ve teamed up for a short while with the talented crew at <a href="https://enhance.dev/">Enhance.Dev</a> (and <a href="https://begin.com/">Begin</a>) to help broaden awareness of their products and tools, <em>which I happen to think are great</em>.</p>
<p>Practically speaking, that’ll mean I'll be doing some public learning and blogging, a bit of product design and strategy, and ultimately working with the team to build an app that we think you're going to love (<em>and that just happens to be built with Begin and Enhance</em>).</p>
<p><img src="https://scottjehl.com/assets/post-enhance/enhancedev.png" alt='"a screenshot of the character"'></p>
<p>Anyway, you’ll be hearing more from me about <strong>Enhance</strong>, <strong>Begin</strong>, and of course, <em><strong>Axol</strong></em> (<em>that cute, fiery character on the swings above!</em>).</p>
<p>Stay tuned!</p>


guid: http://www.thespec.com/tncms/asset/editorial/0a43dbd4-32f0-5db0-80c9-5e007edf9660
title: Departing Mohawk College president gets $400,000 payout
author: ;Joanna Frketich Spectator Reporter
content: Ron McKerlie resigned because he was not reappointed for a third term as leader
hash: �S��sM����g9�Q
link:
https://www.thespec.com/news/hamilton-region/departing-mohawk-college-president-gets-400-000-payout/article_0a43dbd4-32f0-5db0-80c9-5e007edf9660.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/d/60/d60d6c2b-fc98-5782-ac6b-70f7f0f85227/6524423761a10.image.jpg?resize=300%2C294","type":"image/jpeg","length":154041}]}


guid: http://www.thespec.com/tncms/asset/editorial/bd6b979a-baf6-5554-afa4-9d457126c89c
title: Tenants move out, sale closes on disputed east Hamilton home
author: ;Kate McCullough Spectator Reporter
content: Sellers involved in class-action lawsuit against Landlord and Tenant Board
hash: ����%(�T��hz&��
link:
https://www.thespec.com/news/hamilton-region/tenants-move-out-sale-closes-on-disputed-east-hamilton-home/article_bd6b979a-baf6-5554-afa4-9d457126c89c.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/0/18/01842fbb-609e-5087-900c-3b0fc6846294/6525741371c1e.image.jpg?resize=300%2C225","type":"image/jpeg","length":326501}]}


guid: http://www.thespec.com/tncms/asset/editorial/2cd89a78-f9ee-5222-a7b7-9d1633b918e2
title: The story behind the Staios-Andlauer connection
author: ;Scott Radley Spectator Columnist
hash: �+� q |j��K%��
content:
When Michael Andlauer bought the Ottawa Senators, Steve Staios didn’t have to submit a resume, he’d already written it.

link:
https://www.thespec.com/sports/hamilton-region/the-story-behind-the-staios-andlauer-connection/article_2cd89a78-f9ee-5222-a7b7-9d1633b918e2.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/6/4f/64f3b7e0-caa5-52ad-822d-7b28b5b7b458/6525964bdb17f.image.jpg?resize=300%2C175","type":"image/jpeg","length":86308}]}


guid: http://www.thespec.com/tncms/asset/editorial/88bb1d90-27a2-56ff-a09d-5e6d5a064d09
author: ;Joanna Frketich Spectator Reporter
hash: Y^Z%�Z���B���{
title:
Infighting over how two babies died was used behind the scenes to justify closing Hamilton’s forensic pathology unit

content:
A crisis that had been building for years between Hamilton’s forensic pathology unit and provincial leaders reached a breaking point over investigations into three sudden deaths in 2017 — a Hamilton baby, a Milton baby and an adult immigration detainee

link:
https://www.thespec.com/news/hamilton-region/infighting-over-how-two-babies-died-was-used-behind-the-scenes-to-justify-closing-hamilton/article_88bb1d90-27a2-56ff-a09d-5e6d5a064d09.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/b/e2/be2adc5d-3f26-5eea-b581-6d0414170207/6525960ee4c44.image.jpg?resize=300%2C224","type":"image/jpeg","length":78978}]}


guid: http://www.thespec.com/tncms/asset/editorial/2d4cbc6d-80c9-5945-a34c-5cdaae205ef6
title: $93.5M in federal housing cash ‘absolutely a big deal,’ Hamilton mayor says
author: ;Teviah Moro Spectator Reporter
content: Housing accelerator fund allocation expected to ‘fast track’ more than 2,600 units
hash: X�!�sԺ���0k?=Ҕ
link:
https://www.thespec.com/news/hamilton-region/93-5m-in-federal-housing-cash-absolutely-a-big-deal-hamilton-mayor-says/article_2d4cbc6d-80c9-5945-a34c-5cdaae205ef6.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/9/64/96440b89-251e-5a53-9378-a78a303de360/6525e493277aa.image.jpg?resize=300%2C225","type":"image/jpeg","length":160937}]}


guid: http://www.thespec.com/tncms/asset/editorial/85fc9aba-68ce-54f4-ac78-80e664212ca9
author: ;Jon Wells Spectator Reporter
hash: �K�+��iy61n�
title:
Her Jane, students like: Renowned conservationist Goodall speaks at RBG of Tarzan, changing the world and her favourite animal

content:
Goodall spoke of the impact children can have by encouraging their parents to ‘buy things that don’t harm the environment or hurt animals’

link:
https://www.thespec.com/news/hamilton-region/her-jane-students-like-renowned-conservationist-goodall-speaks-at-rbg-of-tarzan-changing-the-world/article_85fc9aba-68ce-54f4-ac78-80e664212ca9.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/9/4b/94b5544c-4d16-5896-a6eb-b35db9987db2/652730383dd30.image.jpg?resize=300%2C200","type":"image/jpeg","length":141971}]}


guid: http://www.thespec.com/tncms/asset/editorial/ec942d39-1c8a-5f3e-be27-73b1bf66ef8e
title: Master plan for the redevelopment of Stelco’s Hamilton lands to be submitted in coming months
author: ;Fallon Hewitt Spectator Reporter
content: Slate Asset Management hopes to start construction on the first phase of the project next year.
hash: �M� �'�� S>x֏M�
link:
https://www.thespec.com/business/hamilton-region/master-plan-for-the-redevelopment-of-stelco-s-hamilton-lands-to-be-submitted-in-coming/article_ec942d39-1c8a-5f3e-be27-73b1bf66ef8e.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/e/76/e76d1c7d-1dc6-5654-8873-016ec33a39c9/6528100b94ac0.image.jpg?resize=300%2C166","type":"image/jpeg","length":138829}]}


guid: http://www.thespec.com/tncms/asset/editorial/18f065d2-a737-53ac-be12-86e3da2a8a07
author: ;Joanna Frketich Spectator Reporter
hash: ّ�s�,��©<֮�
title:
A Hamilton baby’s sudden death set off a legal battle for the ‘very heart of the integrity’ of the Ontario Forensic Pathology Service

content:
Infighting over cause of baby’s death is alleged to have had serious consequences for the parents, the police investigation, Hamilton’s pathologists and the city’s forensic pathology unit

link:
https://www.thespec.com/news/hamilton-region/a-hamilton-baby-s-sudden-death-set-off-a-legal-battle-for-the-very-heart/article_18f065d2-a737-53ac-be12-86e3da2a8a07.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/c/88/c88bd62b-bdf0-5050-9730-850855d81475/6526df9849475.image.jpg?resize=300%2C199","type":"image/jpeg","length":70753}]}


guid: http://www.thespec.com/tncms/asset/editorial/481ea6b0-3863-5ca5-a02e-12026941d0a1
title: Hamilton man dreads hearing the worst about his family under fire in Gaza
author: ;Jon Wells Spectator Reporter
hash: �� �'Gfr�%s#���
content:
Rani Hemaid’s family in Gaza has moved quickly several times after receiving voice messages from Israeli officials to leave their neighbourhood.

link:
https://www.thespec.com/news/hamilton-region/hamilton-man-dreads-hearing-the-worst-about-his-family-under-fire-in-gaza/article_481ea6b0-3863-5ca5-a02e-12026941d0a1.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/d/2f/d2fd7c3a-68db-5958-9946-64155cc688d5/65287767a03d4.image.jpg?crop=765%2C469%2C0%2C324&amp;resize=300%2C184&amp;order=crop%2Cresize","type":"image/jpeg","length":221823}]}


guid: http://www.thespec.com/tncms/asset/editorial/6e735ea3-455b-579a-a171-fcdd98ab8056
author: ;Joanna Frketich Spectator Reporter
hash: �b�h�� ��;�d��
title:
Hamilton pathologists clashed with provincial leaders over three sudden deaths in lead up to unit’s closure

content:
Investigations into the sudden deaths of two babies and an immigration detainee put Hamilton’s forensic pathology unit on a collision course with provincial leaders

link:
https://www.thespec.com/news/hamilton-region/hamilton-pathologists-clashed-with-provincial-leaders-over-three-sudden-deaths-in-lead-up-to-unit/article_6e735ea3-455b-579a-a171-fcdd98ab8056.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/2/de/2def3740-a43e-5845-a187-ba45e2833435/6526df987d538.image.jpg?resize=300%2C211","type":"image/jpeg","length":88617}]}


guid: http://www.thespec.com/tncms/asset/editorial/7fd07fed-c4b2-5652-aa58-8b833780f2b5
title: Timeline of a closure: Three contentious death investigations in four months
author: ;Joanna Frketich Spectator Reporter
hash: �-�b���S (1���
content:
Questions still linger about the reasons for closing the second-busiest unit in the province that served Hamilton, Niagara, Halton, Waterloo, Brant, Dufferin, Wellington, Haldimand and Norfolk. Court documents now show what was going on behind the scenes leading up to…

link:
https://www.thespec.com/news/hamilton-region/timeline-of-a-closure-three-contentious-death-investigations-in-four-months/article_7fd07fed-c4b2-5652-aa58-8b833780f2b5.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/8/d2/8d2f4ced-50e1-5562-a587-688d413aca16/65283eeb4ff5b.image.jpg?resize=300%2C191","type":"image/jpeg","length":59984}]}


guid: http://www.thespec.com/tncms/asset/editorial/53a6069b-3e53-5b97-b0ee-92dbcba47f39
author: ;Fallon Hewitt Spectator Reporter
content: Hamilton family shares story of daughter who survived attack at music festival.
hash: ���CG�^֞)o��
title:
‘I wish it was just a nightmare’: Hamilton’s Jewish community gathers in wake of Israel-Hamas conflict

link:
https://www.thespec.com/news/hamilton-region/i-wish-it-was-just-a-nightmare-hamilton-s-jewish-community-gathers-in-wake-of/article_53a6069b-3e53-5b97-b0ee-92dbcba47f39.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/5/1b/51b0b610-3d68-585e-adc5-0bf785468a2c/652878625fb88.image.jpg?resize=300%2C225","type":"image/jpeg","length":212025}]}


guid: https://odysee.com/EvaIsraeliMassacresOfGaza:00af304a89c915533f60caa6d9ec89344d5ecb21
author: ;Eva K Bartlett
link: https://odysee.com/EvaIsraeliMassacresOfGaza:00af304a89c915533f60caa6d9ec89344d5ecb21
hash: Rۭ�,`tE$8����-
title:
Eva K Bartlett describes the horrific conditions suffered by the Palestinian people, particularly in Gaza

content:
<p><img src="https://thumbs.odycdn.com/58577564e603940d1f1f725e21f53215.webp" width="480" alt="thumbnail" title="Eva K Bartlett describes the horrific conditions suffered by the Palestinian people, particularly in Gaza"></p>Video thumbnail photo: Gaza, January 2009.<br><br>Mike Jones [https://foreignagent.tv/] had me on yesterday. He wrote:<br><br>Now banned from YouTube, Eva K Bartlett ( @Reality_Theories ) was kind enough to sit down with me and share her experience of living in Gaza. <br><br>She describes the horrific conditions suffered by the Palestinian people and numerous war crimes perpetrated on a daily basis by Israel providing an educated and qualified perspective you'll likely not hear reported in the Western Media.<br><br>Some recommended reading and resources from Eva:<br>https://opt2007.wordpress.com/category/my-entries-from-occupied-palestine-apr-dec-2007/<br>https://ingaza.wordpress.com/2013/11/05/observations-from-occupied-palestine-part-1/<br><br>https://ingaza.wordpress.com/photos-and-videos-zionist-massacre-of-gaza-2008-2009/<br>https://ingaza.wordpress.com/2008/12/<br>https://ingaza.wordpress.com/2009/01/<br>https://ingaza.wordpress.com/2009/02/<br><br>https://ingaza.wordpress.com/2012/11/<br>https://ingaza.wordpress.com/2014/01/01/observations-from-occupied-palestine-in-gaza/<br><br>Marwa Osman telegram channel:<br>https://t.me/Marwa_OsmanLB<br><br>Eva's account of Israel killing medics: https://t.me/Reality_Theories/14526<br><br>You can find Eva's videos backed up at:<br>https://odysee.com/@EvaKareneBartlett:9<br><br>*<br><br>In our conversation, I did note that many of the Palestinian voices in Gaza who I'd recommend following for updates are in the dark, after Israel cut off every aspect of life to Gaza. For now, I strongly recommend people follow:<br><br>-Marwa Osman (https://t.me/Marwa_OsmanLB) (as mentioned)<br><br>-Resistance News Network (https://t.me/PalestineResist)<br><br>-Vanessa Beeley (https://t.me/VanessaBeeley)<br><br>-Louis Allday (https://twitter.com/Louis_Allday)<br><br>-Ghassan Abu Sitta (https://twitter.com/GhassanAbuSitt1)<br><br>-Lowkey (https://twitter.com/Lowkey0nline)<br><br>-Yves Engler (https://twitter.com/EnglerYves)<br><br>-Dan Cohen (https://twitter.com/dancohen3000)<br><br>-Seyed Mohammad Marandi (https://twitter.com/s_m_marandi)<br><br>-Peter Ford<br> (https://www.presstv.ir/Detail/2023/10/07/712230/Palestine-at-the-United-Nations)<br><br>-Palestine Declassified (https://t.me/palestinedeclassified)<br><br>-Mint Press News:  (https://www.mintpressnews.com/)<br><br>-Fiorella Isabel  (https://t.me/fiorellastele)<br><br>-Believe in Syria (https://t.me/believeinsyria)

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/EvaIsraeliMassacresOfGaza/00af304a89c915533f60caa6d9ec89344d5ecb21/0a1c2b.mp4","type":"video/mp4","length":402859361}]}


guid: http://www.thespec.com/tncms/asset/editorial/34ea0ed0-fbbf-5fb1-acd1-781172d5d697
title: Man behind multimillion-dollar investment scheme wanted by police
author: ;Susan Clairmont Spectator Columnist
hash: �iu�� �v�.�
content:
Mohammed Huq was the subject of a Spectator investigation into loans that disappeared from the trust funds of two Hamilton lawyers

link:
https://www.thespec.com/news/hamilton-region/man-behind-multimillion-dollar-investment-scheme-wanted-by-police/article_34ea0ed0-fbbf-5fb1-acd1-781172d5d697.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/4/de/4de05338-63ab-5215-8551-9742007b9eb9/652c543b7fc0b.image.jpg?resize=300%2C212","type":"image/jpeg","length":173940}]}


guid: http://isystem-tf.com/?p=3397
title: Talking finance and trend following with 2 vikings
author: ;Alex Krainer
link: https://isystem-tf.com/2023/10/19/talking-finance-and-trend-following-with-2-vikings/
hash: [�ӋzH�Ϯ���
tags: #Inflation hedge #TrendCompass #Uncertainty #commodities #Geopolitics #Inflation #Stock markets
content:
<p> </p><p data-sanitized-class="MsoNormal">Last week I had the pleasure of joining “2 Vikings” for a podcast interview. The 2 Vikings are <b>Frank Nilsen</b> and <b>Stian Nicolaysen</b>, two Norwegian podcasters and successful entrepreneurs (Frank was a top 10 podcast producer on iTunes). The unusual aspect of our long conversation (it had to be broken into two parts) was that our discussion converged on the fallen financial system in which we’re forced to operate and further moved onto the subject of trend following. Part 1 of my discussion with the 2 vikings (audio only) is available at the following link: </p>



<p></p><p data-sanitized-class="MsoNormal"><span lang="HR"><a href="https://sites.libsyn.com/489920/how-does-the-financial-system-work-with-alex-krainer" target="_blank"><span lang="EN-US">https://sites.libsyn.com/489920/how-does-the-financial-system-work-with-alex-krainer</span></a></span></p>



<p></p><p data-sanitized-class="MsoNormal">As investors, Frank and Stian were very interested in this subject and our conversation just took off from there. As I told them afterwards, I’ve been averaging two or three podcast interviews per week for months now, but the day-job – the subject one could talk about for hours and hours – that subject almost never comes up.</p>



<h2 data-sanitized-class="wp-block-heading">No, trend following is very much relevant</h2>



<p></p><p data-sanitized-class="MsoNormal"><span>In a way, that’s understandable; as the world hangs on a thread with risk of nuclear armageddon more acute than it’s ever been, trend following may seem like an obscure and irrelevant subject. However, I think it is a very important subject. Most of our problems today derive from the fraudulent monetary system which predictably erodes the purchasing power of our savings. In effect, they are systematically being stolen by those who have usurped the power to print money and dilute everyone’s wealth by creating and circulating new money. </span></p>



<h2 data-sanitized-class="wp-block-heading">Trend following is the Swiss Army knife of investing</h2>



<p></p><p data-sanitized-class="MsoNormal"><span>To avoid being robbed in this way, we must endeavor to invest our savings and convert them into assets that can generate sufficient return for us to offset the dilution of our purchasing power. Well, since we’re forced to speculate and invest, discussing effective strategies of investing is a very relevant subject – one we should try to master in order to navigate our economic environment effectively. Trend following might be the Swiss Army knife of investing that belongs in every investors’ toolbox of essentials</span> and the most recent example of this has been the last two years decline in bonds prices which has escalated into the greatest bonds bear market in over 236 years! This episode and the performance of trend following strategies has been very fascinating to observe and I will cover it in a follow-up article.</p>



<p></p><p data-sanitized-class="MsoNormal"><span lang="HR"></span></p>For investors who wish to receive effective and reliable CTA directional exposure signals in real time, look no further than I-System TrendCompass – see below:



<h2 data-sanitized-id="sign-up-for-a-1-month-free-trial-of-i-system-trendcompass" data-sanitized-class="wp-block-heading">Sign up for a 1-month free trial of <a href="https://isystem-tf.com/i-system/" target="_blank" rel="noreferrer noopener">I-System</a> TrendCompass!</h2>



<p>One of the best trend following newsletters on the market, I-System TrendCompass delivers consistent, dependable and effective<strong> decision support daily, based on <a rel="noreferrer noopener" href="https://isystem-tf.com/i-system/" target="_blank">I-System</a></strong> trend following strategies covering over 200 key financial and commodities markets with no dilution in quality or focus.</p>



<ul data-sanitized-class="wp-block-list">
<li>Cut the information overload</li>



<li>Get real-time CTA intelligence in <strong>seconds per day</strong></li>



<li>Never miss a major trend move</li>



<li>Navigate trends profitably, with confidence and <strong>peace of mind</strong></li>
</ul>



<p>One month test-drive is always on us. Sign up for a 1-month FREE trial by e-mailing us at <a rel="noreferrer noopener" href="mailto:TrendCompass@ISystem-TF.com" target="_blank"><strong>TrendCompass@ISystem-TF.com</strong></a></p>



<p>To learn more, please visit <strong><a href="https://isystem-tf.com/trendcompass/" target="_blank" rel="noreferrer noopener">I-System TrendCompass</a> page</strong>.</p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="712" height="417" data-attachment-id="3293" data-permalink="https://isystem-tf.com/2023/09/15/italy-crumbling/tc_coverimage/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png" data-orig-size="2553,1497" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="tc_coverimage" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=1024" src="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=712" alt="" data-sanitized-class="wp-image-3293"></figure>

attributes:
{"enclosures":[{"url":"https://0.gravatar.com/avatar/3cf56351ad2361f720df6adf94285322fc831b589472a80e77d0f256d827358f?s=96&amp;d=identicon&amp;r=G","title":"nakedhedgie","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=712","medium":"image"}]}


guid: http://swprs.org/?p=21565
title: Covid Pandemic
author: ;Swiss Policy Research
link: https://swprs.org/2023/10/20/covid-19-intro/
hash: 65UG |13����� �
tags: #coronavirus #Covid-19 #SPR #covid
attributes: {"enclosures":[]}
content:
<p><a href="https://swprs.org/covid19-facts/"><img data-recalc-dims="1" loading="lazy" decoding="async" data-attachment-id="45236" data-permalink="https://swprs.org/2023/10/20/covid-19-intro/wuhan-man-collapsed-jan-2020/" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2021/04/wuhan-man-collapsed-jan-2020.png?fit=890%2C534&amp;ssl=1" data-orig-size="890,534" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="wuhan-man-collapsed-jan-2020" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2021/04/wuhan-man-collapsed-jan-2020.png?fit=300%2C180&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2021/04/wuhan-man-collapsed-jan-2020.png?fit=736%2C442&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2021/04/wuhan-man-collapsed-jan-2020.png?resize=736%2C442&amp;ssl=1" alt="" width="736" height="442" data-sanitized-class="aligncenter wp-image-45236 size-full"></a></p>
<p>The covid pandemic from a scientific and propaganda perspective.</p>
<ul>
<li><strong>EN</strong>: <a href="https://swprs.org/covid19-facts/">Overview</a></li>
<li><strong>DE</strong>: <a href="https://swprs.org/fakten-zu-covid-19/">Übersicht</a></li>
<li><strong>Videos</strong>: <a href="https://odysee.com/$/playlist/3442fb1e134ef13ddbb1f41e300299a1769f607e" target="_blank" rel="noopener">Covid</a></li>
</ul>
<hr>


guid: https://swprs.org/?p=71120
title: Israel/Palestine
author: ;Swiss Policy Research
link: https://swprs.org/2023/10/20/israel-palestine-overview/
hash: � �Xo�W�KԘ;���
tags: #SPR
attributes: {"enclosures":[]}
content:
<p><a href="https://swprs.org/2023/10/23/israel-palestine-overview/"><img data-recalc-dims="1" decoding="async" data-attachment-id="70969" data-permalink="https://swprs.org/why-israel-created-hamas/hamas-israel-usa-revolver/" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/hamas-israel-usa-revolver.jpg?fit=1024%2C536&amp;ssl=1" data-orig-size="1024,536" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="hamas-israel-usa-revolver" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/hamas-israel-usa-revolver.jpg?fit=300%2C157&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/hamas-israel-usa-revolver.jpg?fit=736%2C385&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/hamas-israel-usa-revolver.jpg?resize=736%2C385&amp;ssl=1" alt="" width="736" height="385" data-sanitized-class="aligncenter wp-image-70969 size-full"></a></p>
<p>Analyses of the October 7 Hamas attack and the Israeli response.</p>
<ul>
<li><a href="https://swprs.org/why-israel-created-hamas/">Why Israel Created Hamas</a></li>
<li><a href="https://swprs.org/propaganda-pandemic-palestine/">Propaganda Analysis</a></li>
<li><a href="https://swprs.org/professor-amos-goldberg-yes-it-is-genocide/">The Genocide Question</a></li>
<li><a href="https://swprs.org/the-israel-lobby-facts-and-myths/">Israel Lobby: Facts &amp; Myths</a></li>
<li><strong>Videos</strong>: <a href="https://odysee.com/$/playlist/c8ac68e424d661145a60674726eaa4d48f0f4aae" target="_blank" rel="noopener">October 7, 2023</a></li>
</ul>
<hr>


guid: https://swprs.org/?p=74497
title: Ukraine War
author: ;Swiss Policy Research
link: https://swprs.org/2023/10/20/ukraine-war-overview/
hash: u}iv�9��ul�Dj8
tags: #SPR
attributes: {"enclosures":[]}
content:
<p><a href="https://swprs.org/2024/03/19/ukraine-war-overview/"><img data-recalc-dims="1" decoding="async" data-attachment-id="74490" data-permalink="https://swprs.org/the-ukraine-war-in-2024/ukraine-war-2024-cover/" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2024/03/ukraine-war-2024-cover.jpg?fit=1280%2C720&amp;ssl=1" data-orig-size="1280,720" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="ukraine-war-2024-cover" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2024/03/ukraine-war-2024-cover.jpg?fit=300%2C169&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2024/03/ukraine-war-2024-cover.jpg?fit=736%2C414&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2024/03/ukraine-war-2024-cover.jpg?resize=736%2C414&amp;ssl=1" alt="" width="736" height="414" data-sanitized-class="aligncenter wp-image-74490 size-large"></a></p>
<p>A no-nonsense analysis of new developments and deceptions in the Ukraine War.</p>
<ul>
<li><a href="https://swprs.org/the-ukraine-war-in-2024/">How to Follow the War</a></li>
<li><a href="https://swprs.org/the-ukraine-war-in-2024/">The Ukraine War in 2024</a></li>
<li><a href="https://swprs.org/the-moscow-concert-hall-attack-may-have-been-a-staged-event/">The Nord Stream Bombing</a></li>
<li><a href="https://swprs.org/ukraine-situation-and-background/">Geopolitical Background</a></li>
<li><strong>DE:</strong> <a href="https://swprs.org/ukraine-krieg-medientipps/">Medientipps Ukraine</a></li>
</ul>
<hr>


guid: https://odysee.com/Understanding-Gaza:1e0919f910118867bcbafb774f390a204db0cd89
title: Understanding Gaza, under fire and under siege: Interview on UK Column
author: ;Eva K Bartlett
link: https://odysee.com/Understanding-Gaza:1e0919f910118867bcbafb774f390a204db0cd89
hash: �l��t� �ʀ00~�
attributes: {"enclosures":[]}
content:
<p><img src="https://thumbs.odycdn.com/a08081ab94c750809f7c085cb4321a24.webp" width="480" alt="thumbnail" title="Understanding Gaza, under fire and under siege: Interview on UK Column"></p>Mike Robinson speaks to Vanessa Beeley, Eva Bartlet and Cynthia McKinney about their experiences of living in Gaza.<br><br>Some of my own related links:<br><br><br><br>https://www.youtube.com/@gazanews2009/videos<br><br>https://ingaza.wordpress.com/2008/11/08/on-board-the-dignity-en-route-to-besieged-gaza/<br><br>https://ingaza.wordpress.com/photos-and-videos-zionist-massacre-of-gaza-2008-2009/<br><br>https://ingaza.wordpress.com/2008/12/<br><br>https://ingaza.wordpress.com/2009/01/<br><br>https://ingaza.wordpress.com/2009/02/<br><br>https://ingaza.wordpress.com/2012/11/<br><br>https://ingaza.wordpress.com/2012/11/23/killing-before-the-calm-israeli-attacks-on-palestinian-civilians-escalated-before-cease-fire/<br><br>https://ingaza.wordpress.com/2013/01/12/the-hardest-thing-parents-speak-of-their-children-killed-by-israeli-bombings/<br><br>https://ingaza.wordpress.com/2014/01/01/observations-from-occupied-palestine-in-gaza/<br>


guid: https://swprs.org/?p=70299
title: The SPR Media Archive
author: ;Swiss Policy Research
link: https://swprs.org/2023/10/20/the-spr-media-archive/
hash: �X�t/�Gp�8 J�7�
tags: #SPR
attributes: {"enclosures":[]}
content:
<p><a href="https://odysee.com/@swprs:3" target="_blank" rel="noopener"><img data-recalc-dims="1" fetchpriority="high" decoding="async" data-attachment-id="79173" data-permalink="https://swprs.org/2023/10/20/the-spr-media-archive/spr-propaganda-manufacture-consent/" data-orig-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/spr-propaganda-manufacture-consent.webp?fit=1280%2C720&amp;ssl=1" data-orig-size="1280,720" data-comments-opened="0" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="spr-propaganda-manufacture-consent" data-image-description="" data-image-caption="" data-medium-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/spr-propaganda-manufacture-consent.webp?fit=300%2C169&amp;ssl=1" data-large-file="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/spr-propaganda-manufacture-consent.webp?fit=736%2C414&amp;ssl=1" src="https://i0.wp.com/swprs.org/wp-content/uploads/2023/10/spr-propaganda-manufacture-consent.webp?resize=736%2C414&amp;ssl=1" alt="" width="736" height="414" data-sanitized-class="aligncenter wp-image-79173 size-large"></a></p>
<p>The <a href="https://odysee.com/@swprs:3" target="_blank" rel="noopener">SPR Media Archive</a> is the world’s foremost collection of high-quality documentaries and investigations on geopolitical propaganda and psychological operations.</p>
<p><a href="https://odysee.com/@swprs:3" target="_blank" rel="noopener">Visit the SPR Media Archive →</a></p>
<hr>


guid: https://swisspropaganda.wordpress.com/?p=5
title: Welcome / Willkommen
author: ;Swiss Policy Research
link: https://swprs.org/2023/10/20/willkommen/
hash: ��Ғ _a��yJ'���
attributes: {"enclosures":[]}
content:
<p>(<strong>English</strong>) Swiss Policy Research (SPR), founded in 2016, is an independent, nonpartisan and nonprofit research group investigating geopolitical propaganda. <a href="https://swprs.org/contents/">Read more</a>.</p>
<p>(<strong>German</strong>) Swiss Policy Research (SPR) ist ein unab­hän­gi­ges Forschungs- und Infor­ma­tions­projekt zu geo­po­li­tischer Pro­pa­ganda in Schweizer und inter­na­tio­nalen Medien. <a href="https://swprs.org/uebersicht/">Weiterlesen</a>.</p>
<hr>

tags:
#SPR #Swiss Policy Research #Swiss Propaganda Research #swiss policy research kritik #swiss policy research seriös #swiss policy research wiki #swiss policy research wikipedia


guid: http://www.thespec.com/tncms/asset/editorial/2b108f53-9008-5d83-b9cd-19e7e09676b9
author: ;Teviah Moro Spectator Reporter
content: Spike has city’s housing director concerned
hash: ]A�<����)�s;�
title:
Hamilton’s encampment population grows, with shelters packed, rents rising, housing scant and winter coming

link:
https://www.thespec.com/news/hamilton-region/hamilton-s-encampment-population-grows-with-shelters-packed-rents-rising-housing-scant-and-winter-coming/article_2b108f53-9008-5d83-b9cd-19e7e09676b9.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/0/ff/0ff12665-c652-5be9-8bb0-2233cb2df2c3/653304577e0ab.image.jpg?resize=300%2C214","type":"image/jpeg","length":263256}]}


title: Interview: On Israel's Ongoing Genocide of Gaza
author: ;Eva K Bartlett
hash: <o�P��xW8������y
guid:
https://odysee.com/Scott-Ritter-Extra-Ep.-109_-Ask-the-Inspector:31266938cc7816d4edc29066ce41d9d6d5c6dde1

content:
<p><img src="https://thumbs.odycdn.com/2bfb7286ca8840c70bcfaf2df726824d.webp" width="480" alt="thumbnail" title="Interview: On Israel's Ongoing Genocide of Gaza"></p>I was interviewed on Scott Ritter's Ask the Inspector, October 24, 2023. <br><br>Streamed on: Scott Ritter Extra Ep. 109: Ask the Inspector: https://www.youtube.com/watch?v=hjHo5tZ2ftc<br><br>Related Links:<br><br>Observations from Occupied Palestine: Gaza (My 2014 overview of Israel's brutal siege on Gaza, wars on Gaza, assault of farmers &amp; fishers...)<br>https://ingaza.wordpress.com/2014/01/01/observations-from-occupied-palestine-in-gaza/<br><br>Observations from Occupied Palestine, part 1 (My overview of what I witnessed in 8 months in the West Bank)<br>https://ingaza.wordpress.com/2013/11/05/observations-from-occupied-palestine-part-1/<br><br>My 2007 West Bank writings:<br>https://opt2007.wordpress.com/category/my-entries-from-occupied-palestine-apr-dec-2007/<br><br><br>

link:
https://odysee.com/Scott-Ritter-Extra-Ep.-109_-Ask-the-Inspector:31266938cc7816d4edc29066ce41d9d6d5c6dde1

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/Scott-Ritter-Extra-Ep.-109_-Ask-the-Inspector/31266938cc7816d4edc29066ce41d9d6d5c6dde1/9705ce.mp4","type":"video/mp4","length":759972656}]}


guid: http://www.thespec.com/tncms/asset/editorial/3498ebc1-79f9-557f-82b6-f1233c2c3a85
title: Hamilton’s Donnie Coy was the Godfather of Comedy
author: ;Scott Radley Spectator Columnist
content: Local comic helped build the standup boom of the ’80s at his Yuk Yuk’s clubs, Scott Radley writes.
hash: � �N%lxS���
link:
https://www.thespec.com/opinion/hamilton-s-donnie-coy-was-the-godfather-of-comedy/article_3498ebc1-79f9-557f-82b6-f1233c2c3a85.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/1/2b/12b0bd4b-17e2-5297-b373-537f4c8a4a6c/653c1e45c072a.image.jpg?crop=1039%2C780%2C30%2C14&amp;resize=300%2C225&amp;order=crop%2Cresize","type":"image/jpeg","length":161907}]}


guid: http://www.thespec.com/tncms/asset/editorial/eb1e86c2-e30d-5e1f-9b38-db31d5d4fb74
title: Who killed Gail Ryan? Hamilton mystery unsolved for 50 years
author: ;Nicole O’Reilly Spectator Reporter
hash: �z���&R��ѯ;��
content:
The 20-year-old was found dead in her apartment after not showing up to work at Robinson’s department store in 1973. Now police believe advancements in DNA testing is their strongest chance at cracking this cold case.

link:
https://www.thespec.com/news/hamilton-region/who-killed-gail-ryan-hamilton-mystery-unsolved-for-50-years/article_eb1e86c2-e30d-5e1f-9b38-db31d5d4fb74.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/0/ab/0abe4c1b-c878-5307-a8ba-9d38632e40fe/65e1fb7053fd2.image.jpg?crop=1589%2C896%2C6%2C168&amp;resize=300%2C169&amp;order=crop%2Cresize","type":"image/jpeg","length":147497}]}


guid: http://www.thespec.com/tncms/asset/editorial/1f44eedb-9e0c-5f73-b091-dd80d4914e11
author: ;Susan Clairmont Spectator Columnist
content: The man’s lawyer said the ‘traumatic’ incident reminded him of what happened to George Floyd.
hash: 5���Y�w� O�B�I
title:
‘I just want to turn over and breathe’: Man tried to escape from custody in Hamilton courthouse and was subdued by special constables

link:
https://www.thespec.com/news/crime/i-just-want-to-turn-over-and-breathe-man-tried-to-escape-from-custody-in/article_1f44eedb-9e0c-5f73-b091-dd80d4914e11.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/6/9f/69f9c9f9-46dd-5259-8568-a82cc9ee070b/653c474856433.image.jpg","type":"image/jpeg","length":9625}]}


guid: http://www.thespec.com/tncms/asset/editorial/26578444-4946-5119-aafa-85038521467b
title: ‘Never love like that again’: Shirley Ryan’s paralyzing grief for the loss of her big sister
author: ;Nicole O’Reilly Spectator Reporter
hash: ���X��>��(uZDN�
content:
Fifty years ago she lost Gail, now there is renewed hope that one day Shirley Ryan will know who killed her sister

link:
https://www.thespec.com/news/hamilton-region/never-love-like-that-again-shirley-ryan-s-paralyzing-grief-for-the-loss-of-her/article_26578444-4946-5119-aafa-85038521467b.html

attributes:
{"enclosures":[{"url":"https://bloximages.chicago2.vip.townnews.com/thespec.com/content/tncms/assets/v3/editorial/e/97/e971324b-f1c0-52db-a66f-7239739b7e2d/653d62a37f6bf.image.jpg?resize=300%2C173","type":"image/jpeg","length":36407}]}


guid: https://scottjehl.com/posts/pe/
title: You May Not Need Progressive Enhancement, The Term
author: ;Scott Jehl
link: https://scottjehl.com/posts/pe/
hash: ?CL#=� *]=っ�
attributes: {"enclosures":[]}
content:
<p>Recently, I’ve heard several peers lament that Progressive Enhancement, a term describing a process of building resilient, user-first websites, isn’t working anymore–that it has been redefined, even maligned, to mean different things to different people, with some even understanding it to mean reducing our online experiences to a sad, minimally-viable bar. As an <a href="https://www.peachpit.com/store/designing-with-progressive-enhancement-building-the-9780321658883">early investor in the term</a>, I have been bothered by this trend too, especially as I find that the practice and mindset of designing with progressive enhancement is just as critical today as it ever has been. The web is constantly gaining complexity and progressive enhancement remains the best approach that I know to create sites that put users' needs first.</p>
<p>At work lately, I’ve been experiencing this discussion first-hand. I’ve been working with the folks at Begin, who build the <a href="https://enhance.dev/">Enhance framework</a>, and it’s been a great opportunity to learn how they’ve applied the concepts of progressive enhancement to modern application workflows that use web components. (<em>I have to say, I think they’re onto something quite elegant here.</em>) Part of the work we’re doing together involves finding ways to communicate the benefits of their toolset that will resonate with people from a variety of backgrounds. In the process, I find that I too am using progressive enhancement, the term, less than I used to. But that’s not so much because it may be misunderstood, but because it describes a means rather than an end, and the ends are the most important concept to communicate about progressive enhancement.</p>
<p>That’s why I find it’s helpful to lead with the outcomes that progressive enhancement helps you achieve, like resilience, performance, accessibility, and longevity. If you can convince someone that resilience itself is a smart goal for their website, they'll seek technical patterns that help them get there. If they want a site that is slick and modern, and also usable for folks who happen to be on a slow or intermittent connection, or a phone with limited processing power, or when there’s an outage somewhere in the world causing their site's scripts to fail, you may not even need to tell them about progressive enhancement at all.</p>
<p>Frankly, what else are they going to use?</p>


guid: https://odysee.com/videoplayback:6fd47312723eb29e853d9f6f4d27ca916ea0cb6a
title: Under Fire: Israeli Sniper Targets Uniformed Medics--what I witnessed in Gaza
author: ;Eva K Bartlett
link: https://odysee.com/videoplayback:6fd47312723eb29e853d9f6f4d27ca916ea0cb6a
hash: �H�����~-���_
content:
<p><img src="https://thumbs.odycdn.com/23ae0b6c2c39b8db662dbc2ce8163563.webp" width="480" alt="thumbnail" title="Under Fire: Israeli Sniper Targets Uniformed Medics--what I witnessed in Gaza"></p>On January 7, 2009, as I and a Spanish human rights advocate accompanied Palestinian medics to retrieve the body of a man shot earlier by invading Israeli forces, we were also shot at as the medics carried the body towards the ambulance. It was in Dawwar Zimmo, eastern Jabaliya, near the area which has been occupied by Israeli soldiers since the land invasion began.  It’s an area where 10s are thought to have been seriously injured by bombing and shooting from the Israeli army, and where many, many more will lie dead, uncollected for days, or weeks, out of reach of the medics whose duty is to retrieve them.<br><br>Hassan al-Attal and Jamal had gotten out of the ambulance, a clearly-marked 101 ambulance, and approached the corpse lying in the middle of the street.  They wore their PRCS uniforms –Hassan’s was bright red with reflective tape, Jamal’s bright orange and white, also with reflective tape –and approached slowly, hands free of all but a stretched to take away the body.   Arce filmed as the medics picked up the dead man, put him on the stretcher and began the retreat towards the ambulance.  Arce was still filming when the shots cracked out, rapidly but evidently a targeted sniper’s shot, not a machine gun.  Incredibly, Hassan and Jamal continued to try to evacuate the body, running with the dead man, before finally dropping the stretched and fleeing for their lives.<br><br>It was about 1:30 pm, it was the first day of Israel’s self-declared “cease-fire” and the sniper was aiming at the medical personnel.  The ambulance’s siren was still screaming, the driver had been moving quickly away from the sniper, to avoid further hits on us or himself, and we were frantically scouring to see Hassan and Jamal.  In the days prior to this attack, 7 medics had been killed since the start of Israel’s air and ground assault on Gaza’s population.  Tens more had been injured, and Hassan was to join their ranks.  A sniper’s bullet caught his thigh, and as he scrambled into the ambulance, the blood seeping through his pants alerted us to his injury.<br><br>These medics are all too aware of, many all too familiar with, the mortal risks of their job in the face of invading Israeli soldiers with, apparently, no regard for the Geneva Conventions which should allow and oblige medics to reach the injured and the dead, without fire from the invading army.<br><br>It was frightening.  I thought we’d lost them both, and they are both young, wonderful men doing a job worthy of medals.  The 10-15 seconds it took before Hassan and Jamal could jump into the ambulance and pull down its back door were a painfully long stretch, during which I’d feared the worst.  As we pulled away, a final bullet caught the back door of the ambulance.<br><br>Medics worked quickly on Hassan’s thigh injury: the bullet had penetrated from the inside of his upper left thigh, digging into muscle, and exiting a couple of inches from the entry wound.  He was impressively brave about it, though obviously in a great deal of pain.<br><br>The other volunteer’s video footage caught the incident, and is testimony to what we’ve seen, what medics have told us they’ve long endured, and what Israeli authorities belligerently continue to deny: Israel is targeting medical personnel, as Israeli forces target journalists, civilians, and these days in Gaza anything that moves.  No sanctuary, no safety, no guarantee of medical service.<br>https://ingaza.wordpress.com/2009/01/12/israeli-sniper-targets-uniformed-medics-what-i-witnessed-in-gaza/<br><br><br>See also:<br><br>https://ingaza.wordpress.com/2009/01/05/israeli-army-kills-palestinian-medic-with-dart-bomb/<br>https://ingaza.wordpress.com/2009/03/16/ensuring-maximum-casualties-in-gaza/<br>https://ingaza.wordpress.com/2010/01/21/rescuers-targeted-one-year-on/<br>

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/videoplayback/6fd47312723eb29e853d9f6f4d27ca916ea0cb6a/e7aa29.mp4","type":"video/mp4","length":1360999}]}


guid: https://odysee.com/the-hidden-hand-behind-ufos-episode-1:70180a4866c9a6b67487dd525ec1f0376f80ce72
title: The Hidden Hand Behind UFOs Episode 1: Lifting the Esoteric Veil
author: ;Rising Tide Foundation
link: https://odysee.com/the-hidden-hand-behind-ufos-episode-1:70180a4866c9a6b67487dd525ec1f0376f80ce72
hash: ��r�-��\ �ҏ�kҮ
content:
<p><img src="https://thumbnails.lbry.com/BbVB7YjwIho" width="480" alt="thumbnail" title="The Hidden Hand Behind UFOs Episode 1: Lifting the Esoteric Veil"></p>In this first episode of the new 8 part series 'The Hidden Hand Behind UFOs' produced by the Canadian Patriot Review and co-created by Cynthia Chung and Matthew Ehret and edited by Jason Dahl, the ancient mystery religions of the pre-Christian world are introduced in order to set the stage for the growth of the UFO disclosure movement and alien mythos in the 20th century.<br><br>To support this crowd-funded series, donate here:<br>https://canadianpatriot.org/support-us/<br>Get Matt and Cynthia's books here:<br>https://canadianpatriot.org/untold-history-of-canada-books/<br><br>Follow our work on t.me/canadianpatriotpress<br><br>Subscribe to Matt and Cynthia's Substack<br>matthewehret.substack.com<br>cynthiachung.substack.com<br>...<br>https://www.youtube.com/watch?v=BbVB7YjwIho

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/the-hidden-hand-behind-ufos-episode-1/70180a4866c9a6b67487dd525ec1f0376f80ce72/4ce054.mp4","type":"video/mp4","length":608394416}]}


guid: https://christitus.com/my-new-editor/
title: My New Editor
link: https://christitus.com/my-new-editor/
hash: sp��x��<Ǥ��6��
attributes: {"enclosures":[]}
content:
<p>After years of switching IDE’s and editors, then trying dozens of vim configurations… I HAVE FOUND THE PERFECT EDITOR! My Neovim configuration I have tweaked to perfection.</p>
<p>I’m not a god programmer the likes of the primeagen, but a mere mortal that has taken the time to finally come to a spot that makes my configuration the perfect one for me and possibly you.</p>
<h2 data-sanitized-id="neovim-problems">Neovim Problems</h2>
<p>I’ve done several iterations of setting up neovim from scratch, to using neovim distros like lazyvim, nvchad, and lunarvim. These “distros” just customize too much for my liking.</p>
<p>Starting from scratch is rough, because of all the options and customization that needs to be done. This is why people end up using vscode because it just works. However, there is a better way!</p>
<h2 data-sanitized-id="kickstart">Kickstart</h2>
<p>One of the devs of Neovim made an amazing kickstart project <a href="https://github.com/nvim-lua/kickstart.nvim">https://github.com/nvim-lua/kickstart.nvim</a> that I have taken and make my own modifications to.</p>
<p>The entire project is meant as a jumping off point. Giving you a functional LSP and the essentials that everyone wants in Neovim, but not a bunch of customizations that you may not want. I recommend referring back to this project often and checking for updates.</p>
<h2 data-sanitized-id="my-neovim">My Neovim</h2>
<p>Using the kickstart base, here are the customizations I’ve made for my neovim. <a href="https://github.com/ChrisTitusTech/neovim">https://github.com/ChrisTitusTech/neovim</a></p>
<ul>
<li>copilot.vim added</li>
<li>synthwave84 theme</li>
<li>spellcheck on startup</li>
<li>telescope ignores images by default</li>
<li>custom clipboard image addon for markdown files</li>
<li>windows fixes</li>
<li>undotree addition (F5 Hotkey)</li>
<li>wakatime for tracking time spent programming</li>
<li>autosave.vim</li>
<li>suda.vim to elevate to sudo and save file</li>
<li>Alpha Dashboard on startup for recent items and projects (Leader + a to switch to dashboard at anytime)</li>
<li>zoxide for project search</li>
<li>New Tab Hotkeys (leader + 1-5 for selecting tab, leader+t for new tab, and leader+c to closetab)</li>
<li>jj to quick esc</li>
</ul>
<h2 data-sanitized-id="walkthrough-video">Walkthrough Video</h2>
<div>
<iframe allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="allowfullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/WgXO2cvmdQc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" title="YouTube video" sandbox="allow-scripts allow-same-origin"></iframe>
</div>


guid: https://thechainedmuse.substack.com/p/exiting-the-cave-the-new-aristocrats
title: Exiting the Cave: The New Aristocrats
author: ;David Gosselin
link: https://thechainedmuse.substack.com/p/exiting-the-cave-the-new-aristocrats
hash: �g���(|� J� %�
content:
<div data-sanitized-class="captioned-image-container"><figure><a target="_blank" href="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d83bfb5-1d49-474b-bb85-014b7ff32674_2500x1660.jpeg" data-component-name="Image2ToDOM" data-sanitized-class="image-link image2 is-viewable-img"><div data-sanitized-class="image2-inset"><picture><source type="image/webp"><img src="https://substackcdn.com/image/fetch/w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d83bfb5-1d49-474b-bb85-014b7ff32674_2500x1660.jpeg" width="1456" height="967" data-attrs='{"src":"https://substack-post-media.s3.amazonaws.com/public/images/4d83bfb5-1d49-474b-bb85-014b7ff32674_2500x1660.jpeg","srcNoWatermark":null,"fullscreen":null,"imageSize":null,"height":967,"width":1456,"resizeWidth":null,"bytes":273521,"alt":null,"title":null,"type":"image/jpeg","href":null,"belowTheFold":false,"topImage":true,"internalRedirect":null,"isProcessing":false}' alt="" fetchpriority="high" data-sanitized-class="sizing-normal"></picture><div data-sanitized-class="image-link-expand"><div data-sanitized-class="pencraft pc-display-flex pc-gap-8 pc-reset"><div data-sanitized-class="pencraft pc-reset icon-container restack-image"><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"></path><path d="M8 16H3v5"></path></div><div data-sanitized-class="pencraft pc-reset icon-container view-image"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></div></div></div></div></a></figure></div><p>What kind of education befits a new generation of true Aristocratic and Philosophical souls? Join Dr. Quan Le and David Gosselin as they revisit Plato's Republic and explore how the timeless forms Beauty, Truth and Goodness may be reawakened and brought forth within our twenty-first century time dimension.</p>

attributes:
{"enclosures":[{"url":"https://api.substack.com/feed/podcast/138904964/0436d5d421e579fcdbdc0b2ce43ccd10.mp3","type":"audio/mpeg","length":0}]}


guid: http://isystem-tf.com/?p=3472
title: Cocoa “mayhem” and trend following
author: ;Alex Krainer
link: https://isystem-tf.com/2023/11/21/cocoa-mayhem-and-trend-following/
hash: M#5�6<��� �|J
tags: #Uncategorized
content:
<p>Few investors pay attention to cocoa prices, but starting in June, cocoa has been in the news quite a bit. The reason: cocoa prices nearly doubled over the past 12 months. The higher they rose, the more they caught the attention of traders and the inevitable expert commentariat.. Here we have another confirmation that the price always leads the narrative, not the other way around. </p>



<p>Earlier this month, ZeroHedge, which doesn’t often post articles about soft commodities ran an article titled, “<a href="https://www.zerohedge.com/commodities/cocoa-mayhem-sends-prices-4000-ton-highest-1978" target="_blank" rel="noreferrer noopener">Cocoa Mayhem Sends Prices to $4,000 Per Ton, Highest Since 1978</a>.” It mentions the poor cocoa crops in West Africa, low crop yields in Ivory Coast and Ghana, the El-Nino related weather disruptions that could further damage cocoa production, and even the inflation-driven price rises in consumer markets.</p>



<h2 data-sanitized-class="wp-block-heading">Trend followers have been long since 2022</h2>



<p>But long before this was being discussed, and without needing to know anything at all about the crops or about El Nino, trend followers had already boarded this ride. Here’s how I-System strategies traded Cocoa over the last (nearly) five years (their performance is shown in terms of USD per Metric Ton gained or lost trading cocoa futures):</p>



<p></p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="816" height="519" data-attachment-id="3475" data-permalink="https://isystem-tf.com/2023/11/21/cocoa-mayhem-and-trend-following/image-2-14/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/11/image-2.png" data-orig-size="816,519" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="image-2" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/11/image-2.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/11/image-2.png?w=816" src="https://isystem-tf.com/wp-content/uploads/2023/11/image-2.png?w=816" alt="" data-sanitized-class="wp-image-3475"></figure>



<p></p>



<p>This is a busy chart, but it is instructive as it also tells the story about trend following. The top chart shows cocoa prices, overlaid with the curve showing our net exposure (how many of our 12 cocoa strategies were long or short on the scale of -12 [fully short] to +12 [fully long]).  </p>



<p>Why do we use 12 strategies? It could be fewer, or more, but the answer is that while we formulate strategies on past data, we’ve no way to know how well any one strategy might perform in the future. By diversifying our decision making among multiple strategies that are similar but different, we reduce the likelihood of disappointments (as with the strategy shown in red) and enhance the probability of positive performance.</p>



<h2 data-sanitized-class="wp-block-heading">The testing of discipline, patience…</h2>



<p>During four full years, cocoa prices fluctuated sideways, in a horizontal range around $2,500/MT and our strategies flatlined. In the second half of 2021 they went into a painful drawdown that lasted almost a full year before staging a gradual recovery. Here again we see that large-scale price events (LSPEs) unfold as trends that span long periods of time which is why systematic trend following reliably captures windfalls from such events. </p>



<p>But the experience also shows the cost of that performance in terms of risk, drawdowns, discipline and patience which can be considerable in some cases. At its low point, in May 2022, the average strategy was down $713/MT ($7,130 per CSCE contract). With Friday’s closing (17 Nov. 2023), it was up $593. So was it even trading Cocoa worth the trouble at all? Yes, under two conditions: (1) if your business entails exposure to coca prices and you need to hedge against unfavorable price changes or (2) for portfolio diversification purposes. </p>



<h2 data-sanitized-class="wp-block-heading">Diversification: the only free lunch</h2>



<p>For a well diversified portfolio, any one market should only represent a relatively small risk allocation. Diversification is the only free lunch in investment speculation, so it is always worth considering it whenever possible, even accepting the fact that some markets will test our patience (in fact, this is still the case with some investors’ favorites, Gold and Silver, for example). Markets do move in trends but we have no way of telling <em>when</em> such events might unfold, <em>how long</em> they would last, or <em>how high</em> (or how low) they might reach.</p>



<p>In terms of <em>discipline,</em> which primarily refers to the risk management, the above chart also provides some guidance in terms of gauging our risk appetite: if the average strategy could cause a $713/MT draw-down on cocoa ($7,130 per contract), what part of our total portfolio risk should that sum represent? If that sum is small enough, say 1% or 2% of the total portfolio, we need not suffer any anxiety even from long, painful drawdowns. Unfortunately, this is quite out of range of most individual investors. </p>



<p>However, risk can be better fine-tuned with smaller-denominated mini-contracts, CFDs and even ETFs which provide a valid proxy for exposure to cocoa prices. Adding markets like cocoa, sugar, coffee and other commodities to your portfolio should be considered also in view of the <em>commodity super-cycle</em> scenario which could unfold over the next decade or two. Thanks to trend following, investors can capture windfalls from future LSPEs without needing any special expertise in those markets, other than their price histories.</p>



<p>For investors who are so inclined, TrendCompass reports offer real time trend following signals covering over 200 different financial and commodity markets. For more information, and how to subscribe, please check I-System Trend Following | <a href="https://isystem-tf.com/trendcompass/" target="_blank" rel="noreferrer noopener"><strong>TrendCompass</strong></a>. One month’s ‘test drive’ is always free of charge with no strings of any sort attached.</p>



<p></p>



<figure data-sanitized-class="wp-block-image size-large"><img loading="lazy" width="712" height="417" data-attachment-id="3293" data-permalink="https://isystem-tf.com/2023/09/15/italy-crumbling/tc_coverimage/" data-orig-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png" data-orig-size="2553,1497" data-comments-opened="1" data-image-meta='{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}' data-image-title="tc_coverimage" data-image-description="" data-image-caption="" data-medium-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=300" data-large-file="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=1024" src="https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=712" alt="" data-sanitized-class="wp-image-3293"></figure>

attributes:
{"enclosures":[{"url":"https://0.gravatar.com/avatar/3cf56351ad2361f720df6adf94285322fc831b589472a80e77d0f256d827358f?s=96&amp;d=identicon&amp;r=G","title":"nakedhedgie","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/11/image-2.png?w=816","medium":"image"},{"url":"https://isystem-tf.com/wp-content/uploads/2023/09/tc_coverimage.png?w=712","medium":"image"}]}


guid: https://scottjehl.com/posts/using-responsive-video/
title: How to Use Responsive HTML Video (...and Audio!)
author: ;Scott Jehl
link: https://scottjehl.com/posts/using-responsive-video/
hash: ��m�~�e��.i9
attributes: {"enclosures":[]}
content:
<p>In case you haven't already heard, you can use media queries for delivering HTML video again! Just a few days ago, <a href="https://www.mozilla.org/en-US/firefox/120.0/releasenotes/">Firefox 120 landed</a> and it includes a patch (hey btw, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1836128">I wrote it!</a>) to bring back support for this web standard, and Chrome 120 will be out on November 29th with renewed support as well. Safari never removed their support in the first place, so that makes things wonderfully cross-browser now!</p>
<p>This is great news for web performance fans, as video is by far the heaviest type of media used on websites (the median weight of just the video files on pages that use video <a href="https://httparchive.org/reports/page-weight#bytesVideo">is <strong>almost 5 megabytes per page</strong> on mobile devices</a>), and that weight has a huge impact on performance, users' data costs, sites' hosting costs, and overall energy usage. Using an HTML video element to display a static video file is one of the most common and portable ways to drop a video into a webpage today, so it's great we now have options to do it more responsibly.</p>
<p>If you'd like a recap on why this feature was removed and the process it took to reinstate it, <a href="https://scottjehl.com/posts/responsive-video/">I wrote about that here</a>. Today however, I thought I'd post some examples of how to use responsive HTML video now that it works (again!).</p>
<h2>Let's Talk Markup Patterns</h2>
<p>I'll start with some example HTML and then explain what we're looking at...</p>
<pre><code data-sanitized-class="language-html">&lt;video&gt;
    &lt;source src="/sandbox/video-media/small.mp4" media="(max-width: 599px)"&gt;
    &lt;source src="/sandbox/video-media/large.mp4"&gt;
&lt;/video&gt;
</code></pre>
<p>That's a basic responsive video element. It's responsive because one of the <code>source</code> elements has a <code>media</code> attribute on it that includes a media query, making its source selection conditional to the browser's viewport size. If you've used the <code>picture</code> element before, that <code>media</code> attribute is going to look familiar, because <code>picture</code> <strong>was actually designed</strong> based on how this works in video (<em>back when it was supported the first time</em>).</p>
<p>Here's that video element in the page. Supporting browsers (Firefox and Safari at time of writing) will see a video that says "small video source" at small viewport sizes and a video that says "large video source" at wider viewport sizes. Other browsers (<em>eg Chrome, Arc, or Edge for a couple more days at least</em>) will just select the first small source because those browsers ignore the media attribute and pick the first source that matches.</p>
<video controls="controls" loop="" preload="none">
    <source src="https://scottjehl.com/sandbox/video-media/small.mp4" media="(max-width: 599px)">
    <source src="https://scottjehl.com/sandbox/video-media/large.mp4">
</video>
<h3>Markup explained</h3>
<p>There are a couple of sources listed in the example above, referencing 2 video sizes (small and large) in <code>mp4</code> video format (which is broadly supported). When the page loads, the browser will look through these sources in order of appearance and pick <strong>the first</strong> source whose attributes (such as <code>media</code>, and <code>type</code>) all suit the browsing conditions. So in this example, if the browser viewport is less than 600px wide the browser will use the first source (<code>small.mp4</code>), and if it's equal-to or greater than 600px it will use the second large source, which has no media qualifications specified.</p>
<p>It's important to remember that "first-match" order, since it's likely the opposite order that you might expect from typical CSS media queries, where media queries can override prior ones that match. In both <code>picture</code> and <code>video</code> elements, the <strong>first</strong> matching source element is chosen and the rest are ignored, so you'll need to plan for that in how you structure your markup. You can of course list your sources in either small-to-large or large-to-small order if you'd prefer, but you'll need to use <code>max-width</code> media queries and <code>min-width</code> media queries accordingly.</p>
<p><em><strong>Also!</strong> An opinionated note: I haven't thought about this too much yet, but I think I prefer to reference the least-harmful (in other words, the smallest) video file first in my video elements, just in case the browser doesn't support responsive video and simply selects the first source it finds. This might not be how you choose to do it, but I sort of like the idea of delivering mobile-first from a filesize perspective, and relying on cross-browser support to handle the selection properly in most cases.</em></p>
<h3>Sources and Types</h3>
<p>Here's another example with more sources <em>and</em> types. I've flipped the order to go large-to-small here too, just to show that either works.</p>
<pre><code data-sanitized-class="language-html">&lt;video&gt;
    &lt;source media="(min-width: 2000px)" src="large.webm" type="video/webm"&gt;
    &lt;source media="(min-width: 2000px)" src="large.mp4" type="video/mp4"&gt;
    &lt;source media="(min-width: 1000px)" src="medium.webm" type="video/webm"&gt;
    &lt;source media="(min-width: 1000px)" src="medium.mp4" type="video/mp4"&gt;
    &lt;source src="small.webm" type="video/webm"&gt;
    &lt;source src="small.mp4" type="video/mp4"&gt;
&lt;/video&gt;
</code></pre>
<p>There are a number of sources listed in this example, offering 3 video sizes (small, medium, and large), each of which in <code>webm</code> and <code>mp4</code> formats. Once again, the first matching source will be used, and that match must satisfy both the media and type attributes. Note that I've listed <code>webm</code> formats before <code>mp4</code> for each size. That's because <code>webm</code> is supported in fewer browsers than <code>mp4</code>, but it is often lighter in weight for the same quality. So I'd prefer <code>webm</code> to be chosen if the browser happens to support both formats.</p>
<p>The last source has no media specified so it acts as a fallback that will be chosen if all of the prior sources don't match.</p>
<h3>Other Queries</h3>
<p>How about other types of media queries? Go wild. They work! Here's an example that will serve portrait or landscape video depending on the device's orientation, which might be handy for making those "tiktoks" and "reels" the kids are into these days.</p>
<pre><code data-sanitized-class="language-html">&lt;video&gt;
    &lt;source src="landscape.mp4" type="video/mp4" media="(orientation: landscape)"&gt;
    &lt;source src="portrait.mp4" type="video/mp4"&gt;
&lt;/video&gt;
</code></pre>
<p>And you can of course combine queries, for example something like <code>media="(orientation: landscape) and (max-width: 480px)"</code>.</p>
<h2>Easter Egg: Responsive Audio Works Too?!</h2>
<p>Uh, so yeah, it's true. <strong>You can use media queries in HTML audio elements to deliver different audio to different media conditions.</strong> This is true in Safari too, so it's not just some terrible side effect of letting me commit code to Firefox.</p>
<p>I'm going to assume responsive audio will be useful for some scenarios that I have not considered yet. It's sort of exciting to think about, and maybe there'll be a followup post here about it.</p>
<p>For now, here's an <code>audio</code> element that will roar like T-Rex for small viewport sizes and cluck like a chicken for larger viewport sizes!</p>
<pre><code data-sanitized-class="language-html">&lt;audio controls&gt;
  &lt;source src="/sandbox/video-media/roar.mp3" media="(max-width: 599px)"&gt;
  &lt;source src="/sandbox/video-media/cluck.mp3"&gt;
&lt;/audio&gt;
</code></pre>
<audio controls="controls" preload="none">
  <source src="https://scottjehl.com/sandbox/video-media/roar.mp3" media="(max-width: 599px)">
  <source src="https://scottjehl.com/sandbox/video-media/cluck.mp3">
</audio>
<p>Unsupporting browsers will simply hear the t-rex roar, is a phrase I never thought I would write.</p>
<p>Let's get back to video.</p>
<h2>Just like <code>picture</code>, and also not!</h2>
<p>While <code>picture</code> and <code>video</code> are different in many ways that are unrelated to responsive video delivery, the syntax is similar enough that it's worth pointing a few things out here.</p>
<ul>
<li>In both <code>video</code> and <code>picture</code>, the first source that meets the needs of the browsing conditions will be chosen, but unlike <code>picture</code>, <code>video</code> <strong>ONLY</strong> selects a source when the element is first initialized (say, at initial page load or when a new <code>video</code> element is added to the DOM). So again, <code>picture</code> sources can change as conditions change, such as when the browser is resized, but currently, this is not true for <code>video</code>, so generally you will only see a video's source change if you refresh the page. It's possible this could change in the future, but complications around aligning video timecodes and such made it difficult to implement in the initial implementation.</li>
<li>In <code>video</code>, you specify sources using a <code>src</code> attribute, while in <code>picture</code>, you'll use <code>srcset</code> (along with <code>sizes</code>). Once again, this might change in the future if <code>video</code> gains <code>srcset</code> support, but for now, it uses <code>src</code>.</li>
<li>In <code>video</code>, the <code>sources</code> are the only child elements used for displaying a source, whereas with <code>picture</code>, the <code>source</code> elements control a sibling <code>img</code> element. Video has no similar pattern like that.</li>
</ul>
<p>Also, this is not particular to responsive video per se, but it's very important to consider non-visual media alternatives for both images and for video content. While <code>picture</code> uses the <code>alt</code> attribute on its child <code>img</code>, <code>video</code> elements use the <code>track</code> element to specify captions.</p>
<h2>Reminder: HTTPS Live Streaming video is great and often better!</h2>
<p>Responsive HTML video is the only <strong>declarative, W3C-standard, and non-JavaScript dependent</strong> means of delivering different video sources to different viewport sizes, but it's not the only way to deliver video that adapts to browsing conditions and often it's not the best choice! HTTP Live Streaming is a common means of delivering video responsibly to a variety of browsing conditions, and it supports robust features for changing video bitrate dynamically as connectivity improves or degrades, so it's the most robust choice for delivering large and/or long-duration videos over the web.</p>
<p>At its simplest form, the markup for an HLS video embed can look something like this:</p>
<pre><code data-sanitized-class="language-html">&lt;video src="https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8"&gt;&lt;/video&gt;
</code></pre>
<p>I dropped that HTML into a codepen and added some autoplay and controls attributes <a href="https://codepen.io/scottjehl/pen/mdvjBdO">here</a>. That file source is an m3u8 playlist (borrowed from the folks behind <a href="https://github.com/video-dev/hls.js">HLS JS</a>), which is essentially a manifest file referencing small chunks of your video that need to be generated by software like FFMPEG. That markup above will only play in Safari, by the way (HLS is a streaming format invented by Apple), so you'll need some JavaScript to polyfill the behavior of HLS in other browsers. I found <a href="https://www.freecodecamp.org/news/what-is-hls-and-when-to-use-it/">this article to be a good overview of the considerations involved</a>.</p>
<p>Streaming protocols are more complicated to implement than responsive HTML video, and HLS support relies on JavaScript to work <em>at all</em> in browsers other than Safari, but it is nonetheless incredibly common in the video streaming services you are used to using . HLS video is designed to accommodate browser environments and connection speeds and will result in a more tailored experience for video players. That said, if you're embedding shorter videos, are constrained by time or familiarity with how to implement HLS technology, responsive video is a great option to consider.</p>
<h2>Thanks for reading!</h2>
<p>Thank you for reading. As additional examples come to mind for how to use responsive HTML video, I'll aim to add them to this post. Feel free to reach out on <a href="https://mstdn.social/@scottjehl">Mastodon</a> or via the <a href="https://scottjehl.com/#contact">contact form</a> if you have ideas or questions!</p>


guid: https://htmhell.dev/adventcalendar/2023/1/
title: The UX of HTML
author: ;Manuel Matuzovic
link: https://htmhell.dev/adventcalendar/2023/1/
hash: ĿSPK.���rZ�4��
attributes: {"enclosures":[]}
content:
by Vasilis van Gemert<br><p>Recently when I gave a coding assignment — an art directed web page about a font — a student asked: does it have to be <em>semantic and shit?</em> The whole class looked up, curious about the answer — <em>please let it be no!</em> I answered that no, it doesn’t have to be semantic and shit, but it does have to be well designed and the user experience should be well considered. Relieved, all of my students agreed. They do care about a good user experience.</p>
<p>The joke here is, of course, that a well considered user experience starts with well considered <abbr title="HyperText Markup Language">HTML</abbr>.</p>
<p>Somehow my students are allergic to semantics and shit. And they’re not alone. If you look at 99% of all websites in the wild, everybody who worked on them seems to be allergic to semantics and shit. On most websites heading levels are just random numbers, loosely based on font-size. Form fields have no labels. Links and buttons are divs. It’s really pretty bad. So it’s not just my students, the whole industry doesn’t understand semantics and shit.</p>
<p>Recently I decided to stop using the word <em>semantics</em>. Instead I talk about the <abbr title="User eXperience">UX</abbr> of <abbr>HTML</abbr>. And all of a sudden my students are not allergic to <abbr>HTML</abbr> anymore but really interested. Instead of explaining the meaning of a certain element, I show them <em>what it does</em>. So we look at <em>what happens</em> when you add a label to an input: The input and the label now form a pair. You can now click on the label to interact with a checkbox. The label will be read out loud when you focus on an input with a screenreader. When you hover over a <em>label,</em> the hover state of the connected <em>input</em> is shown. My students <em>love</em> stuff like that. They care about <abbr>UX</abbr>.</p>
<p>I show them that <span>a span with an onclick-event</span> might seem to be behaving like a link, but that there are many layers of <abbr>UX</abbr> missing when you look a bit closer: right-click on <span>this span</span>, and a generic context menu opens up. When on the other hand you right-click on <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a">a proper link like this one</a> a specialised context menu opens, with all kinds of options that are specific to a link. And I show them that proper links show up when you ask your screen reader to list all the links on a page, yet spans with an onclick-event don’t. Moreover, a span doesn’t receive focus when you tab to it. And so on. My students see this and they get it. And they love the fact that by being lazy they get much more result.</p>
<p>So when I teach about <abbr>HTML</abbr> I always start with the elements that are obviously interactive. I show them the multitude of <abbr>UX</abbr> layers of a link, I show them the layers and layers of <abbr>UX</abbr> that are added to a well considered form. I show them what happens on a phone when you use an input with a default text type instead of the proper type of email. They <em>get</em> this, and they want to know more. So I show them more. I show them the <code>required</code> attribute which makes it possible to validate not only form fields, but also fieldsets and forms. They <em>love</em> this stuff.</p>
<p>Then I go on and show the <code>details</code> element with a <code>summary</code>. Whoah! No JavaScript!</p>
<p>These interactive things are the most important parts of <abbr>HTML</abbr>. These are the things that truly break or make a site. If you don’t use these elements properly, many people are actively excluded and the <abbr>UX</abbr> degrades in many ways. The interactive elements are what makes the web the web.</p>
<h2 data-sanitized-id="the-old-focus-on-semantics">The old focus on semantics</h2>
<p>Every time I come home from a web conference I hang the lanyard with the badge on a doorknob. There are at least 35 lanyards there. The oldest is more than fifteen years old, the newest just a few months. On most of these conferences there was someone telling us about the importance of using proper <em>semantic <abbr>HTML</abbr></em>. And they <em>all</em> talked about the importance of heading levels. So for <em>at least</em> 15 years we’ve been telling the web design and web development community that heading levels are very important. Yet after all these years, and after all these conferences <a href="https://webaim.org/projects/million/#headings">there are almost no websites that do it right</a>.</p>
<p>Later, when <abbr>HTML</abbr>5 was introduced the talks about semantics were still mostly about creating a proper document outline, but this time with sectioning elements in combination with headings. Unfortunately this idea was never properly implemented by browsers. And it turned out that these sectioning elements are very hard to understand. For years I’ve tried to explain the difference between a section and an article, and almost nobody gets it. And of course they don’t, because it’s <a href="https://www.smashingmagazine.com/2022/07/article-section-elements-accessibility/">very, very complicated theory</a>. And above all: There’s no clear <abbr>UX</abbr> feature to point at. The user experience doesn’t change dramatically if you use a section instead of an article. It’s <em>mostly</em> theoretical. So nowadays, next to <em>divitis</em>, we also have <em><a href="https://www.reddit.com/r/web_design/comments/1it5aa/is_sectionitis_the_new_divitis/">sectionitis</a>.</em></p>
<p>Understanding how heading levels work is hard. And understanding how sectioning elements work is really hard. And explaining these things is even harder. What’s the use for <a href="https://www.w3.org/TR/HTML-design-principles/#priority-of-constituencies">theoretical purity</a> if the end result is the same?</p>
<p>Yes, I know that some sectioning elements actually have some <abbr>UX</abbr> attached to it. But not that much <abbr>UX</abbr> if you compare it to the real interactive elements. Not getting your heading levels right is not at all as destructive as using divs instead of links.</p>
<p>Now, I’m not saying that we should stop teaching people about heading levels and sections. We shouldn’t. Heading levels and sections do things as well. But we should think about <em>when</em> we teach these more complicated and subtle parts of <abbr>HTML</abbr>. First we need to get people exited about <abbr>HTML</abbr> by showing all the free yet complex layers of <abbr>UX</abbr> you get when you use the interactive elements properly. And then, when they do understand the interactive elements, when they’re really excited and they ask for more, show them the more obscure <abbr>UX</abbr> patterns. You need a good idea of what <abbr>UX</abbr> <em>is</em> before you can understand things like <a href="https://webaim.org/projects/screenreadersurvey9/#finding">the option to nagivate through the headings on the page</a> with a screen reader. Without an idea of what <abbr>UX</abbr> means you cannot understand what landmarks do. First start with the obvious, then show the details.</p>
<p>I am very much looking forward to 15 more years of web conferences and publications. I look forward to seeing inspiring talks about the <abbr>UX</abbr> of <abbr>HTML</abbr>. Talks about the incredible radio button and its wonderful <em>indeterminate</em> state! Talks about validating forms in a friendly way with just <abbr>HTML</abbr> and some clever <abbr title="Cascading StyleSheets">CSS</abbr>. Talks about the different context menus that appear on different elements. In other words, talks about what <abbr>HTML</abbr> <em>does</em>, and much less about what it <em>means in theory</em>. Let’s talk about user experience, and let’s stop talking about semantics and shit.</p>


guid: https://htmhell.dev/adventcalendar/2023/2/
title: You don't need JavaScript for that
author: ;Manuel Matuzovic
link: https://htmhell.dev/adventcalendar/2023/2/
hash: 2N��z��]3J�Z@-
attributes: {"enclosures":[]}
content:
by Kilian Valkhof<br><p>Hello, my dear friend of RSS! This post contains interactive demos. You may want to read it on the website.</p><p>Please don't feel antagonised by the title of this article. I don't hate JavaScript, I love it. I write bucketloads of it every single day. But I also love CSS, and I even love <s>JSX</s> HTML. The reason I love all three of these technologies is something called:</p>
<h2 data-sanitized-id="the-rule-of-least-power">The rule of least power</h2>
<p>It's one of the core principles of web development and it means that you should <strong>Choose the least powerful language suitable for a given purpose</strong>.</p>
<p>On the web this means preferring HTML over CSS, and then CSS over JS. JS is the most versatile language out of the three because you're the one describing how the browser should act, but it can also break, it can fail to load and it takes extra resources to download, parse and run. It is also very easy to exclude keyboard users and people using assistive technologies with it.</p>
<p>In contrast to JS, which is imperative, HTML and CSS are declarative. You tell the browser <em>what</em> to do, not <em>how</em> to do it. That means the browser gets to choose how to do it, and it can do it in the most efficient way possible.</p>
<p>Because HTML and CSS features are handled by the browser they can be more performant, more native, more adaptable to user preferences and in general, more accessible. That doesn't mean it will always be (especially when it comes to accessibility) but when the browser does the heavy lifting for you, your end users will generally have a better experience.</p>
<h2 data-sanitized-id="but-i-need-js-for-that!">But I need JS for that!</h2>
<p>You might be thinking “All the things I use JS for, I <em>need</em> JS for”. That might be true, but it's good to know that both browser makers and specification writers have been porting a lot of functionality over to CSS and HTML that up to a few years ago needed JS. And that's what this article is about.</p>
<p>The tricky thing with the web is that once you learn how to build something there is never a reason to have to learn it again. That's the contract we have: the web is backwards compatible. (Very few exceptions apply, but the first web page still runs fine in all modern browsers.)</p>
<p>That also means that the solution you learned once becomes part of your toolbox, and you can keep re-implementing it and everytime it will still work. So the examples I'm going to give below are cool (that's why I'm listing them) but what I want you to take away from this article is that just because you <em>know</em> something needs JavaScript, doesn't mean it still does. You can make better websites if you test those assumptions every now and then.</p>
<h2 data-sanitized-id="custom-switches">Custom Switches</h2>
<p>We'll start this article off with something we've all had to implement at some point, custom switches. Instead of using a regular checkbox, the design calls for a nice looking switch. Instead of reaching for a JS solution with divs, onclick handlers and internal state, we're going to make use of a regular checkbox and the <code>:checked</code> pseudo class. Here's ther HTML we're going to use:</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>checkbox<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  My awesome feature</span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>There's a label element, and inside it a checkbox. The nice thing about this is that the browser is already doing things for us. Because the input is inside the label, the browser has associated them and now we can click anywhere on the label to toggle the checkbox, no onclick handler in sight. The browser gives us this for free. Feature-wise, we're done.</p>
<div data-demo="A checkbox">
<p>
  <label>
    
    My awesome feature
  </label>
</p>
</div>
<p>Of course, designers may not like the way this looks and we want to create a great looking custom switch. So let's add a bunch of CSS:</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">input</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">appearance</span><span data-sanitized-class="token punctuation">:</span> none<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">position</span><span data-sanitized-class="token punctuation">:</span> relative<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">display</span><span data-sanitized-class="token punctuation">:</span> inline-block<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">background</span><span data-sanitized-class="token punctuation">:</span> lightgrey<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">height</span><span data-sanitized-class="token punctuation">:</span> 1.65rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">width</span><span data-sanitized-class="token punctuation">:</span> 2.75rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">vertical-align</span><span data-sanitized-class="token punctuation">:</span> middle<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">border-radius</span><span data-sanitized-class="token punctuation">:</span> 2rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">box-shadow</span><span data-sanitized-class="token punctuation">:</span> 0px 1px 3px #0003 inset<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">transition</span><span data-sanitized-class="token punctuation">:</span> 0.25s linear background<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">input::before</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">content</span><span data-sanitized-class="token punctuation">:</span> <span data-sanitized-class="token string">""</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">display</span><span data-sanitized-class="token punctuation">:</span> block<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">width</span><span data-sanitized-class="token punctuation">:</span> 1.25rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">height</span><span data-sanitized-class="token punctuation">:</span> 1.25rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">background</span><span data-sanitized-class="token punctuation">:</span> #fff<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">border-radius</span><span data-sanitized-class="token punctuation">:</span> 1.2rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">position</span><span data-sanitized-class="token punctuation">:</span> absolute<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">top</span><span data-sanitized-class="token punctuation">:</span> 0.2rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">left</span><span data-sanitized-class="token punctuation">:</span> 0.2rem<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">box-shadow</span><span data-sanitized-class="token punctuation">:</span> 0px 1px 3px #0003<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">transition</span><span data-sanitized-class="token punctuation">:</span> 0.25s linear transform<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">transform</span><span data-sanitized-class="token punctuation">:</span> <span data-sanitized-class="token function">translateX</span><span data-sanitized-class="token punctuation">(</span>0rem<span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>
<p>All the specifics of the styling here don't matter as much, but I want you to take a look at that first rule: <code>appearance: none</code>.</p>
<p>Form elements, along with images, are something called "replaced content". That means they're not really part of your HTML, but supplied by the browser. When the browser renders your HTML and finds replaced content, it leaves a box for it, and then replaces that box with the actual content. This is why, for example, images and form elements can't have pseudo-elements: they get replaced when the browser replaces the entire element.</p>
<p><code>appearance</code> is a way of telling the browser to stop doing that. It tells the browser: "Thanks, but I want to style my own form control". And that then allows is to use the <code>::before</code> pseudo-element. The input itself is now the background of our switch, and the <code>::before</code> pseudo-element is the little dot inside of it that does the toggling.</p>

<div data-demo="Styled custom switch">
<p>
  <label>
    
    My awesome feature
  </label>
</p>
</div>
<p>Clicking this still checks and unchecks the checkbox, but because we replaced the element we need to do the work of making that visible ourselves. That's where the <code>:checked</code> pseudo-class comes in:</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">:checked</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">background</span><span data-sanitized-class="token punctuation">:</span> green<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">:checked::before</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">transform</span><span data-sanitized-class="token punctuation">:</span> <span data-sanitized-class="token function">translateX</span><span data-sanitized-class="token punctuation">(</span>1rem<span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>
<p>When you click the checkbox, that <code>:checked</code> pseudo-class starts to match and that causes the styling to update.</p>
<div data-demo="Styled custom switch">
<p>
  <label>
    
    My awesome feature
  </label>
</p>
</div>
<p>So we have a great looking custom switch using native HTML elements and a bit of CSS, but we're not done yet. While for mouse users it's really clear which form control they're interacting with (since they're pointing at it and clicking), for people using a keyboard that's not so easy.</p>
<p>I'm sure you're familiar with this bit of CSS. To get rid of that ugly, dotted, boxy outline.</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">input:focus</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">outline</span><span data-sanitized-class="token punctuation">:</span> none<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>
<p>If you're reading this, know that's not a good idea. But how do we make it look, well, nicer? Here too browsers have updated to make things better for us. The <code>outline</code> now follows the border-radius of an element, and we can also offset it away, or inside of, the element:</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">input:focus-visible</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">outline</span><span data-sanitized-class="token punctuation">:</span> 2px solid dodgerblue<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">outline-offset</span><span data-sanitized-class="token punctuation">:</span> 2px<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>
<p>Now, when a user interacts with an element using the keyboard (you can try pressing the spacebar after clicking it, or tabbing to it), <code>:focus-visible</code> will match (it won't when using a mouse) and they get a good looking, blue outline slightly around the element.</p>
<div data-demo="final custom checkbox">
<p>
  <label>
    
    My awesome feature
  </label>
</p>
</div>
<p>Lastly, I want you to replace that <code>outline: none</code> with something else:</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">input:focus</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">outline-color</span><span data-sanitized-class="token punctuation">:</span> transparent<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>
<p>This will have the same result: Instead of the outline not being visible because it's hidden, it's not visible because it's transparent. For users that have high contrast mode (also called forced colors) turned on however, that outline becomes visible again because in high contrast mode, that transparent color gets replaced with a color the user chose, helping them see what they're interacting with even if they use a mouse.</p>
<p>This article isn't long enough to also go into what forced-colors does but if you want to learn more check out my article <a href="https://polypane.app/forced-colors/">forced colors explained</a>.</p>
<h2 data-sanitized-id="datalist-a-native-autosuggest">Datalist, a native autosuggest</h2>
<p>Instead of installing <code>$your-framework-autosuggest</code>, try out datalist in your next project. Datalist is the browsers built-in way of showing a list of options as a user types into an input.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">list</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>frameworks<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line"></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>datalist</span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>frameworks<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span>Bootstrap<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span>Tailwind CSS<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span>Foundation<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span>Bulma<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span>Skeleton<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>option</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>datalist</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>To use it, you add a datalist element with an ID and a set of options to your HTML. Don't worry, the element won't be visible. Then you use the <code>list</code> attribute on an input to associate the two.</p>
<div data-demo="Datalist example">
  
  <datalist data-sanitized-id="frameworks">
    <option>Bootstrap</option>
    <option>Tailwind CSS</option>
    <option>Foundation</option>
    <option>Bulma</option>
    <option>Skeleton</option>
  </datalist>
</div>
<p>As a user now types into the input, the browser will show the datalist as a dropdown, automatically filtering the options as the user types. Because it's a regular input though, users still have the option to type in their own value. Lastly, they can see all of the options by selecting the input and using the arrow keys to navigate the list, or clicking the dropdown icon the browser adds.</p>
<h2 data-sanitized-id="a-color-picker-that-does-more">A color picker that does more</h2>
<p>There are a ton of good looking color pickers out there, with nice canvas UIs and sliders that are built with 100s of lines of JavaScript. But did you know that you can also use a native color picker?</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span> <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>color<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span> Color <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>This single line of HTML also give you a color picker with a nice UI, already saving you a bunch of JS. But because we're letting the browser handle it, we actually get more functionality for free. In Chromium browsers, that native color picker also lets you pick a color, not just from your own site but from anywhere on the screen. Pretty neat!</p>
<div data-demo="Native color picker">
<p><label for="color">Color</label><br>
</p>
</div>
<p>A quick note here is that even though browsers show a nice color picker, your users might not all be able to use it. So offering a different way of picking a color (like a regular text input) is still a good idea.</p>
<h2 data-sanitized-id="accordions">Accordions</h2>
<p>Accordions are a great way of making a page with a lot of content more structured and uncluttered by keeping content out of the way until a user needs it. And browsers give them to you for free with the <code>details</code> and <code>summary</code> elements:</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>details</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>summary</span><span data-sanitized-class="token punctuation">&gt;</span></span>My accordion<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>summary</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span>My accordion content<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>details</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<div data-demo="Accordion">
<details>
  <summary>My accordion</summary>
  <p>My accordion content</p>
</details>
</div>
<p>By default everything inside a <code>details</code> element is hidden except for the <code>summary</code>. Then when a user clicks the <code>summary</code> element the browser will show the rest of the content.</p>
<p>What you'll often see is that one of the accordion items is already open, and the rest are closed. You can do that with the <code>open</code> attribute:</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>details</span> <span data-sanitized-class="token attr-name">open</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>summary</span><span data-sanitized-class="token punctuation">&gt;</span></span>My accordion<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>summary</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span>My accordion content<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>details</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<div data-demo="Accordion that starts open">
<details open="">
  <summary>My accordion</summary>
  <p>My accordion content</p>
</details>
</div>
<p>If you come from the React world, you might look at this code and think “Well that's great, now it has the <code>open</code> prop and isn't going to close anymore“ but luckily, that's not the case. That <code>open</code> attribute is only the starting state, and will update when a user interacts with the accordion.</p>
<p>When it comes to styling, the <code>details</code> element also has you covered. That little triangle (that your designer will want to replace the instant they see it) is a <code>::marker</code> pseudo-element that you can style:</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">summary::marker</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">font-size</span><span data-sanitized-class="token punctuation">:</span> 1.5em<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">content</span><span data-sanitized-class="token punctuation">:</span> <span data-sanitized-class="token string">"📬"</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">[open] summary::marker</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">font-size</span><span data-sanitized-class="token punctuation">:</span> 1.5em<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">content</span><span data-sanitized-class="token punctuation">:</span> <span data-sanitized-class="token string">"📭"</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>

<div data-demo="Accordion with styled markers">
<details data-sanitized-class="styled">
  <summary>My accordion</summary>
  <p>My accordion content</p>
</details>
</div>
<p>Keep in mind that changing the content can affect how assistive technologies announce your accordion. Read Manuels article on that here: <a href="https://www.matuzo.at/blog/2023/details-summary">details/summary inconsistencies</a>. In addition, for Safari you'll have to use the <code>::-webkit-details-marker</code> pseudo-element.</p>
<p>The marker pseudo-element can't be styled as extensively as other elements (many CSS properties do not work on it, like positioning it in a completely different place), but you can replace its content, for example with emoji, or set a background color or image and change it's font size.</p>
<p>With the <code>open</code> attribute you can easily give it different styling from the closed state.</p>
<p>Lastly, we want to do something about that summary element. It's clickable, but unlike a link it doesn't get a pointer cursor, and unlike a button it, well, doesn't look like a button. So I think we should add a hover and focus state to it and help our visitors realise that it's clickable:</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="token selector">summary:hover,<br>summary:focus</span> <span data-sanitized-class="token punctuation">{</span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">cursor</span><span data-sanitized-class="token punctuation">:</span> pointer<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">background</span><span data-sanitized-class="token punctuation">:</span> deeppink<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>

<div data-demo="Accordion with indication on hover">
<details data-sanitized-class="hoverable">
  <summary>My accordion</summary>
  <p>My accordion content</p>
</details>
</div>
<p>I'm sidestepping the “only links should have pointer cursors” discussion here, the main point I'm making is that you need to do <em>something</em>.</p>
<h2 data-sanitized-id="dialog-modals">Dialog modals</h2>
<p>Sometimes you need to inform the user about something, or ask them something or get them to confirm something. In JavaScript, that's what <code>alert()</code>, <code>prompt()</code> and <code>confirm()</code> do. But they have a pretty big downside: they lock the main thread, meaning your page can't do anything else. They're also browser-native, so you can't style them to work with your design.</p>
<p>Building your own dialog is also asking for trouble: you need to keep the focus inside the dialog for accessibility, announce it's modal-ness, make sure users can't exit it accidentally, and you'll have to fight with whatever chat widget occupied the z-index of 2147483647 (if you know you know).</p>
<p>So that's why browsers now come with a native dialog element:</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>dialog</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>form</span> <span data-sanitized-class="token attr-name">method</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>dialog<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>h3</span><span data-sanitized-class="token punctuation">&gt;</span></span>This is a pretty dialog<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>h3</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>submit<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Close<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>form</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>dialog</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>This element isn't shown by default and, for now, this is where I'm going to cheat a little and use JavaScript:</p>
<pre data-sanitized-class="language-js"><code data-sanitized-class="language-js"><span data-sanitized-class="highlight-line">document<span data-sanitized-class="token punctuation">.</span><span data-sanitized-class="token function">querySelector</span><span data-sanitized-class="token punctuation">(</span><span data-sanitized-class="token string">"button"</span><span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">.</span><span data-sanitized-class="token function">addEventListener</span><span data-sanitized-class="token punctuation">(</span><span data-sanitized-class="token string">"click"</span><span data-sanitized-class="token punctuation">,</span> <span data-sanitized-class="token punctuation">(</span><span data-sanitized-class="token punctuation">)</span> <span data-sanitized-class="token operator">=&gt;</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  document<span data-sanitized-class="token punctuation">.</span><span data-sanitized-class="token function">querySelector</span><span data-sanitized-class="token punctuation">(</span><span data-sanitized-class="token string">"dialog"</span><span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">.</span><span data-sanitized-class="token function">showModal</span><span data-sanitized-class="token punctuation">(</span><span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span><span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">;</span></span></code></pre>
<div data-demo="A native dialog">
<p><button data-sanitized-id="open-dialog1">Open dialog</button></p>
  <dialog data-sanitized-id="dialog1">
    
      <h3>This is a pretty dialog</h3>
      <button type="submit">Close</button>
    
  </dialog>
</div>

<p>Now there's changes in the works that will let you open dialogs without JavaScript, but they're not fully specced yet, let alone implemented. So for now, we need to use JavaScript to open the dialog. But that's it, the rest is all native HTML and CSS.</p>
<p>The dialog element has a <code>showModal()</code> function that it exposes and with it, you open the dialog. This dialog is opened on something called the <code>top-layer</code>, which is a new concept in browsers. For a primer, check out the explainer on MDN: <a href="https://developer.mozilla.org/en-US/docs/Glossary/Top_layer">Top layer</a>.</p>
<p>The top layer is a new layer that's separate from your HTML, and you can "promote" elements to it. That means that elements on the top layer will always be above everything else, regardless of the z-index of an element and stacking context nesting.</p>
<p>Now that it's open though, you might notice that the browser doesn't give you any UI. The dialog is pretty much a div (not a button!) and it's up to you to provide the UI for closing. That's what the form in the code above does. You might've noticed it has a method of "dialog". When this form gets submitted, the browser takes that as a signal to close the dialog again.</p>
<p>With that, you can also create confirmation dialogs by providing two buttons, each with each own values:</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>dialog</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>form</span> <span data-sanitized-class="token attr-name">method</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>dialog<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span>Tabs or spaces?<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>submit<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">value</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>wrong<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Tabs<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>submit<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">value</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>correct<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Spaces<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>form</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>dialog</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>The button that a user clicked can be found by listening to the <code>close</code> event on the dialog and reading it's 'returnValue' property:</p>
<pre data-sanitized-class="language-js"><code data-sanitized-class="language-js"><span data-sanitized-class="highlight-line">dialog<span data-sanitized-class="token punctuation">.</span><span data-sanitized-class="token function">addEventListener</span><span data-sanitized-class="token punctuation">(</span><span data-sanitized-class="token string">"close"</span><span data-sanitized-class="token punctuation">,</span> <span data-sanitized-class="token keyword">function</span> <span data-sanitized-class="token punctuation">(</span><span data-sanitized-class="token punctuation">)</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  console<span data-sanitized-class="token punctuation">.</span><span data-sanitized-class="token function">log</span><span data-sanitized-class="token punctuation">(</span>dialog<span data-sanitized-class="token punctuation">.</span>returnValue<span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span><span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">;</span></span></code></pre>
<div data-demo="Dialog with multiple buttons">
<p><button data-sanitized-id="open-dialog2">Open dialog</button></p>
  <dialog data-sanitized-id="dialog2">
    
    <p>Tabs or spaces?</p>
    <button type="submit" value="wrong">Tabs</button>
    <button type="submit" value="correct">Spaces</button>
  
  </dialog>
</div>

<p>If you have any other form data in there you can also read that as <a href="https://developer.mozilla.org/en-US/docs/Web/API/FormData"><code>formData</code></a>.</p>
<p>Because the dialog is essentially a div as far as styling it concerned, you can style it however you want. The browser will automatically place it in the middle of the screen for you, but everything else is up to you.</p>
<p>Dialog also comes with a new pseudo-element called <code>::backdrop</code>. That's the layer that sits between the dialog and the rest of the page, and you can style it to e.g. dim the rest of the page or otherwise direct a users attention to the dialog. For example, you can overlay a white layer and blur the page:</p>
<pre data-sanitized-class="language-css"><code data-sanitized-class="language-css"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token selector">dialog::backdrop</span> <span data-sanitized-class="token punctuation">{</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">background</span><span data-sanitized-class="token punctuation">:</span> #fff5<span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token property">backdrop-filter</span><span data-sanitized-class="token punctuation">:</span> <span data-sanitized-class="token function">blur</span><span data-sanitized-class="token punctuation">(</span>4px<span data-sanitized-class="token punctuation">)</span><span data-sanitized-class="token punctuation">;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token punctuation">}</span></span></code></pre>

<div data-demo="Dialog with styled backdrop">
<p><button data-sanitized-id="open-dialog3">Open dialog</button></p>
  <dialog data-sanitized-id="dialog3">
    
      <h3>This is a dialog with a styled backdrop</h3>
      <button type="submit">Close</button>
  
  </dialog>
</div>

<p>Just like the dialog element itself, the backdrop is positioned by the browser, so you won't need to worry about scrolling, fixed elements and browser resizing. It's all handled for you by the browser.</p>
<h2 data-sanitized-id="in-closing">In closing</h2>
<p>I hope you found a few things in this article that made you realise you can use a little bit less javascript in your next project. Whenever you change a known battle-tested implementation to something new it's good to test it, especially when it comes to accessibility, to make sure that you're not excluding anyone.</p>
<p>There are dozens more examples I could've added into this article, here are just some you can look into:</p>
<ul>
<li>Native smooth scrolling with <code>scroll-behavior: smooth</code> (but only when <code>prefers-reduced-motion: no preference</code> matches!),</li>
<li>Native carousels with scroll-snap,</li>
<li>"In-view" elements with <code>position: sticky</code></li>
<li>…Not to name the whole concept of container queries.</li>
</ul>
<p>And if we look into the future, we're getting even more cool things:</p>
<ul>
<li>Scroll driven animations</li>
<li>Masonry layouts without masonry.js but with <code>grid-template-rows: masonry</code></li>
<li>A fully stylable <code>select</code> with the new <code>selectlist</code> element (where you can style each part of a select without destroying all the native functionality it comes with)</li>
<li>The <code>:has()</code> selector that's going to eliminate a whole class of JS selection</li>
</ul>
<p>This article is an adaption of a conference talk I gave that goes into more detail on these and other topics, and you can watch it here: <a href="https://www.youtube.com/watch?v=ZTMUJu26b7Q">Stop Using JavaScript for That: Moving Features from JS to CSS and HTML.</a></p>
<p>So let me re-iterate the main point of this article:</p>
<p>Just because you <em>know</em> something needs JavaScript, doesn't mean it still does. You can make better websites if you test those assumptions every now and then.</p>


guid: https://odysee.com/embracing-uncompromising-truth-and:32c39816c9100dbd3e73b1de240f52cd6e423e54
title: Embracing Uncompromising Truth and Growing Through Crisis (Holmes Fam interview with RTF)
author: ;Rising Tide Foundation
link: https://odysee.com/embracing-uncompromising-truth-and:32c39816c9100dbd3e73b1de240f52cd6e423e54
hash: (�M� z.p�*�g0t�
content:
<p><img src="https://thumbnails.lbry.com/ngJg9nKxjD0" width="480" alt="thumbnail" title="Embracing Uncompromising Truth and Growing Through Crisis (Holmes Fam interview with RTF)"></p>In this Podcast, Matt and Cynthia talk to an incredible politically active family in Alberta who have found a way to grow through the pandemic, and create a foundation of love and learning which is a role model for all freedom loving citizens.<br><br>Follow 'Over to the Youth' here: https://overtotheyouth.com/2023/04/13/over-to-the-youth-podcast-navigating-historical-times/<br><br>Watch Matt's previous discussion with Mike Holmes about the political fight in Alberta: https://rumble.com/v3u2rfs-albertas-fight-is-canadas-fight-mike-holmes-on-the-canadian-patriot.html<br><br>Matt and Cynthia's books:<br>https://canadianpatriot.org/untold-history-of-canada-books/<br><br>Visit www.risingtidefoundation.net for more info<br><br>and follow us on t.me/RisingTideFoundation<br>...<br>https://www.youtube.com/watch?v=ngJg9nKxjD0

attributes:
{"enclosures":[{"url":"https://player.odycdn.com/api/v3/streams/free/embracing-uncompromising-truth-and/32c39816c9100dbd3e73b1de240f52cd6e423e54/45fb22.mp4","type":"video/mp4","length":446170955}]}


guid: https://htmhell.dev/adventcalendar/2023/3/
title: The Form Attribute - Enhancing Form Layout Flexibility
author: ;Manuel Matuzovic
link: https://htmhell.dev/adventcalendar/2023/3/
hash: �� R�k��r|�9��
attributes: {"enclosures":[]}
content:
by Alexander Muzenhardt<br><p>Consider a scenario where you have a login form containing two input fields with corresponding labels, alongside a submit and a reset button. If you submit the form, the action of the form gets triggered, and you can work with the <code>formData</code>.</p>
<p>The layout looks nice as well (let’s imagine we have added some fancy CSS).</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>form</span> <span data-sanitized-class="token attr-name">action</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>/login<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">method</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>get<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Username<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>text<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">required</span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  </span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Password<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">required</span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  </span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>reset<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Reset<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>submit<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Submit<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>form</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<h2 data-sanitized-id="the-challenge">The Challenge</h2>
<p>Now, let's delve into a new requirement presented by your client. They want a revamped layout with the buttons placed elsewhere. This redesign, however, leads to a problem.<br>
The buttons are no longer within the form element which causes the buttons to lose their association to the form.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>main</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>form</span> <span data-sanitized-class="token attr-name">action</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>/login<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">method</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>get<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Username<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>text<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">required</span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    </span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Password<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">required</span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>form</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  </span><br>  <span data-sanitized-class="token comment">&lt;!-- Because of the new layout, we have to move the buttons <br>  outside of the form --&gt;</span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>reset<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Reset<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>submit<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Submit<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>main</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>If you try to submit or reset the form, nothing will happen.</p>
<p>These buttons must be within the form element to be functionally associated with it.<br>
Unfortunately, the client insists on the new layout and to move the buttons outside the form element is the only option you have.</p>
<h2 data-sanitized-id="the-solution">The Solution</h2>
<p>If you read the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button?retiredLocale=de#form">button element’s specification</a>, there is an interesting attribute called <code>form</code>. This is very helpful in your situation and will solve your problem. You can add the <code>form</code> attribute to each button and assign a name to it. The name can be whatever you want. A good name would be <em>form-login</em>.<br>
With that change, you just have to add an <code>id</code> attribute to the form element itself. The value of the attribute has to be the same as in the <code>form</code> attribute. That's it!</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>main</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>form</span> <span data-sanitized-class="token attr-name">action</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>/login<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">method</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>get<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>form-login<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Username<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>text<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>username<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">required</span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    </span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Password<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>password<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">required</span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">    <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>form</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  </span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token comment">&lt;!-- Because of the new layout, we have to move the Buttons outside the form --&gt;</span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>reset<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">form</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>form-login<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Reset<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">      <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>button</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>submit<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">form</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>form-login<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Submit<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>button</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>div</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>main</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>With these adjustments, your form works like before but with the freedom of positioning your buttons as you want.</p>
<h2 data-sanitized-id="a-word-on-practicality">A Word on Practicality</h2>
<p>The same approach can be applied to the <code>input</code>, <code>textarea</code>, <code>select</code> and other <code>form</code> elements as well. You can check the MDN or the <a href="https://html.spec.whatwg.org/#toc-semantics">HTML spec</a> to see if an element accepts this attribute.<br>
With that approach elements are no longer required to be children of the form element. You are able to place your elements as you wish in the DOM, and they are always associated with the <code>form</code> element.</p>
<h2 data-sanitized-id="accessibility-concerns">Accessibility concerns</h2>
<p>With this approach, you will get a lot of freedom with your layout. However, it is crucial to maintain an order in the DOM that still makes sense to users. Otherwise, it can be confusing and frustrating.</p>
<p>For example, if the position of the button in the DOM in the previous example is not close to the rest of the form elements, screen-reader or keyboard user may have difficulty locating the button and understanding its relation to rest of the form.</p>
<h2 data-sanitized-id="browser-compatibility">Browser compatibility</h2>
<p>The <code>form</code> attribute is well-supported, with Internet Explorer being an exception.<br>
For detailed browser compatibility information, refer to <a href="https://caniuse.com/form-attribute">caniuse</a>.</p>
<h2 data-sanitized-id="conclusion">Conclusion</h2>
<p>With the <code>form</code> attribute you are no longer restricted to position your inputs and buttons inside the <code>form</code> element boundaries. This approach enriches the potential for more flexibility and creative form designs.</p>


guid: https://htmhell.dev/adventcalendar/2023/4/
title: Back to Basics: 5 HTML attributes for improved accessibility and user experience
author: ;Manuel Matuzovic
link: https://htmhell.dev/adventcalendar/2023/4/
hash: ���%��6k< �9H�
attributes: {"enclosures":[]}
content:
by Daniela Kubesch<br><p>In the fast-paced world of web development, it's easy to get caught up in the latest frameworks, libraries and cutting-edge technologies. But sometimes, the most impactful improvements come from revisiting the fundamentals.</p>
<p>In this blog post, I'll guide you through five HTML attributes that not only improve accessibility but also enhance the overall user experience. Whether you are an experienced developer or just starting, let's explore the potential of these elements to create a more inclusive web experience.</p>
<h2 data-sanitized-id="1-hreflang">1. hreflang</h2>
<p>The <a href="https://www.w3.org/TR/2014/REC-html5-20141028/links.html#attr-hyperlink-hreflang"><code>hreflang</code> attribute</a> <strong>specifies the language of a linked resource</strong> on an <code>&lt;a&gt;</code> or <code>&lt;link&gt;</code> element. It works like the <code>lang</code> attribute but is specifically used for links.</p>
<h3 data-sanitized-id="why-use-hreflang?">Why use <code>hreflang</code>?</h3>
<p>You can improve the user experience and SEO by using <code>hreflang</code> for both internal and external site links.<br>
Using <code>hreflang</code> on internal website links provides a way to tell search engines about different variations of a page for other languages or regions. This means that English speakers would receive the English version of the site, while Swedish speakers would receive the Swedish version. There is no need for manual switching on the user's end, resulting in a smoother experience.</p>
<h3 data-sanitized-id="how-to-use-hreflang">How to use <code>hreflang</code></h3>
<p>Add the <code>hreflang</code> attribute with the needed <a href="https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry">ISO language code</a> to your <code>&lt;a&gt;</code> element. For an English website, this would be <code>en</code>.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>en<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>English Website<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>You can also be more specific with the language code and use regional variations. For example, we can add <code>en-GB</code> for British English.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.at<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>en-GB<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>English Website<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>If your website is available in multiple languages, you can use <code>hreflang</code> to specify the language and region of a document associated with a specific URL. Adding the attribute will help search engines understand the language and regional targeting of different web page versions.</p>
<p>Add <code>hreflang</code> with the required language code to each link. One link should act as the default fallback version, identifiable by adding <code>hreflang="x-default"</code> instead of the language code. Lastly, set the value of the <code>rel</code> attribute to <code>"alternate"</code> for each link in the language switcher to indicate that the linked pages are alternatives to the present page.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>link</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">rel</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>alternate<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>x-default<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>link</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com/de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">rel</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>alternate<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span></code></pre>
<p>You can also use <code>hreflang</code> in your language switcher.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>x-default<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>English<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com/de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>de<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>German<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>Sometimes, language switchers use link text in the language they are switching to. You can indicate this by additionally using the <code>lang</code> attribute.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>x-default<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>English<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com/de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">lang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>de<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Deutsch<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p data-sanitized-class="highlight">
<strong>Note:</strong> Adding the <code>lang</code> attribute is particularly important for assistive technology users. For instance, screen readers alter their voice and pronunciation based on the language attribute.
</p>
<p>An additional way to enhance accessibility is to include <code>aria-current="true"</code> to the presently active link.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>x-default<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">aria-current</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>true<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>English<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>a</span> <span data-sanitized-class="token attr-name">href</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>https://example.com/de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">hreflang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">lang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>de<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Deutsch<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>a</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<h2 data-sanitized-id="2-translate">2. translate</h2>
<p>The <a href="https://html.spec.whatwg.org/multipage/dom.html#attr-translate"><code>translate</code> attribute</a> is used to <strong>indicate whether an element should be translated</strong> or not.</p>
<h3 data-sanitized-id="why-use-translate?">Why use <code>translate</code>?</h3>
<p>Most website text is translatable by default (with some exceptions such as text on images or within SVGs). Translation tools, such as Google Translate, may suggest translation of page contents if the site's defined language differs from the browser's default language. However, there may be instances where this behaviour is unwanted.<br>
Specific terms like company names, e-mail addresses or code examples should generally not be translated to avoid confusion. Automated translations are not always completely accurate, particularly with niche or technical words.</p>
<h3 data-sanitized-id="how-to-use-translate">How to use <code>translate</code></h3>
<p>You can use translate on any HTML element. Assign an empty string (<code>""</code>) or <code>yes</code> for translation and <code>no</code> to avoid translation.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token comment">&lt;!-- Original German text --&gt;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span><span data-sanitized-class="token punctuation">&gt;</span></span>Wien<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span><span data-sanitized-class="token punctuation">&gt;</span></span> </span><br><span data-sanitized-class="highlight-line">  ist (wieder) die lebenswerteste Stadt der Welt!</span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span> <span data-sanitized-class="token attr-name">translate</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>no<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Wien<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span><span data-sanitized-class="token punctuation">&gt;</span></span> </span><br><span data-sanitized-class="highlight-line">  ist (wieder) die lebenswerteste Stadt der Welt!</span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token comment">&lt;!-- What it would look like translated into English --&gt;</span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span><span data-sanitized-class="token punctuation">&gt;</span></span>Vienna<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span><span data-sanitized-class="token punctuation">&gt;</span></span> </span><br><span data-sanitized-class="highlight-line">  named world's most liveable city (again)!</span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span> <span data-sanitized-class="token attr-name">translate</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>no<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Wien<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>span</span><span data-sanitized-class="token punctuation">&gt;</span></span> </span><br><span data-sanitized-class="highlight-line">  named world's most liveable city (again)!</span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>p</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"></span></code></pre>
<h2 data-sanitized-id="3-reversed">3. reversed</h2>
<p>The <a href="https://html.spec.whatwg.org/multipage/grouping-content.html#attr-ol-reversed"><code>reversed</code> attribute</a> is used to <strong>reverse ordered lists</strong> (<code>&lt;ol&gt;</code>) in the opposite order.</p>
<h3 data-sanitized-id="why-use-reversed?">Why use <code>reversed</code>?</h3>
<p>Using the <code>reversed</code> attribute keeps the order of visual and semantic list items the same, but they are numbered from highest to lowest. This means adding this attribute to your ordered list (<code>&lt;ol&gt;</code>) will not reverse the list items but only the list numbers. For instance, this behaviour is helpful if you want to count down your top five desserts. However, the reversed attribute does not affect unordered lists (<code>&lt;ul&gt;</code>).</p>
<p data-sanitized-class="highlight">
<strong>Note:</strong> The reversed attribute does not affect unordered lists (<code>&lt;ul&gt;</code>).
</p>
<h3 data-sanitized-id="how-to-use-reversed">How to use <code>reversed</code></h3>
<p>Add the <code>reversed</code> attribute to your list element.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>ol</span> <span data-sanitized-class="token attr-name">reversed</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span>Cookies<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span>Crema Catalana<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span>Tiramisu<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span>Pastel de Nata<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span>Sacher cake<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>li</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>ol</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>This will result in the following reversed list:</p>
<ol reversed="">
  <li>Cookies</li>
  <li>Crema Catalana</li>
  <li>Tiramisu</li>
  <li>Pastel de Nata</li>
  <li>Sacher cake</li>
</ol>
<p data-sanitized-class="highlight">
<strong>Note:</strong> Screen readers announce the list in DOM order along with the correct number: "5. Cookies, 4. Crema Catalana, etc.".
</p>
<h2 data-sanitized-id="4-controls">4. controls</h2>
<p>The <a href="https://html.spec.whatwg.org/multipage/media.html#attr-media-controls"><code>controls</code> attribute</a> instructs the browser to <strong>show the standard video or audio controls</strong>.</p>
<h3 data-sanitized-id="why-use-controls?">Why use <code>controls</code>?</h3>
<p>Including playback controls on your video and audio content is essential for optimal user experience, accessibility and usability. These controls enable users to stop or adjust video/sound playback and assist those who may experience motion sickness or distraction while browsing your website.<br>
The default controls include the playback essentials such as play, pause, seek (moving position) and volume, as well as fullscreen toggle, <a href="https://htmhell.dev/tips/the-track-element/">captions/subtitles and track</a> for video content only.</p>
<p data-sanitized-class="highlight">
<strong>Note:</strong> The browser controls provided as defaults should be used with caution. Sometimes keyboard-based navigation can cause problems, such as loss of focus, forcing the user to reposition themselves. Consider <a href="https://developer.mozilla.org/en-US/docs/Learn/Accessibility/Multimedia#creating_custom_audio_and_video_controls">implementing custom controls</a> or integrating an external media player equipped with accessibility features. <strong>However, it is still preferable to include controls than not to.</strong>
</p>
<h3 data-sanitized-id="how-to-use-controls">How to use <code>controls</code></h3>
<p>You can add the <code>controls</code> attribute to the <code>&lt;video&gt;</code> or <code>&lt;audio&gt;</code> element.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>video</span> <span data-sanitized-class="token attr-name">controls</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>source</span> <span data-sanitized-class="token attr-name">src</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>movie.mp4<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>video/mp4<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>source</span> <span data-sanitized-class="token attr-name">src</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>movie.ogg<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>video/ogg<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>track</span> <span data-sanitized-class="token attr-name">kind</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>captions<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">src</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>sampleCaptions.vtt<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">srclang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>en<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>track</span> <span data-sanitized-class="token attr-name">kind</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>subtitles<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">src</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>sampleSubtitles_en.vtt<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">srclang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>en<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>track</span> <span data-sanitized-class="token attr-name">kind</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>subtitles<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">src</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>sampleSubtitles_de.vtt<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">srclang</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>de<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line"></span><br><span data-sanitized-class="highlight-line">  Your browser does not support the video tag.</span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>video</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p data-sanitized-class="highlight">
<strong>Note:</strong> The default controls cannot be styled with CSS.
</p>
<h2 data-sanitized-id="5-autocomplete">5. autocomplete</h2>
<p>The <a href="https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#attr-fe-autocomplete"><code>autocomplete</code> attribute</a> <strong>enables the browser to complete form values automatically</strong> and can be applied to the <code>&lt;form&gt;</code>, <code>&lt;input&gt;</code>, <code>&lt;select&gt;</code>, and <code>&lt;textarea&gt;</code> elements.</p>
<h3 data-sanitized-id="why-use-autocomplete?">Why use <code>autocomplete</code>?</h3>
<p>With the <code>autocomplete</code> attribute present, a browser can suggest a previous user's input for a form field's value, meaning a user does not have to remember or manually enter personal information. This results in significant benefits for individuals with cognitive impairments, reduced mobility, attention deficits, low vision, or blindness. Some people may find reduced manual input in forms particularly beneficial by lowering the need for extensive typing.</p>
<p>The <code>autocomplete</code> attribute improves the usability and efficiency of an HTML form for users by informing browsers and assistive technologies about the intended use of a specific form field. Screen readers use these autocomplete values to understand the nature of input fields and help users enter information more efficiently. For example, if a user's browser has saved information for a particular field (such as their name or e-mail), the screen reader will prompt them to fill in that information automatically.</p>
<h3 data-sanitized-id="how-to-use-autocomplete">How to use <code>autocomplete</code></h3>
<p>You can assign different values to <code>autocomplete</code>.</p>
<p>If you choose <code>off</code>, the browser cannot automatically enter or select a value for this field.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>E-Mail<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">autocomplete</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>off<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span></code></pre>
<p data-sanitized-class="highlight">
<strong>Note:</strong> Many password managers may still prompt the user to save information or use previously stored data.
</p>
<p>If you choose <code>on</code>, the browser will complete the input automatically. However, since no further information concerning the expected data is given, the browser may use its own judgement.</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>form</span> <span data-sanitized-class="token attr-name">action</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>/<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">autocomplete</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>on<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>firstname<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>First Name<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>text<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>firstname<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>firstname<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line"></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>lastname<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Last Name<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>text<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>lastname<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>lastname<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line"></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Email<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>form</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p>The optimal solution is to specify distinct values for the required data by opting for the corresponding value from a <a href="https://www.w3.org/TR/WCAG21/#input-purposes">list of available input purposes</a>.</p>
<p>Your form could look like this:</p>
<pre data-sanitized-class="language-html"><code data-sanitized-class="language-html"><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>form</span> <span data-sanitized-class="token attr-name">action</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>/<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">autocomplete</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>on<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>firstName<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>First Name<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">autocomplete</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>given-name<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>firstName<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>firstName<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>text<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  </span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>lastName<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Last Name<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">autocomplete</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>family-name<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>lastName<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>lastName<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>text<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  </span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>label</span> <span data-sanitized-class="token attr-name">for</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span><span data-sanitized-class="token punctuation">&gt;</span></span>Email<span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>label</span><span data-sanitized-class="token punctuation">&gt;</span></span></span><br><span data-sanitized-class="highlight-line">  <span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;</span>input</span> <span data-sanitized-class="token attr-name">autocomplete</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">name</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">id</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token attr-name">type</span><span data-sanitized-class="token attr-value"><span data-sanitized-class="token punctuation attr-equals">=</span><span data-sanitized-class="token punctuation">"</span>email<span data-sanitized-class="token punctuation">"</span></span> <span data-sanitized-class="token punctuation">/&gt;</span></span></span><br><span data-sanitized-class="highlight-line"><span data-sanitized-class="token tag"><span data-sanitized-class="token tag"><span data-sanitized-class="token punctuation">&lt;/</span>form</span><span data-sanitized-class="token punctuation">&gt;</span></span></span></code></pre>
<p data-sanitized-class="highlight">
<strong>Note:</strong> The absence or incorrect use of an <code>autocomplete</code> attribute in an input field can cause inconvenience to users, particularly those with cognitive disabilities. Browsers cannot suggest accurate values, making it difficult for individuals to provide the expected input. Please make sure you choose the correct value.
</p>
<h2 data-sanitized-id="conclusion">Conclusion</h2>
<p>I hope the exploration of these attributes has sparked your interest. When you embark on your next project, remember the significance of prioritising usability, accessibility and simplicity.</p>


guid: https://htmhell.dev/adventcalendar/2023/5/
title: The Hellish History of HTML: An incomplete and personal account
author: ;Manuel Matuzovic
link: https://htmhell.dev/adventcalendar/2023/5/
hash: � �w��~ r�{j NK�
attributes: {"enclosures":[]}
content:
by Jason Cranford Teague<br><figure data-sanitized-class="u-mb">
<a href="https://htmhell.dev/adventcalendar/2023/5/images/HellishHistory.png">
<img src="https://htmhell.dev/adventcalendar/2023/5/images/HellishHistory.png" alt="This timeline shows the adaptation of each version of HTML, along with other key technology releases, phases in the Web design &amp; development, Web eras, and the dominant browser at the time." width="740" height="438">
</a>
<figcaption>Timeline of HTML from 1990–2024</figcaption>
</figure>
<p data-sanitized-class="highlight">
<strong>Note:</strong> HTML standards are developed first in browsers, so the version might have already became the de facto standard before the official standard document is released.
</p>
<p>The story so far:</p>
<p>In the beginning Tim Berners-Lee created the World Wide Web. This has made a lot of people <a href="https://lareviewofbooks.org/article/the-internet-is-a-crime-against-humanity/" title="The Internet Is a Crime Against Humanity">very angry</a> and — putting all of humanity in constant contact with each other — <a href="https://veniceoarsman.com/11932/opinion/essay-how-the-internet-destroyed-the-human-experience/" title="How The Internet Destroyed The Human Experience">been widely</a> <a href="https://www.theatlantic.com/technology/archive/2021/06/the-internet-is-a-collective-hallucination/619320/" title="The Internet Is Rotting">regarded as</a> <a href="https://medium.com/@jamesbridle/something-is-wrong-on-the-internet-c39c471271d2" title="Something is wrong on the internet">a bad</a> <a href="https://www.vanityfair.com/news/2018/07/the-man-who-created-the-world-wide-web-has-some-regrets" title="“I Was Devastated”: Tim Berners-Lee, the Man Who Created the World Wide Web, Has Some Regrets">move</a>.</p>
<p>This would be called the <em>Hypertext Transfer Protocol</em>, but you probably see it every day as <code>http://</code>. Although initially intended as a way to share scientific papers, Berners-Lee quickly realized it would do a lot more than that:</p>
<blockquote>
I designed it for a social effect — to help people work together — and not as a technical toy.
</blockquote>
<p>His vision has led us to today, where the Web is now the predominant information platform for the planet Earth, and the language he created to create documents, HTML, is used by billions.</p>
<p>Unlike other systems at the time that were making use of the growth of home computers and modems — like <a href="https://en.wikipedia.org/wiki/AOL">AOL</a> and <a href="https://en.wikipedia.org/wiki/CompuServe">Compuserve</a> — Berners-Lee provided the World Wide Web as a free and open standard:</p>
<blockquote>
The web is for everyone. It should be accessible to people with disabilities and be available in whatever language they speak. 
</blockquote>
<figure data-sanitized-class="u-mb">
<img src="https://htmhell.dev/adventcalendar/2023/5/images/Tim_tshirt.png" alt="Tim Burners-Lee and Vinton Cerf stand next to each other wearing black t-shirts with white lettering. Tim’s shirt says “I didn’t invent the internet” and Vinton’s shirt reads “I did not event the Web”" loading="lazy" width="530" height="480">
<figcaption>
<p>Tim Berners-Lee (left) did <strong>not</strong> invent the Internet. He did invent the Web and HTML. Vinton G Cerf (right) did <strong>not</strong> invent the Web. He and Robert Kahn did invent the Internet.</p>
</figcaption>
</figure>
<h2 data-sanitized-id="html-the-early-years-(1990---1991)">HTML: The Early Years (1990 – 1991)</h2>
<p>In 1990, the Web was at best an “alpha” version of what it would become. Until then, computer networks were generally limited to a local area (LAN) and required a good deal of computer knowledge to use, much less create. There were other contenders at the time that allowed wider area networks (WAN) that could communicate with computers around a country or around the World. Most notable of these was the Internet. My favorite (and arguably the most popular) way of traveling the Internet in the early 1990s was <a href="https://en.wikipedia.org/wiki/Gopher_(protocol)">Gopher</a>. Gopher was (and technically still is) a way to retrieve documents from the Internet stored on a server. However, it quickly fell out of favor after HTTP arrived on the scene. This is, probably for the best. Can you imagine if we were all surfing the Gopher today?</p>
<p>What HTTP had going for it was HTML. Every single web page ever created uses the <em>Hypertext Markup Language</em>. Tim based HTML off of <em><a href="https://en.wikipedia.org/wiki/Standard_Generalized_Markup_Language">Standard Generalized Markup Language (SGML)</a></em> which was already in common use at CERN, mostly by just adding the <code>&lt;a&gt;</code> tag for hypertext links.</p>
<p>In the early 1990s, HTML was pretty limited. In fact it didn’t include  <code>&lt;img&gt;</code> tags, and its design capabilities were sub-par even when compared to even the clunky word processors of the day. So web pages of the time at best looked like poorly formatted text files.</p>
<p>What the Web did offer, though, was the seemingly magical ability to click a link on one web page and instantly (ok, quickly) load another web page created by anyone else located anywhere in the world.</p>
<p>In 1990, this was big stuff!</p>
<h2 data-sanitized-id='html"1"-and-html+-the-wild-frontier-(1991---1995)'>HTML“1” &amp; HTML+: The Wild Frontier (1991 – 1995)</h2>
<p>The first public mention of HTML was an informal CERN document in 1991, listing just 18 tags. There are now around 140. The Web in those early years was just an academic curiosity used by Universities… well, used by tech geeks at a few universities. The HTML tags were so informal that they were really defined more by whatever the person who wrote the Web browser code wanted them to be and they could (and did) just make up their own.</p>
<p>Although there were a few web browsers available, there was one that rose to popularity amongst the tech geeks of the time.  <em><a href="https://en.wikipedia.org/wiki/Mosaic_(web_browser)">Mosaic</a></em>, released in 1993, was co-created by a (at the time) idealistic and starry eyed student by the name of <a href="https://en.wikipedia.org/wiki/Marc_Andreessen">Marc Andreessen</a> atttending the University of Illinois at Urburna-Champaign. Marc decided it was such a good idea that, in 1994, he released <em><a href="https://en.wikipedia.org/wiki/Netscape_Navigator">Netscape Navigator</a></em> as a consumer product. Free from academic constrains, Netscape could add features and functionality to appeal to non-academics as well as add whatever tags they felt appropriate. These tags were referred to as HTML+.</p>
<p>This freedom led to a lot of growth in what the Web could do with tags for greater styling (remember, CSS is still several years off) and structure. Added during this time were tags we take for granted like tables, forms, and inline images.</p>
<p>This freedom also led to a few really terrible tags, for example Netscape introduced <code>&lt;blink&gt;</code>, which, in case you can’t tell, caused the enclosed content to blink on and off. No, you couldn’t control the speed. No, you couldn’t make it stop. The text just blinked on and off… on and off… on and off… and would keep doing that until you left the page.</p>
<figure data-sanitized-class="u-mb">
<picture>
	<source media="(prefers-reduced-motion: no-preference)">
	<img src="https://htmhell.dev/adventcalendar/2023/5/images/blink_main.jpg" alt="The blink tag blinks on and off, on and off, on and off… to infinity and beyond. Probably best if you can’t see it. Its’ really annoying." loading="lazy">
</picture>
<figcaption>WHATEVER YOU DO, DON’T BLINK!</figcaption>
</figure>
<p>Unfortunately, this also meant that if you used tags recognized by one browser there was no guarantee they would be implemented or even included by another. This lead to problems when your web page didn’t display the way you intended. Fortunately, HTML is a very forgiving language, and if the browser didn’t recognize a tag it was supposed to just ignore it completely but should still display the content as if there was no tag. Still, imagine if you had set up a data table for your web page. If the user’s browser didn’t recognize the <code>&lt;table&gt;</code> tag, all that information becomes an unintelligible mess.</p>
<p>Another problem on the horizon was that there was no guarantee that the different browser makers would agree on what each tag specifically did or even what to call them. One browser might display a <code>&lt;p&gt;</code> with the first line indented, while another could require you to add an extra <code>&lt;p&gt;</code> or  <code>&lt;br&gt;&lt;br&gt;</code> to add a space between paragraphs. Interestingly, what we did at the time out of necessity — no indent and an extra space between paragraphs — has became the editorial norm we still use today.</p>
<p>There was obviously a need for some kind of standard for HTML if the Web was going to grow out of its infancy.</p>
<p>In 1994, Tim started The World Wide Web Consortium, at first to create standards for HTML that could be agreed upon and used by anyone creating browsers and websites.</p>
<p>Netscape would rule the early web until Microsoft, seeing the threat to their desktop market, ignited the bitter struggle known to legend as <em>The Browser Wars</em>.</p>
<figure data-sanitized-class="u-mb">
<img src="https://htmhell.dev/adventcalendar/2023/5/images/NSvIE.jpg" alt="Netscape VS Microsoft Internet explorer buttons next to each other. The Netscape button reads “Netscape Now! 3.0” with the Netscape Logo. The IE button reads “Free Microsoft Internet Explorer” With the IE logo." loading="lazy">
<figcaption>These buttons were ubiquitous in the 1990s World Wide Web, often accompanied a message reading “Built for Netscape” or “Built for Internet Explorer”</figcaption>
</figure>
<div data-sanitized-class="highlight u-mb">
<h3 data-sanitized-id="my-own-private-htmhell-slammin-ps">My Own Private HTMHell: Slammin’ Ps</h3>
<p>I was first introduced to the Web and HTML in the fall of 1994, when I started at Rensselaer Polytechnic Institute (RPI) for my Masters in Communication. I’d heard some rumbling about this new fangled Web thingy earlier in the year while working computer tech at another University, but I had my Gopher and that was good enough for me.</p>
<p>At RPI, I fell in with a rowdy crowd of Communication PhD and Master students, one of whom had co-authored the first book about the web, <em><a href="https://www.amazon.com/exec/obidos/ASIN/0672306174">The World Wide Web Unleashed</a></em>.</p>
<p><a href="https://www.linkedin.com/in/johndecember/">John December</a>, for that was his name, had also started what was, arguably, the first online only magazine, called <em><a href="https://johndecember.com/cmc/mag/archive/">Computer Mediated Communications</a></em>, a few months before I got there. There was no real design to it beyond the basic HTML, so he brought me in to be the first designer.</p>
<p>At the time, being able to display images was still pretty new, and background images could only be applied to the web pages entire background and had to tile vertically and horizontally without stopping. Good enough to add a bit of color or texture, but not much else.</p>
<p>To create web pages required you to code them using a command line prompt in a terminal. I still get hives at the very mention of using a command line, but I was determined to learn HTML. So, despite my trepidation, I tucked into command line editing.</p>
<p>To code and write the pages you had to go back and forth between code mode and text mode. In code mode you could add tags but not text. In text mode you could add text but any code would be treated as text. Switching between these modes could take up to 30 seconds to load each time.</p>
<p>If you forgot to add the <code>&lt;p&gt;</code> in code mode or thoughtlessly added them in text mode (which happened painfully often), you had to go back, delete all of the <code>&lt;p&gt;</code>s in text mode and reinsert them in code mode which could take a lot of time as the system lumbered between modes — you added the tag and then switched back to go to the next spot to add the next tag. I spent many hours doing that at first.</p>
<p>To speed production, we would set up our basic web page code structure and then simply add a bunch of <code>&lt;p&gt;</code> tags (there wasn’t a close paragraph tag at the time) and start writing an article, skipping over the next <code>&lt;p&gt;</code> to start a new paragraph.</p>
<p>We referred to this process as “Slammin’ P’s”.</p>
</div>
<h2 data-sanitized-id="html2-the-standards-rise-(1995---1997)">HTML2: The Standards Rise (1995 – 1997)</h2>
<p>Realizing that all of these different browsers needed to agree on exactly what tags were available in HTML and at least a rough guideline on how they should present the content, Tim started <a href="https://www.w3.org/" title="The World Wide Web Consortium">The World Wide Web Consortium</a>.</p>
<p>The W3C would become the recognized body for setting Web technology standards, including (amongst many others) HTML, CSS, SVG, XML, and Web Accessibility. The one exception to this is JavaScript, which is controlled by <a href="https://www.ecma-international.org/">ECMA International</a>.</p>
<p>HTML2 attempted to make order out of the chaos that HTML had quickly  become. Although not introducing any particularly exciting features, it codified the existing features to give everyone a level playing field to work on.</p>
<p>I just want to reiterate that at this point in the Web, CSS (which today does the lion’s share of actual visual design on the Web) and JavaScript (which does the lion’s share of interactivity on the web) were both new technologies that even if implemented had a lot of cross-browser inconsistencies. JavaScript caught on fast, but it would be the turn of the century before CSS would become the default way to add a visual layer to HTML code.</p>
<div data-sanitized-class="highlight u-mb">
<h3 data-sanitized-id="my-own-private-htmhell-color-me-unimpressed">My Own Private HTMHell: Color Me unimpressed</h3>
<p>In the 1990s most color monitors were limited to just 216 colors. Let me make this clear, since we live in a world of monitors that can display millions of colors: A single pixel on the overwhelming majority of computer monitors in the 1990s could only display one of 216 colors at a time. This limited the color palette for web designs to what became referred to as the <em>Web Safe Colors</em>, which, today, we call just <a href="https://en.wikipedia.org/wiki/Web_colors">Web Colors</a>. Although other colors could be simulated by placing two different colors together and letting the viewers eye blend them (like a <a href="https://en.wikipedia.org/wiki/Pointillism">pointillism</a> painting), the effect was never satisfying, and drop shadows and gradients were never smooth. <a href="https://archive.org/details/coloringwebgraph0000wein/mode/2up">Entire books</a> were devoted to using Browser Safe Colors most effectively. I even kept a poster on my office</p>
<p>When I would try to sneak a drop shadow into a design (I had a high-end monitor that could display thousands of colors!), my creative director would (metaphorically) slap me on the wrist and tell me to cut it out.</p>
<figure data-sanitized-class="u-mb">
<img src="https://htmhell.dev/adventcalendar/2023/5/images/WebmasterPalette.jpg" alt="Poster of the 216-Color Webmaster’s Palette with RGB values" loading="lazy">
<figcaption>In my day we only had 216 colors to design with and we liked it!</figcaption>
</figure>
</div>
<h2 data-sanitized-id="html32-short-and-sweet-(1997)">HTML3.2: Short and Sweet (1997)</h2>
<p>Although it didn’t last long as a standard, HTML3, brought the standard fully under the control of the W3C.  Despite working on it for almost two years, HTML 3.0 was never released as a standard. According to the W3C, the difference between HTML 2.0 and HTML 3.0 was, “so large that standardization and deployment of the whole proposal proved unwieldy” and was eventually dropped.</p>
<p>Instead of starting from scratch, the W3C worked to refine the 2.0 standard, releasing  HTML 3.2 (code named <em>wilbur</em> for reasons no one is sure of) in January of 1997 HTML4 was released a little less than twelve months later in December.</p>
<p>By 1997, the Web was beginning to take off as a commercial platform. HTML 3.2 standardized features we take for granted today like tables, text flow around images, and inputs. Crucially, HTML 3.2 was backwards compatible with HTML 2, meaning that older Web pages could be displayed, something that still holds true to today.</p>
<p>Although some tags were <a href="https://en.wikipedia.org/wiki/Deprecation?wprov=sfti1#">depreciated</a> — most notably <code>&lt;blink&gt;</code> and <code>&lt;marque&gt;</code> to the celebration of many — it secured HTML’s future as a stable standard that could be relied on. In fact, the one serious attempt to move away from the principle of backwards compatibility ended in time waisting disgrace. But we’ll talk more about XHTML2 in a bit.</p>
<p>Although short lived, the <a href="https://www.w3.org/press-releases/1997/html32-rec/">HTML 3.2 recommendation</a> set the stage for keeping the standard free and open, so that no one company could monopolize or privatize it. Instead, the W3C the took public input and invited experts and company representatives  to help guide its development and approve the final recommendations, another principal the W3C still follows.</p>
<p>Sometime around 1996–97, the Web began to quickly gain in popularity as more and more people saw its usefulness. There were publications moving online making news instant, online stores that could undersell their brick-and-mortar competitors (thanks Amazon), and much improved web search capabilities (thanks Google). Oh, and there were apparently some photographs of scantily clad men and women… ummm… exercising together.</p>
<p>This was a time known as the Dot-com Boom.</p>
<div data-sanitized-class="highlight u-mb">
<h3 data-sanitized-id="my-own-private-htmhell-on-the-table">My Own Private HTMHell: On the Table</h3>
<p>Before CSS introduced the float element, and long before the flex and grid standards, we used tables to create web page layouts. The <code>&lt;table&gt;</code> tag was not conceived for this purpose (it was for presenting tabular information and data) but web designers quickly realized they could repurpose it to create columns and rows for <a href="https://en.wikipedia.org/wiki/Grid_(graphic_design)">design grids.</a> This allowed us a lot more flexibility and spurred a lot of design innovation.</p>
<p>But tables were far from perfect. Although you could turn off the table cell borders and collapse gaps between them, many people didn’t. So Web design from that time is often typified by clunky ridged gray borders and pixelated background images.</p>
</div>
<h2 data-sanitized-id="html4-boom-goes-the-web-(1997---2014)">HTML4: Boom Goes the Web (1997 – 2014)</h2>
<p>It was the best of times, it was the worst of times. The HTML4 standard was released and JavaScript and CSS, despite browser inconsistencies, were being adapted to create better designs for a more dynamic Web.</p>
<p>HTML4 improved tables and forms, introduced support for CSS and JavaScript, allowed better accessibility features and internationalization, you could embed external content with the <code>&lt;iframe&gt;</code> tag (the much maligned <code>&lt;frame&gt;</code> tag was deprecated), and plugins like Flash could be added using the <code>&lt;embed&gt;</code> tag.</p>
<p>A gold rush began, with start-up companies springing up like weeds. This period was know as the Dot-Com Boom. Everybody and their brother had an idea for how to make money out of the Web, and they all needed someone who knew HTML. Jobs quickly flourished for Information Architects, Visual Designers, and Programmers. The good times of free gourmet meals at work, video arcade break rooms, and corporate parties on cruise lines seemed like it would never end.</p>
<p>At the same time, two different Web browsers were vying for the hearts and minds of the Web viewing public. This was a time known to Web lore as “<a href="https://en.wikipedia.org/wiki/Browser_wars" title="The Browser Wars">The Browser Wars</a>” as Microsoft Internet Explorer and Netscape Navigator battled it out.  Maybe we should really call this The First Browser War or The Great Browser War or Browser War I or maybe even WWWWAR I. As we shall see, another browser war was less than ten years away and another one may be going on now.</p>
<p>The Dot-com boom turned out to be a bubble and the bubble began to burst in late 2000. I will not dwell too long on this sad chapter in Web history, only to say that it had a profound effect on the burgeoning Web professionals of the day. Many were unceremoniously dumped from their first job  — their dream job  — crying over stock options that went from millions to pennies on the dollar all while watching the entire industry seemed to be imploding around them.</p>
<p>That said, the Dot-com bust cleared the way for a rethinking of how the web would work. Just a few years later, there was an explosion of new sites that were finally realizing the promise of the Web. Although Web 2.0 is often thought of as starting in the early 2000s, the power that drove it had been around since the mid-1990s when Cascading Style Sheets and Javascript (the duo technologies often referred to together at the time as DHTML or Dynamic HTML) became standards adopted by Web browsers.</p>
<p>What had held the development back was the technical debt of how the web was started and inconsistencies in how browsers displayed the Core Web Standards (HTML, CSS, JavaScript). What would look great in Netscape might fall apart in Internet Explorer, so we developed a lot of work arounds and <a href="https://en.wikipedia.org/wiki/Kludge">kludges</a> or just limited designs for cross-browser compatibility.</p>
<p>For better or worse, by 2001 Microsoft came out on top, and Web designers could begin to rely on a consistent, if lack luster in its standards adherence, Web browser to create for. Web2.0 could now actually take off.</p>
<p>After that, things simmered down for a bit in a period I refer to as “Pax Web”, and Flash, although not an open standard like HTML, was quickly adapted to bring more video and interactive content to the Web. Flash was easy enough for designers to use without having to learn a lot of code, and allowed for dynamic and highly interactive designs, something we struggle to recreate on the Web even today <a href="https://www.howtogeek.com/805605/this-is-how-steve-jobs-killed-adobe-flash/">after Flash’s demise at the hands of the Apple iPhone</a>.</p>
<div data-sanitized-class="highlight u-mb">
<h3 data-sanitized-id="my-own-htmhell-internet-explorer-6">My Own HTMHell: Internet Explorer 6</h3>
<p>Ask any Web designer or developer working in the 2000s what it was that woke them up screaming in the middle of the night in panic and rage, the answer will likely be Internet Explorer 6. Launched in 2001 and preinstalled on every Windows computer as the default browser, it became <em>the Internet</em> to many people.</p>
<p>While talking to a class of fourth graders in the mid-2000s about the Web, I wanted to use their class computer to show some examples and asked the teacher if they had a Web browser. Her response was, “No, we just have the Internet,” and pointed to the Internet Explorer Icon.</p>
<p>Despite being the window to the web for billions (at its height, IE6 had something  like around 80% of the world browser market), it had spotty, incomplete, inconsistent and buggy Web standards implementations. This made the job of creating Web sites difficult at the best of times, especially if you wanted to stick to standards and maintain cross-browser support.</p>
<p>I spent many, many, MANY hours during that time adjusting and re-adjusting my HTML, CSS, and JavaScript, using arcane kludges — like playing a sadistic whack-a-mole where whacking one guarantees another five popping up —  and often just having to settle for the lowest common denominator to get what I wanted to display the way I wanted it to display the same way on every browser.</p>
</div>
<h2 data-sanitized-id="xhtml1-strict-machine-(2000---2008)">XHTML1: Strict Machine (2000 – 2008)</h2>
<p>Although HTML4 solidified the Web, there were those who thought it too loose-goose to be considered a real solution for data mark up. HTML was very forgiving. It didn’t <em>require</em> that you follow proper syntax and anything the browser didn’t understand it would just throw out. That is browsers <em>except</em> IE6, of course, which would just choke (more HTMHell).</p>
<p>In 2000, the W3C released <a href="https://www.w3.org/TR/xhtml1/" title="XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition)">XHTML 1.0</a> as a reformulation of HTML using XML syntax. Extensible Markup Language (XML) had been around for a while as a markup language used to structure and organize data. The W3C decided to establish a competing standard to provide easier integration with XML code. XHTML aimed to combine the best of HTML and XML, providing stricter rules for markup and enabling interoperability with XML-based technologies.</p>
<p>XHTML was stricter than simple HTML, meaning that syntax couldn’t be fudged, but creating a page using XHTML was compatible with and little different than creating one in HTML4. However, it did force developers to be more semantic, consistent, and accessible with their code, something still important today.</p>
<h2 data-sanitized-id="xhtml2-look-back-in-anger-(doa)">XHTML2: Look Back in Anger (DOA)</h2>
<p>The idea behind XHTML2 was bold, brave, and completely ineffective. Rather than simply evolve HTML and XHTML, <a href="https://www.w3.org/TR/2010/NOTE-xhtml2-20101216/" title="XHTML™ 2.0">XHTML2</a> sought to start over and create a stricter and more modular version the Web markup language. It was heavily based on XML and eliminated all presentation elements in favor of CSS. The idea was to force the complete separation of structure from presentation thus allowing for the code to be device independent.</p>
<p>There was just one problem: XHTML2 would not be backwards compatible.</p>
<p>HTML had, since its beginning, been backwards compatible, meaning that older Web pages could display even in browsers using newer HTML standards. XHTML2 would have quite literally broken the Web. In addition, the new language was far more complex, and stricter enforcement of syntax and structure made creating Web pages much more difficult without a programming background.</p>
<p>Development of<a href="https://hsivonen.fi/xhtml2-html5-q-and-a/" title="An Unofficial Q&amp;A about the Discontinuation of the XHTML2 WG"> XHTML2 was eventually abandoned in 2009</a> as interest in a more promising  standard was catching on.</p>
<h2 data-sanitized-id="html5-a-new-hope-(2014---now)">HTML5: A New Hope (2014 – Now)</h2>
<figure data-sanitized-class="u-mb">
<img src="https://htmhell.dev/adventcalendar/2023/5/images/front-end-stack.png" alt=" Logos for HTML5 (red), JS (yellow), and CSS3 (blue)" loading="lazy">
<figcaption>Core Web Technologies: HTML 5, JavaScript, and CSS 3</figcaption>
</figure>

<p>Although not officially released as a standard until 2014, HTML5 had already become the de facto standard in Web browsers starting around 2010. Coupled with a developing CSS3 and a mature JavaScript, the Web was poised for a new phase. The rise of mobile devices being used to surf the Web meant that we had to start thinking more and more about how Web pages would look on small screens. Rather than creating a site for desktop/laptop and one for mobile, CSS could be used to change the layout of the HTML in response to the screen size. This became most commonly known as <em><a href="https://alistapart.com/article/responsive-web-design/" title="Responsive Web Design
by Ethan Marcotte">Responsive Web Design</a></em>.</p>
<p>HTML5 made an accessible and semantic Web its priority. Semantic HTML code simply means that it is well structured and that every item on the page has a clearly defined purpose. So <a href="https://dev.opera.com/articles/new-structural-elements-in-html5/" title="New Structural Elements in HTML5">structural HTML tags</a> such as <code>&lt;nav&gt;</code>, <code>&lt;section&gt;</code>, <code>article</code>, and <code>&lt;figure&gt;</code> were added. New input types were added as well, so that the data could be more easily differentiated (if only developers would use them properly!).</p>
<p>While XHTML2 was discontinued, the idea of combining HTML and XML syntax continued to be explored leading to XHTML5. Like XHTML1, XHTML5 allows developers to write web pages using the stricter rules of XML while still benefiting from the features and compatibility of HTML5.</p>
<p>Because Internet Explorer was languishing without updating to modern standards (IE 7 improvements came too little too late in 2006 and took years to replace IE6), Chrome was at the forefront of implementing HTML5 and CSS3. The upstart browser quickly caught on and rapidly grew in popularity.</p>
<p>The beginning of the end of WWWWar II came in <a href="https://gs.statcounter.com/browser-market-share/desktop/worldwide/#monthly-200901-201612" title="Desktop Browser Market Share Worldwide
Jan 2009 - Dec 2016">2012 when Chrome unseated Internet Explorer as the top browser world wide</a> and IE never recovered after that. Although IE was still a major player for several years, by 2015, seeing that Internet Explorer was too tech debt laden to compete, Microsoft launched a completely new Web browser: Edge. Internet Explorer would finally be discontinued in 2022, but there are signs that Microsoft is gearing up for another fight.</p>
<figure data-sanitized-class="u-mb">
<img src="https://htmhell.dev/adventcalendar/2023/5/images/StatCounter-browser-ww-monthly-200901-201612.png" alt="Chart from StatCounter showing the desktop browser market share worldwide from January 2009 through December 2016. Google Chrome surpasses Microsoft Internet Explorer market share in mid-2012. " loading="lazy">
<figcaption>In 2012, Google Chrome passed Microsoft Internet Explorer as the most popular web browser in the world. The WWW would never be the same.</figcaption>
</figure>
<p>Two other huge advances in Web design happened around 2009. First was that CSS Level 3 had become a de facto — if not finalized — standard. This revised and expanded styling standard was quickly adapted by browser makers eager to push their browsers as the most standard compliant. Almost as importantly, and long overdue, was the ability to use downloadable font files to use virtually any typeface in Web designs. This push, led the way by Safari was quickly introduced into Chrome and finally a few years later begrudgingly by Internet Explorer.</p>
<p>Additionally, since Apple refused to support Flash on its extremely popular iPhone, Flash quickly fell out of favor as a way of delivering video and interactive content. Fortunately, HTML5 included new (and old) standards for embedding video, and <a href="https://en.wikipedia.org/wiki/SVG">Scalable Vector Graphics (SVG)</a>, an old Web standard many had all but given up on, saw a resurgence in popularity to replace Flash’s vector capabilities.</p>
<p>The explosion of typography on the web, the new capabilities in CSS3, and the resuscitation of SVG led to a renaissance in Web design in the 2010s. Designers, having to move away from Flash so that they could support mobile devices, were now also expected to create designs that would work just as well on devices from a few hundred to a few thousand pixels wide. In effect, we were looking at an entirely new Web by the end of the 2000s.</p>
<p>When an evolutionary change like this happened in the early-2000s, we called it Web 2.0. I would argue that the period from roughly 2009 – 2016 should be referred to as Web 3.0. Despite the terms Web3 and Web 3.0 being in common usage today to describe a decentralization of the Web (the term was first used sometime in the mid to late 2010s, but is still little more than a marketing buzzword) we missed an entire phase where the Web evolved off the desktop and became mobile, leading to a need to radically rethink our approach to Web design as “<a href="https://bradfrost.com/blog/post/mobile-first-responsive-web-design/">Mobile First</a>” strategies developed.</p>
<h2 data-sanitized-id="the-future-of-html?">The Future of HTML?</h2>
<p>So, where are we now? Are we already living in a Web3 world already? Maybe.</p>
<p>We hear a lot of discussion about the <a href="https://3327.io/user-decentric-design-in-web3/" title="USER (DE)CENTRIC DESIGN IN WEB3">next web phase being “Web 3”</a> but many others are <a href="https://web3isgoinggreat.com/" title="Web3 is Going Just Great">less than thrilled by the prospect</a>. There is little doubt that user’s control of their data has eroded to the point of non-existence in the last thirty years. At the heart of Web3 (beyond cryptocurrency and blockchain) is a desire to bring back a decentralized Web with greater individual user control. While this is unlikely to affect the HTML standard, it may radically alter the way we use it.</p>
<p>To complicate matters further, we appear to be <a href="https://interestingengineering.com/culture/is-microsoft-launching-a-new-browser-war" title="Is Microsoft Launching a New Browser War?">heading into a new Browser War</a>, with Microsoft recently launching several shots across the bow of Google—oh, excuse me, I mean “Alphabet”—leveraging Windows OS to push users towards a newly revitalized Edge Browser and away from Chrome.</p>
<p>Despite all of this, HTML5 is not going anywhere soon. Unlike previous versions, HTML5 is modular. That is, rather than rereleasing the entire standard as a single document, new capabilities are added to the existing standard. Older standards are rarely, if ever, changed.</p>
<p>That said, the W3Cs <a href="https://open-ui.org/" title="Open UI">Open UI Group</a> is addressing a long standing problem with HTML: user interface control appearance and behavior.</p>
<blockquote>Most complex web projects today need far more than what HTML5 form and UI controls provide.</blockquote>
<p>Currently, web developers will use a lot of CSS and Javascript to add capabilities that would be better handled by built in HTML components, but there are only limited ways to style these elements and none for how they function without resorting to scripting. Although still in its infancy, Open UIs goal is to web developers more control to style and extend web UI components without changing the underlying HTML code.</p>
<p>In a little more than 30 years, the Web has gone from being a Wild Frontier to becoming an essential utility humanity relies on to communicate, and HTML will always be the core of the Web.</p>


