<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Simon Lee</title>
    <description>The latest articles on DEV Community by Simon Lee (@simonhlee97).</description>
    <link>https://dev.to/simonhlee97</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F363934%2Ff82a4d00-4510-4cdf-b68e-f58f70caa28c.jpg</url>
      <title>DEV Community: Simon Lee</title>
      <link>https://dev.to/simonhlee97</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/simonhlee97"/>
    <language>en</language>
    <item>
      <title>What is a WordPress Nonce? And how to use it.</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Wed, 29 Nov 2023 23:26:00 +0000</pubDate>
      <link>https://dev.to/simonhlee97/what-is-a-wordpress-nonce-39ek</link>
      <guid>https://dev.to/simonhlee97/what-is-a-wordpress-nonce-39ek</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;A &lt;em&gt;nonce&lt;/em&gt; by definition is something that is used only once and without recurrence. In a WordPress website, &lt;strong&gt;nonces&lt;/strong&gt; are used to validate the contents of a form and avoid malicious activity. More specifically, a nonce protects your website from Cross-Site Request Forgeries (CSRFs) attacks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;source: this &lt;a href="https://pressidium.com/blog/nonces-in-wordpress-all-you-need-to-know/"&gt;blog article&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to use a nonce in WordPress
&lt;/h2&gt;

&lt;p&gt;In &lt;em&gt;functions.php&lt;/em&gt;, in your function that loads scripts and css files, you can create a nonce property inside a WordPress function called &lt;code&gt;wp_localize_script()&lt;/code&gt;. See example below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nf"&gt;wp_localize_script&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my-website-files'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'someSiteData'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s1"&gt;'nonce'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;wp_create_nonce&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'wp_rest'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you view your web page source, you can find a key-value that looks similar to: &lt;code&gt;var someSiteData = {"nonce": "15e935b62e"}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can use that generated hash as a property in an AJAX request, as shown below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// jQuery&lt;/span&gt;
&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ajax&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;beforeSend&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;xhr&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;xhr&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setRequestHeader&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;X-WP-Nonce&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;someSiteData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;nonce&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>wordpress</category>
    </item>
    <item>
      <title>WordPress function get_template_part()</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Sat, 18 Nov 2023 15:38:13 +0000</pubDate>
      <link>https://dev.to/simonhlee97/wordpress-function-gettemplatepart-2hjb</link>
      <guid>https://dev.to/simonhlee97/wordpress-function-gettemplatepart-2hjb</guid>
      <description>&lt;p&gt;When building custom WordPress themes or websites, one important function you'll almost certainly use is &lt;code&gt;get_template_part()&lt;/code&gt;. Let's explore and investigate this function.&lt;/p&gt;

&lt;p&gt;The primary reason why this function is so useful is the DRY principle (Don't Repeat Yourself). It helps you write cleaner code, eliminating code duplication.&lt;/p&gt;

&lt;p&gt;Typically, you will put your template files inside a directory called "template-parts". So if you have a file there called "event.php", here's how you would use that file in, for example, front-page.php.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;get_template_part()&lt;/code&gt; takes in 2 arguments. (The 2nd argument is optional).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nf"&gt;get_template_part&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'template-parts/event'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want to create and reuse even more modular, smaller-sized components throughout your website, but limit the scope to just "events", you can use multiple files that begin with "event-" in the file name. For example, "&lt;strong&gt;event-header.php&lt;/strong&gt;" and "&lt;strong&gt;event-footer.php&lt;/strong&gt;". To use those template files, you would need to use the 2nd argument in &lt;code&gt;get_template_part()&lt;/code&gt;. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nf"&gt;get_template_part&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'template-parts/event'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'header'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;get_template_part&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'template-parts/event'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'footer'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If you want to keep your WordPress code DRY, build reusable components with component-driven design patterns, you'll want to use &lt;code&gt;get_template_parts()&lt;/code&gt; to make those abstractions.&lt;/p&gt;

</description>
      <category>wordpress</category>
    </item>
    <item>
      <title>Custom WP Thumbnail Sizes</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Fri, 17 Nov 2023 15:27:12 +0000</pubDate>
      <link>https://dev.to/simonhlee97/custom-wp-image-sizes-4a5h</link>
      <guid>https://dev.to/simonhlee97/custom-wp-image-sizes-4a5h</guid>
      <description>&lt;p&gt;By default, WordPress creates 5 image files when you upload a featured image (the original plus 4 smaller versions). Adding a custom-sized image for featured images is possible by using the &lt;code&gt;add_image_size()&lt;/code&gt; function inside your &lt;em&gt;functions.php&lt;/em&gt; file.&lt;/p&gt;

&lt;p&gt;As an example, let's say you want a 200 x 200 image with the nickname of "my_avatar".&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;my_site_features&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;add_image_size&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'my_avatar'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt; &lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As you can see, the add_image_size() function accepts 4 arguments: the name, width, height, and a boolean value for whether or not you want to crop the image (true=crop, false=no crop).&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick side note
&lt;/h2&gt;

&lt;p&gt;To retroactively regenerate "my_avatar"-sized thumbnails for all your existing image uploads, one good option is to use the &lt;a href="https://wordpress.org/plugins/regenerate-thumbnails/"&gt;Regenerate Thumbnails&lt;/a&gt; plugin.&lt;/p&gt;

&lt;p&gt;As an alternative, you can use &lt;a href="https://jetpack.com/support/site-accelerator/"&gt;Jetpack's Photon Module&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Displaying the "my_avatar"-sized image on a web page
&lt;/h2&gt;

&lt;p&gt;Let's say you want to display that "my_avatar" custom-sized image in your &lt;em&gt;single-event.php&lt;/em&gt; template file. All you have to do is add "my_avatar" as an argument for &lt;code&gt;the_post_thumbnail()&lt;/code&gt;. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nf"&gt;the_post_thumbnail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"my_avatar"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>wordpress</category>
    </item>
    <item>
      <title>Turning On Thumbnail Support for Custom Post Types</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Mon, 13 Nov 2023 20:42:17 +0000</pubDate>
      <link>https://dev.to/simonhlee97/turning-on-thumbnail-support-for-custom-post-types-547e</link>
      <guid>https://dev.to/simonhlee97/turning-on-thumbnail-support-for-custom-post-types-547e</guid>
      <description>&lt;p&gt;If you read through the &lt;strong&gt;functions.php&lt;/strong&gt; file in any theme, you'll see a few lines of code that look like this:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;add_theme_support('post-thumbnails');&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;These features are for WordPress's 2 default types: Posts and Pages. If you are working with custom post types, you'll have to add this line of code to your (for example) my-custom-post-types.php file located in your &lt;strong&gt;mu-plugins&lt;/strong&gt; folder. You'll add thumbnail support inside the &lt;code&gt;register_post_type()&lt;/code&gt; function, as shown below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;my_custom_post_types&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;register_post_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'event'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s1"&gt;'supports'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'title'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'editor'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'thumbnail'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
  &lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, when your content editors are looking at the custom post, for example, "Event", they will see the "Featured image" option in the WP Editor (lower-right hand side).&lt;/p&gt;

</description>
      <category>wordpress</category>
    </item>
    <item>
      <title>Updating WP Permalinks</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Thu, 09 Nov 2023 17:11:56 +0000</pubDate>
      <link>https://dev.to/simonhlee97/updating-wp-permalinks-4582</link>
      <guid>https://dev.to/simonhlee97/updating-wp-permalinks-4582</guid>
      <description>&lt;p&gt;After registering a new custom post type, the first thing you will probably do is add a couple dummy posts to test it out and make sure things are working as expected. You then visit the page after creating a dummy post, and notice that none of the content is displayed, and the title of your tab says "Page Not Found".&lt;/p&gt;

&lt;h2&gt;
  
  
  How to fix
&lt;/h2&gt;

&lt;p&gt;In order for WordPress to recognize your new post's url, you have to regenerate your website's permalinks, which is very easy to do.&lt;/p&gt;

&lt;p&gt;In the WP Admin sidebar, point to Settings, click on Permalinks, and then click the Save Changes button. This will regenerate the permalinks, and now, if you go visit your page, the content should appear.&lt;/p&gt;

</description>
      <category>wordpress</category>
    </item>
    <item>
      <title>WP Custom Post Types</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Mon, 06 Nov 2023 04:39:36 +0000</pubDate>
      <link>https://dev.to/simonhlee97/wp-custom-post-types-jo0</link>
      <guid>https://dev.to/simonhlee97/wp-custom-post-types-jo0</guid>
      <description>&lt;p&gt;While non-coders typically create custom post types in WordPress with a popular plugin called "&lt;a href="https://wordpress.org/plugins/custom-post-types/"&gt;Custom post types&lt;/a&gt;", developers who want to write the code to give your users the ability to create custom post types can use this quick guide to get started.&lt;/p&gt;

&lt;p&gt;You could create an action in your &lt;em&gt;functions.php&lt;/em&gt; file, but if your content writers, editors were to switch the theme, then that custom post type would no longer be available in the WP Admin. Similarly, you could create a small plugin, but that could also be deactivated by mistake by editors in the WP Admin.&lt;/p&gt;

&lt;p&gt;Best practice would be to register your custom post types in a folder called "&lt;code&gt;mu-plugins&lt;/code&gt;", which live in their own dedicated folder, and are automatically activated. If you switch themes, your custom post types are still available. Also, they cannot be deactivated from the WP Admin.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1 Register Custom Post Types
&lt;/h2&gt;

&lt;p&gt;Create a folder called "mu-plugins". It should sit alongside your project's "plugins", "themes", "upgrade", etc directories. Then add a new file called (e.g.) "my-custom-post-types.php". Copy &amp;amp; paste the following code to that file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;

&lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;my_custom_post_types&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;register_post_type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'event'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="s1"&gt;'public'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'rewrite'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'slug'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'events'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'has_archive'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s1"&gt;'show_in_rest'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;# switches from Classic Editor to Block Editor&lt;/span&gt;
    &lt;span class="s1"&gt;'labels'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="s1"&gt;'name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Events'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s1"&gt;'add_new_item'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Add New Event'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s1"&gt;'edit_item'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Edit Event'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s1"&gt;'all_items'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'All Events'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s1"&gt;'singular_name'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'Event'&lt;/span&gt;
    &lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="s1"&gt;'menu_icon'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'dashicons-hammer'&lt;/span&gt;
  &lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nf"&gt;add_action&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'init'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'my_custom_post_types'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visit the &lt;a href="https://developer.wordpress.org/reference/functions/register_post_type/"&gt;WordPress docs&lt;/a&gt; to see a list of all the parameters that can be used with &lt;code&gt;register_post_type()&lt;/code&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 Displaying Custom Post Types
&lt;/h2&gt;

&lt;p&gt;You'll have to create a custom query to display custom post types in (for example) &lt;code&gt;front-page.php&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class="nv"&gt;$latestEvents&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;WP_Query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="s1"&gt;'posts_per_page'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="s1"&gt;'post_type'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'event'&lt;/span&gt;
&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$latestEvents&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;have_posts&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;$latestEvents&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;the_post&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"title"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="nf"&gt;the_permalink&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="nf"&gt;the_title&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="nf"&gt;the_content&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nf"&gt;wp_reset_postdata&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>wordpress</category>
      <category>tutorial</category>
      <category>wordpressdev</category>
    </item>
    <item>
      <title>Useful Bulma CSS Tip</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Mon, 07 Sep 2020 07:01:15 +0000</pubDate>
      <link>https://dev.to/simonhlee97/useful-bulma-css-tip-49ah</link>
      <guid>https://dev.to/simonhlee97/useful-bulma-css-tip-49ah</guid>
      <description>&lt;p&gt;I've been a big fan of Bulma ever since I first discovered it a few years ago. &lt;a href="https://bulma.io"&gt;Bulma&lt;/a&gt; is a free, open source CSS framework based on Flexbox, created by Jeremy Thomas.&lt;/p&gt;

&lt;h2&gt;
  
  
  I love simplicity
&lt;/h2&gt;

&lt;p&gt;I love the fact that Bulma is purely CSS and no javascript. &lt;a href="https://bulma.io/alternative-to-bootstrap/"&gt;Here's a nice comparison with Bootstrap&lt;/a&gt;. The class names and modifiers are all easy to remember and intuitive. (After using it a few times, you'll pick up the naming schemes for the modifiers quickly, and you'll refer to the docs less and less frequently). It is also very easy to customize or overwrite (without the need for &lt;code&gt;!important&lt;/code&gt;).&lt;/p&gt;

&lt;h2&gt;
  
  
  Tip
&lt;/h2&gt;

&lt;p&gt;Here's a simple table using Bulma's table class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;table&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"table is-fullwidth"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Hall of Fame&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Michael Jordan&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Magic Johnson&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Larry Bird&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Shaq&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tbody&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pe_zkSRa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/96g55dd1uq7wcf32z79r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pe_zkSRa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/96g55dd1uq7wcf32z79r.jpg" alt="Alt Text" width="350" height="198"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Like most people, I don't enjoy writing HTML tables. It's a lot of markup.&lt;/p&gt;

&lt;p&gt;But if you use Bulma's &lt;code&gt;.panel-block&lt;/code&gt; class, you can achieve the same table-like look with far less markup.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"panel-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Hall of Fame&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"panel-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Michael Jordan&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"panel-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Magic Johnson&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"panel-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Larry Bird&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"panel-block"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Shaq&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here's the result. (Slightly bigger padding-top and padding-bottom makes it a bit more readable as well.)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xK0-_2ak--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/a16uxf6i1i9qeakc6wpg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xK0-_2ak--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/i/a16uxf6i1i9qeakc6wpg.jpg" alt="Alt Text" width="350" height="210"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading. More Bulma "hacks" and tips to come...&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comparing React and Vue - part 2</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Thu, 30 Jul 2020 11:55:00 +0000</pubDate>
      <link>https://dev.to/simonhlee97/comparing-react-and-vue-part-2-26d6</link>
      <guid>https://dev.to/simonhlee97/comparing-react-and-vue-part-2-26d6</guid>
      <description>&lt;p&gt;This is my 2nd post for my React &amp;amp; VueJS comparisons... purely for learning and understanding the basics of these 2 frameworks a little better. Here's &lt;a href="https://dev.to/simonhlee97/comparing-react-and-vue-part-1-572n"&gt;Part 1&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Let's look at basic conditional statements in Vue
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;v-if=&lt;/span&gt;&lt;span class="s"&gt;"show"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;conditional example&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In your Vue instance's data, if you set "show" to equal true, this paragraph will show in the DOM. If "show" is set to false, it hides this paragraph.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;myapp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Vue&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;el&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#my-app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;data&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;show&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There's also a v-else directive that you can use after a v-if.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;v-if=&lt;/span&gt;&lt;span class="s"&gt;"show"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;First Div&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;v-else&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Second Div&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, if you set show to false, the DOM will display the text "Second Div".&lt;/p&gt;

&lt;h1&gt;
  
  
  Conditional Rendering in React
&lt;/h1&gt;

&lt;p&gt;In React, to do if-else conditional rendering, it will involve writing a little more javascript compared to Vue.&lt;/p&gt;

&lt;p&gt;Inside your render() function,  and before you return your JSX template, you'll need to assign this.state to your condition variable. You also need to create a function that includes your condition logic.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;isLoggedIn&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;showOneButton&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isLoggedIn&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Logout&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Login&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inside your JSX return () statement, you call that function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="si"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;showOneButton&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You could refactor this using Ternary Operators, or a switch statement. There's also the Logical &amp;amp;&amp;amp; Operator. So plenty of options, and some are more elegant than others. Try them out and have fun!&lt;/p&gt;

</description>
      <category>react</category>
      <category>vue</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Consolidating My Chrome Bookmarks</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Mon, 13 Jul 2020 04:01:11 +0000</pubDate>
      <link>https://dev.to/simonhlee97/consolidating-my-chrome-bookmarks-mn</link>
      <guid>https://dev.to/simonhlee97/consolidating-my-chrome-bookmarks-mn</guid>
      <description>&lt;p&gt;My collection of web development bookmarks has gotten out of control. I don't want to spend an entire day organizing them and categorizing them in folders. I thought it would be better to share with the Dev community and create a one-page reference sheet here that consolidates most of my programming and web-dev links. Am I missing anything? Feel free to leave 1 or 2 of your favs that are not on my list!&lt;br&gt;
(Note: this will be updated roughly once a month or every other month.)&lt;/p&gt;

&lt;p&gt;For my lists, I'm trying to sort them by how often I use/visit the site.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTML
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://htmlreference.io/"&gt;htmlreference&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS-References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cssreference.io/"&gt;cssreference.io&lt;/a&gt;&lt;br&gt;
&lt;a href="https://css-tricks.com/"&gt;css-tricks&lt;/a&gt;&lt;br&gt;
&lt;a href="http://getbem.com/"&gt;BEM&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.samanthaming.com/flexbox30/"&gt;CSS Flexbox&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  CSS-Frameworks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://bulma.io/"&gt;Bulma&lt;/a&gt;&lt;br&gt;
&lt;a href="https://getbootstrap.com/"&gt;Bootstrap&lt;/a&gt;&lt;br&gt;
&lt;a href="http://getskeleton.com/"&gt;Skeleton&lt;/a&gt;&lt;br&gt;
&lt;a href="https://semantic-ui.com/"&gt;SemanticUI&lt;/a&gt;&lt;br&gt;
&lt;a href="https://material-ui.com/"&gt;MaterialUI&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  JavaScript
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://flaviocopes.com/"&gt;Flaviocopes&lt;/a&gt;&lt;br&gt;
&lt;a href="https://masteringjs.io/"&gt;masteringjs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://zellwk.com/"&gt;zellwk&lt;/a&gt;&lt;br&gt;
&lt;a href="https://vuejsdevelopers.com/"&gt;VueJS Developers&lt;/a&gt;&lt;br&gt;
&lt;a href="https://vuejs.org/"&gt;Official VueJS&lt;/a&gt;&lt;br&gt;
&lt;a href="https://vue-community.org"&gt;Official Vue Community&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Playgrounds
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codeSandbox.io/"&gt;CodeSandbox&lt;/a&gt;&lt;br&gt;
&lt;a href="https://codepen.io/"&gt;CodePen&lt;/a&gt;&lt;br&gt;
&lt;a href="https://jsfiddle.net/"&gt;jsfiddle&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  General References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developer.mozilla.org/en-US/"&gt;MDN Web Docs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://w3schools.com/"&gt;W3Schools&lt;/a&gt;&lt;br&gt;
&lt;a href="https://riptutorial.com/"&gt;RIP Tutorial&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.thatsoftwaredude.com/"&gt;ThatSoftwareDude&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  General Cheat-Sheets
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://devhints.io/"&gt;devhints&lt;/a&gt;&lt;br&gt;
&lt;a href="https://html-css-js.com/js/"&gt;Online JavaScript Tools And Resources&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  MacOS/Linux
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://learntocodewith.me/command-line/unix-command-cheat-sheet/"&gt;Learn to Code with Me's Unix/Mac CheatSheet&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Git
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ndpsoftware.com/git-cheatsheet.html"&gt;git cheatsheet&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comparing React and Vue - part 1</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Sun, 12 Jul 2020 06:46:27 +0000</pubDate>
      <link>https://dev.to/simonhlee97/comparing-react-and-vue-part-1-572n</link>
      <guid>https://dev.to/simonhlee97/comparing-react-and-vue-part-1-572n</guid>
      <description>&lt;p&gt;To help me learn and understand better, I'm going to write a series of posts that compare React and Vue, and how each framework codes some of the most fundamental programming concepts.&lt;br&gt;
This post (and this series) is not an attempt at claiming one is better than the other. They are both very good and popular. The purpose is to increase understanding by looking at similarities and differences.&lt;/p&gt;
&lt;h2&gt;
  
  
  For Loops (Iteration) in a VueJS Component
&lt;/h2&gt;

&lt;p&gt;So how do you loop through an array of items in Vue? here's an example from the Vue docs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&lt;/span&gt; &lt;span class="na"&gt;v-for=&lt;/span&gt;&lt;span class="s"&gt;"item in items"&lt;/span&gt; &lt;span class="na"&gt;:key=&lt;/span&gt;&lt;span class="s"&gt;"item.message"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    {{ item.message }}
  &lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Foo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Iterate through same array in a React Component
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;items&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Foo&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;message&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Bar&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nx"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;items&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;index&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;li&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;))&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  My Takeaways
&lt;/h2&gt;

&lt;p&gt;For beginners who are just starting out with JS frameworks, I can understand why they would like VueJS more. In Vue components, the HTML is neatly separated from the JavaScript and the CSS. Using Vue's directives like &lt;code&gt;v-for&lt;/code&gt; is semantic and is inside the element that will be repeated. Pretty awesome if you are new to JS frameworks.&lt;/p&gt;

&lt;p&gt;For more experienced developers who have been writing vanilla JS for many years, I can understand why they would prefer the &lt;strong&gt;JSX&lt;/strong&gt; way with React, writing for loops inside some HTML.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;It's a matter of personal preference and perhaps where you are in your developer journey. For less experienced coders, Vue structures its components in a friendly intuitive way and provides Vue directives out of the box to accomplish array looping.&lt;/p&gt;

&lt;p&gt;With no previous experience with JSX, React will require some additional time in the beginning to learn how React renders its components.&lt;/p&gt;

&lt;p&gt;I am a fan of both frameworks and looking forward to comparing another simple aspect of programming in my next post. Stay tuned, and thanks for reading.&lt;/p&gt;

&lt;p&gt;&lt;span&gt;Photo by &lt;a href="https://unsplash.com/@cdc?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;CDC&lt;/a&gt; on &lt;a href="https://unsplash.com/s/photos/computer-programming?utm_source=unsplash&amp;amp;utm_medium=referral&amp;amp;utm_content=creditCopyText"&gt;Unsplash&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>vue</category>
      <category>javascript</category>
    </item>
    <item>
      <title>HTML Snippets for Korean Developers</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Mon, 25 May 2020 03:57:00 +0000</pubDate>
      <link>https://dev.to/simonhlee97/html-snippets-for-korean-developers-2el1</link>
      <guid>https://dev.to/simonhlee97/html-snippets-for-korean-developers-2el1</guid>
      <description>&lt;h2&gt;
  
  
  Mostly inspired by some of the free snippets available at &lt;a href="https://www.freeformatter.com"&gt;freeformatter.com&lt;/a&gt;
&lt;/h2&gt;

&lt;h4&gt;
  
  
  20 Largest Cities, South Korea
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;select&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Seoul"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Seoul&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Busan"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Busan&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Incheon"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Incheon&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Daegu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Daegu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Daejon"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Daejon&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gwangju"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gwangju&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Suwon"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Suwon&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Ulsan"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Ulsan&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Changwon"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Changwon&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Goyang"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Goyang&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Yongin"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Yongin&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Seongnam"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Seongnam&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Bucheon"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Bucheon&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Cheongju"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Cheongju&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Ansan"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Ansan&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Jeonju"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jeonju&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Cheonan"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Cheonan&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Namyangju"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Namyangju&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Hwaseong"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Hwaseong&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Anyang"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Anyang&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  List of South Korea's Provinces
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;select&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Chungcheongbuk-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Chungcheongbuk-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Chungcheongnam-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Chungcheongnam-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gangwon-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gangwon-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gyeonggi-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gyeonggi-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gyeongsangbuk-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gyeongsangbuk-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gyeongsangnam-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gyeongsangnam-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Jeollabuk-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jeollabuk-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Jeollanam-do"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jeollanam-do&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Jeju Special Self-governing Province"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jeju Special Self-governing Province&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  List of Seoul's Districts (ranked by population)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;select&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Songpa-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Songpa-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gangseo-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gangseo-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Nowon-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Nowon-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gangnam-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gangnam-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gwanak-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gwanak-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Eunpyeong-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Eunpyeong-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Yangcheon-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Yangcheon-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gangdong-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gangdong-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Seongbuk-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Seongbuk-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Guro-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Guro-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Seocho-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Seocho-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Jungnang-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jungnang-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Yeongdeungpo-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Yeongdeungpo-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Dongjak-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Dongjak-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Mapo-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Mapo-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gwangjin-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gwangjin-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Dongdaemun-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Dongdaemun-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Dobong-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Dobong-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Gangbuk-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Gangbuk-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Seodaemun-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Seodaemun-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Seongdong-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Seongdong-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Geumcheon-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Geumcheon-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Yongsan-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Yongsan-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Jongno-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jongno-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;option&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Jung-gu"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Jung-gu&lt;span class="nt"&gt;&amp;lt;/option&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/select&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;source: Wikipedia.org&lt;/p&gt;

</description>
      <category>snippets</category>
    </item>
    <item>
      <title>How did you get your first Dev Job?</title>
      <dc:creator>Simon Lee</dc:creator>
      <pubDate>Fri, 24 Apr 2020 08:35:29 +0000</pubDate>
      <link>https://dev.to/simonhlee97/how-did-you-get-your-first-dev-job-192l</link>
      <guid>https://dev.to/simonhlee97/how-did-you-get-your-first-dev-job-192l</guid>
      <description>&lt;p&gt;Poll: How did you get your 1st job in web development?&lt;br&gt;
a. recruiter&lt;br&gt;
b. during college via career placement office, job fairs, etc.&lt;br&gt;
c. side-hustle/free-lancing, short-term gigs that lead to full-time&lt;br&gt;
d. friend, friend of a friend (connections)&lt;br&gt;
e. other&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
