<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Rachel Simone Weil</title>
    <description>The latest articles on Forem by Rachel Simone Weil (@hxlnt).</description>
    <link>https://forem.com/hxlnt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F246489%2F249600e1-2993-4c28-a9fa-ed3d9c645d85.jpeg</url>
      <title>Forem: Rachel Simone Weil</title>
      <link>https://forem.com/hxlnt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hxlnt"/>
    <language>en</language>
    <item>
      <title>Use this OBS workflow to seamlessly integrate "live" demos into pre-recorded tech talks</title>
      <dc:creator>Rachel Simone Weil</dc:creator>
      <pubDate>Thu, 10 Jun 2021 18:58:10 +0000</pubDate>
      <link>https://forem.com/hxlnt/use-this-obs-workflow-to-seamlessly-integrate-live-demos-into-pre-recorded-tech-talks-5ff9</link>
      <guid>https://forem.com/hxlnt/use-this-obs-workflow-to-seamlessly-integrate-live-demos-into-pre-recorded-tech-talks-5ff9</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzq6f82da87ayt7f2negg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzq6f82da87ayt7f2negg.gif" alt="Clip from a pre-recorded tech talk using the method outlined in this article"&gt;&lt;/a&gt;&lt;/p&gt;
Spoiler: This tech talk at Smashing Conf was recorded in one take with no editing software. And that "live" demo isn't actually live.






&lt;p&gt;As developer meetups and conferences have been moving to online-only offerings over the past year and a half, the way I prepare for technical presentations and demos has changed. Mistakes and flubs feel more weighty when recorded, so it's easy to get lost in recording multiple takes, over-rehearsing, and editing things just so. The time put into creating video content can really add up! &lt;/p&gt;

&lt;p&gt;Below, I share the process I've created for making technical demo videos in OBS Studio. By preparing OBS with premade "cuts" using a Scene Collection and a little pre-recorded trickery, you can create a technical video with polish while eliminating the need to edit the video after recording. Really!&lt;/p&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Edit: I described the approach pretty succinctly on Twitter:&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1403088368536276999-583" src="https://platform.twitter.com/embed/Tweet.html?id=1403088368536276999"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1403088368536276999-583');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1403088368536276999&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;Read below for the full step-by-step.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;p&gt;These steps assume you already have the (free and cross-platform) OBS Studio installed. Some previous experience with this software is helpful.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In OBS Studio &amp;gt; Settings &amp;gt; Output, choose your preferred video output format. You might want to test a sample recording to ensure the file format and quality are OK.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Write presentation notes or a script and create any slides you might want to show. If you're using presentation software to create them, export your slides as individual images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pre-record your "live" screen demos. (Cheating, I know! But none of this is going to be live in the end, anyway.) You can use OBS, Game Bar (Windows 10), or QuickTime (OSX) depending on your scenario and preference. If you have multiple demos, record each as a separate video to eliminate capturing unneeded setup steps, window switching, etc. Don't include any audio commentary at this stage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;From the Scene Collection pane in OBS, add two template scenes using the (+) button:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A scene with a microphone input and a small inset webcam source in the corner, and&lt;/li&gt;
&lt;li&gt;A scene with the same microphone input and the same webcam source, but with the webcam expanded to take up the entire screen area.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdgvtey5ibxh2nen3qzwo.gif" alt="Switching between inset scene and full-screen scene in OBS"&gt;The inset view, the fullscreen view. (That's a Monster in My Pocket figurine from my childhood, in case you were wondering.)

&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make copies of the inset scene so that every slide or demo video has its own duplicate of that scene. Rename the scenes as you go with descriptive names. Then, make copies of the fullscreen webcam scene and place them &lt;em&gt;before&lt;/em&gt; and &lt;em&gt;after&lt;/em&gt; every video scene as shown below.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyq7cxfosj1mlq5x7zcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyq7cxfosj1mlq5x7zcb.png" alt="Adding slides to Sources panel"&gt;&lt;/a&gt;At the left is an example of a Scene Collection prepared by duplicating scene templates. Images and videos are added to each scene by dragging them into the Sources panel. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Drag and drop the relevant slide image or video into the Sources panel for that scene. Make sure each image and video are sized to take up the full screen dimensions. If the OBS screen size or ratio needs to be adjusted, you can do this in OBS Studio &amp;gt; Settings &amp;gt; Video. But when possible, it's better to keep things high-resolution and in 16:9 and export your content accordingly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;For each video, double-click on the source file to open source properties, and make sure "Loop" and "Show nothing when playback ends" are unchecked. Make sure "Restart playback" is checked. These settings will ensure that the video starts from the beginning when the scene is activated, and that when the video is complete, it will freeze on the last frame.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufkivze8v7bphertaa9e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufkivze8v7bphertaa9e.png" alt="Screenshot of Settings panel for a video"&gt;&lt;/a&gt;Settings for video sources  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lastly, record your demo by clicking "Start Recording," navigating through on your scenes in order as you talk over the prepared slides and demos. When done, choose "Stop recording." &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;By recording the presentation in this way, you don't have to drive live demos, switch in and out of your presentation, &lt;em&gt;and&lt;/em&gt; try to talk at the same time, because you'll simply be narrating over the scenes you've prepared. This makes it easy to reference a script or speaker notes, too. And with OBS's built in crossfades, you get a nice result without having to use additional editing software.&lt;/p&gt;

&lt;p&gt;From the viewer's perspective, the switch between camera inset and fullscreen camera will look like a cut between "Camera 1" and "Camera 2" like you might see in professional recordings. But in fact, it's just little ol' you, sneakily bridging different demos together by interspersing them with a brief fullscreen webcam feed. Since you'll keep talking as the scenes change, the result will look very natural without pauses between content.&lt;/p&gt;

&lt;p&gt;Now that you know how it was done, take a look at the clip again. (Or, view the full talk &lt;a href="https://www.youtube.com/watch?v=O04cu91g3H0" rel="noopener noreferrer"&gt;here&lt;/a&gt;.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzq6f82da87ayt7f2negg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzq6f82da87ayt7f2negg.gif" alt="Clip from a pre-recorded tech talk using the method outlined in this article"&gt;&lt;/a&gt;The screenshare is an imported video that I'm talking over as if it's happening in real time.&lt;/p&gt;




&lt;p&gt;I hope this gives you some ideas for ways to use OBS to record tech talks. If you end up trying it out, let me know in the comments!&lt;/p&gt;

</description>
      <category>speaking</category>
      <category>devrel</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>These VS Code extensions  help you fix accessibility and compatibility bugs while you code</title>
      <dc:creator>Rachel Simone Weil</dc:creator>
      <pubDate>Fri, 02 Apr 2021 14:17:53 +0000</pubDate>
      <link>https://forem.com/hxlnt/these-vs-code-extensions-help-you-fix-accessibility-and-compatibility-bugs-while-you-code-2196</link>
      <guid>https://forem.com/hxlnt/these-vs-code-extensions-help-you-fix-accessibility-and-compatibility-bugs-while-you-code-2196</guid>
      <description>&lt;p&gt;webhint is a VS Code extension that checks your web code for accessibility, compatibility, security, and performance pitfalls. The Error Lens VS Code extension brings code warnings out of the Problems pane and next to the affected line. Used alone or together, they ensure you'll fix a whole host of code issues before you even close the &lt;code&gt;&amp;lt;/tag&amp;gt;&lt;/code&gt;!&lt;/p&gt;




&lt;p&gt;For the past year and a half or so, I've been contributing to &lt;a href="https://webhint.io" rel="noopener noreferrer"&gt;webhint&lt;/a&gt;, an open-source project that collects best practices and suggestions from sources such as &lt;a href="https://github.com/dequelabs/axe-core" rel="noopener noreferrer"&gt;axe-core&lt;/a&gt; and &lt;a href="https://github.com/mdn/browsercompat" rel="noopener noreferrer"&gt;MDN&lt;/a&gt; into a single tool. You can think of it kind of like a linter for the web, giving you real-time feedback in areas such as cross-browser compatibility, accessibility, performance, and security. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl27oouja36jw1y863lmu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl27oouja36jw1y863lmu.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
Nellie, the official webhint mascot






&lt;p&gt;I love using the &lt;a href="https://webhint.io/docs/user-guide/extensions/vscode-webhint/" rel="noopener noreferrer"&gt;webhint VS Code extension&lt;/a&gt; because it helps me fix mistakes &lt;em&gt;while&lt;/em&gt; I'm coding. It analyzes HTML, CSS, JS, TS, JSX, and more. As with other VS Code linters, webhint messages appear in the Problems pane in VS Code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewyvl0yoe445w0yfp67s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fewyvl0yoe445w0yfp67s.png" alt="image"&gt;&lt;/a&gt;&lt;/p&gt;
webhint VS Code extension






&lt;p&gt;I recently discovered another VS Code extension called &lt;a href="https://github.com/usernamehw/vscode-error-lens" rel="noopener noreferrer"&gt;Error Lens&lt;/a&gt;. Error Lens takes messages published to the Problems pane and inlines them with your code. It's also configurable via a variety of provided &lt;code&gt;errorLens.&lt;/code&gt; settings.&lt;/p&gt;

&lt;p&gt;Using the webhint and Error Lens extensions together creates an all-new experience. Now, I can see webhint feedback on a11y, compat, and more, right on the line where the error occurs! 😍&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fel3n1hf7k9y6mxfmdf4k.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fel3n1hf7k9y6mxfmdf4k.gif" alt="webhint-errorlens"&gt;&lt;/a&gt;&lt;/p&gt;
This accessibility warning from webhint appears as I type and disappears when I fix the issue

 




&lt;p&gt;Search "webhint" and "Error Lens" in the VS Code extensions tab to install them both.&lt;/p&gt;

&lt;p&gt;webhint is available as a &lt;a href="https://webhint.io/docs/user-guide/" rel="noopener noreferrer"&gt;CLI&lt;/a&gt;, a &lt;a href="https://webhint.io/docs/user-guide/extensions/extension-browser/" rel="noopener noreferrer"&gt;browser extension&lt;/a&gt;, and a &lt;a href="https://webhint.io/docs/user-guide/extensions/vscode-webhint/" rel="noopener noreferrer"&gt;VS Code extension&lt;/a&gt;. It's even built in directly to the &lt;a href="https://www.microsoftedgeinsider.com/" rel="noopener noreferrer"&gt;Microsoft Edge browser&lt;/a&gt;'s DevTools. If you're interested in contributing to webhint, come &lt;a href="https://www.github.com/webhintio/hint" rel="noopener noreferrer"&gt;find us on GitHub&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>a11y</category>
      <category>vscode</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to debug DevTools with DevTools</title>
      <dc:creator>Rachel Simone Weil</dc:creator>
      <pubDate>Thu, 01 Apr 2021 19:24:38 +0000</pubDate>
      <link>https://forem.com/hxlnt/how-to-debug-devtools-with-devtools-4ej4</link>
      <guid>https://forem.com/hxlnt/how-to-debug-devtools-with-devtools-4ej4</guid>
      <description>&lt;p&gt;The developer tools built into Chromium-based web browsers are—like the apps they debug—built in plain old HTML, CSS, and Javascript.&lt;/p&gt;

&lt;p&gt;If DevTools are essentially just a web app, you should be able to run DevTools on DevTools, right? Indeed, you can! In fact, you don't need to install any special tooling to try it. Everything you need is already in your browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  How to run DevTools on DevTools
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Open your Chromium-based browser (Edge, Chrome, &lt;em&gt;etc.&lt;/em&gt;) and press &lt;strong&gt;F12&lt;/strong&gt; to open DevTools.&lt;/li&gt;
&lt;li&gt;Pop out the DevTools in their own window by going to the &lt;strong&gt;... menu&lt;/strong&gt; at the top right and choosing "Undock into separate window," which is the first icon in the Dock side options.
&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcg1hprjelrse5d5kho6q.png" alt="image"&gt;Undocking DevTools

&lt;/li&gt;
&lt;li&gt;With the DevTools window active, press &lt;strong&gt;Ctrl-Shift-I&lt;/strong&gt; (PC) or &lt;strong&gt;Cmd-Shift-I&lt;/strong&gt; (Mac) to open a second instance of DevTools on DevTools.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now, you can use the Inspect tool in the newly-opened DevTools instance to hover over elements in the previously-opened DevTools instance. You can tweak &lt;code&gt;div&lt;/code&gt; sizes, colors, fonts, and more in the Styles pane, and changes will be reflected right away.&lt;/p&gt;

&lt;p&gt;Any changes you make to DevTools won't persist and will reset on reload, so let your imagination run free!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ymcyyw00qxjn5pgepgg.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ymcyyw00qxjn5pgepgg.gif" alt="clippy-anim"&gt;&lt;/a&gt;&lt;/p&gt;
Pink backgrounds, Comic Sans... whatever you can do with DevTools, you can do with DevTools on DevTools. By the way: This nifty Font Editor is an experimental feature you can enable in ... &amp;gt; Settings &amp;gt; Experiments to try before it's officially released.






&lt;h2&gt;
  
  
  But why?
&lt;/h2&gt;

&lt;p&gt;Aside from having a new party trick to show off, why would you want to run DevTools on DevTools?&lt;/p&gt;

&lt;p&gt;One useful scenario is for &lt;a href="https://docs.microsoft.com/microsoft-edge/extensions-chromium/" rel="noopener noreferrer"&gt;authoring and debugging DevTools extensions&lt;/a&gt;. Developer extensions for React and Vue, for example, are DevTools extensions. If you're authoring your own DevTools extension, you might find DevTools-on-DevTools useful.&lt;/p&gt;

&lt;p&gt;Another use case would be for those who want to &lt;a href="https://bugs.chromium.org/p/chromium/issues/list" rel="noopener noreferrer"&gt;fix bugs&lt;/a&gt; or add new features to the Chromium DevTools codebase. In fact, the folks who &lt;em&gt;build&lt;/em&gt; DevTools use DevTools-on-DevTools quite a bit to debug, mock up, and build new features. How do I know? Well, I'm one of those folks! 👋&lt;/p&gt;

&lt;p&gt;I have been working with some colleagues on a new interface in Edge DevTools called &lt;a href="https://github.com/hxlnt/MSEdgeExplainers/blob/main/DevTools/FocusMode/explainer.md" rel="noopener noreferrer"&gt;Focus Mode&lt;/a&gt;, which allows you to group different tabs together so your DevTools don't get too cluttered and overwhelming. Running DevTools against DevTools, I was able to use our &lt;a href="https://docs.microsoft.com/en-us/microsoft-edge/devtools-guide-chromium/experimental-features/#enable-new-css-flexbox-debugging-features" rel="noopener noreferrer"&gt;flexbox debugging features&lt;/a&gt; to add outlines to the flex items contained in the new Activity Bar along the left side. I could also play with the size and positioning of icons to make high-fidelity mockups to share with my team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxbx6tanbhtreg9xefk5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxbx6tanbhtreg9xefk5.gif" alt="debug-activity"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, there you have it! Simple instructions for debugging DevTools with DevTools. 🎀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tooling</category>
      <category>css</category>
    </item>
  </channel>
</rss>
