<?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>Things I like Archives - Pietari Heino&#039;s personal website</title>
	<atom:link href="https://www.extreg.com/blog/category/things-i-like/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.extreg.com</link>
	<description></description>
	<lastBuildDate>Mon, 10 Oct 2016 07:20:29 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.6.7</generator>
<site xmlns="com-wordpress:feed-additions:1">99365322</site>	<item>
		<title>Bitcoin book recommendation</title>
		<link>https://www.extreg.com/blog/2016/10/bitcoin-book-recommendation/</link>
					<comments>https://www.extreg.com/blog/2016/10/bitcoin-book-recommendation/#respond</comments>
		
		<dc:creator><![CDATA[Pietari]]></dc:creator>
		<pubDate>Mon, 10 Oct 2016 07:20:29 +0000</pubDate>
				<category><![CDATA[Things I like]]></category>
		<category><![CDATA[bitcoin]]></category>
		<category><![CDATA[blockchain]]></category>
		<category><![CDATA[books]]></category>
		<guid isPermaLink="false">https://extreg.com/?p=93</guid>

					<description><![CDATA[<p>I highly recommend Nathaniel Popper&#8217;s book Digital Gold: The Untold Story of Bitcoin to any geeks. It&#8217;s a fascinating story of how Bitcoin came to be and follows the paths of the different persons around the cryptocurrency from the very beginning of it. The book covers the story, specifically, and is not a technical guide to blockchain ... <span class="more"><a class="more-link" href="https://www.extreg.com/blog/2016/10/bitcoin-book-recommendation/">[Read more...]</a></span></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/10/bitcoin-book-recommendation/">Bitcoin book recommendation</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I highly recommend Nathaniel Popper&#8217;s book <em><strong>Digital Gold: The Untold Story of Bitcoin</strong></em> to any geeks.</p>
<p>It&#8217;s a fascinating story of how Bitcoin came to be and follows the paths of the different persons around the cryptocurrency from the very beginning of it. The book covers <em><strong>the story</strong></em>, specifically, and is not a technical guide to blockchain or whatever. It starts from the Nakamoto&#8217;s paper and how he tried to get people interested in it and goes through the early years of development, the people behind it, the firms spun up for it, legislative reception, and also the whole Silk Road case with Dread Pirate Roberts and so on. Also, it covers lots of different products multiple firms made for the Bitcoin ecosystem and how they were received, what problems they had, and where they are now (if they still are, that is).</p>
<p>It&#8217;s a very nice read and gives you thorough understanding of the whole thing. I had had a small itch for understanding Bitcoin better but never took the time to truly study the inner-workings of it. This book got me very excited about it and gave a very good introduction to it via the history. Now I&#8217;ve got my hands on <em><strong><a href="http://dontapscott.com/books/blockchain-revolution/">Blockchain Revolution</a></strong></em>, which is not a story but a true technical book that covers what&#8217;s next in the blockchain world. If you&#8217;re not interested in Bitcoin&#8217;s history, I recommend this one.</p>
<p><a href="https://www.amazon.co.uk/Digital-Gold-Untold-Story-Bitcoin/dp/0241180619">Amazon listing</a>, <a href="http://www.goodreads.com/book/show/26124142-digital-gold">Goodreads</a></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/10/bitcoin-book-recommendation/">Bitcoin book recommendation</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.extreg.com/blog/2016/10/bitcoin-book-recommendation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">93</post-id>	</item>
		<item>
		<title>Control-flow Enforcement Technology to fight against ROP</title>
		<link>https://www.extreg.com/blog/2016/06/control-flow-enforcement-technology-to-fight-against-rop/</link>
					<comments>https://www.extreg.com/blog/2016/06/control-flow-enforcement-technology-to-fight-against-rop/#respond</comments>
		
		<dc:creator><![CDATA[Pietari]]></dc:creator>
		<pubDate>Fri, 24 Jun 2016 10:30:10 +0000</pubDate>
				<category><![CDATA[Fascinating engineering]]></category>
		<category><![CDATA[Things I like]]></category>
		<category><![CDATA[cet]]></category>
		<category><![CDATA[control-flow enforcement technology]]></category>
		<category><![CDATA[endbranch]]></category>
		<category><![CDATA[return-oriented programming]]></category>
		<category><![CDATA[rop]]></category>
		<category><![CDATA[shadow stack]]></category>
		<category><![CDATA[stack]]></category>
		<guid isPermaLink="false">https://extreg.com/?p=64</guid>

					<description><![CDATA[<p>In this blog post I&#8217;m writing about something that I consider really interesting and also very fascinating from the engineering perspective. I&#8217;m a huge fan of computer security related stuff and am intrigued by the many branches (ha!) it covers top to bottom with so many different aspects that you really cannot know everything at ... <span class="more"><a class="more-link" href="https://www.extreg.com/blog/2016/06/control-flow-enforcement-technology-to-fight-against-rop/">[Read more...]</a></span></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/06/control-flow-enforcement-technology-to-fight-against-rop/">Control-flow Enforcement Technology to fight against ROP</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In this blog post I&#8217;m writing about something that I consider really interesting and also very fascinating from the engineering perspective. I&#8217;m a huge fan of computer security related stuff and am intrigued by the many branches (ha!) it covers top to bottom with so many different aspects that you really cannot know everything at all. There&#8217;s always so much more to discover. This is not supposed to be a deep-dive or a complete guide to anything at all, more than just to give you a brief introduction to something that you could also find interesting and possibly study on your own. <strong>Please</strong>, if you don&#8217;t read this posting, at least checkout the link from the second to last paragraph!</p>
<p>So back in the day CPU architectures introduced the stack in order to allow better control of the programs&#8217; execution flow and for instance make recursion possible (if it&#8217;s not clear for you, read this post and try to come up with the reason why you cannot have recursion without the stack!). Nowadays stack is a must and you cannot find a piece of hardware executing software without a stack (as far as I know). The stack is interesting. It grows with the push operations and decreases with the pop operations. Every time the CPU calls a new function the stack is grown and every time the execution of a function is over the stack is decreased. What goes in there, specifically, are the local variables for a function and the return address to use after the execution. So lets say the CPU calls a void function called <em>count </em>that is supposed to print numbers from 0 to 10. What we push to the stack is the return address which is the address of the next instruction that is supposed to be executed right after the function is done and space for the <em>count&#8217;s </em>local variables (it supposedly needs a loop and a loop variable). When <em>count </em>is done, we decrease the stack with pop operation which then gets rid off the <em>count&#8217;s </em>local variables and returns the execution to the location pushed to the stack earlier. It grows dynamically, so to say, and the whole thing is really interesting, the way it works and the cleverness of it. It&#8217;s automatically grown and decreased and always keeps each functions&#8217; environments intact and stores the addresses for continuing execution. It&#8217;s very simple but really powerful at the same time.</p>
<div id="attachment_66" style="width: 315px" class="wp-caption alignright"><a href="https://extreg.com/blog/2016/06/control-flow-enforcement-technology-to-fight-against-rop/ars-technica-basic-stack-exploit-trampoline/"><img aria-describedby="caption-attachment-66" loading="lazy" class="wp-image-66" src="https://extreg.com/wp-content/uploads/2016/06/ars-technica-basic-stack-exploit-trampoline-837x1024.png" alt="Stack exploiting trampoline, (c) Ars Technica" width="305" height="373" srcset="https://www.extreg.com/wp-content/uploads/2016/06/ars-technica-basic-stack-exploit-trampoline-837x1024.png 837w, https://www.extreg.com/wp-content/uploads/2016/06/ars-technica-basic-stack-exploit-trampoline-245x300.png 245w, https://www.extreg.com/wp-content/uploads/2016/06/ars-technica-basic-stack-exploit-trampoline-768x939.png 768w, https://www.extreg.com/wp-content/uploads/2016/06/ars-technica-basic-stack-exploit-trampoline.png 1502w" sizes="(max-width: 305px) 100vw, 305px" /></a><p id="caption-attachment-66" class="wp-caption-text">Stack exploiting trampoline, (c) Ars Technica</p></div>
<p><strong>The problem is&#8230; </strong>what if an adversary party could write some malicious code into your stack and override the bits that holds the information where to go next? Specifically, overwrite the return address from the stack with a return address of the party&#8217;s own. That would inherently make the control flow jump to execute whatever the malicious party wanted. That&#8217;s what bad guys started doing and which lead to DEP and ASRL. DEP stands for Data Execution Protection, a technology which separates the dynamic, software written data from the instructions that the CPU is going to execute. ASRL stands for Address-Space Layout Randomization, which changes the location of the software, the kernel code, the operating system&#8217;s libraries, and so forth, in the RAM so that the malicious party cannot know where certain pieces of software logic lies in the address-space which makes the use of known locations of useful code a no-go for execution. <strong>DEP and ASRL </strong>are both themselves really fascinating stuff and if you&#8217;re interested, go check them out in more detail, my few words here don&#8217;t really get you covered on them at all.</p>
<p><strong>Return-Oriented Programming (ROP) </strong>is a way of getting control of the stack and changing bits and pieces of software logic towards the end of subroutines so that the CPU would then execute code that would diverge the program flow to an adversary route. That would of course, done correctly, lead to takeover of the operating system since the malicious party could execute whatever it wishes. Now Intel and Microsoft have come up with a new piece of fascinating technology called <strong>Control-Flow Enforcement Technology </strong>that adds more protection specifically to the stack operations. There are two new things to fight the problem:</p>
<ol>
<li><strong>ENDBRANCH</strong> instruction is added to the new x86/x64 architecture instructions sets. When the software is compiled with a CET supporting compiler that targets new CPUs, all legal (valid) calls and jumps are directed to an endbranch instruction. That is to say that whenever a subroutine is called, the first instruction to be found inside the subroutine must be an endbranch. If it&#8217;s not, the CPU throws an exception and the hell breaks loose. So the program gets compiled in a way that the subroutine/call/jump flow is <em><strong>enforced</strong></em> to obey the original intent of the programmer – thus the name Control-Flow Enforcement. Today&#8217;s processors can return to any valid place the kernel lets them to return to no matter what instructions lie there, but that&#8217;s going to be changed with CET. That makes it impossible for an attacker to redirect the program flow for example into middle of a library or so that could then lead to overtake. The brilliance of the endbranch instruction is that it&#8217;s implemented as a NOP in all the current Intel chips so it&#8217;s 100 % backwards compatible and requires no tricks from the software programmer.</li>
<li><strong>Shadow stack</strong> which is a separate, hidden, you-cannot-touch-me stack living along the usual stack. For all the calls and jumps the software makes the return addresses are pushed to the stack but on the new chips they are also pushed to a new shadow stack – which happens automatically. Then when the pop op comes and it&#8217;s time for returning to a previous location, the CPU checks whether both the shadow stack and the normal stack have the same return address or not. If they match, ok, continue execution. If they don&#8217;t match, it means that someone has had their fingers on the normal stack&#8217;s return address and that all execution should be stopped. The programmer has no any sort of control over the shadow stack, it just operates in the background and is implemented in the hardware so that you cannot trick it nor touch it.</li>
</ol>
<p>Together these two additions will make it absurdly hard to alter the execution flow.</p>
<p>If you found any of this interesting, do your homework for DEP, ASRL, CET and before that, take a look at Ars Techinca&#8217;s brilliant article <em><strong><a href="http://arstechnica.com/security/2015/08/how-security-flaws-work-the-buffer-overflow/">How security flaws work: The buff</a></strong><strong><a href="http://arstechnica.com/security/2015/08/how-security-flaws-work-the-buffer-overflow/">er</a></strong><strong><a href="http://arstechnica.com/security/2015/08/how-security-flaws-work-the-buffer-overflow/"> overflow</a></strong></em>. That&#8217;s a really nice piece on the whole stack and the security questions around it and gives you many pointers for more things to discover.</p>
<p>Some links: <a href="https://blogs.intel.com/evangelists/2016/06/09/intel-release-new-technology-specifications-protect-rop-attacks/">Intel&#8217;s blogposting</a>, <a href="https://en.wikipedia.org/wiki/Return-oriented_programming">ROP on Wikipedia</a>, <a href="https://twit.tv/shows/security-now/episodes/565?autostart=false">TWIT.tv episode of Security Now</a></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/06/control-flow-enforcement-technology-to-fight-against-rop/">Control-flow Enforcement Technology to fight against ROP</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.extreg.com/blog/2016/06/control-flow-enforcement-technology-to-fight-against-rop/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">64</post-id>	</item>
		<item>
		<title>Android Instant Apps: the best new feature in any platform</title>
		<link>https://www.extreg.com/blog/2016/05/android-instant-apps-the-best-new-feature-in-any-platform/</link>
					<comments>https://www.extreg.com/blog/2016/05/android-instant-apps-the-best-new-feature-in-any-platform/#comments</comments>
		
		<dc:creator><![CDATA[Pietari]]></dc:creator>
		<pubDate>Wed, 18 May 2016 19:28:59 +0000</pubDate>
				<category><![CDATA[random]]></category>
		<category><![CDATA[Things I like]]></category>
		<category><![CDATA[android instant apps]]></category>
		<category><![CDATA[google io 2016]]></category>
		<guid isPermaLink="false">https://extreg.com/?p=52</guid>

					<description><![CDATA[<p>Google has just revealed Android Instant Apps at their annual Google I/O developer conference. This struck me as something extraordinary wicked. No kidding. In the past: Your friend sends you a link to a website / you read about something interesting and head to a website The website has a dedicated app&#8230; which is compulsory ... <span class="more"><a class="more-link" href="https://www.extreg.com/blog/2016/05/android-instant-apps-the-best-new-feature-in-any-platform/">[Read more...]</a></span></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/05/android-instant-apps-the-best-new-feature-in-any-platform/">Android Instant Apps: the best new feature in any platform</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Google has just revealed Android Instant Apps at their annual Google I/O developer conference.</p>
<p>This struck me as something extraordinary wicked. No kidding.</p>
<p>In the past:</p>
<ol>
<li>Your friend sends you a link to a website / you read about something interesting and head to a website</li>
<li>The website has a dedicated app&#8230; which is compulsory to install in order to view the content</li>
<li>You freak out, you get angry, you shake your head</li>
<li>If the content was interesting enough, you <em>might</em> install the required app</li>
<li>After a minute or so, you get to the content inside the app</li>
<li>&#8230; just to realize you probably lost the original link and you have to get to it again from search, messaging etc.</li>
<li>Afterwards, you have to get rid off the app</li>
<li>During the uninstallation process you realize you might have given the app a vast amount of personal information by the required permissions you had to agree to in order to get to the goddamn content you wanted to see in the first place</li>
</ol>
<p>That, above, is horrible. Rubbish. The flow is pathetic.</p>
<p><em><strong>Enter Android Instant Apps&#8230;</strong></em></p>
<ol>
<li>You get a link from somewhere</li>
<li>You click it</li>
<li>Android automatically opens the dedicated app but *only* downloads the needed pieces of software in order to display you the content you were after
<ol>
<li>You can use the app more, you can go to other sections etc.</li>
<li>Android seamlessly downloads the needed pieces on the go</li>
<li>No installation, no uninstallation, no nothing, just pure&#8230; something</li>
</ol>
</li>
<li>When you&#8217;re ready, just exit</li>
</ol>
<p>From my personal experience I really do vouch for this sort of features. The barrier to get into the actual content lowers so much when you are not required to waste your time, bandwidth and nerves downloading and installing useless one-shot applications that this should convert to vastly superior user experience (and more revenue, I suppose).</p>
<p>Ahh how I love Android.  Ps. This goes back to Android 4.2.</p>
<p><a href="http://arstechnica.com/gadgets/2016/05/android-instant-apps-will-blur-the-lines-between-apps-and-mobile-sites/">Ars Technica coverage</a>, <a href="https://developer.android.com/develop/topic/instant-apps/index.html">Android dev docs</a></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/05/android-instant-apps-the-best-new-feature-in-any-platform/">Android Instant Apps: the best new feature in any platform</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.extreg.com/blog/2016/05/android-instant-apps-the-best-new-feature-in-any-platform/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">52</post-id>	</item>
		<item>
		<title>Excited about Vue.js 2.0</title>
		<link>https://www.extreg.com/blog/2016/05/excited-about-vue-js-2-0/</link>
					<comments>https://www.extreg.com/blog/2016/05/excited-about-vue-js-2-0/#respond</comments>
		
		<dc:creator><![CDATA[Pietari]]></dc:creator>
		<pubDate>Mon, 02 May 2016 07:38:38 +0000</pubDate>
				<category><![CDATA[Things I like]]></category>
		<category><![CDATA[ractivejs]]></category>
		<category><![CDATA[vue 2.0]]></category>
		<category><![CDATA[vuejs]]></category>
		<guid isPermaLink="false">https://extreg.com/?p=48</guid>

					<description><![CDATA[<p>I started digging into JavaScript development a little over a year ago. I built my first JS app with jQuery and Ractive. Ractive is, as they say, a template-driven UI library which gives you an easy way to build interactive applications (front-ends) very easily and quickly. I chose Ractive without any spesific reason. I checked out their ... <span class="more"><a class="more-link" href="https://www.extreg.com/blog/2016/05/excited-about-vue-js-2-0/">[Read more...]</a></span></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/05/excited-about-vue-js-2-0/">Excited about Vue.js 2.0</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I started digging into JavaScript development a little over a year ago. I built my first JS app with jQuery and Ractive. Ractive is, <a href="http://www.ractivejs.org/">as they say</a>, <em>a template-driven UI library</em><em> </em>which gives you an easy way to build interactive applications (front-ends) very easily and quickly. I chose Ractive without any spesific reason. I checked out their interactive guide (<a href="http://learn.ractivejs.org/hello-world/1/">which is very good!!</a>) and started hacking. I didn&#8217;t know basically anything about JavaScript app development or the multitude of frameworks you can use to wire-up things so I picked the first one that seemed to do the job pretty nicely. Ractive was also something that I, myself, could understand easily. The way it worked really fitted into my thinking so it was easy to build different sorts of things with it.</p>
<p>Six months ago my work buddy wanted to hack something together and he started out with Ractive since I knew it and I could help him a bit. There was something he didn&#8217;t like about in Ractive (documentation being one) and he searched for something else. He ended up doing his exercise with Vue which has a couple of things in common with Ractive, eg. <a href="https://mustache.github.io/">{{Mustache}} templating</a>. Vue.js, as the man behind it puts it, <em>is a front-end framework that consists of a <a class="markup--anchor markup--blockquote-anchor" href="http://vuejs.org/" rel="nofollow" data-href="http://vuejs.org/">core view layer</a> and <a class="markup--anchor markup--blockquote-anchor" href="https://github.com/vuejs/" rel="nofollow" data-href="https://github.com/vuejs/">accompanying tools &amp; supporting libraries.</a></em></p>
<p>During the past couple of months I got really interested in Vue and have had this longing feeling of a need to learn something new. <a href="https://medium.com/the-vue-point/announcing-vue-js-2-0-8af1bde7ab9#.fup4wsenk">Enter Vue 2.0 announcement</a>, a couple of hours of weekend hacking for an MVP, and I&#8217;m hooked. It plays nicely with the way I think and seems to be a rich framework with a massive community. They have <a href="https://github.com/vuejs">all the bells and whistles</a> one could ask for and they&#8217;re moving forward at a constant pace. Their documentation is good, too.</p>
<p>My plan now is to hop on to the Vue 2.0 train as it nears arrival in late May or early June. I&#8217;m sure I cannot hold my fingers of the keyboard until then so I&#8217;ll probably have a bit of experience when 2.0 beta ships and the accompanying tools are upgraded. <strong>I&#8217;m really excited</strong> and I already have one little project and an idea (that still needs some working on the edges) for another one in mind.</p>
<p>Bring it on.</p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2016/05/excited-about-vue-js-2-0/">Excited about Vue.js 2.0</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.extreg.com/blog/2016/05/excited-about-vue-js-2-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">48</post-id>	</item>
		<item>
		<title>Static site hosting with custom domain, clean URLs, and deploying in </title>
		<link>https://www.extreg.com/blog/2015/12/static-site-hosting-custom-domain-clean-urls-surge/</link>
					<comments>https://www.extreg.com/blog/2015/12/static-site-hosting-custom-domain-clean-urls-surge/#respond</comments>
		
		<dc:creator><![CDATA[Pietari]]></dc:creator>
		<pubDate>Wed, 30 Dec 2015 09:19:32 +0000</pubDate>
				<category><![CDATA[Things I like]]></category>
		<category><![CDATA[custom domain with ssl/tls]]></category>
		<category><![CDATA[front-end]]></category>
		<category><![CDATA[single page app]]></category>
		<category><![CDATA[spa]]></category>
		<category><![CDATA[static site]]></category>
		<category><![CDATA[surge]]></category>
		<category><![CDATA[surge.sh]]></category>
		<guid isPermaLink="false">https://extreg.com/wp/?p=11</guid>

					<description><![CDATA[<p>Looking for a reliable, easy to use, and free hosting provider for your static web pages or single page app (SPA)? Or are you one of those people who would like to see GitHub Pages support HTTP 200 response for client-side routing instead of spoiling your urls with !#? I urge you to try surge.sh. Very ... <span class="more"><a class="more-link" href="https://www.extreg.com/blog/2015/12/static-site-hosting-custom-domain-clean-urls-surge/">[Read more...]</a></span></p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2015/12/static-site-hosting-custom-domain-clean-urls-surge/">Static site hosting with custom domain, clean URLs, and deploying in &lt;6 seconds: Surge.sh for the win</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div style="width: 888px" class="wp-caption alignnone"><img loading="lazy" class="" src="https://extreg.com/wp-content/uploads/2015/12/static-hosting-surge-e1451468680486.png" alt="" width="878" height="403" /><p class="wp-caption-text">Zero-bullshit. Faster than a bullet. Surge is perfect.</p></div>
<p>Looking for a reliable, easy to use, and free hosting provider for your static web pages or single page app (SPA)? Or are you one of those people who would like to see GitHub Pages support HTTP 200 response for client-side routing instead of spoiling your urls with <em><strong>!#</strong></em>? I urge you to try <em><strong><a href="http://surge.sh" target="_blank">surge.sh</a></strong></em>.</p>
<p>Very shortly, surge.sh gives you:</p>
<ul>
<li>static site hosting (single-page or the old way, you decide)</li>
<li>automatic cache-busting</li>
<li>your-nickname.surge.sh or custom domain</li>
<li>free SSL/TLS *</li>
<li>clean URLs</li>
<li>custom 404 not found and 200 fallback pages</li>
<li>by far the easiest and fastest deploying straight from the terminal</li>
</ul>
<p>If you know your way around, just <em><strong>npm install -g surge </strong></em>and <em><strong>surge /path/to/the/site-dir/ </strong></em>and you&#8217;ll be setup sooner than ever before.</p>
<p>Surge also has a paid-plan for 13 $ / month which gives you even more features. One of those things is securing your custom domain with an HTTPS connection (SSL/TLS). If you don&#8217;t want to pay, you can still use CloudFlare&#8217;s Universal SSL for your custom domain. That, of course, doesn&#8217;t give you HTTP Strict Transport Security (HSTS) or force-redirects from HTTP to HTTPS, but is better than nothing.</p>
<p><strong>Surge works so nicely</strong> that I suggest you to check out their tour and deploy even a sample app if you don&#8217;t have anything at your fingertips – for you will be hooked in no-time&#8230;</p>
<p>If you have something to add or know of another no-bullshit provider, drop a comment.</p>
<p>The post <a rel="nofollow" href="https://www.extreg.com/blog/2015/12/static-site-hosting-custom-domain-clean-urls-surge/">Static site hosting with custom domain, clean URLs, and deploying in &lt;6 seconds: Surge.sh for the win</a> appeared first on <a rel="nofollow" href="https://www.extreg.com">Pietari Heino&#039;s personal website</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.extreg.com/blog/2015/12/static-site-hosting-custom-domain-clean-urls-surge/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">11</post-id>	</item>
	</channel>
</rss>
