<?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: George WL</title>
    <description>The latest articles on DEV Community by George WL (@georgewl).</description>
    <link>https://dev.to/georgewl</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%2F33415%2F4f1d7198-2948-4d8f-acea-8306ad5f9daa.png</url>
      <title>DEV Community: George WL</title>
      <link>https://dev.to/georgewl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/georgewl"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>George WL</dc:creator>
      <pubDate>Tue, 10 Jun 2025 10:43:23 +0000</pubDate>
      <link>https://dev.to/georgewl/-46cp</link>
      <guid>https://dev.to/georgewl/-46cp</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/georgewl" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F33415%2F4f1d7198-2948-4d8f-acea-8306ad5f9daa.png" alt="georgewl"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/georgewl/top-5-tricks-for-writing-listicles-that-will-make-you-churn-out-low-quality-content-easily-and-quickly-4p04" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Top 5 tricks for writing listicles that will make you churn out low quality content quickly and easily&lt;/h2&gt;
      &lt;h3&gt;George WL ・ Sep 18 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#writing&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>writing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Top 5 tricks for writing listicles that will make you churn out low quality content quickly and easily</title>
      <dc:creator>George WL</dc:creator>
      <pubDate>Wed, 18 Sep 2024 17:00:15 +0000</pubDate>
      <link>https://dev.to/georgewl/top-5-tricks-for-writing-listicles-that-will-make-you-churn-out-low-quality-content-easily-and-quickly-4p04</link>
      <guid>https://dev.to/georgewl/top-5-tricks-for-writing-listicles-that-will-make-you-churn-out-low-quality-content-easily-and-quickly-4p04</guid>
      <description>&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use AI to write the whole article.&lt;/strong&gt;&lt;br&gt;
Don't prooodread it, even if it lists things that are wrong or incredibly outdated &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use as Many Trending Buzzwords as Possible.&lt;/strong&gt;&lt;br&gt;
Buzzwords are the lifeblood of modern content. Toss in phrases like “blockchain disruption,” “AI-powered synergy,” and “sustainable growth hacking” even if you have no idea what they mean&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Write your opinions as if they are facts&lt;/strong&gt;&lt;br&gt;
A tone of certainty, especially when you don't know what you're talking about, will let people will know you are very smart, and they are not&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Don't know how to count&lt;/strong&gt;&lt;br&gt;
Either put more items than the title states, or less items than the title states&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;Edit: Honestly this article is just me being bitter at the sorry state of "Tech Bloggers"&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>writing</category>
      <category>satire</category>
    </item>
    <item>
      <title>Code Kata: Opening Hours</title>
      <dc:creator>George WL</dc:creator>
      <pubDate>Fri, 16 Oct 2020 16:23:50 +0000</pubDate>
      <link>https://dev.to/georgewl/code-kata-opening-hours-4i6p</link>
      <guid>https://dev.to/georgewl/code-kata-opening-hours-4i6p</guid>
      <description>&lt;p&gt;I was recently working on something for a client where they were going to provide opening and closing hours for each day of the week, and we were going to parse that in our UI.&lt;/p&gt;

&lt;p&gt;The client decided to simplify the requirements, but I still think it would be interesting to see some people's solutions to the following challenge.&lt;/p&gt;

&lt;h1&gt;
  
  
  The Challenge
&lt;/h1&gt;

&lt;p&gt;Given an object with the same  structure as this example:&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="p"&gt;{&lt;/span&gt;
 &lt;span class="nl"&gt;Monday&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="na"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;09:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;close&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;17:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="nx"&gt;Tuesday&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="nl"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;09:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;17:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="nx"&gt;Wednesday&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="nl"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;09:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;15:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="nx"&gt;Thursday&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="nl"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;09:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;17:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="nx"&gt;Friday&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="nl"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;09:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;17:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="nx"&gt;Saturday&lt;/span&gt;&lt;span class="p"&gt;:{&lt;/span&gt;&lt;span class="nl"&gt;open&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;10:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;close&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;16:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
 &lt;span class="nx"&gt;Sunday&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;Return a new array of strings which groups continuous days with same hours together, and keeps the rest seperate. &lt;/p&gt;

&lt;p&gt;If a day or group of days has no hours, return the day(s) followed by &lt;code&gt;Closed&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In the case of the above example, it would return the following&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="p"&gt;[&lt;/span&gt;
 &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Monday-Tuesday: 09:00-17:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
 &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Wednesday: 09:00-15:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
 &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Thursday-Friday&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;09:00-17:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
 &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Saturday: 10:00-16:00&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
 &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Sunday: Closed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Challenge Criteria:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Can work with any dates and times as long as they're in the expected format.&lt;/li&gt;
&lt;li&gt;Use whatever programming language you feel comfortable with&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;I'm going to have a play around with this challenge myself and will post how I went about it in the comments, feel free to respond with how you did it.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>challenge</category>
    </item>
    <item>
      <title>Neumorphic Calculator</title>
      <dc:creator>George WL</dc:creator>
      <pubDate>Sun, 05 Jul 2020 15:17:05 +0000</pubDate>
      <link>https://dev.to/georgewl/neumorphic-calculator-kf7</link>
      <guid>https://dev.to/georgewl/neumorphic-calculator-kf7</guid>
      <description>&lt;h2&gt;
  
  
  What is Neomorphism Neumorphism?
&lt;/h2&gt;

&lt;p&gt;Neomorphism/Neumorphism is a relatively new trend which is starting to take hold in the world of UI design, it tries to merge some of the concepts of flat design and the somewhat older UI concept of Skeuomorphism.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Skeuomorphism is a term most often used in graphical user interface design to describe interface objects that mimic their real-world counterparts in how they appear and/or how the user can interact with them&lt;/p&gt;

&lt;p&gt;Neumorphism is a visual style that blends techniques from skeuomorphism, realism, and flat design, to create a more modern-feeling take on the older concept. Essentially, it's a new, minimal way to design with a soft, extruded plastic look.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What I wanted to do
&lt;/h2&gt;

&lt;p&gt;I was looking to create some sort of UI using the concepts of this trend, and so thought I'd go for a relatively simple thing of a Calculator.&lt;/p&gt;

&lt;p&gt;I wanted the buttons to feel realistic in some way, and to that end I looked for some recommendations online, and a often recommend tool was &lt;a href="https://neumorphism.io" rel="noopener noreferrer"&gt;https://neumorphism.io&lt;/a&gt; as it gives a nice system for designing neumorphic ui elements.&lt;/p&gt;

&lt;p&gt;I designed it so that in the untouched state, they had a extruded look to them, akin to physical buttons, upon hover, they would go somewhat flat, and on press they would have a look that they had been pressed inwards.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Inactive State&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwm0ol9yr4ks60orrcidz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwm0ol9yr4ks60orrcidz.jpg" alt="Inactive State" width="800" height="1178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Active State&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lni3unpt5dhpa3z2h0y.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8lni3unpt5dhpa3z2h0y.jpg" alt="Active State on " width="800" height="1217"&gt;&lt;/a&gt; &lt;em&gt;(the "8" button is clicked)&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  In review
&lt;/h2&gt;

&lt;p&gt;I actually spent way too long trying to come up with a custom math evaluation function, as I started adding that functionality later in the day, and somehow entirely forgotten about the far simpler option of using &lt;code&gt;eval&lt;/code&gt;, especially as I didn't have to worry about invalid inputs crashing the app (as the inputs were restricted by myself). &lt;/p&gt;

&lt;h2&gt;
  
  
  The final product
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codepen.io/GeorgeWL/full/yLeXxpM" rel="noopener noreferrer"&gt;https://codepen.io/GeorgeWL/full/yLeXxpM&lt;/a&gt;&lt;/p&gt;

</description>
      <category>neumorphism</category>
      <category>javascript</category>
      <category>css</category>
      <category>html</category>
    </item>
  </channel>
</rss>
