<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Toronto JS TL;DR]]></title><description><![CDATA[An infrequent newsletter from the Toronto Javascript Community.]]></description><link>https://tldr.torontojs.com</link><image><url>https://substackcdn.com/image/fetch/$s_!ZKlU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png</url><title>Toronto JS TL;DR</title><link>https://tldr.torontojs.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 17 Apr 2026 10:33:32 GMT</lastBuildDate><atom:link href="https://tldr.torontojs.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Toronto JS]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[evert@torontojs.com]]></webMaster><itunes:owner><itunes:email><![CDATA[evert@torontojs.com]]></itunes:email><itunes:name><![CDATA[Evert Pot]]></itunes:name></itunes:owner><itunes:author><![CDATA[Evert Pot]]></itunes:author><googleplay:owner><![CDATA[evert@torontojs.com]]></googleplay:owner><googleplay:email><![CDATA[evert@torontojs.com]]></googleplay:email><googleplay:author><![CDATA[Evert Pot]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Toronto JS TL;DR Issue #13]]></title><description><![CDATA[&#127870; This year, wrapped &#127870;]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-13</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-13</guid><dc:creator><![CDATA[Evert Pot]]></dc:creator><pubDate>Fri, 22 Dec 2023 01:05:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><em>&#8220;I love deadlines. I love the whooshing noise they make as they go by.&#8221; &#8213; Douglas Adams</em></p><p>Well, we&#8217;ve reached the last issue of TL;DR of the year, and the <em>first</em> that&#8217;s a week late! Oops! But we made it to 13 issues. Not bad! Perhaps we can double it next year. </p><p>Also, wow&#8230; what a wild year for our industry.</p><p>After years of growth, we&#8217;ve had the highest layoffs since the dotcom bubble in 2001. Many of which due to macro-economic trends, but of course also many companies taking advantage the downturn to get rid of people at a time everyone else does.</p><p>Many of us have felt the effects, either by being laid off and trying to find land the next gig or in our network. I wasn&#8217;t spared myself! Certainly a humbling experience. <br><br>So here&#8217;s hoping for a better year! We&#8217;re not out of the woods yet.</p><h2>Upcoming events</h2><p>We have one last <a href="https://guild.host/events/js-code-club-online-gdr9gl">JS Code Club: Online</a> this year, happening this Saturday, the 23rd. Do you have a fun holiday project? This might be a great place to kick it off.</p><p>In the next year our first event will be a new <a href="https://guild.host/events/torontojs-code-buddy-kq8vnp">Code Buddy</a> event on Discord. Code Buddy is like a book club, but instead of books the group will study tutorials and courses together. This is happening January 16th. Read all about it on <a href="https://en.wikipedia.org/wiki/Metropolitan_Opera#Origins">Guild</a>.</p><h2>The year in JS - Marco Campos</h2><p>2023 went so fast, it seems like January 1st was yesterday! Lots of things happened on the web recently, so here are some reviews and highlights:</p><p>Let's start with this very thorough review from Kevin Powell on the new things happening in CSS in 2023:</p><div id="youtube2-LGRogkgRrOs" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;LGRogkgRrOs&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/LGRogkgRrOs?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Safari (and in turn every browser on iOS) are getting even better support for PWAs, making them <a href="https://firt.dev/notes/pwa-ios/">almost usable in iOS</a>.</p><p>Here is a overview from WWDC 2023: <a href="https://developer.apple.com/videos/play/wwdc2023/10120">https://developer.apple.com/videos/play/wwdc2023/10120</a></p><p>On JS land, here is another video with a bit of irony on the changes in Javascript this year:</p><div id="youtube2-ANCm3oG7htM" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;ANCm3oG7htM&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/ANCm3oG7htM?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>On a more serious note, for all of you working with node and typescript: update to the latest LTS (version 20), set <code>type: module</code>  on your <code>package.json</code>, and set <code>module: nodenext</code> and <code>target: es2022</code> on your <code>tsconfig.json</code>.</p><p>This will ensure you will have native ES modules running on node with the least amount of compilation from typescript. It will save you a lot of headaches with edge cases and quirks on module resolution and async code&#8230; ask me how I know! &#128579;</p><h2>Happy holidays!</h2><p>Hope you all get the rest you deserve and an excellent 2024, from Drey, Marco &amp; Evert and all of the Toronto JS volunteer team!</p>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #12]]></title><description><![CDATA[On the 10th day of JS, Brendan Eich gave to me...]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-12</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-12</guid><dc:creator><![CDATA[Marco Campos]]></dc:creator><pubDate>Thu, 30 Nov 2023 14:31:44 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It is that time of the year again where our <a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ">favorite songs get stuck in our heads</a>&#8230;</p><p>It is also a time of fun challenges and quick projects, so brush up your IDE and terminal and jump in on the advent calendars below!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><ul><li><p>Advent of code - <a href="https://adventofcode.com/">https://adventofcode.com/</a></p></li><li><p>Advent of Javascript - <a href="https://www.adventofjs.com/">https://www.adventofjs.com/</a></p></li><li><p>Advent of CSS - <a href="https://www.adventofcss.com/">https://www.adventofcss.com/</a></p></li></ul><p>Happy holidays and happy coding! </p><h2>Upcoming Toronto JS Events</h2><ul><li><p><strong>December 6th, Wednesday</strong>: <a href="https://guild.host/events/js-tech-talk-inperson-wku7de">JS Tech Talk [In-Person]: Simplify Complex Apps, React and React native Code Share, Apollo Caching</a></p></li><li><p><strong>December Code Club</strong>: watch out for the date ;)</p></li><li><p><strong>January 24th, Thursday</strong>: <a href="https://guild.host/events/js-tech-talk-online-7nqoea">JS Tech Talk [ Online ]: What would the browser do? Simpler mental models with Remix</a></p></li></ul><h2>Community Showcase</h2><p>Shout out to Michal Svatos&#8217; new version of their Star Trek Pi-hole theme! &#128406;</p><p>You can find out more on the LinkedIn post: <a href="https://www.linkedin.com/posts/activity-7132826003256573952-eTTR/">https://www.linkedin.com/posts/activity-7132826003256573952-eTTR/</a></p><p>If you need a public domain music to <s>give back to all those call centers and scams</s> put someone on hold, you are in luck with Gregory's PBX hold music:<a href="https://5kb.us/music-on-hold.mp3"> https://5kb.us/music-on-hold.mp3</a></p><p>On a nice community effort to debug <a href="https://egghead.io/courses/build-a-full-stack-blog-with-astro-7ffcf9ec?af=5zzhqq">Lazar's astro course</a> (you should check it out!) we found out about some quirks with <code>better-sqlite3</code> and the <code>sqlite3://</code> protocol on some node versions. <a href="https://www.linkedin.com/posts/elizabethmccready_buildinginpublic-developercommunity-debugging-activity-7134288395194810368-Moo2/">More on Liz&#8217; post on LinkedIn</a>.</p><p>Still on a similar topic, check out Lazar's videos on neovim:</p><div id="youtube2-8w5zuiUFK3g" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;8w5zuiUFK3g&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/8w5zuiUFK3g?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div id="youtube2-Ul_WPhS2bis" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;Ul_WPhS2bis&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/Ul_WPhS2bis?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #11]]></title><description><![CDATA[We are starting this issue off by honouring Jen Chan! As the year comes to an end, Jen will be stepping down as Executive Director for TorontoJS. Jen has been a trailblazer with helping lead the organization through the pandemic years and overseeing a large part of growth in the community.]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-11</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-11</guid><dc:creator><![CDATA[drey moreau]]></dc:creator><pubDate>Wed, 15 Nov 2023 16:11:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!1YE4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are starting this issue off by honouring <a href="https://www.jenchan.biz/">Jen Chan</a>! As the year comes to an end, Jen will be stepping down as Executive Director for TorontoJS. Jen has been a trailblazer with helping lead the organization through the pandemic years and overseeing a large part of growth in the community.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!1YE4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!1YE4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1YE4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1YE4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1YE4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!1YE4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg" width="800" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:167410,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!1YE4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!1YE4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!1YE4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!1YE4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7f819de0-057b-4626-8421-5193bfb9fd8b_800x800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><p>Through figuring how to bring events online, returning to in-person events, mentoring new event organizers, onboarding volunteers, organizing a donation drive for TorontoJS self-sustainability, expanding the spirit of life, light and love which is the core of our community, Jen will be missed! We wish her all the best in future endeavours. If you see Jen at an upcoming event then please thank her for the time, effort and contribution she has put into our community!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><h2>Upcoming Toronto JS Events</h2><ul><li><p><a href="https://guild.host/events/toronto-js-social-in-27ewzx">Toronto JS Social [In-Person]</a> - TONIGHT!!!! </p></li><li><p><strong>November 19th at 2:00pm</strong> - <a href="https://guild.host/events/code-club-online-november-czcet9">Toronto JS Code Club [Online]</a></p></li><li><p><strong>November 26nd</strong> <strong>at 1:00pm </strong>- <a href="https://guild.host/events/js-social-openttd-online-a76bbz">JS Social: OpenTTD [Online</a>] - Love public transit? Play a 30 year old game together, online!</p></li><li><p><strong>December 6th at 6pm -</strong> <a href="https://guild.host/events/js-tech-talk-inperson-wku7de">JS Tech Talk [In-Person]: Simplify Complex Apps, React and React native Code Share, Apollo Caching</a></p></li></ul><p></p><h3>Other events happening in Toronto</h3><ul><li><p><strong>November 28th at 7:00pm</strong> - <a href="https://www.meetup.com/civic-tech-toronto/events/297055772/rsvp/">Civic hacknight #421 - AMA with the City of Toronto's Deputy CTO [In-Person]</a></p></li><li><p><strong>November 30th at 6:00pm</strong> - <a href="https://www.meetup.com/techtank-to/events/297145894/">You've deployed... But how is your app performing? [In person]</a></p></li><li><p><strong>November 30th at 6:00pm</strong> - <a href="https://www.meetup.com/brainstation-toronto-tech-skills-and-careers/events/296080107/">Toronto Tech Social [In-Person hosted by BrainStation]</a></p></li></ul><p></p><h2>Industry News</h2><p>Next.js introduces a trial run of <a href="https://nextjs.org/learn/dashboard-app/partial-prerendering">partial rendering</a>! This an optional option leading to possible feature updates in coming time. With most web applications built today, we are given the choice of static or dynamic rendering. There is also routes that has both static and dynamic content though! For example, a social media feed, static rendering for posts but dynamic rendering for likes.</p><p>Introducing partial rendering! <em><strong>&#8220;Partial Prerendering is an experimental feature that allows you to render a route with a static loading shell, while keeping some parts dynamic. In other words, you can isolate the dynamic parts of a route.&#8221; </strong></em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9Zxx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9Zxx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 424w, https://substackcdn.com/image/fetch/$s_!9Zxx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 848w, https://substackcdn.com/image/fetch/$s_!9Zxx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 1272w, https://substackcdn.com/image/fetch/$s_!9Zxx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9Zxx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif" width="1456" height="575" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:575,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:28815,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/avif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9Zxx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 424w, https://substackcdn.com/image/fetch/$s_!9Zxx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 848w, https://substackcdn.com/image/fetch/$s_!9Zxx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 1272w, https://substackcdn.com/image/fetch/$s_!9Zxx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0a3e0b79-d6b9-475c-99e8-e5ce1f898d39.avif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><p><em>                                                                                                                  <a href="https://nextjs.org/learn/dashboard-app/partial-prerendering">Source of Image</a></em></p><p>What does this mean and how can it benefit developers? When the static shell route is served, the load time is fast, ignoring the dynamic content that is on the page. The shell then leaves gaps for the dynamic content that will load asynchronously! <em>COOL!</em> Then the async gaps are loaded which reduces the load time of the overall page! <em>How NEAT!!!!!</em></p><p>Here are some steps to help you step up your personal project using <a href="https://nextjs.org/docs/app/api-reference/next-config-js/partial-prerendering">Partial Rendering</a>!</p><h2>Support Toronto JS</h2><p>If you happen to have a few bucks laying around or would just want to help our community to grow and maintain itself, head to our <a href="https://opencollective.com/torontojs">Open Collective page</a> and make a contribution!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption"></p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #10]]></title><description><![CDATA[&#127875; Next.js vs Remix. Fight! &#127875;]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-10</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-10</guid><dc:creator><![CDATA[Evert Pot]]></dc:creator><pubDate>Wed, 01 Nov 2023 15:11:17 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vodP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Next.js vs Remix</h2><p>In the category of bulky backend frameworks that solve problems React introduced, new problems are afoot.</p><p>Kent C. Dodds, contributor to the <a href="https://remix.run">Remix</a> framework wrote an article titled <a href="https://www.epicweb.dev/why-i-wont-use-nextjs">&#8220;Why I Won't Use Next.js&#8221;</a>, which, if you&#8217;re a user of either <a href="https://nextjs.org/">Next.js</a> or React is worth reading. In my opinion it reflects shifting opinion against Next and React pretty well, including the growing influence of Vercel, a company that&#8217;s paid its way into the Frontend developer&#8217;s mindshare.<br><br>Is Next.js or React going away? Of course not! But it&#8217;s a glimpse in the shifting mindset highly popular technology stacks go through as they first win everyone&#8217;s hearts, but eventually gain a growing resentment which makes room for new upstarts that don&#8217;t have all their predecessor&#8217;s baggage. And so the wheel turns.</p><h2>Upcoming Toronto JS Events</h2><ul><li><p><strong>Thursday, November 9th</strong> - <a href="https://guild.host/events/react-graphs-realtime-lcaib9">React, Graphs, Realtime, Embeds - JS Tech Talk Night</a> - in person!</p></li><li><p><strong>Wednesday, November 15th - </strong><a href="https://guild.host/events/toronto-js-social-in-27ewzx">Toronto JS Social</a> - in person!</p></li><li><p><strong>November 26nd</strong> - <a href="https://guild.host/events/js-social-openttd-online-a76bbz">JS Social: OpenTTD online</a> - Love public transit? Play a 30 year old game together, online! </p></li></ul><h3>Other events happening in Toronto</h3><p>All happening on <strong>November 7th</strong>, make your pick!</p><ul><li><p><a href="https://www.meetup.com/maple-code/events/296263668/">DSA Technical Interview Prep</a></p></li><li><p><a href="https://www.meetup.com/techtank-to/events/296957170/">Cracking the A11y Code: Web Accessibility Basics for Beginners</a></p></li><li><p><a href="https://www.meetup.com/civic-tech-toronto/events/297055454/">Civic hacknight #418 - Human-centred housing initiatives at the City</a></p></li></ul><p>Also <strong>most Saturdays</strong>, <a href="https://www.meetup.com/maple-code/events/297084554/">Mob Programming</a>. Next one <strong>November 4th</strong>!</p><h2>Community Showcase</h2><p>Hacktoberfest has wrapped up! While we&#8217;re all sad about the end of the hacktoberfest t-shirts, this didn&#8217;t stop people from contributing to open source projects anyway! <br><br>Special thanks to <a href="https://www.linkedin.com/in/ibraheemdev/?originalSubdomain=ca">Ibrahim Ahmed</a> and <a href="https://kieran.ca">Kieran Huggins</a> from upgrading the <a href="https://torontojs.com/">Toronto JS website</a> from the React 15 gutter all the way to React 18, and making the most amazing 404 page ever.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vodP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vodP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 424w, https://substackcdn.com/image/fetch/$s_!vodP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 848w, https://substackcdn.com/image/fetch/$s_!vodP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 1272w, https://substackcdn.com/image/fetch/$s_!vodP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vodP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp" width="720" height="378" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:378,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:19928,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vodP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 424w, https://substackcdn.com/image/fetch/$s_!vodP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 848w, https://substackcdn.com/image/fetch/$s_!vodP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 1272w, https://substackcdn.com/image/fetch/$s_!vodP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06af6b9a-b422-4132-8f22-2948814d4361_720x378.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><p><a href="https://www.linkedin.com/in/ahmadreza-shamimi/?originalSubdomain=ca">Ahmadreza Shamimi</a> writes about <a href="https://ahmadrezashamimi.medium.com/advancing-color-coding-with-oklch-a-leap-beyond-rgba-2577d821aba0">Advancing Color Coding with OKLCH: A Leap Beyond RGBA</a>. The new way to describe colors with the catchiest name!<br><br><a href="https://www.linkedin.com/in/jackytea/">Jacky Tea</a> has been working on a mock stock market MERN application and is looking for contributors. Read more about it on his <a href="https://torontojs.slack.com/archives/C06HNH45U/p1697917393203799">Slack message</a> or check out <a href="https://github.com/JackyTea/Mock-Stocks-Collaborative">the code on github.</a></p><p><a href="https://www.jenchan.biz/">Jen Chan</a> *tried* to launch a <a href="https://torontojs.slack.com/archives/C060NFVLW15">new channel on software architecture</a>, but due to unclear requirements this has turned into a place to discuss the design of buildings. If you want to help get that train back on the rails, or discuss your favourite <a href="https://en.wikipedia.org/wiki/McMansion">McMansion</a>, join!</p><h2>Support Toronto JS</h2><p>If you happen to have a few bucks laying around or would just want to help our community to grow and maintain itself, head to our <a href="https://opencollective.com/torontojs">Open Collective page</a> and make a contribution!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://opencollective.com/torontojs&quot;,&quot;text&quot;:&quot;Donate to TorontoJS&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://opencollective.com/torontojs"><span>Donate to TorontoJS</span></a></p>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #9]]></title><description><![CDATA[Security treats so you won't get tricked]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-9</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-9</guid><dc:creator><![CDATA[Marco Campos]]></dc:creator><pubDate>Thu, 19 Oct 2023 15:16:51 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hey folks, let's talk security because the season is spooky!</p><p>Starting with the basics: <a href="https://haveibeenpwned.com/">have I been pwned</a> is a website where you can check if your email has shown up in data breaches.</p><p>If you want a video explanation on the site and why it is important, here it is:</p><div id="youtube2-OnpQNLrzoW0" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;OnpQNLrzoW0&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/OnpQNLrzoW0?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>If you want to get geeky and dive into the rabbit hole on the breach that started everything and the logic behind it on a funny way, this XKCD comic is for you (<a href="https://explainxkcd.com/wiki/index.php/1286:_Encryptic">here is the explained page</a>, because I'm not so smart to understand the pun without someone explaining it to me):</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fT4O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fT4O!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 424w, https://substackcdn.com/image/fetch/$s_!fT4O!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 848w, https://substackcdn.com/image/fetch/$s_!fT4O!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 1272w, https://substackcdn.com/image/fetch/$s_!fT4O!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fT4O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png" width="473" height="541" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/abf43eda-2828-4061-bee1-e47374f7464c_473x541.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:541,&quot;width&quot;:473,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Comic from XKCD about the Adobe data breach with a pun saying it is \&quot;the greatest crossword puzzle in the history of the world\&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Comic from XKCD about the Adobe data breach with a pun saying it is &quot;the greatest crossword puzzle in the history of the world&quot;" title="Comic from XKCD about the Adobe data breach with a pun saying it is &quot;the greatest crossword puzzle in the history of the world&quot;" srcset="https://substackcdn.com/image/fetch/$s_!fT4O!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 424w, https://substackcdn.com/image/fetch/$s_!fT4O!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 848w, https://substackcdn.com/image/fetch/$s_!fT4O!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 1272w, https://substackcdn.com/image/fetch/$s_!fT4O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fabf43eda-2828-4061-bee1-e47374f7464c_473x541.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a><figcaption class="image-caption">Link to the explanation of this comic: <a href="https://explainxkcd.com/wiki/index.php/1286:_Encryptic">https://explainxkcd.com/wiki/index.php/1286:_Encryptic</a></figcaption></figure></div><p>Now to the next point: use a password manager, but don't pick anyone as they are <a href="https://www.youtube.com/watch?v=WfHnF66L-Os">also susceptible to attacks and breaches</a>.</p><p>If you want to understand how a password manager works, here is a video explaining that:</p><div id="youtube2-w68BBPDAWr8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;w68BBPDAWr8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/w68BBPDAWr8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Now for the last bit of news on security: <a href="https://blog.google/technology/safety-security/passkeys-default-google-accounts/">Google is making passkeys the default for new accounts</a>.</p><p>And &#8220;what are passkeys&#8221; you might ask, in short, they are a more secure way to confirm identity than passwords, as they rely on public key cryptography.</p><p>Here are some links about passkeys:</p><ul><li><p>Explanation for non tech people: <a href="https://www.youtube.com/watch?v=VuzddtQZeT8">https://www.youtube.com/watch?v=VuzddtQZeT8</a></p></li><li><p>More technical docs from Google: <a href="https://developers.google.com/identity/passkeys/">https://developers.google.com/identity/passkeys/</a></p></li><li><p>How to implement passkeys in login forms: <a href="https://www.youtube.com/watch?v=_qSCYiU_Yr4">https://www.youtube.com/watch?v=_qSCYiU_Yr4</a></p></li></ul><p>Now for something completely different&#8230;</p><h2>Past Events</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rXua!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rXua!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rXua!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rXua!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rXua!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rXua!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg" width="1456" height="1096" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1096,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:619519,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rXua!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rXua!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rXua!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rXua!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F317fe584-0a70-4ac7-8f50-67c9a76b427c_4080x3072.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><p>The first <a href="https://guild.host/events/js-website-club-1-3bi8wo">Website Club</a> was a huge success! The event brought together people to share their experiences on building and improving their own websites. And also working with the community to fix bugs.</p><h2>Upcoming Events</h2><p><strong>October 21st</strong> - <a href="https://guild.host/events/a-walk-in-the-park-c5d468">A Walk in the Park</a></p><p><strong>October 22nd</strong> - <a href="https://guild.host/events/js-code-club-october-jaxjra">JS Code Club - October 2023</a></p><p><strong>October 23rd</strong> - <a href="https://www.meetup.com/techtank-to/events/296408305/">Large Language Models: What Are They And How Do We Use Them?</a></p><p><strong>November 26th</strong> - <a href="https://guild.host/events/js-social-openttd-online-a76bbz">JS Social: OpenTTD Online</a></p><h2>Community Showcase</h2><p>A shout to Daniel Stoianov's mom who is making some cute &#8220;pair programming buddies&#8221;.</p><p>She lives in Ukraine and since February 2022, she has been doing volunteer work daily related to supporting veterans. She also volunteers in a kitchen that prepares food for the army. Before this, she made toys that were sold at charity auctions. She gifts many of these toys to soldiers, who use them as talismans in the trenches.</p><div class="image-gallery-embed" data-attrs="{&quot;gallery&quot;:{&quot;images&quot;:[{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e5c5bf8-48f2-4d09-9f11-6a80adeebdcb_720x1280.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc729c9e-a8e2-48fd-b403-211ae6c623d7_1280x797.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ab1706b-2236-4c34-879d-41df5abe821b_1280x797.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4f66484e-5af7-4efe-ab06-02613629e8f1_1280x797.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f333c673-0621-45a1-aa66-6c116fca9a44_1280x960.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/065ec7cd-42e7-4bd1-8222-8f5f0b221245_1280x797.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3ba819dc-5114-4672-89b6-6d44e79d4684_1280x797.jpeg&quot;},{&quot;type&quot;:&quot;image/jpeg&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1f6d0927-20ec-4691-aabf-9af1dccc9123_960x1280.jpeg&quot;}],&quot;caption&quot;:&quot;&quot;,&quot;alt&quot;:&quot;&quot;,&quot;staticGalleryImage&quot;:{&quot;type&quot;:&quot;image/png&quot;,&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ca604ba4-6339-43ea-a302-63ba5ac4358e_1456x1700.png&quot;}},&quot;isEditorNode&quot;:true}"></div><p>To show your support for Daniel and his mom follow this slack thread: <a href="https://torontojs.slack.com/archives/C06HNH45U/p1697067738850839">https://torontojs.slack.com/archives/C06HNH45U/p1697067738850839</a></p><p></p><p>Now, a shout out to a full past week with lots of people showing their projects!</p><ul><li><p>Gregory shared a server where people could interact and control their robot car.</p></li><li><p>Evert Pot published a <a href="https://evertpot.com/on-80-percent-jobs/">blog post reflecting on the job market and working 80% of the regular work schedule</a>.</p></li><li><p>Adan published a <a href="https://mckerlie.com/posts/migrating-your-blog-from-hugo-to-astro">blog post on migrating a blog from Hugo to Astro</a>.</p></li><li><p>Divish shared their <a href="https://github.com/divishram/Youtube-downloader">personal project</a> for a Youtube downloader written in react, node.js and socket.io.</p></li><li><p>Liz shared a <a href="https://github.com/GingerKiwi/302-gingerkiwi-redirect-vercel">project</a> for a custom 302 redirect page for Vercel.</p></li></ul><h2>Support Toronto JS</h2><p>If you happen to have a few bucks laying around or would just want to help our community to grow and maintain itself, head to our <a href="https://opencollective.com/torontojs">Open Collective page</a> and make a contribution!</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://opencollective.com/torontojs&quot;,&quot;text&quot;:&quot;Donate to TorontoJS&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://opencollective.com/torontojs"><span>Donate to TorontoJS</span></a></p>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #8]]></title><description><![CDATA[October is here!!!!!]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-8</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-8</guid><dc:creator><![CDATA[drey moreau]]></dc:creator><pubDate>Wed, 04 Oct 2023 15:11:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>October is here!!!!! Which means that the leaves are changing, there is a mix of crisp air in the morning and more blue sky days but this also means that <a href="https://hacktoberfest.com/">Hacktober</a>!!! is among us!!! which they are celebrating the 10th year of existence!!!!</p><p>What is Hacktober? It is a yearly event to encourage open source contributions where be it through code or no code issues! <a href="https://hacktoberfest.com/">Registration</a> is open now with lots of projects awaiting for help! </p><h2>Upcoming Events</h2><p><strong>(TONIGHT)</strong> - <strong><a href="https://www.meetup.com/torontojs/events/296156813/">JS Workshop for Women Developers</a> [In Person] - (at Capacity).</strong> This workshop covers topics like writing documentation and public speaking!</p><p><strong>(October 12th from 2pm - 6pm)</strong> - We are introducing a new type of event called <a href="https://guild.host/events/js-website-club-1-3bi8wo">JS Website Club</a>! Bring your laptop, write a blog post. We can also help figuring out tech stacks, buying domains or figure out hosting. Any experience level can join, because WordPress is still a thing too!</p><p><strong>(October 22nd from 4pm - 6pm) - </strong>The monthly online Code Club will be happening! <a href="https://guild.host/events/js-code-club-october-jaxjra">Register here</a> to attend! These monthly events are to bring your projects that you have been thinking of building, you are currently working on or it gives an opportunity to collaborate with fellow folks in tech on the projects they are working on! All levels of knowledge welcomed :) </p><p><strong>Other events happening in Toronto:</strong></p><ul><li><p><strong>October 10</strong> - Civic Hacknight hosted by Civic Tech Toronto. For the month of October the focus will be on housing in the city of Toronto. This will both be an <a href="https://www.meetup.com/civic-tech-toronto/events/296488681/">in-person</a> and <a href="https://www.meetup.com/civic-tech-toronto/events/296488674/">virtual</a> event</p></li><li><p><strong>October 10</strong> - Syntax hosted at Mascot Brewery. A laid-back <a href="https://www.eventbrite.com/e/toronto-syntax-meetup-tickets-727684041557?aff=oddtdtcreator">event</a> for all web developers and coding enthusiasts!</p></li><li><p><strong>October 19</strong> - Rangle.io is hosting their ReactTO fall edition <a href="https://www.meetup.com/reactto/events/295659692/">event</a>! The event will focus on the how to use state management for some of the state management libraries out there</p></li><li><p><strong>October 23 </strong>- Tech Tank is back with another <a href="https://www.meetup.com/techtank-to/events/296408305/">event</a> hosted at the Cohere office. Large Language Models: What Are They And How Do We Use Them?</p></li></ul><h2>Community Showcase</h2><p>Canadian startup Polyseam is building [<a href="https://cndi.run/gh?utm_content=torontojs_newsletter&amp;utm_campaign=torontojs_newsletter&amp;utm_source=tldr.torontojs.com&amp;utm_medium=newsletter&amp;utm_id=5090">CNDI</a>]. It&#8217;s a free and open source tool for self-hosting popular open source projects and they&#8217;re doing it using <a href="https://deno.com/">Deno</a> (a Next-generation JavaScript Runtime)!</p><p>For a complete demo of the tool, check out this [<a href="https://www.youtube.com/watch?v=k-Ua0nXhVVQ">walkthrough</a>]!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tdjC!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tdjC!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 424w, https://substackcdn.com/image/fetch/$s_!tdjC!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 848w, https://substackcdn.com/image/fetch/$s_!tdjC!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 1272w, https://substackcdn.com/image/fetch/$s_!tdjC!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tdjC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:124876,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!tdjC!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 424w, https://substackcdn.com/image/fetch/$s_!tdjC!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 848w, https://substackcdn.com/image/fetch/$s_!tdjC!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 1272w, https://substackcdn.com/image/fetch/$s_!tdjC!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8ca4233-a47a-4ccb-9613-5dbe1df60c7c_1200x800.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><p>Mike Vautour has released his second video of documenting building a personal <a href="https://www.youtube.com/watch?v=_-EfN2-jdA0">portfolio project</a> using Payload CMS in public. For this video he says that &#8220;there are a couple sections that require an unknown number of elements so we will use array type collections to handle those inputs&#8221;.</p><h2>Industry News</h2><p>New changes have landed for Remix v2 and Next.js 13.5!!!</p><p>First off! What is <a href="https://remix.run/">Remix</a>? Remix is a full stack web framework that lets you focus on the user interface. It is built on the Web Fetch API (instead of Node), that allows the code to be run anywhere. </p><p>With adjustments to the minimum version support for Remix v2, it now officially requires React 18 as well as Node 18 or later to use. There has been added changes with removals of future flags from the remix.config.js file, as well as lots of changes/API removals that had a lot of deprecation warnings in Remix v1. For all the changes with v2, they can be viewed <a href="https://github.com/remix-run/remix/releases/tag/remix%402.0.0">here</a>!</p><p>Now Next.js 13.5. Developers have been complaining about the slowness of the Next.js dev server lately, so these changes with 13.5 will increase that! 22% faster startup, 29% faster HMR (fast refresh), 40% less memory usage, optimized package imports and <strong>over 438 bugs patched! wow! </strong>Read about all the changes with Next.js <a href="https://nextjs.org/blog/next-13-5">here</a>!</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #7]]></title><description><![CDATA[Bi-weekly weather updates delivered to your inbox]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-7</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-7</guid><dc:creator><![CDATA[Evert Pot]]></dc:creator><pubDate>Wed, 20 Sep 2023 17:34:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sz8u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We made it all the way to issue 7, and dang is it hard to come up with an introduction for these that keeps it fresh. In fact, it&#8217;s so difficult that every issue before this one had a mention of the weather! So, without further ado:</p><p>So the next 14 days we can expect temperatures up to 20 degrees during the day, with minimal precipitation. It&#8217;s starting to be time for sweaters and light jackets again. I know that the idea of summer being over and winter is scary, but we&#8217;re about to enter the prettiest time of the year with the best fashion so it&#8217;s not all bad!</p><h2>Upcoming events</h2><p>The next in person JS Tech Talk is on <strong>September 27th. </strong>There will be 3 talks:</p><ul><li><p><strong>Shruti Vellanki</strong> - Integrating Accessibility into Your Developer Workflow.</p></li><li><p><strong>Nik LeBlanc</strong>, "DORA at DevCycle: Tracking engineering metrics that matter".</p></li><li><p><strong>Rob Jackiewicz</strong>, "Fast iteration cycles, how to get feedback and build the right thing".</p></li></ul><p>So whether you&#8217;re interested in accessibility, expressing the value your team creates through a discrete set of metrics or simply not being slow, there&#8217;s something for you here! Last but not least, our very own <strong><a href="https://jenchan.biz/">Jen Chan</a></strong> is sponsoring pizza for this event!<br><br>The number of seats for these events is usually limited, so you&#8217;ll want to <a href="https://guild.host/events/js-tech-talk-in-person-yqdf9q">RSVP</a> soon to ensure you have a spot!</p><div><hr></div><p>A few weeks from now, on <strong>October 4th</strong> (&#128008; World animal day! &#128021;) we&#8217;re also hosting: <a href="https://guild.host/events/code-communicate-a-workshop-vx61iq">Code &amp; Communicate: a workshop for women developers</a>. The workshop covers topics like writing documentation and public speaking. Read all the details and RSVP on <a href="https://guild.host/events/code-communicate-a-workshop-vx61iq">guild</a>. Seats will will up quick!</p><p>The next Code Club will be on <strong>October 21st</strong>. Keep an eye out on this newsletter or Slack for updates.</p><div><hr></div><p>Other events in Toronto:</p><ul><li><p><strong>September 28th</strong> - React + Native is hosting <a href="https://www.meetup.com/toronto-react-native/events/295575218/">Loading...A deep dive into website and web app performance</a>. React and Performance rarely appear in the same sentence, so it will be interesting to see how these worlds collide!</p></li><li><p><strong>September 29th</strong> -  <a href="https://queertech.org/events/56021">&#8220;Cracking the Silicon Valley North Ceiling: Tackling Challenges Faced by Women and Non-Binary People in Tech&#8221;</a>. An in-person event hosted by <a href="https://queertech.org/">Queertech </a>for queer woman and non-binary people.</p></li><li><p><strong>November 9 and 10</strong> The <a href="https://www.vuetoronto.com/">VueConf Toronto</a>, a Vue Conference in Toronto is happening, in Toronto! </p></li></ul><h2>Community showcase</h2><p>In this section we show projects and articles by <em>YOU</em>! Have something to share or want to show off? Share it on the <a href="https://torontojs.slack.com/archives/C06HNH45U">#show-n-tell slack channel</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sz8u!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sz8u!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 424w, https://substackcdn.com/image/fetch/$s_!sz8u!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 848w, https://substackcdn.com/image/fetch/$s_!sz8u!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 1272w, https://substackcdn.com/image/fetch/$s_!sz8u!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sz8u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png" width="227" height="225.51147540983607" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:303,&quot;width&quot;:305,&quot;resizeWidth&quot;:227,&quot;bytes&quot;:45525,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sz8u!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 424w, https://substackcdn.com/image/fetch/$s_!sz8u!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 848w, https://substackcdn.com/image/fetch/$s_!sz8u!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 1272w, https://substackcdn.com/image/fetch/$s_!sz8u!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1b741209-ff09-47f2-9c17-822d26c8e978_305x303.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a><figcaption class="image-caption">Party Paint</figcaption></figure></div><p><a href="https://danntoliver.com/">Dann</a> has been working with his <strong>7 year old</strong> on Party Paint! Is this the youngest member of the Toronto JS community? Check it out here: <a href="https://inatree.net/partypaint/">https://inatree.net/partypaint/</a></p><p><a href="https://www.linkedin.com/in/michael-vautour-a1617ab2/?originalSubdomain=ca">Mike Vautour</a> built an open-source tool to make it easy for his non-technical clients to share information bout setting up DNS records. Check out the <a href="https://github.com/igMike-V/dns-builder">Github Project</a>, or a <a href="https://youtu.be/JBbR-F57McE">demo video</a>.</p><p><a href="https://gingerkiwi.blog/">Elizabeth McCready</a> is back and has started a new series about <a href="https://gingerkiwi.blog/blog/2023-09-10-dsa-javascript-arrays-01/">data structures and algoritms in Javascript</a>. Give us a way to subscribe Liz!</p><h2>Updates from the last TJS Code Club</h2><p><a href="https://guild.host/events/js-code-club-online-294792793">Last Saturday</a> there was another Code Club! There were 5 separate streams on Discord, and here&#8217;s some of the accomplishments from that day:</p><ul><li><p><a href="https://www.linkedin.com/in/charlesbridgersiv/">Charles</a> brought his comic book web app for feedback. We noticed that there were some comics with covers containing explicit content. So we worked on a solution to filter comics by rating.</p></li><li><p><a href="https://www.linkedin.com/in/madcampos/">Marco</a> stayed in the main room exploring a simple reverse proxy with <a href="https://hono.dev/">Hono</a>. It went pretty fast and took the first half of the event. On the later half there were general discussions and a showcase of other projects that Marco has worked on.</p></li><li><p><a href="https://www.linkedin.com/in/aun--raza/">Aun</a> worked on his <a href="https://nextjs.org/">next.js</a> note taking app to solve a problem with data persistency.</p></li><li><p><a href="https://gingerkiwi.blog/">Elizabeth</a> was having issues loading a font file on her react project with <a href="https://chakra-ui.com/">chakra.js</a>. We figured out how to load custom fonts with Chakra.js and that that the font file needed to be in the&nbsp;<code>/public</code>&nbsp;directory.</p></li><li><p><a href="https://www.linkedin.com/in/mattjacksondev/">Matt</a> had a TDD session in one room to discuss how to better integrate tests in a code base.</p></li></ul><h2>Feature Flag Management Built for Developers.</h2><p><em>(sponsored) </em>DevCycle is a Toronto-based feature flag platform that makes it easy to create and manage flags at scale, maintain an organized codebase, and stay on top of tech debt.&nbsp;<a href="https://devcycle.com/?utm_source=toronto-js&amp;utm_medium=em&amp;utm_campaign=newsletter-toronto-js-september-2023">Sign up for free today.</a></p><h2>Terminal Tip</h2><p>If you&#8217;re on a recent mac, you&#8217;re probably already using ZSH instead of the previous default Bash. ZSH has a lot of nice features that make it easier to use, but they&#8217;re not always easy to find. My tip today is to take a look at <a href="https://ohmyz.sh/">Oh My Zsh!</a> Installing it will instantly yassify your command prompt and for example show you your current git branch, but it also comes with dozens of plugins that are easily turned on.<br><br>Works on Mac, Linux, FreeBSD, GNU/Herd, AIX, OpenSolaris or Windows (with WSL).</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! </p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #6]]></title><description><![CDATA[And now for something completely different...]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-6</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-6</guid><dc:creator><![CDATA[Marco Campos]]></dc:creator><pubDate>Wed, 06 Sep 2023 15:11:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ZKlU!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I hope we have an amazing and long fall ahead of us, full of amber leaves all over, because as the meme says: winter is coming!</p><p>There is <a href="https://www.blogto.com/city/2023/08/winter-weather-forecast/">news about a possible whiteout coming this winter</a>, so let&#8217;s enjoy all the heat and news before everything freezes up!</p><h2>Upcoming events</h2><p>Happening <strong>tomorrow (September 7th)</strong> <a href="https://www.trytoast.ca/">Toast </a>will be hosting an Online Hiring Event focused on female and non-binary people. Registration for the event is <a href="https://www.eventbrite.ca/e/septembersurge-online-hiring-event-for-women-software-developers-tickets-704965018347?aff=oddtdtcreator">here</a>.</p><p>On <strong>September 16th</strong> at <strong>4 PM EST</strong> we will have the next <a href="https://guild.host/events/js-code-club-online-294792793">Toronto JS Code Club</a>. It will be an online mob programming event, so please bring your projects!</p><p>Our next Toronto JS in-person event will happen on <strong>September 27th</strong> (a.k.a. last Wednesday of the month), so stay tuned on the <strong>#events</strong> channel on slack for more information.</p><p><strong>September 29th</strong> also brings us <a href="https://queertech.org/events/56021">&#8220;Cracking the Silicon Valley North Ceiling: Tackling Challenges Faced by Women and Non-Binary People in Tech&#8221;</a>. An in-person event hosted by <a href="https://queertech.org/">Queertech </a>for queer woman and non-binary people.</p><p>On <strong>November 9 and 10</strong> it will be the next <a href="https://www.vuetoronto.com/">VueConf Toronto</a>.</p><h2>Happening in the community</h2><p>September is bringing us some changes in the organization.</p><p>Danny Kim has stepped down from his position as Code Club organizer. Taking his place will be Dale Karp and Marco Campos who will be hosting the events. Thank you, Danny, for gently introducing more people to open-source contributions and I hope we can keep the Code Club vibrant and fun.</p><p>Sherry Yang has also stepped down as Community Organizer and the host for online socials. We hope you can bring as much energy to the Calgary tech community as you brought to Toronto.</p><p>On more news from the community, here is a shout out to Chensheng Xu for sharing a tool that helps checking the <a href="https://colour-a11y.vercel.app/">color contrast for Tailwind colors</a> (code <a href="https://github.com/samrobbins85/colour-a11y-for-tailwind">here</a>).</p><p>And a new video from Lazar Nikolov on <a href="https://www.youtube.com/watch?v=CHKUFsnABw4">CSS Container Queries</a> to check out.</p><h2>Newsletters recommendation</h2><p>This issue let&#8217;s bring some recommendations of <em>moar</em> news for you to follow:</p><ul><li><p><a href="https://frontendfoc.us/">Frontend Focus</a> is a web frontend focused (pun intended) newsletter with news about HTML, CSS and JS.</p></li><li><p><a href="https://javascriptweekly.com/">Javascript Weekly</a> is all things JS and news about the language and tools.</p></li><li><p>Focused on the node side of things there is <a href="https://nodeweekly.com/">Node Weekly</a>.</p></li><li><p>Deno also has its own newsletter, <a href="https://deno.news/">Deno News</a>.</p></li><li><p><a href="https://webtoolsweekly.com/">Web Tools Weekly</a> has a list of new tools to discover every week.</p></li><li><p>If you like weird or different stories about tech in general <a href="https://www.bizzarodevs.com/">Bizarro Devs</a> is an interesting newsletter.</p></li></ul><h2>Jobs</h2><p>If you have an open Job Posting relevant to the members of our community, please send an email to <a href="mailto:events@torontojs.com">events@torontojs.com</a>.</p><p>We&#8217;d love to link it in our next newsletter at no cost.</p>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #5]]></title><description><![CDATA[How quickly time goes by!! We hope you had a great summer, filled with joy, expansion, learning more along your coding journey, as well as meeting new people through in person or online events. It was definitely an interesting summer with the up and down weathers. With fall on the way, the changing of weathers and leaves on the trees, this doesn't mean an end to in person or virtual events!]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-5</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-5</guid><dc:creator><![CDATA[drey moreau]]></dc:creator><pubDate>Wed, 23 Aug 2023 15:11:10 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>How quickly time goes by!! We hope you had a great summer, filled with joy, expansion, learning more along your coding journey, as well as meeting new people through in person or online events. It was definitely an interesting summer with the up and down weathers. With fall on the way, the changing of weathers and leaves on the trees, this doesn't mean an end to in person or virtual events! </p><p>If you have anything to share for the next edition, find us on the <a href="https://torontojs.slack.com/">Toronto JS slack</a>.</p><h1>Contest!!!!</h1><p>Daniel Stoianov from TorontoJS has built <a href="https://frontend-safe-quiz.vercel.app/">a frontend quiz</a>!! so cool!! The first three people that solve the quiz by end of Friday at 11:59pm EST will receive a prize! Message Daniel on slack to verify the correct code!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mOC0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mOC0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 424w, https://substackcdn.com/image/fetch/$s_!mOC0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 848w, https://substackcdn.com/image/fetch/$s_!mOC0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!mOC0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mOC0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png" width="1456" height="676" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:676,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:162383,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mOC0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 424w, https://substackcdn.com/image/fetch/$s_!mOC0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 848w, https://substackcdn.com/image/fetch/$s_!mOC0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 1272w, https://substackcdn.com/image/fetch/$s_!mOC0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7580c47a-9eb6-4aaf-8bd4-bab18d688420_2872x1334.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><h1>Upcoming events</h1><ul><li><p>August 30th is our monthly <a href="https://guild.host/events/js-social-online-mrmfftyfclbnc">JS Social: Online</a>. A great place to meet like minded individuals and chat about what you are currently working on or anything you have found fascinating as of late on your journey in tech!</p></li></ul><p>Please look at our events calendar on <a href="https://guild.host/torontojs/events">Guild</a> or <a href="https://www.meetup.com/torontojs/events/">Meetup</a> for other upcoming events!</p><p>Also happening in Toronto:</p><ul><li><p><a href="https://www.meetup.com/toronto-mongodb-usergroup/events/295305674/">Toronto MongoDB User Group at Microsoft Canadian Headquarters (In person) - September 5, 2023 </a></p></li><li><p><a href="https://www.linkedin.com/posts/chris-ty-kim_techtankembracingcontinuouslearningposter-activity-7099736998160056320-nPqu/">Embracing Continuous Learning: Navigating Skill Development in Tech hosted by Tech Tank (Online) - September 6, 2023</a></p></li><li><p><a href="https://www.meetup.com/toronto-react-native/events/295575218/">[TechTalks] Loading...A deep dive into website and web app performance hosted by React Toronto (In person) - September 28, 2023</a></p></li></ul><h1>Happening in the community</h1><p>Lazar Nikolov writes and talks about <a href="https://www.youtube.com/watch?v=dr6UAQUAiu4">CSS Nesting</a>! A new feature coming to modern browsers August 29th. CSS Nesting allows selectors to be nested inside other selectors. This helps with reducing code repetition, file size, organization and giving easier options to refactor. </p><p>Let&#8217;s see an example without nesting:</p><pre><code><code>/* No nesting */
article.card {
  border: 1px solid lightgrey;
  border-radius: 6px;
  overflow: hidden;
}

article.card header {
  border-bottom: 1px solid lightgrey;
  background: #f1f3f4;
  padding: 16px;
}</code></code></pre><p>This example can be written with nesting like this:</p><pre><code><code>/* With nesting */
article.card {
  border: 1px solid lightgrey;
  border-radius: 6px;
  overflow: hidden;

  &amp; header {
    border-bottom: 1px solid lightgrey;
    background: #f1f3f4;
    padding: 16px;
  }
}</code></code></pre><p>Check out the article on CSS Nesting <a href="https://creatures.dev/blog/getting-started-with-css-nesting/">here</a>!</p><p>A few of folks in TorontoJS have started building a public Toronto JS member website, where people in the community can create public profiles and show off their projects. It&#8217;s early in the building process, but there&#8217;s a <a href="https://github.com/torontojs/members">Github Repo</a>. Join the Code Club if wanting to contribute!</p><h1>Industry News</h1><p>React brings on documentation for <a href="https://react.dev/learn/typescript">TypeScript</a>!!! How exciting!! It includes a walkthrough of how to add typescript to an existing React project as well as a walk through of learning <a href="https://react.dev/learn/typescript#typescript-with-react-components">TypeScript with React Components</a>, <a href="https://react.dev/learn/typescript#example-hooks">examples of typing hooks</a>, <a href="https://react.dev/learn/typescript#useful-types">common types from @types/react</a>, as well as <a href="https://react.dev/learn/typescript#further-learning">resources</a> for further learning.</p><h1>Poll</h1><div class="poll-embed" data-attrs="{&quot;id&quot;:90491}" data-component-name="PollToDOM"></div><p>Wow! With a total of 35 votes, 63% of folks choose to use Visual Studio Code as their main editor! Vim with 14% of voters! Finally, Sublime and WebStorm tied for 11% of votes! </p><p>What are commands, shortcuts or extensions that you use that are necessary for your day to day coding? We would love to know! Let us know in the comments :)</p><h1>Terminal Tip</h1><p>If you want to quickly search for a command you&#8217;ve typed before, try <code>CTRL-R</code> to do a search over all previous commands in your history.<br><br>zsh (currently the default shell on mac, but highly recommended on other operating systems too) does a better job maintaining this list and tends to have better defaults if you&#8217;re stuck on bash, you might at the very least want to increase how many entries are saved by setting the <code>HISTSIZE</code> environment variable to a much higher setting. This can be done in your ~/.bash_profile file.  </p><h1>Jobs</h1><p>If you have an open Job Posting relevant to the members of our community, please send an email to <a href="mailto:events@torontojs.com">events@torontojs.com</a>.</p><p>We&#8217;d love to link it in our next newsletter at no cost.<br></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe to receive the next issue in your mailbox!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #4]]></title><description><![CDATA[Normally summers are a bit quiet for events, but this year seems like an exception.]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-4</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-4</guid><dc:creator><![CDATA[Evert Pot]]></dc:creator><pubDate>Wed, 09 Aug 2023 15:01:16 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Qghu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Normally summers are a bit quiet for events, but this year seems like an exception. We&#8217;ve had 6(!) Toronto JS events in the last 2 weeks and more on the way. Don&#8217;t forget to touch grass!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Qghu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Qghu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qghu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qghu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qghu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Qghu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:562848,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Qghu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Qghu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Qghu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Qghu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd784bf5a-e5d5-47f3-a6c8-0b95d50c9b22_2048x1536.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a><figcaption class="image-caption">JS Tech Talk event at  Spaces. Photo by Tehseen Chaudhry.</figcaption></figure></div><h1>Upcoming events</h1><p>We have the following Toronto JS events on the docket:</p><ul><li><p>Most Saturdays from 4pm-6pm Danny is hosting <strong>JS Code Club: Online</strong> on Zoom. This is a mob hacking event where 1 or more people bring projects or problems to work on together. I try to go every week as they&#8217;re always inspiring and Danny is a great host. Look out for a link on the #events channel in Slack close to <strong>August 12th</strong> and <strong>August 19th.</strong></p></li><li><p>On <strong>August 30th </strong>we also have the monthly <a href="https://guild.host/events/js-social-online-mrmfftyfclbnc">JS Social: Online</a> scheduled. A good place to meet like-minded individuals over a snack or drink from the comfort of your home.</p></li></ul><p>Please look for our events calendar on <a href="https://guild.host/torontojs/events">Guild</a> or <a href="https://www.meetup.com/torontojs/events/">Meetup</a> for other events and more up to date information.</p><p>Also happening in Toronto:</p><ul><li><p>On <strong>August 16th at 8pm</strong> TechTank is hosting a panel: &#8220;<a href="https://www.linkedin.com/posts/chris-ty-kim_techtank-hellscape-event-part-2-poster-activity-7091827332973268993-YV6a/?utm_source=share&amp;utm_medium=member_desktop">I made it through the HELLSCAPE that is job search</a>&#8221; featuring 3 panelists <a href="https://tdsb-ca.zoom.us/j/97802052905?pwd=SVBpS3k4cHZYbmk0U2EzYXQvM01TUT09">on Zoom</a>. A topic a lot of us can relate to. TechTalk is fully community organized, without a commercial angle, so you can expect some honesty without being sold something.</p></li></ul><h1>Happening in the community</h1><p><a href="https://www.linkedin.com/in/peter-ty-liu/">Peter Liu</a> has built an incredible 3D model editor that uses CSS as a rendering engine.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;475e4c1e-c4c1-461a-80e9-aba1ffb5e026&quot;,&quot;duration&quot;:null}"></div><p>You can play around with it <a href="https://petertyliu.github.io/toaster/">on his github pages website.</a></p><p><a href="https://www.svatos.dev/">Michal Svato&#353;</a> has been working on a <a href="https://github.com/MichalSvatos/pi-hole-star-trek-picard/">LCARS-inspired interface</a> for his <a href="https://pi-hole.net/">Pi-Hole</a>. <a href="https://en.wikipedia.org/wiki/LCARS">LCARS</a> is the fictional UI in 24th century Star Trek. It looks fantastic and wins Michal the inaugural &#8220;Nerd Of The Month award&#8221;. Congratulations Michal!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2DdQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2DdQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 424w, https://substackcdn.com/image/fetch/$s_!2DdQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 848w, https://substackcdn.com/image/fetch/$s_!2DdQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 1272w, https://substackcdn.com/image/fetch/$s_!2DdQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2DdQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png" width="1456" height="752" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:752,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:77345,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2DdQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 424w, https://substackcdn.com/image/fetch/$s_!2DdQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 848w, https://substackcdn.com/image/fetch/$s_!2DdQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 1272w, https://substackcdn.com/image/fetch/$s_!2DdQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F647d8683-affd-4e37-a35e-d613f79f4e88_1641x848.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><p></p><p>A few of us also have started working on a public Toronto JS member website, where people in the community can create public profiles and show off their projects. It&#8217;s early days, but there&#8217;s a  <a href="https://github.com/torontojs/members">Github Repo</a>. Join the Code Club if you want to pitch in!</p><h1>Industry news &amp; hot takes</h1><p>Stefan Judis shares a pretty cool (currently Firefox-only) feature to <a href="https://www.stefanjudis.com/a-firefox-only-minimap/">make live minimaps on websites</a> using just CSS. Wild!</p><p>Spiffytech writes about <a href="https://spiffy.tech/is-this-an-emoji">ways emoji&#8217;s can be detected in strings</a>.</p><h1>Poll</h1><div class="poll-embed" data-attrs="{&quot;id&quot;:90491}" data-component-name="PollToDOM"></div><p>Check back next week for the results!</p><h1>Jobs</h1><p>If you have an open Job Posting relevant to the members of our community, please send an email to <a href="mailto:events@torontojs.com">events@torontojs.com</a>.</p><p>We&#8217;d love to link it in our next newsletter at no cost.</p><h1>Terminal Tip</h1><p>You can use <code>!!</code> to repeat the last command. For example, if you forgot to run <code>sudo</code>, you can repeat the last command with <code>sudo !!.</code></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe to receive the next issue in your mailbox!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #3]]></title><description><![CDATA[Community and growth]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-3</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-3</guid><dc:creator><![CDATA[Marco Campos]]></dc:creator><pubDate>Wed, 26 Jul 2023 16:00:21 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello everyone!</p><p>It is amazing to see the community growing and people getting involved in it. If the number of events and happy faces all around is a sign of success, then we <em>are</em> successful!</p><p>I'd like to take a moment to shout out to the amazing volunteers that make ideas come true. You are the best and we couldn't do it without you! &#129395;</p><p>As everyone has bills to pay and, unfortunately, we can't live off dreams alone, we are happy to announce that our <a href="https://opencollective.com/torontojs">OpenCollective</a> is up!</p><p>Please contribute if you can so we can make this community even better!</p><p>All the funds will go towards covering the baseline costs of operation and improving the community events experience.</p><p>Now, to the news&#8230;</p><h1>Upcoming events</h1><p>The upcoming months are full of events to join, here are some highlights:</p><ul><li><p>Happening <strong>July 27th,</strong> we have the <a href="https://guild.host/events/js-tech-talk-web-fonts-l8sro4">JS Tech Talk</a> in person event with support from Sentry</p></li><li><p><strong>July 28th</strong>: <a href="https://guild.host/events/july-inperson-social-uobh57">July In-Person Social</a></p></li><li><p><strong>August 19th</strong>: <a href="https://www.meetup.com/torontojs/events/fqnzftyfclbzb/">JS Code Club: Online - Group Programming</a></p></li><li><p><strong>August 30th</strong>: <a href="https://www.meetup.com/torontojs/events/ttfwftyfclbnc/">JS Code Club: Online - Group Programming</a></p></li></ul><p>Please look for our events calendar on <a href="https://guild.host/torontojs/events">Guild</a> and <a href="https://www.meetup.com/torontojs/events/">Meetup</a> for other events and more up to date information.</p><p>Also, happening in Toronto:</p><ul><li><p>The React+Native group is hosting a tech talk: <a href="https://www.meetup.com/toronto-react-native/events/294618947/">&#8220;Beyond Markdown: Enhancing Developer Docs with MDX on GitHub Pages&#8221;</a>, on <strong>August 3rd</strong> at the Loopio Office. Sounds intriguing!</p></li></ul><h1>Happening in the community</h1><ul><li><p>An interesting, albeit very technical, discussion happened on slack about <a href="https://madebyevan.com/algos/crdt-fractional-indexing/">Fractional Indexing</a>. It is a way of indexing items on a list using floating point numbers where to add or move items we only need to change the index of that item. Find the thread <a href="https://torontojs.slack.com/archives/C0664SCTG/p1689692101093849">here</a>.</p></li><li><p>The <a href="https://torontojs.com/">Toronto JS</a> home page is getting some well-deserved love thanks to Michal Svatos with the help of Jen Chan, Kieran Huggins, and Taz Singh. Now you can see events directly from there!</p></li><li><p>A heated debate around UML and the use of diagrams also happened, it has interesting opinions and ideas and is worth checking. <a href="https://torontojs.slack.com/archives/C0649AUFL/p1689884290862179">Here</a> is the thread on slack.</p></li></ul><h1>What&#8217;s new in Javascript?</h1><p>Let's talk for a second about <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API">WebGPU</a>. It is an interesting new technology that allows us to <s>mine crypto on the browser</s> harness the power of GPUs. WebGPU builds upon the idea of giving developers access to lower-level instructions of the GPU compared to <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API">WebGL</a>.</p><p>To make a comparison with native, WebGPU would be like <a href="https://en.wikipedia.org/wiki/Vulkan">Vulkan</a>, where WebGL is closer to <a href="https://en.wikipedia.org/wiki/OpenGL">OpenGL</a>.</p><p>This API makes it easy to do computations on the GPU instead of wrapping it to graphics calls or a shader. That enabled AI and other purely mathematical use cases that benefit from the parallel processing of the GPU to work efficiently. And, for cooler and faster graphics.</p><h1>Jobs</h1><p>If you have an open Job Posting relevant to the members of our community, please send an email to <a href="mailto:events@torontojs.com">events@torontojs.com</a>.</p><p>We&#8217;d love to link it in our next newsletter at no cost.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe for free to receive the next issue in your mailbox!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #2]]></title><description><![CDATA[Wow!! Over the half way point of the year, isn't that something? One day its January 1st, maybe we were thinking about goals, resolutions, routines and new habits to implement and then all of a sudden, we are over the 6 month mark. Summer!! Sunshine!! In-person events??? Time outside?? The heat though.....]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-2</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-2</guid><dc:creator><![CDATA[drey moreau]]></dc:creator><pubDate>Wed, 12 Jul 2023 15:11:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3c363386-2e8b-411d-877a-fea4e7738000_613x613.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Wow!! Over the half way point of the year, isn't that something? One day its January 1st, maybe we were thinking about goals, resolutions, routines and new habits to implement and then all of a sudden, we are over the 6 month mark.</p><p>Summer!! Sunshine!! In-person events??? Time outside?? The heat though.</p><p>Lots of awesome upcoming events in the city either in-person or online, check them out below! <br><br>If you have anything to share for the next edition, find us on the <a href="https://torontojs.slack.com/">Toronto JS slack</a>. </p><h1>Upcoming events</h1><ul><li><p><a href="https://www.meetup.com/torontojs/events/lvfwftyfckbtb/">JS Code Club: Group Programming - July 15 (Online)</a> </p></li><li><p><a href="https://www.meetup.com/torontojs/events/ttfwftyfckbjc/">JS Social - July 26 (Online)</a></p></li><li><p><a href="https://guild.host/events/js-tech-talk-web-fonts-l8sro4">JS Tech Talk: Web Fonts, Web Components, Svelte! &#8212; with venue support from Sentry - July 27 (In-person)</a></p></li><li><p><a href="https://guild.host/events/july-inperson-social-uobh57">JS Social &#8212; hosted at Priceline - July 28 (In-person)</a></p><p></p></li></ul><p>Also happening in Toronto:</p><ul><li><p><a href="https://www.meetup.com/toronto-react-native/events/294618947/">Beyond Markdown: Enhancing Developer Docs with MDX on GitHub Pages hosted at Loopio (In-person) - August 3</a></p></li></ul><h1>Projects from the community</h1><p>Marcelle Rusu (they/them) has been working on building their own language called Coil. They intend it to make web programming simple, expressive, and powerful. Through building <a href="https://coil-editor.netlify.app/">a web based structural editor</a> they have shown what Coil is capable of.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;90696706-f8ed-4df1-acaa-a10fb2b6d86d&quot;,&quot;duration&quot;:null}"></div><h1>What&#8217;s new in JavaScript?</h1><p><a href="https://next-auth.js.org/">NextAuth.js</a> is becoming <a href="https://authjs.dev/">Auth.js</a>! NextAuth is an open-source authentication library that provides a simple and easy-to-use solution for adding authentication and security to web applications. It was created specifically for Next.js, a popular React-based framework, but can also be used with other frameworks and libraries. </p><p>Now with the update to v4, it will come with a few breaking changes from the last major version (3.x). This gives developers the ability to test states much more cleanly with the new <em>status</em> option, to have at most two parameters when using the logger API, customization options to built-in pages and much more! <a href="https://authjs.dev/getting-started/introduction">Read more</a> on the changes/upgrades happening and how to implement Auth.js into your next project!</p><h1>Jobs</h1><p>If you have an open Job Posting relevant to the members of our community, please send an email to <a href="mailto:events@torontojs.com">events@torontojs.com</a>.</p><p>We&#8217;d love to link it in our next newsletter at no cost.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe for free to receive the next issue in your mailbox!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Toronto JS TL;DR Issue #1]]></title><description><![CDATA[Summer is here, and welcome to the first issue of Toronto JS TL;DR.]]></description><link>https://tldr.torontojs.com/p/toronto-js-tldr-issue-1</link><guid isPermaLink="false">https://tldr.torontojs.com/p/toronto-js-tldr-issue-1</guid><dc:creator><![CDATA[Evert Pot]]></dc:creator><pubDate>Wed, 28 Jun 2023 19:45:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QK8S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Summer is here, and welcome to the first issue of Toronto JS TL;DR. This is the Toronto Javascript newsletter, by you for you.<br><br>Our goal with this newsletter to is keep you apprised of what&#8217;s going on with Toronto JS and provide a spotlight of your projects. If you have anything to share for the next edition, find us on the <a href="https://torontojs.slack.com/">Toronto JS slack</a>. </p><h1>Upcoming events</h1><p>We got a packed schedule the next few weeks, with 4 Toronto JS events:</p><ul><li><p><a href="https://www.meetup.com/torontojs/events/mrmfftyfcjblc/">JS Social: Online - June 28</a> - TODAY!</p></li><li><p><a href="https://guild.host/events/js-technical-interview-awf6em">JS Technical Interview Prep - June 29</a></p></li><li><p><a href="https://www.meetup.com/torontojs/events/dctzbtyfckbtb/">JS Code Club: Online - July 15</a></p></li><li><p><a href="https://guild.host/events/js-tech-talk-web-fonts-l8sro4">JS Tech Talk: Web Fonts, Web Components, Svelte! - July 27</a> </p></li></ul><p>Also happening in Toronto that might be worth a look:</p><ul><li><p><a href="https://www.meetup.com/toronto-react-native/events/294130639/">The React Developer's Guide to OAuth2 - June 29</a> - TOMORROW! - Organized by the React + Native group.</p></li><li><p><a href="https://www.refactorconf.com/?lang=en">Refactor DX - July 12-13 </a>- A conference in Toronto about Developer Tooling. Use the &#8220;TORONTOJS&#8221; coupon code to get 30% off your ticket!</p></li></ul><h1>Projects from the community</h1><p>Peter Liu made a <a href="https://petertyliu.github.io/runesweeper/">Runescape-inspired Minesweeper game</a>. Did anyone else not know you could right-click to mark squares as bombs? When I first played this I just randomly pressed anywhere in hopes I would get it right.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QK8S!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QK8S!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 424w, https://substackcdn.com/image/fetch/$s_!QK8S!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 848w, https://substackcdn.com/image/fetch/$s_!QK8S!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 1272w, https://substackcdn.com/image/fetch/$s_!QK8S!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QK8S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png" width="377" height="513" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:513,&quot;width&quot;:377,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:100871,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QK8S!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 424w, https://substackcdn.com/image/fetch/$s_!QK8S!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 848w, https://substackcdn.com/image/fetch/$s_!QK8S!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 1272w, https://substackcdn.com/image/fetch/$s_!QK8S!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F958aa798-4c2d-4a63-9d37-d3c35212e930_377x513.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><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></svg></button></div></div></div></a></figure></div><p>Elizabeth McCready talks about creating desktop layouts from first principles in her article <a href="https://gingerkiwi.blog/blog/2023-06-13-creating-a-simple-desktop-layout-in-css-with-just-h1-and-one-paragraph/">&#8220;Creating a Simple Desktop Layout in CSS with Just an H1 and One Paragraph&#8221;</a></p><p>Philippe Schwyter shared that he&#8217;s working on <a href="https://cauli.projectzucchini.com/">a slack bot for generating images</a> like Giphy, but instead using DALL-E.</p><p>Marco Campos wrote about &#8220;<a href="https://madcampos.dev/blog/2023/06/web-components-basics/">Web Components: A (Not So) Gentle Introduction</a>&#8221;.</p><h1>What&#8217;s new in Javascript?</h1><p>We&#8217;re getting a new keyword <code>using</code>, existing alongside <code>var</code>, <code>let</code> and <code>const</code>, which has the unique property that it lets library developers &#8216;do something&#8217; when a symbol goes out of scope.</p><p>The news is that this will be part of the next Typescript 5.2 release, and sparked some interesting discussions on the <a href="https://torontojs.slack.com/">Toronto JS Slack</a>. Read all about it on: <a href="https://www.totaltypescript.com/typescript-5-2-new-keyword-using">Total Typescript.</a></p><p>Last week, Svelte <a href="https://svelte.dev/blog/svelte-4">released version 4</a> of their frontend framework. The release seems mostly incremental with a focus on performance improvements and the Developer experience.</p><h1>Jobs</h1><p>If you have an open Job Posting relevant to the members of our community, please send an email to <a href="mailto:events@torontojs.com">events@torontojs.com</a>.</p><p>We&#8217;d love to link it in our next newsletter at no cost.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://tldr.torontojs.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading Toronto JS TL;DR! Subscribe for free to receive the next issue in your mailbox!</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>