<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>damnscout</title>
    <link href="https://blog.damnscout.com/feed.xml" rel="self" />
    <link href="https://blog.damnscout.com" />
    <updated>2022-07-27T10:03:21-04:00</updated>
    <author>
        <name>JasonML</name>
    </author>
    <id>https://blog.damnscout.com</id>

    <entry>
        <title>Launch day</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/launch-day.html"/>
        <id>https://blog.damnscout.com/launch-day.html</id>
            <category term="journal"/>

        <updated>2022-07-27T10:03:21-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/89/fernanda-martinez-LL8U00E5UgA-unsplash.jpg" alt="brown wooden spoon with brown and white seeds" />
                    I’m sharing out StreamWords with people. Hopefully people will enjoy it. We have fun playing it on stream. Things I’ve learned about StreamWords. I want to include a tournament mode. Set it to 10, 20, or 30 words, and let it run. People get points&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/89/fernanda-martinez-LL8U00E5UgA-unsplash.jpg" alt="brown wooden spoon with brown and white seeds" />
                <p>I’m sharing out <a href="https://younow.damnscout.com/admin">StreamWords</a> with people. Hopefully people will enjoy it. We have fun playing it on stream. Things I’ve learned about StreamWords.</p>
<ul>
<li>4-6 letters is best.</li>
<li>Keep the words simple. Don’t use obscure words.</li>
<li>People need to guess with real words (so they can’t just spam “aaaaa”, “bbbbb”, etc.)</li>
</ul>
<p>I want to include a tournament mode. Set it to 10, 20, or 30 words, and let it run. People get points for guessing the word, but also getting the letters as well. This means if someone guesses letters, they can still get points and no one falls too far behind. Guessing the word is still the most points, but it also rewards playing. It also helps account for latency.</p>
<p>Latency is an issue. On platforms with added latency, like Twitch, I’d have to account for this in some other way (letting people go to the site to play, but that means people can’t play while watching stream. It’s a challenge.</p>
<h2 id="what-did-i-have-for-breakfast">What did I have for breakfast?</h2>
<ul>
<li>Greek yogurt</li>
<li>Granola</li>
<li>Chia seeds</li>
</ul>
<p>It’s filling, and i like it. I also had some coffee with honey.</p>
<h2 id="work">Work</h2>
<p>It’s busy. 😩</p>

            ]]>
        </content>
    </entry>
    <entry>
        <title>I don&#x27;t journal</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/i-dont-journal.html"/>
        <id>https://blog.damnscout.com/i-dont-journal.html</id>
            <category term="journal"/>

        <updated>2022-07-26T10:39:17-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/88/bookblock-11-15cYOiQc-unsplash.jpg" alt="selective focus photography of black pen on book" />
                    But maybe I should. I should try to come up with basic quesitons I ask myself each day. Coffee. I like coffee. With honey. My desire to cook. I enjoy cooking, and I enjoy exploring new recipes, and making things up as I go along.
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/88/bookblock-11-15cYOiQc-unsplash.jpg" alt="selective focus photography of black pen on book" />
                <p>But maybe I should. I should try to come up with basic quesitons I ask myself each day.</p>
<h2 id="what-am-i-grateful-for">What am I grateful for?</h2>
<p>Coffee. I like coffee. With honey.</p>
<p>My desire to cook. I enjoy cooking, and I enjoy exploring new recipes, and making things up as I go along. I come up with some tasty things, and it’s always enjoyable when I find a new mixture of foods that just taste good.</p>
<h2 id="what-am-i-working-on">What am I working on?</h2>
<p>I’m working on a few things.</p>
<p>First, I’m streaming most days. I give it little thought. I should.</p>
<p>I’m at a cross between working on streaming tools and building games. I’d like to do one or the other. </p>
<h2 id="what-games-am-i-playing">What games am I playing?</h2>
<p>World of Warcraft TBC Classic in preperation for Wrath of the Lich King.</p>
<p>No Man’s Sky.</p>
<p>PUBG.</p>
<p>Fortnite.</p>
<p>These are the big games I’m playing at the moment.</p>
<h2 id="am-i-staying-healthy">Am I staying healthy?</h2>
<p>I’m trying. I monitor what I eat, and I aim for more protein and more vegetables than anything else. I try to incorporate more vegan meals than not.</p>

            ]]>
        </content>
    </entry>
    <entry>
        <title>StreamWords</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/overlays.html"/>
        <id>https://blog.damnscout.com/overlays.html</id>
            <category term="stream overlays"/>

        <updated>2022-07-24T17:06:20-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/87/Screenshot-2022-07-24-170022.jpg" alt="Sample StreamWords game" />
                    A word guessing game build for streamers. (admin) Inspired by Wordle, this game was built with YouNow chat in mind. It’s simple to setup, and designed so that streamers can play. It’s mean to be a small, think client, allowing streamers to decide how they&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/87/Screenshot-2022-07-24-170022.jpg" alt="Sample StreamWords game" />
                <p>A word guessing game build for streamers. (<a href="https://younow.damnscout.com/admin">admin</a>) Inspired by Wordle, this game was built with YouNow chat in mind. It’s simple to setup, and designed so that streamers can play. It’s mean to be a small, think client, allowing streamers to decide how they want to use it. It supports English at the moment, ensuring that players cannot just spam the chat with random letters.</p>

            ]]>
        </content>
    </entry>
    <entry>
        <title>How to disable the beep in PowerShell</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/how-to-disable-the-beep-in-powershell.html"/>
        <id>https://blog.damnscout.com/how-to-disable-the-beep-in-powershell.html</id>
            <category term="windows"/>

        <updated>2022-07-24T17:07:00-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/86/job-savelsberg-muoL8rkvAXo-unsplash.jpg" alt="" />
                    This was annoying, but easily resolved. You can easily disable this in PowerShell by running this command: Set-PSReadlineOption -BellStyle None However, what you probably want is to disable this every time you open up PowerShell. Doing this is simple. In PowerShell, type notepad $profile This&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/86/job-savelsberg-muoL8rkvAXo-unsplash.jpg" alt="" />
                <p>This was annoying, but easily resolved.</p>
<p>You can easily disable this in PowerShell by running this command:</p>
<pre><code>Set-PSReadlineOption -BellStyle None</code></pre>
<p>However, what you probably want is to disable this every time you open up PowerShell.  Doing this is simple.  In PowerShell, type</p>
<pre>notepad $profile</pre>
<p>This will most likely ask you to create a file.  Create the file, and then enter the above Set-PSRReadlineOption command into the file.  Save it, and close it.  Now, new PowerShell windows that pop open won't make that annoying beep.</p>
<p>You can find out more about these <a href="https://msdn.microsoft.com/powershell/reference/5.1/Microsoft.PowerShell.Core/about/about_Profiles">profiles over on MSDN</a>.</p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>PowerShell for Bash Users</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/powershell-for-bash-users.html"/>
        <id>https://blog.damnscout.com/powershell-for-bash-users.html</id>
            <category term="windows"/>

        <updated>2022-07-24T17:06:54-04:00</updated>
            <summary>
                <![CDATA[
                    Working with Objects PowerShell works with objects rather than plain text. While this might seem odd, it's also pretty powerful. So, if you run the ls command, it will return a bunch of objects that have fields (Members). You can figure out what this is easily&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <h2>Working with Objects</h2>
<p>PowerShell works with objects rather than plain text.  While this might seem odd, it's also pretty powerful.  So, if you run the <code>ls</code> command, it will return a bunch of objects that have fields (Members).  You can figure out what this is easily by running <code>ls | get-member</code>.</p>
<pre>PS C:\Users\jason_000&gt; ls | get-member...Name Property string Name {get;}Parent Property System.IO.DirectoryInfo Parent {get;}Root Property System.IO.DirectoryInfo Root {get;}BaseName ScriptProperty System.Object BaseName {get=$this.Name;}...</pre>
<p>So, I've cut out a lot of information, because you get a lot of members you can work with, but you get the idea.  But what this means is if you just want all the names, you can run <code>(ls).name</code>.  That will return a list of just the name members of the objects that would get returned normally.</p>
<h2>History</h2>
<p><code>Get-History</code> is history.</p>
<h2>Last Command</h2>
<p><code>$$</code></p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Lessons from id Software co-founder John Romero</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/lessons-from-id-software-co-founder-john-romero.html"/>
        <id>https://blog.damnscout.com/lessons-from-id-software-co-founder-john-romero.html</id>
            <category term="quotes"/>
            <category term="programming"/>

        <updated>2022-07-24T18:01:48-04:00</updated>
            <summary>
                <![CDATA[
                    From John Romero's GDC '16 talk. No prototypes. Just make the game. Polish as you go. Don’t depend on polish happening later. Always maintain constantly shippable code. It’s incredibly important that your game can always be run by your team. Bulletproof your engine by providing&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                <p>From <a href="https://www.youtube.com/watch?v=E2MIpi8pIvY">John Romero's GDC '16 talk</a>.</p>
<blockquote>No prototypes. Just make the game. Polish as you go. Don’t depend on polish happening later. Always maintain constantly shippable code.</blockquote>
<blockquote>It’s incredibly important that your game can always be run by your team. Bulletproof your engine by providing defaults upon load failure.</blockquote>
<blockquote>Keep your code absolutely simple. Keep looking at your functions and figure out how you simplify further.</blockquote>
<blockquote>Great tools help make great games. Spend as much time on tools as possible.</blockquote>
<blockquote>We are our own best testing team and should never allow anyone else to experience bugs or see the game crash. Don’t waste others’ time. Test thoroughly before checking in your code.</blockquote>
<blockquote>As soon as you see a bug, you fix it. Do not continue on. If you don’t fix your bugs your new code will be built on a buggy code base and ensure an unstable foundation.</blockquote>
<blockquote>Write your code for this game only - not for a future game. You’re going to be writing new code later because you’ll be smarter.</blockquote>
<blockquote>Encapsulate functionality to ensure design consistency. This minimizes mistakes and saves design time.</blockquote>
<blockquote>Try to code transparently. Tell your lead and peers exactly how you are going to solve your current task and get feedback and advice. Do not treat game programming like each coder is a black box. The project could go off the rails cause delays.</blockquote>
<blockquote>Programming is a creative art form based in logic. Every programmer is different and will code differently. It’s the output that matters.</blockquote>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Devember 2016 - Day 10 and 11 - Router Builder Start</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/devember-2016-day-10-and-11-router-builder-start.html"/>
        <id>https://blog.damnscout.com/devember-2016-day-10-and-11-router-builder-start.html</id>
            <category term="devember"/>

        <updated>2022-07-24T17:22:27-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/83/Lausanne_Switzerland_December_31.jpg" alt="" />
                    More cleanup today, but more importantly, started working on the Router Builder. This is the magic part of it all. The part that makes it possible to create routers and merge together commands without actually having to write any code. So it's getting close to&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/83/Lausanne_Switzerland_December_31.jpg" alt="" />
                <p>More cleanup today, but more importantly, started working on the Router Builder. This is the magic part of it all. The part that makes it possible to create routers and merge together commands without actually having to write any code. So it's getting close to be even more fun.</p>
<p>Happy to say as well that the build stuff I built up yesterday on Devember 10 worked on my Windows machine without issue. So I can successfully run this on both my Windows and Mac without issue. So that's a plus.</p>
<p>Note: spending an hour working on this might not seem like much, but what I'm able to accomplish is still encouraging.</p>
<ul>
<li><a href="https://github.com/jasonlotito/devember/commit/895461579eec5ef0091546a376b630acf4a56858">GitHub Commit for Day 10</a></li>
<li><a href="https://github.com/jasonlotito/devember/commit/8d3855a378cae671593e4de570f5ff33cdc1e57b">GitHub Commit for Day 11</a></li>
</ul>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Devember 2016 - Day 8 and 9 - Chrome Caches AJAX Response</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/devember-2016-day-8-and-9-chrome-caches-ajax-response.html"/>
        <id>https://blog.damnscout.com/devember-2016-day-8-and-9-chrome-caches-ajax-response.html</id>
            <category term="devember"/>

        <updated>2022-07-24T17:22:34-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/82/December_Mist_in_the_Rubber_Plantation.jpg" alt="" />
                    I didn't blog yesterday here, but I did tweet, and I did write code. It was late, but I still got stuff done. Today was an interesting day. I'm still coding, but I came across an interesting bug I'd like to share. So, in the code&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/82/December_Mist_in_the_Rubber_Plantation.jpg" alt="" />
                <p>I didn't blog yesterday here, but I did tweet, and I did write code.  It was late, but I still got stuff done.</p>
<p>Today was an interesting day.  I'm still coding, but I came across an interesting bug I'd like to share.</p>
<p>So, in the code I have now, depending on the request's Accept header, it will return either HTML or JSON.  It's the same endpoint, but depending on the request made, it will return different results.  The result is the same information, just presented differently.  One way for humans, another for computers.</p>
<p>Now, in Firefox and Safari, this works just fine.  If you go to the page, everything loads up as you'd expect.  If you go back in the browser, and then go forward again, the page that is displayed is the same page you'd expect to see.  The HTML result.</p>
<p>But in Chrome, it doesn't work like this.  Here is what happens in my case.</p>
<p>First, you make a request to a page /foo/bar.  This request has a header entry:</p>
<pre>Accept: text/html</pre>
<p>The page loads an HTML page which has JavaScript.  This JavaScript makes a request to the same page /foo/bar, except this time, the Accept header is different.</p>
<pre>Accept: application/json</pre>
<p>In this case, it's the same URL, but different requests.  This second request returns JSON as expected.</p>
<p>Now, you click the Back button, and go back a page.  Then you click the Forward button, and instead of seeing the HTML page as you'd expect, you see the JSON result.</p>
<p>Now, even though Chrome has this bug, you can work around it.  When you return the JSON response, you can just send back a response that includes the following headers.</p>
<pre>Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0Pragma: no-cacheExpires: Thu, 18 Nov 1971 01:00:00 GMT</pre>
<p>This will prevent the AJAX response from being cached, meaning the last cached item will be the HTML page.</p>
<h2>How else can you use this?</h2>
<p>So, in thinking about this, I was wondering how else I could use this.  After all, if I make a request to the same URL behind the scene and cache it, I can change what's cached in the browser.  Is there ever a case where you'd want to change what was cached without showing the user right away? I don't know.  But it's interesting.  And it would only work on Chrome.</p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Devember 2016 - Day 7</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/devember-2016-day-7.html"/>
        <id>https://blog.damnscout.com/devember-2016-day-7.html</id>
            <category term="devember"/>

        <updated>2022-07-24T17:22:40-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/81/1024px-2007_December_frost_in_Sweden.jpg" alt="" />
                    Busy night, I had to help on call people in the middle of my coding, so it delayed things. Still, I put in my hour. Later than I wanted, but here it is. Started adding Router stuff. Learning about React in the process. Yay! Day&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/81/1024px-2007_December_frost_in_Sweden.jpg" alt="" />
                <p>Busy night, I had to help on call people in the middle of my coding, so it delayed things. Still, I put in my hour. Later than I wanted, but here it is. Started adding Router stuff. Learning about React in the process. Yay!</p>
<p><a href="https://github.com/jasonlotito/devember/tree/day7">Day 7 is here on GitHub.</a></p>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Devember 2016 - Day 6</title>
        <author>
            <name>JasonML</name>
        </author>
        <link href="https://blog.damnscout.com/devember-2016-day-6.html"/>
        <id>https://blog.damnscout.com/devember-2016-day-6.html</id>
            <category term="devember"/>

        <updated>2022-07-24T17:58:27-04:00</updated>
            <summary>
                <![CDATA[
                        <img src="https://blog.damnscout.com/media/posts/80/Snowberries_in_Seattle_in_December.jpg" alt="" />
                    So, adding in react after the fact was a pain. But it's mostly working. I still need to fix actually clicking on the links, but the basics of React is up and running. Still a lot more work to be done, but still making progress.
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <img src="https://blog.damnscout.com/media/posts/80/Snowberries_in_Seattle_in_December.jpg" alt="" />
                <p>So, adding in react after the fact was a pain. But it's mostly working. I still need to fix actually clicking on the links, but the basics of React is up and running. Still a lot more work to be done, but still <a href="https://github.com/jasonlotito/devember/tree/day6">making progress</a>.</p>
            ]]>
        </content>
    </entry>
</feed>
