<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>LongYC</title>
    <description>Personal website of a web app developer &amp; UXer from Malaysia. He enjoys stories of people doing great works and Kopi-O.
</description>
    <link>https://longyc.com/</link>
    <atom:link href="https://longyc.com/feed.xml" rel="self" type="application/rss+xml"/>
    
      <item>
        <title>24th weekly post, cladding interface.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of a snowman with the number 2021 on the left.&quot; src=&quot;/blog/2021-week-51-longyc-24th-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;TypeScript&lt;/strong&gt; - a main distinction between interface and type aliases is that declaration merging is possible for interfaces, e.g. new fields can be added to an existing interface with an additional declaration of the said interface. This is documented in the &lt;a href=&quot;https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#differences-between-type-aliases-and-interfaces&quot;&gt;official TypeScript handbook&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Serverless&lt;/strong&gt; - CLAD is a model to think about Serverless security - Code, Library, Access, and Data. One useful perspective is to treat each function as a perimeter to be secured instead of a single application. Got that from chapter 3 of &lt;a href=&quot;https://www.goodreads.com/book/show/53324854-serverless-security&quot;&gt;Serverless Security&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 51 of 2021&lt;/strong&gt;, we saw that the introduction of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;:has()&lt;/code&gt; CSS pseudo-class support in Safari Technology Preview Release 137, more details in &lt;a href=&quot;https://developer.apple.com/safari/technology-preview/release-notes/&quot;&gt;the release note&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is weekly bite-sized post on web app development from JavaScript to UX and technology in general, started in July 2021, with this one being the last post of the year. Not sure if this is something I want to continue into 2022 but there’ll definitely be change in the format and frequency at the very least, hopefully for the better. Thank you for reading and have a great new year ahead!&lt;/p&gt;
</description>
        <pubDate>Sun, 26 Dec 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-51-cladding-interface</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-51-cladding-interface</guid>
        
        
      </item>
    
      <item>
        <title>23rd weekly post, server implementation.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of Mantine the manta ray-like Pokémon with the number 23 on the left.&quot; src=&quot;/blog/2021-week-50-longyc-23rd-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Webpack&lt;/strong&gt; - when using the dev server, we can visit the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/webpack-dev-server&lt;/code&gt; route to access a list of all the files being served, this is mentioned as &lt;a href=&quot;https://webpack.js.org/configuration/dev-server/#devserver&quot;&gt;a tip on the official documentation page&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;HTTP/2&lt;/strong&gt; - just because a server speaks the protocol doesn’t mean the underlying implementation is correct and given that HTTP/2 clients rely more on the server compared to older versions of HTTP, the impact might be worse. Got that from chapter 13 of &lt;a href=&quot;https://www.goodreads.com/book/show/17985198-high-performance-browser-networking&quot;&gt;High Performance Browser Networking&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 50 of 2021&lt;/strong&gt;, we saw a demo from Dell on Concept Pari - a magnetic webcam that can be attached to anywhere on a monitor screen, allowing video call participants to have eye contacts, or at least virtually. &lt;a href=&quot;https://arstechnica.com/gadgets/2021/12/dells-magnetic-wireless-webcam-might-help-you-forget-about-that-infamous-nose-cam/&quot;&gt;The demo was covered by Ars Technica with some comparison on Dell’s previous webcam designs&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a weekly bite-sized post on web app development from JavaScript to UX and technology in general. Thank you for reading and have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 19 Dec 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-50-server-implementation</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-50-server-implementation</guid>
        
        
      </item>
    
      <item>
        <title>22nd weekly post, remaining ratio.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of Twitter Retweet button with the number 22 on the left.&quot; src=&quot;/blog/2021-week-49-longyc-22nd-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt; - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;aspect-ratio&lt;/code&gt; can be used to set a preferred width-to-height ratio of a box, it accepts values of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;ratio&amp;gt;&lt;/code&gt; data type, e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;16/9&lt;/code&gt;. &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/Media/images/aspect_ratio_mapping&quot;&gt;More about this CSS property is explained on MDN Web Docs&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;AWS Lambda&lt;/strong&gt; - the context object passed to a handler function includes a method &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;getRemainingTimeInMillis()&lt;/code&gt; which returns the approximate remaining execution time before timeout. Picked that up from chapter 6 of &lt;a href=&quot;https://www.goodreads.com/en/book/show/29970427&quot;&gt;Serverless Architectures on AWS&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 49 of 2021&lt;/strong&gt;, we saw a remote code execution vulnerability on the popular Java logging library - Apache Log4j. Now also known as Log4Shell, the exploit allows arbitrary Java code to be executed, &lt;a href=&quot;https://www.lunasec.io/docs/blog/log4j-zero-day/&quot;&gt;more details about this on LunaSec blog&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a weekly bite-sized post on web app development from JavaScript to UX and technology in general. Thank you for reading and have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 12 Dec 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-49-remaining-ratio</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-49-remaining-ratio</guid>
        
        
      </item>
    
      <item>
        <title>21st weekly post, memory search.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of a PlayStation Memory Card with the number 21 on the left.&quot; src=&quot;/blog/2021-week-48-longyc-21st-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Node.js&lt;/strong&gt; - we could get an object describing the memory usage of a Node.js process using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;process.memoryUsage()&lt;/code&gt;. The numbers returned represent the usage in bytes, as described in &lt;a href=&quot;https://nodejs.org/api/process.html#processmemoryusage&quot;&gt;the official documentation page&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Design&lt;/strong&gt; - a content is what a user needs right now, regardless of what a search form is designed for. If it’s not feasible to have a universal search, label a search form explicitly, e.g. Search products. Got that from chapter 6 of &lt;a href=&quot;https://www.goodreads.com/book/show/42272974-form-design-patterns&quot;&gt;Form Design Patterns&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 48 of 2021&lt;/strong&gt;, AWS announced the preview of EC2 M1 Mac instances. There is &lt;a href=&quot;https://aws.amazon.com/blogs/aws/use-amazon-ec2-m1-mac-instances-to-build-test-macos-ios-ipados-tvos-and-watchos-apps/&quot;&gt;an official blog post on this with details on pricing and example usage&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a weekly bite-sized post on web app development from JavaScript to UX and technology in general. Thank you for reading and have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 05 Dec 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-48-memory-search</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-48-memory-search</guid>
        
        
      </item>
    
      <item>
        <title>20th weekly post, reserved workers.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of Dobby with the word twenty in Chinese, Malay, and English on the left.&quot; src=&quot;/blog/2021-week-47-longyc-20th-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Jest&lt;/strong&gt; - in single run mode, the maximum number of workers is set to be the number of CPU core available minus one for main thread, we can customise using the CLI option &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--maxWorker&lt;/code&gt;, as stated on the &lt;a href=&quot;https://jestjs.io/docs/cli#--maxworkersnumstring&quot;&gt;official documentation page&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; - &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;undefined&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NaN&lt;/code&gt;, and &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Infinity&lt;/code&gt; are actually not reserved words, got this from chapter 2 of &lt;a href=&quot;https://www.goodreads.com/book/show/2998152-javascript&quot;&gt;JavaScript: The Good Parts&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 47 of 2021&lt;/strong&gt;, we saw the public preview of Amazon Linux 2022 which is now based on Fedora. Also, there will be a new major version of Amazon Linux every two years from now on and each will be supported for five years. More information available on the &lt;a href=&quot;https://aws.amazon.com/about-aws/whats-new/2021/11/preview-amazon-linux-2022/&quot;&gt;official announcement page&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a weekly bite-sized post on web app development from JavaScript to UX and technology in general. Thank you for reading and have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 28 Nov 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-47-reserved-workers</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-47-reserved-workers</guid>
        
        
      </item>
    
      <item>
        <title>19th weekly post, tracking and kerning.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of Ditto with the word nineteen in Chinese, Malay, and English on the left.&quot; src=&quot;/blog/2021-week-46-longyc-19th-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Typography&lt;/strong&gt; - it affects first impressions because even when users don’t read copy, they scan it. Approaches to adjust spacing between characters include tracking (horizontal spaces between words) and kerning (spaces between two individual letters). &lt;a href=&quot;https://uxplanet.org/typography-in-ui-guide-for-beginners-7ee9bdbc4833&quot;&gt;UX Planet has a UI typography beginner guide that explains these and more&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;AWS API Gateway&lt;/strong&gt; - we can utilise mock integration to generate a response without integrating with any other services, got this from chapter 7 of &lt;a href=&quot;https://www.goodreads.com/en/book/show/29970427&quot;&gt;Serverless Architectures on AWS&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 46 of 2021&lt;/strong&gt;, we saw the beta release of Serverless framework version 3, there were a lot of highlights on the new CLI but it’s also noteworthy that many features deprecated in version 2 are not removed. More information available on the &lt;a href=&quot;https://www.serverless.com/blog/serverless-framework-v3-beta&quot;&gt;announcement blog post&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a weekly bite-sized post on web app development from JavaScript to UX and technology in general. Thank you for reading and have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 21 Nov 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-46-tracking-kerning</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-46-tracking-kerning</guid>
        
        
      </item>
    
      <item>
        <title>18th weekly post, pager and comments.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of a Digivice with the word eighteen in Chinese, Malay, and English on the left.&quot; src=&quot;/blog/2021-week-45-longyc-18th-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; - the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;--no-pager&lt;/code&gt; option can prevent git from piping output to a pager, this option could be useful for logging in a CI environment, e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git --no-pager log&lt;/code&gt;. More info available on &lt;a href=&quot;https://git-scm.com/docs/git#Documentation/git.txt---no-pager&quot;&gt;git documentation page&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; - the block comment syntax &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;/* */&lt;/code&gt; comes from the PL/I language. The pairs were used in PL/I because their occurrence is unlikely but they can appear in JS regex literals, thus making them unsafe for commenting out blocks of code. Got this from chapter 2 of &lt;a href=&quot;https://www.goodreads.com/book/show/2998152-javascript&quot;&gt;JavaScript: The Good Parts&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 45 of 2021&lt;/strong&gt;, we saw the release of developer preview of Hydrogen - a React-based framework from Shopify focused on building custom storefronts, it ships with built-in components and Tailwind CSS. More info can be found on &lt;a href=&quot;https://www.shopify.my/partners/blog/hydrogen-developer-preview&quot;&gt;its announcement post on Shopify blog&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;a-little-note&quot;&gt;A little note&lt;/h2&gt;

&lt;p&gt;Looking at the reviews and benchmarks of the new MacBook Pro with M1 Pro/Max, the single core performance improvement over the much cheaper M1 MacBook Air seems negligible. So, other hardware features aside, they are only better options (performance-wise) if you need more performance cores or much, much faster graphics. That’s all for this week’s post, thank you for reading and have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 14 Nov 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-45-pager-comments</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-45-pager-comments</guid>
        
        
      </item>
    
      <item>
        <title>17th weekly post, Action matrix.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of Nintendo Switch Joy-Con with the word seventeen in Chinese, Malay, and English on the left.&quot; src=&quot;/blog/2021-week-44-longyc-17th-post.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;GitHub Action&lt;/strong&gt; - there can be up to 256 jobs per workflow run using a job matrix. One example use case is to run with multiple versions of Node.js, as pointed out by &lt;a href=&quot;https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#jobsjob_idstrategymatrix&quot;&gt;the official GitHub Docs webpage&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;AWS Lambda&lt;/strong&gt; - we could create aliases for Lambda functions, an alias has its own ARN and points to specific version of a function. One use case is to set up production and staging aliases that points to different versions of a function, got this from chapter 6 of &lt;a href=&quot;https://www.goodreads.com/en/book/show/29970427&quot;&gt;Serverless Architectures on AWS&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;On the week 44 of 2021&lt;/strong&gt;, we saw the release of Intel’s 12th generation Core processors known as Alder Lake, one of the highlights is that it’s a hybrid architecture with both performance cores and efficiency cores. &lt;a href=&quot;https://www.anandtech.com/show/17047/the-intel-12th-gen-core-i912900k-review-hybrid-performance-brings-hybrid-complexity&quot;&gt;AnandTech has a detailed review on this&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;a-little-note&quot;&gt;A little note&lt;/h2&gt;

&lt;p&gt;Another small change in the post format, of the three weekly items, one will be from an online source, like an article or a Tweet, while another one will be from a book or a paper, and to mix things up a little, the third item will be a bit of a wild card, probably something new from that week. That’s all for this week’s post, thank you for reading and have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 07 Nov 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-44-action-matrix</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-44-action-matrix</guid>
        
        
      </item>
    
      <item>
        <title>16th weekly post, slice and map.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of Harley Quinn with the word sixteen in Chinese, Malay, and English on the left.&quot; src=&quot;/blog/2021-week-43-slice-and-map.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; - the array &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.slice()&lt;/code&gt; method accepts negative index, thus it is possible to extract the last element with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.slice(0, -1)&lt;/code&gt;. More details available on &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice&quot;&gt;MDN Web Docs&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt; - it is common to see objects being used as maps but there are quite a number of differences in using an actual &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Map&lt;/code&gt;, such as using any types as keys instead of just string. MDN Web Docs has &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#objects_vs._maps&quot;&gt;a good comparison table on this&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Jest&lt;/strong&gt; - ESM support is still experimental at the moment as mentioned in &lt;a href=&quot;https://jestjs.io/docs/ecmascript-modules&quot;&gt;the official documentation page&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;note-of-the-week&quot;&gt;Note of the week&lt;/h2&gt;

&lt;p&gt;On the week 43 of 2021, we saw that &lt;a href=&quot;https://mozillagfx.wordpress.com/2021/10/30/switching-the-linux-graphics-stack-from-glx-to-egl/&quot;&gt;the news of the upcoming Firefox 94 switching from GLX to EGL&lt;/a&gt;, this should translate to better WebGL performance for Linux users. That’s all for this week’s post, I must admit this week’s post was a bit more rushed than usual, still, thank you for reading and if you have got any feedback, do let me know by leaving on either &lt;a href=&quot;https://longyc.medium.com/16th-weekly-post-slice-and-map-also-jest-aff20c842789?source=friends_link&amp;amp;sk=a616a5993940f4bff6500e24262bdd46&quot;&gt;Medium&lt;/a&gt;, &lt;a href=&quot;https://dev.to/longyc/16th-weekly-post-slice-and-map-also-jest-54f3&quot;&gt;Dev.to&lt;/a&gt;, or &lt;a href=&quot;https://smallpotatodev.substack.com/p/16th-weekly-post-slice-and-map&quot;&gt;Substack&lt;/a&gt;. Have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 31 Oct 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-43-slice-and-map</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-43-slice-and-map</guid>
        
        
      </item>
    
      <item>
        <title>15th weekly post, a sticky configuration.</title>
        <description>&lt;figure&gt;&lt;img alt=&quot;A doodle of a Slime from the Dragon Quest game with the word fifteen in Chinese, Malay, and English on the left.&quot; src=&quot;/blog/2021-week-42-a-sticky-configuration.jpg&quot; /&gt;&lt;/figure&gt;

&lt;h2 id=&quot;items-of-the-week&quot;&gt;Items of the week&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;CSS&lt;/strong&gt; - an element with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;position: sticky;&lt;/code&gt; sticks to the nearest parent / ancestor element that is scrollable , thus wrapping the said element in a container might change its behaviour.  The explanation is available on &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/position&quot;&gt;MDN Web Docs&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Serverless&lt;/strong&gt; - the Serverless framework configuration file (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;serverless.yml&lt;/code&gt;) allows using variables as config values, e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;light: ${env:LIGHT_SWITCH}&lt;/code&gt;, what’s great is that it also allows nested variable references, e.g. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;light: ${env:${opt:room}_LIGHT_SWITCH}&lt;/code&gt;. Details can be found on the &lt;a href=&quot;https://www.serverless.com/framework/docs/providers/aws/guide/variables/#nesting-variable-references&quot;&gt;documentation page&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;&lt;strong&gt;Design&lt;/strong&gt; - use progress visualisation, gamification, and activity tracking in design to motivate users toward desired goals. These techniques can invoke the goal-gradient effect where users might put more efforts as they get closer to targets, as explained by &lt;a href=&quot;https://uxdesign.cc/designing-for-motivation-with-the-goal-gradient-effect-c873cdf58beb&quot;&gt;an article on UX Collective&lt;/a&gt;.&lt;/p&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;note-of-the-week&quot;&gt;Note of the week&lt;/h2&gt;

&lt;p&gt;On the week 42 of 2021, we saw &lt;a href=&quot;https://nodejs.org/en/blog/release/v17.0.0/&quot;&gt;the release of Node.js 17&lt;/a&gt; with the underlying V8 JavaScript engine updated to version 9.5 and also &lt;a href=&quot;https://developer.chrome.com/blog/new-in-chrome-95/&quot;&gt;the release of Chrome 95&lt;/a&gt; that marks the start of the new user-agent reduction origin trial. That’s all for this week’s post, thank you for reading and if you have got any feedback, do let me know by leaving on either &lt;a href=&quot;https://longyc.medium.com/15th-weekly-post-a-sticky-configuration-also-goal-gradient-effect-7659f4df2cc8?source=friends_link&amp;amp;sk=7d01c6a8b5a3253dd990f99d859dde87&quot;&gt;Medium&lt;/a&gt;, &lt;a href=&quot;https://dev.to/longyc/15th-weekly-post-a-sticky-configuration-also-goal-gradient-effect-2aln&quot;&gt;Dev.to&lt;/a&gt;, or &lt;a href=&quot;https://smallpotatodev.substack.com/p/15th-weekly-post-a-sticky-configuration&quot;&gt;Substack&lt;/a&gt;. Have a nice day!&lt;/p&gt;
</description>
        <pubDate>Sun, 24 Oct 2021 00:00:00 +0800</pubDate>
        <link>https://longyc.com/blog/2021-week-42-a-sticky-configuration</link>
        <guid isPermaLink="true">https://longyc.com/blog/2021-week-42-a-sticky-configuration</guid>
        
        
      </item>
    
  </channel>
</rss>
