<rss version="2.0">
  <channel>
    <title>Blog</title>
    <link>https://www.bestprogrammingtech.com/</link>
    <description><![CDATA[Product Reviews, how-to guides and other information for software programmers.]]></description>
    <item>
      <title>How to Make a QR Code for a Google Form</title>
      <link>https://www.bestprogrammingtech.com/blog/how-to-make-a-qr-code-for-a-google-form</link>
      <description><![CDATA[<p>It's easy! Sort of. Just follow these simple steps outlined below.</p>
<h2>Quick Start Guide</h2>
<ol>
<li>Create your Google Form.
<img class="w-100" src="/media/qr-code/Screenshot%202023-12-20%20001557.png"></li>
<li>Click "Send" button to send the form using a Link.
<img class="w-100" src="/media/qr-code/Screenshot%202023-12-20%20001655.png"></li>
<li>Use any one of the many online QR Code generator tools to get your QR Code image.
<img class="w-100" src="/media/qr-code/Screenshot%202023-12-20%20002110.png"></li>
</ol>
<p>That's it. That's all there is to it.</p>
<p>Here is some more detailed information about each step.</p>
<h2>1. Create your Google Form</h2>
<p>I assume if you've landed on this blog post, you already have a Google Form created and now you want to share access to that form so you can get information from other people.</p>
<p>So really this particular step is outside the scope of this article, but here are some of my personal observations on the utility of using QR codes.</p>
<h3>Ease of Use</h3>
<p>I find that QR Codes are very easy to use for anyone walking around with a smart phone. Last I checked, this includes almost everyone.</p>
<p>A smartphone user can quickly open their camera app, put your QR Code in frame, and open your Google Form with one quick tap.</p>
<p>QR Codes have a speed and convenience that lowers the friction in connecting with your intended audience.</p>
<h3>Curiosity</h3>
<p>There is a certain level of curiousity in QR Codes. It can be hard to tell what you'll get when you scan one, but there is a level of mystery can attract curious minds.</p>
<p>For example, while watching the Super Bowl, I saw a commercial that was nothing more that a QR Code moving and bouncing around the screen. That was it. My curiosity got the better of me and before I knew it, I was launch into a mobile app.</p>
<p>I just couldn't help it, I needed to know which ridiculous company spent so much money on a Super Bowl commercial showing just a QR Code. It was Coinbase.</p>
<h3>Great for High Traffic Areas</h3>
<p>I often daydream about what kind of business I could open in any of the thousands of abandoned strip malls I see when I drive around. I have lots of ideas but no capital to launch any of them.</p>
<p>BUT... if I were to put up a QR code with a Google Form around the area to gauge interest in my idea, I can get a better idea about what business might succeed in that location.</p>
<p>One crazy idea I had a long time ago was to rent Segways out to riders of the commuter train arriving in downtown Chicago. I estimate heavy capital startup costs near $10 million at the time.</p>
<p>In retrospect, it would've been easy to put up several QR Codes around the high traffic train station to see if anyone would be interested in that service.</p>
<p>And I could've used a Google Form for that survey.</p>
<h2>2. Click the "Send" Button to Generate a Link to your Google Form</h2>
<p>In the upper right hand corner, you can click a button labeled "Send" to generate a link to your Google Form.</p>
<h2>3. Use a Online Tool to Generate the QR Code</h2>
<p>Now that you have a link, you can use an online tool to turn that Link into a QR Code picture.</p>
<p>One of the most popular tools is <a href="https://www.qr-code-generator.com">https://www.qr-code-generator.com</a>.</p>
<p>They have special features, such as creating the QR Code in such a way that you can change the link to your Google Form later.</p>
]]></description>
      <pubDate>Wed, 20 Dec 2023 06:24:54 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/how-to-make-a-qr-code-for-a-google-form</guid>
    </item>
    <item>
      <title>3 Best Software Engineering Books</title>
      <link>https://www.bestprogrammingtech.com/blog/3-best-software-engineering-books</link>
      <description><![CDATA[<p>Software engineering is a rapidly changing discipline. Programmers and other software engineers need to stay current with emerging programming trends and frameworks while also refreshing their knowledge on established algorithms and patterns.</p>
<p>Here is a list of 5 programming and software engineering books.</p>
<ol>
<li>Agile Principles, Patterns, and Practices in C#</li>
<li>The Pragmatic Programmer</li>
<li>Object-Oriented Software Engineering</li>
</ol>
<h3>1. Agile Principles, Patterns, and Practices in C#</h3>
<p>Written by Robert C. Martin, aka Uncle Bob, and Micah Martin, Agile Principles, Patterns, and Practices in C# is the seminal book on SOLID principles. SOLID being the acronym for the following practices:</p>
<ul>
<li>Single-Responsibilty Principle</li>
<li>Open/Closed Principle</li>
<li>Liskov Substitution Principle</li>
<li>Dependency-Inverstion Principle</li>
<li>Interface Segregation Principle</li>
</ul>
<p>As a software engineer, programmer or coder, this book teaches you the foundation of SOLID design principles. It is a dense book that reads almost like an academic text book but provides rich explanations on each topic. You also see real world examples on how these principles can be applied.</p>
<p>The book ends with a thorough case study on how a project can be managed and executed using the agile methods and techniques presented in the book.</p>
<h3>2. The Pragmatic Programmer</h3>
<p>Written by Andrew Hunt and David Thomas, this book describes software engineering in more philosophical terms. It descsribes a lot of the why around why writing software and applications is hard, why perfect software won't exist, and what you as the programmer or engineer can to do to combat this.</p>
<p>As a programmer, you'll gain a deeper appreciation for just how difficult creating great software can be. And you'll find a new found sense of responsibilty to bring that software to life.</p>
<h3>3. Object-Oriented Software Engineering</h3>
<p>The author Ivar Jacobson gives a deep dive into the foundations of the softare development process. You will learn just how important is the communication between customer (or end user) and the development team. Lessons on requirements gathering and analysis for modeling how the software system should operate.</p>
<p>This book also ends with a thorough case study of an hypothetical software project that demonstrates the concepts. This book teaches you how to better execute on a vision provided by a customer for a software project.</p>
<h2>What to look for in a Software Engineering Book</h2>
<p>Knoweldge. Software engineering is a craft that requires constant practice. Writing software is a blend of art, science, and engineering. It's a fascinating discipline.</p>
<p>You must first understand what skills about software engineering you want to improve and then find books that target that skill.</p>
<p>There are software engineering books that offer techniques. Others offer more general practices to round out your programming skills.</p>
<p>Ultimately, you can start with online resources to learn on new software developer terms you hear. From there you can discover books that go deep into the topic of your choice.</p>
]]></description>
      <pubDate>Fri, 29 Sep 2023 14:38:57 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/3-best-software-engineering-books</guid>
    </item>
    <item>
      <title>App Development Xamarin: Xamarin.Forms to .NET MAUI</title>
      <link>https://www.bestprogrammingtech.com/app-development-xamarin-forms-to-dotnet-maui</link>
      <description><![CDATA[<h2>Purpose</h2>
<p>The goal of this post is to journal my migration of a long standing Xamarin.Forms app to using .NET MAUI.</p>
<h2>Background</h2>
<p>As a programmer, one of my many personal pet projects is a mobile app that allows you to create little games to play on your mobile device and share with friends.
Not suprising to fellow programmers, I've been working on this application for a long time. About nine (9), yes nine, years.
In that time, I've had to update and migrate the code base a few times to keep up with the times and the technology.</p>
<p>My preferred platform and language is .NET C# - I use it for my day job and it's what I know best. I have experience writing mobile apps for iOS and Android using their native languages. I even have experience using hybrid frameworks such as Cordova for cross platform development.</p>
<p>Nonetheless, I fell in love with Xamarin years ago before they were acquired by Microsoft and was over the moon with using C# to write crossplatform application and have them natively compile to their respective platforms. I have the scars to prove how brutal the tooling was, how mind numbing the troubleshooting was, and how frustrating it was to wait for the build process to complete only to find out there was an error. Or worse, seeing a runaway build that never ended only having to reboot to get the build to complete.</p>
<p>Fast forward to today, where I once again must embark on a journey to upgrade my toolset and migrate my code base. Long story short, I have a Mac mini M1 which has an arm processor. I have to use Visual Studio for Mac 2022 and .NET 6. As such I have to migrate my code base from .NET 5 to .NET 6. This includes migrating from Xamarin.Forms to .NET MAUI.</p>
<p>Let the games begin.</p>
<h2>Current State</h2>
<p>To avoid the nitty gritty details, I'll speak in overly simplified terms. So if something doesn't make sense let me know.</p>
<p>I have a multi-project solution that contains the following kinds of projects</p>
<ul>
<li>.NET MVC Web application</li>
<li>.NET Standard 2.1 shared library project that references Xamarin.Forms 5.0</li>
<li>Xamarin.iOS project</li>
<li>Other shared library projects written from scratch</li>
<li>Other 3rd party library projects from Nuget.org</li>
</ul>
<h3>The Original Problem</h3>
<p>Skipping a lot of detail, I use Visual Studio for Mac for development. I have a Mac mini M1 and because of the ARM processor I have to using Visual Studio for Mac 2022. The problem is I can't compile my code base because .NET 5.0 is not supported in Visual Studio for Mac 2022. I have to upgrade to .NET 6.</p>
<p>I tried to just modify the target frameworks in the Xamarion.iOS project, but I received the following error when compiling.</p>
<pre><code></code></pre>
<h2>Path Forward</h2>
<p>I used the following guide to do the migration: <a href="https://github.com/dotnet/maui/wiki/Migrating-from-Xamarin.Forms-(Preview)">https://github.com/dotnet/maui/wiki/Migrating-from-Xamarin.Forms-(Preview)</a>.</p>
<p>Following the advice in the guide above, I ensure that I had the correct toolset installed, which I thought I did but turns out I didn't.</p>
<p>At the time of this writing, I have Visual Studio for Mac Preview - Version 17.4 Preview (17.4 build 715).</p>
<p><img src="/media/xamarin-migrate-maui/visual-studio-version.png"></p>
<p>The guide recommends you create and run a blank MAUI project to make sure your tooling is correctly setup. When I first tried this I got a compiler error about Android components not being found. I installed these tools and then the default blank MAUI compiled and ran fine.</p>
<p>Now that I know I have MAUI installed correctly, it's time to start migrating my Xamarin project to use MAUI.</p>
<h2>Migration from Xamarin to .NET MAUI</h2>
<p>In general, the migration went well. I screwed up a couple of things. The documentation has you find and replace a number of using statements which I did in the order they listed in the documentation. The problem is that
one of the replacements actually makes it difficult to do the last replacement.</p>
<p>Specifically, when I did a find on</p>
<pre><code>using Xamarin.Forms
</code></pre>
<p>and replaced it with</p>
<pre><code>using Microsoft.Maui;
using Microsoft.Maui.Controls;
</code></pre>
<p>I inadvertantly replaced all of the following strings as well.</p>
<pre><code>using Xamarin.Forms.Xaml
</code></pre>
<p>So I was left with <code>using Microsoft.Maui.Xaml</code> which is not a valid namespace.</p>
<p>Luckily, I could easily replace it.</p>
<p>The next several compile errors dealt with unknown types and were easily fixed by using Visual Studio's suggestions on types to reference.</p>
<p>Another error that was trickier was that I had a problem with the .NET Standard 2.1 library referenced by .NET 6. The specific error I received was that the .NET MAUI project that referenced the .netstandard 2.1 project could not actually find the .netstandard2.1 dll when compiling. On a hope and a prayer, I checked all of the library projects in my solution and found that some of them targeted .netstandard2.0 which I thought might be tricky for the compiler. No reason to target 2.0 so I target .netstandard 2.1 and this resolved my error.</p>
<h3>Fixing AppShell.xaml</h3>
<p>The next set of compiler errors I encounter is related to the AppShell.xaml file. Something similar to the following.</p>
<pre><code>Microsoft.Maui.Controls.SourceGen/Microsoft.Maui.Controls.SourceGen.CodeBehindGenerator/AppShell.xaml.sg.cs(34,74,34,86): error CS0103: The name 'CommonStates' does not exist in the current context
</code></pre>
<p>Closer inspection of the AppShell.xaml file and I see a lot of errors.
<img src="/media/xamarin-migrate-maui/app-shell-error.png"></p>
<p>Mousing over the tip, I note that Shell can't be found and realize that the <code>xmlns</code> attribute says Xamarin and this probably isn't right. I recall from the migration guide that I have to update the namespaces of all my .xaml files. I look and see that I am terrible at following directions. None of the xamlns entries were replaced. Or more precisely, I accidently replaced them with a copy of themselves. After I did a find/replace changing them I got rid of the compiler error and came across new errors related to the contents of the .xaml files themselves which is what I expected.</p>
<h3>Xaml, Fix all the Xaml</h3>
<p>I had to replace <code>OSAppTheme.Dark</code> with <code>AppTheme.Dark</code> (and .Light, respectively).</p>
<p>I had to replace <code>Xamarin.Forms.Device.RuntimePlatform</code> with <code>DeviceInfo.Current.Platform</code> which is in the <code>Microsoft.Maui.Devices</code> namespace.</p>
<p>The next challenge was the <code>Error: XLS0414: The type 'DynamicResource' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.</code>.
Interestingly enough, closing and then restarting Visual Studio resolved this error.</p>
<p>Rebuilding lead to fewer errors.</p>
<p>Had to change <code>&lt;ToolbarItem Name="..."</code> to <code>&lt;ToolbarItem Text="..."</code>.</p>
<p>I had to complete remove the following.</p>
<pre><code>xmlns:iOS="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
iOS:NavigationPage.IsNavigationBarTranslucent="False"
</code></pre>
<p>Had to remove this too.</p>
<pre><code>xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
ios:Page.UseSafeArea="true"
</code></pre>
<p>And after a few other compiler errors for XAML namespaces I wasn't even using, I successfully compiled my new .NET MAUI project that was migrated from Xamarin.Forms.</p>
<h2>About the Author: David Puplava</h2>
<p>David Puplava is a professional C# developer and consultant with over 15 years of experience. He has designed and implemented several custom, enterprise software systems across the election, law enforcement and energy industries. You can learn more about David from his personal blog <a href="https://www.davidpuplava.com">https://www.davidpuplava.com</a> or follow him on Twitter <a href="https://twitter.com/davidpuplava">@davidpuplava</a>.</p>
]]></description>
      <pubDate>Fri, 16 Sep 2022 15:19:10 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/app-development-xamarin-forms-to-dotnet-maui</guid>
    </item>
    <item>
      <title>Fix: kubectl the Connection to the Server xxx Was Refused</title>
      <link>https://www.bestprogrammingtech.com/blog/how-to-renew-expired-client-certificates-in-kubernetes</link>
      <description><![CDATA[<h2>Symptom</h2>
<p>When using <code>kubectl</code> to administer your Kubernetes cluster, you may receive a message similar to</p>
<pre><code>The connection to the server xxx.xxx.xxx.xxx:xxxx was refused - did you specify the right host or port?
</code></pre>
<p>When <code>kubectl</code> returns <code>the connection to the server localhost:8080 was refused</code>, one reason may be that the client certficates for accessing your Kubernetes cluster have expired. How to renew expired client certificates is the topic of this article.</p>
<p>There are other cause for the "connection refused" message, so check a couple of things with your cluster before trying out the below steps to resolve your issue.</p>
<h2>Before You Begin</h2>
<ul>
<li>Does your Kubernetes cluster use client certificates to authenticate? If yes, then this article may help. If no, then you likely have another problem</li>
<li>Do you receive this "connection refused" message when you are tunneled into your Kubernetes master node running a 'kubectl' command? If yes, then this article will likely help you.</li>
</ul>
<p>My Kubernetes cluster is outdated. It's currently running v1.15.2. As of this writing, the Kubernetes documentation only goes back to v1.20. After I resolve this certificate issue, I'll upgrade my cluster so I'm running the latest version of Kubernetes.</p>
<p>To definitely see if you have an expired certificate run the following command.</p>
<pre><code>$ kubeadm certs check-expiration
</code></pre>
<p>If you receive an error message, try running the command for an older version of kubectl.</p>
<pre><code>$ kubeadm alpha certs check-expiration
</code></pre>
<p>If it works, you'll see similar output.</p>
<pre><code>CERTIFICATE                EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
admin.conf                 Aug 21, 2022 19:57 UTC   &lt;invalid&gt;       no      
apiserver                  Aug 21, 2022 19:55 UTC   &lt;invalid&gt;       no      
apiserver-etcd-client      Aug 21, 2022 19:55 UTC   &lt;invalid&gt;       no      
apiserver-kubelet-client   Aug 21, 2022 19:55 UTC   &lt;invalid&gt;       no      
controller-manager.conf    Aug 21, 2022 19:57 UTC   &lt;invalid&gt;       no      
etcd-healthcheck-client    Aug 21, 2022 19:04 UTC   &lt;invalid&gt;       no      
etcd-peer                  Aug 21, 2022 19:04 UTC   &lt;invalid&gt;       no      
etcd-server                Aug 21, 2022 19:04 UTC   &lt;invalid&gt;       no      
front-proxy-client         Aug 21, 2022 19:55 UTC   &lt;invalid&gt;       no      
scheduler.conf             Aug 21, 2022 19:57 UTC   &lt;invalid&gt;       no  
</code></pre>
<p>Note that the expiration date has passed and the Residual Time says <code>&lt;invalid&gt;</code>. This means my client certificates have expired.</p>
<p>Renew the certificates by running the following command. <strong>Note</strong> that this command is <strong>for v1.15.2</strong> version of kubernetes.</p>
<pre><code>$ kubeadm alpha certs renew all
</code></pre>
<p>Now, try a kubectl command.</p>
<pre><code>$ kubectl get pods
</code></pre>
<p>If you receive the following error, you may have an old version of kubernetes.</p>
<pre><code>Unable to connect to the server: x509: certificate has expired or is not yet valid
</code></pre>
<p>To reconcile, run the following command where <code>xx.xx.xx.xx</code> is your cluster's IP address.</p>
<pre><code>$ kubeadm init phase certs all --apiserver-advertise-address xx.xx.xx.xx
</code></pre>
<p>Then run the following.</p>
<pre><code>$ kubeadm init phase kubeconfig all
</code></pre>
<p>Then reboot.</p>
<p>Then run the following.</p>
<pre><code>$ cp -i /etc/kubernetes/admin.conf ~/.kube/config
</code></pre>
<p>After that you should be able to run kubectl commands.</p>
]]></description>
      <pubDate>Tue, 23 Aug 2022 22:29:15 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/how-to-renew-expired-client-certificates-in-kubernetes</guid>
    </item>
    <item>
      <title>3 Best Programming Chairs for 2022</title>
      <link>https://www.bestprogrammingtech.com/blog/3-best-programming-chairs-for-2022</link>
      <description><![CDATA[<p>As a programmer, you'll spend a lot of time in front of your computer doing work. If you don't have a <a href="https://www.bestprogrammingtech.com/blog/best-desk-for-dual-monitors">great standing desk</a> you'll be doing a lot of sitting. So be sure to pick the most comfortable office chair you can afford for your programming setup.</p>
<p>The best programming chair is one that provides comfort for the most common way you sit while programming. Ergonomically, you should sit at the front edge of your chair, knees and elbows at 90 degrees, sitting tall with relaxed shoulders, but we as programmers are not always ergonomic.</p>
<p>Some of us lean back, slouch down. Others sit on one foot. Still others sit in ways we can't imagine. All this means is that you should know thyself in order to pick out the best chair for programming.</p>
<p>Here are the 3 best programming chairs for 2022.</p>
<h3><a href="https://amzn.to/3JkR1Vf">1. RESPAWN 110 Racing Style Gaming Chair</a></h3>
<p><a href="https://amzn.to/3JkR1Vf"><img class="w-100" src="/media/best-programming-chair/respawn.jpeg"></a></p>
<p>The RESPAWN 110 Racing Style Gaming Chair is a reclining ergonomic chair with footrest, one of the more popular gaming chairs that will provide long lasting comfort.</p>
<p>The foot rest provides relief for your feet as you program, and a head rest pillow provides comfort if you need to kick back and think.</p>
<p>Available in a variety of colors to fit your style and workspace decor.</p>
<p>Technical Specs:</p>
<ul>
<li>Manufacturer: RESPAWN</li>
<li>Dimensions: 28.5"D x 28"W x 51.5"H</li>
<li>Color: Available in a variety of colors</li>
<li>Weight: 27.2 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3JkR1Vf">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3be903a">2. Modway EEI-757 Articulate Ergonomic Mesh Office Chair</a></h3>
<p><a href="https://amzn.to/3be903a"><img class="w-100" src="/media/best-programming-chair/modway-eei-757.jpeg"></a></p>
<p>The Modway EEI-757 Articulate Ergonomic Mesh Office Chair is a comfortable choice for your average programmer.</p>
<p>The six inch cushion seat of this chair provide lasting comfort for long hours of programming day in and day out.</p>
<p>A mesh material back allows airflow to avoid your back sweating; ideally, as a programmer, you use straight back posture to stay ergonomic.</p>
<p>Technical Specs:</p>
<ul>
<li>Manufacturer: Modway Inc.</li>
<li>Dimensions: 26"D x 26"W x 41.5"H</li>
<li>Color: Blue, Brown, Black, Gray, Creen or Red</li>
<li>Weight: 30 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3be903a">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3oNht0g">3. GTRACING Gaming Chair with Footrest</a></h3>
<p><a href="https://amzn.to/3oNht0g"><img class="w-100" src="/media/best-programming-chair/gtracing.jpeg"></a></p>
<p>The GTRACING Chair with Footrest is another fully featured chair to provide comfort and convenience to you as a programmer.</p>
<p>For a surround sound experience, this chair comes with two bluetooth speakers built-in which sets itself apart from other office chairs, like a Herman Miller chair.</p>
<p>Very thick padding, a head pillow and head rest provide maximum comfort while you're in the flow programming.</p>
<p>Technical Specs:</p>
<ul>
<li>Manufacturer: GTRACING</li>
<li>Dimensions: 20.87"D x 21.65"W x 53.15"H</li>
<li>Color: A variety of colors available</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3oNht0g">Check Price on Amazon</a></p>
<h2>What to look for in a programming chair</h2>
<p>Not all of us can afford sleek and comfy Herman Miller chairs, but there are other ergonomic chairs. The best office chairs for your home office not only have enough padding in your seat cushion but they also pad your wallet. Consider the following things when tryinbg to find best ergonomic office chair for programming.</p>
<p>Choose a well padded seat cushion to give your buns some relief - you are working your ass off afterall.
Where you plant your tush is a long term commitment so make sure it feels nice. Opt for high density foam.
When sitting in a chair for 8 hours a day, after 12 years, that's 24,960 hours in your chair. Make it comfy.</p>
<p>Programming can be back breaking work, mentally and physically. So find a chair with good lumbar support, (that's back support for you uncultured coders) but don't let that feature inflate the price tag. Plenty of good, affordable chairs exist that were designed with the human spine in mind. Look for a great full back support system like you'd find on a pricey Herman Miller Embody chair. You'll be sitting for long periods and will want to avoid health issues by prioritizing good lumbar support for your lower back.</p>
<p><strong>Wheels</strong>. Yep, wheels. If sitting is the new smoking, be sure to get up and walk around throughout the day. Put wheels on your so it's easier to get up and get moving. This active movement promotes blood flow, and good posture rather than bad posture. And if you want heavy duty wheels, pick up the roller blade like rubber wheels that glide very nicely.</p>
<p>When it comes to the upholstery of the chair, avoid the PU leather you might find on a steelcase leap or task chair. Instead opt for a cloth material that breathes and cleans easily.</p>
<p>Are you a tall drink of water? Consider the seat height when purchasing a programming chair. If you're on the shorter side, make sure you can comfortable touch the ground with your feet when sitting. Also check the weight capacity for the chair especially if you're over 300 pounds to make sure you can safely use the chair on a regular basis.</p>
<p>You'll go long periods of time sitting in your chair, so find an ergonomically designed chair at a non high price.</p>
<p>Padded armrests are not as important of a feature for programmer because much of your time is spent handled a mouse and keyboard. You can always purchase after market armpads for your chair. Sometime the best chair for programmers doesn't even come with armrests. The best chairs for programmers will be one that does not interfere with their programming.</p>
]]></description>
      <pubDate>Mon, 22 Aug 2022 21:18:25 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/3-best-programming-chairs-for-2022</guid>
    </item>
    <item>
      <title>3 Best KVM Switch for Dual Monitors</title>
      <link>https://www.bestprogrammingtech.com/best-kvm-switch</link>
      <description><![CDATA[<p>As a programmer, you spend a lot of time looking computer screens. Many programmers agree that more screen real-estate equtes to more productivity. Intuitively this makes sense. Programming among other things is constant problem solving. Many developers joke that they don't program, they just Google stuff and then copy/paste the solution. To an extent, this is true. You find a similar solution but then synthesize a new solution specific to your problem. It's not often you copy/paste code without modification. If it is, then you're likely not developing something interesting. That said, you'll often have multiple windows open while you're working. When it comes to selecting a good KVM switch, you'll want a devices that supports multiple monitors.</p>
<p>If programming is your profession, you likely have multiple computers. At a minimum, you'll have a work computer and a personal computer. If you work remotely, then you probably have both machines set up at your desk ready to switch to your personal computer when 5 o'clock rolls around. Unless you like to spend time switch cables around, a KVM switch will provide a very convenient and fast way to switch between work and play.</p>
<h2>What is a KVM switch?</h2>
<p>A KVM switch is a device that allows a Keyboard, Video and Mouse (KVM) to be shared between multiple computers.
<img class="w-100" src="/media/best-kvm-switch/kvm-what-is.drawio.png"></p>
<p>On one side of the KVM, you have a spot to plug in a keyboard, a monitor and a mouse. And on the other side, you have a spot to plug in two or more computers. Often times, a KVM switch will have other peripheral devices you can plug in like a USB drive or printer that can be shared between the mutiple computers you're connecting.</p>
<h2>What is the best KVM swtich?</h2>
<p>Every programmer's desk setup is different, so you will need to evaulate your own needs to make a proper KVM switch decision. For our purposes here, we will assum you're a programmer with the following needs:</p>
<ul>
<li>dual 2k monitors</li>
<li>a USB-C 65% mechanical keyboard (<a href="/best-65-keyboard">click here for the best 65 keyboard</a>)</li>
<li>a USB mouse</li>
<li>two computers</li>
</ul>
<p>Here is a list of 3 great KVM options for programmers given the above criteria. After this list, you can read more information about choosing the best KVM switch for your needs.</p>
<h3><a href="https://amzn.to/3aUPj0e">1. DIGITNOW HDMI KVM Switch 2 Port Dual Monitor Extended Display</a></h3>
<p><a href="https://amzn.to/3aUPj0e"><img class="w-100" src="/media/best-kvm-switch/digitnow.jpg"></a></p>
<p>The DIGITNOW HDMI KVM Switch 2 Port Dual Monitor Extended Display is an excellent KVM switch for your typical programmer.
It supports 4K resolution, dual monitors as well as USB 3.0 devices.
Additional peripheral support for scanner, 3D printer, webcam and audio speakers.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: DIGITNOW</li>
<li>Dimensions: 11" x 3" x 2"</li>
<li>Color: Silver</li>
<li>Weight: 2.75 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3aUPj0e">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3OqaNj4">2. TESmart HDMI KVM Switch 2 Port Dual Monitor Extended Display</a></h3>
<p><a href="https://amzn.to/3OqaNj4"><img class="w-100" src="/media/best-kvm-switch/tesmart.jpg"></a></p>
<p>The TESmart HDMI KVM Switch 2 Port Dual Monitor Extended Display is another great KVM switch for programmers.
Support for two 4K monitors which is a typcial setup for a web development and other programming areas.
Keyboard and Mouse passthrough allows for compatibilty with a wide variety of mechanical keyboards and gaming mouses often used by developers and programmers.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: TESmart</li>
<li>Dimensions: 11.81" x 4.63" x 1.2"</li>
<li>Color: Grey or Black or Red</li>
<li>Weight: 1.32 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3OqaNj4">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3zlgTNC">3. MLEEDA Dual Monitor KVM Switch HDMI 2 Port 4K</a></h3>
<p><a href="https://amzn.to/3zlgTNC"><img class="w-100" src="/media/best-kvm-switch/mleeda.jpeg"></a></p>
<p>The MLEEDA Dual Monitor KVM Switch HDMI 2 Port 4K is a tabletop KVM switch for programmers to connect up to two computers to share dual monitors.
Typically, programmers will be running high resolution 4K monitors and this KVM switch supports via HDMI outputs.
To switch between machines, programmers can use the physical push button switch on the top of the KVM switch.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: MLEEDA</li>
<li>Dimensions: 3.98" x 2.56" x 1.18"</li>
<li>Color: Black</li>
<li>Weight: 1.12 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3zlgTNC">Check Price on Amazon</a></p>
<h2>What to look for in KVM Switches</h2>
<p>KVM switches come in a variety of configuration but are specific to a certain kind of setup. As a programmer, or any kind of computer worker, you need to consider your particular setup. Especially regarding your keyboard and mouse connections as well as your monitor connection. If your peripherals, i.e. mouse and keyboard, connected via USB then you'll want a USB KVM. You'll also want to look closely at what version USB KVM switch you need. The best KVM switches will support the latest USB 3.0 rather than USB 2.0, but again this depends on your specific connections.</p>
<h2>How Many Monitors do you have?</h2>
<p>A lot of KVM switches support a single monitor to share with multiple computers. If you're a programmer, you likely have two or more monitors with your computer setup. If that is the case you want to find KVM switches that support dual monitors. The key phrase here is "dual monitor" or "dual display" and that will help find the right device for you. KVM switches that only support a single monitor won't work for you. Well, sort of...</p>
<p>If you monitors supports HDMI, you can get an HDMI KVM Switch and daisy chain multiple monitors together. Be sure that the HDMI KVM switch support HDMI 1.2 or higher as this version of HDMI supports daisy chaining. If you have high end monitors, such as multiple 4K 60HZ monitors, you'll have to select a higher end KVM. These high end KVM switches may require a specific power adapter to use external power to driver the high resolution video going to a daisy chained multiple monitor setup. Lower resolution monitors may not require any specific power supply requirements.</p>
<h2>How Many Computers and Devices do you have?</h2>
<p>It's not often with programming you have more that one computer you're working with. Most often, you'll have 2 computers so you'll want to find a 2 port KVM switch to connect each machine. In the event you have more than two machines, you'll need to spend extra money and pick among the 4 port KVM switches.</p>
<p>As a programmer, you may have multiple USB peripheral devices. Working from home? You likely have a USB camera and a USB micrphone that your comptuers share. Do you need a KVM that has two USB or 4 USB ports for peripherals? With a microphone, check that the KVM switch has audio support for your device.</p>
<p>Some KVM switches act as a USB hub to support multiple peripherals. Check your devices requirements for whether you need to support USB 2.0 or USB 3.0 connectors. Some older devices use a micro USB port, so if you need this type of connection, be sure to find a KVM switch that supports it.</p>
<h2>Switching Between Computers</h2>
<p>Some KVM switches have a physical push button as a switch selector. This push button switch allows you to change computers. Another options is a keyboard combination or set of hotkeys that allows you to move from one computer to another. This hotkey method to switch between machines is a good choice for programmers because often times programmers are more efficient in their work when their hands stay on the keyboard.</p>
<p>Look for a hotkey KVM switch that is driver free and doesn't require you to install special software on your machines. If you're a programmer working on a company issued machine, you may not be able to install the right drivers to get it to work. Best to find a plug and play KVM switch that works out of the box without any software to install.</p>
]]></description>
      <pubDate>Mon, 25 Jul 2022 15:13:21 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/best-kvm-switch</guid>
    </item>
    <item>
      <title>3 Best Desk for Dual Monitors and Home Office - 2022 Review</title>
      <link>https://www.bestprogrammingtech.com/blog/best-desk-for-dual-monitors</link>
      <description><![CDATA[<p>Picking the best desk for you dual monitor setup can greatly improve your productivity. With remote work on the rise, you may be looking to improve your home office by
purchasing a great desk to support your multiple monitor setup.</p>
<h2>What is the best desk for dual monitors?</h2>
<p>Here are my picks for the best desk for dual monitors with your home office.</p>
<h3><a href="https://amzn.to/3zLItEk">1. FLEXISPOT Classic 3 Stages Dual Motor Electric Standing Desk</a></h3>
<p><a href="https://amzn.to/3zLItEk"><img class="w-100" src="/media/best-desk-dual-monitors/flexispot-classic-3-stage-standing-desk.jpeg"></a></p>
<p>The FLEXISPOT Classic 3 Stages Dual Motor Electric Standing Desk is a great desk for multi monitor setup.
It comes in multiple sizes ranging from 48" width to 55" width.
The sturdy metal frame makes it ideal to support the weight of multiple monitors.
This is an all around great home office desk that provides a comfortable and efficient work space.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: FLEXISPOT</li>
<li>Dimensions: 28"D x 55"W x 50"H</li>
<li>Shape: Rectangular</li>
<li>Color: Black</li>
<li>Desktop: 55"x28" Wood Top</li>
</ul>
<p>Pros:</p>
<ul>
<li>Solid slab desktop for quality feel</li>
<li>Quiet, motorized lieft system to change to a standing desk</li>
<li>One touch panel with memory for 3 different standing heights</li>
</ul>
<p>Cons:</p>
<ul>
<li>Some assembly required</li>
<li>Only comes in black finish</li>
<li>Premium Price</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3zLItEk">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3HDiO2y">2. DESIGNA 55 Inch Gaming Desk with Led Lights, RGB Large Gaming Computer Desk</a></h3>
<p><a href="https://amzn.to/3HDiO2y"><img class="w-100" src="/media/best-desk-dual-monitors/designa-55-in-gaming-desk.jpeg"></a></p>
<p>The DESIGNA 55 Inch Gaming Desk with Led Lights, RGB Large Gaming Computer Desk is a very cool desk especially if you're a gamer.
This desk provides a very clear installation to minimize your desk assembly time.
Comes with a built in cup holder attached to the side to avoid spilling liquid on your computer equipment.
Also featured is a double headset holder attached on the underside of the desktop to keep your workspace clear.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: DESIGNA</li>
<li>Dimensions: 23.63"D x 58.38"W x 31.38"H</li>
<li>Shape: Rectangular</li>
<li>Color: Black</li>
</ul>
<p>Pros:</p>
<ul>
<li>Comes with a 6-color RGB LED lighting</li>
<li>High quality, sturdy steel leg frame to make for a stable desktop</li>
<li>Excellent design for human centered accessories such as cup holder and USB charging ports</li>
</ul>
<p>Cons:</p>
<ul>
<li>Not adjustable as a standing desk</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3HDiO2y">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3N0KQ9n">3. Vitesse Gaming Desk, Gaming Computer Desk, PC Gaming Table</a></h3>
<p><a href="https://amzn.to/3N0KQ9n"><img class="w-100" src="/media/best-desk-dual-monitors/vitesse-2.jpeg"></a></p>
<p>Choose the Vitesse Gaming Desk, Gaming Computer Desk, PC Gaming Table to fit around your personality. The desk comes in three different colors, black/pink/red, to express your personality.
Whether you're a gamer, programmer or working professional, this desk comes with features to help you as you work or play.
Comes in varying sizes of 40" to 55" to 60" sizes.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: Waleaf</li>
<li>Dimensions: 40"D x 23.6"W x 29.5"H</li>
<li>Shape: Rectangular</li>
<li>Color: Black or Pink or Red</li>
</ul>
<p>Pros:</p>
<ul>
<li>Great features at a modest price</li>
<li>Comes with cup holder attachment and headphone hook</li>
<li>Excellent design for human centered accessories such as cup holder and USB charging ports</li>
</ul>
<p>Cons:</p>
<ul>
<li>Some customers experienced difficulties assembling this desk</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3N0KQ9n">Check Price on Amazon</a></p>
]]></description>
      <pubDate>Mon, 20 Jun 2022 14:16:21 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/best-desk-for-dual-monitors</guid>
    </item>
    <item>
      <title>3 Best 5k Monitor for 2022</title>
      <link>https://www.bestprogrammingtech.com/blog/3-best-5k-monitor-for-2022</link>
      <description><![CDATA[<p>When it comes to the best 5K monitor in 2022, LG is the company to beat. They practically corner the market in high resolution 5K monitors. Look for future updates to this article for more manufacturers release new 5K monitors.</p>
<p>A primary benefit of 5K monitors is the ultra-high resoultion at 5120 x 2160 pixels. This resolution allows for a large amount of screen real estate to increase your productivity.</p>
<h2>What is the best 5K monitor?</h2>
<p>Here are my picks for the best 5K monitor. After this list you can read about what to look for in a 5K monitor.</p>
<h3><a href="https://amzn.to/3b5ZPS6">1. LG 40WP95C-W 40” UltraWide Curved 5K Monitor</a></h3>
<p><a href="https://amzn.to/3b5ZPS6"><img class="w-100" src="/media/best-5k-monitor/lg-40wp95c.jpeg"></a></p>
<p>The LG 40WP95C-W 40” UltraWide Curved 5K Monitor is a great option for creative people.
From video editing to special effects you can stay productive with an incredible amount of screen space.
If you're a gamer, you can enjoy a totally immersive game experience with the latest AAA titles.
Be sure your PC gaming machine has enough horse power to drive this display.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: LG</li>
<li>Series: UltraWide</li>
<li>Screen size: 39.7"</li>
<li>Color: Abyss Black</li>
<li>Resolution: 5120 x 2160</li>
<li>USB-C Port: Yes</li>
</ul>
<p>Pros:</p>
<ul>
<li>HDR support for incredible picture quality</li>
<li>IPS panel display for high contrast ratio of colors</li>
<li>Built in speakers for rich sound experience</li>
</ul>
<p>Cons:</p>
<ul>
<li>Premium Features at a Premium Price</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3b5ZPS6">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3tGp1F8">2. LG 27MD5KB-B Ultrafine 27" 16:9 5K Monitor</a></h3>
<p><a href="https://amzn.to/3tGp1F8"><img class="w-100" src="/media/best-5k-monitor/lg-27md5kb-b.jpeg"></a></p>
<p>The LG 27MD5KB-B Ultrafine 27" 16:9 5K Monitor is an excellent monitor with an impressive 1.07 billion colors.
Additionally, this monitor has built in camera a speakers for a sleak aesthetic when sitting on your desk.
This 5K monitor comes with a Thunderbolt 3 connection that integrates well with macOS.</p>
<p>Apple users will want to upgrade to the most recent Mac os to ensure best 5k monitor experience. The latest Macbook pro laptops should be ok.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: LG</li>
<li>Series: UltraWide</li>
<li>Screen size:</li>
<li>Color: Abyss Black</li>
<li>Resolution: 5120 x 2880</li>
<li>USB-C Port: Yes</li>
</ul>
<p>Pros:</p>
<ul>
<li>HDR support for vibrant picture quality</li>
<li>IPS panel display</li>
<li>Built in speakers, microphone and webcam (not a pop up webcam)</li>
</ul>
<p>Cons:</p>
<ul>
<li>Location of ports not ideal for cable management</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3tGp1F8">Check Price on Amazon</a></p>
<h2>What is the best 5K monitor?</h2>
<p>Here are my picks for the best 5K monitor. After this list you can read about what to look for in the best 5K monitors.</p>
<h3><a href="https://amzn.to/3QtYB3i">3. LG 34BK95U-W UltraFine 34" 21:9 5K Monitor</a></h3>
<p><a href="https://amzn.to/3QtYB3i"><img class="w-100" src="/media/best-5k-monitor/lg-34bk95u-w.jpeg"></a></p>
<p>The LG 34BK95U-W UltraFine 34" 21:9 5K Monitor is another option from the LG UltraFine series for incredible color contrast and richness. It combines the wide screen form with the ultra high definition contrast for brilliant colors while multi-tasking.
It's a good monitor for gamers, content creators and programmers.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: LG</li>
<li>Series: UltraWide</li>
<li>Screen size: 34"</li>
<li>Color: Abyss Black</li>
<li>Resolution: 5120 x 2160</li>
<li>USB-C Port: Yes</li>
</ul>
<p>Pros:</p>
<ul>
<li>HDR support for vibrant picture quality</li>
<li>IPS panel display</li>
<li>Built in speakers, microphone and webcam (not a pop up webcam)</li>
</ul>
<p>Cons:</p>
<ul>
<li>Location of ports not ideal for cable management</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3QtYB3i">Check Price on Amazon</a></p>
<h2>What to look for in a 5K Monitor</h2>
<p>The best 5k monitor is one that fits your intended use case.</p>
<p>Do you have a multi monitor setup with multiple monitors? If so, then consider if an ultrawide monitor is the right choice for you. Having an ultrawide monitor 5k monitor might not easily fit on your desk with your other monitors.</p>
<p>The size, shape and aspect ratio are important factors for your 5K monitor. Features like a wide viewing angle are good for watching movies especially with a few people sitting around and to the side of the 5K monitor. Ultrawide monitors will likely be curved monitors which make the wide viewing angles less important.</p>
<p>Remember that a curved display, common with ultra wide monitors, may aesthetically clash with other monitors on your desk. So you may consider replacing them with one or more 5K monitors. Finding a 5K monitor at a reasonable price point is important when you planning to buy multiple 5K monitors. Look into a compatible height adjustable stand to hold a multi-display setup.</p>
<h2>Let's talk about Connectivity</h2>
<p>You 5K monitor will need to push a large amount of data from your PC to the screen. Many 5K monitors opt for a usb type c port to support large amount of bandwidth. Evaluate the USB ports on the monitor and note which type and generation they are. USB-A and USB-B is an older standard that may have a slightly lower data transfer speed than USB-C ports. USB type C connectivity is very common in a 5K monitor but pay attention to the number of USB ports.</p>
<p>Does the 5K monitor have a single usb c port? If so, you may not be able to daisy chain multiple 5K monitors together for more screen area. Look at what USB type C interface generation the 5K monitor has. Is it USB 3.2 or 4? Depending on the generation of USB-C ports you get varying speeds of 10/20/40 Gbps data transfer rate. And of course this connectivity drives your cable choice. For example, USB-A connections require a USB-A cable, USB-C a USB-C cable, etc. You will most commonly encounter USB-C type connections when looking for a 5K monitor. HDMI ports are also common.</p>
<p>The right USB-C cable (or displayport cable) is important. A high quality cable can ruin the high resolution of a great 5K monitor.</p>
<p>If your machine doesn't have enough USB C ports consider using a USB hub for your setup. USB hubs have one "inbound" USB C port that can connect to your machine with a single cable, and then have multiple "outbound" USB C cables to connect to multiple peripherals. In my experience, using a USB hub can sometimes but not always increase the CPU usage of your machine.</p>
<p>This decision is driven by how many upstream regular usb ports you need for your other devices. The best 5K monitors are the ones that won't melt your CPU when plugged in. The best 5K monitor will have comprehensive connectivity for you to hook up to your current machine with little frustration.</p>
<h2>Size Matters</h2>
<p>Screen size is an important feature. Too big and you may injure yourself swiveling your head from left to right. It's also hard to avoid squinting at the high resolution, so choose wisely to maintain minimal eye strain. Too small and you won't have enough room to do meaning, productive work. If you need to have up to six windows visible on 5K monitor, best to go with a ultrawide monitor that gives you plenty of space.</p>
<p>You can skip the ultrawide monitor and go with multi screens if it's more affordable. Be sure to look for 5K monitors with an ultra thin bezel to lessen the distraction when jumping between monitors. The bezel is the top/bottom/left/right sides of the monitor that does not contribute to display images.</p>
<h2>Multi Monitor Setup</h2>
<p>Some people like to setup three 5K monitors arranged with one horizontal in the center of their desk and two vertical monitors on either side. If this is your use case be sure to check the vertical resolution of the 5K monitor you're purchasing because it may differ than the horizontal resolution. You can also opt for your center monitor to be a curved display running at its native resolution.</p>
<p>When driving multiple 5K monitors, look for compatible graphics cards that can support all your displays at the same time.</p>
<p>If your computer can only support a single screen, go with the biggest 5K monitor your graphics card can support. Choose a curved display because it will give you an ample screen size for your money. Curved monitors also provide great viewing angles so you have crisp, clear image quality wherever you look.</p>
<p>The best 5k monitors are the ones that fit your budget and usage.</p>
<h2>Final Thoughts</h2>
<p>Consider all of the above factors then choosing the best 5K monitor. Do you really need that high of resolution?</p>
<p>The best 5K monitors are the ones that satisfy the most items on your must-have list. The goal is ample screen size at a reasonable price.</p>
]]></description>
      <pubDate>Sat, 18 Jun 2022 19:07:29 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/3-best-5k-monitor-for-2022</guid>
    </item>
    <item>
      <title>3 Best Gaming Laptop Under $1500 (2022 Edition)</title>
      <link>https://www.bestprogrammingtech.com/blog/3-best-gaming-laptop-under-1500-2022-edition-</link>
      <description><![CDATA[<p>Picking the best gaming laptop under $1500 is a balance between performance and budget. What sets apart one gaming laptop from other gaming laptops will be a combination of GPU, CPU and memory.</p>
<p>Here is a list of the 3 best gaming laptops under $1500. Many factors such as battery life go into choosing the best gaming laptop. Those factors are discussed at the end of this article.</p>
<h3><a href="https://amzn.to/3NYou9L">1. Acer Predator Helios 300 Gaming Laptop</a></h3>
<p><a href="https://amzn.to/3NYou9L"><img class="w-100" src="/media/best-laptop-under-1500/best-laptop-under-1500-acer-predator.jpg"></a></p>
<p>The Acer Predator Helios 300 Gaming Laptop is an superb gaming laptop running a 10th generation intel Core i7 processor.
For graphics, this excellent gaming laptop runs an NVIDIA GeForce RTX 2060 that can run most modern games.
This is a very capable gaming laptop that can run most AAA games.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: Acer</li>
<li>Series: PH315-53-72XD</li>
<li>Screen size: 15.6"</li>
<li>Color: Abyss Black</li>
<li>Hard disk size: 512 GB</li>
<li>CPU: Corei7-10750H</li>
<li>RAM Memory: 16 GB</li>
<li>Graphics Card: NVIDIA GeForce RTX 2060</li>
<li>Weight: 5.07 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3NYou9L">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3xVxd6X">2. ASUS ROG Strix G15 Gaming Laptop</a></h3>
<p><a href="https://amzn.to/3xVxd6X"><img class="w-100" src="/media/best-laptop-under-1500/asus-rog-strix-g15.jpeg"></a></p>
<p>The ASUS ROG Strix G15 Gaming Laptop is an great gaming laptop running a AMD Ryzen 7 processor.
Amazing design with RGB underlight to illuminate the chassis to set the mood while gaming.
With an aluminum case and narrow bezel, this gaming laptop provides great portability without sacrificing screen size.</p>
<p>This is a great price among mid range gaming laptops under $1500. Most gaming laptops charge a premium price for 16GB of memory.</p>
<p>Compared to other gaming laptops under $1500, this light gaming laptop provides great portability.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: ASUS</li>
<li>Series: ROG Strix G15</li>
<li>Screen size: 15.6"</li>
<li>Color: Gray</li>
<li>Hard disk size: 512 GB</li>
<li>CPU: AMD Ryzen 7</li>
<li>RAM Memory: 16 GB</li>
<li>Graphics Card: NVIDIA GeForce RTX 3050 Ti</li>
<li>Weight: 4.63 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3xVxd6X">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3MWcIv6">3. Acer Nitro 5 AN515-55-53E5 Gaming Laptop</a></h3>
<p><a href="https://amzn.to/3MWcIv6"><img class="w-100" src="/media/best-laptop-under-1500/acer-nitro-5.jpeg"></a></p>
<p>The Acer Nitro 5 AN515-55-53E5 Gaming Laptop is an excellent, cheap laptop for a modest budget. This gaming laptop comes with a beautiful visual display running at 144Hz for a sharp, smooth and blur-free gameplay. To stay running at top performance, this gaming laptop comes with dual fans cooling system to keep your gaming setup running at top GPU performance.</p>
<p>This gaming laptop delivers incredible value at a great price. Ideal for budget gamers.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: Acer</li>
<li>Series: AN515-55-53E5</li>
<li>Screen size: 15.6"</li>
<li>Color: Black</li>
<li>Hard disk size: 256 GB</li>
<li>CPU: Core i5</li>
<li>RAM Memory: 8 GB</li>
<li>Graphics Card: NVIDIA GeForce RTX 3050</li>
<li>Weight: 5.07 lbs</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3MWcIv6">Check Price on Amazon</a></p>
<h2>What to look for in a gaming laptop?</h2>
<p>When evaluating gaming laptops, especially gaming laptops under $1500, you want to find a powerful gaming laptop that provides a great gaming experience. Your primary purpose is obviously playing games so you want a gaming laptop that can support games you want to play.</p>
<p>If you're a competitive gamer playing multiplayer games, consider increasing your budget to ensure your gaming laptop can run the most demanding games. Competitive gamers can spend upwards of $3,000 for excellent gaming performance. Typically, the best gaming experience for playing games at this level is to use a gaming pc.</p>
<p>For gamers on the go looking for a new gaming laptop, long battery life will be desired for long gaming sessions. Comparing and contrasting battery life benchmarks will help you find the right gaming laptop.</p>
<p>A lot of factors are at play (pun?) when choosing a gaming machine for the best gaming experience.</p>
]]></description>
      <pubDate>Thu, 16 Jun 2022 13:42:28 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/3-best-gaming-laptop-under-1500-2022-edition-</guid>
    </item>
    <item>
      <title>How to Create Custom Orchard Core Shortcodes</title>
      <link>https://www.bestprogrammingtech.com/blog/how-to-create-custom-orchard-core-shortcodes</link>
      <description><![CDATA[<p>Orchard Core shortcodes are a powerful feature of Orchard Core. It empowers you to add logic to Orchard Core editors. For example, you can customize links in the Blog Recipe's default Markdown editor. You see how to do this in the steps below.</p>
<h2>Starting Point</h2>
<p>If you already have an Orchard Core blog post ready, skip to the next section.</p>
<p>As a starting point, create an Orchard Core site and use the default Blog Recipe to set it up.
<img class="w-100" src="/media/custom-shortcode/shortcode-01-site-setup.png"></p>
<p>Use the default blog article created by the recipe or create a new article. Click edit to see the custom Markdown editor.
<img class="w-100" src="/media/custom-shortcode/shortcode-02-blog-list.png"></p>
<h2>How do you create a custom Orchard Core shortcode?</h2>
<p>Navigate to Shortcodes feature (enabled by default with Blog recipe) by clicking Design-&gt;Shortcodes in the admin menu.
<img class="w-100" src="/media/custom-shortcode/shortcode-04-shortcodes-empty.png"></p>
<p>In the upper righthand corner click the <code>Add Shortcode</code> button to add a new shortcode.
<img class="w-100" src="/media/custom-shortcode/shortcode-05-create.png"></p>
<p>On the <code>Create Shortcode</code> screen, fill in the following details to create a new shortcode that produces a Bootstrap5 stylized link.</p>
<ul>
<li>Name: <code>link</code></li>
<li>Hint: <code>Create a stylized link</code></li>
<li>Usage: <code>[link]Click me[/link]</code></li>
<li>Categories: <code>HTML Content</code></li>
<li>Default Shortcode Value: <code>[link]Click me[/link]</code></li>
<li>Content: <code>&lt;a href="#"&gt;{{Content}}&lt;/a&gt;</code></li>
<li>Note that the <code>Content</code> value here is using a shortcode argument to allow the user to customize the text of the link. More on shortcode arguments later.
<img class="w-100" src="/media/custom-shortcode/shortcode-06-list-link.png"></li>
</ul>
<p>Click <code>Save</code> button and see that you return to the Shortcodes list screen to see your new <code>link</code> shortcode.
<img class="w-100" src="/media/custom-shortcode/shortcode-06-list-link.png"></p>
<p>Navigate back to editing a blog post and add the new link shortcode using the editor menu button.
<img class="w-100" src="/media/custom-shortcode/shortcode-07-edit-post-menu.png"></p>
<p>You will now see the <code>Available Shortcodes</code> modal window popup and your new <code>[link]</code> shortcode will be there. Click the <code>Add</code> button.
<img class="w-100" src="/media/custom-shortcode/shortcode-08-available-shortcode.png"></p>
<p>After clicking the <code>Add</code> button you now see your <code>link</code> shortcode text added to your markdown blog post.
<img class="w-100" src="/media/custom-shortcode/shortcode-09-blog-post-link.png"></p>
<p>Click the <code>Preview</code> button to see that your <code>link</code> shortcode display as a clickable link.
<img class="w-100" src="/media/custom-shortcode/shortcode-10-post-view-works.png"></p>
<p>At this point you've successfully created your custom shortcode and used it in a blog post. This is not a very useful shortcode because the link doesn't do anything. Luckily, Orchard Core shortcodes have a way to customize shortcodes using arguments.</p>
<h2>How to refactor your custom shortcode to use arguments?</h2>
<p>The <code>link</code> shortcode is not useful right now because it is hardcoded to do nothing. Let's fix that.</p>
<p>You can revise your custom shortcode to accept and use shortcode arguments. To start, let's allow the user of your shortcode to add <code>class</code> and <code>href</code> arguments allowing users to change the styling of the link and the URL to where the ancor tag points.</p>
<p>Navigate to the <code>Edit Shortcode</code> screen for your custome <code>link</code> shortcode. Change the <code>Content</code> field to read as follows.</p>
<pre><code>&lt;a class="{{Args.class}}" href="{{Args.href}}"&gt;{{Content}}&lt;/a&gt;
</code></pre>
<p>Similarly, changes the <code>Default Shortcode Value</code> field and the <code>Usage</code> field to show the new arguments in action.</p>
<pre><code>[link class='btn btn-primary' href='#']Click me[/link]
</code></pre>
<p>Your revised shortcode should look similar to the following screenshot.
<img class="w-100" src="/media/custom-shortcode/shortcode-13-edit-shortcode-args.png"></p>
<p>You can now return to editing the blog post and use those arguments in your custom shortcode.
<img class="w-100" src="/media/custom-shortcode/shortcode-13-edit-shortcode-args.png"></p>
<p>If all goes well, you'll see your styling and link now works using the shortcode arguments.
<img class="w-100" src="/media/custom-shortcode/shortcode-14-demo-args-work.png"></p>
]]></description>
      <pubDate>Tue, 07 Jun 2022 02:43:01 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/how-to-create-custom-orchard-core-shortcodes</guid>
    </item>
    <item>
      <title>How to Fix Orchard Core Blog Recipe Image Width</title>
      <link>https://www.bestprogrammingtech.com/blog/how-to-fix-orchard-core-blog-recipe-image-width</link>
      <description><![CDATA[<p>Orchard core is a .NET based content management system (CMS) that allows for rapid deployment and implementation of a variety of websites. It's a great alternative to Word Press and other CMS implemented using Microsoft's .NET platform.</p>
<p>If you're using Orchard Core v1.4.0, the Blog Recipe uses a custom Markdown editor for writing GitHub flavor markdown. For images, Orchard Core implements a special thing call an "image shortcode" that allows you to reference media files uploaded using the Orchard Core content management system. In particlar, the Markdown syntax for display an image in Orchard Core is the following.</p>
<pre><code>[image]some-image.jpg[/image]
</code></pre>
<p>More information can be found in the <a href="https://docs.orchardcore.net/en/latest/docs/reference/modules/Shortcodes/#image">Orchard Core Documentation for the image shortcode here.</a></p>
<p>Orchard Core Shortcode allow arguments (see documentation link above) that allow some control over how the logic provided by the shortcode works.</p>
<h2>How to fix Orchard Core Blog Recipe image width?</h2>
<p>By default, adding an image to a Orchard Core blog post displays the image with the abosolute height and width of the image.</p>
<p>For example, the following image should look like it extends past the width of the blog post.
<img src="/media/post-bg.jpg"></p>
<p>The image shortcode allows for some customization of the width and height of the image but passes those as query string parameters for the server to adjust the size of the image. Since you don't know the viewport dimensions of th visitor to your blog, it's hard to know which size to select. Luckily, the Orchard Core development team allows you to pass a <code>class</code> argument to the <code>image</code> shortcode. By default, Orchard Core's Blog Recipe theme uses Bootstrap 5 and you can pass <code>w-100</code> for a 100% width for the image.</p>
<p>The following is the same image from above using the 100% class.
<img class="w-100" src="/media/post-bg.jpg"></p>
<p>And here is the Orchard Core markdown syntax to use for styling the image shortcode.</p>
<pre><code>[image class=w-100]post-bg.jpg[/image]
</code></pre>
]]></description>
      <pubDate>Mon, 06 Jun 2022 14:51:24 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/blog/how-to-fix-orchard-core-blog-recipe-image-width</guid>
    </item>
    <item>
      <title>Kubernetes Ingress Returns 413 Response</title>
      <link>https://www.bestprogrammingtech.com/Kubernetes-ingress-413</link>
      <description><![CDATA[<p>Kubernetes has a bit of a steep learning curve but can elevate your devops skillset to do more with less. What used to take a team of devops engineers now can be achieved by a single individual. Kubernetes works well when it, well, works.</p>
<p>It does not always work.</p>
<h1>How to Troubleshoot Kubernetes Ingress 413 Response</h1>
<p>While setting up a blog for a client, I needed to upload a series of JPEG images that were larger than 1MB in size. Testing my website locally, everyting worked as expected when I would upload a 2MB image file. But I would receive an error when pusing the website to production.</p>
<p>The error message I received in the admin interface was an unhelpful <code>An error has occurred</code>. After some experiementing I discovered:</p>
<ul>
<li>I can upload images less than 1MB</li>
<li>Images currently deployed with the website, when downloaded, could not be re-uploaded</li>
<li>I need to check the web console for errors more often</li>
</ul>
<p>After a little (and quite embarrasing) bit of time, I determine that the POST request to upload the image file return an HTTP status code of 413 which is a "Payload Too Large" error. More information can be found <a href="https://developer.mozilla.org/en-US/docs/web/http/status/413">on MDN web docs here</a>.</p>
<p>In the response, I determine that the message was returned by nginx which was the type of ingress used in the Kubernetes cluster hosting the blog. After a very quick bit of googling, I determined that this was a quick fix by annotating the Ingress to increase the body size of the request.</p>
<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: customerblog 
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/proxy-body-size: "30m"
</code></pre>
<p>After implementing the above annotation and applying to the Kubernetes cluster, I was able to successfully upload images larger than 1MB.</p>
]]></description>
      <pubDate>Sun, 05 Jun 2022 10:31:08 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/Kubernetes-ingress-413</guid>
    </item>
    <item>
      <title>5 Best 65% Keyboard in 2022 (Ranked)</title>
      <link>https://www.bestprogrammingtech.com/best-65-keyboard</link>
      <description><![CDATA[<p>Choosing a great keyboard is crucial to your programming productivity. Different developers have different criteria for what is "great" about their keyboard. Programmers often prefer mechanical keyboards with mechanical switches and other switch options.</p>
<p>Some developers prefere a particular sound from their keyboard. Other programmers value the tactile reponse, or the way the key springs back after they click it. One critical factor of your productivity will be the keyboard layout/size. In general, keyboard layouts/sizes range from full size with 100% of the possible keys to 80% (no keypad) to 65% (without function keys) to mini 60% keyboards.</p>
<h2>What is the Best 65% Keyboard?</h2>
<p>To recap (no pun intended), a 65% keyboard does not have a ten keypad or the function key row and the home/end/paging/arrow keys are compact along the right side. Here is an example.
<img alt="best" class="w-100" src="/media/65-keyboard-layout.jpg"></p>
<p>Many factors go into determining the best 65% keyboard. You can see more details at the end of the article.</p>
<p>For now, here are my picks for best 65% keyboard.</p>
<h3><a href="https://amzn.to/3mhdHes">1. HyperX Alloy Origins 65 - Mechanical Gaming Keyboard</a></h3>
<p><a href="https://amzn.to/3mhdHes"><img class="w-100" src="/media/hyperx-alloy.jpg"></a></p>
<p>The HyperX Alloy Origins 65 Mechanical Keyboard is an excellent compact keyboard that allows more room on your desk for your mouse and other devices you may need while programming. This excellent keyboard has an aluminum body casing and an RGB backlight. The best 65% mechanical keyboards offer a variety of color modes and lighting effects. The double shot PBT keycaps have function names printed on side of keys for easy secondary function. This secondary function eliminates the needs for a function row.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: HyperX</li>
<li>Series: Alloy Origins 65</li>
<li>Dimensions: 12.4" x 4.2" x 1.5"</li>
<li>Color: Black</li>
<li>Weight: 1.74 lbs.</li>
<li>PBT keycaps: Yes</li>
<li>Hot swappable: No</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3mhdHes">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3GUax9V">2. Keychron K6 Bluetooth 5.1 Wireless Mechanical Keyboard</a></h3>
<p><a href="https://amzn.to/3GUax9V"><img class="w-100" src="/media/keychron-65-keyboard.jpg"></a></p>
<p>The Keychron K6 Bluetooth 5.1 Wireless Mechanical Keyboard is a great option for those programmers who wish not to deal with extra wires on their desk. It is compatible with both Windows and MacOS, and features Gateron Blue Switch. These loud, clicky switches provide a satisfying sound and touch, but may annoy coworkers or family members if you program at home.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: Keychron</li>
<li>Connection: Bluetooth</li>
<li>Weight: 1.92 lbs.</li>
<li>Switches: Gateron G Pro Blue Switch</li>
<li>Battery Life: Up to 200 hours (backlight off)</li>
<li>Hot swappable: No</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3GUax9V">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3MlOH0q">3. RK ROYAL KLUDGE RK68 (RK855) Wired 65% Mechanical Keyboard</a></h3>
<p><a href="https://amzn.to/3MlOH0q"><img class="w-100" src="/media/RK-Royal-Kludge-best-65-keyboard.jpeg"></a></p>
<p>The RK ROYAL KLUDGE RK68 (RK855) Wired 65% Mechanical Keyboard is an incredibly comfortable keyboard due to it's smooth and light click sounds from it's use of red switches.
If you prefer a different sound and feel, the keyboard features hot-swappable switches you can change to your liking.
This level of customization allows you to experiment with different typing experiences to find what works best for you as a programmer.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: RK ROYAL KLUDGE</li>
<li>Series: Alloy Origins 65</li>
<li>Dimensions: 12.95" x 6.02" x 1.77"</li>
<li>Color: White or Black</li>
<li>Weight: 0.317 lbs.</li>
<li>Hot swappable: Yes</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3MlOH0q">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3NpmgQd">4. FNATIC STREAK65 - Compact RGB 60 Gaming Mechanical Keyboard</a></h3>
<p><a href="https://amzn.to/3NpmgQd"><img class="w-100" src="/media/fnatic-best-65-keyboard.jpg"></a></p>
<p>The FNATIC STREAK65 - Compact RGB 60 Gaming Mechanical Keyboard features low profile switches that are lighting fast and quiet.
Designed by Fnatic, one of the leaders is esports comptetivite gaming, this keyboard is sleek, ergonomic and completely customizable.
This keyboard allows up to 4 profiles for custom keymaps and macros you can program to accelerate your development.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: Fnatic</li>
<li>Series: STREAK65 US Layout</li>
<li>Dimensions: 12.44" x 4.3" x 0.79-1.1"</li>
<li>Color: Black</li>
<li>Weight: 0.925 lbs.</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3NpmgQd">Check Price on Amazon</a></p>
<h3><a href="https://amzn.to/3aLs603">5. Drop ALT Mechanical Keyboard — 65% (67 Key) Gaming Keyboard</a></h3>
<p><a href="https://amzn.to/3aLs603"><img class="w-100" src="/media/dropalt-best-65-keyboard.jpeg"></a></p>
<p>The Drop ALT Mechanical Keyboard — 65% (67 Key) Gaming Keyboard comes in a variety of switch styles to suit your needs.
With hot-swappable switches you can change them out or adjust the keycaps to your liking.
Similar to others, this keyboard is fully programmable using QMK for those programmers who want to customize their keyboard's function.</p>
<p>Technical Specs:</p>
<ul>
<li>Brand: DROP</li>
<li>Series: ALT Mechanical Keyboard</li>
<li>Dimensions: 12.7" x 4.4" x 1.25"</li>
<li>Color: Black</li>
<li>Weight: 1.531 lbs.</li>
</ul>
<p><a class="btn btn-primary btn-lg" href="https://amzn.to/3aLs603">Check Price on Amazon</a></p>
<h2>Are 65% keyboards worth it?</h2>
<p>Consider the following when choosing the best 65% mechanical keyboard.</p>
<p>If you're limited on desk space, the smaller form factor from a 65% mechanical keyboard is a benefit. Or if you need a portable keyboard to take with you as your travel, 65% mechanical keyboards may benefit you.</p>
<p>Some keyboards, especially mechanical keyboards, have bluetooth connection options. When deciding between two keyboards with bluetooth, consider which one has better battery life.</p>
<p>The best 65% mechanical keyboards will be those that fit your preferences of key feel, affordable price, and typing experience.</p>
<h2>What are 65% mechanical keyboards?</h2>
<p>Mechanical keyboards differ from other keyboards in how the the keys operate. Most keyboards have a bit of form underneath the keys that push the key switch back up. Mechanical keyboards use spring loaded switches to push the key back up against the fingers of the person typing. The spring is the "mechanism" that switches the key back into the up position, hence the name mechanical switches.</p>
<p>Popular switch options, include cherry mx switches (especially cherry mx red switches), gateron switches and outemu (brown) switches.</p>
<p>A 65% keyboard just means it has a 65% layout of keys (see above).</p>
<p>Mechanical keyboards often times allow the customer to make a custom keyboard by changing different switches or key caps. For example, custom keycaps for caps lock, shift key, Windows key, etc. can be swapped out. You can use your own switches if you have some you like better that what ships with the keyboard.</p>
<h2>What are my switch options?</h2>
<p>A lot of programmers prefer cherry mx switches for typing experience. The cherry mx switches feature a special cross design that attaches to the keycap for a more secure typing experience.</p>
<p>Different switches provide different levels of sound or "clickyness" often designated by a color. For example, blue switches will be louder than silver switches, etc. The level of nuance with switch options is beyond the scope of this article. There are many great online resources if you want to learn more.</p>
<p>If you're not sure which switches you want for your typing experience, consider buying a 65% keyboard that has a hot swappable feature. A hot swappable feature is where you can change the mechanical keyboard switch without having to solder them to the board.</p>
<h2>Other considerations for a a 65% keyboard</h2>
<p>Deciding on a 65% keyboard mainly centers around what keys can you live without. For programmers, we use a lot different keys to do lots of different things. So consider how you use your current keyboard. What are your essential keys that you can't live without?</p>
<p>Do you regularly use the navigation keys to move around your code editor? If so, a 65% keyboard is a great choice because it has dedicated arrow keys. The is in contrast to a 60% keyboard which does not and relies on the function (fn) key a lot.</p>
<p>Side note: I use a 60% keyboard for programming and can attest that the arrow keys are important keys. I will hopefully upgrade to a 65% keyboard soon!</p>
<p>Are there certain keys important for the software you use regularly? Delete keys are important if you use Microsoft Excel. From personal experience, I realized that the delete key erases contents of cells rather than the backspace key. Luckily a 65% keyboard has a delete key.</p>
<h2>What's missing from a 65% keyboard?</h2>
<p>Your 65% keyboard will not come with a ten key number pad. But you have modifier keys to help you get that functionality back.</p>
<p>Some programmers, regardless of which 65% keyboard they get, will choose to get a one handed mechanical keyboard pad. These devices have fully programmable keys. Having fully programmable keys on a special keypad can be a great compliment to your 65% keyboard.</p>
<h2>Features to look for in a 65% keyboard</h2>
<p>Your 65% keyboard should come with features to match your use case. For programmers, we like to program so programmable keys are something to look for.</p>
<p>Check to see if your keyboard comes with software to define a custom key mapping (or several). You can then rebind keys to operate differently on your 65% keyboard. For example, the caps lock is among programmable keys repurposed by developers.</p>
<p>Can you replace the keycaps on your 65% keyboard? Can you obtain replacement keycaps if you need them or want them. PBT keycaps are less plastic keycaps but have a unique feel that some programmers enjoy.</p>
<h2>Mechanical Keyboard Connectivity</h2>
<p>Determine your desired method to connect your keyboard to your machine. Some of the best 65% keyboard choices have a combination of wired and wireless connectivity. Often time, wireless connectivity is achieved using a bluetooth connection.</p>
<p>Some people prefer the aesthetics of having a wire cord with a color that matches their desk space. Others prefer wireless connectivity to avoid having additional clutter in their workspace.</p>
<p>As a programmer, consider a 65% keyboard with wireless connectivity using a bluetooth connection to keep your desk clear and provide additional space to put reference materials, etc.</p>
<h2>Cherry MX Switches</h2>
<p>Cherry mx switches are a very popular type of mechanical switches for 65% keyboards. Especially among programmers, the cherry profile keycaps provide a comfortable typing experience.</p>
<p>The cherry mx brown switch gives noticeable tactile feedback and is popular among gamers as well as programmers. Compared to cherry mx red switches which are less tactile but also less noisy, cherry mx brown switches are very bumpy and moderately noisy.</p>
<p>If you're uncertain, go with cherry mx switches as they are popular and readily available. You can find a wide variety of cherry mx switch options by doing a quick google search.</p>
<p>You can find more information on cherry mx switches at <a href="https://www.cherrymx.de/en">https://www.cherrymx.de/en</a>.</p>
]]></description>
      <pubDate>Mon, 25 Jul 2022 15:22:30 GMT</pubDate>
      <guid isPermaLink="true">https://www.bestprogrammingtech.com/best-65-keyboard</guid>
    </item>
  </channel>
</rss>