<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>James Parsons</title>
	<atom:link href="https://jamesparsons.com/feed" rel="self" type="application/rss+xml" />
	<link>https://jamesparsons.com</link>
	<description>internet enthusiast.</description>
	<lastBuildDate>Wed, 22 Mar 2023 00:09:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.6.11</generator>
	<item>
		<title>Update Old WordPress Post Dates Automatically on a Schedule</title>
		<link>https://jamesparsons.com/2023/03/update-old-wordpress-post-dates-automatically-schedule</link>
					<comments>https://jamesparsons.com/2023/03/update-old-wordpress-post-dates-automatically-schedule#respond</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Wed, 15 Mar 2023 07:04:51 +0000</pubDate>
				<category><![CDATA[Business Posts]]></category>
		<guid isPermaLink="false">https://jamesparsons.com/?p=1587</guid>

					<description><![CDATA[<p>It&#8217;s pretty trendy now to show the &#8220;Last updated:&#8221; date on your blog posts instead of the &#8220;Published:&#8221; time. It&#8217;s arguably better...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2023/03/update-old-wordpress-post-dates-automatically-schedule">Update Old WordPress Post Dates Automatically on a Schedule</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s pretty trendy now to show the &#8220;Last updated:&#8221; date on your blog posts instead of the &#8220;Published:&#8221; time. It&#8217;s arguably better for SEO, as both users and search engines like to see you do some housekeeping from time to time.</p>
<p>The only downside is, if you aren&#8217;t doing that housekeeping, some of your posts may be displaying a super old &#8220;Updated&#8221; date.</p>
<p>So, I developed a simple PHP script to grab a random post and update it, therefore resetting the &#8220;Last modified&#8221; time:</p>
<pre class="brush: php; title: ; notranslate">
require('/home/full/path/to/public_html/wordpress/wp-blog-header.php'); // replace this with full path to your WordPress directory
$the_query = new WP_Query( array ( 'orderby' =&gt; 'rand', 'posts_per_page' =&gt; '1' ) );
while ( $the_query-&gt;have_posts() ) : $the_query-&gt;the_post();
	wp_update_post();
	the_title();
endwhile;
wp_reset_postdata();
</pre>
<p>Copy this code and put it in a new file called something like &#8220;update-random-post.php&#8221;, then upload it to your server.</p>
<p>Finally, set up a cron job and run it as often as you&#8217;d like, either with an external cron like EasyCron.com or on cPanel.</p>
<p>For example, if you run this every 6 hours, it will randomly update about 28 posts per week. If you have 1,000 posts, every post on your site will be updated about every 8 months on average.</p>
<p>You can adjust the frequency or the selection arguments to whatever you&#8217;d like.</p>
<p><strong>Update:</strong> If you want some variation in the time that this runs, I recommend adding this to the top of this PHP script:</p>
<pre class="brush: php; title: ; notranslate">

sleep(rand(1,10800)); // sleep for a random amount of time between 1 and 10800 seconds (3 hours)

</pre>
<p>Cron timing is pretty rigid, so if you choose every 6 hours, you will see 1:48 AM, 7:48 AM, 1:48 PM, 7:48 PM, and so on. Adding a random sleep timer beforehand helps randomize this a bit.</p>
<p>Once your script is modified and uploaded, here is the cron command you can use to run it on a schedule:</p>
<pre class="brush: php; title: ; notranslate">

wget -O - -q -t 1 --timeout=0 https://www.yourdomain.com/yourscript.php

</pre>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2023/03/update-old-wordpress-post-dates-automatically-schedule">Update Old WordPress Post Dates Automatically on a Schedule</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2023/03/update-old-wordpress-post-dates-automatically-schedule/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Fix cPanel &#8220;SSL Cannot Currently Accept Incoming Requests&#8221;</title>
		<link>https://jamesparsons.com/2022/08/currently-accept-incoming-requests</link>
					<comments>https://jamesparsons.com/2022/08/currently-accept-incoming-requests#respond</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Mon, 22 Aug 2022 22:13:10 +0000</pubDate>
				<category><![CDATA[Casual Posts]]></category>
		<guid isPermaLink="false">https://jamesparsons.com/?p=1579</guid>

					<description><![CDATA[<p>While adding a new domain to my WHM/cPanel installation, I received the following error: The “cPanel (powered by Sectigo)” provider cannot currently...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2022/08/currently-accept-incoming-requests">Fix cPanel &#8220;SSL Cannot Currently Accept Incoming Requests&#8221;</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>While adding a new domain to my WHM/cPanel installation, I received the following error:</p>
<blockquote><p>The “cPanel (powered by Sectigo)” provider cannot currently accept incoming requests. The system will try again later.</p></blockquote>
<p><img class="alignleft size-full wp-image-1580" src="https://jamesparsons.com/wp-content/uploads/2022/08/SSL-Error.jpg" alt="SSL Error" width="839" height="401" srcset="https://jamesparsons.com/wp-content/uploads/2022/08/SSL-Error.jpg 839w, https://jamesparsons.com/wp-content/uploads/2022/08/SSL-Error-300x143.jpg 300w, https://jamesparsons.com/wp-content/uploads/2022/08/SSL-Error-768x367.jpg 768w" sizes="(max-width: 839px) 100vw, 839px" /></p>
<p>After digging into <a href="https://forums.cpanel.net/threads/cpanel-33077-letsencrypt-transition-to-isrgs-root-important.673981/page-7">this issue</a> a bit, it looks like this had to do with a permissions issue.</p>
<p>To fix this, open Terminal and paste in the following:</p>
<pre>find /var/cpanel/ssl/domain_tls/ -mindepth 1 -maxdepth 1 -name .pending_delete -prune -o -type d -not -perm 755 -exec chmod -v 755 {} \;</pre>
<p>Then, run AutoSSL again and your certificate will finish installing.</p>
<p><em>Credit to Rex (cPanel user &#8220;<a href="https://forums.cpanel.net/members/cprex.586151/">cPRex</a>&#8220;), a cPanel Staff Member.</em></p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2022/08/currently-accept-incoming-requests">Fix cPanel &#8220;SSL Cannot Currently Accept Incoming Requests&#8221;</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2022/08/currently-accept-incoming-requests/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cloudflare May Hurt Your SEO and Lose Backlinks &#8211; How to Fix This</title>
		<link>https://jamesparsons.com/2021/05/cloudflare-hurt-seo-lose-backlinks-fix</link>
					<comments>https://jamesparsons.com/2021/05/cloudflare-hurt-seo-lose-backlinks-fix#respond</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Tue, 18 May 2021 23:39:18 +0000</pubDate>
				<category><![CDATA[Business Posts]]></category>
		<guid isPermaLink="false">https://jamesparsons.com/?p=1563</guid>

					<description><![CDATA[<p>Cloudflare, in many ways, has a positive impact on the load times and performance of a website, and therefore it has demonstrable...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2021/05/cloudflare-hurt-seo-lose-backlinks-fix">Cloudflare May Hurt Your SEO and Lose Backlinks &#8211; How to Fix This</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Cloudflare, in many ways, has a positive impact on the load times and performance of a website, and therefore it has demonstrable SEO benefits. It&#8217;s often found on articles and in lists of services that can help improve your SEO.</p>
<p>There&#8217;s one little thing that I discovered that is a problem with Cloudflare. That problem is called &#8220;Broken Link Checkers&#8221;<strong>.</strong></p>
<p>What are broken link checkers? They are usually a plugin or an app that checks all of the links on your site to see if any of them are broken. For WordPress, the most popular example is appropriately named &#8220;<a href="https://wordpress.org/plugins/broken-link-checker/">Broken Link Checker</a>&#8220;. It masquerades as a version of Chrome with a specific user agent, checks each of the websites that you&#8217;ve linked to in your blog posts, one by one, and notifies you if any of them are unreachable.</p>
<p>Ok &#8211; what is the problem here?</p>
<p>Cloudflare is very efficient at detecting bad visitors and bot traffic, but since these link checkers are essentially bots, <strong>Cloudflare blocks those important checks.</strong> This tells other webmasters that your link is broken, and there&#8217;s a good chance they&#8217;ll remove it. This is not good.</p>
<p>Checking links to see if they are alive and removing the &#8220;dead&#8221; ones is good housekeeping, and we can&#8217;t blame the webmaster for this. At the time of writing, this plugin has over 700,000+ active installs and counting.</p>
<p><img class="alignleft size-full wp-image-1567" src="https://jamesparsons.com/wp-content/uploads/2021/05/Broken-LInks.jpg" alt="Broken LInks" width="805" height="393" srcset="https://jamesparsons.com/wp-content/uploads/2021/05/Broken-LInks.jpg 805w, https://jamesparsons.com/wp-content/uploads/2021/05/Broken-LInks-300x146.jpg 300w, https://jamesparsons.com/wp-content/uploads/2021/05/Broken-LInks-768x375.jpg 768w" sizes="(max-width: 805px) 100vw, 805px" /></p>
<p>I&#8217;ve personally removed links to articles that showed up as &#8220;Forbidden&#8221; or &#8220;Server Not Found&#8221; in the past, but this is something I have to be aware of now that Cloudflare is becoming increasingly popular. At least now, you can make sure that you&#8217;re not one of these webmasters who is losing valuable links to Cloudflare.</p>
<p>Here&#8217;s how to fix this:</p>
<p>When you pick through the files of the Broken Link Checker plugin, you can find their checker under the following directory:</p>
<blockquote><p>/modules/checkers/http.php</p></blockquote>
<p>At the time of writing, around line 178, you&#8217;ll see the following user agent is used by this plugin to check for broken links:</p>
<blockquote><p>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36</p></blockquote>
<p>Great, now we have something to work with.</p>
<p>Log in to Cloudflare. Click Firewall, Firewall Rules, then &#8220;Create a Firewall Rule&#8221;. You want your new rule to look something like this:</p>
<p><img class="alignleft size-full wp-image-1564" src="https://jamesparsons.com/wp-content/uploads/2021/05/Firewall-Rule.jpg" alt="Firewall Rule" width="1111" height="778" srcset="https://jamesparsons.com/wp-content/uploads/2021/05/Firewall-Rule.jpg 1111w, https://jamesparsons.com/wp-content/uploads/2021/05/Firewall-Rule-300x210.jpg 300w, https://jamesparsons.com/wp-content/uploads/2021/05/Firewall-Rule-1024x717.jpg 1024w, https://jamesparsons.com/wp-content/uploads/2021/05/Firewall-Rule-768x538.jpg 768w" sizes="(max-width: 1111px) 100vw, 1111px" /></p>
<p>What we just did here is tell Cloudflare to allow all users with user agents that match the one used in the Broken Link Checker plugin. This way, your links will never show the response code &#8220;Forbidden&#8221; when this plugin is checking to see if your link is still alive.</p>
<p>Screaming Frog is a popular SEO spider tool, and they too have a broken link checker. If you wanted, you could whitelist their user agent as well, which is:</p>
<blockquote><p>Screaming Frog SEO Spider</p></blockquote>
<p>There are likely other user agents used in various plugins for other content management systems &#8211; if you have any, feel free to let me know in the comments down below and I will expand this list.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2021/05/cloudflare-hurt-seo-lose-backlinks-fix">Cloudflare May Hurt Your SEO and Lose Backlinks &#8211; How to Fix This</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2021/05/cloudflare-hurt-seo-lose-backlinks-fix/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Remove Lazy Loading on First Image in WP Rocket for PageSpeed Optimization</title>
		<link>https://jamesparsons.com/2020/08/remove-lazy-image-wprocket</link>
					<comments>https://jamesparsons.com/2020/08/remove-lazy-image-wprocket#comments</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Sun, 09 Aug 2020 04:16:12 +0000</pubDate>
				<category><![CDATA[Business Posts]]></category>
		<guid isPermaLink="false">https://jamesparsons.com/?p=1498</guid>

					<description><![CDATA[<p>With Google&#8217;s new PageSpeed update called &#8220;Core Web Vitals&#8221;, having a fast-loading website, or at least, a website that appears to be...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2020/08/remove-lazy-image-wprocket">Remove Lazy Loading on First Image in WP Rocket for PageSpeed Optimization</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1503" src="https://jamesparsons.com/wp-content/uploads/2020/08/Remove-Lazy-Loading-First-Image.jpg" alt="Remove Lazy Loading First Image" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2020/08/Remove-Lazy-Loading-First-Image.jpg 621w, https://jamesparsons.com/wp-content/uploads/2020/08/Remove-Lazy-Loading-First-Image-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>With Google&#8217;s new PageSpeed update called &#8220;Core Web Vitals&#8221;, having a fast-loading website, or at least, a website that appears to be fast-loading, is very important. Lazy loading is great for images that are off of the screen, but blog posts typically have an image at the very top of the post, so lazy loading these images can cause problems.</p>
<p>Enter WP Rocket. WP Rocket lazy loads images, and has <a href="https://docs.wp-rocket.me/article/15-disabling-lazy-load-on-specific-images">several ways</a> to disable lazy loading on specific images. The problem is, all of your images likely share a similar CSS class, so the methods in the current version of WP Rocket will not let you disable a specific image in your post content programatically.</p>
<p>Since your first image in your post doesn&#8217;t load until the entire page is loaded, this hurts your &#8220;First Contentful Paint&#8221; score in Core Web Vitals. They want to see that image show up as quickly as possible to give it the appearance that it is loaded more quickly for user experience &#8211; even if your site is technically loading faster, it appears to be loading slower if your above-the-fold images are lazy-loaded.</p>
<p>What we need to do to improve your score is <strong>only disable lazy loading on the first blog image.</strong></p>
<p>If this sounds like something you&#8217;re looking for, my code might be of some use to you. I&#8217;ve searched for a solution with no success, but I found a handful of other people looking to do the exact same thing.</p>
<p>So, I wrote some code to make this work (add to your functions.php file in your theme):</p>
<pre class="brush: php; title: ; notranslate">
/**
* Disable lazyloading from first blog image
*/

function add_responsive_class($content){
	if ( is_single() ) {
        $content = mb_convert_encoding($content, 'HTML-ENTITIES', &quot;UTF-8&quot;);
        $document = new DOMDocument();
        libxml_use_internal_errors(true);
        $document-&gt;loadHTML(utf8_decode($content));

        $imgs = $document-&gt;getElementsByTagName('img');
        $img = $imgs[0];

        if ($imgs[0] == 1) { // Check if the post has images first
	        $img-&gt;setAttribute('class','alignnone size-full remove-lazy');
	        $html = $document-&gt;saveHTML();
	        return $html;
	    }
	    
	    else {
		    return $content;
	    }
     }
     else {
	     return $content;
     }
}
add_filter ('the_content', 'add_responsive_class');
		function rocket_lazyload_exclude_class( $attributes ) {
			$attributes[] = 'class=&quot;alignnone size-full remove-lazy&quot;';
			return $attributes;
		}
add_filter( 'rocket_lazyload_excluded_attributes', 'rocket_lazyload_exclude_class' );
</pre>
<p>Here&#8217;s what this does:</p>
<p style="padding-left: 40px;">1. Only apply this to blog posts. If you have custom post types, you may want to replace this &#8220;is_single()&#8221; line of code to something that only focuses on posts in specific categories, with something like this:</p>
<pre>if(in_category(array('1', '2', '3', '4', '5')) ) {</pre>
<p style="padding-left: 40px;">2. The content is loaded, decoded, and the images are found.</p>
<p style="padding-left: 40px;">3. If the post has images, it will take the first image (or image #0) and add the class &#8220;remove-lazy&#8221; to it, so we can disable lazy loading with this unique class name later.</p>
<p style="padding-left: 40px;">4. If the post does not have any images, it just returns the content as it normally would.</p>
<p style="padding-left: 40px;">5. The next filter is taken from the above link on WP Rocket&#8217;s website. It excludes lazy loading on any image with the class &#8220;remove-lazy&#8221;.</p>
<p>If you don&#8217;t use full-size images in your WordPress posts, or you align your images differently, you might have to tweak some of these lines that say &#8220;alignnone&#8221; and &#8220;size-full&#8221; to match the settings that you use for your first image in your blog post. In my case, I never add custom alignment and I always use full-size images.</p>
<p>You can see this in action on any post on my company blog, <a href="https://www.contentpowered.com/blog/">here</a>.</p>
<p><em>If this helped you, if I missed anything, or if you have anything you&#8217;d like to add, please let me know in the comments below!</em></p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2020/08/remove-lazy-image-wprocket">Remove Lazy Loading on First Image in WP Rocket for PageSpeed Optimization</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2020/08/remove-lazy-image-wprocket/feed</wfw:commentRss>
			<slash:comments>14</slash:comments>
		
		
			</item>
		<item>
		<title>cURL and file_get_contents Functions Stop Working With SSL in cPanel</title>
		<link>https://jamesparsons.com/2020/06/curl_filegetcontents-broken-ssl</link>
					<comments>https://jamesparsons.com/2020/06/curl_filegetcontents-broken-ssl#comments</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Tue, 02 Jun 2020 10:51:52 +0000</pubDate>
				<category><![CDATA[Business Posts]]></category>
		<guid isPermaLink="false">https://jamesparsons.com/?p=1485</guid>

					<description><![CDATA[<p>There&#8217;s an issue that suddenly started affecting websites on May 30, 2020 that breaks cURL and file_get_contents. This has to do with...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2020/06/curl_filegetcontents-broken-ssl">cURL and file_get_contents Functions Stop Working With SSL in cPanel</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1487" src="https://jamesparsons.com/wp-content/uploads/2020/06/PHP.ini-File.jpg" alt="PHP.ini File" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2020/06/PHP.ini-File.jpg 621w, https://jamesparsons.com/wp-content/uploads/2020/06/PHP.ini-File-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>There&#8217;s an issue that suddenly started affecting websites on May 30, 2020 that breaks cURL and file_get_contents. This has to do with how cPanel handles external SSL requests, even if you have an installed (and properly working) SSL certificate.</p>
<p>Here are some of the errors you may see in your error_log file:</p>
<blockquote><p><em>PHP Warning: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:</em><br />
<em>error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed</em></p></blockquote>
<blockquote><p><em>file_get_contents(): Failed to enable crypto</em></p></blockquote>
<blockquote><p><em>file_get_contents(https://example.com): failed to open stream</em></p></blockquote>
<p>You can read more about cPanels official statement here: <a href="https://support.cpanel.net/hc/en-us/articles/360049424193-PHP-Functions-failing-due-to-invalid-SSL">https://support.cpanel.net/hc/en-us/articles/360049424193-PHP-Functions-failing-due-to-invalid-SSL</a></p>
<p>Well, I applied their hotfix, and it didn&#8217;t do anything.</p>
<p>After messing with my sites for 6 hours, I found that the simple fix is adding a single line to your PHP.ini file.</p>
<blockquote>
<ul>
<li>If you&#8217;re using WHM with cPanel, open MultiPHP INI Editor.</li>
<li>Then, click editor mode.</li>
<li>In a new line under [PHP], paste this line: openssl.cafile=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem</li>
<li>Click save</li>
<li>Reboot your server</li>
</ul>
</blockquote>
<p>This is the location of my TLS CA Bundle on CentOS 7, but depending on your operating system, it may be in another directory, in which case you&#8217;d have to modify this line a bit.</p>
<p>For example, on some servers, this file may be here:</p>
<ul>
<li>/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem</li>
<li>/usr/local/etc/openssl/cert.pem</li>
</ul>
<p>I hope this helps somebody. I told my host about it and they said several other customers were having the same issue and they were grateful that I shared this information as they had no clue how to fix it.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2020/06/curl_filegetcontents-broken-ssl">cURL and file_get_contents Functions Stop Working With SSL in cPanel</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2020/06/curl_filegetcontents-broken-ssl/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>WordPress jQuery is Render-Blocking in PageSpeed Insights</title>
		<link>https://jamesparsons.com/2020/02/jquery-render-blocking-insights</link>
					<comments>https://jamesparsons.com/2020/02/jquery-render-blocking-insights#comments</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Fri, 14 Feb 2020 11:50:10 +0000</pubDate>
				<category><![CDATA[Business Posts]]></category>
		<guid isPermaLink="false">https://jamesparsons.com/?p=1462</guid>

					<description><![CDATA[<p>After running my site through Google PageSpeed insights, I noticed that all of my JavaScript was being deferred except for the jQuery...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2020/02/jquery-render-blocking-insights">WordPress jQuery is Render-Blocking in PageSpeed Insights</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1472" src="https://jamesparsons.com/wp-content/uploads/2020/02/PageSpeed-Insights-Score.jpg" alt="PageSpeed Insights Score" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2020/02/PageSpeed-Insights-Score.jpg 621w, https://jamesparsons.com/wp-content/uploads/2020/02/PageSpeed-Insights-Score-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>After running my site through Google PageSpeed insights, I noticed that all of my JavaScript was being deferred except for the jQuery that comes with WordPress.</p>
<p>This was dinging by PageSpeed insights score, as it was telling me to eliminate the render-blocking resource (jQuery 1.12.4). My caching plugin wasn&#8217;t able to defer it along with the rest of my site&#8217;s JavaScript code, as it&#8217;s a core element in WordPress.</p>
<p>To resolve this, I had to deregister jQuery, and replace it with a new version from jQuery.com:</p>
<blockquote>
<pre class="brush: php; title: ; notranslate">

/**
* Remove built in jQuery and replace with hosted version to improve speed, prevent render blocking, and defer
*/

function my_enqueued_assets() {
wp_deregister_script( 'jquery' );
wp_enqueue_script( 'script-name', '//code.jquery.com/jquery-1.12.4.min.js', array(), '1.12.4' );
}
add_action( 'wp_enqueue_scripts', 'my_enqueued_assets' );

</pre>
</blockquote>
<p>I&#8217;m pretty sure all of the latest versions of WordPress load 1.12.4, but check the source of your WordPress website to ensure that yours is the same.</p>
<p>This helped save nearly 1 full second from my page load time, and my score went up 6 points. Not a drastic difference, but still a welcomed improvement.</p>
<p>Oddly enough, when I tried using the Google Hosted Library with the above code, it wasn&#8217;t able to defer it either:</p>
<blockquote><p>https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js</p></blockquote>
<p>So, I stuck with the jQuery.com hosted version linked above instead.</p>
<p>I&#8217;m using WP Rocket for caching, but this should also use with other caching plugins, or plugins that help to defer javascript.</p>
<p>Please let me know if this helped you in the comments below!</p>
<p><strong>UPDATE:</strong></p>
<p>There&#8217;s a second method that does the job as well; installing the plugin &#8220;Async Javascript&#8221;.<br />
After installing, in the settings, there&#8217;s an area under &#8220;Quick Settings&#8221; that says &#8220;Apply Async&#8221;.</p>
<p>It&#8217;s important to check your console for JavaScript errors and make sure that it doesn&#8217;t break jQuery. jQuery can sometimes break when loaded with async or defer, but on my particular instance, it worked perfectly.</p>
<p><strong>UPDATE June 2020:</strong></p>
<p>Most of these methods are outdated. Here is a much more current and efficient version:</p>
<pre class="brush: php; title: ; notranslate">
add_filter( 'wp_enqueue_scripts', 'replace_default_jquery_with_fallback');
function replace_default_jquery_with_fallback() {
    $ver = '1.12.4';
    wp_dequeue_script( 'jquery' );
    wp_deregister_script( 'jquery' );
    // Set last parameter to 'true' if you want to load it in footer
    wp_register_script( 'jquery', &quot;//ajax.googleapis.com/ajax/libs/jquery/$ver/jquery.min.js&quot;, '', $ver, false );
    wp_add_inline_script( 'jquery', 'window.jQuery||document.write(\'&lt;script src=&quot;'.includes_url( '/js/jquery/jquery.js' ).'&quot;&gt;&lt;\/script&gt;\')' );
    wp_enqueue_script ( 'jquery' );
}
</pre>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2020/02/jquery-render-blocking-insights">WordPress jQuery is Render-Blocking in PageSpeed Insights</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2020/02/jquery-render-blocking-insights/feed</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
			</item>
		<item>
		<title>How to Fix XAMPP MySQL Not Starting on MacOS Mojave</title>
		<link>https://jamesparsons.com/2018/12/fix-xampp-mysql-mojave</link>
					<comments>https://jamesparsons.com/2018/12/fix-xampp-mysql-mojave#comments</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Tue, 18 Dec 2018 03:30:08 +0000</pubDate>
				<category><![CDATA[Casual Posts]]></category>
		<guid isPermaLink="false">http://jamesparsons.com/?p=1415</guid>

					<description><![CDATA[<p>I noticed after updating to MacOS Mojave that MySQL would not start for some reason. After opening my .err document (usually called...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2018/12/fix-xampp-mysql-mojave">How to Fix XAMPP MySQL Not Starting on MacOS Mojave</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1420" src="http://jamesparsons.com/wp-content/uploads/2018/12/MySQL-Stopped.jpg" alt="MySQL Stopped" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/12/MySQL-Stopped.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/12/MySQL-Stopped-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>I noticed after updating to MacOS Mojave that MySQL would not start for some reason.</p>
<p>After opening my .err document (usually called YOURCOMPUTERNAME.err), it will show you all of the errors that MySQL is outputting to show you what is going wrong.</p>
<p>Mine had these lines:</p>
<div style="color:#999;margin-bottom:20px;border-left:3px solid #ccc;padding-left:15px;line-height:25px;font-family:Helvetica;">
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Using mutexes to ref count buffer pool pages<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: The InnoDB memory heap is disabled<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Memory barrier is not used<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Compressed tables use zlib 1.2.8<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Using CPU crc32 instructions<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Initializing buffer pool, size = 16.0M<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Completed initialization of buffer pool<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Highest supported file format is Barracuda.<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: 128 rollback segment(s) are active.<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB: Waiting for purge to start<br />
2018-12-17 18:01:49 4429411776 [Note] InnoDB:  Percona XtraDB (http://www.percona.com) 5.6.26-74.0 started; log sequence number 118715806<br />
2018-12-17 18:01:49 123145544376320 [Note] InnoDB: Dumping buffer pool(s) not yet started<br />
2018-12-17 18:01:49 4429411776 [Note] Plugin &#8216;FEEDBACK&#8217; is disabled.<br />
2018-12-17 18:01:49 4429411776 [Note] Recovering after a crash using tc.log<br />
2018-12-17 18:01:49 4429411776 <strong>[ERROR] Bad magic header in tc log</strong><br />
2018-12-17 18:01:49 4429411776 [ERROR] Crash recovery failed. Either correct the problem (if it&#8217;s, for example, out of memory error) and restart, or delete tc log and start mysqld with &#8211;tc-heuristic-recover={commit|rollback}<br />
2018-12-17 18:01:49 4429411776 [ERROR] Can&#8217;t init tc log<br />
2018-12-17 18:01:49 4429411776 [ERROR] Aborting
</div>
<p>If you&#8217;ll see at the bottom, the first error says &#8220;Bad magic header in tc log&#8221;.</p>
<p>I found <a href="https://community.bitnami.com/t/mysql-crashed-and-not-starting/44661/2" target="_blank" rel="noopener">this post</a>, where a user had the exact same error as me and the same issue.</p>
<p>I tried his method by deleting the .tc.log file located in /xampp/xamppfiles/var/mysql/tc.log, and tried firing up MySQL. </p>
<p><img src="http://jamesparsons.com/wp-content/uploads/2018/12/Deleting-tc.log_.jpg" alt="Deleting tc.log" width="621" height="327" class="alignleft size-full wp-image-1430" srcset="https://jamesparsons.com/wp-content/uploads/2018/12/Deleting-tc.log_.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/12/Deleting-tc.log_-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>Viola! Started up just fine.</p>
<p>Please let me know in the comments below if this helped you! I was very happy not to lose my old database and files from my previous XAMPP installation. I guess it&#8217;s time I should back it all up&#8230;</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2018/12/fix-xampp-mysql-mojave">How to Fix XAMPP MySQL Not Starting on MacOS Mojave</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2018/12/fix-xampp-mysql-mojave/feed</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Run More Than 3 Monitors on the 2018 &#038; 2019 Mac Mini</title>
		<link>https://jamesparsons.com/2018/11/multiple-monitors-mac-mini</link>
					<comments>https://jamesparsons.com/2018/11/multiple-monitors-mac-mini#comments</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Sun, 18 Nov 2018 02:10:22 +0000</pubDate>
				<category><![CDATA[Casual Posts]]></category>
		<guid isPermaLink="false">http://jamesparsons.com/?p=1374</guid>

					<description><![CDATA[<p>Over the past few years, Macs have been a little tricky to add multiple monitors to. Whether you have limited ports on...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2018/11/multiple-monitors-mac-mini">Run More Than 3 Monitors on the 2018 &#038; 2019 Mac Mini</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1375" src="http://jamesparsons.com/wp-content/uploads/2018/11/Mac-Mini-2018-Sucks.jpg" alt="Mac Mini 2018 Sucks" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/11/Mac-Mini-2018-Sucks.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/11/Mac-Mini-2018-Sucks-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>Over the past few years, Macs have been a little tricky to add multiple monitors to. Whether you have limited ports on the new MacBook Pro or onboard graphics limitations with the Mac Mini, you start to run into issues as soon as you want to add more than a few displays to your new Apple computer.</p>
<p>The 2018 Mac Mini showed great promise after going 4 years without an update. It features four Thunderbolt 3 ports and an HDMI port, and according to Apple, up to &#8220;two 4K displays, and a third on the HDMI port&#8221;.</p>
<p>However, unlike the iMac, Mac Pro, and Macbook Pro, these four Thunderbolt 3 ports won&#8217;t all work for your displays like you think they will.</p>
<p>In the past, I&#8217;ve used docks like the Belkin ThunderBolt dock and the Elgato Thunderbolt dock to add an extra display to my PC.</p>
<p>However, the new Mac Mini seems to have a hardware limitation that, despite having plenty of power and bandwidth to power 4 displays, will not allow a 4th display to work, even with docks or an externally powered dual display option. This is most likely a hardware or macOS limitation.</p>
<p>I&#8217;ve tried many different options; different docks, different adapters, different monitors, different resolutions; the max number of displays is always forced to 3, and there&#8217;s not a whole lot anyone can do about that according to Apple.</p>
<p><strong>Update 11/20/2018</strong></p>
<p>After chatting with 9 different Apple employees (5 on chat, 2 in-person visits, and 2 over the phone), I&#8217;ve been told that it is <span style="text-decoration: underline;">not possible</span> to run more than 3 screens on the Mac Mini, even with adapters or hardware.</p>
<p>I figured out that I can connect the 4th display with AirPlay and an Apple TV. This isn&#8217;t the most ideal solution, but it technically connects the 4th monitor and works fine. There&#8217;s a very slight cursor lag, but over ethernet, it&#8217;s much faster.</p>
<p><img class="alignleft size-full wp-image-1385" src="http://jamesparsons.com/wp-content/uploads/2018/11/Seperate-Display.jpg" alt="Seperate Display" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/11/Seperate-Display.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/11/Seperate-Display-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>I&#8217;ve been Googling this all week and found that this 3 display limitation is actually due to the Intel graphics chipset (Intel UHD Graphics 630), and not a software or Thunderbolt 3 limitation like Apple support suggested.</p>
<p><img class="alignleft size-full wp-image-1387" src="http://jamesparsons.com/wp-content/uploads/2018/11/630-Max-Displays.jpg" alt="630 Max Displays" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/11/630-Max-Displays.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/11/630-Max-Displays-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>So, I started looking into the possibility of upgrading the graphics; by using an eGPU, which is fully supported by macOS Mojave.</p>
<p>After chatting with another Apple Senior Advisor (Courtney), she told me she is very confident that this will still not work, and it won&#8217;t add another display since the hardware is still limited to 3. She also said that eGPU is not supported by Apple since it&#8217;s modifying the hardware and something that Apple cannot recommend (Wait, what? Apple supports eGPUs and even sells them in their stores: <a href="https://support.apple.com/en-us/HT208544">https://support.apple.com/en-us/HT208544</a>)</p>
<p>Thankfully, I saw this guy&#8217;s video, where he was able to run six 4K monitors off of a single Macbook Pro Thunderbolt port and an eGPU:</p>
<p><iframe src="https://www.youtube.com/embed/5Y3C5Mthmlc?ecver=1" width="100%" height="327" frameborder="0" allowfullscreen="allowfullscreen"></iframe></p>
<p>So, since I have a spare RX580 graphics card lying around, I bought a Sonnet eGPU Breakaway Box, which is an enclosure that is Apple compatible and recommended on their website. If you&#8217;re interested, you can buy it here; I&#8217;m not taking affiliate commissions or anything: <a href="https://amazon.com/gp/product/B0764J5QVD/">https://amazon.com/gp/product/B0764J5QVD/</a></p>
<p>Despite 9 different Apple employees telling me that I can&#8217;t add a 4th display to my Mac, I&#8217;m now very confident that I will be able to do so, and that anyone else looking to do so can either do it by setting up a separate <strong>AirPlay display by connecting it to an Apple TV</strong> (ever-so-slight cursor lag but great with movies and cheapest option) or an <strong>eGPU</strong> (expensive but best performance). If you were so inclined, you can hypothetically connect many displays with this method. Here&#8217;s my desk with 4 displays working; I guess I did the impossible, even though this was supported by Apple all along!</p>
<p><img class="alignleft size-full wp-image-1404" src="http://jamesparsons.com/wp-content/uploads/2018/11/4-Displays.jpg" alt="4 Displays" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/11/4-Displays.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/11/4-Displays-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>I hope this helped someone who is looking to add 4 or more displays to their 2018 or 2019 Mac. These new chipsets have a shamefully low limit for monitors. Heck, the old 2012 Macbook Pro was capable of more.</p>
<p>I also hope Apple trains its employees better on Apple-supported options to add additional displays since they all had no clue about eGPUs or Airplay. One senior advisor even told me over the phone that the info I was requesting on adding a 4th monitor was confidential; I wish I was making this up. Apple sells eGPUs in their store, and the manager told me that I wasn&#8217;t able to add a 4th display as well when the solution to my problem was 10 feet away on the shelf.</p>
<p><strong>Update 11/21/2018</strong></p>
<p>The eGPU enclosure that I linked above came in the mail, and I was able to hook up all four of my displays to my RX580. It worked perfectly out of the box; no drivers or configuration needed, just plug and play. They are lightning-fast and the eGPU only uses one Thunderbolt 3 port.</p>
<p><img class="alignleft size-full wp-image-1407" src="http://jamesparsons.com/wp-content/uploads/2018/11/4-Monitors-in-Mac-eGPU.jpg" alt="4 Monitors in Mac eGPU" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/11/4-Monitors-in-Mac-eGPU.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/11/4-Monitors-in-Mac-eGPU-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>setGpu, a project started by &#8220;mayankk2308&#8221; from Atlanta Georgia, can help you automatically modify all of your apps to prefer using your eGPU instead of your onboard graphics. You can find that <a href="https://github.com/mayankk2308/set-egpu">here</a>.</p>
<p>It isn&#8217;t yet available for Mojave, but the dev claims that he is building a new version that will be Mojave compatible.</p>
<p><strong>Update 2/20/2019</strong></p>
<p>setGpu now supports Mojave! I just tried it and it worked great. If it helped you, make sure you donate to his project as your donations make things like this possible.</p>
<p><strong>Update 5/6/2019</strong></p>
<p>If you are noticing your screen flickering, this may be your power management feature trying to switch back and forth between your onboard and eGPU. The latest Mac update removed this option from the &#8220;Energy Saver&#8221; settings for some reason, so you&#8217;ll need to open Terminal and type in this command:</p>
<pre>sudo pmset -a gpuswitch 0</pre>
<p>This tells your computer to set your &#8220;Automatic Graphic Switching&#8221; to 0 (off), and the &#8220;-a&#8221; value means to apply it to all situations; plugged in, battery, etc. Since the Mac Mini doesn&#8217;t have a battery the -a value will ensure it never tries automatically switching your display source on you. No more screen flickering!</p>
<p><strong>Update 9/19/2020</strong></p>
<p>It appears that macOS Catalina supports a new series of graphics cards &#8211; the RX 5700 series.</p>
<p><img class="alignleft size-full wp-image-1541" src="https://jamesparsons.com/wp-content/uploads/2018/11/Catalina-Cards.jpg" alt="Catalina Cards" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/11/Catalina-Cards.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/11/Catalina-Cards-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>If you&#8217;ve already upgraded to Catalina or Big Sur and are looking to add multiple displays with an eGPU, make sure you read the official Apple.com support page <a href="https://support.apple.com/en-us/HT208544">(link)</a> to confirm that your card and your enclosure are both compatible with your operating system. They are updating this page very frequently now and it is subject to change.</p>
<p><strong>Update 11/24/2020</strong></p>
<p>The new 2020 M1 Mac Mini has been released and does not yet support eGPUs for multiple displays. It seems that they are detected when plugged in, but MacOS Big Sur does not yet support it.</p>
<p><img class="alignleft size-full wp-image-1546" src="https://jamesparsons.com/wp-content/uploads/2018/11/M1-No-eGPU-Support.jpg" alt="M1 No eGPU Support" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2018/11/M1-No-eGPU-Support.jpg 621w, https://jamesparsons.com/wp-content/uploads/2018/11/M1-No-eGPU-Support-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>I&#8217;ll do my best to update this post when MacOS Big Sur updates and adds back the eGPU functionality. Why they released it without eGPU compatibility in the first place is beyond me &#8211; it seems that the best beta users are ordinary folks like us who rely on their Mac for their job. Update your Mac Mini with caution until Apple figures out this multiple monitor thing.</p>
<p><strong>Update 12/12/2020</strong></p>
<p>Here&#8217;s a user who&#8217;s simply using external USB 3.0 video cards to power his monitors on his M1 Mac Mini.</p>
<p><iframe src="https://www.youtube.com/embed/Kq_FyjcAULA" width="100%" height="327" frameborder="0" allowfullscreen="allowfullscreen"><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span></iframe></p>
<p>I&#8217;m not a fan of USB video cards for their performance limitations, but these little USB cards seem pretty mighty for casual use. If you&#8217;re using your displays for any sort of high-performance graphics or if slight stutters are completely unacceptable, this may not be the best option for you. Something to consider nevertheless.</p>
<p><em>If this helped you, or if you have questions or comments, please leave me a message below! I do my best to respond to each and every comment. </em></p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2018/11/multiple-monitors-mac-mini">Run More Than 3 Monitors on the 2018 &#038; 2019 Mac Mini</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2018/11/multiple-monitors-mac-mini/feed</wfw:commentRss>
			<slash:comments>75</slash:comments>
		
		
			</item>
		<item>
		<title>Elgato Eve Switches and Range Issues &#8211; Extending Range</title>
		<link>https://jamesparsons.com/2017/12/extend-elgato-eve-range</link>
					<comments>https://jamesparsons.com/2017/12/extend-elgato-eve-range#comments</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Tue, 05 Dec 2017 05:07:11 +0000</pubDate>
				<category><![CDATA[Casual Posts]]></category>
		<guid isPermaLink="false">http://jamesparsons.com/?p=1356</guid>

					<description><![CDATA[<p>Elgato Eve switches are a new product from Elgato that is Apple HomeKit compatible. Every time a door opens in your house,...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2017/12/extend-elgato-eve-range">Elgato Eve Switches and Range Issues &#8211; Extending Range</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1357" src="http://jamesparsons.com/wp-content/uploads/2017/12/Eve-Door-Switch.jpg" alt="Eve Door Switch" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2017/12/Eve-Door-Switch.jpg 621w, https://jamesparsons.com/wp-content/uploads/2017/12/Eve-Door-Switch-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>Elgato Eve switches are a new product from Elgato that is Apple HomeKit compatible. Every time a door opens in your house, you will be notified about it from anywhere in the world.</p>
<p>It&#8217;s a pretty cool device and idea, but what most people don&#8217;t know is these are powered by Bluetooth, and the range is limited to about 25 feet.</p>
<p>I found some of my door switches would frequently show &#8220;No response&#8221; in Apple Home.</p>
<p>My wifi has exceptional reach, and I&#8217;ve created a roaming network throughout my house. One of the access ports is actually right next to the switch that doesn&#8217;t respond.</p>
<p>What could be wrong? Is the HomeKit software buggy? Is it Eve&#8217;s fault? Is it my network?</p>
<p>After banging my head a little bit trying to figure this out, I soon realized this has nothing to do with the Eve. Since it&#8217;s Bluetooth, it is trying to contact either your iPhone, or your home Hub (in my case, my iPad in my office). This explained why it would suddenly work when I walked up to it with my phone, and then disappeared when I was back in my office.</p>
<p>Long story short, you need a Bluetooth range repeater, which&#8230; doesn&#8217;t really exist for these yet.</p>
<p>Elgato announced a product called the Elgato Eve Extend, <strike>but at the time of writing, it is not out yet.</strike> The Eve Extend is now avaialable, see our notes on this at the end of the post.</p>
<p><img class="alignleft size-full wp-image-1358" src="http://jamesparsons.com/wp-content/uploads/2017/12/Eve-Extend.jpg" alt="Eve Extend" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2017/12/Eve-Extend.jpg 621w, https://jamesparsons.com/wp-content/uploads/2017/12/Eve-Extend-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>The only other way to extend the range is by adding another Apple hub. So, I went out, and bought a Gen 4 Apple TV, which I&#8217;ll use as a second hub until the Extend hits the shelves (then it&#8217;ll go in my living room). Then, I added it as a hub in Apple Home. It says &#8220;Standby&#8221;, which is normal; this means it&#8217;s your second Apple Home hub, and it&#8217;s connected.</p>
<p><img class="alignleft size-full wp-image-1359" src="http://jamesparsons.com/wp-content/uploads/2017/12/Home-Hubs.jpg" alt="Home Hubs" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2017/12/Home-Hubs.jpg 621w, https://jamesparsons.com/wp-content/uploads/2017/12/Home-Hubs-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>The Apple TV works as a defacto range extender. You can actually daisy chain these things throughout your house, if you really wanted to (though that would get a little expensive).</p>
<p>I used a headless display HDMI plug I had laying around to trick it into thinking a display is connected, just incase it didn&#8217;t work without one (it may work fine without it, I haven&#8217;t tested), and made sure to set it so it never goes to sleep.</p>
<p>Now, all of my devices are happily connected and have not disconnected once since.</p>
<p><img class="alignleft size-full wp-image-1362" src="http://jamesparsons.com/wp-content/uploads/2017/12/Connected.jpg" alt="Connected" width="621" height="327" srcset="https://jamesparsons.com/wp-content/uploads/2017/12/Connected.jpg 621w, https://jamesparsons.com/wp-content/uploads/2017/12/Connected-300x158.jpg 300w" sizes="(max-width: 621px) 100vw, 621px" /></p>
<p>So, for now, its an expensive temporary solution, until these Bluetooth extenders come out.</p>
<h3>2019 Update</h3>
<p>The Eve Extend is now available, but it doesn&#8217;t have the best reviews. You can find it on Amazon (I won&#8217;t link it here) or at a local retailer if you&#8217;re interested. Still, it beats having to buy an Apple TV to extend your Bluetooth range, if you can get it working.</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2017/12/extend-elgato-eve-range">Elgato Eve Switches and Range Issues &#8211; Extending Range</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2017/12/extend-elgato-eve-range/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Picking a Tool to Use to Mass Scrape Thousands of Keywords</title>
		<link>https://jamesparsons.com/2016/11/tool-mass-scrape-keywords</link>
					<comments>https://jamesparsons.com/2016/11/tool-mass-scrape-keywords#respond</comments>
		
		<dc:creator><![CDATA[James Parsons]]></dc:creator>
		<pubDate>Wed, 09 Nov 2016 19:35:12 +0000</pubDate>
				<category><![CDATA[Business Posts]]></category>
		<guid isPermaLink="false">http://jamesparsons.com/?p=1297</guid>

					<description><![CDATA[<p>So you want to scrape bulk keywords. Assuming you&#8217;re a novice to expert internet marketer, you&#8217;ve probably already explored the following options:...</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2016/11/tool-mass-scrape-keywords">Picking a Tool to Use to Mass Scrape Thousands of Keywords</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>So you want to scrape bulk keywords. Assuming you&#8217;re a novice to expert internet marketer, you&#8217;ve probably already explored the following options:</p>
<ul>
<li><strong>Scrapebox keyword scraper</strong> (limited by your proxies)</li>
<li><strong>Ubersuggest</strong> (gives you about 100 or so keywords from a single entry; not bad, but will take a long time and a lot of copy pasting)</li>
<li><strong>Google Keyword Tool</strong> (same, great for small batches of keywords)</li>
</ul>
<p>I&#8217;ve found the biggest bottleneck in my web scraping process has been getting a large enough keyword list. Whether you&#8217;re using Scrapebox, Gscraper, or some other app, they all require you to import a keyword list before you can actually start scraping URLs.</p>
<p>Moving right ahead, here are two great free options I&#8217;ve found in the past week by digging through countless forums and private communities.</p>
<h3>Option 1: KeywordScraper by Piotr (Blackhatworld)</h3>
<p>This is a great little app. I like to think of it as Ubersuggest, but instead of starting a new scrape and having to re-load the page, you can continually add keywords to the list for them to scrape. One keyword generally yields anywhere from 50 to 150 keywords. This means you can just start typing from the top of your head. Example, &#8220;internet marketing, blogging, seo, content creation, backlink building, forum posting, wordpress seo&#8221;; in about 30 seconds, you already are pushing thousands of keywords.</p>
<p>Then, when you have your list, click the &#8220;Copy to clipboard&#8221; button and paste it into your software. Pretty easy.</p>
<p><img class="alignleft size-full wp-image-1300" src="http://jamesparsons.com/wp-content/uploads/2016/11/Piotr-Keyword-Tool.png" alt="Piotr Keyword Tool" width="510" height="423" srcset="https://jamesparsons.com/wp-content/uploads/2016/11/Piotr-Keyword-Tool.png 510w, https://jamesparsons.com/wp-content/uploads/2016/11/Piotr-Keyword-Tool-300x249.png 300w" sizes="(max-width: 510px) 100vw, 510px" /></p>
<p>This is a Windows program, so if you&#8217;re running Mac or Linux you&#8217;ll have to run it in a virtual environment. Here are the download links and VirusTotal information (it&#8217;s virus free):</p>
<p><strong>Download links:</strong><br />
<a href="http://uploadmirrors.com/download/MWRDKYBP/KeywordScraper_by_Piotr__11_0.rar" rel="nofollow" target="_blank">http://uploadmirrors.com/download/MWRDKYBP/KeywordScraper_by_Piotr__11_0.rar</a><br />
<a href="http://www.mediafire.com/?8kcc51x6z0igbca" rel="nofollow" target="_blank">http://www.mediafire.com/?8kcc51x6z0igbca</a></p>
<p><strong>VirusTotal:</strong><br />
<a href="https://www.virustotal.com/en/file/...7ee71937d805192f5eb17eddabfc3c3b292/analysis/" rel="nofollow" target="_blank">https://www.virustotal.com/en/file/&#8230;7ee71937d805192f5eb17eddabfc3c3b292/analysis/</a></p>
<h3>Option 2: KeywordSh*tter</h3>
<p>It feels lame bleeping out sh*tter, but coming from an SEO background, I&#8217;ve read plenty about curse words and their effect on webpage rankings. Better play it safe!</p>
<p>I love everything about this website.<br />
The name is funnny. It&#8217;s a website, so no software needed. Its free. Its simple.</p>
<p>And, well, the app does exactly that. Enter a keyword, and it just won&#8217;t stop spitting out keywords. I typed in &#8220;Test&#8221;, and its up to 13,000 unique keywords and counting:</p>
<p><img class="alignleft size-full wp-image-1298" src="http://jamesparsons.com/wp-content/uploads/2016/11/KeywordShitter.png" alt="Keywordsh*tter" width="622" height="749" srcset="https://jamesparsons.com/wp-content/uploads/2016/11/KeywordShitter.png 622w, https://jamesparsons.com/wp-content/uploads/2016/11/KeywordShitter-249x300.png 249w" sizes="(max-width: 622px) 100vw, 622px" /></p>
<p>You can try it out here: <a href="http://keywordshitter.com/" rel="nofollow" target="_blank">http://keywordshitter.com/</a></p>
<h3>Final Thoughts</h3>
<p>In my opinion, if you&#8217;re going for quality, option #1 is going to get you some great targeted keywords very quickly. It is like UberSuggest on crack, and if you work very quickly and can think of 50-100 things to feed the app per minute, you&#8217;ll have a list in the tens or hundreds of thousands very quickly. Take it one step further and work up a macro to copy and paste words into the app, and run it over night. You&#8217;d probably wake up to a list in the tens of millions.</p>
<p>If you&#8217;re going for quantity, Keywordsh*tter is the best I&#8217;ve found. It just doesn&#8217;t give up. As we speak, its in the tens of thousands approaching hundreds of thousands just for the word &#8220;Test&#8221;. </p>
<p>Do you have a tool that can beat that? What do you think of these two? Let me know in the comments below.</p>
<p>The post <a rel="nofollow" href="https://jamesparsons.com/2016/11/tool-mass-scrape-keywords">Picking a Tool to Use to Mass Scrape Thousands of Keywords</a> appeared first on <a rel="nofollow" href="https://jamesparsons.com">James Parsons</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jamesparsons.com/2016/11/tool-mass-scrape-keywords/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
