Author: Azazer

  • Gigabyte B450M DS3H V2 Audio Driver Issue

    Gigabyte B450M DS3H V2 Audio Driver Issue

    Gigabyte B450M DS3H V2

    On 2023 of November I upgraded to a new motherboard to try a Gen 1 Ryzen 7 I got my hands on. I had issues with their sound drivers interfering with the sound drivers of my Logitech headphones. Whenever I joined a voice chat there was static on my end which I found out was caused by the the playback and recording device switching every second between each other. This was really annoying so just in case I reinstalled the sound driver from Gigabytes website version 6.0.9225.1. I had the same issue so I tried previous versions of the driver and had the same issue. I ended up using Display Driver Uninstaller to uninstall the driver and just use my headset’s mic and headphones. I’d try again about a month later.

    The actual fix? You have to download Gigabyte’s APP Center. Once you open the software you have to download the latest updated driver there, 6.0.9313.1, which they do not list on their site. After installing no more issues and I got a convenient Realtek Audio Console application installed to manage the sound settings too.

    Gotta’ click on the update button next to the gear icon .
  • Fediverse + Soapbox(Rebased)

    Fediverse + Soapbox(Rebased)

    Soapbox Home TImeline

    tldr: If you’re having weird problems installing the Soapbox / Rebased Fediverse software on your server. Maybe make sure you open port 80 and 443. That worked for me.


    I like to get on the Fediverse for my social media fix. I’m not the tech savviest guy, but I do self host my own website for me and my friends to use. The software I use to get on the Fediverse is Soapbox with the Rebased backend. It’s a very nice way to interact and enjoy the Fediverse. The guy who develops it recently had a big update to it, changing up the backend too and for a small site like mine I decided to just nuke it instead of messing with it too much and starting from scratch. Things to take note of though, for future reference.

    Great thing about the Fediverse is that you can make a back up of all the people you are following. I thought I did just that, but that seemed to not be the case. So double check that you have that csv file backed up properly. Now I have to hunt down for the folks I was following before.

    The next thing is I had a heck of a time installing the software. The instructions were super simple to follow, but for some reason I couldn’t move forward. Long story short there was a port that I forgot to open. This isn’t in the instructions, but probably because I’m not using one of the recommended sites he suggested to host from or because it’s something basic most people now. I manually opened port 80, but I didn’t realize I had to do the same for port 443. I’m using Ubuntu so that’s as simple as typing in

    ufw allow 443

    You can make sure everything that should be open is by typing in

    ufw status

    Typing this up more as a reminder for myself in the future though.

  • Soapbox JSON Data

    Soapbox JSON Data

    JSON config settings

    I opened a Soapbox Fediverse site to play with. Learned a couple things doing that, but when I installed it, certain features were not working the way they should under the soapbox-config settings (I think this was all under the newer Soapbox3 front-end). None of the buttons on the front-end worked. The fix was to just type it out in the Advanced: Edit raw JSON data section. Once that was filled out everything worked like normal. Here’s how my settings look. You can copy this and change it around yourself; put your own info in it.

    {
      "cryptoAddresses": [
        {
          "address": "bc1qvjz2avgcyuh23s72dr3zgc3sltkgje7v35c4h9",
          "note": "Send some sats!",
          "ticker": "btc"
        },
        {
          "address": "t1g3kiDojaTyNBHCEc67B46q3cEJSJ92113",
          "note": "",
          "ticker": "zec"
        }
      ],
      "defaultSettings": {
        "themeMode": "dark"
      },
      "copyright": "♥2022. Copying is an act of love. Please copy and share.",
      "logo": "https://clyez.city/media/c67b745d-0097-4b8d-9c74-39d5c5e0bd3a/Rappy%20white.svg",
      "greentext": true,
      "cryptoDonatePanel": {
        "limit": 2
      },
      "promoPanel": {
        "items": [
          {
            "icon": "comment",
            "text": "Session",
            "textLocales": {},
            "url": "https://getsession.org/"
          },
          {
            "icon": "envelope-open",
            "text": "Protonmail",
            "textLocales": {},
            "url": "https://pr.tn/ref/CY79FTJWS3FG"
          },
          {
            "icon": "eye-slash",
            "text": "Privacy Redirect Addon",
            "textLocales": {},
            "url": "https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/"
          }
        ]
      },
      "navlinks": {
        "homeFooter": [
          {
            "title": "Need a Fediverse account?",
            "url": "https://jointhefedi.com/"
          }
        ]
      },
      "accentColor": "#9d954b",
      "brandColor": "#756573",
      "allowedEmoji": [
        "?",
        "?",
        "?",
        "?",
        "?",
        "?"
      ]
    }

    The only thing that continued not to work was the icon picker for the Promo Panel. In which case you can add that yourself in the JSON data section too. Just use an icon name from this site. For example I wanted the slashed eye icon so I had to add

     "icon": "eye-slash",

    On the Soapbox front-end you can choose your own emoji reactions too. So just add and remove emoji in allowed emoji. I added the pinched fingers and skull ones.

    "allowedEmoji": [
        "?",
        "?",
        "?",
        "?",
        "?",
        "?"
      ]

    The guy who actually works on this, Alex, works his butt off and I think at the moment he can only take crypto donations. Check out his profile for crypto addresses and maybe send him some sats as thanks if you’re using his software. https://gleasonator.com/@alex

  • Steam Deck Save Directories.

    Steam Deck Save Directories.

    So it looks like the Steam Deck has multiple save directories for you proton games the same way the games on Windows are saved across different directories. Found that these are the places to check for games saves.

    • May be under .config/, .local/
    • Proton saves are stored under .local/share/Steam/steamapps/compatdata/
    • ~/.local/share/NameOfGame

    Some games saves aren’t synching- not sure if this is because the game we’re trying has a separate native Linux port or this happens with proton compatible games too. Anyhow. I found out about this from a Reddit thread. Source here >> https://www.reddit.com/r/SteamDeck/comments/tcxw1e/where_does_the_steam_deck_store_save_data/

  • Test Code Take 2

    Another try with the form. This time around I have everything looking a little bit cleaner thanks to the section in the class I’ve taken recently. At least on the HTML side. This took longer than I liked because of some issues with the JavaScript, but to be fair I haven’t reached that far into the lessons yet. For future reference it seems if I ever want to work with decimals I’ll need to parseFloat and not parseInt.

    Changed the input from a textbox to a selection box. The values for the fractions are decimals in the option tags. Not sure if there’s another way to work with fractions otherwise.

    VSCode has Emmet integration, but I’m not sure how to make it spit out increasing number per option line. That would have been great to know. Side note to figure that out later.

    Again if you stumble into this blog looking for a simple form to calculate things feel free to steal this and modify it yourself.


    <html>
    
    <head>
        <form action="" style="background:#e5f2ff">
            <script>
                var linch, winch, flinch, fwinch, tinch, total, price, temp;
                function screens() {
                    linch = parseFloat(document.getElementById("one").value);
                    winch = parseFloat(document.getElementById("two").value);
                    flinch = parseFloat(document.getElementById("fone").value);
                    fwinch = parseFloat(document.getElementById("ftwo").value);
    
                    if (linch && winch) {
    
                        temp = document.getElementById("price");
                        temp.style.display = "block";
    
                        linch = linch + flinch;
                        winch = winch + fwinch;
                        tinch = linch * winch;
                        total = tinch / 144;
                        price = total * 9.00;
                        document.getElementById("euroscreen").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 11.00;
                        document.getElementById("doubleeuroscreen").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 13.00;
                        document.getElementById("honycombsunshade").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 15.00;
                        document.getElementById("honycombeuroscreen").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 17.00;
                        document.getElementById("doublehonycomb").value = (Math.round(price * 100) / 100).toFixed(2);
                    }
                }
            </script>
    </head>
    
    <body>
    
        <div>
            <p>
                <label for="one">Length in inches: </label>
                <!---- <input type="number" min="8" max="84" id="one" placeholder="Enter a number" required> -->
                <select id="one">
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="10">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                    <option value="32">32</option>
                    <option value="33">33</option>
                    <option value="34">34</option>
                    <option value="35">35</option>
                    <option value="36">36</option>
                    <option value="37">37</option>
                    <option value="38">38</option>
                    <option value="39">39</option>
                    <option value="40">40</option>
                    <option value="41">41</option>
                    <option value="42">42</option>
                    <option value="43">43</option>
                    <option value="44">44</option>
                    <option value="45">45</option>
                    <option value="46">46</option>
                    <option value="47">47</option>
                    <option value="48">48</option>
                    <option value="49">49</option>
                    <option value="50">50</option>
                    <option value="51">51</option>
                    <option value="52">52</option>
                    <option value="53">53</option>
                    <option value="54">54</option>
                    <option value="55">55</option>
                    <option value="56">56</option>
                    <option value="57">57</option>
                    <option value="58">58</option>
                    <option value="59">59</option>
                    <option value="60">60</option>
                    <option value="61">61</option>
                    <option value="62">62</option>
                    <option value="63">63</option>
                    <option value="64">64</option>
                    <option value="65">65</option>
                    <option value="66">66</option>
                    <option value="67">67</option>
                    <option value="68">68</option>
                    <option value="69">69</option>
                    <option value="70">70</option>
                    <option value="71">71</option>
                    <option value="72">72</option>
                    <option value="73">73</option>
                    <option value="74">74</option>
                    <option value="75">75</option>
                    <option value="76">76</option>
                    <option value="77">77</option>
                    <option value="78">78</option>
                    <option value="79">79</option>
                    <option value="80">80</option>
                    <option value="81">81</option>
                    <option value="82">82</option>
                    <option value="83">83</option>
                    <option value="84">84</option>
                    <option value="85">85</option>
                    <option value="86">86</option>
                </select>
    
                <label for="fone">Fraction</label>
                <select id="fone">
                    <option value="0">0</option>
                    <option value="0.016">1/16</option>
                    <option value="0.13">1/8</option>
                    <option value="0.019">3/16</option>
                    <option value="0.25">1/4</option>
                    <option value="0.31">5/16</option>
                    <option value="0.38">3/8</option>
                    <option value="0.44">7/16</option>
                    <option value="0.5">1/2</option>
                    <option value="0.56">9/16</option>
                    <option value="0.63">5/8</option>
                    <option value="0.69">11/16</option>
                    <option value="0.75">3/4</option>
                    <option value="0.81">13/16</option>
                    <option value="0.88">7/8</option>
                    <option value="0.94">15/16</option>
                </Select>
    
            </p>
    
            <p>
                <label for="two">Width in inches: </label>
                <!-- <input type="number" min="8" max="84" id="two" placeholder="Enter a number" required> -->
                <select id="two">
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                    <option value="16">16</option>
                    <option value="17">17</option>
                    <option value="18">18</option>
                    <option value="19">19</option>
                    <option value="10">20</option>
                    <option value="21">21</option>
                    <option value="22">22</option>
                    <option value="23">23</option>
                    <option value="24">24</option>
                    <option value="25">25</option>
                    <option value="26">26</option>
                    <option value="27">27</option>
                    <option value="28">28</option>
                    <option value="29">29</option>
                    <option value="30">30</option>
                    <option value="31">31</option>
                    <option value="32">32</option>
                    <option value="33">33</option>
                    <option value="34">34</option>
                    <option value="35">35</option>
                    <option value="36">36</option>
                    <option value="37">37</option>
                    <option value="38">38</option>
                    <option value="39">39</option>
                    <option value="40">40</option>
                    <option value="41">41</option>
                    <option value="42">42</option>
                    <option value="43">43</option>
                    <option value="44">44</option>
                    <option value="45">45</option>
                    <option value="46">46</option>
                    <option value="47">47</option>
                    <option value="48">48</option>
                    <option value="49">49</option>
                    <option value="50">50</option>
                    <option value="51">51</option>
                    <option value="52">52</option>
                    <option value="53">53</option>
                    <option value="54">54</option>
                    <option value="55">55</option>
                    <option value="56">56</option>
                    <option value="57">57</option>
                    <option value="58">58</option>
                    <option value="59">59</option>
                    <option value="60">60</option>
                    <option value="61">61</option>
                    <option value="62">62</option>
                    <option value="63">63</option>
                    <option value="64">64</option>
                    <option value="65">65</option>
                    <option value="66">66</option>
                    <option value="67">67</option>
                    <option value="68">68</option>
                    <option value="69">69</option>
                    <option value="70">70</option>
                    <option value="71">71</option>
                    <option value="72">72</option>
                    <option value="73">73</option>
                    <option value="74">74</option>
                    <option value="75">75</option>
                    <option value="76">76</option>
                    <option value="77">77</option>
                    <option value="78">78</option>
                    <option value="79">79</option>
                    <option value="80">80</option>
                    <option value="81">81</option>
                    <option value="82">82</option>
                    <option value="83">83</option>
                    <option value="84">84</option>
                    <option value="85">85</option>
                    <option value="86">86</option>
                </select>
    
                <label for="ftwo">Fraction:</label>
                <select id="ftwo">
                    <option value="0">0</option>
                    <option value="0.016">1/16</option>
                    <option value="0.13">1/8</option>
                    <option value="0.019">3/16</option>
                    <option value="0.25">1/4</option>
                    <option value="0.31">5/16</option>
                    <option value="0.38">3/8</option>
                    <option value="0.44">7/16</option>
                    <option value="0.5">1/2</option>
                    <option value="0.56">9/16</option>
                    <option value="0.63">5/8</option>
                    <option value="0.69">11/16</option>
                    <option value="0.75">3/4</option>
                    <option value="0.81">13/16</option>
                    <option value="0.88">7/8</option>
                    <option value="0.94">15/16</option>
                </Select>
            </p>
    
            <p>
                <button type="button" onclick="screens()">Screen Pricing</button>
            </p>
    
            <hr>
        </div>
    
        <div id="price" style="display:none;">
    
            <p>
                <label for="euroscreen">Euroscreen Price = &dollar;</label>
                <input id="euroscreen" readonly>
            </p>
    
            <p>
                <label for="doubleeuroscreen">Double Euroscreen Price = &dollar;</label>
                <input id="doubleeuroscreen" type="number" step="0.01" readonly>
            </p>
    
            <p>
                <label for="honycombsunshade">Honycomb Sunshade Price = &dollar;</label>
                <input id="honycombsunshade" type="number" step="0.01" readonly>
            </p>
    
            <p>
                <label for="honycombeuroscreen">Honycomb+Euroscreen Combo Price = &dollar;</label>
                <input id="honycombeuroscreen" type="number" step="0.01" readonly>
            </p>
    
            <p>
                <label for="doublehonycomb">Double Honycomb Price = &dollar;</label>
                <input id="doublehonycomb" type="number" step="0.01" readonly>
            </p>
    
        </div>
    
        </form>
    </body>
    
    </html>
  • Test Code

    The Form

    The code below is supposed to show the prices for different products based on the Length and Width of a screen entered.

    Length in inches:

    Width in Inches:


    The Code

    I cannibalized some code and here’s the end result. If anyone ever needs something like this feel free to grab it and modify

    <html>
    
    <head>
        <article>
            <script>
                var linch, winch, tinch, total, price, temp;
                function screens() {
                    linch = parseInt(document.getElementById("one").value);
                    winch = parseInt(document.getElementById("two").value);
                    if (linch && winch) {
                        temp = document.getElementById("price");
                        temp.style.display = "block";
                        tinch = linch * winch;
                        total = tinch / 144;
                        price = total * 9;
                        document.getElementById("euroscreen").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 11;
                        document.getElementById("doubleeuroscreen").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 13;
                        document.getElementById("honycombsunshade").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 15;
                        document.getElementById("honycombeuroscreen").value = (Math.round(price * 100) / 100).toFixed(2);
                        price = total * 17;
                        document.getElementById("doublehonycomb").value = (Math.round(price * 100) / 100).toFixed(2);
                    }
                }
            </script>
    </head>
    
    <body>
    
        <p id="input">Length in inches: <input id="one">
            <br /><br />
            Width in Inches: <input id="two">
        </p>
        <p><button onclick="screens()">Screen Pricing</button></p>
        <p id="price" style="display:none;">
    
            Euroscreen Price = <input id="euroscreen"><br /><br />
            Double Euroscreen Price = <input id="doubleeuroscreen"><br /><br />
            Honycomb Sunshade Price = <input id="honycombsunshade"><br /><br />
            Honycomb+Euroscreen Combo Price = <input id="honycombeuroscreen"><br /><br />
            Double Honycomb Price = <input id="doublehonycomb"><br /><br />
    
            </article>
    </body>
    
    </html>
  • Web Dev Boot Camp

    Update: I quite the class. Maybe I’ll take it up in the future.

    If you’ve read the I’m a Stupid post than you might have correctly guessed I don’t want such a thing to happen again. So I started taking this Web Dev Boot Camp course my cousin casually mentioned to me in passing some time ago. I’m tired of being clever enough to know what a problem might be, but not enough to fix it. Everything is a surface level understanding with me and that has to stop.

    The class is going to cover HTML, CSS, JavaScript, and a slew of other tools I can proudly add to my IT tool box. I’m hoping after this I’ll be a better than surface level nerd. I can’t fix problems beyond surface level. I mentioned that things breaking can be a good experience because you can learn from them, but if this happened to my bosses website that would be a painful ass lesson!

    Was hoping I would be able to convince my sister to take the class with me, but I think she was intimidated by it. She could definitely do it though, she’s way smarter than me.

    I am taking the class with my cousin though. That’ll do me real well when it comes to accountability. I tend to be bad at these self learning classes, so this time around I’m sure to finish it. He’s pretty bad at self learning too, so I’m sure it’ll do us both fantastic. We can carry this bridge together!

    I’ll share the link to the class here. https://www.udemy.com/course/the-web-developer-bootcamp/

  • I’m a stupid.

    Hello! I screwed up my blog again. This would be third time. The second time around I wrote some articles I was happy with. Now that’s gone. This time around I’ll try and be wiser this time around and actual back up my articles.

    Not sure what happened. Looks like an update to WordPress Core got corrupted and in trying to fix it I learned how to fix a different issue with plugins. That came in useful that same week, but haven’t found out how to fix that corrupted WordPress Core issue though.

    The positive view is that the more I break this thing the more I learn and can help friends with their problems. The down side is I still break my own things and that’s hella’ annoying. All good though.