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

<channel>
	<title>michael_goldbeck, Author at jiaa.io Blog</title>
	<atom:link href="https://blog.jiaa.io/author/michael_goldbeck/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.jiaa.io/author/michael_goldbeck/</link>
	<description>Digital madness and beyond</description>
	<lastBuildDate>Wed, 07 May 2025 13:00:43 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.jiaa.io/wp-content/uploads/2017/01/cropped-favicon-2-150x150.png</url>
	<title>michael_goldbeck, Author at jiaa.io Blog</title>
	<link>https://blog.jiaa.io/author/michael_goldbeck/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Performance gains from offloading WordPress Media to S3 / DigitalOcean Spaces</title>
		<link>https://blog.jiaa.io/2021/03/02/performance-gains-from-offloading-wordpress-media-to-s3-digitalocean-spaces/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Tue, 02 Mar 2021 05:41:39 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Websites]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=3047</guid>

					<description><![CDATA[<p>WordPress and performance. If one follows the ongoing battle between aficionados and adversaries of the most used content management system on the Web, the extremes could not be more pronounced. One side argues that the ecosystem surrounding WordPress justifies some trade-offs when it comes to performance &#8211; while the other argues that legacy code sustaining [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2021/03/02/performance-gains-from-offloading-wordpress-media-to-s3-digitalocean-spaces/">Performance gains from offloading WordPress Media to S3 / DigitalOcean Spaces</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">WordPress and performance. If one follows the ongoing battle between aficionados and adversaries of the most used content management system on the Web, the extremes could not be more pronounced. One side argues that the ecosystem surrounding WordPress justifies some trade-offs when it comes to performance &#8211; while the other argues that legacy code sustaining the CMS is dragging down the Web as a whole. However valid both of these arguments seem to be, I think that doing your homework can make your WordPress installation fly &#8211; to a surprising degree. So let&#8217;s roll and see what we can do <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<span id="more-3047"></span>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" src="https://media.giphy.com/media/lcySndwSDLxC4eOU86/giphy.gif" alt="" width="351" height="215"/></figure></div>



<p>One of the simplest ways to ensure WordPress speed grandeur is to focus on the things that can clog down your web server: media files. Every page has loads of them. Images, videos and too many stupid GIFs. I know, I know &#8211; who am I to talk. But let&#8217;s face it: text is not the most satisfying content out there any more. But what to do if you already have exhausted all the common strategies of improving performance &#8211; such as using proper caching or optimising all images? </p>



<h2 class="wp-block-heading">Offloading media to the rescue!</h2>



<p>Offloading media means to save your images not only in the &#8222;<em>/wp-content/uploads</em>/&#8220; folder &#8211; a.k.a. your web server &#8211; but also on a specialised service providing you with cheap storage and fast delivery &#8211; a Content Delivery Network or CDN for short. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>But why &#8211; in the name of Tim Berners-Lee &#8211; would I waste any more of my hard-earned golden nuggets on hosting?</p><cite>Anyone hosting websites on the cheap</cite></blockquote>



<p><strong><em>Good that you ask.</em></strong> Because first and foremost your users will thank you for improved speed and better user experience &#8211; and <a href="https://yoast.com/does-site-speed-influence-seo/" target="_blank" rel="noreferrer noopener nofollow">Google will rank you better</a>. If that alone does not tickle your buttons, then listen to this: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Spending money on offloading media and a proper CDN setup will actually save you some bucks as you scale up.</p><cite>Lonely Austrian Nerd</cite></blockquote>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/gTURHJs4e2Ies/source.gif" alt=""/></figure></div>



<p><strong><em>Spending money to save money?</em></strong> No, I am not entirely crazy. Let me explain.</p>



<p>Let&#8217;s say you host the Website of a medium sized company aiming for signups to a service &#8211; and assume that you regularly send out newsletters which lead to spikes in visitors. These spikes turn your website sluggish &#8211; the reason why your conversions are <em><strong>down 25%</strong></em> in comparison to any normal day. That sucks, mate.</p>



<h2 class="wp-block-heading">So how do we fix this? </h2>



<p>Well, doubling server resources would most certainly take care of things. But it seems crazy to basically double server costs just to handle one spike every couple of months. Going static rocks hard when it comes to performance &#8211; but would also require a full rewrite of the Website.</p>



<p><strong>I say let&#8217;s get rid of media.</strong> But not by getting rid of the images itself but rather offloading them to a CDN. For this Proof-of-Concept I ran a WordPress Multisite installation on a basic tier droplet of <a href="https://www.digitalocean.com/products/droplets/" target="_blank" rel="noreferrer noopener nofollow">DigitalOcean</a> ($5/month) using a managed database (MySQL, $15/month) &#8211; using <a href="https://www.flood.io/" target="_blank" rel="noreferrer noopener nofollow">flood.io</a> to load test three pages with multiple images and 100 concurrent users &#8211; resulting in thousands of requests per minute. </p>



<h2 class="wp-block-heading">Initial run without offloading media</h2>



<p>I hear you say &#8222;<em>are you barking mad? 100 concurrent users on a tiny droplet like that?</em>&#8222;. Well &#8211; if caching is used (in this test I use the <a href="https://wordpress.org/plugins/w3-total-cache/" target="_blank" rel="noreferrer noopener nofollow">W3 Total Cache plugin</a>), this fares relatively well:</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="337" src="https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-performance-without-CDN-offloading-1024x337.jpg" alt="" class="wp-image-3083" srcset="https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-performance-without-CDN-offloading-1024x337.jpg 1024w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-performance-without-CDN-offloading-300x99.jpg 300w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-performance-without-CDN-offloading-768x253.jpg 768w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-performance-without-CDN-offloading-800x263.jpg 800w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-performance-without-CDN-offloading.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Performance of WordPress on a small server without CDN</figcaption></figure></div>



<p><strong><em>So, what do we have here?</em></strong> As you can see by the lack of red, the rate of failed requests was actually 0 &#8211; so no failed requests at all. That&#8217;s good. However, what becomes painfully obvious is the influence of concurrency on response time &#8211; after the ramp up period the perfectly acceptable 250ms jump up to a &#8222;<em>I-will-bounce-from-this-site</em>&#8220; 8500ms; a bloody disgrace to any professional Website. All in all, this should not come as a surprise &#8211; using a $5/month server to be bombarded with almost 2,500,000 requests a day (approx. 1,760 requests per minute) seems to go a bit overboard <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/B86lxbrMSZ0SQ/source.gif" alt=""/></figure></div>



<h2 class="wp-block-heading">Performance of WordPress with media offloading to a CDN</h2>



<p class="has-drop-cap"><strong>New the moment of truth: </strong>how does WordPress fare when offloading all media to a CDN? Well, great. But before diving into the data let me explain what exactly I offloaded &#8211; so that you can judge the possible impact offloading media to a CDN can have for your WordPress installation. </p>



<p>First of all, I used DigitalOcean&#8217;s &#8222;<a href="https://www.digitalocean.com/products/spaces/" target="_blank" rel="noreferrer noopener nofollow">Spaces Object Storage</a>&#8220; with a custom subdomain to offload media from my server. The process of uploading all media automatically to this object storage is done &#8211; quite unusually &#8211; not by plugin, but by using a combination of <a href="https://axkibe.github.io/lsyncd/" target="_blank" rel="noreferrer noopener nofollow">Lsyncd</a> and <a href="https://s3tools.org/s3cmd" target="_blank" rel="noreferrer noopener nofollow">s3cmd</a>. But let&#8217;s not get distracted by the more exciting parts of this PoC and get back to the boring data <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> &#8211; a post will follow on how to build a similar setup.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" width="1024" height="446" src="https://blog.jiaa.io/wp-content/uploads/2021/03/performance-comparison-wordpress-media-offloading-1024x446.jpg" alt="" class="wp-image-3099" srcset="https://blog.jiaa.io/wp-content/uploads/2021/03/performance-comparison-wordpress-media-offloading-1024x446.jpg 1024w, https://blog.jiaa.io/wp-content/uploads/2021/03/performance-comparison-wordpress-media-offloading-300x131.jpg 300w, https://blog.jiaa.io/wp-content/uploads/2021/03/performance-comparison-wordpress-media-offloading-768x335.jpg 768w, https://blog.jiaa.io/wp-content/uploads/2021/03/performance-comparison-wordpress-media-offloading-800x349.jpg 800w, https://blog.jiaa.io/wp-content/uploads/2021/03/performance-comparison-wordpress-media-offloading.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Performance of WordPress on a small server with CDN</figcaption></figure></div>



<p>Same testing period, same ramp-up period &#8211; and most important of all, same amount of concurrent users. As you can see in the comparison above, the results are quite striking. Not only was the test able to run at a substantially higher transaction rate of 2,250 requests per minute &#8211; an increase of well over 25% &#8211; but also the response times decreased mindbogglingly: from a catastrophic 4.7 seconds to an average of 166ms. I cannot stress this improvement enough: <strong>while serving approximately 3,240,000 requests a day the response time decreased to an average of 3,5% of the initial reaction time &#8211; all at the negligible cost increase of $5/month.</strong></p>



<h2 class="wp-block-heading">How far can we push this?</h2>



<p class="has-drop-cap">So, now we have seen a direct comparison of WordPress running on a small server without and with CDN. We saw that offloading media to a CDN yields substantial benefits to anyone trying to squeeze out every inch of performance from good ol&#8216; WordPress. </p>



<p>Well &#8211; to be perfectly honest, this has nothing to do with WordPress itself. The reason why this works so well is simple: by offloading media to a managed service hosted somewhere else, there is no need for our server to flex its muscles. As the images are not loaded from the same host as WordPress, the web server (Apache in this case) does not have to work as hard due to fewer requests made (about half actually &#8211; but this greatly depends on your site/workload). Consequentially, with less requests the CPU does not need to work as hard, the memory does not fill up as quickly and the drives hum along softly as there are very few files to serve.</p>



<p class="has-text-align-center"><strong><em>This is all great. But when are we finally going to break things? </em></strong><br><strong><em>Patience, young coder.</em></strong></p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/H8F81L6AsOaNCYCVv7/source.gif" alt=""/></figure></div>



<p>Alright &#8211; how far can we push this? Let&#8217;s give this another run &#8211; and triple the number of concurrent users to 300.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="288" src="https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-cdn-performance-comparison-max-load-1024x288.jpg" alt="" class="wp-image-3120" srcset="https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-cdn-performance-comparison-max-load-1024x288.jpg 1024w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-cdn-performance-comparison-max-load-300x84.jpg 300w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-cdn-performance-comparison-max-load-768x216.jpg 768w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-cdn-performance-comparison-max-load-800x225.jpg 800w, https://blog.jiaa.io/wp-content/uploads/2021/03/wordpress-cdn-performance-comparison-max-load.jpg 1200w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>Pushing a $5/month server with 300 concurrent users</figcaption></figure></div>



<p>While it still amazes me that this setup can handle over 6.2 million requests per day without returning a single error, one thing becomes clear: with an average response time of almost 10 seconds we won&#8217;t be winning any medals from our customers. Nevertheless, this PoC strengthens my view that scaling WordPress is not only a matter of pushing more money to a better hosting provider but substantially depends on your ability to optimise. </p>



<h2 class="wp-block-heading">Summa summarum</h2>



<p>In this post we used Object Storage to offload our WordPress media. This enabled us to more than double the amount of concurrent users our server can handle &#8211; and still leaves some room for further optimisation, such as offloading CSS and JavaScript files, offloading minified files generated by T3 Total Cache, switching from Apache to nginx, &#8230; </p>



<p>Your Website experiences spikes and you want to save a buck while still being able to handle more users? Go ahead and use a CDN &#8211; your visitors will thank you with higher sign-up rates.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/a0h7sAqON67nO/source.gif" alt=""/></figure></div>



<p class="has-text-align-center"><strong>How do you optimise your WordPress installations? </strong></p>
<p>The post <a href="https://blog.jiaa.io/2021/03/02/performance-gains-from-offloading-wordpress-media-to-s3-digitalocean-spaces/">Performance gains from offloading WordPress Media to S3 / DigitalOcean Spaces</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>freeCodeCamp: Delete HTML Elements</title>
		<link>https://blog.jiaa.io/2020/03/31/freecodecamp-delete-html-elements/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Tue, 31 Mar 2020 19:42:48 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2996</guid>

					<description><![CDATA[<p>Some just want to see the world burn. Or delete parts or their HTML 😉 Whether its just for kicks and lolz &#8211; or simply to gratify ones&#8216; need for self-flagellation &#8211; in this task we&#8217;ll delete stuff we made. Get ready for it! Delete your h1 element so we can simplify our view. freeCodeCmap [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/31/freecodecamp-delete-html-elements/">freeCodeCamp: Delete HTML Elements</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">Some just want to see the world burn. Or delete parts or their HTML <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Whether its just for kicks and lolz &#8211; or simply to gratify ones&#8216; need for self-flagellation &#8211; <a data-bcup-haslogintext="no" href="https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/delete-html-elements">in this task</a> we&#8217;ll delete stuff we made. Get ready for it!</p>



<span id="more-2996"></span>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/nZjB4cAWkYRcA/source.gif" alt="" /></figure></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Delete your <code>h1</code> element so we can simplify our view.</p><cite>freeCodeCmap</cite></blockquote>



<p>Well, there is not much to it, to be perfectly honest&#8230; We need to mark the &lt;h1&gt; element including its content and hit the delete key, so the code looks something like this:</p>



<pre class="wp-block-code"><code>&lt;h2&gt;CatPhotoApp&lt;/h2&gt;
&lt;p&gt;Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.&lt;/p&gt;</code></pre>



<p>While it&#8217;s a bit sad to see the very first HTML element we added go, life goes on &#8211; so we need to adapt <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> I am quite sure we&#8217;ll add some new friends soon <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p><strong>Summa summarum: </strong>this task was very much straight forward: we simply had to delete the &lt;h1&gt; heading element we added a <a data-bcup-haslogintext="no" href="https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/">couple of tasks ago</a>. In order to do so we mark the HTML element (starting and ending tag) as well as content and remove it.</p>



<p>Photo by <a href="https://unsplash.com/@thoughtcatalog?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Thought Catalog</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/31/freecodecamp-delete-html-elements/">freeCodeCamp: Delete HTML Elements</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>freeCodeCamp: Comment out HTML</title>
		<link>https://blog.jiaa.io/2020/03/30/freecodecamp-comment-out-html/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Mon, 30 Mar 2020 11:00:00 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2970</guid>

					<description><![CDATA[<p>I know, I know &#8211; the picture above is a fraud. It does not show comments in HTML but comments in JavaScript. While comments are such a vital way to document code in various different languages, especially with HTML developers tend to disregard them almost as much as the latest Cats movie. So let&#8217;s do [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/30/freecodecamp-comment-out-html/">freeCodeCamp: Comment out HTML</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">I know, I know &#8211; the picture above is a fraud. It does not show comments in HTML but comments in JavaScript. While comments are such a vital way to document code in various different languages, especially with HTML developers tend to disregard them almost as much as the latest <a rel="noreferrer noopener" aria-label="Cats movie (opens in a new tab)" data-bcup-haslogintext="no" href="https://www.rottentomatoes.com/m/cats_2019" target="_blank">Cats movie</a>. So let&#8217;s do something about that ?</p>



<span id="more-2970"></span>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/CjmvTCZf2U3p09Cn0h/source.gif" alt="" /></figure></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Comment out your <code>h1</code> element and your <code>p</code> element, but not your <code>h2</code> element.</p><cite>freeCodeCamp</cite></blockquote>



<p>Well, that&#8217;s an oddly <a data-bcup-haslogintext="no" href="https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/comment-out-html">specific task</a>. And while it is important to know that you can hide elements including its content from the user by commenting out HTML, it is equally &#8211; if not more &#8211; important to understand, that comments can be used for all kinds of useful things. <a href="https://www.sitepoint.com/author/gluhur/">Georgie Luhur</a> formulated five different reasons why comments are so important:</p>



<ul class="wp-block-list"><li>Comments can help maintain consistency</li><li>Comments facilitate understanding</li><li>Commenting can also assist with hotfixes or quick fixes</li><li>Comments help speed up the development process</li><li>Comments facilitate more efficient collaboration</li><li>Comments help a lot of people</li></ul>



<p class="has-text-align-center"><strong>Read his post on <a href="https://www.sitepoint.com/how-good-are-your-html-and-css-comments/">sitepoint.com</a>, it&#8217;s a good read!</strong></p>



<p>But let&#8217;s rise to the challenge and finish this daunting task ? The following is given:</p>



<pre class="wp-block-code"><code>&lt;!--
&lt;h1&gt;Hello World&lt;/h1&gt;
&lt;h2&gt;CatPhotoApp&lt;/h2&gt;
&lt;p&gt;Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.&lt;/p&gt;
--&gt;</code></pre>



<p>As indicated in the description, we need to let the &lt;h1&gt; headline element as well as the &lt;p&gt; paragraph element commented out while making the &lt;h2&gt; headline element visible to the user. The following should do the trick:</p>



<pre class="wp-block-code"><code>&lt;!--
&lt;h1&gt;Hello World&lt;/h1&gt;
--&gt;
&lt;h2&gt;CatPhotoApp&lt;/h2&gt;
&lt;!--
&lt;p&gt;Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.&lt;/p&gt;
--&gt;</code></pre>



<p><strong>Summa summarum: </strong>this  task is about removing the HTML commenting tags of one element, while retaining the comments for the other two elements. Therefore, we need to add the ending tag of HTML comments &#8211;&gt; after the &lt;h1&gt; headline as well as add the beginning tag &lt;!&#8211; after the &lt;h2&gt; headline element. And that&#8217;s it <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Photo by <a href="https://unsplash.com/@lucabravo?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Luca Bravo</a> on <a href="https://unsplash.com/s/photos/html?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/30/freecodecamp-comment-out-html/">freeCodeCamp: Comment out HTML</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>freeCodeCamp: Uncomment HTML</title>
		<link>https://blog.jiaa.io/2020/03/29/freecodecamp-uncomment-html/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Sun, 29 Mar 2020 11:00:00 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2977</guid>

					<description><![CDATA[<p>So. You want to hide the cat content for which you painstakingly wrote HTML but do not want delete it &#8211; because you need it to guide yourself towards a solution that is both smart and beautiful? Look no further, HTML comments at your service! Commenting is a way that you can leave comments for [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/29/freecodecamp-uncomment-html/">freeCodeCamp: Uncomment HTML</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">So. You want to hide the cat content for which you painstakingly wrote HTML but do not want delete it &#8211; because you need it to guide yourself towards a solution that is both smart and beautiful? Look no further, HTML comments at your service!</p>



<span id="more-2977"></span>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/CF5FCE1QUCA5G/source.gif" alt="" /></figure></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Commenting is a way that you can leave comments for other developers within your code without affecting the resulting output that is displayed to the end user. <br><br>Commenting is also a convenient way to make code inactive without having to delete it entirely.</p><cite>freeCodeCamp</cite></blockquote>



<p>And that&#8217;s actually almost everything there is to say about <em>&#8222;uncommenting&#8220;</em> HTML elements. While we will explore different strategies on how to properly comment your HTML in the future, <a data-bcup-haslogintext="no" href="https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/uncomment-html">this task</a> is about uncommenting the code provided:</p>



<pre class="wp-block-code"><code>&lt;!--
&lt;h1&gt;Hello World&lt;/h1&gt;
&lt;h2&gt;CatPhotoApp&lt;/h2&gt;
&lt;p&gt;Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.&lt;/p&gt;
--&gt;</code></pre>



<p>What this task asks us to do is quite straight forward:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Uncomment your <code>h1</code>, <code>h2</code> and <code>p</code> elements.</p><cite>freeCodeCamp</cite></blockquote>



<p>So how do we uncomment HTML? We simply get rid of &lt;!&#8211; which starts a comment, and remove &#8211;&gt; which ends comments in HTML. The result should look somewhat similar to the following:</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Hello World&lt;/h1&gt;
&lt;h2&gt;CatPhotoApp&lt;/h2&gt;
&lt;p&gt;Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.&lt;/p&gt;</code></pre>



<p><strong>Summa summarum: </strong>this task is about removing the HTML commenting tags in order to restore the markup to all its previous glory &#8211; meaning, that it actually shows up again. Therefore, we need to delete the opening tag of HTML comments &lt;!&#8211; at the very beginning as well as the closing tag of HTML comments &#8211;&gt; at the end of the markup provided. This is important as HTML comments not only enable us to hide elements temporarily, but with a proper commenting strategy in place we can document the HTML we wrote so others can understand and build upon it.</p>



<p>Photo by <a href="https://unsplash.com/@miklevasilyev?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Mikhail Vasilyev</a> on <a href="https://unsplash.com/s/photos/hide-cat?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/29/freecodecamp-uncomment-html/">freeCodeCamp: Uncomment HTML</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>freeCodeCamp: Fill in the Blank with Placeholder Text</title>
		<link>https://blog.jiaa.io/2020/03/28/freecodecamp-fill-in-the-blank-with-placeholder-text/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Sat, 28 Mar 2020 12:00:48 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2958</guid>

					<description><![CDATA[<p>Another day, another task: today we will tinker with placeholder texts. But hold your horses &#8211; these are not the placeholders you might expect. Let&#8217;s jump right into it. Web developers traditionally use lorem ipsum text as placeholder text. The lorem ipsum text is randomly scraped from a famous passage by Cicero of Ancient Rome. [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/28/freecodecamp-fill-in-the-blank-with-placeholder-text/">freeCodeCamp: Fill in the Blank with Placeholder Text</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">Another day, another task: today we will tinker with placeholder texts. But hold your horses &#8211; these are not the placeholders you might expect. Let&#8217;s jump right into it.</p>



<span id="more-2958"></span>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/YaZgr3Nj9DDI4/source.gif" alt="" /></figure></div>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Web developers traditionally use lorem ipsum text as placeholder text. The lorem ipsum text is randomly scraped from a famous passage by Cicero of Ancient Rome.</p><cite>freeCodeCamp</cite></blockquote>



<p>Only second to &#8222;<em>Hello World</em>&#8222;, &#8222;<em>lorem ipsum</em>&#8220; is one of the best known secrets in the development- as well as design community. While its <a data-bcup-haslogintext="no" href="https://www.printmag.com/graphic-design/history-of-lorem-ipsum-text/">origin</a> is widely <a data-bcup-haslogintext="no" href="https://www.quora.com/What-is-the-origin-of-lorem-ipsum-text">disputed</a>, there seems to be agreement that this seemingly random text derives to a certain degree from <a data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/Cicero">Cicero</a>&#8217;s &#8222;<em><a data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/De_finibus_bonorum_et_malorum">De finibus bonorum et malorum</a></em>&#8222;. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The purpose of <em>lorem ipsum</em> is to create a natural looking block  of text (sentence, paragraph, page, etc.) that doesn&#8217;t distract from the layout. A practice not without <a data-bcup-haslogintext="no" href="https://loremipsum.io/#controversy">controversy</a>, laying out pages with meaningless filler text can be very useful when the focus is meant to be on design, not content. </p><cite><a href="https://loremipsum.io/">loremipsum.io</a></cite></blockquote>



<p>Furthermore &#8211; and probably more important &#8211; this <em>&#8222;placeholder text&#8220;</em> is not to be confused with the <a data-bcup-haslogintext="no" href="https://www.w3schools.com/tags/att_input_placeholder.asp">placeholder attribute</a>, an HTML attribute associated with the <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input">&lt;input&gt;</a> and <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea">&lt;textarea&gt;</a> elements. This attribute shows a hint to the user in order to describe the expected input value. Often you will see this i.e. with login forms, indicating username and password.</p>



<p>Well, to stop beating around the bush &#8211; in <a href="https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/fill-in-the-blank-with-placeholder-text">this task</a> freeCodeCamp asks the following of us:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Replace the text inside your p element with the first few words of this kitty ipsum text: Kitty ipsum dolor sit amet, shed everywhere shed everywhere stretching attack your ankles chase the red dot, hairball run catnip eat the grass sniff.</p><cite>freeCodeCamp</cite></blockquote>



<p>Alright &#8211; finishing this task should be quite straight forward: just change the content between the &lt;p&gt; element:</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Hello World&lt;/h1&gt;
&lt;h2&gt;CatPhotoApp&lt;/h2&gt;
&lt;p&gt;Kitty ipsum dolor sit amet&lt;/p&gt;</code></pre>



<p class="has-text-align-center"><strong>And sure enough, we made it ???</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1794" height="1238" src="https://blog.jiaa.io/wp-content/uploads/2020/03/placeholder-text-success-freecodecamp.png" alt="" class="wp-image-2965" srcset="https://blog.jiaa.io/wp-content/uploads/2020/03/placeholder-text-success-freecodecamp.png 1794w, https://blog.jiaa.io/wp-content/uploads/2020/03/placeholder-text-success-freecodecamp-300x207.png 300w, https://blog.jiaa.io/wp-content/uploads/2020/03/placeholder-text-success-freecodecamp-1024x707.png 1024w, https://blog.jiaa.io/wp-content/uploads/2020/03/placeholder-text-success-freecodecamp-768x530.png 768w, https://blog.jiaa.io/wp-content/uploads/2020/03/placeholder-text-success-freecodecamp-1536x1060.png 1536w, https://blog.jiaa.io/wp-content/uploads/2020/03/placeholder-text-success-freecodecamp-800x552.png 800w" sizes="auto, (max-width: 1794px) 100vw, 1794px" /></figure>



<p><strong>Summa summarum: </strong>this task is about changing the text between the paragraph element of the <a data-bcup-haslogintext="no" href="https://blog.jiaa.io/2020/03/27/freecodecamp-inform-with-the-paragraph-element/">previous solution</a>. In order to do so, we need to change “<em>Hello Paragraph</em>” in between the &lt;p&gt; and &lt;/p&gt; tags to &#8222;<em>Kitty ipsum dolor sit amet</em>&#8222;.</p>



<p>Photo by <a href="https://unsplash.com/@screenwork_ch">Marcel Friedrich</a> on <a href="https://unsplash.com/s/photos/cat-computer">Unsplash</a></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/28/freecodecamp-fill-in-the-blank-with-placeholder-text/">freeCodeCamp: Fill in the Blank with Placeholder Text</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>freeCodeCamp: Inform with the Paragraph Element</title>
		<link>https://blog.jiaa.io/2020/03/27/freecodecamp-inform-with-the-paragraph-element/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Fri, 27 Mar 2020 16:46:33 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2936</guid>

					<description><![CDATA[<p>The World Wide Web (WWW) was built by Sir Tim Berners-Lee for one incredibly important thing: exchanging information with many others. Thus it is a save bet that content is the true ? on the Web. But how to structure information on the Web? &#60;p&#62; element to the rescue! The next task for our in [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/27/freecodecamp-inform-with-the-paragraph-element/">freeCodeCamp: Inform with the Paragraph Element</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">The World Wide Web (WWW) was built by Sir Tim Berners-Lee for one incredibly important thing: exchanging information with many others. Thus it is a save bet that <a rel="noreferrer noopener" aria-label="content (opens in a new tab)" data-bcup-haslogintext="no" href="https://medium.com/@HeathEvans/content-is-king-essay-by-bill-gates-1996-df74552f80d9" target="_blank">content</a> is the true ? on the Web. But how to structure information on the Web? <strong><em>&lt;p&gt; element to the rescue!</em></strong></p>



<span id="more-2936"></span>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/eDQjYjLbDGkE/source.gif" alt="" /></figure></div>



<p>The <a href="https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/inform-with-the-paragraph-element">next task</a> for our in depth freeCodeCamp session on &#8222;Basic HTML and HTML5&#8220; is quite straight forward:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Create a <code>p</code> element below your <code>h2</code> element, and give it the text &#8222;Hello Paragraph&#8220;.</p><cite>freeCodeCamp</cite></blockquote>



<p>Remember the previous tasks? <a data-bcup-haslogintext="no" href="https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/">First</a>, we head to add a majorly important &lt;h1&gt; headline, then <a data-bcup-haslogintext="no" href="https://blog.jiaa.io/2020/03/26/freecodecamp-headline-with-the-h2-element/">we went</a> on to add cat content with an unbearably difficult &lt;h2&gt; headline. While I make it sound like this is nothing at all, in fact, this is already quite important: if we get the semantics wrong search engines, screen readers and markup junkies will want our head for wasting their time. Yes, I am talking to you, you &lt;div&gt; taggers!</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/PnmHlMoY5gXQI/source.gif" alt="" /></figure></div>



<p class="has-text-align-center"><em><strong>The web being made for the exchange of information and all, let&#8217;s dive into the nitty-gritty stuff of the paragraph tag <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></strong></em></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>The <strong>HTML <code>&lt;p&gt;</code> element</strong> represents a paragraph.  Paragraphs are usually represented in visual media as blocks of text  separated from adjacent blocks by blank lines and/or first-line  indentation, but HTML paragraphs can be any structural grouping of  related content, such as images or form fields.</p><cite><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p">MDN</a> web docs</cite></blockquote>



<p>I would like to emphasise the part about <em>&#8222;structural grouping of related content&#8220;</em>: this means that so called <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content">phrasing content</a> should be placed between &lt;p&gt; and &lt;/p&gt;. Not more, not less. I know, this sounds quite theoretical &#8211; but fear not: if it fits into a sentence, then it is phrasing content. You want to make something <strong>bold</strong> for example. Does it fit into your sentence? YES IT DOES. Therefore, it is phrasing content. This holds true for images, links and many other things &#8211; probably best described in <a rel="noreferrer noopener" aria-label="this answer (opens in a new tab)" href="https://stackoverflow.com/a/30278612" target="_blank">this answer</a> on Stack Overflow.</p>



<p>The &lt;p&gt; element allows tag omission if the opening tag is immediately followed by certain elements (<a data-bcup-haslogintext="no" href="https://lmgtfy.com/?q=p+element+tag+omission">LMGTFY</a>) and includes <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes">global attributes</a> &#8211; a funky way to provide <a data-bcup-haslogintext="no" href="https://www.w3schools.com/html/html_attributes.asp">additional information</a>. </p>



<p>So what about the answer for the freeCodeCamp task? Do not dismay, my friend. If you want to add a paragraph, you simply add:</p>



<pre class="wp-block-code"><code>&lt;p&gt;This is a funky little paragraph&lt;/p&gt;
&lt;p&gt;This is a second funky little paragraph&lt;/p&gt;</code></pre>



<p>To complete the task at hand we have to add a &lt;p&gt; tag with the asked for content in between so it looks something like this:</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Hello World&lt;/h1&gt;
&lt;h2&gt;CatPhotoApp&lt;/h2&gt;
&lt;p&gt;Hello Paragraph&lt;/p&gt;</code></pre>



<p><strong>Summa summarum: </strong>this task is about adding a text paragraph to the <a data-bcup-haslogintext="no" href="https://blog.jiaa.io/2020/03/26/freecodecamp-headline-with-the-h2-element/">previous solution</a>. In order to do so, we need to add “<em>Hello Paragraph</em>” as content in between the &lt;p&gt; and &lt;/p&gt; tags. This is important because browsers, screen readers and search engines would not know what they are looking at and might wrongly label your content to the disadvantage of your users.</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/27/freecodecamp-inform-with-the-paragraph-element/">freeCodeCamp: Inform with the Paragraph Element</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>freeCodeCamp: Headline with the h2 Element</title>
		<link>https://blog.jiaa.io/2020/03/26/freecodecamp-headline-with-the-h2-element/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Thu, 26 Mar 2020 12:00:55 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2924</guid>

					<description><![CDATA[<p>Having added content to our very first &#60;h1&#62; element I already feel the power of hacking vested in me. Well, almost. We&#8217;ll get there 😉 By completing the HTML task so admirably, we now have a similar step ahead: Add an h2 tag that says &#8222;CatPhotoApp&#8220; to create a second HTML element below your &#8222;Hello [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/26/freecodecamp-headline-with-the-h2-element/">freeCodeCamp: Headline with the h2 Element</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">Having added content to <a href="https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/">our very first</a> &lt;h1&gt; element I already feel the power of hacking vested in me. Well, almost. We&#8217;ll get there <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<span id="more-2924"></span>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/o0vwzuFwCGAFO/source.gif" alt="" /></figure></div>



<p>By completing the HTML task so admirably, we now have a similar step ahead: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Add an <code>h2</code> tag that says &#8222;CatPhotoApp&#8220; to create a second HTML element below your &#8222;Hello World&#8220; <code>h1</code> element.</p><cite>freeCodeCamp</cite></blockquote>



<p>Why not use another <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements">heading element</a>, such as the &lt;h3&gt; element? Good you ask.</p>



<h3 class="has-text-align-center wp-block-heading">Because it screws with semantics!</h3>



<p>Well, that escalated quickly&#8230; It&#8217;s no understatement, however. While you might be perfectly fine reading the &lt;h3&gt; element above on your fancy hipster retina display, a lot of users and even more machines will struggle to do the same &#8211; because they depend on a page&#8217;s right semantic to understand what your awesome page is about. Sorry about the insult btw. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>So how to structure headings the right way? <a data-bcup-haslogintext="no" href="http://3https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements">MDN</a> to the rescue!</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Beetles&lt;/h1&gt;
    &lt;h2&gt;External morphology&lt;/h2&gt;
        &lt;h3&gt;Head&lt;/h3&gt;
            &lt;h4&gt;Mouthparts&lt;/h4&gt;
        &lt;h3&gt;Thorax&lt;/h3&gt;
            &lt;h4&gt;Prothorax&lt;/h4&gt;
            &lt;h4&gt;Pterothorax&lt;/h4&gt;</code></pre>



<p>Now, let&#8217;s apply this to the task at hand. We are given the following:</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Hello World&lt;/h1&gt;</code></pre>



<p>Looks familiar? Yes, it&#8217;s what we provided in the last task. </p>



<pre class="wp-block-code"><code>&lt;h1&gt;Hello World&lt;/h1&gt;
    &lt;h2&gt;CatPhotoApp&lt;/h2&gt;</code></pre>



<p>The tab used to visually divide the &lt;h1&gt; and the &lt;h2&gt; element will not influence our result &#8211; it&#8217;s there to give yourself some slack, using <a data-bcup-haslogintext="no" href="https://www.seguetech.com/whitespace-web-design/">whitespace</a>. And yes, it works for code too!</p>



<p><strong>Summa summarum: </strong>this task is about adding a subheading to our previous solution. In order to do so, we need to add &#8222;<em>CatPhotoApp</em>&#8220; as content in between the &lt;h2&gt; and &lt;/h2&gt; tags.</p>



<p>Photo by <a href="https://unsplash.com/@jaehunpark?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Jae Park</a> on <a href="https://unsplash.com/s/photos/cat?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/26/freecodecamp-headline-with-the-h2-element/">freeCodeCamp: Headline with the h2 Element</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>freeCodeCamp: Say Hello to HTML Elements</title>
		<link>https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/</link>
					<comments>https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/#comments</comments>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Wed, 25 Mar 2020 12:00:00 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2913</guid>

					<description><![CDATA[<p>While the first task was not a task at all, in the first real task we finally get our hands dirty. So let&#8217;s jump right into it! As the intro to this task explains, most HTML elements have an opening and a closing tag &#8211; in the example of this task it is&#8230; &#8230; for [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/">freeCodeCamp: Say Hello to HTML Elements</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">While the <a data-bcup-haslogintext="no" href="https://blog.jiaa.io/2020/03/24/freecodecamp-introduction-to-basic-html-html5/">first task</a> was not a task at all, in the first real task we finally get our hands dirty. So let&#8217;s jump right into it!</p>



<span id="more-2913"></span>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/MUHNdrm3vk7MoyUsCO/source.gif" alt="" /></figure></div>



<p>As the intro to this task explains, most HTML elements have an opening and a closing tag &#8211; in the example of this task it is&#8230;</p>



<pre class="wp-block-code"><code>&lt;h1&gt;</code></pre>



<p>&#8230; for opening a primary headline and &#8230;</p>



<pre class="wp-block-code"><code>&lt;/h1&gt;</code></pre>



<p>&#8230; for closing it. In between these two tags the content rules the lands with an iron fist. Not exactly rocket science, is it? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Do not despair, however! There are a couple of things one has to know about these <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements">HTML section heading elements</a>. The content permitted between heading tags is so called &#8222;<em><a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Content_categories#Phrasing_content">phrasing content</a></em>&#8220; &#8211; content that makes up paragraphs. I know what you are thinking: Captain obvious, at your service.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/OocLVILtd7ybm/giphy.gif" alt="" /></figure></div>



<p>But this is quite essential if you care about valid HTML. And you should, as this not only influences <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Author_fast-loading_HTML_pages">performance</a> and your <a data-bcup-haslogintext="no" href="https://www.lockedownseo.com/does-valid-html-affect-seo/">SERP</a>s, but gives visitors using supporting technologies a way to properly use your website. So don&#8217;t screw this up, mate! If you want to know more about what goes where and why, <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements">MDN</a> has your back! </p>



<p><strong><em>Back to the task at hand. </em></strong></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>To pass the test on this challenge, change your <code>h1</code> element&#8217;s text to say &#8222;Hello World&#8220;.</p><cite>freeCodeCamp</cite></blockquote>



<p>What we have to do is quite straight forward. We have to change this&#8230;</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Hello&lt;/h1&gt;</code></pre>



<p>&#8230; to this&#8230;</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Hello World&lt;/h1&gt;</code></pre>



<p>Manageable, right? <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> </p>



<p><strong>Summa summarum: </strong>this task is about changing the content of the primary headline. In order to do so, we need to add the asked for content in between the &lt;h1&gt; and &lt;/h1&gt; tags.</p>



<p> Photo by<a href="https://unsplash.com/@drew_beamer"> Drew Beamer</a> on <a href="https://unsplash.com/photos/3SIXZisims4">Unsplash</a></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/">freeCodeCamp: Say Hello to HTML Elements</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.jiaa.io/2020/03/25/freecodecamp-say-hello-to-html-elements/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>freeCodeCamp: Introduction to Basic HTML &#038; HTML5</title>
		<link>https://blog.jiaa.io/2020/03/24/freecodecamp-introduction-to-basic-html-html5/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Tue, 24 Mar 2020 07:03:59 +0000</pubDate>
				<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2893</guid>

					<description><![CDATA[<p>The first task is not a task at all &#8211; the attentive reader will have noticed in the headline, that our first stop on the road to web development is an introduction 😉 HTML, or HyperText Markup Language, is a markup language used to describe the structure of a web page. It uses a special [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/24/freecodecamp-introduction-to-basic-html-html5/">freeCodeCamp: Introduction to Basic HTML &amp; HTML5</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>The <a href="https://www.freecodecamp.org/learn/responsive-web-design/basic-html-and-html5/">first task</a> is not a task at all &#8211; the attentive reader will have noticed in the headline, that our first stop on the road to web development is an introduction <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<span id="more-2893"></span>



<figure class="wp-block-image size-large"><img decoding="async" src="https://media.giphy.com/media/3osxYcHkIWl29UKdoc/source.gif" alt="" /></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>HTML, or HyperText Markup Language, is a markup language used to describe the structure of a web page. It uses a special syntax or notation to organize and give information about the page to the browser. Elements usually have opening and closing tags that surround and give meaning to content. </p><cite>freecodecamp.org</cite></blockquote>



<p>There are already very good hints in this short paragraph to answer the question <em>&#8222;What the heck is HTML?&#8220;</em>. <a rel="noreferrer noopener" aria-label="MDN (opens in a new tab)" data-bcup-haslogintext="no" href="https://developer.mozilla.org" target="_blank">MDN</a> starts a bit more vague: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>HTML (HyperText Markup Language) is the most basic building block of the Web.</p><cite>MDN web docs</cite></blockquote>



<p>However, this is quite right &#8211; without HTML the Web as we know it would not be the same. We could theoretically live without other building blocks such as <a rel="noreferrer noopener" aria-label="CSS (opens in a new tab)" data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/Cascading_Style_Sheets" target="_blank">CSS</a> (which describes the visual presentation) and <a rel="noreferrer noopener" aria-label="JavaScript (opens in a new tab)" data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/JavaScript" target="_blank">JavaScript</a> (which describes functionality), but not without the general structure. As probably most of you know, the foundations of the Web were laid out in 1989 by the British physicist <a data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/Tim_Berners-Lee">Tim Berners-Lee</a> at <a data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/CERN">CERN</a>. In his proposal &#8222;<a rel="noreferrer noopener" aria-label="Information Management: A Proposal (opens in a new tab)" data-bcup-haslogintext="no" href="https://www.w3.org/History/1989/proposal.html" target="_blank"><em>Information Management: A Proposal</em></a>&#8220; he detailed the need for &#8222;<em>linked information systems</em>&#8222;, using the non-linear text system &#8222;<strong><em>hypertext</em></strong>&#8222;. The term <a href="https://en.wikipedia.org/wiki/Hypertext">hypertext</a>, however, was coined decades before Berners-Lee&#8217;s proposal by <a rel="noreferrer noopener" aria-label="Ted Nelson (opens in a new tab)" data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/Ted_Nelson" target="_blank">Ted Nelson</a> &#8211; around the 1950s. </p>



<p>While Berners-Lee created HTML in late 1991, it was not released until 1993. However, the first officially published specification was not HTML 1.0 but HTML 2.0 in the year 1995 &#8211; and can be read in all its glory in <a rel="noreferrer noopener" aria-label="RFC 1866 (opens in a new tab)" data-bcup-haslogintext="no" href="https://tools.ietf.org/html/rfc1866" target="_blank">RFC 1866</a>.</p>



<p>But I am losing myself in awesome tech-history <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Probably most important is the syntax of HTML: by using opening and closing tags the content of a page receives semantics, thus its meaning. freeCodeCamp provides the following example:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="748" height="277" src="https://blog.jiaa.io/wp-content/uploads/2020/03/intro-html-example.png" alt="" class="wp-image-2902" srcset="https://blog.jiaa.io/wp-content/uploads/2020/03/intro-html-example.png 748w, https://blog.jiaa.io/wp-content/uploads/2020/03/intro-html-example-300x111.png 300w" sizes="auto, (max-width: 748px) 100vw, 748px" /></figure>



<p>What this does is easily explained:</p>



<pre class="wp-block-code"><code>&lt;h1&gt;Top level heading: Maybe a page title&lt;/h1&gt;</code></pre>



<p>This defines a primary headline of a page. Being the first of the six <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements">section heading elements</a> (&lt;h1&gt;-&lt;h6&gt;) this headline represents an important part for every page. Therefore, this element should be chosen with care as it influences not &#8222;<em>only</em>&#8220; the <a data-bcup-haslogintext="no" href="https://www.w3schools.com/html/html5_semantic_elements.asp">semantics</a> of the page, but also how screen readers interpret the content within and how search engines rank the page.</p>



<pre class="wp-block-code"><code>&lt;p&gt;A paragraph of text...&lt;/p&gt;</code></pre>



<p>Well, the text itself says it all: the <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/p">&lt;p&gt; element</a> defines a paragraph, grouping related content such as text, images and links together. Paragraphs are <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements">block-level elements</a>, so they always start a new line and take up the full width available within their parent element. They also allow tag omission &#8211; meaning that the end tag can be omitted if another block-level element or no element follows within its parent.</p>



<pre class="wp-block-code"><code>&lt;ol&gt;
  &lt;li&gt;Number one on the list&lt;/li&gt;
  &lt;li&gt;Number two&lt;/li&gt;
  &lt;li&gt;A third item&lt;/li&gt;
&lt;/ol&gt;</code></pre>



<p>The <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/ol">&lt;ol&gt; element</a> defines ordered lists &#8211; with <a data-bcup-haslogintext="no" href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li">&lt;li&gt; elements</a> representing the items of that list. Items within ordered lists are automatically numbered and can receive values as well as a type classification as attributes. While &lt;li&gt; elements support tag omission, the end tags of &lt;ol&gt; elements can&#8217;t be omitted. </p>



<p>As you can see, there is a lot that can be said about HTML elements; therefore, it&#8217;s quite obviously that writing its specifications is not a one-man-show. Founded by Tim Berners-Lee in 1994, the <a data-bcup-haslogintext="no" href="https://www.w3.org/">World Wide Web Consortium</a> &#8211; <a data-bcup-haslogintext="no" href="https://en.wikipedia.org/wiki/World_Wide_Web_Consortium">W3C</a> for short &#8211; is, looking for a better word, the &#8222;<em>governing</em>&#8220; body organising the development of Web-related specifications.</p>



<p>While there is still much more to say about the HTML, the W3C and the Web, I think I will leave it with this. It&#8217;s just the first task after all <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p> Photo by<a href="https://unsplash.com/@rxspawn"> Florian Olivo</a> on <a href="https://unsplash.com/photos/4hbJ-eymZ1o">Unsplash</a></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/24/freecodecamp-introduction-to-basic-html-html5/">freeCodeCamp: Introduction to Basic HTML &amp; HTML5</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Deep diving freeCodeCamp</title>
		<link>https://blog.jiaa.io/2020/03/23/deep-diving-freecodecamp/</link>
		
		<dc:creator><![CDATA[michael_goldbeck]]></dc:creator>
		<pubDate>Mon, 23 Mar 2020 16:00:00 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[freeCodeCamp]]></category>
		<guid isPermaLink="false">https://blog.jiaa.io/?p=2850</guid>

					<description><![CDATA[<p>Almost to this day 14 years ago I started my journey into Web Development. To develop a social network as an utter and complete noob was quite an ambitious goal, more hopeless than achievable. Not knowing what the heck I was doing, I got by on trail by error &#8211; there was no Stack Overflow, [&#8230;]</p>
<p>The post <a href="https://blog.jiaa.io/2020/03/23/deep-diving-freecodecamp/">Deep diving freeCodeCamp</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p class="has-drop-cap">Almost to this day 14 years ago I started my journey into Web Development. To develop a social network as an utter and complete noob was quite an ambitious goal, more hopeless than achievable. Not knowing what the heck I was doing, I got by on trail by error &#8211; there was no Stack Overflow, no Udemy; only disturbingly rigid forums and a brand new Reddit. God, how I miss these times <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<span id="more-2850"></span>



<p>I got there eventually &#8211; but after a year of learning how to code I realised that social networks are a dead end. Meaning: I got my ass handed to me by the competition^^</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://media.giphy.com/media/13HgwGsXF0aiGY/source.gif" alt="" /></figure>



<p>Be that as it may &#8211; since these days I have been dedicated to encourage change by using technology to solve seemingly complicated problems. I have transitioned from being a developer to product owner to product manager to digital policy aficionado and back &#8211; so it goes without saying, that my code output has suffered of late&#8230;</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/f0TvnEmF5yPLO/giphy.gif" alt="" /></figure></div>



<p>While I have tried to keep up to date with pet projects, there is no denying that I am less a developer than ever before. Web Development has seen such rapid change over the last decade that I am starting to feel more and more like the biggest imposter that walks this planet earth. </p>



<p><strong><em>So what to do about this?</em></strong> Hiding underneath a billion emails in order to avoid my own shortcomings? Learning the latest and greatest JavaScript framework for peace of mind? </p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/d2W7eZX5z62ziqdi/source.gif" alt="" /></figure></div>



<p class="has-text-align-center"><strong><em>No, I think not.</em></strong></p>



<p>I want to do this the right way &#8211; so going back to the very beginnings is the only way forward. It might be slow, it might be painful; but it is also necessary. </p>



<p class="has-text-align-center"><strong><em>So what am I going to do, you ask? </em></strong></p>



<p>I will do the curriculums of <a rel="noreferrer noopener" aria-label="freecodecamp.org (opens in a new tab)" data-bcup-haslogintext="no" href="https://www.freecodecamp.org/" target="_blank">freecodecamp.org</a> the hard way: not only going through all the tasks and projects, but I will write about them in depth; explaining, discussing and criticising my own solutions so the very basics sink in properly this time. I will commit myself to think for myself &#8211; and learn code on the way <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" src="https://media.giphy.com/media/xT1XGzXhVgWRLN1Cco/source.gif" alt="" /></figure></div>



<p>This will take time &#8211; loads of it. But there is no way around it. Ready or not, here I come. </p>



<p><em>Happy coding <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></em></p>
<p>The post <a href="https://blog.jiaa.io/2020/03/23/deep-diving-freecodecamp/">Deep diving freeCodeCamp</a> appeared first on <a href="https://blog.jiaa.io">jiaa.io Blog</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
