<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mike</title>
    <description>The latest articles on DEV Community by Mike (@mikem1).</description>
    <link>https://dev.to/mikem1</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F464580%2F6002f1a4-a5dd-4895-b514-ad55de957481.png</url>
      <title>DEV Community: Mike</title>
      <link>https://dev.to/mikem1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mikem1"/>
    <language>en</language>
    <item>
      <title>Teaching gf to code</title>
      <dc:creator>Mike</dc:creator>
      <pubDate>Fri, 26 Mar 2021 15:42:15 +0000</pubDate>
      <link>https://dev.to/mikem1/teaching-gf-to-code-37bd</link>
      <guid>https://dev.to/mikem1/teaching-gf-to-code-37bd</guid>
      <description>&lt;p&gt;I never thought this would be possible but today for the first time solid progress was made.&lt;/p&gt;

&lt;p&gt;Previously I have taught her how to edit videos and upload them to Youtube and finally got her a laptop to explore Davinci Resolve (which kept crashing) then Premiere Pro (she enjoyed much more) then Photoshop which after Premiere she seemed to have fallen in love with redoing all her Youtube thumbnails.&lt;/p&gt;

&lt;p&gt;Photo and video editing are great but the real money making skill is programming so after getting her comfortable with a laptop (her first laptop btw) PHP and Node.js hello world tutorials were top of mind. This was a mistake.&lt;/p&gt;

&lt;p&gt;So I decided to do some digging and find a recent programming tutorials. I found "100 Days Of Code – The Complete Python Pro Bootcamp For 2021". The only python programming I have done is some really basic Scrapy scraping so at first was not sold but after seeing the next best decided a female instructor with solid reviews from a respectable boot camp is a better bet and copied the files to my phone so she can watch and code at the same time.&lt;/p&gt;

&lt;p&gt;To my surprise and amazement python is really easy to learn with the help of Replit and she was able with relatively little help build the band name generator which also to my surprise she loved as a project (its just 2 inputs printed with a space between lol).&lt;/p&gt;

&lt;p&gt;I should also add the night before we went to a developers night where she met real programmers (other than me) both male and female of all different levels and I think that really inspired her.&lt;/p&gt;

&lt;p&gt;Now I feel the best thing I can do to support her is carrot/reward approach and as I think she would make a great data analyst very very gently steer her in that direction. Given her last job was a waitress at a hotel buffet pretty excited how it went today!&lt;/p&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>100daysofcode</category>
    </item>
    <item>
      <title>Guide to Hacking Hardware Maintenance (as a developer)</title>
      <dc:creator>Mike</dc:creator>
      <pubDate>Mon, 14 Sep 2020 15:03:14 +0000</pubDate>
      <link>https://dev.to/mikem1/guide-to-hacking-hardware-maintenance-as-a-developer-1d67</link>
      <guid>https://dev.to/mikem1/guide-to-hacking-hardware-maintenance-as-a-developer-1d67</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--izOVFKbM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w280i07eo5bwzmufu5w7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--izOVFKbM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/w280i07eo5bwzmufu5w7.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My laptop is 3 years old. I paid $1,426 on a Prime Day sale shipped overseas. It was not the best laptop but my Surface Book needed to be sent back for warranty (battery expansion issue) and the replacement could only ship to Australia... so I needed a new laptop (with a decent CPU and GPU) shipped to Thailand. &lt;/p&gt;

&lt;p&gt;First the battery stopped holding a charge and was expanding, so I just pulled it out, but in the last month first the CPU fan and then one of the GPU fans started to make a LOUD buzzing noise. Normally I would go to Aliexpress and buy replacement parts (which takes upto a month to deliver)... but because I am living in covid-cheap hotels/AirBnB's have no fixed address, buying new is also not an option and had to think outside the box.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--C1cy9yt0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/n28f1to11o1cvtsph65v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--C1cy9yt0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/n28f1to11o1cvtsph65v.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before we get into the specifics I wanted to share a lesson from the whole MAX-Q shift. Basically CPUs and GPUs generate a MASSIVE amount of heat the closer to maximum ability so using the same hardware and aiming lower results in great performance (just not the best) with less heat and power usage.&lt;/p&gt;

&lt;p&gt;Here are 1 hardware and 3 software hacks that are keeping my poor old laptop alive:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;More fans (hardware)&lt;br&gt;
Running a i7-6700HQ + GTX1060 gets hot, Thailand's climate doesn't help with a comfortable temp at 24-25C (75-77F) in air conditioned room so the hardware hack is CoolerMaster U3 ($28.73). What makes it special from the million other cooling pads is you can position the fans directly below the intakes. This actually solved the CPU fan noise problem because the fan balance is restored (apparently).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Undervolting&lt;br&gt;
ThrottleStop undervolt set to 0.118 V has been the sweet spot and whenever you can hear the fans always check if its working.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AfterBurner&lt;br&gt;
Down clocking from +116 MHz to -83MHz did the trick, keeping the GPU cool enough most of the time to not need fan power, thus the annoying buzzing sound.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change "Advanced Power Settings"&lt;br&gt;
This one surprised me but you can right click on the battery icon, click Power Options, Change Plan Setting, Change Advanced Power Setting, find Processor Power Management, then change the Maximum Processor State &amp;lt;100% (I am no 90%) for quite a large thermal improvement&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Great Suspender&lt;br&gt;
Let's face it, Chrome is what a developer has running all the time. What The Great Suspender does is wait an hour then suspend any inactive tabs taking massive load off the GPU in my case from the "Desktop Window Manager". This leads to less GPU usage, less heat and no need to buy parts ;)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Bonus. Find out what is using so much resources and Google how to fix it. I recently fixed a Dreamweaver usage issue going into Regedit and deleting some Temp Files folder, now it works fine...&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Frustration learning MERN from LAMP</title>
      <dc:creator>Mike</dc:creator>
      <pubDate>Sun, 06 Sep 2020 18:34:25 +0000</pubDate>
      <link>https://dev.to/mikem1/frustration-learning-mern-from-lamp-3f01</link>
      <guid>https://dev.to/mikem1/frustration-learning-mern-from-lamp-3f01</guid>
      <description>&lt;p&gt;16 years ago my journey into PHP started with a Lynda PHP tutorial and some basic HTML/CSS from school and LAMP server. Took 10 years but eventually reached my goal of creating a successful SaaS product.&lt;/p&gt;

&lt;p&gt;Every now and again new trends popup and from where I'm sitting MERN is the next step, but let's look at what I know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MongoDB: No more structure just JSON "collections" and indexes for optimization&lt;/li&gt;
&lt;li&gt;Express: APIs, probably the thing I should learn the most about yet know the least about&lt;/li&gt;
&lt;li&gt;React: Reusable components. HTML/CSS/JS = a Button or List or Card. Data goes down the component tree, events go up the component tree. Git repos for components sounds cool. fml&lt;/li&gt;
&lt;li&gt;Node: If chrome was running a on my hosting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For fun let's compare that to LAMP:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Linux: an IP address, a username usually root and a password then google for commands, but always first "sudo apt update" then "sudo apt upgrade"&lt;/li&gt;
&lt;li&gt;Apache: something people used to fight about if it's better than nginx, but then they stopped&lt;/li&gt;
&lt;li&gt;PHP: &amp;lt;?php echo "just the best"; ?&amp;gt;&lt;/li&gt;
&lt;li&gt;MySQL: /phpmyadmin&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As SaaS is high value task building a user authentication system with a few different tiers is always a good start and in LAMP this would be as simple as copy a few lines of code from my latest project, $_SESSION=['PAID'] and off to the races.&lt;/p&gt;

&lt;p&gt;In MERN basically everything is stored in the browser so you need JWT to authenticate anything stored in the server-side database that is protected. This is frying my brain going through all the different methods. The moment your API key makes it way to the browser its game over so my guess is Node renders a token into the session... Don't want to pass it to a 3rd party to handle authentication, simple email and password is the goal.&lt;/p&gt;

&lt;p&gt;Keeping the database safe (if more than 3000 records are lost you legally have to disclose) is my #1 concern. Client-side seems so much more difficult in MERN.&lt;/p&gt;

&lt;p&gt;What am I missing?&lt;/p&gt;

</description>
      <category>php</category>
      <category>react</category>
      <category>node</category>
      <category>database</category>
    </item>
  </channel>
</rss>
