<?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/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Michael, Author at Michael Sunarlim</title>
	<atom:link href="https://sunarlim.com/author/maykel/feed/" rel="self" type="application/rss+xml" />
	<link>https://sunarlim.com/author/maykel/</link>
	<description>Random blurbs about web development, e-commerce and technology</description>
	<lastBuildDate>Fri, 19 Mar 2021 19:55:20 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.5</generator>

<image>
	<url>https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/07/cropped-MS_Square_512x512.png?fit=32%2C32&#038;ssl=1</url>
	<title>Michael, Author at Michael Sunarlim</title>
	<link>https://sunarlim.com/author/maykel/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">30613895</site>	<item>
		<title>Quick fix to Samsung S8&#8217;s camera blurred and not focusing</title>
		<link>https://sunarlim.com/2017/07/samsung-s8-camera-blurred/</link>
					<comments>https://sunarlim.com/2017/07/samsung-s8-camera-blurred/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Wed, 12 Jul 2017 15:25:48 +0000</pubDate>
				<category><![CDATA[Gadget & Devices]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2626</guid>

					<description><![CDATA[<p>Try this method&#8230; Shake the phone briefly. That solved my problem!</p>
<p>The post <a href="https://sunarlim.com/2017/07/samsung-s8-camera-blurred/">Quick fix to Samsung S8&#8217;s camera blurred and not focusing</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Try this method&#8230;</p>
<blockquote><p>Shake the phone briefly.</p></blockquote>
<p>That solved my problem!</p>
<p>The post <a href="https://sunarlim.com/2017/07/samsung-s8-camera-blurred/">Quick fix to Samsung S8&#8217;s camera blurred and not focusing</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2017/07/samsung-s8-camera-blurred/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2626</post-id>	</item>
		<item>
		<title>MailChimp Subscribe Form with PHP, jQuery and AJAX (API 3.0)</title>
		<link>https://sunarlim.com/2017/01/mailchimp-subscribe-form-php-jquery-api3/</link>
					<comments>https://sunarlim.com/2017/01/mailchimp-subscribe-form-php-jquery-api3/#comments</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Mon, 09 Jan 2017 06:48:18 +0000</pubDate>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[mailchimp]]></category>
		<category><![CDATA[php]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2591</guid>

					<description><![CDATA[<p>By popular demand, I updated my code and posted it as new GitHub repository that utilizes newer MailChimp API 3.0. Please read the tutorial below to create AJAX based MailChimp subscribe form on your PHP website with a little jQuery knowledge. Original post using (older and no longer supported) MailChimp API 1.0 can be found here. What... <span class="more"><a class="more-link" href="https://sunarlim.com/2017/01/mailchimp-subscribe-form-php-jquery-api3/">Continue reading <span class="meta-nav">&#8594;</span></a></span></p>
<p>The post <a href="https://sunarlim.com/2017/01/mailchimp-subscribe-form-php-jquery-api3/">MailChimp Subscribe Form with PHP, jQuery and AJAX (API 3.0)</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>By popular demand, I updated my code and posted it as <a href="https://github.com/sunarlim/mailchimp-subscribe-api-v3" target="_blank" rel="noopener">new GitHub repository</a> that utilizes newer MailChimp API 3.0. Please read the tutorial below to create AJAX based MailChimp subscribe form on your PHP website with a little jQuery knowledge.</p>
<p>Original post using (older and no longer supported) MailChimp API 1.0 can be found <a href="https://sunarlim.com/2014/04/mailchimp-sign-form-php-jquery-ajax/">here</a>.</p>
<h3>What this code does</h3>
<ul>
<li>Validate field contents</li>
<li>Pass the form submission to MailChimp and add the record to your list</li>
<li>Basic fallback method for very, very old browser or does not have JavaScript activated</li>
<li>Very customizable and easily expandable, depending on your requirements</li>
<li>jQuery and jQuery Validation plugin called from CDNJS to keep number of files to maintain at minimal</li>
</ul>
<p><span id="more-2591"></span></p>
<h3>Tools/Credits</h3>
<ol>
<li><a title="jQuery" href="http://jquery.com/" target="_blank" rel="noopener">jQuery</a></li>
<li><a title="jQuery Validation" href="http://jqueryvalidation.org/" target="_blank" rel="noopener">jQuery Validation Plugin</a></li>
<li><a title="MailChimp API Wrappers" href="https://github.com/drewm/mailchimp-api" target="_blank" rel="noopener">MailChimp API v3 PHP Wrapper</a></li>
</ol>
<h3>MailChimp API Key and List ID</h3>
<p>Below we start, we need to generate public API key from your MailChimp account and also identify your list ID. If you are not sure how to retrieve those, follow these links from MailChimp Knowledge Base to <a title="MailChimp - Finding or generating your API key" href="http://kb.mailchimp.com/accounts/management/about-api-keys#Finding-or-generating-your-API-key" target="_blank" rel="noopener">retrieve your account&#8217;s API key</a> and <a title="MailChimp - Find Your List ID" href="http://kb.mailchimp.com/lists/managing-subscribers/find-your-list-id" target="_blank" rel="noopener">find your list ID</a>.</p>
<h4>The Form Page (index.php)</h4>
<p>jQuery will handle the AJAX using <span class="lang:js decode:true crayon-inline">$.post</span>  method and jQuery Validation plugin will validate the field values including email address format.</p>
<p>For this example, I am including first name and last name as part of the form fields. Feel free to make adjustments as required. Although keep in mind after changing the form fields, you may also need to adjust the <span class="lang:default decode:true crayon-inline">subscribe.php</span>  file too.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="html" data-enlighter-linenumbers="false">&lt;html&gt;
&lt;head&gt;
  &lt;title&gt;MailChimp (API v3) Sign-Up Form&lt;/title&gt;
  &lt;script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"&gt;&lt;/script&gt;
  &lt;script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.16.0/jquery.validate.min.js"&gt;&lt;/script&gt;
  &lt;script type="text/javascript"&gt;
    $(document).ready(function() {
      // jQuery Validation
      $("#signup").validate({
        // if valid, post data via AJAX
        submitHandler: function(form) {
          $.post("subscribe.php", { fname: $("#fname").val(), lname: $("#lname").val(), email: $("#email").val() }, function(data) {
            $('#response').html(data);
          });
        },
        // all fields are required
        rules: {
          fname: {
            required: true
          },
          lname: {
            required: true
          },
          email: {
            required: true,
            email: true
          }
        }
      });
    });
  &lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
  &lt;div id="wrapper"&gt;
    &lt;form id="signup" class="formee" action="subscribe.php" method="post"&gt;
      &lt;fieldset&gt;
        &lt;legend&gt;Sign Up&lt;/legend&gt;
        &lt;div&gt;
          &lt;label for="fname"&gt;First Name *&lt;/label&gt; &lt;input name="fname" id="fname" type="text" /&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;label for="lname"&gt;Last Name *&lt;/label&gt; &lt;input name="lname" id="lname" type="text" /&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;label for="email"&gt;Email Address *&lt;/label&gt; &lt;input name="email" id="email" type="text" /&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;input class="right inputnew" type="submit" title="Send" value="Send" /&gt;
        &lt;/div&gt;
      &lt;/fieldset&gt;
    &lt;/form&gt;
    &lt;div id="response"&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<h4>Form Processor <em>(subscribe.php)</em></h4>
<p>I try to include as much comment as possible to make the code self explanatory.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="php" data-enlighter-linenumbers="false">&lt;?php

  // Put your MailChimp API and List ID hehe
  $api_key = 'ENTER_YOUR_API_KEY_HERE';
  $list_id = 'ENTER_YOUR_LIST_ID_HERE';

  // Let's start by including the MailChimp API wrapper
  include('./inc/MailChimp.php');
  // Then call/use the class
  use \DrewM\MailChimp\MailChimp;
  $MailChimp = new MailChimp($api_key);

  // Submit subscriber data to MailChimp
  // For parameters doc, refer to: http://developer.mailchimp.com/documentation/mailchimp/reference/lists/members/
  // For wrapper's doc, visit: https://github.com/drewm/mailchimp-api
  $result = $MailChimp-&gt;post("lists/$list_id/members", [
              'email_address' =&gt; $_POST["email"],
              'merge_fields'  =&gt; ['FNAME'=&gt;$_POST["fname"], 'LNAME'=&gt;$_POST["lname"]],
              'status'        =&gt; 'subscribed',
            ]);

  if ($MailChimp-&gt;success()) {
    // Success message
    echo "&lt;h4&gt;Thank you, you have been added to our mailing list.&lt;/h4&gt;";
  } else {
    // Display error
    echo $MailChimp-&gt;getLastError();
    // Alternatively you can use a generic error message like:
    // echo "&lt;h4&gt;Please try again.&lt;/h4&gt;";
  }
?&gt;</pre>
<h3>Download</h3>
<p><a href="https://github.com/sunarlim/mailchimp-subscribe-api-v3/archive/master.zip">Click here to download</a> the basic files to create MailChimp subscribe form on your website. Alternatively, you can also <a href="https://github.com/sunarlim/mailchimp-subscribe-api-v3" target="_blank" rel="noopener">visit the GitHub repository</a>.</p>
<h3>Coming Soon Templates</h3>
<p>The MailChimp subscribe form example only includes basic HTML page. If you are thinking of using it for your upcoming site, and you have limited resources to create the page design, check out my list of <a title="5 Clean and Free Coming Soon Page Templates with Email Subscription Form" href="https://sunarlim.com/2014/05/5-clean-and-free-coming-soon-page-templates/">5 Clean and Free Coming Soon Page Templates</a> and <a title="ThemeForest &gt; Site Templates &gt; Specialty Pages &gt; Under Construction" href="http://themeforest.net/category/site-templates/specialty-pages/under-construction?ref=mayksyu" target="_blank" rel="noopener">Coming Soon &amp; Under Construction Templates on ThemeForest</a>.</p>
<p>The post <a href="https://sunarlim.com/2017/01/mailchimp-subscribe-form-php-jquery-api3/">MailChimp Subscribe Form with PHP, jQuery and AJAX (API 3.0)</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2017/01/mailchimp-subscribe-form-php-jquery-api3/feed/</wfw:commentRss>
			<slash:comments>38</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2591</post-id>	</item>
		<item>
		<title>Samsung Gear S3 release makes the older S2 a great holiday gift</title>
		<link>https://sunarlim.com/2016/12/samsung-gear-s3-s2-great-holiday-gift/</link>
					<comments>https://sunarlim.com/2016/12/samsung-gear-s3-s2-great-holiday-gift/#comments</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Mon, 05 Dec 2016 08:58:59 +0000</pubDate>
				<category><![CDATA[Gadget & Devices]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[smartwatch]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2568</guid>

					<description><![CDATA[<p>2016 has been a very difficult year for Samsung and a frustrating one for its customers. I shared my disappointment in Samsung decision to make the S7 Edge larger than its older sibling, the S6 Edge. Then we witnessed the biggest product blunder of the decade in consumer electronics industry with Galaxy Note 7.  To complete the updates of their flagship... <span class="more"><a class="more-link" href="https://sunarlim.com/2016/12/samsung-gear-s3-s2-great-holiday-gift/">Continue reading <span class="meta-nav">&#8594;</span></a></span></p>
<p>The post <a href="https://sunarlim.com/2016/12/samsung-gear-s3-s2-great-holiday-gift/">Samsung Gear S3 release makes the older S2 a great holiday gift</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img fetchpriority="high" decoding="async" class="wp-image-2572 size-medium alignleft" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/gear-s3_performance_wirelessly.jpg?resize=300%2C229&#038;ssl=1" alt="Samsung Gear S3 wireless charging" width="300" height="229" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/gear-s3_performance_wirelessly.jpg?resize=300%2C229&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/gear-s3_performance_wirelessly.jpg?resize=768%2C586&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/gear-s3_performance_wirelessly.jpg?resize=600%2C457&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/gear-s3_performance_wirelessly.jpg?resize=780%2C595&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/gear-s3_performance_wirelessly.jpg?w=787&amp;ssl=1 787w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" />2016 has been a very difficult year for Samsung and a frustrating one for its customers. I shared <a href="https://sunarlim.com/2016/04/smaller-samsung-s7-edge/">my disappointment</a> in Samsung decision to make the S7 Edge larger than its older sibling, the S6 Edge. Then we witnessed the biggest product blunder of the decade in consumer electronics industry with Galaxy Note 7.  To complete the updates of their flagship products this year, they release the Samsung Gear S3.</p>
<h2>Why is Samsung Gear S3 less attractive than Gear S2 when released?</h2>
<p>Don&#8217;t get me wrong. The Gear S3 in overall is an upgrade compared to the previous generation S2. Here are some of notable improvements of the Tizen-powered smartwatch:</p>
<ol>
<li>Larger battery capacity: 380 mAh which promised to give standby time up to 4 days, compared to 250 mAh on Gear S2 which can last between 2-3 days with normal use.</li>
<li>Gorilla Glass SR+ which should be more damage resistant compared to Gorilla Glass 3 on S2.</li>
</ol>
<p>Those two factors are the only things that I consider as positive upgrades. Of course they keep all the essential features that made the S2 a solid product in the smartwatch category. Always-on display, rotating bezel, wireless charging, and interchangeable bands, they are all still there on Gear S3.</p>
<p>Now here&#8217;s why I feel the new release of Gear S3 feels like an unworthy upgrade:</p>
<ol>
<li><strong>Larger size</strong><br />
OK, this is very subjective matter. But for me personally, one of the biggest decision factor to get the Gear S2 because it was one of the most compact smartwatch out there, while still packing a lot of functionality. At 49 x 46 x 12.9 mm, the Gear S3 is about 15% larger than Gear S2 Classic which measures at 39.9 x 43.6 x 11.4 mm.</li>
<li><strong>Heavier</strong><br />
Thanks to the larger size and increased battery, the Gear S3 Classic weighs 57 g. Gear S2 Classic weighs just 42 g, that&#8217;s 26% lighter. To be fair, the extra weight may help to give a more premium feel. But for me it is unnecessary because the built and finish are pretty much the same.</li>
<li><strong>Lower PPI (pixel per inch)</strong><br />
Still related to the increased size. While the screen is about 15% larger, Samsung did not make any attempt to increase the screen resolution. Both Gear S2 and Gear S3 have the same display resolution of 360 x 360 pixels. This means lower PPI for Gear S3 at 278 ppi, compared to 302 ppi on Gear S2.</li>
</ol>
<h2>What should they have focused on: software</h2>
<p>The Samsung Gear S line has so much potential to grab wider market, if only they put their priority and meet their promise in terms of software development. Yes, I am talking about Gear Manager for iOS to <a href="https://sunarlim.com/2016/02/connecting-samsung-gear-s2-with-iphone/">allow iPhone users to connect and manage Gear S2/S3</a> and enjoy its full potential. It has been almost a year since they released a statement to make iOS version of its Gear Manager app.</p>
<p>iPhone users have been anxiously waiting for its official release, but as of today it is still stuck in a closed beta status. Instead of trying to refresh the hardware with &#8220;half-baked&#8221; upgrades, Samsung should have allocated its resources to get the iOS app into the public first.</p>
<h2>Is Gear S3 a good buy?</h2>
<p><img decoding="async" class="alignright size-medium wp-image-2580" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/Simple_GearS2_classic_1920.jpg?resize=300%2C276&#038;ssl=1" alt="Samsung Gear S2 Classic" width="300" height="276" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/Simple_GearS2_classic_1920.jpg?resize=300%2C276&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/Simple_GearS2_classic_1920.jpg?resize=600%2C552&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/12/Simple_GearS2_classic_1920.jpg?w=652&amp;ssl=1 652w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" />At $350 retail price, in short and very personal opinion, I would have to say no. Unless you just want to have a bigger model and using a small(er) watch is against your style. The larger battery life is not a huge deal either. Smartwatch is designed to be charged daily anyway. A 4 days battery life is probably only beneficial if you are going on a short trip and don&#8217;t want to bother bringing the wireless charger with you.</p>
<p>On the bright side, with the Gear S3 already available in the market, it&#8217;s time for the sellers to clean up the stock for older Gear S2 which means selling them at discounted price. Samsung Gear S2 is now sold at $250 and the Gear S2 Classic at $300. At this price range, it would make a perfect holiday gift.</p>
<hr />
<h4>Shop for Samsung Gear</h4>
<p><script type="text/javascript">
amzn_assoc_placement = "adunit0";
amzn_assoc_tracking_id = "michasunar-20";
amzn_assoc_ad_mode = "manual";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "";
amzn_assoc_linkid = "01b34aa319a307453c028849a7eb9f1a";
amzn_assoc_search_bar = "false";
amzn_assoc_asins = "B015JQ62RY,B015JQ60NA,B01M7MDK5S,B01M1OXXT8";
</script></p>
<p><script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script></p>
<p>The post <a href="https://sunarlim.com/2016/12/samsung-gear-s3-s2-great-holiday-gift/">Samsung Gear S3 release makes the older S2 a great holiday gift</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/12/samsung-gear-s3-s2-great-holiday-gift/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2568</post-id>	</item>
		<item>
		<title>Intel NUC as Plex Media Player Client: Setup Guide</title>
		<link>https://sunarlim.com/2016/10/intel-nuc-plex-media-player-client/</link>
					<comments>https://sunarlim.com/2016/10/intel-nuc-plex-media-player-client/#comments</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Mon, 24 Oct 2016 10:46:22 +0000</pubDate>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Gadget & Devices]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[media]]></category>
		<category><![CDATA[media player]]></category>
		<category><![CDATA[plex]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2328</guid>

					<description><![CDATA[<p>The Intel NUC has been around for a while and considered as one of the best kit to build an HTPC. Before models with Brasswell and Sky Lake chipsets however, I always considered it as a big investment because you would need to grab one with i3, i5, or i7 processors to be sure it would be able to handle all media formats. Plus you probably need to make some additional spending on Windows 8/10 for the operating system.</p>
<p>That perception have now changed with the HEVC hardware accelerated encoding support in the newer chipset generations. Plus the release of Plex Media Player* last year with Embedded Platform app.</p>
<p>The post <a href="https://sunarlim.com/2016/10/intel-nuc-plex-media-player-client/">Intel NUC as Plex Media Player Client: Setup Guide</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The Intel NUC has been around for a while and considered as one of the best kit to build an HTPC. Before models with Brasswell and Sky Lake chipsets however, I always considered it as a big investment because you would need to grab one with i3, i5, or i7 processors to be sure it would be able to handle all media formats. Plus you probably need to make some additional spending on Windows 8/10 for the operating system.</p>
<p>That perception have now changed with the HEVC hardware accelerated encoding support in the newer chipset generations. Plus the release of Plex Media Player* last year with Embedded Platform app.</p>
<p><em>* Plex Media Player is currently only available for <strong><a href="https://www.plex.tv/features/plex-pass/" target="_blank" rel="noopener">Plex Pass</a></strong> users.<br />
<strong>UPDATE November 30, 2016: Plex Media Player is now available for all Plex users</strong><br />
</em></p>
<p><em><strong>UPDATE October 21, 2017: Intel has released a newer generation of NUC series (identifier: NUC7XXXXX). They no longer support booting from (micro) SD card, as shared by one of the readers. <a href="#comment-2770">Read Brian&#8217;s notes here</a>.</strong></em></p>
<h2>A little background</h2>
<p>For over a year, I had been using <a href="https://sunarlim.com/2015/07/geek-review-minix-neo-z64-plex/">Minix Neo Z64 running Plex Home Theater</a> as client to browse and play media library from my Plex Media Server on my TV. It had served its primary purpose well but I started to find some limitations from it:</p>
<ol>
<li>It could only be installed with 32-bit version of Windows (or any other x64 based operating system) due to limited BIOS and drivers support. This means, I couldn&#8217;t install the next generation Plex Media Player which unfortunately required 64-bit MacOS or Windows.</li>
<li>No hardware accelerated for HEVC (H.265) video format. Its Quad Core Intel Atom processor were choking to handle 1080p H.265 encoded videos.</li>
<li>Even though it had built-in IR receiver, there was no Windows driver for it. I had to use Flirc USB to control it from my Logitech Harmony remote.</li>
<li>No gigabit ethernet port, only 100 Mbps.</li>
<li>No HD Audio (Dolby TrueHD and DTS-MA) passthrough when using PHT on Windows.</li>
</ol>
<p>So the search was on to find a hardware that would be able to fill those gaps. There is one extra requirement though: it needed to be in the sub $200 budget because I only wanted it as Plex client, not server.</p>
<h2>The hardware: Intel NUC5CPYH</h2>
<p>A few options came into consideration, including <a href="http://amzn.to/2evJMeq" target="_blank" rel="noopener">NVIDIA SHIELD TV</a> and <a href="http://amzn.to/2eGrkjS" target="_blank" rel="noopener">AsRock BEEBOX N3150</a>, but I finally decided to go with <span id="productTitle" class="a-size-large"><strong>Intel NUC NUC5CPYH</strong>. Primarily because of the price point, at less than $130 (barebone, no RAM, no drive) it was still quite an amazing price. While some people might doubt its processing power because it is still running on Celeron processor, but it&#8217;s already based on Braswell chipset and Braswell comes with HEVC hardware acceleration support.</span></p>
<p><img decoding="async" class="aligncenter wp-image-2531 size-large" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Intel-NUC5CPYH.jpg?resize=740%2C334&#038;ssl=1" alt="Intel NUC5CPYH" width="740" height="334" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Intel-NUC5CPYH.jpg?resize=1024%2C462&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Intel-NUC5CPYH.jpg?resize=300%2C135&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Intel-NUC5CPYH.jpg?resize=768%2C346&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Intel-NUC5CPYH.jpg?resize=600%2C271&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Intel-NUC5CPYH.jpg?resize=780%2C352&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Intel-NUC5CPYH.jpg?w=1200&amp;ssl=1 1200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></p>
<p>Here&#8217;s the list of components to get it up and running:</p>
<ul>
<li>Intel NUC5CPYH Barebone Kit – $128 [<a href="http://amzn.to/2ecbApd" target="_blank" rel="noopener">link</a>]</li>
<li>Kingston HyperX Impact Black 4GB 1600MHz DDR3L SODIMM – $25 [<a href="http://amzn.to/2dZOPTS" target="_blank" rel="noopener">link</a>]</li>
<li>SanDisk Ultra Fit 32GB USB 3.0 Flash Drive – $10 [<a href="http://amzn.to/2evOBoj" target="_blank" rel="noopener">link</a>]</li>
</ul>
<p>You could go with SDXC or even hard drive/SSD instead of using USB flash drive, that one is completely up to your preference. For me, the SanDisk Ultra Fit just offered the best bang for the buck.</p>
<p>In addition, you also need a spare USB drive with around 1GB of storage and USB keyboard to copy and install the Plex Media Player for embedded platform image.</p>
<p><script type="text/javascript">
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "false";
amzn_assoc_tracking_id = "mayks-20";
amzn_assoc_ad_mode = "manual";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "";
amzn_assoc_asins = "B00XPVRR5M,B00KQCOSLY,B01BGTG41W,B004OVECU0";
amzn_assoc_linkid = "707a16bd71a7676811f665e0bf58313d";
</script></p>
<p><script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script></p>
<h2>Plex Media Player for Embedded Platforms installation</h2>
<p>To download Plex Media Player (PMP) for the Intel NUC, just follow these steps:</p>
<ol>
<li>Go to <a href="https://www.plex.tv/downloads/" target="_blank" rel="noopener">Plex Downloads page</a></li>
<li>Click on <strong>Get an App</strong> button</li>
<li>Make sure <strong>Plex Pass Downloads</strong> is checked on</li>
<li>Under <strong>Choose your app</strong>, select <strong>Plex Media Player &gt; Embedded Platforms</strong></li>
<li>Click on <strong>Download</strong> button, then select <strong>Intel 64-bit</strong></li>
</ol>
<div id="attachment_2432" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?ssl=1"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2432" class="wp-image-2432 size-large" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=740%2C740&#038;ssl=1" alt="Download Plex Media Player" width="740" height="740" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=1024%2C1024&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=600%2C600&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=780%2C780&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?resize=1200%2C1200&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Download-Plex-Media-Player.png?w=1280&amp;ssl=1 1280w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2432" class="wp-caption-text">Plex Downloads Page (click to zoom)</p></div>
<p>Next step is to create the disk image for the USB stick by following <a href="https://support.plex.tv/hc/en-us/articles/212523657-How-do-I-create-the-disk-image-for-my-SD-Card-or-USB-Stick-" target="_blank" rel="noopener">the official tutorial</a>.</p>
<p>After plugging both USB sticks (one with the disk image and another that will act as the computer&#8217;s drive) and keyboard to the Intel NUC, turn it on. The NUC should try to detect a bootable drive, in this case the USB stick with PMP disk image. Then you need to follow the on-screen installation process and select the other USB stick as the destination drive to where app will be installed.</p>
<p>After the installation is complete, you can unplug the disk image stick and reboot the NUC. It should load PMP and you can start using it immediately.</p>
<h2>Setting DTS-MA and Dolby TrueHD passthrough</h2>
<p><a href="https://support.plex.tv/hc/en-us/articles/212072167-Audio-Configuration-Guide-Plex-Media-Player" target="_blank" rel="noopener">Plex Media Player&#8217;s Audio Configuration Guide</a> is a little bit vague in explaining how to enable HD audio passthrough. But for Intel NUC, the key is to select the right Device type and Device under Settings &gt; Audio panel.</p>
<ul>
<li>Device type: <strong>HDMI</strong></li>
<li>Channels: <strong>7.1</strong> <em>(depending on your audio receiver&#8217;s input/output capability)</em></li>
<li>Device: <strong>HDA Intel PCH, HDMI 0/HDMI Audio Out</strong></li>
<li>Normalize Downmixed Volume: <strong>No</strong></li>
<li>Show Advanced Settings: <strong>Yes</strong></li>
<li>Dolby Digital (AC3): <strong>Yes</strong></li>
<li>DTS (DCA): <strong>Yes</strong></li>
<li>Dolby Digital Plus (EAC3): <strong>Yes</strong></li>
<li>DTS-HD Master Audio: <strong>Yes</strong></li>
<li>Dolby TrueHD: <strong>Yes</strong></li>
</ul>
<h2><strong>Maximizing control from Logitech Harmony</strong></h2>
<p>If you own a Logitech Harmony IR remote*, Intel NUC5CPYH already has its own profile on MyHarmony application. Just add a new device and put these values:</p>
<ul>
<li>Manufacturer: <strong>Intel</strong></li>
<li>Device Model Number: <strong>NUC5CPYH</strong></li>
</ul>
<div id="attachment_2546" style="width: 1035px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2546" class="wp-image-2546 size-full" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony.png?resize=740%2C531&#038;ssl=1" alt="Plex Media Player – MyHarmony Add Device" width="740" height="531" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony.png?w=1025&amp;ssl=1 1025w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony.png?resize=300%2C215&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony.png?resize=768%2C551&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony.png?resize=1024%2C734&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony.png?resize=600%2C430&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony.png?resize=780%2C559&amp;ssl=1 780w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /><p id="caption-attachment-2546" class="wp-caption-text">MyHarmony Add A Device screen</p></div>
<p><em>* Logitech remotes based on Harmony Smart Control hub such as Harmony Elite or using RF signal may require different configuration.</em></p>
<p>You should already be able to use the remote for basic commands. However if you really want to have more control, you need to <a href="https://support.plex.tv/hc/en-us/articles/216459997-Create-your-own-inputmap" target="_blank" rel="noopener">create your own inputmap</a>. To save you the trouble of capturing each of the Button Name from the default NUC5CPYH profile, you can refer to my notes below from my <strong>Harmony One</strong> remote.</p>
<pre class="theme:kayote toolbar:2 lang:default highlight:0 decode:true">Button Name     Harmony Button
==============================
KEY_SLEEP       Power Toggle
KEY_RED         Red
KEY_GREEN       Green
KEY_YELLOW      Yellow
KEY_BLUE        Blue
KEY_TUNER       LiveTV
KEY_TV          MyTV
KEY_VIDEO       MyVideos
KEY_AUDIO       MyMusic
KEY_CAMERA      MyPictures
KEY_RADIO       MyRadio
KEY_DVD         DVDMenu
KEY_INFO        Info
KEY_EXIT        Exit
KEY_EPG         Guide
KEY_VOLUMEUP    Vol+
KEY_VOLUMEDOWN  Vol-
KEY_UP          Ch+
KEY_DOWN        Ch-
KEY_MUTE        Mute
KEY_REWIND      Rewind
KEY_FASTFORWARD FastForward
KEY_RECORD      Record
KEY_OK          OK
KEY_LEFT        Left
KEY_RIGHT       Right
KEY_UP          Up
KEY_DOWN        Down</pre>
<p>Now that you know which buttons are recognized as which by PMP, all you need to do is to create a custom inputmap file to your preference and upload it using SSH/SFTP to the NUC under <span class="lang:default decode:true crayon-inline">/storage/.local/share/plexmediaplayer/inputmaps/</span> directory. By the way, the remote is recognized as LIRC.</p>
<p>Here is how I set mine:</p>
<pre class="lang:js decode:true" title="LIRC.json">{
 "name": "LIRC IR",
 "idmatcher": "LIRC*",
 "mapping":
 {
     "KEY_LEFT": "left",
     "KEY_RIGHT": "right",
     "KEY_UP": "up",
     "KEY_DOWN": "down",
     "KEY_MENU": "unknown",
     "KEY_DVD": "home",
     "KEY_SELECT": "enter",
     "KEY_OK": "enter",
     "KEY_BACK": "back",
     "KEY_EXIT": "back",
     "KEY_PLAY": "play",
     "KEY_STOP": "stop",
     "KEY_PAUSE": "pause",
     "KEY_SEEKFWD": "seek_forward",
     "KEY_FASTFORWARD" : "seek_forward",
     "KEY_SEEKBCK": "seek_backward",
     "KEY_REWIND": "seek_backward",
     "KEY_CAMERA": "step_backward",
     "KEY_RADIO": "step_forward",
     "KEY_SUBTITLES": "cycle_subtitles",
     "KEY_INFO": "host:toggleDebug",
     "KEY_NEXT": "step_forward",
     "KEY_PREV": "step_backward",
     "KEY_HOME": "home",
     "KEY_NUMERIC_([0-9])": "%1",
     "KEY_SLEEP": "host:suspend",
     "KEY_RECORD": "toggle_subtitles",
     "KEY_RED": "cycle_subtitles",
     "KEY_GREEN": "cycle_subtitles_back",
     "KEY_YELLOW": "increase_subtitles_delay",
     "KEY_BLUE": "decrease_subtitles_delay",
     "KEY_TUNER": "cycle_audio",
     "KEY_TV": "cycle_audio_back",
     "KEY_VIDEO": "increase_audio_delay",
     "KEY_AUDIO": "decrease_audio_delay"
 }
}</pre>
<p>Once you done that, restart PMP. The final step is to reflect the changes on your Harmony devices and activities settings. You probably want to change the labels on the screen buttons.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-2549" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony-Labels.png?resize=740%2C530&#038;ssl=1" alt="Plex Media Player – MyHarmony Labels" width="740" height="530" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony-Labels.png?w=1020&amp;ssl=1 1020w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony-Labels.png?resize=300%2C215&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony-Labels.png?resize=768%2C550&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony-Labels.png?resize=600%2C430&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/10/Plex-Media-Player-–-MyHarmony-Labels.png?resize=780%2C559&amp;ssl=1 780w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></p>
<h2>Performance</h2>
<p>This tiny device works like a charm! Thanks to hardware acceleration available on Braswell and newer chipsets, the NUC handles all video format I have been throwing at it like a boss.</p>
<p>It has no problems in handling 1080p HEVC (<span style="text-decoration: underline;">8-bit)</span> videos. Over a dozen videos, only one which had one dropped frames occasion, but I think that was caused by network hiccup and not because the CPU/GPU was out of breath. Since this is an embedded app, I could not measure the hardware usage. What I can tell is the NUC never gets hot, or even warm, so it is certainly not stressed when decoding those movies.</p>
<p>The NUC Blog says that it should be able to <a href="http://nucblog.net/2015/08/hevc-decoding-in-linux-for-braswell-is-here/" target="_blank" rel="noopener">handle 4k HEVC videos</a>. My TV is not 4k yet, so not something I wanted to try, but good to know that it has some future-proofing.</p>
<p>Audio passthrough is perfect also. I can finally see the <strong>HDSUR.</strong> icon showing up on my <a href="https://sunarlim.com/2015/01/geek-review-yamaha-ysp-2500-soundbar/">Yamaha YSP-2500 Soundbar</a>.</p>
<p>Mission accomplished. The Intel NUC5CPYH is a wonderful upgrade from Minix Z64 for a small budget dedicated HTPC.</p>
<h3>Reader&#8217;s tip: Stuttering Issue</h3>
<p>In case you are seeing stuttering with during video playback, and not related to audio output configuration, you may want to try enabling <strong>Allow Display Mode Switching</strong> under Settings &gt; Video. Thanks for the note, <a href="https://www.tk1225.com/" target="_blank" rel="noopener">Joe</a>!</p>
<h4>Shop for your Plex Media Player setup</h4>
<p><script type="text/javascript">
amzn_assoc_placement = "adunit0";
amzn_assoc_search_bar = "false";
amzn_assoc_tracking_id = "mayks-20";
amzn_assoc_ad_mode = "manual";
amzn_assoc_ad_type = "smart";
amzn_assoc_marketplace = "amazon";
amzn_assoc_region = "US";
amzn_assoc_title = "";
amzn_assoc_asins = "B00XPVRR5M,B00KQCOSLY,B01BGTG41W,B004OVECU0";
amzn_assoc_linkid = "707a16bd71a7676811f665e0bf58313d";
</script></p>
<p><script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script></p>
<p>The post <a href="https://sunarlim.com/2016/10/intel-nuc-plex-media-player-client/">Intel NUC as Plex Media Player Client: Setup Guide</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/10/intel-nuc-plex-media-player-client/feed/</wfw:commentRss>
			<slash:comments>25</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2328</post-id>	</item>
		<item>
		<title>Swans HiVi M50W unboxing and early impressions</title>
		<link>https://sunarlim.com/2016/08/swans-hivi-m50w-unboxing/</link>
					<comments>https://sunarlim.com/2016/08/swans-hivi-m50w-unboxing/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Tue, 09 Aug 2016 09:45:50 +0000</pubDate>
				<category><![CDATA[Gadget & Devices]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[speakers]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2276</guid>

					<description><![CDATA[<p>Less than a year after started using Logitech Z200 speakers for my desktop setup, I was hit with an upgrade bug. When I bought them, I did not intend it for serious music listening, just to give a decent sound from the speaker-less Mac mini.  I used to prefer using headphones while working, but unexpectedly I craved to listen over (good) speakers over the cans. The Z200 served their purpose, but not enough to truly enjoy the music from my playlists. I had been eyeing on the highly regarded AudioEngine A2+, but I just knew I would be wanting more bass. Then I discovered about the Swans HiVi M50W 2.1 multimedia speakers.</p>
<p>The post <a href="https://sunarlim.com/2016/08/swans-hivi-m50w-unboxing/">Swans HiVi M50W unboxing and early impressions</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Less than a year after started using <a href="http://amzn.to/2aHigHJ" target="_blank">Logitech Z200</a> speakers for my desktop setup, I was hit with an upgrade bug. When I bought them, I did not intend it for serious music listening, just to give a decent sound from the speaker-less Mac mini.  I used to prefer using headphones while working, but unexpectedly I craved to listen over (good) speakers over the cans. The Z200 served their purpose, but not enough to truly enjoy the music from my playlists. I had been eyeing on the highly regarded <a href="http://amzn.to/2aC8ZRC" target="_blank">AudioEngine A2+</a>, but I just knew I would be wanting more bass. Then I discovered about the <a href="http://www.swanspeaker.com/product/htm/view.asp?id=443" target="_blank">Swans HiVi M50W 2.1 multimedia speakers</a>.</p>
<p>These speakers are considered as one of the best with their price range. They are only slightly more expensive than AE A2+ but comes with a subwoofer. In fact it&#8217;s a super solid subwoofer, but more on that later. Does that mean their sound quality below A2+? Many people would disagree. There are also many other 2.1 speaker systems from more recognized brands in the same price range that ended on my shortlist. The reason why I chose M50W in the end is because the brand comes from SQ-centric customers compared to more generic market. The design and finish define it as you can see below.</p>
<h2>Unboxing photos</h2>

<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?w=5312&amp;ssl=1 5312w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?resize=600%2C338&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?resize=780%2C439&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?resize=1200%2C675&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?resize=1920%2C1080&amp;ssl=1 1920w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?w=1480&amp;ssl=1 1480w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132426.jpg?w=2220&amp;ssl=1 2220w" sizes="(max-width: 740px) 100vw, 740px" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?w=5312&amp;ssl=1 5312w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?resize=600%2C338&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?resize=780%2C439&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?resize=1200%2C675&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?resize=1920%2C1080&amp;ssl=1 1920w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?w=1480&amp;ssl=1 1480w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132501.jpg?w=2220&amp;ssl=1 2220w" sizes="(max-width: 740px) 100vw, 740px" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?w=5312&amp;ssl=1 5312w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?resize=600%2C338&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?resize=780%2C439&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?resize=1200%2C675&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?resize=1920%2C1080&amp;ssl=1 1920w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?w=1480&amp;ssl=1 1480w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_132709-e1470733869330.jpg?w=2220&amp;ssl=1 2220w" sizes="(max-width: 740px) 100vw, 740px" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?w=5312&amp;ssl=1 5312w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?resize=600%2C338&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?resize=780%2C439&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?resize=1200%2C675&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?resize=1920%2C1080&amp;ssl=1 1920w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?w=1480&amp;ssl=1 1480w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133131-e1470733903596.jpg?w=2220&amp;ssl=1 2220w" sizes="(max-width: 740px) 100vw, 740px" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?w=5312&amp;ssl=1 5312w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?resize=600%2C338&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?resize=780%2C439&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?resize=1200%2C675&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?resize=1920%2C1080&amp;ssl=1 1920w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?w=1480&amp;ssl=1 1480w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133242-e1470733991190.jpg?w=2220&amp;ssl=1 2220w" sizes="(max-width: 740px) 100vw, 740px" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?w=5312&amp;ssl=1 5312w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?resize=600%2C338&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?resize=780%2C439&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?resize=1200%2C675&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?resize=1920%2C1080&amp;ssl=1 1920w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?w=1480&amp;ssl=1 1480w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133315-e1470734032418.jpg?w=2220&amp;ssl=1 2220w" sizes="(max-width: 740px) 100vw, 740px" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133341-e1470734055425.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133341-e1470734055425.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133550-e1470734075825.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133550-e1470734075825.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?w=5312&amp;ssl=1 5312w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?resize=300%2C169&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?resize=768%2C432&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?resize=1024%2C576&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?resize=600%2C338&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?resize=780%2C439&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?resize=1200%2C675&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?resize=1920%2C1080&amp;ssl=1 1920w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?w=1480&amp;ssl=1 1480w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160806_133618-e1470734127350.jpg?w=2220&amp;ssl=1 2220w" sizes="(max-width: 740px) 100vw, 740px" /></a>
<a rel="fancybox" href='https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160807_093538-1-e1470734324761.jpg?ssl=1'><img loading="lazy" decoding="async" width="740" height="416" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/20160807_093538-1-e1470734324761.jpg?fit=740%2C416&amp;ssl=1" class="attachment-large size-large" alt="" /></a>

<h2>Early impressions</h2>
<p>It could be because I had read so many rave reviews about the speakers prior to ordering them, but when I heard them for the first time, I felt they had been a bit overrated. They produced good sound, but still a tad below my expectation. However the local rep constantly reminded the customers to give them a burn-in time of minimum 100 hours before they will truly spark. Fair enough.</p>
<p>One thing that already caught my admiration was the subwoofer. Even though it can be considered compact with only 6.5&#8243; driver, it pushes solid and round bass. It is surprisingly very heavy too, most of the 17kg packaging weight is from the sub. This alone concluded that I had made the right decision to picking this set over the A2+.</p>
<p>I am now in around 20 hours of burn-in time and have already been noticing the sound improvements. Even with low volume, I can hear most of the frequency ranges, an indication of high quality speakers. Can&#8217;t wait to hear when they have unleashed their true potential. I plan to write a full review after spending (a lot) more time with them. But for now, I am very happy with the Swans HiVi M50W and would recommend them to anyone looking for 2.1 multimedia speaker system in $200-$300 range.</p>
<h4>The goods</h4>
<ul>
<li>Superb finish, every piece uses high quality material</li>
<li>Excellent subwoofer built and performance</li>
<li>Looks awesome</li>
<li>Can go really loud</li>
</ul>
<h4>The bads</h4>
<ul>
<li>Initial listening might not show the true potential, require burn-in and some tweaking</li>
<li>The satellite is just a tad big for a multimedia speaker at 14 x 14 cm, may require extra space on your desk</li>
<li>Not easily obtainable in some countries</li>
</ul>
<h2></h2>
<p>The post <a href="https://sunarlim.com/2016/08/swans-hivi-m50w-unboxing/">Swans HiVi M50W unboxing and early impressions</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/08/swans-hivi-m50w-unboxing/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2276</post-id>	</item>
		<item>
		<title>Shopify PageSpeed Score: Pushing the limits on Bluelounge website</title>
		<link>https://sunarlim.com/2016/08/shopify-pagespeed/</link>
					<comments>https://sunarlim.com/2016/08/shopify-pagespeed/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Tue, 02 Aug 2016 18:35:48 +0000</pubDate>
				<category><![CDATA[Case Studies]]></category>
		<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[Work Related]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[pagespeed]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[shopify]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2242</guid>

					<description><![CDATA[<p>In order to improve the site's SEO even further, Bluelounge requested to improve their Shopify site's PageSpeed score to above 90/100 on both Desktop and Mobile. These are my notes to achieve 95/100 PageSpeed score on an e-commerce site. The steps explained here may not be applicable to all Shopify powered sites, but hopefully you will be able to pick up a point or two. </p>
<p>The post <a href="https://sunarlim.com/2016/08/shopify-pagespeed/">Shopify PageSpeed Score: Pushing the limits on Bluelounge website</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.bluelounge.com/" target="_blank">Bluelounge</a> is an International design studio and recognized for its clever and unique products to solve everyday problems. Their products range from cable management, chargers, device stands, bags, to desk. I had worked with them from 2007 to 2013. When I started to go freelancing full-time, they were also one of my first clients. I consulted for their e-commerce requirements at the time and advised to switch their platform to <a href="https://www.shopify.com/?ref=mayks" target="_blank">Shopify</a>. They took the suggestion and so the development began.</p>
<p>The new site was built completely from the ground up. We developed the custom theme with primary goal to have the fastest load time while keeping all of required functionality and ability to display unique page layout for each of Bluelounge&#8217;s 30+ products. I invited <a href="https://about.me/nizamilputra" target="_blank">Rizqi Nizamil Putra</a> into the team to help with the front-end development as time was of the essence as well. We completed the project on time and boy, the results were better than our expectations. Thanks for Shopify&#8217;s solid infrastructure, most of the web pages loaded in less than 2 seconds. A critical factor when you are building an e-commerce site.</p>
<div id="attachment_2252" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?ssl=1"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2252" class="size-large wp-image-2252" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=740%2C580&#038;ssl=1" alt="Bluelounge new website with Shopify" width="740" height="580" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=1024%2C802&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=300%2C235&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=768%2C602&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=600%2C470&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=780%2C611&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?resize=1200%2C940&amp;ssl=1 1200w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/www.bluelounge.com_.png?w=1440&amp;ssl=1 1440w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2252" class="wp-caption-text">Bluelounge new website with Shopify</p></div>
<h2>You always want to make it better and faster&#8230;</h2>
<p>Move forward to June 2016, Bluelounge came with a very specific but interested request. In order to improve the site&#8217;s SEO even further, they asked whether it was possible to get the PageSpeed score above 90 for both Desktop and Mobile from <a href="https://developers.google.com/speed/pagespeed/insights/" target="_blank">Google&#8217;s PageSpeed Insights</a> and an A from <a href="https://gtmetrix.com/" target="_blank">GTMetrix website performance tool</a>.</p>
<p>To be honest, I initially considered the request quite difficult considering one of Shopify&#8217;s major limitations was that we did not have full control of the server and apps. After a bit of research on Shopify&#8217;s forums, this was a very common issue as found <a href="https://ecommerce.shopify.com/c/ecommerce-design/t/page-speed-issues-277406" target="_blank">here</a>, <a href="https://ecommerce.shopify.com/c/ecommerce-design/t/help-with-page-speed-291747" target="_blank">here</a>, and <a href="https://ecommerce.shopify.com/c/ecommerce-design/t/page-speed-issue-335193" target="_blank">here</a>. There are many suggestions there which you could take to improve the site&#8217;s performance bit by bit, mostly were already applied on Bluelounge website, but probably not enough to make it get &gt;90 PageSpeed score.</p>
<p>I took on the job nevertheless, the challenge intrigued me.</p>
<h2>Performance analysis</h2>
<p>When trying to improve a website&#8217;s performance, whether for SEO, load speed, or conversion rates, the first thing to do is to breakdown <span style="text-decoration: underline;">what have been done correctly</span> and <span style="text-decoration: underline;">what&#8217;s still missing</span>. That was exactly what I did.</p>
<h4>Theme related items done:</h4>
<ol>
<li>Avoid CSS @import; except for the web fonts which are loaded from MyFonts</li>
<li>Valid HTML structure; no console errors</li>
</ol>
<h4>Content based items done:</h4>
<ol>
<li>Optimize images</li>
<li>Specify image dimensions</li>
<li>Serve scaled images</li>
</ol>
<h4>Important items done by Shopify by default:</h4>
<ol>
<li>Leverage browser caching</li>
<li>Enable gzip compression</li>
<li>Enable Keep-Alive</li>
</ol>
<h4><span style="text-decoration: underline;">Critical items to improve:</span></h4>
<ol>
<li>Minify CSS</li>
<li>Minify JavaScript</li>
<li>Eliminate render-blocking JavaScript and CSS in above-the-fold content</li>
</ol>
<p>Even with the fast load time, PageSpeed still considered the site&#8217;s performance below standard and only rated it 83/100 for Desktop and 66/100 for Mobile.</p>
<div id="attachment_2248" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?ssl=1"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2248" class="wp-image-2248 size-large" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=740%2C635&#038;ssl=1" alt="Bluelounge – PageSpeed score before" width="740" height="635" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=1024%2C879&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=300%2C258&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=768%2C659&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=600%2C515&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?resize=780%2C670&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-score-before.png?w=1200&amp;ssl=1 1200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2248" class="wp-caption-text">Bluelounge website PageSpeed score result before optimization</p></div>
<p>The first two items were relatively easy to do, with the right tools.</p>
<h3>Minifying and combining CSS files</h3>
<p>The website&#8217;s stylesheet had been built using SCSS with <a href="http://getbootstrap.com/" target="_blank">Bootstrap</a> for the framework, so minifying the output file alone was not enough to make PageSpeed happy with the file sizes.  I had to improvise. Using <a href="https://github.com/twbs/bootstrap-sass" target="_blank">Bootstrap for Sass</a>, I rebuilt the CSS by hand-picking Bootstrap components that were actually used and eliminated the rest. I also carefully merged individual CSS files into a single master stylesheet for most of the pages.</p>
<p>After minified, the final <span class="theme:github lang:default decode:true crayon-inline">bluelounge.v42.css</span>  is about 123KB in size.</p>
<h3>Minifying and combining JavaScript files</h3>
<p>Same as CSS, minifying alone was not enough if they files were still fragmented. PageSpeed really factored in the number of calls it had to make to load a web page. This time it was a bit more tricky though, as with JavaScript a small error or wrong order could break critical shopping cart functionality. It took extensive trial and error tests to get the desired output.</p>
<p>Luckily PageSpeed is more forgiving when it comes to JS files and I did not have to merge everything into a single file as I had done for the CSS. I still managed to combine 7 JS files into one to reduce the number of requests.</p>
<p>You could use these tools to combine and minify CSS and JS files:</p>
<ul>
<li><a href="http://jscompress.com/" target="_blank">JSCompress</a></li>
<li><a href="http://www.shrinker.ch/" target="_blank">shrinker</a></li>
<li><a href="http://refresh-sf.com/" target="_blank">Refresh-SF</a></li>
</ul>
<p><strong>Tip:</strong> always do thorough tests after merging and/or minifying CSS or JS files. At the very minimal, make sure you could still add items to cart, view shopping cart, and proceed to checkout.</p>
<h3>Eliminating render-blocking elements above the fold</h3>
<p>What is render-blocking content? In my own words: files or elements that delays the HTML page to be loaded as quickly as possible. Most JavaScript and CSS files are usually inserted within the <span class="theme:github lang:default decode:true crayon-inline ">&lt;head&gt;</span> . This means your browser will try to download all linked files while it tries to complete loading the rest of the page, thus creating a delay from the of first byte received until the page is rendered on your screen.</p>
<p>Above the fold means the initial area of your browser&#8217;s viewport before scrolling further.</p>
<p>The concept is simple: to get the browser to render above the fold content as quickly as possible by reducing as many unnecessary elements as possible. Unfortunately, it&#8217;s really easier to be said than done.</p>
<h4>Eliminating render-blocking CSS</h4>
<p>For quick and lazy approach, you could always move all your CSS calls to the bottom, before the closing <span class="theme:github lang:default decode:true crayon-inline ">&lt;/body&gt;</span>  tag. The problem with this is, and you probably have seen it on some sites, you would see the page shown with plain content first before it quickly shifted to the <em>stylized version </em>a second later. For Bluelounge, this was not an ideal solution. They did not want to sacrifice form over function, which was understandable.</p>
<p>The solution was to use inline CSS for essential above the fold styles within the <span class="theme:github lang:default decode:true crayon-inline ">&lt;head&gt;</span>  and call the rest of the stylesheet from external CSS file at the bottom of the page. I needed to create a mini version of the CSS and only include classes used to render above the fold content.</p>
<p>Why not inlining the entire CSS file and save the trouble from having to rebuild an entire CSS block? Because you want to keep the HTML code light. Inline CSS is not cacheable. If I put the entire CSS inline, I would add 74KB on every web page and PageSpeed would not like it either.</p>
<p>At the end my inline CSS was around 21KB, mostly from Bootstrap&#8217;s grid classes.</p>
<h4>Eliminating render-blocking JavaScript</h4>
<p>The final part was to optimize the JavaScript calls. I had been saving the hardest part for last. Shopify&#8217;s shopping cart functionality depends on JavaScript, specifically using jQuery library. What this implies is that I could not just move all JS calls to the bottom like with CSS. With the template structure at the time, some shopping cart ability like adding an item into cart works by loading the script block within the body of the page. If the jQuery library was called after the function, it would simply not work.</p>
<p>I had to restructure the JavaScript calls, removing any function made inside the content and combining them into an external JS file to be loaded at the bottom of the page. Some functions still needed to be retained as inline though. They required to call dynamic variable from Shopify&#8217;s liquid language. For these, I just move them further down.</p>
<p>After setting the right order of the scripts to be called, my work was done.</p>
<h2>The outcome</h2>
<p>The numbers speak for themselves.</p>
<div id="attachment_2262" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?ssl=1"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2262" class="size-large wp-image-2262" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=740%2C740&#038;ssl=1" alt="Bluelounge Homepage – PageSpeed score 94/100 for Mobile" width="740" height="740" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=1024%2C1024&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=150%2C150&amp;ssl=1 150w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=300%2C300&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=768%2C768&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=600%2C600&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?resize=780%2C780&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-mobile.png?w=1200&amp;ssl=1 1200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2262" class="wp-caption-text">Bluelounge Homepage – PageSpeed score 94/100 for Mobile</p></div>
<div id="attachment_2261" style="width: 750px" class="wp-caption aligncenter"><a href="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?ssl=1"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-2261" class="size-large wp-image-2261" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=740%2C555&#038;ssl=1" alt="Bluelounge Homepage – PageSpeed score 95/100 for Desktop" width="740" height="555" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=600%2C450&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?resize=780%2C585&amp;ssl=1 780w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/08/Bluelounge-–-PageSpeed-after-desktop.png?w=1200&amp;ssl=1 1200w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></a><p id="caption-attachment-2261" class="wp-caption-text">Bluelounge Homepage – PageSpeed score 95/100 for Desktop</p></div>
<p>Of course PageSpeed score is different from page to page and you should not just measure the Homepage. In this case, most of the pages have the score of &gt;85. Mission accomplished.</p>
<p>These steps may not be applicable to all Shopify powered sites, but hopefully you will be able to pick up a point or two. Also keep in mind that if your site uses many third party apps that add calls to external assets, it is almost impossible to control those.</p>
<p>Interested to optimize your Shopify website? Please do not hesitate to <a href="https://sunarlim.com/contact/">drop me a line</a>.</p>
<p>The post <a href="https://sunarlim.com/2016/08/shopify-pagespeed/">Shopify PageSpeed Score: Pushing the limits on Bluelounge website</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/08/shopify-pagespeed/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2242</post-id>	</item>
		<item>
		<title>SSL certificate installation on DigitalOcean + ServerPilot (Apache)</title>
		<link>https://sunarlim.com/2016/07/ssl-digitalocean-serverpilot-apache/</link>
					<comments>https://sunarlim.com/2016/07/ssl-digitalocean-serverpilot-apache/#comments</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Sat, 30 Jul 2016 07:14:45 +0000</pubDate>
				<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[digitalocean]]></category>
		<category><![CDATA[serverpilot]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssl]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2211</guid>

					<description><![CDATA[<p>It is not that difficult to manually install an SSL certificate on DigitalOcean and ServerPilot stack. Although you need to have basic knowledge of running UNIX command lines and text editor.</p>
<p>The post <a href="https://sunarlim.com/2016/07/ssl-digitalocean-serverpilot-apache/">SSL certificate installation on DigitalOcean + ServerPilot (Apache)</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>First things first, finding out about <a href="https://m.do.co/c/286ec30a49ea" target="_blank">DigitalOcean</a> and <a href="https://serverpilot.io/" target="_blank">ServerPilot</a> was one of the best discoveries I have ever had as a web developer. Not saying that it is not fun to spin up a blank server and installing the required stack to host the website I work on or manage, but these steps take time. DigitalOcean and ServerPilot combination allows me to set up a solid, secure and affordable server in a few minutes. The only missing piece was to install an SSL certificate with ease without having to upgrade to ServerPilot paid plan which costs from $10/month.</p>
<p>As it turns out, it is not that difficult. Although you need to have basic knowledge of running UNIX command lines and text editor. You can probably found many detailed tutorials to install SSL certificate on DO + SP stack, but most of them are for Nginx environment. Mine is for Apache, which I am more familiar with.</p>
<p>There is nothing original here. I am merely summarizing the steps from excellent references I found:</p>
<ol>
<li><a href="https://www.digitalocean.com/community/tutorials/how-to-install-an-ssl-certificate-from-a-commercial-certificate-authority" target="_blank">How To Install an SSL Certificate from a Commercial Certificate Authority | DigitalOcean</a></li>
<li><a href="https://www.digitalocean.com/community/questions/install-ssl-certificate-manually-on-serverpilot-for-apache#comment_33544" target="_blank">Install SSL certificate manually on serverpilot for Apache</a></li>
</ol>
<h2>Create a directory for your keys and certificates</h2>
<p>To keep things tidy and make it easier to follow this tutorial, I am going to create a dedicated directory to store all the keys and certificates. So let&#8217;s create a new directory after logging into the server using SSH. We want to put everything under <span class="lang:default decode:true crayon-inline ">/etc/apache-sp/certs/appname</span>  so let&#8217;s do that:</p>
<pre class="font-size:16 line-height:24 toolbar:2 lang:sh decode:true ">mkdir /etc/apache-sp/certs
mkdir /etc/apache-sp/certs/appname
</pre>
<p><em>* replace <span class="lang:default decode:true crayon-inline ">appname</span>  with your application name on ServerPilot</em></p>
<h2 id="generate-a-csr-and-private-key">Generate a CSR and Private Key</h2>
<p>Once it has been created, you want to change into the directory:</p>
<pre class="font-size:16 line-height:24 toolbar:2 lang:sh decode:true">cd /etc/apache-sp/certs/appname</pre>
<p>Then generate a pair of certificate signing request (CSR) and private key:</p>
<pre class="font-size:16 line-height:24 toolbar:2 lang:ps decode:true">openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.com.key -out yourdomain.com.csr</pre>
<p>You will be prompted to enter information about your certificate request. To save time, DigitalOcean already provides excellent instructions on what to enter <a href="https://www.digitalocean.com/community/tutorials/how-to-install-an-ssl-certificate-from-a-commercial-certificate-authority#generate-a-csr-and-private-key" target="_blank">here</a>.</p>
<p>Once that&#8217;s done, copy the content of the generated CSR using this command:</p>
<pre class="font-size:16 line-height:24 toolbar:2 lang:sh decode:true">cat example.com.csr</pre>
<h2>Purchase an SSL certificate</h2>
<p>At this point, I assume you are already familiar in purchasing and requesting an SSL certificate. In case you need some guidance, DigitalOcean gives <a href="https://www.digitalocean.com/community/questions/install-ssl-certificate-manually-on-serverpilot-for-apache#example-ca-1-rapidssl-via-namecheap" target="_blank">a couple of examples</a> to do this using NameCheap and GoDaddy.</p>
<h2>Installing the SSL certificate on the server</h2>
<p>Once you have completed the process of generating SSL certificate, you are most likely will receive 2 files:</p>
<ol>
<li>The SSL certificate</li>
<li>The CA intermediate certificate</li>
</ol>
<p>You need to copy both of these files into the <span class="lang:default decode:true crayon-inline  ">/etc/apache-sp/certs/appname</span>  we created earlier. If you do everything correctly to this point, you should have 4 files within that directory:</p>
<ol>
<li>The certificate signing request (CSR): <span class="lang:default decode:true crayon-inline ">yourdomain.com.csr</span></li>
<li>The private key: <span class="lang:default decode:true crayon-inline ">yourdomain.com.key</span></li>
<li>The SSL certificate: <span class="lang:default decode:true crayon-inline ">yourdomain_com.crt</span></li>
<li>The CA intermediate certificate: <span class="lang:default decode:true crayon-inline ">yourdomain_com.ca-bundle</span></li>
</ol>
<h3>Enabling SSL on your domain</h3>
<p>We have come to the magic moment and most critical step. You will need to edit Apache&#8217;s configuration file to enable the SSL. You have to create a separate configuration file from the default one(s), otherwise ServerPilot might overwrite your custom file when it is updating your server.</p>
<p>The config files are located on <span class="lang:default decode:true crayon-inline ">/etc/apache-sp/vhosts.d</span>  directory so let&#8217;s change the directory to it:</p>
<pre class="font-size:16 line-height:24 toolbar:2 lang:sh decode:true ">cd /etc/apache-sp/vhosts.d</pre>
<p>Then you can view available config files under that directory using the <span class="lang:sh decode:true crayon-inline ">ls</span>  command. There are probably several <span class="lang:default decode:true crayon-inline ">.conf</span>  files there if you are hosting multiple sites on the server.</p>
<p>Now we want to create a new config file related to your app/site name. I am calling it <span class="lang:default decode:true crayon-inline ">appname.ssl.conf</span> .</p>
<pre class="font-size:16 line-height:24 toolbar:2 lang:ps decode:true ">vi appname.ssl.conf</pre>
<p>This is going to open the Vi editor where you are going to enter the <em>edited</em> lines:</p>
<pre class="lang:vim decode:true">Listen 443

&lt;VirtualHost *:443&gt;
    Define DOCUMENT_ROOT /srv/users/serverpilot/apps/appname/public

    SSLEngine on

    SSLCertificateFile /etc/apache-sp/certs/appname/appname_com.crt
    SSLCertificateKeyFile /etc/apache-sp/certs/appname/appname.com.key
        SSLCertificateChainFile /etc/apache-sp/certs/appname/appname_com.ca-bundle

    ServerAdmin webmaster@
    DocumentRoot ${DOCUMENT_ROOT}
        ServerName appname
    ServerAlias appname.com
    ServerAlias www.appname.com


    RemoteIPHeader X-Real-IP
    SetEnvIf X-Forwarded-SSL on HTTPS=on
    IncludeOptional /etc/apache-sp/vhosts.d/appname.d/*.conf

    ErrorLog "/srv/users/serverpilot/log/appname/https_appname_apache.error.log"
    CustomLog "/srv/users/serverpilot/log/appname/https_appname_apache.access.log" common
&lt;/VirtualHost&gt;</pre>
<p>Save the file and restart your Apache server:</p>
<pre class="font-size:16 line-height:24 toolbar:2 lang:sh decode:true ">sudo service apache-sp restart</pre>
<p>Done! Test it out by opening your site using <span class="lang:default decode:true crayon-inline ">https://</span>  prefix, eg: https://www.yourdomain.com.</p>
<p>You may need to adjust your site&#8217;s settings to ensure all components are called using <span class="lang:default decode:true crayon-inline ">https://</span>  instead of <span class="lang:default decode:true crayon-inline ">http://</span> , but that&#8217;s a whole different process and not going to be covered here.</p>
<p>The post <a href="https://sunarlim.com/2016/07/ssl-digitalocean-serverpilot-apache/">SSL certificate installation on DigitalOcean + ServerPilot (Apache)</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/07/ssl-digitalocean-serverpilot-apache/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2211</post-id>	</item>
		<item>
		<title>Non-marketing e-commerce checklist</title>
		<link>https://sunarlim.com/2016/07/non-marketing-e-commerce-checklist/</link>
					<comments>https://sunarlim.com/2016/07/non-marketing-e-commerce-checklist/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Tue, 26 Jul 2016 09:30:13 +0000</pubDate>
				<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[online shopp]]></category>
		<category><![CDATA[online store]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=2202</guid>

					<description><![CDATA[<p>After setting up the most important element: a running e-commerce site, business owners are typically focused on the marketing to attract customers into the website and eventually make it generate some revenue. An understandable strategy, as the the whole idea of creating the website is to make profit from the transactions. But usually first-time customer acquisition cost is higher than the profit generated from the first purchase. To ultimately get them to come back and order more items from your online store which probably costs much less is by giving them a great shopping experience.</p>
<p>The post <a href="https://sunarlim.com/2016/07/non-marketing-e-commerce-checklist/">Non-marketing e-commerce checklist</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Having an e-commerce site or online store has been a very interesting proposition for any business in any industry. The primary reason is easily the cost, which is much lower than opening a brick-and-mortar retail shop. You can also easily target customers all over the country, if not Internationally, instead of just a localized area.</p>
<p>However at the same time, you are also competing with thousands of other sites offering similar products. Most consider the defining factor would be the price, but I tend to disagree. Yes, customers have the tendency to shop around first and likely to make a purchase from a seller who offers the best deal. This is not always the case though, and if you follow this model then it is much harder to make your business sustainable because there is always possibility a competitor to be able to offer even lower prices than yours.</p>
<blockquote><p>Give your customers a great shopping experience, then they will be back to buy more from your online store</p></blockquote>
<p>After setting up the most important element: a running e-commerce site, business owners are typically focused on the marketing to attract customers into the website and eventually make it generate some revenue. An understandable strategy, as the the whole idea of creating the website is to make profit from the transactions. But usually first-time customer acquisition cost is higher than the profit generated from the first purchase. To ultimately get them to come back and order more items from your online store which probably costs much less is by giving them <strong>a great shopping experience</strong>.</p>
<p>The key is to be able to create measurements of your e-commerce operations and continuously monitor the performance of these areas:</p>
<h2>Order fulfillment time</h2>
<p>Rule #1: do not sell items which are not in-stock, or if you have to then give your customers a very clear lead time and stick to it. Nothing is more upsetting than having to just sit, wait and not getting the items you already paid for. This is an easy situation to get your customers to never come back ever.</p>
<p>Next thing is to calculate the average time required to get your order shipped. Ideally this should be completed within 2 day working days.</p>
<h2>Clear communication</h2>
<p>Do not hesitate to contact your customers if there are problems with their orders, such as delayed shipment or if you need to validate the transaction or address. This goes the other way, make it clear for your customers how to reach out to you. Customers might change their mind after placing an order more often than you think. Give them an opportunity to amend or cancel their order. It will build trust and next time they will not hesitate to place a different order from you.</p>
<p>Communication is not always limited to contacting through your website. If you manage social media profiles like Twitter, Facebook page, Instagram etc, be sure to check those regularly.</p>
<p>Human interaction is the great opportunity to give the true personality of your business. You will gain valueable feedback which could make your business much better.</p>
<h2>Customer support</h2>
<p>Still related with communication, but more specific is customer support. Your customers might have questions or problems when they have received the products they ordered. You and your team need to be an expert with every product that you sell, even it is not your own brand. &#8220;No fuss&#8221; return policy is always good to have if you can offer it, but often a customer just wants to be guided in using or maintaining a product. For more advanced type of products, you can consider providing them to the manufacturer&#8217;s website or document to answer the questions.</p>
<p>Just as important is to measure your response time. Generally customers expect to get a reply within 1 business day for their inquiry. Consider implementing a support ticket system to streamline your customer support process.</p>
<p>The post <a href="https://sunarlim.com/2016/07/non-marketing-e-commerce-checklist/">Non-marketing e-commerce checklist</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/07/non-marketing-e-commerce-checklist/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2202</post-id>	</item>
		<item>
		<title>Smaller Samsung S7 Edge, that would convince me to upgrade</title>
		<link>https://sunarlim.com/2016/04/smaller-samsung-s7-edge/</link>
					<comments>https://sunarlim.com/2016/04/smaller-samsung-s7-edge/#comments</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Wed, 06 Apr 2016 10:45:59 +0000</pubDate>
				<category><![CDATA[Gadget & Devices]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[samsung]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=1978</guid>

					<description><![CDATA[<p>When Samsung introduced the S6 successor, the Samsung Galaxy s7 and S7 Edge, I was a bit disappointed to learn that they had decided to make S7 Edge larger than its sibling. With its 5.5" screen, the "flat/regular" S7's screen is 5.1", it is now in the "phablet" territory.</p>
<p>The post <a href="https://sunarlim.com/2016/04/smaller-samsung-s7-edge/">Smaller Samsung S7 Edge, that would convince me to upgrade</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="alignleft wp-image-2079 size-medium" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/04/Samsung-S7-Edge-vs-S7-trimmed.jpg?resize=300%2C267&#038;ssl=1" alt="Samsung S7 Edge vs S7" width="300" height="267" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/04/Samsung-S7-Edge-vs-S7-trimmed.jpg?resize=300%2C267&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/04/Samsung-S7-Edge-vs-S7-trimmed.jpg?resize=600%2C534&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/04/Samsung-S7-Edge-vs-S7-trimmed.jpg?w=656&amp;ssl=1 656w" sizes="(max-width: 300px) 100vw, 300px" data-recalc-dims="1" />As a recent convert from iPhone to Samsung Galaxy S line, I have been very happy with my S6 Edge. I had been a user of both iOS and Android, but had never really used a flagship Android phone before. With the release of Samsung Galaxy S6 Edge, I just knew if I wanted to completely remove my iPhone as the daily driver, then it would be the right replacement. When Samsung introduced the S6 successor, the Samsung Galaxy s7 and S7 Edge, I was a bit disappointed to learn that they had decided to make S7 Edge larger than its sibling. With its 5.5&#8243; screen, the &#8220;flat/regular&#8221; S7&#8217;s screen is 5.1&#8243;, it is now in the &#8220;phablet&#8221; territory.</p>
<p>There are so many good things about Samsung S7 and S7 Edge, most of them answer the customers&#8217; critics from their predecessors:</p>
<h3>Bigger battery</h3>
<p>I have no problem with my S6 Edge and it has enough juice to last entire day, but more active mobile users have been pretty frustrated with the battery capacity. Besides, bigger battery is always a positive thing.</p>
<h3>microSD slot</h3>
<p>To me, having the ability to use external storage is one of the selling factors with Android devices compared to iPhone. By putting this feature back, it is a big deal. 32GB for internal storage is usually more than enough to install all the apps you need. What&#8217;s hard to predict is how much memory you will need to store all the media files, including camera photos.</p>
<h3>Better camera</h3>
<p>The S6 takes beautiful shots, but I am still struggling to get better focus and result when it is in lowlight environment. Taking the words from Samsung and early reviewers, the S7 camera will solve this problem.</p>
<h3>Better design</h3>
<p>Even though I understand that Samsung really wanted to make a smartphone that would be as thinnest and possible with the S6, the flat back and protruding camera give constant annoyance to most users including myself. Luckily Samsung&#8217;s team of designer decided to fix those by making the S7 has less camera bumb and back cover shape that is easier to hold with a small price of being 1.1 thicker. No problem, function over design.</p>
<h3>Dust and water-resistant</h3>
<p>Accidents happen. While this is not going to be a decision factor, having an extra feature for protecting your precious gadget better is always welcomed.</p>
<h3>Bigger RAM and faster processor</h3>
<p>Well, nobody would buy newer smartphone if it has the same RAM and processor as previous generation.</p>
<h3>Solid black color option</h3>
<p>No more sapphire or blueish black like with the S6, which why I ended up buying mine in white.</p>
<p>In short, Samsung has done <span style="text-decoration: underline;"><strong>mostly</strong></span> everything right with the Galaxy S7.</p>
<h2><img loading="lazy" decoding="async" class="size-full wp-image-2077 alignright" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/04/Samsung-S7-Edge-vs-S7-2.png?resize=225%2C384&#038;ssl=1" alt="Samsung S7 Edge bigger screen" width="225" height="384" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/04/Samsung-S7-Edge-vs-S7-2.png?w=225&amp;ssl=1 225w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/04/Samsung-S7-Edge-vs-S7-2.png?resize=176%2C300&amp;ssl=1 176w" sizes="(max-width: 225px) 100vw, 225px" data-recalc-dims="1" />Why the bigger screen for S7 Edge, Samsung?</h2>
<p>I have come to believe that Samsung thinks a bigger screen size is required for the market to justify the extra $110 to get the Edge version on top of the &#8220;edge&#8221; screen.  Probably the sales of S6 Edge+ (5.7&#8243;) were better than S6 Edge (5.1&#8243;) and they used this insight to determine the product line variations.</p>
<p>As a customer, we are now stuck to having a phone that barely fits into your jeans pocket in order to get that super fancy curvy edged screen.</p>
<h2>Will there be a smaller Samsung S7 Edge?</h2>
<p>Who knows. But knowing Samsung, they might release a new version of their flagship phone line before a full year. Just like when they added S6 Edge+ into the S6 family.</p>
<p>Let me hear your thoughts about bigger S7 Edge screen and whether you would prefer to have it the same size as its sibling.</p>
<h4>Shop for Samsung Galaxy S7</h4>
<div style="text-align: center;"><script type="text/javascript">// <![CDATA[
amzn_assoc_placement = "adunit0"; amzn_assoc_search_bar = "false"; amzn_assoc_tracking_id = "mayks-20"; amzn_assoc_search_bar_position = "bottom"; amzn_assoc_ad_mode = "search"; amzn_assoc_ad_type = "smart"; amzn_assoc_marketplace = "amazon"; amzn_assoc_region = "US"; amzn_assoc_title = ""; amzn_assoc_default_search_phrase = "samsung galaxy s7"; amzn_assoc_default_category = "All"; amzn_assoc_rows = "1";
// ]]&gt;</script><br />
<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US"></script></div>
<p>The post <a href="https://sunarlim.com/2016/04/smaller-samsung-s7-edge/">Smaller Samsung S7 Edge, that would convince me to upgrade</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/04/smaller-samsung-s7-edge/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1978</post-id>	</item>
		<item>
		<title>Online marketing, SEO and ecommerce: how do they differ?</title>
		<link>https://sunarlim.com/2016/03/online-marketing-seo-ecommerce-difference/</link>
					<comments>https://sunarlim.com/2016/03/online-marketing-seo-ecommerce-difference/#respond</comments>
		
		<dc:creator><![CDATA[Michael]]></dc:creator>
		<pubDate>Thu, 17 Mar 2016 18:55:53 +0000</pubDate>
				<category><![CDATA[E-Commerce]]></category>
		<category><![CDATA[Online Marketing]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[e-marketing]]></category>
		<category><![CDATA[website]]></category>
		<guid isPermaLink="false">https://sunarlim.com/?p=1822</guid>

					<description><![CDATA[<p>In order to have a successful website, there are 3 components in general: online marketing, search engine optimization (SEO) and e-commerce strategy. The first problem to tackle is, most people may not be aware of the differences and consider them as the same. They might come to you and mention any of the terms and expect it covers everything.</p>
<p>The post <a href="https://sunarlim.com/2016/03/online-marketing-seo-ecommerce-difference/">Online marketing, SEO and ecommerce: how do they differ?</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Working as web consultant for over a decade, I have been given the opportunity to work different kinds of clients in different industries. In the old days, being able to deliver a properly working sites which were aesthetically pleasing was more than enough to make clients happy.</p>
<p>Nowadays, businesses have become more aware that having great looking websites is just not enough. With every competitor also owning a website, it takes more beyond good development for this particular digital channel to be able to contribute to the business. It needs to be discoverable, incorporates interesting content to make potential customers or clients stay and browse, and ultimately have proper call-to-action elements to convert them.</p>
<p>The work after a website is launched is much harder and requires more dedication to achieve the targets. While all those elements above were already considered during design and development phases, it is almost impossible to create the right formula without field tests and make data driven decisions based on the site&#8217;s analytics results.</p>
<p>All these lead to 3 components in general: <strong>online marketing</strong>, <strong>search engine optimization (SEO)</strong> and <strong>e-commerce strategy</strong>. The first problem to tackle is, most people (read: clients) may not be aware of the differences and consider them as the same. They might come to you and mention any of the terms and expect it covers everything.</p>
<p style="text-align: center;"><img loading="lazy" decoding="async" class="aligncenter wp-image-1965 size-full" src="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/03/web_marketing_for_beginners.png?resize=740%2C444&#038;ssl=1" alt="Web Marketing" width="740" height="444" srcset="https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/03/web_marketing_for_beginners.png?w=800&amp;ssl=1 800w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/03/web_marketing_for_beginners.png?resize=300%2C180&amp;ssl=1 300w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/03/web_marketing_for_beginners.png?resize=768%2C461&amp;ssl=1 768w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/03/web_marketing_for_beginners.png?resize=600%2C360&amp;ssl=1 600w, https://i0.wp.com/sunarlim.com/wp-content/uploads/2016/03/web_marketing_for_beginners.png?resize=780%2C468&amp;ssl=1 780w" sizes="(max-width: 740px) 100vw, 740px" data-recalc-dims="1" /></p>
<p>Different agencies or professionals may have different interpretations to give explanation of each of those. Some just want to make the client&#8217;s life easier by not bothering about technical definitions and just provide a &#8220;full digital service&#8221;. These are really smart guys. However there are times when you really need to draw lines regarding each of these services to define scope of work and priorities between them.</p>
<h2>Online marketing</h2>
<p>I consider it as a marketing effort if you need to create an outline to be done in order to generate traffic to the website. Usually involving consistent actions over a course of time period.</p>
<p>In general, I classify online marketing into 4 categories:</p>
<ol>
<li><strong>Organic or non-paid online marketing</strong><br />
This is done by promoting the website through different networks to gain some backlinks. Few examples:</p>
<ul>
<li>Posting links to landing pages or blog posts on online discussions/forums</li>
<li>Notifying bloggers to review or feature a product or service offered on the website</li>
<li>Offline promotion (word of mouth) to lead customers to the website</li>
</ul>
</li>
<li><strong>Social media</strong><br />
No company these days will be able to generate massive inbound traffic without the help of social media. By setting up a good social media profiles and consistently posting latest news and updates through these channels, it would increase the brand awareness faster than any other channel.</li>
<li><strong>Email marketing</strong><br />
Still one of the most effective channel. Never ever take this one out from your online marketing strategy, unless no ones literally uses email anymore.</li>
<li><strong>Paid online marketing</strong><br />
This can be done by creating ads on multiple networks, such as search engines and social media. My favorites, because of the ease of use, effectiveness, and popularity, are Google AdWords, Facebook Ads and AdRoll. Although keep in mind that every industry may have different niche and types of market, so you need to select carefully and always be ready to try different ones in order to get the best result.</li>
</ol>
<h2>Search engine optimization (SEO)</h2>
<p>Unlike online marketing which requires financial investment in order to run, SEO is the organic solution. It is also the most difficult and complex to get positive results. The challenge is, you need to compete with billions of other websites and make the search engines to see your website as the most relevant when someone is searching with a particular keyword or key phrase.</p>
<p>The copy of your content is still the most relevant factor. However other technical elements such as site speed, URL format, page structure, sitemaps, they all weigh into the overall score. If your site is bloated and slow to load, it will probably end in lower search ranks compared to other sites with similar content.</p>
<p>It is not possible to break down everything about SEO in a single post. But to keep it short, when you work on your site&#8217;s SEO, it means trying to make it as friendly as possible to the search engines and ensure the content is relevant to your target audience.</p>
<h2>E-commerce</h2>
<p>In case your website does not actually sell anything online, we can also refer it as Conversion Rate Optimization. Every website has a function: to generate sales or leads, business branding, as marketing tool, etc. While the first two&#8217;s primary purpose is to drive people into the website, e-commerce or conversion optimization goals are to create a better experience to the users and ultimately increase the conversion rates.</p>
<p>There are many ways to achieve those, depending on the your set goals. For example, if it is an online store, then it will be to sale as many items as possible. This can be achieved by implementing these:</p>
<ol>
<li>Very clear call-to-action (Buy) buttons</li>
<li>Product recommendations to cross-sell</li>
<li>Product bundles to up-sell</li>
<li>Free shipping offer</li>
<li>Special promotions</li>
<li>Featured products</li>
</ol>
<hr />
<p>In order to have a successful website, aside from having a well designed website, you need to consider all components mentioned above to ensure the online channel of your business is getting the results you expected.</p>
<p>The post <a href="https://sunarlim.com/2016/03/online-marketing-seo-ecommerce-difference/">Online marketing, SEO and ecommerce: how do they differ?</a> appeared first on <a href="https://sunarlim.com">Michael Sunarlim</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sunarlim.com/2016/03/online-marketing-seo-ecommerce-difference/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1822</post-id>	</item>
	</channel>
</rss>
